Just because your password meets complexity requirements does not necessarily make it a strong password. It is a given that many sites require you to have a password of a minimum length of at least six or eight characters, and some go so far as to require the addition of a number and at least one upper case letter. At first glance, this gives the appearance of a complex password that, in theory, should be harder to crack. If we consider a blind brute force attack that starts at six characters with “000000” and cycles through every combination of upper and lower case letters and numbers through “zzzzzz”, this is essentially true.
The problem is that automated password attacks have become intelligent in the sense that hackers have added “Pattern Matching” and LEET algorithms. (LEET refers to the substitution of a character in a word with a corresponding number or special character. Read more about LEET in Wikipedia here.)
In my article, “Strengthening Common Passwords”, I discuss that Hackers will look first to the most common passwords. For example, “123456” is first and “Password” is fourth on the list of common passwords. This fact reduces the need to even begin a brute force attack on your Password until thousands of common words, phrases, and numbers such as Sports Teams, Birth Years in the 1900’s, Popular Baby Names, Movie Titles, and Fictional Characters have been tried first through a pattern match attack.
This is just the tip of the iceberg in breaking a password that appears to be complex.
If we start with a common password, “yankees” and modify it to meet complexity requirements, it might become “Yankees1” which is not necessarily any more secure than if it were all lower case without the addition of the number. Applying “Pattern Matching”, what would be the most obvious “Pattern” modification to any common word (password) to meet complexity requirements? Answer: The capitalization of the first letter, which follows standard English Grammar rules and the addition of the number 1 or even 12. Even adding LEET so the password becomes “Y@nK33s1” is not really a significant improvement because the next “pattern” applied in the attack to the well-known password list will be LEET substitutions.
How many of you just realized that your own password that properly met complexity requirements is not nearly as strong as you thought it was sixty seconds ago?
A pattern match attack program will first try making common pattern modifications to its list of well-known passwords before it starts a brute force sequential search. This will significantly increase the chances of success with minimal increase in the time required to crack your password.
Some of you are thinking, my password is really strong, it’s “1234qwerUIOP”. “No one could possibly guess that password, right? Again, on a pure sequential, brute force attack, to break a twelve character, non-dictionary password is a very long time. If we look closely at this password we see that it is three groups of four sequential characters from a standard computer keyboard: “1234” are the first four numbers of the numeral row, “qwer” are the first four characters of the top row, and “UIOP” are the last four letters of the top row. In short: it is a common pattern used for a password.
In order for a Password to be strong, it needs to be more than complex. It needs to be sufficiently long and suitably random to be truly effective.
Before you decide to abandon all online banking and social media activity for fear that almost no password you could create could ever be strong enough to protect your digital accounts, keep in mind a few key points: The above discussion applies to a hacker making a concerted specific effort to crack your password to gain access to one of your digital accounts. The likelihood that you will be a specific “high value” target is minimal. Again, I go back to my analogy that car thieves look for unlocked cars with the keys in the ignition.
The key take away is to make it as difficult as possible so that the hacker gives up after trying obvious well-known Passwords with or without Pattern Matching algorithms applied and moves on to someone else.
Follow best practices by trying to make your passwords sufficiently long with at least eight characters, use upper and lower case letters (if recognized as different by your particular web site account), always include a few numbers either as substitutions for letters (LEET) or as additional characters added at random places in the Password (do not just put at the beginning or end), and where permitted, try to do the same with special characters such as @ $ %! # by placing them at random locations in the Password.
As a closing example looking back to “yankees”, we can even make it reasonably strong by applying all of the techniques so that it becomes “y@!nk3#3s”. (Note that it uses LEET and adds in two special characters in random locations.) Even though we start with a very common password, “yankees”, a pattern match attack will most likely fail and the only option for the hacker will be to use a brute force sequential search.
Finally, you can also use “Patterns” to your advantage. (The Patterns which just capitalize the first letter, add a number 1 at the end or only use LEET on a well-known common password or dictionary word should not be used.)
In an effort to be able to remember your passwords you can create a non-obvious pattern to strengthen your common passwords: Perhaps you always add a # after the third letter and an ! before the last letter or instead of using a U in your spelling, you always use a V.
Anything you can do to be non-standard and appear random in creating your Password will afford you a reasonably high degree of protection from hackers who use common, pattern match and brute force password attacks.
Technical Note: The ability of a brute force sequential attack to succeed in cracking your Password depends largely on who is behind the attack and the amount of computer power brought to the task. A Hacker with a single computer may take months or centuries to crack your sufficiently long complex random password. A Hacker who has tens of thousands of zombie PC’s coordinating an attack will take significantly less time to be successful. If a Government Security Agency is behind the attack, with that amount of computer power, it might be a matter of hours or days to crack your password.
As scary as this all sounds, the provider of your digital account can go a long way to slow these attacks to a crawl. Many web sites will not allow another login attempt for a certain period of time after three to five login failures or will lock the account completely after five or ten login attempts. No automated attack can proceed if the web site will not allow a login due to failed attempts – human or automated.