BBAuth security lapse
I have had concerns about Yahoo!’s choice of security of BBAuth. Jeremy Zawodny responds to my posting to ydn-auth list:
“While I can’t comment on the choice of algorithm, I can say that some of the technology used in BBAuth was not developed solely for use with BBAuth.
Okay, fair enough.
But then he continues:
“In other words, we’re reusing some existing stuff that’s been tested in the field and proven to work well for our needs.”
Now, this doesn’t sound right. Not at all.
MD5 has been broken for a few years now. According to Ferguson’s and Schneier’s Practical Cryptography it’s possible to find MD5 collisions in 2**64 evaluations (using the birthday paradox). This was too easy 2003, and it sure is not more difficult now.
Be that as it may. Perhaps these collisions are purely academic.
What’s worse is the lack of a proper HMAC. In Yahoo!’s BBAuth, the MAC is created by
hash(text + key)
where ‘+’ denotes string concatenation.
This simplistic way of building a pseudo HMAC scheme is not secure. Readers of Practical Cryptography may want to turn to section 7.5 for more information. In short, tacking the key on to the end leads to key recovery attacks that are much easier to execute than they should be.
What scares me is that this broken scheme apparently is used in plenty of other Yahoo! products. I would not be surprised if there are attackers trying to exploit this weakness at this very moment.
My advise to Yahoo! is to change this to a proper HMAC right now. Other identity protocols, like OpenID manages to require HMAC-SHA1 or HMAC-SHA256. There are OpenID libraries for all major programming languages available, so it’s definitely not too hard to implement.



Reader Comments