Matchning leder till klartext
Om vi hittar en matchning, alltså att hasharna stämmer överens, är det bara att räkna om kedjan tills det ursprungliga hashvärdet hittas. Det reducerad klartexten innan det värdet är lösenordet.
Några exempel på hur lång tid det kan ta att hitta rätt lösenord om man gissar upp till 2 miljoner lösenord per sekund.
Tiden det tar att knäcka ett lösenord är helt beroende av om ett slumpmässigt salt används och hur många iterationer lösenordet skyddas av.
Att använda regnbågstabeller innebär att man genomför en så kallad tid mot minne-attack (time-memory tradeoff attack). Förberäkningen av värdena som vi lagrar i regnbågstabellen gör att vi kan snabba på forceringen jämfört med en attack där vi testar varje lösenord för sig. Vi vinner alltså tid för varje knäckning av lösenord på bekostnad av det minnesutrymme som tabellerna kräver.
I dokumenten RFC 2898 och NIST Special Publication 800-132 beskrivs hur man skyddar lösenord och kryptonycklar för moderna system, till exempel wpa2 och mjuka certifikat. Funktionen som presenteras kallas password based key derivation function, pbkdf. Den kräver både salt och iterationer.
Det finns två användningsfall för hur pbkdf ska användas. I det första fallet resulterar pbkdf i själva lösenordshashen, till exempel i wpa2.
I det andra fallet resulterar pbkdf i en kryptonyckel som kan dekryptera en annan kryptonyckel, till exempel en privat nyckel lagrad tillsammans med ett mjukt certifikat.
Nist rekommenderar att antalet iterationer ska vara minst tusen, men gärna en miljon, och att man ska använda ett så långt salt som möjlig.
4 096 upprepningar
Pbkdf tillämpas alltså i wpa2, där saltet utgörs av det trådlösa nätets ssid och antalet iterationer är 4 096. Antalet iterationer gör att det tar lång tid att göra en lösenordsknäckning av wpa2-baserade lösenord, men användningen av ssid som salt gör att det är möjligt att snabba på forceringen med hjälp av regnbågstabeller. Det finns regnbågstabeller tillgängliga på internet för mer än tusen av de vanligaste ssid:en.
Innehållsförteckning
gpu, graphics processing unit: Processor som finns på grafikkort. Arbetar med högre grad av parallellisering än en normal processor.
hash: Envägsfunktion. Resultatet från en hash går inte att räkna baklänges till vilket indata som angetts.
krigsringare: Gammal lösning som testar olika telefonnummer för att hitta modemingångar.
lm, lanman: Det sätt som användes för att autentisera Windows 95-klienter mot ett Windowsnätverk.
mjukt certifikat: Certifikat med privat nyckel som ges ut på fil.
iteration: Variabel som anger antal gånger som lösenordet hashats eller krypterats.
ntlm, nt lan manager: Det sätt som användes för att autentisera Windows NT-klienter mot ett Windows-NT nätverk.
pbes, password based encryption scheme: Beskriver vilken algoritm som används för att kryptera en annan kryptonyckel.
pbkdf, password based key derivation function: Beskriver på vilket sätt en nyckel eller hash tas fram. Om det är nyckel som tas fram används den för att dekryptera en annan kryptonyckel via pbes.
regnbågstabell: Tabell med förberäknade hash-kedjor. Snabbar upp formering av osaltade lösenord och därmed knäckning av krypterade lösenord.
salt: Slumpmässigt värde som läggs till ett lösenord för att göra det svårare att knäcka lösenordet. Lagras i klartext tillsammans med det krypterade lösenordet.
ssid, service set identification: Nätverksidentifierare för trådlösa nätverk.
wpa2, wi-fi protected access 2: Protokoll som används för att skydda autentisering mot trådlösa nätverk.
xor, ”exclusive or”: Operation som används i binära sammanhang. Om båda invärdena är samma blir resultatet noll, annars ett.