[openstack-dev] Keystone Hashing MD5 to SHA256

Adam Young ayoung at redhat.com
Tue Jan 7 17:01:05 UTC 2014


On 01/06/2014 01:10 PM, Jeremy Stanley wrote:
> On 2014-01-06 10:19:39 -0500 (-0500), Adam Young wrote:
>> If it were as  easy as just replaceing hteh hash algorithm, we
>> would have done it a year + ago. I'm guessing you figured that by
>> now.
> [...]
>
> With the lack of In-Reply-To header and not finding any previous
> messages to the list in the past few months with a similar subject
> line, I'm lacking some context (so forgive me if I'm off the mark).
>
> If the goal is to thwart offline brute-forcing of the hashed data,
> shouldn't we be talking about switching away from a plain hash to a
> key derivation function anyway (PBKDF2, bcrypt, scrypt, et cetera)?
> MD5 is still resistant to preimage and second preimage attacks as
> far as I've seen, and SHA256 doesn't take too many orders of
> magnitude more operations to calculate than MD5.


Sorry to all for the cryptic (ha) nature of this mail.  It was in 
response to an expired code review:

https://review.openstack.org/#/c/61445/

But I thought would benefit from a larger audience.

Note that the Hashes in question are not vulnerable to many of the 
attecks, as they are used primarily on very strict sets of data (the 
keystone tokens) and only between the keystone clients and servers.   It 
is not possible to create an arbitrary token, hash it, and have that at 
all usable in  Keystone.  Which is why MD5 has not been deemed to be a 
problem for us.

I like the Idea of prefixing the hashes with the algorithm, but we still 
need a way to integrate that in.   A specific Keystone server will only 
use one Hash alrgorithm, since it is useing the Hash as the unique ID 
for a database lookup.  Thus, in order for the clients and server to be 
in sync, they need a way to agree on the hash algorithm.  Identifying it 
in the hash is probably too late for most uses.






More information about the OpenStack-dev mailing list