Tatli CrackingmorePasswordHasheswithPatterns FINAL-IEEE

Download as pdf or txt
Download as pdf or txt
You are on page 1of 12

See discussions, stats, and author profiles for this publication at: https://www.researchgate.

net/publication/276113338

Cracking More Password Hashes With Patterns

Article in IEEE Transactions on Information Forensics and Security · August 2015


DOI: 10.1109/TIFS.2015.2422259

CITATIONS READS
58 7,408

1 author:

Emin İslam Tatlı


TURKCELL
38 PUBLICATIONS 293 CITATIONS

SEE PROFILE

All content following this page was uploaded by Emin İslam Tatlı on 22 April 2016.

The user has requested enhancement of the downloaded file.


CRACKING MORE PASSWORD HASHES WITH PATTERNS 1

Cracking more Password Hashes with Patterns


Emin İslam Tatlı

Abstract—It is a common mistake of application developers to in the database. This implementation is very insecure too.
store user passwords within databases as plaintext or only as their Even though hash functions are one-way functions, attackers
unsalted hash values. Many real-life successful hacking attempts can perform brute-force, dictionary or rainbow-table attacks in
that enabled attackers to get unauthorized access to sensitive
database entries including user passwords have been experienced order to reveal input values (i.e. plaintext password) from the
in the past. Seizing password hashes, attackers perform brute- given output values (i.e. hash value).
force, dictionary or rainbow-table attacks to reveal plaintext By brute-force attacks [13], the hash value of each possible
passwords from their hashes. Dictionary attacks are very fast input value is calculated and compared with the given hash
for cracking hashes but their success rate is not sufficient. In value to crack. By dictionary attacks [14], large dictionary
this paper, we propose a novel method for improving dictionary
attacks. Our method exploits several password patterns that are files containing thousands or millions of possible passwords
commonly preferred by users when trying to choose a complex are utilized. Given a hash value to crack, an attacker calculates
and strong password. In order to analyze and show success rates the hash value of each plaintext word from the dictionary line
of our developed method, we performed cracking tests on real-life by line and compares the calculated hash values with the given
leaked password hashes by using both a traditional dictionary hash value. If they are matched, the plaintext password is thus
and our pattern-based dictionary. We observed that our pattern-
based method is superior for cracking password hashes. revealed. On the other hand, a very large set of pre-computed
hash tables containing hash values and their corresponding
Index Terms—password security, authentication, data security, plaintext values are used by rainbow-table attacks [15]. Given
dictionary attacks, hash cracking
a hash value to crack, an attacker checks if the given hash
value exists within the pre-computed lookup table. If it exists
I. M OTIVATION within the table, the plaintext password is found out.
UTHENTICATION is one of the most important require- If we compare brute-force, dictionary and rainbow-table
A ments for information security. There exist various meth-
ods for authentication based on what we know (e.g. passwords,
attacks, they all have pros and cons. Brute-force attacks find
out the plaintext definitely in the end but they are very time
PINs), what we have (e.g. security hardware tokens) and who consuming. Dictionary attacks are fast but the success rate is
we are (e.g. biometric fingerprints) [1]. Among the existing not sufficient. Rainbow-table attacks are fast and successful
methods, password-based systems are easier to implement and at cracking but they require having a very big disk storage
therefore the most frequently used method for authentication. capacity. They are especially non-practical if a salt value is
Being very critical for security, passwords are often targeted used for password hashes.
during cyber-attacks as well. An attacker that hacks a system In this paper, we propose a new method for increasing
and reveals user passwords stored within the database gets success rates of dictionary attacks. For our method we an-
unauthorized access to accounts of all users. In the past many alyzed leaked real-life user passwords and identified several
enterprise companies and organizations were victims of such patterns which are commonly chosen by many users to create
attacks [2], [3], [4], [5], [6], [7], [8]. a complex and strong password from a dictionary word. For
Attackers use frequently SQL injection vulnerabilities [9] example, a dot ("."), an exclamation mark ("!") or "123" are
that exist within applications in order to access database often appended at the end of a dictionary word. Similarly,
tables. They send arbitrary SQL queries to retrieve passwords a dictionary word is repeated two times (e.g. kingking) or
and other sensitive data from tables and manipulate stored three times (e.g. kingkingking). We developed a software tool,
data, even by using automated tools such as sqlmap [10] or namely pbp-generator (pattern based password generator), that
Havij [11]. Considering this fact, developers must never store implements our identified patterns and creates a new pattern-
passwords in plaintext within databases. Developers mostly based large dictionary file from a given dictionary file. We
know the fact that they should store hash values of passwords generated a pattern-based dictionary file with ca. 2.3 billion
instead of plaintext. However, it is also a critical security passwords to crack password hashes belonging to fifteen
weakness if the hash value of a password is calculated and different datasets which consist of real-life leaked password
stored without appending per-user unique salt value to the hashes.
password before hashing [12]. In a classical scenario, a user Digital forensic investigators are involved with the analysis
chooses a password by a registration process. The hash value of crime cases. They often come across password protection
(md5, sha1, sha256 etc.) of the password is calculated on during investigation. They need to crack passwords either
the backend-server and this calculated hash value is stored in order to access a particular user account or to unlock
encrypted or otherwise obfuscated digital evidence [16]. Our
Published in IEEE Transactions on Information Forensics and Security pattern-based method would help forensic investigators for
(Volume:10, Issue: 8)
Date of Submission: 15 November 2014 more efficient password cracking.
DOI: 10.1109/TIFS.2015.2422259 It is important to note that security of hash functions is
E.˙I.Tatlı is with the Department of Electrical and Electronics Engi-neering,
˙Istanbul Medipol University, 34810 ˙Istanbul/Turkey, e-mail: ei-
[email protected] .
CRACKING MORE PASSWORD HASHES WITH PATTERNS 2

not within the scope of this paper. If a user chooses a weak TABLE I
password with a certain pattern, even a very secure hash T HE T OP T EN L IST OF R EGULAR E XPRESSIONS FOR PASSWORDS WITH
THE L ENGTH BETWEEN 2 AND 5
function cannot prevent attackers from cracking password
hashes. Patterns have no negative effect on computed hash No. Length=2 / Length=3 / Length=4 / Length=5 /
values. In conclusion, the focus of this paper is the analysis of Hit Count Hit Count Hit Count Hit Count
1 [a-z]{2} / 205 [a-z]{3} / [a-z]{4} / [a-z]{5} /
user-chosen plaintext passwords rather than the formal security 1664 8403 125731
model of hash functions. 2 [0-9]{2} / 49 [0-9]{3} / [0-9]{4} / [0-9]{5} /
This paper is organized as follows: Section II explains 272 6359 44987
3 [A-Z]{2} / 45 [A-Z]{3} / [A-Z]{4} / [a-z]{3}[0-
the details of how passwords and password patterns were 239 889 9]{2} / 18122
analyzed. The identified password patterns are explained in 4 [a-z]{1}[0- [a-z]{2}[0- [a-z]{3}[0- [A-Z]{5} /
detail in Section III. Development of the software tool to 9]{1} / 13 9]{1} / 82 9]{1} / 603 16006
5 [A-Z]{1}[a- [A-Z]{1}[a- [A-Z]{1}[a- [a-z]{4}[0-
generate pattern-based dictionary and perform hash-cracking z]{1} / 7 z]{2} / 63 z]{3} / 440 9]{1} / 15791
tests with the generated pattern-based dictionary are explained 6 [A-Za-z0- [a-z]{1}[0- [a-z]{2}[0- [A-Z]{1}[a-
in Section IV. Section V discusses the related work. Possible 9]{2} / 5 9]{2} / 23 9]{2} / 437 z]{4} / 5621
mitigation methods are given in Section VI. Section VII 7 [A-Z]{1}[0- [a-z]{1}[0- [a-z]{1}[0- [a-z]{2}[0-
9]{1} / 5 9]{1}[a- 9]{3} / 81 9]{3} / 3092
concludes the paper. z]{1} / 20
8 [a-z]{1}[A- [a-z]{1}[A- [0-9]{1}[a- [a-z]{1}[0-
Za-z0-9]{1} / Za-z0-9]{1} z]{3} / 64 9]{4} / 2952
II. T HE A NALYSIS 3 [a-z]{1} / 19
Rockyou.com web portal was the target of a very critical 9 [A-Za-z0- [A-Z]{2}[0- [a-z]{2}[0- [0-9]{4}[a-
9]{1}[0- 9]{1} / 12 9]{1}[a- z]{1} / 2272
cyber-attack in December 2009 [3]. The hacker had found 9]{1} / 2 z]{1} / 53
SQL injection vulnerability in the rockyou website and got 10 [0-9]{1}[a- [0-9]{1}[a- [a-z]{3}[A- [A-Z]{4}[0-
access to its 32.6 million user passwords. Worse still, the z]{1} / 1 z]{2} / 9 Za-z0-9]{1} / 9]{1} / 1951
51
passwords were stored as plaintext in the database. The leaked
passwords without usernames were published in the Internet.
In the past, security researchers did not have such a large real-
by using such patterns. However, these common patterns
life resource for password analysis. Therefore, the published
jeopardize security of the passwords. If many passwords share
32.6 million real-life passwords have become a very valuable
the same patterns, they can be identified and then misused to
data for security experts and researchers.
guess passwords successfully with the help of automated tools.

A. Password Complexity Rules


B. Rockyou Pattern Analysis based on Regular Expressions
It is always suggested that a secure password must not
Skullsecurity [18] provides various leaked real-life pass-
consist of only lowercase letters. Instead, it must contain
word dictionaries to download. We utilized their special "rock-
lowercase and uppercase letters, digits and special symbol
you" password list that includes additionally the total count for
characters. A password fulfilling these complexity require-
each unique password.
ments would provide high entropy [17] and therefore should
In the first step, we analyzed the rockyou passwords based
be more resistant against password guessing attacks. Today,
on their regular expression representations. We created differ-
enterprise companies and organizations define such password
ent Top 10 lists which consist of the most common regular
rules within their security policies and try to enforce their
expressions and their hit counts according to the different
employees and customers to choose complex passwords.
password lengths as shown in Table I, II and III. The Top 10
On the other hand, it is questionable if a password ful-
lists showed us some interesting facts. Most of the passwords
filling the complexity rules including minimum length can
are composed of appending numbers to letters. Therefore,
be considered as a strong password. Let’s take the following
we decided to continue with the analysis of dual and triple
password "P4s5w0rd1." into consideration. This password has
combinations of different character groups as explained in
the length of ten characters and contains five lowercase letters,
the following section. Another interesting fact is that the
one uppercase letter, four digits and one special symbol. This
top one regular expression of passwords with the length of
password is considered and accepted in general as a strong
ten characters is ^[0-9]{10}$. This shows us that passwords
password according to many password policies of enterprise
belonging to this group consist of only numbers with the
companies and organizations. But we believe, this is an
length of ten digits. We examined such passwords manually
insecure password and can be easily cracked by using our
and concluded that these are mostly telephone numbers.
pattern-based attack.
The password "P4s5w0rd1." contains three different com-
mon patterns. The first pattern is capitalization of the first C. Rockyou Pattern Analysis based on Dual and Triple Com-
letter. The second pattern is replacing certain letters with num- binations
bers (a→4, o→0, s→5) and the third pattern is appending "1." After analyzing the most common regular expressions rep-
to the password. Since people are bad at remembering com- resentations, we analyzed the frequency of dual and triple
plicated passwords and have to use complex passwords due combinations of different character groups (i.e. alpha, digit
to password policies, they tend to create "strong" passwords and special symbol). In this analysis, [:alpha:] represents any
CRACKING MORE PASSWORD HASHES WITH PATTERNS 3

TABLE II TABLE IV
T HE T OP T EN L IST OF R EGULAR E XPRESSIONS FOR PASSWORDS WITH D UAL C OMBINATION OF C HARACTER G ROUPS WITH E XAMPLES
THE L ENGTH BETWEEN 6 AND 9
Combination Total Example Passwords
No. Length=6 / Length=7 / Length=8 / Length=9 / Count
Hit Count Hit Count Hit Count Hit Count [:alpha:]+ 9,834,095 mekster11, khas8950, emilio1, holiday2,
1 [a-z]{6} / [a-z]{7} / [a-z]{8} / [a-z]{9} / [:digit:] (30%) caitlin1, cats13, toohott69, cheer99
601152 585013 687991 516830 [:digit:]+ 895,916 33orange, 1234567a, 118jefferson, 98101ef,
2 [0-9]{6} / [0-9]{7} / [0-9]{8} / [0-9]{9} / [:alpha:] (2.75%) 1simpleplan, 1loveyou, 5pointstar, 12345a
390529 487429 428296 307532 [:alpha:]+ 240,993 olives!, skittles?, cheaphat!, skating.,
3 [a-z]{4}[0- [a-z]{5}[0- [a-z]{6}[0- [a-z]{7}[0- [:symbol:] (0.74%) junkbox!, easymac*, itsmiller!, balboa!
9]{2} / 9]{2} / 9{2} / 9]{2} / [:symbol:]+ 16,090 *forever, !cheeky, $tevenrules, *phsyco,
215074 292306 420318 273624 [:alpha:] (0.05%) -angel, !qwert, !loveu , $prite, .com, *Twist
4 [a-z]{5}[0- [a-z]{6}[0- [a-z]{4}[0- [a-z]{5}[0- [:digit:]+ 12,646 78963., 13659*, 83593113$$, 123456],
9]{1} / 9]{1} / 9{4} / 9]{4} / [:symbol:] (0.04%) 369*, 1977.., 022590!!, 8825##, 3636369.
114732 193097 235360 173559 [:symbol:]+ 3,395 ,123456, /8520, *41681, .31331, $$$4369,
5 [a-z]{2}[0- [a-z]{3}[0- [a-z]{7}[0- [a-z]{8}[0- [:digit:] (0.01%) +2511161897, .09164232572, -11185
9]{4} / 98305 9]{4} / 9{1} / 9]{1} /
178304 189847 160054
6 [a-z]{3}[0- [a-z]{4}[0- [a-z]{5}[0- [a-z]{6}[0- TABLE V
9]{3} / 98183 9]{3} / 9{3} / 9]{3} / T RIPLE C OMBINATION OF C HARACTER G ROUPS WITH E XAMPLES
111218 152400 132216
7 [A-Z]{6} / [a-z]{1}[0- [a-z{2}[0- [a-z]{3}[0- Combination Total Example Passwords
51839 9]{6} /54883 9]{6} / 48541 9]{6} / 44792 Count
8 [0-9]{4}[a- [0-9]{6}[a- [A-Z]{8} / [A-Z]{9} / [:alpha:]+ 82,151 teenager1@, abc123., karl143.,
z]{2} / 31086 z]{1} / 41557 39457 27019 [:digit:]+ (0.25%) windowsxp1!, kelvin258/, jessie18;,
9 [A-Z]{4}[0- [A-Z]{7} / [a-z{3}[0- [a-z]{4}[0- [:symbol:] pretti7*, jordans07., JUNE24„ briana20.
9]{2} / 22224 40592 9]{5} / 37622 9]{5} / 22362 [:alpha:]+ 185,610 kaitlyn.1, poopp<3, t=48697123, franco_1,
10 [A-Z]{1}[a- [a-z]{2}[0- [A-Z]{6}[0- [A-Z]{7}[0- [:symbol:]+ (0.57%) dude!2, chris#6, tommy.2359, iloveyou*1,
z]{5} / 19732 9]{5} / 32540 9{2} / 31373 9]{2} / 18482 [:digit:] Summer#5, watru^2
[:digit:]+ 13,298 1hawaiian!, 1wish!, 072305AJ$, 1TIKA!!,
[:alpha:]+ (0.04%) 4evergreen!!, 123abc., 1love!, 707sucks!,
TABLE III [:symbol:] 123loveme!, 1fighter/, 50cent., 1andonly.
T HE T OP T EN L IST OF R EGULAR E XPRESSIONS FOR PASSWORDS WITH [:digit:]+ 18,218 11!!JesusS, 6.five, 555-oup, 7-boss,
THE L ENGTH BETWEEN 10 AND 13 [:symbol:]+ (0.06%) 1!iloveyou, 1*princess, 305-boy, 123!qaz,
[:alpha:] 100%jumper, 1986@Jessica, 15-red
No. Length=10 / Length=11 / Length=12 / Length=13 / [:symbol:]+ 9,940 .disney2, @$$baba82, *k123456, $hortii88,
Hit Count Hit Count Hit Count Hit Count [:alpha:]+ (0.03%) *supergirl12, *ILOVEYA7, *june7,
1 [0-9]{10} / [a-z]{11} / [a-z]{12} / [a-z]{13} / [:digit:] $iloveu40, !batman76, @love2
478196 267733 189355 119294 [:symbol:]+ 12,592 #1CHRIZ, #1kingsfan, <3ilovemanuel,
2 [a-z]{10} / [0-9]{11} / [a-z]{8}[0- [0-9]{13} / [:digit:]+ (0.04%) !11Mom, *789ab, #1hawaiian, #1carlos,
416939 107862 9]{4} / 45499 28908 [:alpha:] #1lover, #1lady
3 [a-z]{8}[0- [a-z]{9}[0- [0-9]{12} / [a-z]{9}[0-
9]{2} / 9]{2} / 82654 38464 9]{4} / 24714
213109
4 [a-z]{6}[0- [a-z]{7}[0- [a-z]{10}[0- [a-z]{11}[0- combinations and their reverse order combinations were ana-
9]{4} / 9]{4} / 70914 9]{2} / 35980 9]{2} / 19259 lyzed. This analysis showed us that circa 10 million rockyou
160592
5 [a-z]{9}[0- [a-z]{8}[0- [a-z]{9}[0- [a-z]{10}[0-
passwords (30%) are in the form of [:alpha:] + [:digit:]
9]{1} / 9]{3} / 43215 9]{3} / 25912 9]{3} / 13645 combination, which means users mostly prefer appending a
129823 number to a dictionary word to create their passwords. Based
6 [a-z]{7}[0- [a-z]{10}[0- [a-z]{6}[0- [a-z]{7}[0-
9]{3} / 87611 9]{1} / 19273 9]{6} / 16718 9]{6} / 9656
on these results, we decided to examine [:alpha:]+[:digit:]
7 [a-z]{4}[0- [a-z]{5}[0- [a-z]{11}[0- [a-z]{3}[0- combinations further to find more specific patterns. In the
9]{6} / 33277 9]{6} / 19239 9]{1} / 10768 9]{3}[a- Table IV, the total counts of all dual combinations and their
z]{4}[0-
9]{3} / 6826
examples from the rockyou list are shown.
8 [a-z]{5}[0- [A-Z]{11} / [A-Z]{12} / [a-z]{4}[0- By the triple combination analysis, the total numbers of [:al-
9]{5} / 20002 11884 8108 9]{3}[a- pha:]+[:digit:]+[:symbol:], [:alpha:]+[:symbol:]+ [:digit:] and
z]{3}[0-
9]{3} / 6668
[:digit:]+[:symbol:]+[:alpha:] combinations and their reverse
9 [A-Z]{10} / [a-z]{6}[0- [a-z]{7}[0- [a-z]{12}[0- order combinations were analyzed. Compared with the dual
19723 9]{5} / 11653 9]{5} / 6615 9]{1} / 6103 combinations, the triple combinations are not very much
10 [a-z]{9}[A- [a-z]{3}[0- [a-z]{4}[0- [A-Z]{13} / preferred by the rockyou users. The most frequently used triple
Za-z0-9]{1} / 9]{8} / 6583 9]{8} / 6507 5206
15320 combinations are [:alpha:]+[:symbol:]+[:digit:] with 0.57%
and [:alpha:]+[:digit:]+[:symbol:] with 0.25%. Analyzing these
combinations further we identified that digits and special
alpha character between a to z and between A to Z. [:digit:] symbols are together (e.g. "#1", "123.", "*1" etc.) appended
represents numbers between 0 and 9. [:symbol:] represents the to dictionary words to create passwords. The total counts of
following punctuation characters: . , " ’ ? ! ; : # $ % & ( ) * all triple combinations and their examples from the rockyou
+-/<>=@[]^_{}| . list are shown in Table V.
By the dual combination analysis, the total numbers of [:al- In addition to dual and triple combination analysis, we
pha:]+[:digit:], [:alpha:]+[:symbol:] and [:digit:]+[:symbol:] checked the frequencies of the punctuation characters. This
CRACKING MORE PASSWORD HASHES WITH PATTERNS 4

TABLE VI TABLE VII


T OTAL C OUNTS OF P UNCTUATION C HARACTERS WITHIN ROCKYOU A PPENDING PATTERN E XAMPLES
PASSWORDS
Pattern Total Password Examples (Total Count)
. 226,980 , 27,722 " 3,172 ’ 16,097 Example Counts
(0.70%) (0.09%) (0.01%) (0.05%) Appending 2,802,484 password1 (11,112), princess1 (5,187),
! 179,666 ; 14,378 : 7,239 # 60,016 [0-9] angel1 (4,320)
(0.55%) (0.044%) (0.022%) (0.18%) Appending 353,400 abc123 (16,648), love123 (2,939), red123
% 11,282 & 28,553 ( 16,557 ) 18,349 123 (2,089)
(0.03%) (0.088%) (0.05%) (0.056%) Appending 59,892 abcd1234 (1,322), abc1234 (518), love1234
+ 24,000 - 126,908 / 37,836 < 11,856 1234 (511)
(0.073%) (0.39%) (0.12%) (0.036%) Appending 55,521 love101 (820), zoey101 (700), sexy101
= 18,741 @ 10,4336 [ 7,722 ] 10,731 101 (616)
(0.057%) (0.32%) (0.02%) (0.033%) Appending 69,300 password. (484), iloveyou. (467), fuckyou.
^ 5,863 _ 187,603 { 1,056 } 933 (0.003%) dot (135)
(0.018%) (0.58%) (0.003%) Appending ! 104,273 iloveyou! (1,358), password! (701),
~ 5,823 $ 31,501 > 2,755 | 506 (0.002%) rockyou! (485)
(0.018%) (0.1%) (0.008%)
? 24,744 * 95,400
(0.08%) (0.3%) TABLE VIII
P REFIXING PATTERN E XAMPLES

Pattern Total Password Example (Total Count)


Example Counts
analysis showed that certain symbols are more frequent than Prefixing 219,035 1password (874), 1bitch (752), 1lover (550)
the others. The most frequently used punctuation character is [0-9]
point (.) with 0.7%. Underscore ( _ ) has the second place Prefixing 26,306 123abc (4,115), 123qwe (1,614), 123asd
with 0.58% and exclamation mark (!) has the third place with 123 (315)
Prefixing #1 8,617 #1bitch (333), #1pimp (121), #1hottie (119)
0.55%. The total counts of each punctuation character in the Prefixing ! 2,967 !password (11), !basketball (7), !iloveyou (7)
password list are given in the Table VI. These frequencies Prefixing dot 1,113 .password (11), .adgjm (10), .iloveyou (4)
were taken into consideration in our further analysis.
TABLE IX
I NSERTING PATTERN E XAMPLES
III. T HE I DENTIFIED PATTERNS Pattern Password Example (Total Count)
Example
The rockyou.com password list contains exactly 32,603,388 Inserting [0-9] love4ever (1,276), my3kids (579), my2kids (450)
passwords. If the repeating passwords are eliminated, there are Inserting 123 abc123abc (96), abc123def (27), abc123xyz (25)
Inserting dot c.ranoldo (272), dr.pepper (232), man.utd (42)
exactly 14,344,399 unique passwords. We examined thousands
Inserting #1 my#1love (12), my#1baby (9), my#1angel (5)
of passwords for possible patterns during our analysis of
regular expressions and dual/triple combinations. Furthermore,
we checked manually around 500 thousand passwords out of B. Prefixing Pattern
14.4 million unique passwords to find additional patterns. The The dual combination analysis showed that there are around
rockyou list of Skullsecurity was sorted according to the most 900 thousand passwords having the form of [:digit:]+[:alpha:]
frequently used password order. Therefore, the main password combination. Analyzing this special dual combination further,
patterns exist already within our analyzed 500 thousand pass- we identified many password examples of prefixing pattern
words group. by which a certain digit and/or punctuation character (or
As a result, we identified several patterns which belong digit/character groups) is added at the beginning of a dic-
mainly to ten categories. These are Appending, Prefixing, tionary word. Table VIII gives the total counts of passwords
Inserting, Repeating, Sequencing, Replacing, Reversing, Cap- belonging to this type and some password examples.
italizing, Special-format and Mixed Patterns.
C. Inserting Pattern
In addition to appending and prefixing patterns, we identi-
A. Appending Pattern fied many password examples of inserting pattern by which a
The dual combination analysis showed that ca. 30% of all certain digit and/or punctuation character (or digit/character
rockyou passwords are in the form of [:alpha:] + [:digit:] groups) is inserted into a dictionary word. Table IX gives
combination. Analyzing this special dual combination fur- some password examples of this pattern. Since distinguishing
ther, we identified many password examples of appending inserting patterns from replacing patterns requires manual
pattern, where a certain digit or punctuation character (or analysis (e.g. passw0rd vs. pass4word), the total counts for
digit/character groups) is added at the end of a dictionary pattern examples are not given in the table.
word. Table VII gives the total counts of passwords belonging
to this pattern and some password examples. D. Repeating Pattern
Among all patterns we identified, this pattern is the most In addition to dual and triple combination analysis, we
frequent one. For example, about 2.8 million passwords are examined passwords which contain only alpha, digit or punc-
combinations of alpha characters with one or more digits. tuation characters. This analysis showed that 44% of all
CRACKING MORE PASSWORD HASHES WITH PATTERNS 5

TABLE X TABLE XI
R EPEATING PATTERN E XAMPLES S EQUENCING PATTERN E XAMPLES

Pattern Example Password Example (Total Count) Pattern Example Password Example (Total Count)
Repeating number 1 (29), 22 (6), 333 (19), 4444 (58), 55555 Keyboard Sequences qwerty (13,456), qwertyuiop (2,871), qwert
"N" for N times (4,258), 666666 (7,419), 7777777 (4,589), (1,375), azsxdcfv (63), asdfgh (2,908),
88888888 (2,493), 999999999 (1,952) asdfghjkl (2,537), asdfg (1,190), zxcvbnm
Repeating number 123123 (9,516), 303030 (678), 292929 (678), (3,521), zxcvbn (1,552)
groups 420420 (669), 007007 (652), 789789 (634), Keyboard Sequences 1q2w3e4r (1,205), 1Q2W3E4R (35,1234),
123456123456 (188) mixed with Digit qwer (545), asdf1234 (474)
Repeating [0-9] 111111 (13,272), 11111 (5,003), 11111111 Sequences
numbers (1,512), 222222 (4,486), 22222 (1,116), 333333 Alphabet Letter abcdef (2,733), abcdefg (1,856), abcde (955),
(2,704) Sequences abcdefgh (666), zyxwvu (8)
Repeating birth 19871987 (433) , 19891989 (429), 19921992 Alphabet Letter abcd1234 (1,322), a1b2c3 (688), 1234abcd
years (416), 19861986 (399), 19931993 (380) Sequences mixed (463), a1b2c3d4 (361), a1b2c3d4e5 (140)
Repeating words lovelove (2,742) , catcat (564), kisskiss (826), with Digit Sequences
oneone (64), twotwo (32), passwordpassword Digit Sequences 123456 (290,729), 12345 (79,076), 123456789
(43), usausa (58), blablabla (481) (76,789), 1234567 (21,725)
Repeating letter abcabc (118), abcabcabc (20), ABCABC (6),
groups defdef (8), defdefdef (2)
Repeating [a-z] aaaaaa (2,685), aaaaa (1,252), bbbbbb (445), TABLE XII
bbbbb (192), bbbbbbbb (77), bbbbbbb (66) R EPLACING PATTERN E XAMPLES
Repeating symbols ...... (343), ..... (74), ....... (41), −−−−−− (35)
Replaced Replaced Password Examples
Letter with
a 4 d4niel, c4r0lin4, dr4gon, pl4yboy
passwords consist of only alpha characters, 16% contain only a @ p@ssword, t@ylor, f@mily, b@bygirl, c@rlos,
numbers and 0.015% contain only punctuation characters. wh@tever, p@trick, eleph@nt, di@mond
Since it is a known fact that users prefer choosing passwords b 6 straw6erry, sexy6lue, septem6er, remem6er
e 3 monk3y, socc3r, spong3bob, princ3ss, ilov3you
without numbers and special symbols, 44% was an expected g 6 soccer6irl, hun6ry, ran6ers
result for only-letter passwords. On the other hand, 16% g 9 an9els, en9ine, dan9er, babi9irl, magic9irl
seemed very unusual for passwords containing only digits. i 1 1loveyou, , mel1ssa, stup1d, denn1s, w1lliams,
pr1ncess, jess1ca, v1ctor, sn1ckers, sw1mm1ng
Analyzing the passwords in this group further, we found out i ! pr!ncess, m!chelle, just!n, sunsh!ne, pr!nce,
that some users tend to choose certain number combinations jess!ca, babyg!rl, w!lliam, tw!ster
(e.g. 29, 1980, etc.) and repeat them to create a password. For i | M|ChElLe, m|r@c|eS, sl|ther
example, a birth year is chosen and repeated (e.g. 19791979). l 1 P1ayer, ash1ey, a11star, isabe11a, ye11ow,
wi11iam
We also realized that not only numbers, but words and punc- l | love|y, my|ove, actual|y, m|r@c|eS, josh|and
tuation characters are repeated as well to create passwords. o 0 il0veyou, ge0rge, m0vie, br0ken, passw0rd,
As an example, a dictionary word is repeated two or three c0llege, br0ther, n0thing, t0psecret, m0nkey
s 5 pas5word, du5tin,ju5tin, east5ide,augu5t,
times (e.g. kingkingking). Table X shows some examples of it5easy, eclip5e, chee5e
repeating pattern. s $ $prite, be$tfriend, ju$tin, two$hort, $pecial,
$ummer, $upersonic, $tevenrules

E. Sequencing Pattern
In the analysis we identified the sequencing pattern by Table XII lists the identified replacement possibilities and their
which sequences of keyboard layouts, alphabet letters, digits or example passwords from the rockyou list.
their combinations are used to create passwords (e.g. qwerty,
123abcd, abcdqwer, etc.).
The most frequent keyboard sequence is "qwerty" with G. Capitalizing Pattern
13,456 passwords. The most frequent letter sequence is By this pattern some lowercase letters of a dictionary word
"abcdef" with 2,733 passwords. The most frequent digit se- are exchanged with their uppercase equivalents. As examples,
quence is "123456" with 290,729 passwords. This is the the word "password" can be converted into "Password", "pass-
number one password in the Top 10 list. Word" or "passworD". Providing this, such passwords become
Table XI shows examples of the sequencing pattern for compliant with password policies which require passwords to
keyboard layouts, alphabet letters, digit sequences and their contain at least one uppercase letter. More passwords examples
combinations. of this pattern from the rockyou list are given in Table XIII.

F. Replacing Pattern
H. Reversing Pattern
In the analysis of inserting pattern we realized that certain
letters are replaced with a number or a symbol. As an example, By this pattern dictionary word letters are put in a reverse
the letter "o" is replaced with the number zero (e.g. password order. As an example, the word "password" is converted
→ passw0rd). Similarly, the letter "s" is replaced with "$" or into "drowssap". Some examples of this pattern from the
"five (5)" (e.g. sport → $port, august → augu5t). We examined rockyou list are as follows: drowssap, uoykcor, fedcba, elgoog,
this pattern further in order to identify more replacements. uoyevoli, ssecnirp, yraunaj, ylevol
CRACKING MORE PASSWORD HASHES WITH PATTERNS 6

TABLE XIII IV. C RACKING T ESTS WITH THE I DENTIFIED PATTERNS


C APITALIZING PATTERN E XAMPLES
After identifying several patterns, we proceeded with the
Pattern Password Examples (Total Count) benchmark of the identified patterns. We checked if they can
Example
Capitalization Password (806), Princess (769), Jessica (471),
improve efficiency of dictionary attacks by cracking more real-
of 1st letter Michael (410), Nicole (373), Daniel (368), life passwords hashes that were leaked from different web
Liverpool (350), Danielle (347), Michelle (345) portals in the past.
Capitalization rockU (15), passworD (7), whoamI (4), princesS (4)
of the last letter
Capitalization iTunes (4), pAssword (3), iLoveyou (3), kEvin (2) A. pbp-generator (pattern based password generator)
of the 2nd letter
Capitalization RockYou (658), HarryPotter (94), iloveJesus (30), We developed a software tool namely pbp-generator for
of the 2nd word passWord (7)
benchmarking. As shown in Figure 1 pbp-generator gets a
dictionary file as input, creates several variations of each
TABLE XIV dictionary word from the given input file based on Type 1
S PECIAL - FORMAT PATTERN E XAMPLES identified patterns (see Table XVI) and adds them to the output
Pattern Example Password Examples file which represents the generated pattern-based dictionary
Victim web page rockyou, ROCKYOU, RockYou, Rockyou, file. Additionally, pbp-generator adds many other passwords
rockyo, rockyouu from Type 2 identified patterns (see Table XVII) into the
www sites www.com, www.hotmail.com,
www.yahoo.com, www.rockyou.com, output file. The Type 2 patterns are not applied on input
www.google.com, www.hi5.com file, but they are used to create certain passwords (e.g. month
E-mail addresses [email protected], [email protected], name with year, special keyboard sequences etc.) to be added
[email protected], [email protected]
Dates 4/30/04, 4/19/1992 , 29/12/91 , 19/03/1988
directly into the output dictionary file. The passwords from the
Sportsman player ronaldo7, Ronaldo7, cristianoronaldo7, given dictionary file are explicitly included within the output
names with shirt messi10, leonelmessi10, zidane10, jordan23, dictionary file, because this enables us to distinguish if a given
numbers JORDAN23, Jordan23
Birth month with january14, january23, january19, february14,
hash can be cracked only with the pattern-based dictionary but
days or years february23, february22, jan2005, jan2007, not with the given input dictionary file. Before the output file is
dec26, december2003 finalized, double passwords are removed and therefore the final
Telephone numbers 09001728888, 08123456789, 01478520369 file includes only unique pattern-based passwords. Finally, the
output file of pbp-generator can be utilized for more efficient
TABLE XV dictionary attacks.
E XAMPLES OF M IXED PATTERNS

Pattern Example Password Examples B. The Cracking Tests


Appending with 123password123, 1password1, 1rockyou1,
prefixing 12rockyou12 We used pbp-generator to generate a pattern-based dictio-
Capitalization with Love4ever, Jesus4life, My2girls, Jesus4me, nary file from the original rockyou password list which con-
insertion My3sons
Reversing with dr0wssap, uoykc0r, 0uyev0li tains 14,344,399 unique passwords. pbp-generator generated a
replacing pattern-based dictionary file that contains 2,247,786,433 (circa
Capitalization with drowssaP 2.3 billion) unique passwords. The new dictionary file contains
reversing
156 times more passwords compared with the rockyou list.
Having two different password files (i.e. the original rock-
you list and the generated pattern-based dictionary file), we
I. Special-format Pattern performed dictionary attacks by using Hashcat tool [19]. In
The last identified pattern is special-format pattern. This our analysis, we used real-life MD5 and SHA1 password
pattern group contains passwords having special formats like hashes that were disclosed by different cyber-attacks and made
dates in various forms (e.g. dd/mm/yy, mm/dd/yy, dd/mm/yyyy publicly available [20] on the Internet.
etc.), combinations of a birth month with a day or year We performed two parallel tests. In the first test, we checked
in different forms (e.g. january15, jan15, jan2007 etc.) and how many password hashes can be cracked with the original
combinations of a sportsman player name with his/her shirt rockyou password list. In the second test, we checked how
number etc. Some examples of the special-format patterns with many password hashes can be cracked by using our pattern-
password examples from the rockyou list are given in Table based password list generated by pbp-generator. As the success
XIV. results and cracked password examples given in Table XVIII
show, our patterns enabled many more additional hashes to
be cracked. For example, ca. 577,000 Gamigo.com password
J. Mixed Patterns hashes could be cracked with the help of the rockyou list.
On the other hand, the pattern-based dictionary file could
This pattern represents mixing of two or more pattern types. crack ca. 365,000 additional password hashes which could not
Capitalization with reversing (e.g. droW) and capitalization be cracked with the rockyou list. Based on this result, 63%
with insertion (e.g. Wo2rd) are two examples. Table XV gives more passwords could be cracked with our patterns. Similarly,
more examples of this pattern from the rockyou list. by eharmony.com analysis the pattern-based dictionary could
CRACKING MORE PASSWORD HASHES WITH PATTERNS 7

TABLE XVII
T YPE 2 I MPLEMENTED PATTERNS (PATTERNS THAT ARE DIRECTLY
ADDED TO THE OUTPUT DICTIONARY FILE .)

Pattern Type Implementation Details


Combination of Months between January and December are com-
month name and bined with a number between 1 and 31 (e.g. jan-
day uary26, may30)
Combination of zidane10, ronaldo7, ramos4, adebayor6, kaka8, ben-
sport player zema9, alonso14, canales16, higuain20, dimaria22,
name and his/her ozil23, alves2, pique3, puyol5, xavi6, davidvilla7,
shirt numbers iniesta8, messi10, forlan7, aguero10, simao20, john-
son2, agger5, suarez7 etc.
Adding special 1q2w3e4r, qawsedrf, qaswedfr, zaxscdvf, zasxcdfv,
sequences a1b2c3, a1b2c3d4, 1a2b3c, 1a2b3c4d, 1234qwer,
1234asdf, 1234zxcv, qwer1234, asdf1234, zxcv1234,
5678abcd, abcd5678, 5a6b7c8d, 5a6b7c, a5b6c7,
a5b6c7d8
Adding victim Mayhem, mayhem, stratfor, Stratfor, Rootkit.com,
web sites rootkit.com, Blackstar, blackstar, LinkedIn, linkedin,
Linkedin, Gamigo, gamigo, EHarmony, eHarmony,
eharmony, Hellfire, hellfire, Whitefox, whitefox, Ca-
sio.cn, casio.cn, DamnSmallLinux, damnsmalllinux,
Dhool, dhool, Gaming, gaming, FFGBeach, ffg-
beach, Battlefield, battlefield, ABC
Adding dates All possible dates having the form dd/mm/yy or
mm/dd/yy are added (e.g. 20/05/74, 05/20/74).
Repeating 2-times and 3-times of "abc","abcd","qwer",
special character "asdf","qaz","zxcv", "Abc", "ABC", "Abcd","AbCd"
groups (e.g. ABCABCABC)
Repeating 2-times and 3-times the numbers between 10-2100
number groups are repeated (e.g. 959595)
Repeating birth The birth years between 1900 and 1999 are repeated
years 2-times and 3-times (e.g. 19101910, 195519551955).
Fig. 1. Architecture of pbp-generator Repeating The symbols (i.e. . ! , ; & | ( ) * + - < > = [ ] ^ ?
symbols $ % : # / @ _) are repeated 1-10 times (e.g. !!!,!!!!!,
&&&&&&).
TABLE XVI Repeating letters The letters between a-z and the numbers between 0-9
T YPE 1 I MPLEMENTED PATTERNS (PATTERNS THAT ARE APPLIED TO are repeated between 1-15 times (e.g. aaaa, bbbbbbb,
EACH WORD IN THE DICTIONARY FILE .)
33333333)

Pattern Type Implementation Details


Appending and 0,1,2,3,4,5,6,7,8,9,10,123,101,010,132, 111, 1111, Gamigo.com having about 7 million password hashes. The
Prefixing 11111, 222, 2222, 22222, 333, 3333, 33333, 444, same test took 8 minutes 59 seconds to complete when testing
4444, 44444, 555, 5555, 55555, 666, 6666, 66666,
777, 7777,77777, 888, 8888, 88888, 999, 9999, with the pattern-based dictionary.
99999, #1 1. 1! . ! , ; & | ( ) * + - < > = [ ] ^
{}?$%:#/@_ V. R ELATED W ORK
Repeating 2-times, 3-times, 4-times, 5-times (e.g. catcatcat)
Replacing All at once (e.g. p445w0rd) replacement and single Password security and cracking password hashes were ex-
character at one time (e.g. passw0rd) replacement tensively studied by many security researchers in the past.
based on Table XII.
Reversing Each word in the dictionary file is reversed. However, to the best of our knowledge, there is no other study
Capitalizing The first and the last letter of each dictionary word which analyzes real-life patterns in detail, identifies several
are capitalized. common password patterns and utilizes them to increase
success rates of dictionary attacks as explained in this paper.

crack ca. 28,000 additional passwords. This concludes that we


A. Pattern Analysis
could crack 150% more passwords compared with cracking
with the rockyou list which could crack only ca. 18,500 Veras et al. [21] studied password patterns too, but they fo-
password hashes. cus only on numbers and different date formats in passwords.
They did not perform any password cracking benchmark test
based on their identified patterns.
C. Performance Analysis Wu [22] analyzed password security of a Kerberos realm
Since the pattern-based dictionary contains many more containing slightly over 25 thousand users. They could crack
passwords than the rockyou list, it takes longer to perform hash a total of 2,045 passwords successfully by the end of the two-
cracking with the pattern-based dictionary. The hash cracking week experiment. The half of the guessed passwords was from
tests were performed on a 64-bit machine with an Intel i5 a dictionary. For the remaining half, they used the patterns
dual core 3.2 GHz processor and 12 GB RAM. Hashcat was prefix, suffix, capitalization and reversing. Comparing with our
executed with 32 parallel-running threads. Testing with the patterns, both their identified pattern set and benchmarking
rockyou dictionary took 37 seconds to complete the test for dataset are very limited.
CRACKING MORE PASSWORD HASHES WITH PATTERNS 8

TABLE XVIII
C RACKING T ESTS OF PASSWORD H ASHES

No. Resource1 Total Number Number Diff2 Success Examples from Diff
Num- of of Rate3
ber of Cracked Cracked
Hashes Hashes Hashes
with with
rock- patterns
you
1 Gamigo.com 7,004,341 577,012 942,863 365,851 63% softball111, montero., abcdefghij2, app1esauce, qwert6qwert6
2 Eharmony.com 1,516,834 18,491 46,414 27,923 151% CANCER101, 0HATERS, QWERT44444, PPPP18, STUPID!!
3 Stratfor.com 860,149 40,411 52,857 12,446 30% Charlie1., myself1!, coco9999, Wakeup, digger77777, s1natra,
thx1138thx1138, BARCELONA101, 0xf0rd
4 Battlefield 548,686 119,693 162,488 42,795 36% password4$, classic444, su6way, 5kywalker, qwerty12@, quiksi1ver,
letmein1111, q1w2e3r4t5=, 123456), karolkarol
5 FFGBeach 481,377 68,339 83,277 14,938 22% yyyyyyyyyyyyyyyyyy, 4343434, arie11e, september98,
americaneagle123, boobooboobooboo, 123456abc123, abcdefgh.
6 Project Mayhem 130,884 7,605 8,834 1,229 16% bobbob4444, changeme1!, Gogogo, mulanmulan, 1bobbob1,
111100000, Eight888, Deamon, Xavier22, 6663, p0werslave
7 Rootkit.com 71,228 20,759 24,874 4,115 20% a1b2c3d4., +987456321, boxingboxing, .security, login1111, l0gin,
Windowsxp, Admin, pass1word9, jejeje123, someone_, SECRET0
8 Gaming 50,853 10,308 11,726 1,418 14% 2pasword, dictionary5, qqqqqq1111, #zxcvbnm, kansaskansas
9 Project Whitefox 47,238 17,850 21,313 3,463 19% Charlie4444, banner#1, pe99y, secret1!, rocky-, kevin#, m0ney
10 Casio.cn 24,035 5,490 7,725 2,235 40% zzzzz111, benben9999, berryberry111, asdffasdff, P4ssword123
11 Project Hellfire 19,988 733 1,006 273 37% 1Australia, Pass, jjjkkk111, Passwor9, h4ckpr00f, %27
12 DHool 15,302 1,192 1,388 196 16% pass888, qwe12344, ashinashin, Passc0de, Dhool, Live123
13 DamnSmallLinux 14,144 38 129 91 239% mikemikemikemike, r12345r12345, 123456abcdef123, qwerty252
14 Project Blackstar 3,555 854 1,118 264 31% seas0n, dfghjkl1, Super12345, Paradox6666, dunsk1, 7777qwerty
15 ABC 49,567 17,504 21,593 4,089 23% ninja444, 2disneyland, candyland., graduate123, Sophie1!, qwerty1.

1 Allhashes of the resources were taken from http://www.adeptus-mechanicus.com/codex/hashpass/hashpass.php


2 Diffcolumn shows the number of password hashes that could be cracked only by using our pattern-based dictionary file.
3 Success rate column shows how many percent of additional passwords could be cracked with the pattern-based dictionary file.

B. Cracking Tests a probabilistic context-free grammar based upon a training


set of previously leaked passwords and used this grammar to
Weir et al. [23] performed password cracking attacks against
generate word-mangling rules which were afterward used for
many real-life passwords including the rockyou database. They
password cracking tests. They were able to crack 28% to 129%
analyzed the passwords according to the NIST SP800-63 pol-
more passwords than John the Ripper. Our approach achieves
icy rules and showed that Shannon entropy as defined by NIST
better results for certain datasets. For example, we could crack
does not provide a good model to check security complexity
151% more passwords in case of Eharmony.com dataset and
of passwords. In their model, they compute the probability
similarly 239% more passwords in case of DamnSmallLinux
for a given password. Providing this, it is possible to blacklist
dataset compared with their results. Moreover, their test dataset
passwords having the probability above a certain threshold
is very limited. One of their dataset contains 67,072 passwords
since they are not secure against guessing attacks. We believe
and the other one contains 7,480 passwords. We used 15
their model generates insecure passwords if we consider our
different datasets and the Gamigo.com dataset contains alone
pattern-based attacks. For example, their model suggests vio-
more than 7 million passwords. Zhang et al. [28] presented
lin123 and !!password123 as strong secure passwords. But this
a large-scale study of password expiration in practice. They
is not correct. These passwords contain certain patterns. We
provided an efficient search algorithm framework for attacking
show in this paper that such passwords can be easily cracked
future passwords from expired ones. They applied their search
with pattern-based dictionaries. Stone-Gross et al. [24] took
algorithm to a large, real-world data set for the analysis of
control of the Torping botnet which contained 297,962 unique
password expiration and confirmed that password expiration
username and password pairs. They did password cracking
is not an effective approach as expected.
analysis by using john-the-ripper [25] in brute-force mode and
could crack ca. 100 thousand passwords in 24 hours. Yan et
al. [26] explain their empirical study which investigates the C. Complexity Analysis
trade-off between security and memorability. They set up three Imperva analyzed the complexity of the rockyou passwords
different groups which chose their passwords freely or based and released a study [29]. According to their results, sixty
on a mnemonic phrase. The last group was given a random percent of the passwords are quite insecure and contain only
password. In the end, they performed dictionary attacks to lowercase letters, uppercase letters or numeric values. About
crack passwords of the study attendees. About 32% of the thirty percent of the passwords have the length which is equal
freely-chosen passwords could be successfully cracked. In to or below six characters. They listed the most frequently
their dictionary attack, they used replacement pattern as well, used 20 passwords as well. "123456" is at the top in the
but in a very basic form. Weir et al. [27] created automatically list. This analysis shows only generic complexity results, but
CRACKING MORE PASSWORD HASHES WITH PATTERNS 9

does not mention any patterns. Houshmand and Aggarwal [30] unauthorized access to their accounts.
propose a new system which analyzes whether a user proposed One possible solution can be that users exploit secure
password is weak or strong by estimating the probability of the password managers (SPM) to store their passwords. SPMs
password being cracked. They modify then the weak password generate unique, random and complex passwords without any
to create a strengthened password as well. Some examples pattern, store them within a database and store the database
of weak and strengthened password are trans2 → %trans2, in an encrypted form (e.g. AES-256) on file systems. In order
colton00 → 8colton00. This system is also insecure against to decrypt the database and retrieve the passwords, a master
pattern-based dictionary attacks. An attacker can delve into the secure password must be provided by users. In addition, some
details of this system, identify specific patterns used by this SPMs ask users to provide a physical file which is generated
system and use these identified patterns to generate possible randomly during the setup phase of the password database
strengthened passwords. Stanekova and Stanek [31] evaluate creation. Providing this, users generate secure passwords for
several methods of choosing PIN against dictionary-based each service they use with the help of their SPM and do
guessing attacks and discuss two methods for constructing not need to memorize them. They just need to memorize
easy to remember PIN words for randomly chosen PINs. the master password and protect the physical file against
Narayanan and Shmatikov [32] show how to reduce the size unauthorized access. It is in this case important that the master
of password search space for dictionary attacks by using password is complex, randomly generated and contains no
Markov modeling techniques. Mazurek et al. [33] performed pattern. But it is not a problem for users to memorize a single
an empirical study over the plaintext passwords of 25 thousand complex password and remember it later. Furthermore, some
faculty, staff, and students at a research university. They found SPMs offer smart-card authentication.
that some elements of the university population create more Another solution can be two-factor authentication. Today
secure passwords than others. For example, computer science authentication systems should not depend only on knowledge
students make passwords more than 1.8 times as strong as the of username-password pairs, especially for critical applications
business school students. Comparing their contributions with like email, online banking or e-commerce. A new authen-
ours, their focus is mainly the relation analysis of different tication factor based on what we possess (e.g. hardware
categories like gender, college types, user types, etc. rather token, smart-card) or who we are (e.g. fingerprint) should
than password patterns. Jakobsson and Dhiman [34] built be additionally checked during authentication process. As
a model of passwords by using the Rockyou dataset. They examples, online banking applications benefit today tamper-
parsed and scored passwords from five other datasets of resistant hardware tokens and similarly some online services
disclosed passwords (i.e. Rootkit, Sony, Paypal, Justin Bieber like Google Mail, Twitter, Wordpress etc. support software
fan web page and Porn web page datasets). They analyzed tokens that are sent over SMS or generated by a native mobile
then the usage of various rules in the datasets. Their analysis app (e.g. Google Authenticator).
showed the average number of components per password Considering the pattern risks, it is vital to revise current
in the different datasets. As a result, they found out that password authentication systems as well. They normally check
Justin Bieber dataset has the highest average number of word if a user-given password is a dictionary word or not. If it is
components compared with the other datasets. Kelley et al. a dictionary word, it is black-listed and rejected. The user
[35] studied the impact of different password policies on is asked to choose a non-dictionary password. This existing
password strength. They investigated mainly the resistance of feature should be extended to cover passwords with patterns.
passwords created under different policies and the performance They can let pbp-generator create a pattern-based dictionary
of guessing algorithms under different training sets. file from their current dictionary file and afterward check if
users enter passwords which exist within the pattern-based
D. New Password Schemes dictionary file.
Forget et al. [36] proposes a password creation scheme Academic researchers focusing on password security and
based on Persuasive Technology [37]. This scheme inserts or authentication systems should take patterns into considera-
replaces randomly fixed number of characters in a user chosen tion and propose solutions accordingly. The related academic
password. As explained in this paper, inserting or replacing works from the past should be re-evaluated by considering the
characters are typical patterns which can be misused to guess risks caused by patterns. Security awareness trainings held
passwords successfully. Xiao et al. [38] propose some pass- especially for non-security experts should take patterns into
word mechanisms in which a user can choose a virtual pass- consideration as well. Attendees should be informed about the
word scheme ranging from weak security to strong security. patterns and warned not to use pattern-based passwords.
The proposed schemes provide several system recommended
functions like flipping one digit in the password, reversing bits VII. C ONCLUSION
of the password, adding an additional digit/character at a fixed Weak passwords are critical threats for authentication sys-
place, etc. We showed that such functions can be attacked since tems. Seizing password hashes, especially unsalted hashes,
their results contain certain patterns. attackers can use different attack techniques (i.e. brute-force,
dictionary, rainbow-tables) to crack hashes and reveal plaintext
VI. M ITIGATION M ETHODS passwords.
The following mitigation methods can be suggested in order Security experts try to establish security awareness for
to minimize the risks from patterns and protect users against strong passwords. In addition, authentication systems enforce
CRACKING MORE PASSWORD HASHES WITH PATTERNS 10

password policies to fulfill complexity rules. Being forced to [15] P. Oechslin, “Making a faster cryptanalytic time-memory trade-off,” in
use strong passwords, people tend to use similar patterns when Advances in Cryptology - CRYPTO 2003, ser. Lecture Notes in Computer
Science, D. Boneh, Ed. Springer Berlin Heidelberg, 2003, vol. 2729,
choosing their "strong" passwords. But such patterns endanger pp. 617–630.
security of passwords. [16] G. Fragkos and T. Tryfonas, “A cognitive model for the forensic recovery
In this paper we explain how frequently used patterns can be of end-user passwords,” in Proceedings of the Second International
Workshop on Digital Forensics and Incident Analysis, ser. WDFIA ’07.
identified and misused to generate pattern-based password dic- Washington, DC, USA: IEEE Computer Society, 2007, pp. 48–54.
tionaries. These common patterns can be afterward exploited [17] C. E. Shannon and W. Weaver, A Mathematical Theory of Communica-
to crack more password hashes compared with traditional tion. Champaign, IL, USA: University of Illinois Press, 1963.
[18] “SkullSecurity Passwords,” https://wiki.skullsecurity.org/Passwords.
dictionary attacks. In order to identify common password [19] “Hashcat - Advanced Password Recovery Practices,” http://hashcat.net.
patterns, we performed both manual and automated analysis [20] “Hashdumps and Passwords,” http://www.adeptus-mechanicus.com/
on a large set of leaked real-life passwords of rockyou.com codex/hashpass/hashpass.php.
[21] R. Veras, J. Thorpe, and C. Collins, “Visualizing semantics in passwords:
gaming portal. After identifying the patterns, we developed a The role of dates,” in Proceedings of the Ninth International Symposium
software tool, namely the pbp-generator, which creates many on Visualization for Cyber Security, ser. VizSec ’12. New York, NY,
pattern-based passwords from a given traditional dictionary. USA: ACM, 2012, pp. 88–95.
[22] T. Wu, “A real-world analysis of kerberos password security,” in Network
We utilized the generated pattern-based dictionary to perform and Distributed System Security Symposium, 1999.
cracking tests against real-life leaked password hashes from [23] M. Weir, S. Aggarwal, M. Collins, and H. Stern, “Testing metrics
15 different datasets. According to the test results, we could for password creation policies by attacking large sets of revealed
passwords,” in Proceedings of the 17th ACM Conference on Computer
crack with pattern-dictionaries many more password hashes, and Communications Security, New York, USA, 2010, pp. 162–175.
which cannot be cracked by using the rockyou password list. [24] B. Stone-Gross, M. Cova, L. Cavallaro, B. Gilbert, M. Szydlowski,
From this perspective, our proposed pattern-based attacks R. Kemmerer, C. Kruegel, and G. Vigna, “Your botnet is my botnet:
Analysis of a botnet takeover,” in Proceedings of the 16th ACM
enhance dictionary attacks and can be considered as the new Conference on Computer and Communications Security, ser. CCS ’09,
generation of dictionary attacks. It can especially help forensic New York, USA, 2009, pp. 635–647.
investigators for more efficient password cracking compared [25] “John the Ripper password cracker,” http://www.openwall.com/john/.
[26] J. Yan, A. Blackwell, R. Anderson, and A. Grant, “Password memora-
with the existing techniques. bility and security: empirical results,” Security Privacy, IEEE, vol. 2,
no. 5, pp. 25–31, Sept 2004.
[27] M. Weir, S. Aggarwal, B. d. Medeiros, and B. Glodek, “Password
ACKNOWLEDGMENT cracking using probabilistic context-free grammars,” in Proceedings of
the 2009 30th IEEE Symposium on Security and Privacy, ser. SP ’09.
The author would like to thank Necati Erşen Şişeci, M. Washington, DC, USA: IEEE Computer Society, 2009, pp. 391–405.
Oğuzhan Topgül, M. Oğuzhan Külekçi and Yalçın Çakmak [28] Y. Zhang, F. Monrose, and M. K. Reiter, “The security of modern
password expiration: An algorithmic framework and empirical analy-
who provided valuable comments on drafts of this article. sis,” in Proceedings of the 17th ACM Conference on Computer and
Communications Security, ser. CCS ’10. New York, NY, USA: ACM,
2010, pp. 176–186.
R EFERENCES [29] “Imperva Consumer Password Worst Practices,” http://www.imperva.
com/docs/WP_Consumer_Password_Worst_Practices.pdf, 2010.
[1] L. O’Gorman, “Comparing passwords, tokens, and biometrics for user [30] S. Houshmand and S. Aggarwal, “Building better passwords using
authentication,” Proceedings of the IEEE, vol. 91, no. 12, pp. 2021– probabilistic techniques,” in Proceedings of the 28th Annual Computer
2040, Dec 2003. Security Applications Conference, ser. ACSAC ’12. New York, USA:
[2] “Playstation Network Hack,” http://www.theguardian.com/technology/ ACM, 2012, pp. 109–118.
gamesblog/2011/apr/27/playstation-network-hack-sony, 2011. [31] L. Staneková and M. Stanek, “Analysis of dictionary methods for pin
[3] “RockYou hack compromises 32 million passwords,” selection,” Comput. Secur., vol. 39, pp. 289–298, Nov. 2013.
http://www.scmagazine.com/rockyou-hack-compromises-32-million- [32] A. Narayanan and V. Shmatikov, “Fast dictionary attacks on passwords
passwords/article/159676/, 2009. using time-space tradeoff,” in Proceedings of the 12th ACM Conference
[4] “#OpWorldCup: Anonymous Hacks Brazilian Government, Police, on Computer and Communications Security, ser. CCS ’05, New York,
Court, Globo TV and Cemig Telecom,” http://hackread.com/anonymous- USA, 2005, pp. 364–372.
hackers-brazil-worldcup-hacks/, 2014. [33] M. L. Mazurek, S. Komanduri, T. Vidas, L. Bauer, N. Christin, L. F.
[5] “Software Company Tom Sawyer Hacked, 61,000 Vendors Ac- Cranor, P. G. Kelley, R. Shay, and B. Ur, “Measuring password guess-
counts Leaked,” http://www.databreaches.net/software-company-tom- ability for an entire university,” in Proceedings of the 2013 ACM SIGSAC
sawyer-hacked-61000-vendors-accounts-leaked/, 2013. Conference on Computer and Communications Security, ser. CCS ’13.
[6] “Hacker Defaces Microsoft U.K. Web Page,” http://rcpmag.com/articles/ New York, NY, USA: ACM, 2013, pp. 173–186.
2007/06/29/hacker-defaces-microsoft-uk-web-page.aspx, 2007. [34] M. Jakobsson and M. Dhiman, “The benefits of understanding pass-
[7] “Hackers Leak Data Allegedly Stolen from Chinese Chamber of words,” in Mobile Authentication, ser. SpringerBriefs in Computer
Commerce Website,” http://news.softpedia.com/news/Hackers-Leak- Science. Springer New York, 2013, pp. 5–24.
Data-Allegedly-Stolen-from-Chinese-Chamber-of-Commerce-Website- [35] P. Kelley, S. Komanduri, M. Mazurek, R. Shay, T. Vidas, L. Bauer,
396936.shtml, 2013. N. Christin, L. Cranor, and J. Lopez, “Guess again (and again and
[8] “LinkedIn Hack,” http://en.wikipedia.org/wiki/2012_LinkedIn_hack. again): Measuring password strength by simulating password-cracking
[9] “SQL Injection,” https://www.owasp.org/index.php/SQL_Injection. algorithms,” in Security and Privacy (SP), 2012 IEEE Symposium on,
[10] “sqlmap - Automatic SQL injection tool,” http://sqlmap.org/. May 2012, pp. 523–537.
[11] “Havij- Advanced SQL Injection,” http://www.itsecteam.com/products/ [36] A. Forget, S. Chiasson, P. C. van Oorschot, and R. Biddle, “Improving
havij-advanced-sql-injection/. text passwords through persuasion,” in Proceedings of the 4th Sympo-
[12] “OWASP Password Storage Cheat Sheet,” https://www.owasp.org/index. sium on Usable Privacy and Security, ser. SOUPS ’08. New York, NY,
php/Password_Storage_Cheat_Sheet. USA: ACM, 2008, pp. 1–12.
[13] “Brute-force attacks,” https://www.owasp.org/index.php/Brute_force_ [37] B. J. Fogg, “Persuasive technology: Using computers to change what
attack. we think and do,” Ubiquity, vol. 2002, no. December, Dec. 2002.
[14] V. Goyal, V. Kumar, M. Singh, A. Abraham, and S. Sanyal, “Compchall: [38] Y. Xiao, C.-C. Li, M. Lei, and S. Vrbsky, “Differentiated virtual
Addressing password guessing attacks,” in Proceedings of the Interna- passwords, secret little functions, and codebooks for protecting users
tional Conference on Information Technology: Coding and Computing from password theft,” Systems Journal, IEEE, vol. 8, no. 2, pp. 406–
(ITCC’05). IEEE Computer Society, 2005, pp. 739–744. 416, June 2014.
CRACKING MORE PASSWORD HASHES WITH PATTERNS 11

Emin İslam Tatlı is an Assistant Professor with the


Department of Electrical and Electronics Engineer-
ing, İstanbul Medipol University, İstanbul, Turkey.
He received the Ph.D. degree in computer science
from the University of Mannheim (Germany) in
2009. He worked as information security expert by
different security consultancy companies between
2008 and 2013. His research interests include pass-
word security, authentication systems, web applica-
tion security, security testing, security management
and privacy. Dr. Tatlı has conducted several secu-
rity trainings within several enterprise companies related to secure coding,
penetration testing, security management and mobile security topics. He is
a board member of international OWASP (Open Web Application Security
Project) security community at Turkish and German chapters.

View publication stats

You might also like