Schneier on Security
A blog covering security and security technology.
« Another Failed Copy-Protection System |
| Security Alert Humor »
June 17, 2005
Write Down Your Password
Microsoft's Jesper Johansson urged people to write down their passwords.
This is good advice, and I've been saying it for years.
Simply, people can no longer remember passwords good enough to reliably defend against dictionary attacks, and are much more secure if they choose a password too complicated to remember and then write it down. We're all good at securing small pieces of paper. I recommend that people write their passwords down on a small piece of paper, and keep it with their other valuable small pieces of paper: in their wallet.
Posted on June 17, 2005 at 8:40 AM
• 133 Comments
To receive these entries once a month by e-mail, sign up for the Crypto-Gram Newsletter.
Why not just use a combination of words and numbers you can remember, and mix in some 7331 speak? I find this to be easy to do. Example Th0M42Y0rk3
julain: because this is exactly what everyone else does too!
And if you lose your wallet? If there is a piece of paper written "Th0M42Y0rk3" down to it, of course nobody will suspect this to be a password? Probably for you email@example.com account? Hmm!
Has any one heard of the Diceware way of creating passwords? Sounds like a good idea if the password is made long enough.
The current situation with website passwords is such a mess. I have found that the best way to handle it is to use only "good" passwords, but also to have a grading system, so that one uses a graded password on sites with the same level of desired security. More "secure" passwords are used less frequently. Obviously this has several weaknesses, but it does have one big advantage in that it reduces the need to memorize many passwords.
I also tend to find that the super-sensitive passwords for online-banking tend to stick in my head after a while, just because they are so important. That said, I do have every password written down, but I leave that little black book at home.
Cool. Great advice. Like most great advice it is simple and flies in the face of conventional wisdom. While security auditors are fond of telling stories of finding passwords under keyboards they would be completely stumped if the end user's had their passwords with them.
Of course, it would be great if applications would block the obvious behavior of dictionary attacks.
My idea for a reverse attack on a large body of accounts, say Yahoo! : Since you know that a signifigant portion of users have easy to guess passwords, and you know that every username shorter than eight characters is in use just run the short list of passwords (starting with "password") against a list of *usernames*!
The attacker will not get a specific account but he will get accounts.
Use a password manager. I recently started using KeePass, and it's a wonderful piece of software, especially since I can keep it on my pen drive, and backed up elsewhere.
To generate the passwords I store in the database, I typically go to random.org and use it to generate a random password of bytes converted to hex or straight digits. For an auto insurance policy I recently purchased, that is how I created the online username and password. Both are random bytes converted to hex.
jens: the purpose of this method would be so you dont have to write it down....Of course the problem comes when you have to come up with multiple passwords like this, but it works for the most part
It is worth noting that often times the best password is that annoying series of letters and numbers on the bottom of your keyboard, mouse, telephone, random box in the office, etc. Those "random object" passwords are extremely hard to guess for anybody whom doesn't actually have access to your desk............
having 2 or 3 unrelated words separated by numbers tends to be reasonably easy to remember.
Unfortunately a written strong password is potentially more of a risk than a somewhat less strong password that is never committed to paper.
one recommendation I heard a while back was to mix in other information into the passwords when you write them down...like your phone number or driver's license number or address, etc, etc - stuff you know very well already...
so on your 'password sheet' you could have
which in this case, contains a fictitious phone number, address, and 4 passwords
I suppose you could even put multiple lines (some being bogus, just to add more fluff -- you just have to remember which line your real data is -- but you could do this by making the address or phone number wrong, or something like that)
just more food for thought...
i write mine down in a small notebook and keep it in a lockable (but usually unlocked, for easy access) drawer in my home desk. All the common sites I visit away from my home desk, i can remember the passwords, and if i need to get into any of the obscure sites I can't remember the p/w for, i can generally wait till i'm at home and can look at the notebook
I've been creating a 3x5 card for each site with the info needed, including date signed up and anytime I used a credit card there, which card and the amount. The cards are in a decorative box nearby.
Yes, someone could steal your wallet, but then your web site passwords may be the least of your concerns. Also, depending on how many you record, it may not be obvious to anyone which site and username goes with the password, so they'd be useless unless the person stealing your wallet also knew you reasonably well.
One simple trick people who do write down passords use is simple encoding. For example, just add one or two extra letters at the front or end of the real password, use simple rotation, etc.
For example, Tj7e4uI@ could become:
4Tj7e4uI@ (just remove the first char)
Tj7e4uI@5 (just remove the last char)
@Tj7e4uI (just put the first char in the last position)
tJ7E4Ui@ (just switch the case of all letters)
Anyway, such simple coding is helpful for all sites that don't allow dictionary attacks, such as those that lock out (temporary lock is best to avoid easy DoS) after a few missed attempts.
But I prefer to use PasswordSafe on my desktop and laptop. Of course, this doesn't help for those few accounts that I may want to access when I have neither, and so a simple paper record that's encoded using such techniques is quite good because a typical thief will have no way of knowing.
Obviously, you can also encode your userid, the web site it belongs, to, etc. using similar techniques.
One of the most interesting ways that I've heard of to create strong passwords is to use a pattern of keystrokes from your keyboard, i.e. a circle of all the keys around the 'F' key for example, or an inverted V starting at the 'x' and ending at the 'b'. Type it once or twice and sense memory kicks in, making it easy to remember but difficult to reveal to someone without actually typing it on a keyboard. Hold down the shift key for one or more of the keystrokes, and make the password even stronger
I have a copy of PasswordSafe and its database on a USB thumb drive. I run PW from it and carry it with my car keys.
For sites that require a lower level of personal security (i.e. sites unrelated to your finances), I use this method, which is simple to remember:
1. Come up with a pass phrase, around eight words long, including a proper name or two: "Dick and Jane like to go to Landsdale, Michigan."
2. Make the acronym for the phrase: "DaJltgtLM"
3. Tack onto the end of that the audible acronym of the website in question: "amazon.com" becomes "adc"
4. Full password for your amazon sign in: "DaJltgtLMadm"
Notes: I wouldn't necessarily consider Amazon a lower security needs site, as they can store your CC information for 1-click purchasing. It's just an example here.
Also, this is not the actual sentence and web-site specifying protocol that I use.
Advantages: fairly long passwords that incorporate both upper and lower case, and can also include digits. You only need to remember a single passphrase, and whatever algorithm you come up with to make the password different for each website. Nothing needs to be written down. Once you have the pass phrase in your memory, you will not lose it, short of brain damage.
Disadvantages: An unscrupulous moderator with access to your clear text password at one website (some public bulletin board engines save passwords in the clear), could realize what you're doing, figure out your specificity algorithm and apply it to other sites you are known to frequent. For that reason, you should use a better system than one shown above (say, pulling the first four letters of the domain name, keyboard shifting it one row up, then populating every other letter of your passphrase with the result, giving you "DqajJqlatgtLM" - a good password, recontructed in ten seconds from the passphrase and "amazon.com"). So your password is only as safe from this sort of prying eye as your algorithm for specificity.
writing passwords down on a slip of paper and sticking it in your wallet basically just turns a password based authentication scheme into an ad-hoc token based authentication scheme (with the user playing the role of the token reader)...
it seems perfectly reasonable to me, but how many passwords are you really going to store that way? if you're just worried about passwords for websites (and i have many times many of those), mozilla/firefox can store them for you and encrypt it's password store with a master password (same idea as password safe but integrated into the browser) which seems much more convenient if you ask me... and of course if you need them at some other computer you can use firefox from a usb drive (which brings us back to tokens)...
I usually leave my passwords at the default. It makes tech support calls a lot easier...
Patterns such as that are easily searched, making for a weaker password.
I keep my passwords (up to about 70 now, some not so recently in use) in PasswordSafe, though I need to put a copy of the password in a safe deposit box (just in case, you know). The government could get to it if they had to, but it would be pretty unlikely for anyone else to get to it.
There's always a weak spot to any method of hiding data. Strengthen the weak spot, and another weak spot takes its place. One just needs to find a point where one is comfortable with whatever weakness is the most visible.
Microsoft? Come on, we're talking about a firm who people generally hate and use their products only because they're forced to (so I wouldn't take anything they say too seriously). To me, a big list of passwords on paper is clumsy and long passphrases are generally cumbersome. This isn't an easy problem to fix (it's easy to say passwords don't work but much harder to completely replace them). What would probably be better would be a small little device that you could carry with you (perhaps attached to a keyring) designed for storing passwords for easy access.
This is a never ending battle. Most of these posts seemingly apply only to the security concious user (those of us reading this blog). I assert that the less informed user (the majority) is not as concerned about what their password is and where they have written it down. There will always be a desire to have stronger, more secure passwords. However, as long as there are users that are not informed of the ramifications of such a breach, sticky notes under keyboards (or fill in your favorite method here) will always be there.
It seems that this notion should be taken to an extreme: Password Policies should begin:
> Get a pen and a small piece of paper that you can fit in your wallet, purse, or anything else you have with you at all times.
> Done? (y/n)
> Write this down:
(a 10-character random string in a graphical format ... no copy/paste)
> Done? (y/n)
3) Do not lose your sheet of paper. Do not keep it where anyone else can access it.
1) Enter existing password.
2) Repeat steps 1 - 3 above.
Just started using PasswordSafe and a thumbdrive for this. Apart from the awful database compatibility issues when moving between Windows and Linux, I have to say that PasswordSafe is delightful -- very nearly the right tool.
This is great timing... I just gave a security awareness presentation where this was one of the topics. My advise was to take a short phrase, do some creative (i.e. non predictable) substitutions and use that as your password. Then you can write down your phrase as a reminder without revealing the password. The other suggestion was Password Gorilla (a multi platform variant of Password Safe) and a USB memory stick.
@Jens if I lose my wallet the attacker will already have my credit cards....
I'm working on a way to keep a password in the back of my eyelids so that only I can see it.
Making users remember complex passwords creates a disruption in the normal flow of business. I like the idea of blank passwords.
You guys need to wake up and smell the roses! Blank passwords? Default passwords? This is exactly what attackers are looking for! I recommend that you employ a security-by-obscurity methodology and create one generic login that all users login with. Make the password complex. That should reduce administration to acceptable levels and give you the level of security that you are looking for...
The method suggested by lome is also useful to avoid keyloggers. You mix other information with the password, then you type that mix, but you copy/paste (using the mouse, of course) only the password.
People have been saying that storing your passwords in your wallet is fine, because if you lose your wallet you will have lost your credit card, etc anyways.
One important distinction though, is that you can call up your credit card company and render it useless to others as soon as you discover the loss/theft. Also, you will get a new one you can use very quickly.
It's not possible to do the same thing with your unique password list stuffed in your wallet. Even if you were clever and made it difficult to use by someone besides yourself, chances are you wouldn't be able to recall all the passwords.
Keyloggers can monitor any copy/paste operations too.
I wouldn't want my whole way of life compromised if someday I lose my wallet.
I keep all my secrets AES encrypted on a USB hard drive that I carry around with me. That way not only can I have passwords that are too strong to remember, I can have passwords that are too strong to type in accurately!
I just use "password" for mine. It's easy to remember, and not too hard to spell.
I use the system demonstrated at the following site:
It uses a master password hashed together with a site identifier to generate a strong password. I love it!
We all have a better tool : our brain!
Just train it to remember everything, every hour, every day ...
Lots of people posted great password generation systems. The problem with all of these is that most of us need 10s or 100s of passwords.
And also consider how easily your entire system could be cracked if two or more passwords are compromised.
Personally, I think storing them (on paper or in encrypted bits) is a lot safter than constantly having to contact tech support to have it reset.
Password Cards --
If you can remember a long random password, choosing one is as simple as dealing cards from a deck:
You print out a set of cards with letters and numbers on them. Then shuffle, deal, memorize, and reshuffle the deck.
A number of people say you use passwordsafe or similar. The question still remains; how to you generate and remember a good passwordsafe password?
Because Password Safe holds usernames, sites, and password (and other products even more info) this make you passwordsafe on you USB more valueable then $%#Dfgfsd written on a piece of paper in your wallet.
@Bruce. I might start learning to pick pockets, so if you every visit Australia I can commit a major l33t hack and publish your passwords on the net :-)
I don't this we have problem with generating random password.
I have a problem with remembering random passwords.
@Aaron (Posted by: Aaron at June 17, 2005 05:02 PM)
The password generator is an excellent tip, thanks for that.
Similar to password safe, a single master password to encrypt the password set, but with the generator it becomes a virtual safe.
Anyone see any flaws in this? I don't.
The article reminds me of the futile arguments I had as a system administrator with academically trained auditors who insisted I had to enforce password aging - make people change their passwords every month.
I thought it was brain-dead. It reduced security because it forced people to remember even more passwords, and increased the probability that they would write passwords down on postit notes. This cut no ice with the auditors, who dictated as their textbooks had told them to.
Since the conventional wisdom was also that writing down passwords was insecure and so strictly forbidden, it left users with nowhere to turn. On the other hand it kept the helpdesk in secure employment on the constant flow of password reset requests. A side effect was the obvious potential for social engineering attacks by impersonating another user on the phone and getting the help desk to reset their password. The help desk was so inured to the requests they did it by rote.
I told the users to use password safe and not tell anyone. If discovered one could always argue the semantics of "to write down".
Don't write down your password. Write down something that will allow you to remember it. I have a piece of card on which passwords are noted, but you wouldn't find any actual passwords on it. You'd see phrases like "amazon: first version, original digits plus three", or "ebay: third version plus digits of second version". The amount of stuff you have to actually *remember* becomes very small; the card is a set of mnemonics for it.
I must agree with Dave on the later response...
A neat idea i ran into a while back was using inkblots as the basis for a new type of password system. The idea is that most people see very different things from the same inkblots, so you present an user with a series of computer-generated inkblots, the user generates a password based on what they perceive in the images, and thereafter whenever the password is required you just present the user with the inkblots. Initial limited testing found users very receptive to this, as the system was very intuitive and the inkblots were very effective at triggering recall of passwords.
That URL was unfortunately the best source of info i could find; the paper at Microsoft, where this research was done, seems to have been taken off-line.
Yes, they can, but most don't.
One could also use an alternative method to enter keypresses for passwords, for example running osk.exe (in Windows). That might fool a number of keyloggers.
I notice that several people here have described in detail how they generate and store their own passwords. And then decided to broadcast that information on the internet. Given that this is a security-related blog, wouldn't you assume that readers might think twice before doing this?
I have my own homebrew password solution of which I'm rather proud. It works well for me. But I'm damned if I'm telling you what it is. So there!
I was thinking about differing password policies and came up with this (which I tell my users to do).
Most of my users seem to use obvious passwords, like their firstname or their child's name - they are simple and easy to remember, e.g. John.
I could enforce password complexity on a domain, but how many of my users will remember something more cryptic, e.g. 4jKlm4in, not many I expect.
I've found that rather than asking them to remember something complex (and to stop me having to reset it every week when they forget), it was better to ask them to make their original simple password - in the above case 'John' - more complex but something they could still remember.
So, rather than telling my users to create a 'password' I tell them to create a 'passphrase', and give them some tips and examples. Now rather than using only 'John', a user might use something like "My son's name is John" - it's easy to remember and relatively simple, plus they can make it harder to brute force by adding special characters and/or punctuation.
I keep a list of passwords on my Palm machine as a private file, and then set Security to hide private files. If I need access to it, I unhide private files by entering my Palm password, use it, and immediately hide them again. Not perfect, because someone can probably hack into a Palm if they have possession of it.
just sprinkle a number that means something to you here and there into a name that means something to you and you'll be able to remember it just fine. i flatter myself to suppose that i even have anything going on in my accounts that's interesting enough to hack into.
KeePass has a password generator built in -- just tell it how strong you want the password to be, and then save it in the database.
I do agree with you that having the database and password manager on a thumbdrive is little safer than keeping the passwords in your wallet -- even if you encrypt the DB, it's only as safe as your master password. It makes more sense to me to keep the database encrypted on the hard-drive, but keep the key on the USB drive (of course, if you have to use multiple computers this might not always be possible).
Loads of new ideas for storing and generating passwords. I also noticed that most of these also have names associated while responding with hints all through out indicating how they use passwords. Thats it for security.
The topic is not about generating and using strong passwords but how to secure these created passwords. Personally I am against writing it on a piece of paper. Use an electronic tool and use synchronisation to back it up to a secure place with every log off.
"Not perfect, because someone can probably hack into a Palm if they have possession of it."
Regrettably, at least for versions prior to Palm OS 4.0, that is indeed the case. See:
If you wish to keep sensitive information on a Pam Pilot (or any other PDA, for that matter), you should encrypt it. Fortunately, there is an embarrassment of choice, with dozens of encrypted MemoPad replacements available to download for free.
CryptMe has an interesting solution for passwords: On a credit card size paper, you have random generated letters grid, with a row and a column header. You only have to remember the start coordinate (Row/Column) and a navigation rule ( my password takes 6 letters horizontal and 4 letter vertical).
I combine the use of PasswordSafe on a thumb drive with a collection of 3x5 index cards (one card per password, secured at home; higher-security sites don't get written down).
For some sites, I'll choose a more memorable password (e.g. taking an old movie title or short phrase and interleaving the letters from each word, then applying various popular transforms (e.g. 1 for l, 2 for duplicated letter, etc). "Bull Durham" might become "bDu21r1h". If I can't remember the password, I can remember the process I used and recover it.
Still, I'll be happier when the thumbdrive choice is more universally portable between MSWin and Linux.
And before too many theorists "attack" my methods as susceptible to an expanded dictionary attack, I'd be interested in informed opinions comparing the randomness of various perturbation methodologies against more purely random passwords.
That is, what fraction of the "total" random namespace is covered by each of various methods of forming passwords? (GF name; simple word; 7331 subs; interleave; etc) And how much coverage is necessary to thwart practical dictionary attacks for various purposes? Has anyone published on that particular question? Online links?
If you are manageing more than a few accounts, credit and bank card PINs, door entry-codes etc, then recording them in some way is the only reasonable way to work. However, it's worth obfuscating the information in some way so that possession of your aide-memoire does not give trivial access to the secured resources. I would recommend writing things down, but in an obfuscated manner that is easy for you to decode, but difficult for someone in possession of your aide-memoire. I would value having a set of obfuscating methods that could be taught to end-users e.g. if your bank card PIN is 2847, your credit card PIN is 9304, your work door access code is 5371 and your work userid is pe049316 with password blue5dogs how would you write this down in a sufficiently obscure way?
@ 'Clive Robinson'
Sorry, I didn't make myself clear. The problem is not choosing passwords, it is obfuscating passwords already chosen (not necessarily by me), and not easily or trivially changeable. I have 5 bank/credit card PINs to remember; one door entry code; three work (non-web) user-id/password combinations and umpteen web-site passwords. In most cases these are not chosen by me.
I do not think this is atypical. In addition to the above, I have a huge number of non-work related PINs and website passwords to remember. The average not-particularly-technical end-user needs a sensible method of obfuscating information like the above, that doesn't involve using PDAs or other electronic fripperies. The 99c pocket-book and pencil should be enough.
So, how to write down a PIN in plain sight? Don't use a fake phone number, as these are spotted very easily by criminals. However, writing down the following sequence:
is easy. Where is the 4 digit PIN? Any end-user can do this, especially if you add another level by, say, subtracting 1 from each digit of the PIN, or adding 32 to the written down number to get the actual PIN.
That's PINs dealt with. A similar technique can be used for passwords, and there are variations. I use these techniques (obviously not the exact ones I've listed above), and I'd be interested in (a) collecting more techniques for teaching to end users and
(b) reading any securty analyses on such techniques to determine which, if any, is 'best'.
While I find this discussion interesting, I must admit I am a bit at a loss as to why studies in this vein persist. Static passwords are bad, and are not likely to get much better. Between problems with protocols (LanMan Hashes, Cisco's LEAP, etc.) and new techniques (rainbow tables), I see no reason to believe that moving to still longer passwords is going to make a significant difference for long.
We know that users chose bad passwords and will often actively work to bypass quality provisions. We know that it is typically possible for users to remember, after a couple days, their primary password, and so won't consult the slip of paper regularly. We know that attackers can, and will, go to great effort to get information from corporations. Given all of this, it is safe to presume that educating our users to write down and carry a list of passwords is likely to encourage attackers to steal said lists. Since the users won't be using the lists requently, days, if not months, could go by before the compromize is discovered. This improves our security how?
It is well past time for the static password to go the way of the buggy whip and the dodo. Other solutions exist (tokens, certificates, etc.), we just need to stop allowing vendors to continue producing security "features" which provide no security.
A comment on "The Curse of the Secret Question", from 11 February 2005.
Here is a strategy for choosing Secret Questions, based on the often cited and practical method for choosing reasonably strong, easy to remember passwords: i.e. taking a memorable phrase, and making an acronym using the first letters of each word (and adding uppercase letters, substituting numbers, adding punctuation/special characters). i.e. the song lyric "Yesterday, All my troubles seemed so far away" = Y,Amt55fa
Reversing this strategy may help with secret questions: if the site allows you to enter your own secret question, then make the acronym the secret question, and the resultant phrase becomes the answer (in this example, I am sure that without having read this, very few people would be able to guess that y,amtssfa = “Yesterday��?).
If you choose a couple of your favourite songs of all time, you have a several questions ready made. And by sticking to only those all-time favourite songs, then the acronym should be enough for you to easily trigger the lyric/song title.
Song lyrics can be a good to use, because many people love music (and so there is something emotive/interesting for them to draw upon), and musical tastes are very individual (so individual acronyms will not have much meaning to broad numbers of people), and the brain stores memories of musical tunes and lyrics in the auditory cortex (which is a different part memory that may be easily triggered, and may not be so fatigued).
The method I've been suggesting to people for a very long time is to come up with a simple "formula" for their passwords based upon the site, location or business that the account is associated with. For instance, if one had an account with an organization called XYZ Corp. one could do the following:
1. Start off with a six to eight character word that is easily remembered. This can be the name of one's spouse, child, or whatever people typically use as a single word PW. For instance, someone might use "schneier" as their base password. This is basically just to get the character count up into the minimum range for a password on most logins.
2. After the end of the base word add one or two letters from the site, organization, etc. that one is logging onto. For XYZ Corp. the user might pick the first and third letters of the name, X and Z. The password is now "schneierxz"
3. A number based on something like the total number of letters in the basic organization name. For XYZ, Corp. that might be 3.
The overall password comes out to something like "schneierxy3" based on the above method. The same person might log into ebay using the password "schneierea4" since "e" and "a" are the first and third letters of that organization and there are four characters in the basic name, and onto their paypal account using "schneierpy6" as their password.
Using some method like the above allows users to create unique passwords on all their accounts, yet remember them all using the same basic formula.
Of course, the exact method should vary from person to person. Parts #1, #2 or #3 might be done in another order to come up with "xz3schneier". One user might use the second and fourth characters of the organization name rather than the first and third. One could also do things like use the previous or next sequential letter(s) of the first several letters in the organization's name. Someone logging onto an IBM website might use the alpha character sequence "HAL" (the alpha characters before I, B and M in that organization name.) One might choose a numerical value based on the number that the first letter in the name comes from in its order of the alphabet. A is 1, B is 2, C is 3, etc. Whatever one thinks is appropriate, so long as it is easy enough to work out by looking at the name of the organization at the top of the login/identification screen.
This method of creating passwords is certainly not going to outperform any software meant to crack passwords by trying every letter/number combination for every possible combination of eight to twelve characters but it does make for a casual and easy to remember method of coming up with alphanumeric passwords that are unique to the login.
As a Windows security expert, I see that it is imperative to migrate all systems to Active Directory. Kerberos is unbreakable, and therefore the complexity and length of passwords is not relevant. Therefore, users can choose any password of any character amount and remain secure. Thanks!
"Kerberos is unbreakable, and therefore the complexity and length of passwords is not relevant."
Actually, the first protocol exchange of Kerberos, where the Authentication Server is asked for a TGS session key and ticket, _is_ vulnerable to a dictionary attack on the user password. This packet contains several known items encrypted under a key which is simply a hash of the user password.
All subsequent exchanges use strong keys, so you're safe if the attacker missed the initial logon; but if he records everything right from the start, not only can he derive the password via a dictionary attack, but can then use the TGS session key to find all the other session keys as well.
IOW, a user password for Kerberos does need to be strong as it bootstraps the whole system.
This is actually true of all user password based systems, except for a relatively recently discovered family of protocols known as EKE, and a close relative called SRP. In these rather beautiful protocols an attacker, either active or passive, has no better chance of finding the password or session key than of guessing the password correctly on his first attempt. Consequently under these protocols even a 4 digit PIN can be adequate strength in some applications.
I don't see what all the fuss is. I have a fairly normal memory (don't tell me your name.. I'll immediately forget it :-} ) but I have no problem remembering the "more than 8 digit" strong passwords I need for my network (I'm the admin) All the routers, firewalls, Active Directory, Lotus notes, on and on. After typing them a few times they seem to stick. Then again I know 45 digits of Pi off the top of my head.. ;-}
Another option: Don't turn 'Yesterday/All my troubles seemed so far away' into an acronym. Just enter the whole sentence. Unusual punctuation helps.
So, for instance, if the teller at the bank said something memorable to you once upon a time, enter that as your passphrase for the bank's online service. "I'm sorry, but you are overdrawn!" makes sense, yes? Add numbers for enhanced hack-proof-ness. "You are overdrawn! By $10,000!"
The only problem is that password size limits are usually too small for this. A phrase is much more memorable than a word, and much more secure as well. A password generation process could come up with a unique word, a number, and a puncutuation, and prompt the user: Use the word 'consanguinical,' the number 6, and an exclamation point in a sentence...
Makes sense to me. I've been obscuring PINs and passwords as scraps of phone numbers and addresses in my wallet for years.
Passwords, as a user-authentication method, aren't the greatest. However, as Bruce always likes to point out, security is a trade-off. So your password policy (whatever it is) should depend entirely upon the importance of both the data you're trying to secure and the resource you're trying to protect from misuse.
For a www.latimes.com password, a dictionary word is more than sufficient. Unless you're worried about some terrorist hijacking your latimes account and reading all about bombs, thus putting you on some terrorist watchlist, the risk here is basically nil. Actually, the rist is basically nil even in that case :)
For an email account, well... that depends on how important the email is. But in a sense "someone can log into the mail server and read your mail" is only a problem if you're worried about someone deleting messages you want to read -> an attacker that wants to read *your* mail can probably snoop the mail as it travels hither and yon unencrypted. If you're paranoid enough to use PGP, you're in a different class of people who use email.
For an interactive login account, now an attacker has not only the ability to hose an individual user, but if the system is unpatched, (s)he can compromise the system itself. Depending on your cluster design, this can lead to not only data loss (which may be a trivial attack if you have very robust backup strategies in place) but also a downtime in service.
So the quesiton of "do I encourage people to write down their passwords or not" depends entirely upon what password the person is writing down, and what unauthorized access can be gained with that password.
If you're mostly worried about remote dictionary attacks against your assets by a nonspecific threat, then highly complex passwords (written down) are a suitable response. Script kiddies will be foiled by a 10-character string of randomly generated characters, and you're not so much worried about someone picking somebody else's pocket to get access to their electronic resources.
On the other hand, if the data is highly sensitive, and your attacker is going to be a specific individual targeting a specific account, then writing passwords down is not necessarily a good idea. If someone is an official with access to top secret information, they should have to dedicate a portion of their brain to remembering a highly complex randomized string. Even if they use a tool like PasswordSafe, the key that unlocks the safe should be highly complex.
On the whole, I recommend to users that they use two classes of passwords -> passwords for things that they literally don't care about (like their latimes.com account or their slashdot account or whatever) and a second class of passwords for things that they do care about.
The second class then can be protected in a couple of ways. One method is by dumping all of the complex passwords in a password storing mechanism that is encrypted itself (such as PasswordSafe) - here the user can use either a trivial password to protect the safe or a complex one if the safe itself has to be protected from attack.
The user can write down a password or set of passwords, provided the written log is itself protected in some way appropriate for the attackers that may be trying to get access to the log (this may be a null set, for most users).
For people who generate non-random complex passwords (for example, the "first character in every word in a sentence") method, they need to realize that a general attacker (ie, your malicious script kiddie) is probably going to be foiled by most of these methods, providing that the password itself is of a decent length. A targeted attack will probably break the password, since it's not truly random, if it is that particular password that comes under assault. So ANY non-random method of generating complex passwords is more or less equivalent, since they all protect against the same class of attack and fail against the same class of attack.
In my particular cluster, I tell people to protect their password in a way that's suitable for them. For most users, their password does not need to be so complex that it will foil a highly targeted attack -> nobody wants to get access to an undergrad's account so badly that they're going to garbage-dive his trashcan to get his/her CS account password.
Mostly, what we've found, is that the average attack vector into our cluster is independant of how good the user's password actually is.
Our number one attack vector is accounts that are compromised on systems WE DO NOT CONTROL. A grad student uses the same password that she used at somecollege.edu, and her sc.edu account is compromised. The attacker doesn't even have to have root, just access to her sc.edu account. With the account comes the homedir, so the attacker has access to her known_hosts file, and the attacker just attempts to connect to every machine she's ever connected to *from* sc.edu, using the same username/password they have already acquired.
If the target is using the same username/password on multiple clusters, our cluster is vulnerable to EVERY security vulnerability on EVERY cluster that ANY of our users have an account on. We limit this by limited remote login capabilities -> machines that run services aren't accessible by mortal users.
So, for us, a complex (non-dictionary attackable) password is important, to protect us from random password-guessing attacks, and a UNIQUE password is important, to help safeguard against bootstrap attacks. Only slightly less important is for users to limit their vulnerability by not connecting *to* our machines from machines that may be compromised.
Actual "password retention" in the sense of how the password is remembered (either through mnemonics or writing down or storing in some password database) is far down the list in terms of concern.
This seems like a fine idea for many situations.
However, in situations where 3 piece authentication is used, for instance, doesn't this effectively turn the "something you know" into "something you have"?
In a nicely written contribution, an anonymous writer speaks of the sensitivity of email:
'For an email account, well... that depends on how important the email is. But in a sense "someone can log into the mail server and read your mail" is only a problem if you're worried about someone deleting messages you want to read -> an attacker that wants to read *your* mail can probably snoop the mail as it travels hither and yon unencrypted.'
I would like to add another concern for email accounts. On most of the accounts I have, I worry more about someone using the account to pose as me when sending mail, as I rarely get sensitive mail on those accounts.
Wasn't intended to be anonymous, actually. "Browser error"
Given the general lack of sophistication amongst the online populace, it's almost as effective to just forge the header with your email address as the "From:" field as it would be to log into your account and send the mail directly. Although I swap back and forth between Mutt and Thunderbird, I don't normally read the entire headers of any email unless I have a reason to be suspicious or I'm troubleshooting.
So, the possibility of someone hijacking your email account to send potentially damaging or scurrilous mail is there, but it doesn't seem to be a more "effective" attack than just forging your address in the "From:" field. The target isn't really affected by the difference -> if they're going to fall for one, they're likely to fall for the other.
Of course, you're less likely to be sued or have to explain yourself to the wife if the mail is outright forged. However, the possible threat here seems very close to the threat of just having your address "borrowed", so I wouldn't regard it as a very likely set of conditions to deal with.
Of course, I tell people not to believe email anyway :)
Wonder why refuse me on my password/Every time I write down my computer say wrong, WHY/
So what do you do if you loose your USB drive with all your clever passwords on?
>This seems like a fine idea for many situations.
>However, in situations where 3 piece authentication is used, for instance, doesn't this effectively turn the "something you know" into "something you have"?
Yes, that is exactly what it does. That's why we've spent all this time discussing ways to obfuscate the data. If you have (for simple example) a huge grid of numbers with a tiny PIN hidden inside then retrieving the PIN requires something you have (the grid) PLUS something you know (the 'key' to extract the pin). "(3,4), every second digit, down and to the right", or "the 6 digits two rows below my birthday in backwards order" isn't a useful piece of information without the grid and the grid only narrows down the search space to several thousands of "possible" PINs without the information.
Now if I lose my wallet I have also lost my check card, so I'll have to cancel it anyway. As for the rest of my passwords, when I rush home to start canceling credit cards, I'll get the backup copy of the paper hidden under a floorboard in my closet and use that to change all of my other passwords.
That is, in a nutshell, the strength and purpose of everything we've just been discussing, right? These mnemonic systems make handling many passwords much easier but only somewhat less secure. The more complicated system is the harder it will be to use - for you or the attacker; make the tradeoff that is right for you.
(And don't bother breaking into my closet, I just made all this stuff up off the top of my head.)
I have recently come across a product called SECUREPASS 1.1; downloaded it from publisher's site www.securenez.com. The software claims, no password storage and real time creation of a strong password at login time.
Got curious, downloaded the program and guess what, it works as advertised. With IE, one click login is available, there is also an option to copy/paste if password is not filled in automatically - I have rarely used it with IE since most of the login pages of the websites are filled automatically. Also has a USB option for portability. The great thing is no passwords are saved or kept anywhere.
Works best if you go through a password change once for each of your sites and use the SECUREPASS generated password as the new password. Every site gets a unique high strength password that is only created at login time and then destroyed.
After trying many password managers, I feel this one is the best so far. This is the only one that hits on security and convenience at the same time. Try it out for free, price is only $14.95.
Would love to hear some feedback on this product from others.
I cannot remember JACK these days. Getting older is a bitch. I am not sure why so many people are spending so much time using scarps of paper and ballpoint pens to create a password vault? Are there not software products that can do this for you?
Several of my friends have used different form fillers and password managers with different levels of success. What I was looking for was a product that would replace my poor passwords with secure passwords, manage all these passwords and then provide a FAST and secure one click login.
A friend turned me on to a little application called SecurePass which creates secure passwords to replace all my poor easy- to-remember ones, manages all these hard to remember passwords and provides easy one click log-in when I want to go to a password protected site. I never need to remember anything, and at my age there is already enough to remember (and forget).
It does take a few moments to set up all your password protected sites but once you are set up - you are good to go. You can simply highlight a site in the SecurePass menu and with one click it launches your browser, takes you to the site, automatically places your user ID and secure password into the appropriate location– on click and you are logged in.
The really amazing thing is that this software does not store ANY passwords, anywhere, ever. There are no password folders or encrypted passwords stored in any location. This application actually ��?re-creates��? the original high strength password each time you visit the site and then completely destroys it after login. There is no trace of a password on your computer until the moment you login, after login - zap, it is destroyed until you log in again. Seems like a great aid to those of us who cannot remember long complex passwords and are concerned about security issues
it's 1337. unless you meant teel, which i doubt.
I have over 200 passwords. How many little scraps of paper could fit in my wallet?
The only responsible thing to do is to choose - and use - a password manager.
Try this, it's free: http://www.passpack.com
PassPack is a valid alternative to carrying around a USB keychain. It's an online service so it can be accessed 24/7. So even if your computer were to catch fire, which wouldn't be very fun anyway, you wouldn't loose all your passwords.
An additional obfuscation technique I use for more critical passwords/phrases is tabling.
Assuming a phrase: ABCDEFGHI
putting it into rows in a symmetric table and then taking the columns ruins any inherent phrasing pattern: ADGBEHCFI.
If you decide on a fixed asymmetry for your tables, and perhaps select a standard for which columns you read in reverse, you can store your passphrases on paper in untabled easy-to-remember form, and do the tabling in pencil on a chip of Formica or such. Once you've typed in the entabled password, smudge out the table with a moistened finger and it's gone.
I have this in my .bashrc on Linux (and on my USB memory stick which has my password file):
if [ ! -f $ENCRYPTEDFILE ]; then
echo "No password file."
gpg -o - $ENCRYPTEDFILE > $TEMPFILE1
if [ "$?" != "0" ]; then
cp $TEMPFILE1 $TEMPFILE2
diff $TEMPFILE1 $TEMPFILE2 >/dev/null 2>&1
if [ "$?" != "0" ]; then
while [ "$CODE" != "0" ]; do
gpg -o - --symmetric $TEMPFILE1 > $ENCRYPTEDFILE
wipe -fs $TEMPFILE1 $TEMPFILE2
Without knowing the threat model, it's not reasonable to give a single advice how to handle passphrases. In 99% you may safely store them in an unencrypted file on your computer because there is no threat in the first place. No bank will give you your money back if they figure out you were carrying your credit card PIN in your wallet. If you're only worried about remote attacks, there is certainly little reason against writing the passphrase down. However, if the threat model includes local attacks like real-life theft, I don't see how it's reasonable to write it down.
For example, imagine you travel to the USA and they confiscate your notebook with sensitive encrypted data at the airport. This happens quite frequently nowadays. If you carry a piece of paper with the passphrases around, they can just take it from you. That means your security is nil. If you only carry the passphrase in your head or at least in some master-passphrase protected device, it's up to you whether you want to tell them the passphrase or not. They cannot take it from you.
What about having a "master password list", one for every letter of the alphabet (or a subset), and then use a them to make compound passwords:
A => a87
E => E@a
L => L00p
P => pt*
APPLE => a87pt*pt*L00pE@a
It might take a week or two to fully commit the list in memory, but then you have a powerful and secure password generator.
A master password list creates a pattern. If they have one of your passwords and they see you just used apple then they can guess different fruits based on that one password. It makes it easier to brute force cased on rosetta stone.
One very good way for most of us would be to use only a few (3 to 5) passwords for all of our needs. Just categorize the type of access required by security levels.
Say category 1 would be the everyday sites you don't need to protect that much. Simple passwords. Category 2 would be the somewhat sensitive sites (I didn't say porn sites, only you thought it!). You can include your email, youtube and myspace accounts for example.
Category 3 would be all your banking accounts. You can also secure it more with an addition to it (one or two more digits for example), making the main category password the same, but all different passwords for added security for your different accounts.
Category 4 could be your main O/S password for example. Don't use this one for too much accounts as this would be only the highest protection level.
This method would keep it simple and secure. And one important thing to do is to change your passwords frequently. But who does that? I know friends who still have the same passwords after 10 years. What's the point of having passwords then? Keep the list of password short, simple for you but hard for a hacker and secure.
No need to write down passwords either, which is, in my opinion, totally ignorant. I'm sure the MS guy who gave this advice only had his grandma in mind, trying to send an attachment in hotmail and ending up calling MS tech support and being too nervous to remember any passwords. But the world is not ruled by grandma's and one major flaw to computer security is social engeneering. Don't make it easy for people to steal your passwords... even for MS techies.
Moreover, using up-to-date antivirus, antispywares and firewalls would also help preventing keylogger/remote control security breaches.
i just dont understand, why, when each time i need help from yahoo or googles..the answered that they give me totally out! is it so hard for them to answerer a very simple question? i dont think that they have kept all the password or username in their record? i do feel upset abt this matter!
create an 8x8 table like this:
now write an algorithm that takes chess games (stored in PGN files) and converts the landing square of each move into its corresponding character from the 8x8 table you created, appending that character to a string. further encrypt the resulting string based on the result of the match. for example, you could use an ASCII-shift of some arbitrary positive integer if white wins and the negative of that integer is black wins. in the result of a draw you could reverse the string and ASCII-shift the characters by +1. again, these are just examples, feel free to use more elaborate methods in your actual algorithm.
now put that algorithm on a USB drive and place the USB drive in a small yet sturdy locked box which you carry with you at all times. keep the key to the locked box on your keychain along with several (at least 15) other keys to mask its identity.
this is the most effective way I know of to keep extremely strong passwords secure without having to memorize them.
You can generate good passwords with a pen, a piece of paper, and a die.
Draw a 6x6 grid and fill the cells with the 26 letters and the 10 digits. Roll the die twice to determine a row and a column and read off the character in the cell. Repeat until you have 12 characters.
I recommend keeping your passwords in more than one place, just as you do with all your valuable data. cheers, wayne
What about this mixture of written and memorized keys (requiring something one knows, and something one has, and no additional software):
1. Create a strong salt password. This will not change and is needed to re-create keys if the wallet is lost. Put it in the most secure place you have.
2. Take the domain name plus account name for every of the 78 sites and accounts you need a new password for. Put it together with the salt password and run md5sum over it. You get a site hexcode. Take the first N digits of it. You will need adjust the length N that you can memorize exactly one important password of that length. Use it to set the login passwords of each account.
3. Create a second password of length N, the master password. Memorize it. Don't write it down. You must not forgot it.
4. Subtract the master password from the site hexcode. You get another hexadecimal number. Write that down. This is your site key. You don't need to memorize it. Carry it in your wallet. If you lose your wallet, worry about the other things in it first.
5. When you need the site password, take the site key in your wallet and the
master password you memorized, and add them in your mind. You get the password you need.
The charm of that is that no extra software is needed, which could have other security holes or create ill dependencies.
As long as you have salt and master, you can recreate any password you need to recover, even if your house burns down.
To parrot a few others above ...
PasswordSafe + USB drive.
PasswordSafe has a good generator.
Generate and store. Afterwards just copy/paste.
Good passwords without the need to remember them.
There are ways to up the security of a password on a piece of paper. One way I came across - has the password "lost" in the mix of other random letters in a typical rows/columns table printed on the paper. You basically print out such a table of random letters and symbols (ascii-94 would be a good idea) and then decide on a pattern or path that the letters in the password follows on the paper. So you would only have to remember 2 things: The starting point, and the pattern.
This would secure the paper from just straight-up reading the password.
It probably won't stand up to indepth analysis but you could probably have enough time to change the password after you realize your wallet is gone.
@ Peter Lind,
"... then decide on a pattern or path that the letters in the password follows on the paper. So you would only have to remember 2 things: The starting point, and the pattern."
There is another way to do it that might be more to other peoples likeing.
You have a square that is 6 by 6 that contains A-Z0-9 randomly (or anyother set that gives you a usable rectangle).
For each of many services you pick a single base word or phrase
"The Lord is My Sheepard And I shall Not Want"
Becomes "TLIMSAISNW" or "TL1M5&15NW" in the usuall sort of way.
Then for each service you have a number written down.
And so on you then use the numbers to shift around the table. All you then have to remember is in which of the eight possible directions (N,NE,E,SE,S,SW,W,NW) it means for each number.
All you need to do is once a year change the master passphrase or table. Each time you have to change a password all you do is change the numbers.
As far as I can tell such a system was used prior to WWII as an identifier code system for shipping etc.
In that system the ships real identifier was effectivly encrypted differently for each hour/day by using different numbers and the table was changed once a month.
Is the system any good well, it was broken but then they had hundreds of ships using the same system and different squares for ship-ship, ship-dockmaster, ship-fleet, ship-HQ etc. So the "indepth" issue came into play.
Clive Robinson: Sounds interesting =)
Norton Security 2009 includes a saved password system which enters them for you (no key-logging risk), and allows you to use separate passwords for dozens of sites that are linked to personal financial data. all you need is one really strong but memorable password to access Norton, you can use the same one or a variation to protect the flash drive file of Norton passwords which you'll backup frequently.
I store the 4 digit pin code of my bankcard on a piece of paper in my wallet.
If the thief of my wallet knows which sequence of 4 digits, in which direction, how many digits to skip and when, in which location on the piece of paper containing hundreds of other random digits and what numbers to add or subtract to them, belongs to my card, he has earned my money ;)
Haven't read all the comments, but here's what I do:
--I have "throwaway" and weak passwords for accounts useless to bad guys. For example, I really don't care if someone takes over my slashdot account and starts killing my karma, so why waste the effort?
--I use my yahoo email as a "throwaway" address (with a slightly better password), only used for signing up on websites. Do you really need all that spam coming from myouterspace.com or DailyKos? About 2 or three times a year I sign in to clear out all the email...straight into the garbage without even reading it.
--Finally, I actually have a rotating roster of good, long, random (at least, to the world) passwords for things that actually could do me harm: Banks, shopping, etc.
Put the effort where it needs to go...everything else goes straight to the circular file.
Just remember what your favourite song is, and use a line of it. Or a book, or a movie, or a poem, or anything you WILL remember.
is a lot harder to crack by brute force than, say
(the acronym) it's easier to remember, and it even includes punctuation.
Only problem is if it won't let you have one so long.
The funny thing is, a few days ago i stumbled upon http://passwordcard.org/
"Your PasswordCard has a unique grid of random letters and digits on it. The rows have different colors, and the columns different symbols. All you do is remember a combination of a symbol and a color, and then read the letters and digits from there"
It's brilliant, cause you can keep this card in your wallet without showing the clear password.
I like Keypass to store and generate passwords
The most secure "paper" is brain.
I tell people to use pass phrases. Most people can easily remember three or four words. Instead of using the dog's name use "My dog's name is Rover."
The problem is sites and systems with stupid and pointless password restrictions that prevent using a passphrase. Worst offenders are those like American Express which limits password length.
My old hotmail address got hacked into with a letter/number combo password. First, I went through and change ALL my passwords to completely unique ones. Now my new passwords always include letters (upper & lower case), numbers, & symbols (!,+,#, etc...) I write them all down too. However, the nerd in me then takes over. I attempt to remember ALL of my passwords even the most difficult ones. I take a sense of nerd pride in remembering some of my most difficult passwords.
I too use the grid system: 10x10 character grid holds 4 of my most important PINs / passwords
@Otar Chekurishvili "most secure "paper" is brain"
If this _is_ true; then only for the moment.
He's absolutely right. There is only a tiny incremental risk to writing down your password, compared to the huge benefits in having a much stronger password.
Consider that if your attacker already has physical access to your machine, then the chances are that you've already lost. For example, what's to prevent him from booting your machine with his boot disk and then copying your drive wholesale to his for later study at his leisure?
I actually remember all my passwords, but I have a system. I have a category of objects, NOT "vegetables" but suppose it is. When I see a new site, I pick the first vegetable that's associated with the site in my mind, prefix it with something from the site, capitalize the start of each word, and add punctuation - in this case it'd be BruceBean. (with the period).
For more secure sites, I just add another word and another piece of punctuation or a number: BruceBakedBean...
Once or twice I had to deal with very secure sites, in which case I add another word that's unrelated and write it down... BruceBakedBeanEmerald4...
But I generally never forget them and have never been hacked.
just write all your passwords an send a self mail. gmail is a great help.
I use clipperz.com to "write down" my passwords. I like it because my passwords are encrypted on my computer and they only see the encrypted password.
They also have a version they you can host it yourself(which is what I use).
I recommend them wholeheartedly.
Put all your passwords in a Truecrypt container. Learn the password of the container and do not write it anywhere. Open the container when you need a password. Simplified, this is what I do.
In fact, it is a little more complex and I know 200+ passwords which are not in the containers, most of them being random key (parts of AES keys without some non-writable characters).
So... Lazyness (to learn passwords) is a cause of lack of security. Should the users be a little more motivated, security would be better.
Yes, I find this funny ! Do not be lazy, learn it, so simple.
Kids should be trained to do this easily. Other users should be motivated to train themselves. It is very simple to learn totally random passwords once you are used to.
BTW if you have ideas of motivations for my users... ^_^
What, really? LastPass is fantastic, and works with really all browsers.
I generate passwords at grc.com/passwords and store them in a plain text file, with my user name for the site. I copy/paste the passwords from these files as needed.
These text files, one for each site, are stored in a TrueCrypt encrypted directory.
The only problem I've run into is that many websites will not mention their character limit when you create or change a password. Several times I've entered a long password only to have it truncated at an unknown length and thus useless.
I insist that all of my staff (through automated policies) also change their passwords every 90 days.
One of the most useful tools that we have is the Keychain Manager for OSX. Any of the Cocoa applications will use the Keychain and the Manager will also generate solid passwords for you!
The internet now has persistence and people can still find posts like this from now 5 years ago.
Is this a policy you still endorse?
I take a random string of ten characters, let's say: "$@4saDsy^#
and I write it down on a piece of paper in my wallet.
In addition to that string, I use some simple, and easily remembered characters. For example, my name. Now where I stick characters of the simple string is my business; maybe I have a complicated scheme, maybe it's just appended on the front or back, or inserted at every other character location.
Doesn't that create a reasonably secure password?
"Doesn't that create a reasonably secure password?"
Simple answer is no if you dont manage your risk.
This is not because there is anything particularly wrong with your general method, it's just not enough in some respects.
Firstly the amount of entropy in a single charecter is an open research question for various reasons, but is argued by some to be as low as 1.4bits and 4bits by others. Thus assuming your 10 "random" charecters remain your "secret", they are only giving you 14 to 40 bits of entropy.
14bits of entropy plus a couple of guessable plain texts of twice the length (that are not pre or post fixes) would be sufficient under certain circumstances (secure comms to a secure site with a hard fail after a limited number of tries/guesses, that you only access from a secure PC in private).
However, due to insecure comms, poor quality sites, malware on PC's and use in public your 10 character "random" string is potentialy not going to remain "secret" for very long...
Thus the question of risk managment arises or more simply "does this matter" and for most sites the answer is no. However this is not really the question that should be asked in a world of multiple sites. The question you should be asking is "what is my potential loss if my password becomes known?"
Thus you still need to consider multiple passwords of varying degrees of security for various sites, and assume that your password on some sites will be known to many others due to poor site security or malware etc.
Personaly I have taken the view of controling my risk by "limiting my liability" that is I do not do "online transactions" of any kind thus have limited my direct financial risk by not taking any.
However there are downsides to this so I did consider getting a "pre-loaded" payment card (ie looks like a credit card to the merchant but has no credit). But most of these have now either been "shut down" or require "on line" or other similar risk payment loading which defeats the reason for getting it...
agree with an early poster...if you lose your wallet? surprised a quoted 'security guru' would suggest such a thing
Multi-factor passwords on paper or USB
We each have a set of favorite words (pets/girlfriends names, sports teams, cars, etc.) that can be expressed by giving only the first letter, like X_____. So make your passwords long, complex and within KeePass or short and on a Post-It Note but just NEVER include all the characters. Then you'll only have to worry about malware capturing them (unless you use a Secure End Node like Lightweight Portable Security).
Do what the big boys do.. hash
Assuming you have a local hash tool (or can find a trustworthy one online) you really only need to memorize one password. Simply use enter website URL (or something about its login page) and your password into a hash generator, then copy-paste the hash into the password box. SIMPLE! (You still need to trust the computer you're using.... so try LPS-Public.)
How about a method of keyboard shifting ? Just pick any password, easy for you to remember and use a keyboard shift pattern like for example 2 right and 1 up. Then apply that pattern to every letter of your easy password and there you have it. So schneier would become Rgik5056 (r is 2 letters right and 1 up from s on the keyboard, first capital for added complexity).
If your passwords are protecting personal data you'll also need to consider how your next of kin can access/use these passwords upon your death.
Just an idea because I don't remember seeing this one anywhere. Go to random.org and choose to make a password then choose advanced mode and then answer the prompts but on the 3rd (randomization) choose "Use pregenerated randomization based on persistent identifier" and enter phrase or word you can remember. Put the passwords in a portable password manager that permits drag-and-drop and use that to enter your password into the password field. Complete the password by entering a few numbers/letters only you know. Therefore you have a system of a secure complex password by drag-and-drop which should protect from keyloggers and not having all your password information recorded anywhere by memorizing a small section. Another alternative to random.org is http://passwordmaker.mozdev.org/... which produces good passwords that also have non-alpha characters. These can be reproduced anytime and anywhere if you remember the method/word/phrase you used to create the passwords.
Re: DigitalGeoff Jan. 30, 2012 1:42 am. Besides obvious choices, deathswitch.com is a possible alternative for some.
There is a good program out there called Password Safe. It's made by this brilliant guy named Bruce Schneier. You can use this tool to create and store all your secure passwords, and then encrypt the password vault with an easy to remember but difficult to crack pass phrase. There's no need to write down passwords. Bruce Schneier should read up on this Bruce Schneier guy.
@Kevin: What happens if the website is redesigned, which occurs with almost every web site every few years. Even if you hash only with the domain name, sometimes that changes too.
My dick wants to go on holiday in Lofer!
Schneier.com is a personal website. Opinions expressed are not necessarily those of BT.