The peer-to-peer crypto-currency Bitcoin has some very intelligent proponents, but its largest exchange showed the world recently that parts of the movement can at times be just as clueless about security as the less tech-centric.
Bitcoin exchange Mt. Gox admitted last month that up until a couple of months ago it used an unsalted MD5 hash to encrypt its 60,000+ users' passwords.
When the site was hacked last month, the passwords of 1,000+ "idle" users were quickly discovered in rainbow lookup tables, allowing hackers to gain access to many accounts, forcing a value crash and forced market closure.
The exchange says the compromised accounts represent users who hadn't logged in within the past two months. Users who had logged in were treated to proper MD5 plus salting.
So what are hashes, MD5, and salting?
To clarify, hashes are a cryptographic technique that obscure passwords, meaning that if someone gains access to your system, he or she doesn't necessarily gain access to your users' passwords. MD5 is a 128-bit hashing algorithm, designed in 1992 by Ronald Rivest. At the time, it was considered quite “strong,” but by today's standards it is weak.
Salting is another cryptographic technique used to further obfuscate passwords. This method combines a string of random bits (the “salt”) with the hashed password to yield an encrypted password that's harder to look up.
But honestly, even MD5 with salting isn't failsafe in today's world of ultra-large lookup tables and GPU-driven brute force attacks. Mt. Gox explicitly neglects to mention whether the salting was a single value or iterative. If it was iterative, Mt. Gox probably would have mentioned it. And if all the passwords used a single salt value, that's more bad news, as a single salt would only slightly strengthen the quite-weak MD5 encryption scheme.
That's why it's refreshing that in the wake of the attacks, Mt. Gox is finally wising up. The exchange announced that it was forcing all users to enter new passwords, which would be protected by SHA-512 with iterative salting.
Unique (per-user) salting would be even more desirable, given that someday, SHA-512 may be directly cracked -- but an iterative salt is at least a step up. If the iteration period is sufficiently large, that can make the encrypted passwords exceptionally hard to break, particularly considering the underlying strength of the SHA-512 algorithm.
If there's one driving lesson from the hacks on Mt. Gox and Sony, it's that it is imperative that you safeguard your users. Losing customer data of any kind can lead to serious reputation damage for your firm. Losing customers' passwords can lead to a fatal loss of trust.
Companies, like people, learn in plenty of ways. Some learn through observation of others and proactive research. Others -- like Mt. Gox -- learn via the "school of hard knocks." And still others -- like Sony, it seems (given its ongoing breaches) -- don't learn at all.
Take the former route and adopt strong encryption early, so you don't have to experience the pain of the latter approaches.
— Jason Mick is senior news editor at independent tech news site DailyTech.