With the possible exception of demonstrating brokenness in hashing algorithms ;) (Sorry, couldn't resist!)
Replace with:
- BLAKE2 if you need a fast cryptographic hash function (e.g. for hashing file contents)
- SHA512 (or SHA256, or SHA-3) if you want a standard cryptographic hash function that is available in your programming language libraries
(Speaking of Gravatar, their use of md5(email) or even more secure hash function won't help protect email addresses against dedicated attackers, as it's easy to iterate over billions of them in seconds, just like in the stories about password cracking you hear, but it works as a simple anti-spam measure.)
I would rather have less ad tracking pixels on someone elses websites if possible, but I am genuinely interested in the value that gravatar provides to people who like the service.
But the recommended way is to prefetch the avatars directly from your server and offer them on your own cdn.
As for the value it provides, well for one thing I pretty much never have to upload my avatar to websites anymore - it's an avatar attached to my email addresses instead and that's very nice. Of course I'd prefer a proper identity protocol but nobody's working on one. If you want to, be my guest...
I would rather external actors (say gravatar does nothing wrong) not be able to identify which email address I use on a site they do not own, and not be able to track my user signups by something that might be public information, which generally a site does not advertise.
It just feels wrong.
Actually, HMAC-MD5 is secure.
Yes, there aren't any known attacks right now, but since MD5 itself already has practical collision attacks against it, there isn't any good reason to use HMAC-MD5 in a new cryptosystem when there are better alternatives.
---
Supporting evidence: new versions of OpenSSHD do not use HMAC-MD5 by default anymore: it has to be enabled manually.
The default is:
umac-64-etm@openssh.com,umac-128-etm@openssh.com,
hmac-sha2-256-etm@openssh.com,hmac-sha2-512-etm@openssh.com,
umac-64@openssh.com,umac-128@openssh.com,
hmac-sha2-256,hmac-sha2-512
http://www.openbsd.org/cgi-bin/man.cgi/OpenBSD-current/man5/...This doesn't seem like a "create an issue on github" problem though. Surely it is a push a patch today problem?
EDIT: The 1.0.2 hotfix is now available with the token generation fix as well as 2 other enhancements.
EDIT: I'm using `crypto.randomBytes(16).toString('hex')` to be precise
Edit: yep, 16 bytes.
Basically forcing him to put up a patch for an unimportant issue on the same day with your entitled comment was a really crappy thing to do.