Man, wat je nu zegt klopt helemaal niet. Een rainbowtable is helemaal geen database met elke mogelijke cominatie erin. Een rainbowtable is een keten van hashes die kleiner gemaakt worden en opnieuw gehast worden. Zodat je miljoenen combinaties kunt weglaten uit je database en je alleen maar de juiste chain hoeft te vinden. Wanneer je die gevonden hebt hoef je nog maar een paar miljoen berekingen te doen om je antwoord te vinden.
De tijd om het juiste antwoord te vinden word zo kleiner maar het geheugen wat je nodig hebt word groter.
Ook wel time-memory trade-off genoemd.
"The genius of rainbow tables is a complex mathematical formula that expresses virtually every possible password combination without requiring each one to be stored in memory or on disk. Each table targets a specific algorithm and keyspace, and it contains a collection of chains. Each chain starts with an arbitrary password on one side and ends with a single hash value on the other end. The beginning password is put through the algorithm to generate its hash, and that value is then passed through one of many different "reduction functions" to generate a new password guess. The new password is then hashed.The process continues until the hash at the end of the chain is reached."
"A rainbow table chain starts with an arbitrary plaintext, hashes it, reduces the hash to another plaintext, hashes the new plaintext, and so on. The table stores only the starting plaintext and the final hash, and so a chain "containing" millions of hashes can be represented with only a single starting plaintext, and a single finishing hash.
Daarbij is het gebruik van rainbowtables bij het kraken van passworden voorbijgestreefd door snelle GPU's die door hun parrallelle manier van rekenen super goed zijn in het bruteforcen van passworden.
Wanneer je een lijst met hashes te pakken krijgt en ook de salts bieden de salts alleen bescherming tegen de rainbowtable manier. Wanneer je de salts niet hebt kun je die wel vinden (of het gebruikte algoritme voor de salts) wanneer er meerde gebruikers in de lijst van hashes zijn die hetzelfde passwoord hebben gebruikt.
Om een lang verhaal kort te maken. Welke beveiliging je ook inbouwd, als je gebruikers allemaal idiote passworden gebruiken zoals: D1traadj3n001t dan vinden de crackers tegenwoordig zo 90% van de passwoorden. Zelfs met gebruik van salts.
Het enige wat nog bescherming bied is tools die voor elke site een super lange random string produceren en al je passwoords lokaal encrypten onder een unieke lange passphrase bv 5 willekeurige woorden achter elkaar. Alternatief kun je ook gewoon zelf passwoorden verzinnen door 5 willeurige woorden. Bijvoorbeeld: TwaalfRegenboogSpinzieDropjesGek
Makkelijker te onthouden dan C@r00i!!?G0D en met een stuk meer entropie erin.
Is het nu zo moeiljk om aan jezelf toe tegeven dat je eigenlijk niet weet wat iets is voor je een zin plaats die totaal onwaar is?
[Reactie gewijzigd door Kain_niaK op 27 juli 2024 13:45]