Subbies said:
But aren't passwords written in real words like your second example easily crackable by using rainbow tables?
No. To start with, salting eliminates any possible use of rainbow tables (see here [http://en.wikipedia.org/wiki/Rainbow_table#Defense_against_rainbow_tables]). Rainbow tables also only work well for relatively short passwords, or those of known length. It's not feasible to produce tables covering passwords of unknown arbitrary length.
Between a 15 character gibberish password and a 15 character password written with existing words, it's still safer to use the gibberish one.
Why use a 15 character password? The entire reason for having short passwords is that long strings of gibberish are essentially impossible for people to remember (or that websites don't allocate enough space to password storage, but there's really no excuse for that these days). But we're really good at remembering long strings of meaningful words; just think how many songs you can remember the words to, for example. A 15
word password can be easy to remember, while being just as difficult to break by a dictionary attack as a 15 character one is by a normal brute force attack, and of course far more resistant to said brute force attack.
That said, even a 15 character password made from existing words is not necessarily any less secure. The important thing about all shortcuts to password breaking is that they rely on assumptions about what form a password will take. If an attacker doesn't expect to see passwords made up of combinations of random words, they're not going to bother with an attack that would be better at breaking that kind of password but that doesn't help at all for more common passwords. Given what the most common passwords [http://www.theregister.co.uk/2014/01/20/password_no_longer_the_worst_password_still_a_terrible_password/] actually are, no attacker is going to worry about elaborate methods of breaking long passwords when they can get at the majority by just typing "password" and "123456" by hand.
A good password is ultimately one about which an attacker has no prior knowledge on which to base their attacks. If they know your password is 8 characters long and contains at least one upper case letter and one number, they can tailor their attack to that specific type of password. But if all they know is that your password is somewhere between 1 and 127 characters, where exactly do they start? Passwords of 15 characters made up of words is only a tiny portion of all the possibilities. The attacker also needs to check if it's actually 14 characters, or 16, or 120, and they need to check if it's made of real words, contains various substitutions, is made up of gibberish, is just "password" repeated over and over again, and so on. A 15 character password made up of words is only less secure than one made up of random gibberish if an attacker can reliably know which of the two they are dealing with.
Subbies said:
In any case the best solution is to use a password manager that would generates random passwords of very high entropy rather than creating your own.
Not necessarily. A high entropy password of random gibberish generated by a password manager is no better than a high entropy one generated by a person stringing words together. Password managers are a great solution to the problem of needing to remember multiple passwords, but the method by which you generate the passwords for it to store is entirely irrelevant.
Of course, there's also a good argument to be made that password strength is irrelevant [http://www.theregister.co.uk/2014/09/04/scared_of_password_brute_force_microsoft_says_just_give_up/]. Good security practice on the part of a website makes actual password choice a factor in only a tiny proportion of attacks. Depending on the level of security and how an attack plays out, the actual password can be either easily available in plaintext or impossible to break at all; it's only rare attacks where the strength of a password actually becomes factor. From that article:
"Demanding passwords that will withstand offline attack is a defense-in-depth approach necessary only when a site has failed both to protect the password file, and to detect the leak and respond suitably"
In other words, strong passwords are only necessary if the sites you're using them on are incompetent.