A friend was recently asking me about passwords. He’s heard some of my password rants in the past and was curious how I handled passwords. I’m going to lay why most people have bad passwords and what I do to get around those issues. I know my solution isn’t new or radical, others have done similar things before, I’m just publishing it as an example and to get people thinking.
Most people have passwords that suck. It’s not your fault, really you just don’t know how to make a decent password. Let me break out a few reasons why your passwords suck:
Here are the rules I use for passwords:
You’re thinking “how can I remember a password that changes and appears random”. It’s simple build a system to generates them and can regenerate them at will.
The solution takes advantage of hashing. To make it easy to understand, a cryptographically secure hash takes data, whether it’s a string or a file, mixes it together, uses some math and outputs a number. The number appears nice and random to both people and machines. Other then brute force it’s impossible to take the number and reverse it back to the original data. I could go on for a bit about MD5 and measures of entropy but I suspect that is outside the cope of keeping this easy to read. In this instance, the number is then put through an encoding process using letter and special characters to make it shorter and more readable.
The process is simple, you enter the site you’re using and a long passphrase you always remember. Through the magic of math a hard to guess password is generated.
Sort of. I was referring to the actual password. In the “passwordtwitter” example above. If I take “password” as the passphrase and “twitter.com” as the website the alphanumeric special options generates “)O~dM7iD5Q/j3Yb.9,|<” and the lowercase alpha generates “bfblwxcpbglfjsueiqtlmkrinosy”. As you can see I can’t look at that and know that the facebook password would be “%AFT|3QIR)nY`zgK]EOl” or “ardadyqjxrgfvgaltfgsncblpqxb”. As it’s difficult to take a hash and generate the source all is secure.
All that said let me be clear DO NOT USE PASSWORD AS A PASSWORD. The advantage to this system is that there is only one thing to remember and it can be any length. Choose something long, easy to remember and not easy to guess. A quote from a book, your favorite bible passage, a phrase like “I’m Sean and I’m a computer programmer who was born in 1969. There is nothing more useless then a single password to keep you safe. People who think useing password as a password should be shot.”
So there’s a website I built that I need go to when I need to remember a password and fill in 2 fields:
Then I select the character set I want to output:
There are a few reasons why there are several character sets available. I do suggest that where possible you use the alpha mixed numeric special password but there have been a few exceptions:
You’ll notice that if there are fewer characters in the set, the password is longer. I could go into a long discussion why, but again it’s a little outside the scope of this document.
I was asked why there is no SSL cert on that site. The reason is simple, all the work is done in your browser using javascript, no data passes to my server. And at the end of the day, this doesn’t need to run on a webserver at all. I encourage you to download the source unzip it on your harddrive and load passgen.html in any browser which supports javascript and it will work for you.
OK, to make my lawyer happy: None. The software is made available for example purposes only. As far as I know the concepts here are secure but I am not responsible for any ill effects from the use of this software. If you lose data, forget your password, go blind, lose your girlfriend, or die in a tragic blimp accident over the superbowl, I am not responsible.
Share and Enjoy!
Sean Reiser, 40, is a developer, technologist, and amateur photographer. Sean has spent the past 20 years as a programmer, system architect and development manager. He is a life long New York resident.
Sean currently serves as the President and Chief Geek Officer of Repair Sense, Inc.. Please go to that site with any professional inquiries.
Sean can be found using a number of social networks. These are the ones he's most active on: