The Web Development Blog has moved to http://www.heidicool.com/blog/. Please visit me there to read the latest entries and to update your bookmarks and RSS feeds.
November 16, 2006
Choosing a good password
Since October was Cyber Security Month... (wow, is it November already?) I thought I would write a post on the importance of a good password. I recently changed my password in Case's system, and I was going to remind everyone else to do so. By the way, if you haven't done that recently, it might be something to consider. I know I don't change it often enough myself, but it's a good practice to get into.
At any rate, I came upon a good article recently in one of the HTML e-mail newsletters that I subscribe to. I can't remember the original link, or where I got this, but the complete reference is below. There are a lot of interesting things to consider here... how do we define what a *good password* is, how many characters should I have, lower vs. upper case, and others.
So, here is the complete article, (from SecurityPro News RSS Feed?) I hope you enjoy it.
A Little Rant About Passwords
By: Gary Hammock
Contributing Writer
2006-10-17
Passwords are one of the most basic forms of data security.
They are the first option that comes to mind when attempting to secure a computer system, network, or even a file. But at what point do passwords become cumbersome for legitimate users, but secure enough to retain data security?
Let's face it. The most secure system is one that is un-networked, only has one legitimate user, is encrypted, is unpowered, or basically hidden in the bottom of a well--but this is impractical. In order to actually use the computer, you must make some compromises. You must give legitimate users access while maintaining the integrity of your systems. This can be done through passwords IF they are properly administered.
You always hear people recommending weird entirely random passwords such as "#G018nW@$b!". While this may be secure, you try remembering that along with the other eight passwords you use for the other systems (you do use different passwords for each system, right?) Add to that the fact that most companies, governments, organizations, etc. require password changes every 30/60/90 days, and you have a lot of frustrated legitimate users. At what point does adding more rules reach a point of diminishing returns in security? You don't want your users writing their passwords down and leaving them beneath their keyboards.
Password strength is more dependent on password length rather than range of characters (with caveats). Granted, more potential characters helps, but let's look at the mathematics.
The number of combinations of a password is given by C^n, where C is the set of characters in use and n is the length of the password. A 10 character length password using only the 26 lowercase letters has more combinations than a 9 character length password using a 32 character set. 26^10 > 32^9. This is an order of magnitude larger! As long as the 10 character password wasn't in a dictionary file (and thus subject to dictionary attacks), this would be an easy to implement password. Thus the password "iamrunning" is more secure than "*a#v!@$nb" and much easier to remember.
Let's do another one, shall we? Using that same first password (lowercase only), let's suppose a second set to be lowercase letters and numbers 0-9 while still maintaining the 9 character length. This means the second password has 36^9 possible combinations, which is still less than 26^10. Therefore that same password "iamrunning" is still more secure than "password7" by still having a higher number of potential combinations. Of course this is a simplified model and the password "iamrunning" (though complicated combinatorally) may still be susceptable to dictionary attacks.
Now we could build an uber-password that utilizes the full unicode set and really make something complicated--but let's think on this. While you can (on Windows systems I know) enter unicode characters into the password prompt, it really seems to be counterproductive. In order to input a unicode character in Windows, you hold down the "Alt" key while pressing a four digit value on the number pad, such as alt+0192. While this may extend the character set, you still have to press five additional keys. If you had instead, used an additional five alphanumeric characters from the standard set, your password would be orders of magnitude stronger than a password with an obscure character set (pending a dictionary check, password length means nothing to a dictionary attack).
Now for something scary. An ATM has a character set of 10 digits, 0-9. For a pin number of four digits, this means a possible 10,000 combinations. Suppose a laptop can try a million combinations per second. This means a laptop would be able to crack an ATM pin in 0.01 seconds. DO NOT TRY THIS. THIS IS ONLY NOTIONAL AND HYPOTHETICAL IN NATURE. What do you think could help the most, a larger character set that must constantly be changed, or a few extra digits?
***
There you have it. I like what he says for the most part about not having to pick something entirely random. We all have enough to remember, you know? I'm not sure though, that I agree with everything he says... what do you think?
Posted by: Kevin Adams November 16, 2006 05:14 PM | Category: Kevin's Stuff
Trackbacks
Trackback URL for this entry is: Choosing a good passwordPost a comment
Posted by: kla3 (Kevin Adams) November 16, 2006 05:14 PM | Comments (2) | Trackback
http://blog.case.edu/webdev/2006/11/16/choosing_a_good_password.html
Office of Marketing and Communications
http://www.case.edu/univrel/marcomm/
http://blog.case.edu/webdev/
216.368.4440



Stumble It!
Comments
this really isn't very difficult.
Choose a random 3 letter word. I'll pick 'Toy'
Choose a number from 0-9. I'll pick '9'
Now place the number somewhere inside the word. I'll use 'T9oy' (capitalizing the first letter is a good idea as some website require at least 1 capital letter.)
This is our base password.
Now when going to a website use the first four letters of that website for your password for THAT site and add them either to the start or end of your base password.
This will give you a unique password for every website without the problem of trying to remember 1000 different passwords. Here are what some passwords would look like based on the above base password.
Yahoo Mail - T9oyyaho
Huntington Bank - T9oyhunt
Case - T9oycase
Amazon - T9oyamaz
By using this convention you can create very strong passwords that are easily remembered and unique to every website you visit.
Most websites require at least 6 characters in password now so its always better to have atleast 1 or two numeric character in between the password. But one thing i would like to share is that include some special characters like '@', '!' etc (only if website accepts those special characters), then i think the password strength will get enhanced greatly