Blog post

Three random words or #thinkrandom

Created:  27 Oct 2016
Updated:  27 Oct 2016
Author:  Ian M

You're probably aware that there’s a lot of guidance out there on what makes a good password — and it can be incredibly confusing. This blog post should help.

For home users we are working with Cyber Aware, advising that you create passwords using three random words. You just put them together, like 'coffeetrainfish' or ‘walltinshirt’.

You can choose words that are memorable but should avoid those which might be easy to guess, such as 'onetwothree' or are closely related to you personally, such as the names of family members or pets.

Ultimately, the choices you make regarding passwords are up to you. This blog post is intended to help inform you as you make password decisions and explain a little bit of the cyber security rationale behind our three random words guidance.

Attacking your account

There are some common ways that cyber-criminals might try to compromise your user accounts. Many of these relate to the passwords you use, so let's take a look at a few of them:

It's obvious. You should try to ensure that your password isn't easy to guess. We all know that passwords protect things that are valuable to us but that doesn't stop the most common passwords consistently including 'password', '123456', 'qwerty', 'football' and so on. Take a look at one of the many 'top 100' password lists to see what form the most common ones take.

Somebody else's bad. There are frequently stories in the media about cyber-criminals breaking large numbers of passwords from sites that have failed to protect them properly. If you are reusing the same password across multiple sites and cyber-criminals crack one site, they might try the recovered passwords on the other sites you use.

Keylogging. There is a type of malicious software that, once on your system, attempts to log the keystrokes you make — including passwords. Of course, this will compromise any password entered, no matter how complex. The best defence here is keeping your software current and up to date.

Smash the hash. When you choose a password, if the site is reasonably diligent it won't store that password in a form that can be read directly. It will have been processed by a clever maths function called ‘hashing’.

This function turns the readable password into what appears to be gobbledegook. This is the password hash and it is this that the website stores. The clever thing about hashing is that it's very hard to turn the hash back into the password. As a user, when you return to a website and enter your password, the hash is calculated and compared to the one already stored. If they match, you're in.

If a cyber-criminal somehow gets hold of the list of password hashes there are some attacks they can use to try to recover passwords. Firstly they might try a ‘dictionary attack’ — putting lists of known words (including common substitutions such as '1' instead if 'i') through the same function and see if they result in the same hash. If they do, you have the password.

This might sound like a lot of work but with modern computing it really only takes seconds. If this doesn't work the cyber-criminal could try to ‘brute force’ the hash. This means trying every possible combination of characters until the password is found. Long random passwords and the inclusion of special characters make this harder for a computer to work out.

Three random words

If stopping a cyber-criminal breaking your password relies on long and complex passwords, where does three random words come from? Well, super-long and complex passwords aren't necessarily the best option for a number of reasons:

It's not all maths. Maths is great, but not at the expense of the users. It is really, really hard for a user to remember lots of complex, unique passwords. What happens is that we come up with coping mechanisms which are well known to cyber-criminals, and which they can and do exploit in order to attack our accounts.

So, ironically, using long and complex passwords sometimes just plays right into attackers' hands. For example using ‘Pa55word!’ may follow the rules of a website, but is a bad password as it's quite guessable. Typically if a cyber-criminal has the hashes to attack they will break them whatever rules are put in place.

Salt with that? Actually, when a website processes your password it stirs in some other information as well, like your username. This is called salting. Combined with three random words, this provides a reasonable amount of protection from attack. 

How did they get the hash? I glossed over the cyber-criminals getting hold of the files containing all of the password hashes. If a website is well designed this should be really hard for a cyber-criminal to do. This is also why we recommend separate passwords for sites that are important to you (like your email) to things like web forums, that aren't. If one website doesn't look after the password hashes properly, that shouldn't allow easy access to the things that are important to you.

Hard to guess. Three well-chosen random words can be quite memorable but not easy to guess. It provides a good compromise between protection and usability.

Ultimately it's your choice of course, but hopefully this blog post has helped to make your password choices a little bit more informed.

16 comments

Paul Moore - 08 Nov 2016
A username is not cryptographically random, thus should not be used as a salt.
S Smith - 04 Jan 2017
I like the three random word idea and will try it. Is the pass phrase out of fashion? Using the initial letters of a phrase you make up, then adding/inserting some numbers. Its quite easy to remember but very hard to guess.
IFH - 14 Feb 2017
I believe that most brute force password cracking programs stop at 16 characters, because of the incrementally longer time it takes to try all possible combinations of ASCII codes, so a 17 character password is effectively uncrackable! The main drawback of long passwords is that sites generally ask for only a small subset of the password e.g. 3rd, 5th, 18th, so you then find users have to write down the password to be able to determine which is the eighteenth character, compromising the security in lots of ways!
Peter Young - 15 Feb 2017
Thanks for this. I have never heard it before. I still think the big problem is all those online sellers who force you to make a password just to buy their stuff. It so annoys me, more especially that there are a few online retailers who will let you shop as a guest which proves that most of our passwords are unnecessary. I would like to see the ncsc take steps to end the forced password culture. I am much more likely to shop again from someone who lets me shop as a guest.
Ian F - 21 Mar 2017
I think that XKCD needs an obligatory reference. (As an aside - please dont pick CorrectHorseBatteryStaple as your password....)
Angie Bob - 01 Jun 2017
This advice is way out of date. Password crackers try combinations of common words (and numbers and symbols), so this method will hack this sort of password in a few minutes. You don't even need to understand entropy to realize that. This ArsTechnica article (from way back in 2013!) talks about how passwords such as "gonefishing1125" are discovered from salted hashes. The tried the combinations of 111 million dictionary words in 14 hours. arstechnica.com/security/2013/05/how-crackers-make-minced-meat-out-of-your-passwords/ The only advice worth having is to use truly random passwords of 10+ characters. Use password manager software to remember them. And set up "2 factor authentication" to double lock your high value targets - your email and bank log-ins.
Ian M - 08 Jun 2017
It’s highly unlikely users will be able to craft high entropy passwords, so 3 random words doesn’t try to do so. We recommend a separate password for high value accounts like your email and enabling 2 factor or hardware authentication. Password managers do indeed have a role to play. Take a look at https://www.ncsc.gov.uk/blog-post/what-does-ncsc-think-password-managers
R H - 10 Sep 2017
High entropy passwords for the layman. "IHateDrivingToWorkOnMondaysBecauseOfTheAwfulTrafficByTheAirBalloon" Or "IThinkImFallingInLoveWithTheCoffeeBaristaAtStarbucksTheDoubleShotCaramelLatteIGetReallySetsMeUpForTheDay" Problem is websites go and do... "Please enter a password between 8 and 10 characters".
Giles Bradley - 08 Sep 2017
You recommend passwords of 10+ characters when there are only 62 different characters. On the other hand there are many thousands of different words .. which is better?
Ian M - 08 Sep 2017
Thanks for your comment Giles. The best password is one that works for the user whilst being reasonably secure and not trivially guessable. We support 3 random words as being a reasonable compromise between these aspects.
Kath Cunliffe - 23 Jun 2017
This is absolutely dreadful. The font you have used is virtually unreadable! If you really want to help people use a font that is clear and large enough to read!
Georgina James - 10 Aug 2017
the three random word idea is useful and I will be using the idea
susan whittingham - 12 Aug 2017
good idea never would of used this
Eric kwarteng - 19 Aug 2017
Very useful ideas
Andrew Findlay - 05 Sep 2017
Random words are a good idea if they are truly random. People are bad at that, but dice are very good. Search for 'diceware' and ideally buy 5 dice to keep on the desk! Three words chosen by throwing 5 dice for each gives 6^15 different possibilities - that is about 470 billion different passwords. Not enough to defeat a hash-cracker, but very good against a guess-at-the-login-prompt attack.
simon cooper - 14 Sep 2017
good thinking

Leave a comment

Was this blog post helpful?

We need your feedback to improve this content.

Yes No