A team of researchers has developed a system that makes it much harder for hackers to obtain usable passwords from a leaked database, which could help blunt the damage from a data breach.
The system is described in a research paper that has been submitted for consideration at the 2015 Annual Computer Security Applications Conference, which takes place in Los Angeles in December.
Called ErsatzPasswords, the system is aimed at throwing off hackers who use methods to “crack” passwords, said Mohammed H. Almeshekah, a doctoral student at Purdue University in Indiana.
Hackers “will still be able to crack that file, however the passwords they will get back are fake passwords or decoy passwords,” Almeshekah said.
Passwords are typically encrypted when stored by organizations. The passwords are encrypted using an algorithm, and that output—called a hash—is stored.
Hashes are considered safer to store than plain-text passwords. It is difficult, but not impossible, to figure out a plain-text password from a hash.
To do that, hackers use brute-force techniques, which involve creating lists of words that could be possible passwords and computing their hash to see if a match is found. It’s time-consuming and computationally intensive work.
To cut down on that time, hackers use programs such as John the Ripper, which can draw on large lists of passwords from different data breaches whose hashes have already been calculated. Those lists grow longer by the day, and since many users do not pick complicated passwords, it speeds up the work of hackers.
When a new password is created for a service on a Linux system, a random value called a salt is added to it before it is encrypted and the hash is stored.
ErsatzPasswords adds a new step. Before a password is encrypted, it is run through a hardware-dependent function, such as one generated by a hardware security module, Almeshekah said.
That step adds a characteristic to a password that makes it impossible to restore it to its accurate plain text without access to the module, he said.
ErsatzPasswords exerts a bit of control over the salt that is added to the password so that what comes out of the hardware security module resembles a password, albeit a fake one, Almeshekah said.
The result is that if a hacker starts to get matches on a list of hashes, all of the passwords won’t work. The hacker wouldn’t know that necessarily until he or she tried them to access a service.
Web services are typically designed to cut off people after a number of wrong guesses, although ErsatzPasswords can be configured to alert an admin when a fake password is entered. It can also be configured to automatically create a fake account when a fake password is entered, allowing an admin to see what the person is trying to hack, Almeshekah said.
The beauty is on the server side since only one password file needs to be stored. “Even if we want to verify the real password, we don’t need a different file,” Almeshekah said.
Almeshekah said the researchers used a fairly cheap hardware security module from Yubico called the YubiHSM that costs around $500. For a large numbers of users, a more advanced type of hardware security module would be needed for better performance, which could cost $10,00 and up, he said.
But setting up ErsatzPasswords on the server side is pretty easy, he said, and the code is available on GitHub. It’s free and is published under an Apache open-source license.
The research paper was co-authored by Christopher N. Gutierrez, Mikhail J. Atallah and Eugene H. Spafford, all of Purdue’s Information Assurance and Security group.