Strong password techniques
[2016]
Pasted from https://www.schneier.com/blog/archives/2014/09/security_of_pas.html
I admit I’m in the minority here, but I do not trust any password managers at all. Text files on encrypted partitions.
Do you REALLY need 24/7/365 access to ALL of your passwords from anywhere in the world? Have you ever been at work and really really needed to do something on one of your secure online accounts (financial, medical) that could not wait until you got home? Why on earth accept the additional risk of exposure at any time from anywhere on the planet?
In the USA there is a public service advertisement campaign to urge people not to SMS while driving, with a catch phrase that “It can wait”. Guess what – whatever you’re doing online can wait, too, whether it’s until you get back to your hardened personal machine or until you copy a complex random string from your encrypted text file.
Don’t tell me any of you people are telling the truth on security questions. What’s your favorite pizza topping? Concrete. What was your third grade teacher’s name? Buzz Aldrin. What’s your pet’s name? Mozzarella and ricotta. Save these domain-inappropriate lies to the same encrypted text file as your passwords. You’ll need them often because you also delete cookies and get asked for security questions frequently to reconfirm your identity. Right? Right?
Password Hash • September 5, 2014 1:33 PM
Creating good passphrases that are easy to remember can be difficult but I have found a way that it is easy for me.
Think of a sentence with 15 words or more, I usually use 25 to 30 words, and then use just the first letter of each word to create a base passphrase that can be easily remembered.
Then hash the base passphrase and then use the hash of the base passphrase as the actual passphrase that you use to create PGP keys, for symmetric key encryption of files, for passphrases for cloud storage, and for email accounts.
For best security I use the Tails live DVD to create hashes of text base passphrases for PGP keys, for encrypting and decrypting files, for creating symmetric encrypted files, and for logging into cloud or email accounts.
The Tails 1.1.1 live DVD has a checksum application included, called GtkHash, and you can generate a number of different hashes of text or documents.
Example:
For best security I use the Tails live DVD to create hashes of text base passphrases
Base Passphrase: fbsiuttldtchotbp
Checksum using Digital Format Lowercase Hexadecimal setting.
MD5: f108158e11be54977eea4dab446f12dc
SHA1: 183a4c4b6ba8bc17d41dcc9575c8c2917e621f98
SHA256: 9a3eec53c7757d19ca84d648ec6bc108a650ed5143430ea0b2be420ac0060f2c
Checksum using Digital Format Using the Base64 setting.
MD5: 8QgVjhG+VJd+6k2rRG8S3A==
SHA1: GDpMS2uovBfUHcyVdcjCkX5iH5g=
SHA256: mj7sU8d1fRnKhNZI7GvBCKZQ7VFDQw6gsr5CCsAGDyw=
Keep in mind that I am not worried about the possible vulnerability of MD5 and SHA1. I am only trying to create passphrases that could not be guessed, or gotten with a dictionary attack or brute force attack.
As you can see an easy to remember base passphrase when hashed creates a much stronger passphrase.
What do you all think of this manager-less approach
Pick a long, complicated password root
A7b546!pkBtwl87
Memorize the string and then add keywords to the end relevant to each login
A7b546!pkBtwl87 twitter
A7b546!pkBtwl87 facebook
A7b546!pkBtwl87 bank
A7b546!pk*Btwl87 email
This way you get a long, hard to crack password that is easy to remember (once you memorize the random string) and can be used on multiple sites but still protects you from offline attacks as the hashes are all different due to the “pin-like” keyword.
I’ve been using this scheme for a while and it works well for me. I’ve written about it here.
http://sidfishes.wordpress.com/2014/03/28/a-password-scheme-you-can-live-with-and-is-probably-pretty-secure/
the issue with that is that if one of the websites you use is compromised
and a thinking human sees something like C!mplIc3t3DPassWdtwitter they’ll know to try it on a few other big websites substituting out the suffix.
I realize password managers are a practical necessity for most user, but they are a horrible kludge. Passwords were designed to be memorized by users. If users cannot remember them it’s time to move on to something else.
If you have the computing power to run a password manager you usually have the computing power to run a better challenge-response, perhaps based on public key encryption or zero-knowledge proofs.
This could solve a lot of problems, including cut and paste, poor server side
security, eavesdropping, and would allow users to seamlessly chose more secure hardware implementations if they cared to.
A password in a password manager is not “something you know”, it’s “something you have”. Time to change the model to what we are actually doing.
Many sites (relying parties) actively work to defeat password managers. Banks and enterprises do this. They want to know that the human of interest was truly present at the time the authentication happened. Also, most password managers run on OS’s that are not that trustworthy.
Seems to me that password guessers are good and getting better so much so that there are no passwords that we can expect the general population of the Internet to be able to remember that will also stand up to password guessers. When bruce showed that the XKCD password scheme wasn’t strong enough, I came to this conclusion.
This means that web sites MUST a) have a password guessing throttle and b) not lose the password data base, even if it is encrypted.
Those of us that want to take the trouble with really long password can to defend ourselves against web sites that don’t do the above, but it is too much to expect most people to do so.
A long term solution to this may be FIDO or FIDO-like systems involving biometrics and secure execution environments like smart cards, TPMs and such. The cool thing about these is that the server only stores public keys. The scary thing is that you have to trust the smart card, TPM and such.
A password manager should be strong enough even for a compromised environment. Which is most likely the case in the real world. A few seconds access to your manager password compromise everything you have. A zero day access malware could install for few minutes, enough to take your main password and data file then auto-erase forever.
- assume that the existence of some password managers it to get all your data at once. If you memorize several passwords its hard to get everything individually.
- assume that every keyword you type is logged - it should allow virtual keyboards which should have some kind of protection against mouse click recording (variable letters position etc), fake mouse clicks, fake keys, obfuscation (like pushing abc in keyboard buffer then backspace) or image passwords.
- assume that the clipboard is logged. The password manager should try to overload and mangle the clipboard, if something is stored there probably will be a big file on disk. There may be other methods too.
- also you may assume that the keyboard buffer is logged, in case of direct key push.
- There should be some other protection against other side attacks like memory dumps etc.
- Best keep data file on an external device.
- the key stretching functions or the decryption routines should have enough loops to make everything slow to protect against possible brute force attacks.
- A password manager should allow plugins for adding custom data encryption over the existing one.
- and of course to be Open Source.
- assume that every password you enter from keyboard has low entropy to be brute force by a lot of organizations. Probably a 20 characters long password even with digits, caps and other characters is a matter of minutes for a huge botnet network or a security agency supercomputer or custom hardware decryption device, depending on encryption used.
- choose as long main passwords is possible, with all characters / digits combination
- you can memorize part of it, put other part in your wallet, and a third part of the main password be from an image generated password..... like moving the mouse on the picture to certain position.
- never use only dictionary words, but in case you do just modify each one… like adding “^_$” after the third letter, doubling / triple fourth letter, changing cases etc
The password remain the best method so far for to personal access. You cant change your fingerprint for every website, everything relays on fingerprints reader on client side, if this is compromised what you gonna do, cut your finger? Use your toe?
, the usage of password manager is also important, not only its existence. If you’re using Windows, always remember that most likely you are running important programs with the same user as all other installed software.
If you are logging to your online bank account for example, stop all other running software, restart your browser in safe mode (“no addon” mode, not “porn” mode), so the browser is “clean”, I mean only Microsoft or Mozilla can take (steal) your password, not everybody. Then you can input password with your password manager.
As for Android, every app you install wants access to everything, including camera and contact lists, you never know what they really do… Cant do much without root.
As @ronys reminded, a password manager cannot be more secure than the platform it runs on. Perhaps a re-read of the Ten Immutable Laws of Security is in order (http://technet.microsoft.com/en-us/library/hh278941.aspx), especially #1 and #4.
Nothing is foolproof, but KeePass’ manual autofill is better than typing.
Pasted from https://www.schneier.com/blog/archives/2014/09/security_of_pas.html