An Idea: Upending the Password Strength Problem
July 14, 2006 by PingI had an idea yesterday evening inspired by Cynthia Kuo’s talk on phrase-based passwords. Cynthia’s research started with a popular method for choosing memorable passwords and evaluated the strength of passwords created using that method. And there was a questioner from the audience who noted that, whenever you popularize a particular formula for making passwords, attackers can develop dictionaries tailored to that formula.
What if we turn the problem around? What if, instead of treating memorability as the constant and strength as the variable, we treat strength as the constant and memorability as the variable? Suppose we have the computer choose a completely random password, to guarantee good password entropy. The phrase-based technique shows that a phrase can be turned into a random-looking jumble of letters and numbers. With a sufficiently large word list and a basic knowledge of grammar, can a computer turn a truly random jumble of letters and numbers into a memorable phrase?
July 20th, 2006 at 12:24
I do not see a lot of promise in this approach, because I do not think you can make an algorithm that will generate passwords that are memorable across a large enough portion of the population without drawing from a relatively predictable pool. Memorability is more personal than that - this is why I want to provide real-time feedback and base minimum password requirements on an entropy estimate - so that people can create something memorable for themselves that is of at least a constant strength.
However, one idea some colleagues at NEU had suggested was a password selection system where the random algorithm is trained based on passwords a user enters in the system. Say the user inputs a list of passwords they feel they’ve been able to remember - the algorithm would look for patterns and try to replicate those in passwords generated for that user. When it generated a new password it could generate a set and let the user select from amongst them - which would also further train the algorithm. The problem, of course, is the development of said algorithm. This would be an interesting approach, but I think real-time feedback and dynamic help systems offer more generally applicable promise.