Why Amazon Didn’t Fix Its Password Glitch: A Longtime Hole
Written by Frank HayesAmazon’s recent, much publicized password glitch—where access was granted for older passwords even if the password typed in didn’t exactly match the password on file—will probably leave Amazon customers safer, as they rush to change their passwords. But the reason the hole has existed for years—and still does today, for the millions who have yet to change their Amazon passwords—points to an inherent weakness in the password system.
Given that Amazon didn’t know what the real passwords were—a time-honored security technique in and of itself—it was powerless to fix the hole for its customers. Amazon could have forced all customers to change their passwords right away—innocuously painting it as a routine security measure, which wouldn’t have been far from the truth. But instead the E-tailer opted to let the problem work itself out, as customers gradually changed their passwords on their own. (To borrow a screen-written line from an adaptation of A Christmas Carol, Amazon hoped to let time wipe out the problem at no cost to the company.)
Now that the issue has been publicized, it could mean that other E-tailers might see a wave of attacks where thieves try to guess customers’ passwords—just in case those E-tailers have the same type of password problem that Amazon had.
That’s not the only irony surrounding the Amazon glitch, which essentially meant that all Amazon passwords more than three years old were relatively easy for a thief to guess. It appears that Amazon really did try to improve its password security, thereby making newer passwords much more secure. But there was nothing Amazon could do to solve the problem for longtime customers.
The glitch, which was first reported by a commenter on Reddit, works like this: It appears that, until about three years ago, Amazon’s systems automatically shortened each password to just the first eight characters, then converted any alphabetical characters in the password to uppercase before encrypting them. The practical effect: Every password was case-insensitive, and anything after the first eight characters was ignored.
So, for example, if a customer chose a relatively secure password of “Fred1967H6i9W4#@|,” it shouldn’t have been possible for a password-guessing program to crack the password easily—this password is 17 characters long and contains plenty of obscure character combinations. But because of Amazon’s password conversion, anyone using the customer’s account name could log in with any password where the first eight characters matched. “Fred1967H6i9W4” worked, but so did “fred1967wxyz,” “FRED1967password,” “fred1967” and “FRED1967.”
In a brick-and-mortar store, it’s nice for retailers to show a little flexibility when it comes to customers and security. In E-tail, that just doesn’t work.
Shortening passwords that way wasn’t uncommon when Amazon started doing business in 1995. But more than a decade later, such a practice is clearly outdated. Amazon won’t comment on the situation. It appears, however, that sometime in 2008, Amazon began to treat new passwords differently: no more truncation; no more conversion to uppercase. In short, new passwords aren’t shortened.
Unfortunately, there was no way for Amazon to smoothly convert the old passwords to the new system. That’s because Amazon didn’t have the old passwords in their entirety—just the first eight characters of each password.
So Amazon couldn’t automatically upgrade “Fred1967H6i9W4” because it only stored “FRED1967.” If Amazon made a guess at what the rest of the password might be—or just moved “FRED1967” into the new password system—it would almost certainly have been wrong, and the customer wouldn’t have been able to log in.
February 3rd, 2011 at 1:46 pm
And, hopefully, they were storing the passwords as unrecoverable salted hashes, anyway. (In Amazon’s case, it was probably Dinty Moore hashes. :O)
If stored properly, passwords are never recoverable and thus, unconvertable.