[openstack-dev] [Keystone] V3 auth API design input

Adam Young ayoung at redhat.com
Thu Jan 24 15:03:05 UTC 2013

On 01/24/2013 04:06 AM, David Chadwick wrote:
> On 24/01/2013 00:50, Adam Young wrote:
>>> By the way, introducing holder of key into tokens solves the bearer
>>> problem and does not require SSL/TLS. What it requires is simply that
>>> the client signs the message containing the token with the key and
>>> includes a nonce/timestamp in the signed message so that the recipient
>>> can validate that the user is the holder of the token and the token
>>> has not been replayed.
>> Are you saying that the whole web requests would then be signed? Yes,
>> that would work, and would be very effecient, but it would require
>> extending all of the HTML aware parts to allow for signatures. I think
>> that would be a  very valuable extension.
> The body of the POST needs to be signed. This does not stop a MITM, 
> but then neither does SSL if you have a forged cert in the name of the 
> sender.
> David

Just thinking this through:

Keystone still is the authority on keys and signing, so I think this 
might actually prevent a man-in-the-middle attack.  The key signed in 
the token is the one used to sign the message.  The token is signed by 
the keystone server.  The token is authenticated against keystone.   So 
a man in the middle either has to try to use the secret key associated 
with the public key from the token, which they won't have access to, or 
they have to inject their own key.

If they inject their own key, they need to get a new token.  Which means 
they would need to convince Keystone that they are the original user, 
and that keystone should sign a different key.  That is a pretty high 
barrier to overcome.

Am I missing something?

More information about the OpenStack-dev mailing list