Password Cracking
Password Cracking
Password Cracking
Rainbow Tables
Korhan Bircan
April 23rd, 2008
Introduction to Computer System Security
1
Outline
zIntroduction
zSecure passwords
zDemo
zHellman’s original method
zRainbow tables
zCracking Windows Passwords
zPassword crackers
zProtection mechanisms
zConclusion
Password Cracking with Rainbow Tables 2
Introduction
algorithm hash/sec
LM 1,300,728
NTLM 2,623,294
MD5 3,401,360
SHA1 924,898
∑ 26i = 835.3M
LM NTLM MD5 SHA1
10.7min 5.3min 4.1min 15.1min
i =1
7
i =1
LM
17.2 hr
NTLM
8.5 hr
MD5
6.6 hr
SHA1
1.0 day
14
zsecpol.msc
zdon’t
{ use personal information
{ use any word in any language spelled forward
or backward
{ tie passwords to the month
{ create new passwords that are substantially
similar to ones you've previously used
{ use the same password for different systems
zDisable LM Hash
zFalse alarms:
{key may be a part of a chain which has the
same endpoint but is not in the table
{key is in a chain that is part of the table but
which merges with other chains of the table
zMerges correspond to same endpoint,
detected during sort. They are replaced
with new chains
M = m × l × m0 m0
Time
M: bounds on memory
T = t × l × t0 T: cryptanalysis time
m: number of chains per table
M = m × l × m0
l: number of tables m0 : starting point + end point = 8B
t: average chain length t0 : time to encrypt a plaintext
Password Cracking with Rainbow Tables 22
Bounds and Parameters
zWinrtgen Benchmarks:
zRecovering a password
keyspace 8353082582
table size 610 MB
success probability 0.9990
charset [ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789]
keyspace 80603140212
table size 3 GB
success probability 0.9904
charset [ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789!@#$%^&*()-_+= ]
keyspace 915358891407 (2^39.7)
table size 24 GB
success probability 0.99909
charset [ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789!@#$%^&*()-_+=~`[]{}|\:;"'<>,.?/ ]
keyspace 7555858447479 (2^42.8)
table size 64 GB
success probability 0.999