Totaal niet waar, door de parallelle kracht van de GPU is het real time kraken op de GPU met een hybrid attack (bruteforce voor de korte paswoorden + wordlist + permutations + mask + pattern based) van hashes van bepaalde (onveilig voor paswoord opslag) hashalgoritmes al veel sneller dan rainbowtables. (voornamelijk md5 en SHA varianten, met of zonder gebruik van salts)
Als je met rainbowtables wilt werkten voor paswoorden langer dan 10 tekens heb je zo gigantisch veel opslag ruimte nodig. En wanneer hashes gesalt zijn met een willekeurige salt dan moet je voor elke database met hashes die je te pakken krijgt een nieuwe rainbowtable laten genereren. En dat is natuurlijk niet wat je wilt als je al rainbowtables gebruikt want je gebruikte ze juist om tijd te sparen.
Hybrid attacks op PC's met 8 of meer snelle ATI GPU's. En dan nog moet de hacker voor hij begint door patroon analyse (en analyse van de doelgroep waar je hashes van dan komt) een groot deel van de combinaties er van te voren al uit filteren of hij vind na 100 jaar nog niks. Daarom dat hackers grote lijsten van paswoorden willen, door een aantal de eerste keer te kraken komen ze achter patronen die ze dan weer gebruiken om het aantal combinaties dat ze moeten proberen flink te verlagen. Dan vinden ze weer meer paswoorden die hun weer toelaat om een beter patroon te vinden. Uiteindelijk worden alle voorgaande analyses en wordlists ook gebruikt voor de volgende database van hashes die ze te pakken krijgen. Een enkelvoudig paswoord dat complex genoeg is en gehasht is met een algoritme bedoelt voor paswoord opslag is NIET te kraken door de gemiddelde hacker of zelfs een botnet. (Misschien wel door de NSA of de Chinezen, wie weet hebben die al een quantumcomputer)
MD5, SHA en dergelijk algoritmes zijn NOOIT specifiek ontwikkelt voor veilige paswoord opslag. Immers toen ze uitgevonden werden moesten ze snel werken op hardware die nu totaal verouderd is. En dus wanneer de hardware steeds sneller word, worden deze hashing algoritmes steeds onveiliger.
(
BCrypt,BCrypt,BCrypt,BCrypt,BCrypt,BCrypt, gebruik BCrypt jij idioot!) -->
zie reactie DFyNt2U
En veruit de meeste tweakers hier hebben een totaal verkeerd beeld van rainbow tables. De meeste denken dat het een fancy naam is voor een database waarin elke hash en het bijbehorende paswoord zit opgeslagen. Nou, forget it. Neem alle paswoorden van 10 tekens lang en korter met alleen gewone letters en hoofdletters.
Da's 26 kleine letters + 26 hoofdletter = 52 en dat tot de 10de macht (paswoord lengte)
Weet je hoe groot je harde schijf moet zijn om dat op te slaan?
(
Blitzdoctor geeft het antwoord onder mij)
Voor het kraken van hashes zijn er twee mogelijkheden
1) Probeer elk mogelijk paswoorden tot je een match hebt --> kost gigantisch veel tijd
2) Doe exact hetzelfde maar doe het maar een keer en sla de database op zodat je daarna eenvoudig kunt opzoeken welke hash bij welk paswoord hoort --> kost gigantisch veel opslag ruimte
Een "regenboogtabel" is de weg tussen deze twee in, een "time–memory tradeoff"
Wat er gebeurd wanneer je een rainbow table gegenereerd (en dit duurt gigantisch lang, maar hoeft maar een keer te gebeuren) is het volgende:
Je begint met het eerste mogelijke paswoord. In ons geval "aaaaaaaaaa".
Daar bereken je de hash van. Stel dat we een 32 bit hash krijgen
( afhankelijk van het gebruikte algoritme)
Nu vereenvoudig je die hash (reduce).
Bijvoorbeeld, je neemt alleen de eerste 6 bit van je hash.
Nu gebruik je deze hash als paswoord (dus input voor je hash algoritme) en berekent daar weer de hash van.
Nu vereenvoudig je deze hash weer en gebruikte die eenvoudige hash als paswoord om weer een nieuwe hash te genereren.
Wanneer je uiteindelijke bij de laatste hash bent aangekomen sla je alleen de begin hash en de laatste hash op in je database.
Een keten (chain) in een "regenboogtabel" bestaat dus uit
start paswoord --> starthash --> eindhash
(alle miljoenen hashes hier tussen worden NIET opgeslagen)
En zo worden er lange ketens gevormd. Onze rainbow table is klaar.
Nu willen we een hash opzoeken in onze rainbow table:
Het algoritme is:
- Start
- Zoek voor de hash in de lange lijst van laatste hashes, als dat er is breek uit de loop
- Zoniet, vereenvoudig de hash in een paswoord en hash het paswoord
- Ga naar start
- Wanneer de hash overeenkomt met de laatste hash in je lijst dan is het deze keten die de hash bevat waarvan jij het paswoord wilt weten.
Je hoeft nu nog maar een paar miljoen berekeningen te doen. Exact dezelfde die je computer deed voor deze keten op het moment dat je de rainbow table maakte, alleen die berekeningen werden dus niet opgeslagen. Alleen het eerste antwoord en het laatste.
Snap ie? Dat is de geheugen - tijd compromis.
Ik vind het vernuftig

maar GPU's zijn zo gigantisch veel sneller dan zelfs de snelste SSD's tegenwoordig dat rainbow tables alleen nog effectief zijn wanneer:
- Je al een tabel hebt die je meteen kunt gebruiken (NTLM hashes bv)
- Je terabytes aan RAM hebt, en er altijd stroom op je RAM staat zodat je je waardevolle rainbow tables in je vluchtig geheugen nooit kwijt raakt
- Je de NSA bent en datacenters hebt gebouwd waar je petabytes aan opslag ruimte tot je beschikking hebt. En de beste wiskundige in de wereld want zonder patroon analyse heeft zelfde de NSA niet genoeg opslag ruimte (bij gebruik van lange salts) of computerkracht (bij expres trage algoritmes zoals Bcrypt) voor een rainbow table bij het gebruik van een hash algoritmes dat ontwikkelt is speciaal voor paswoord opslag.
De hoofdreden dat er de laatste jaren zoveel nieuws naar buiten is gekomen van paswoord lekken is dat het internet bestaat uit idioten. Idioten die een totaal verkeerde manier van paswoord opslag gebruiken en idioten die die opslag vullen met de meeste stupide paswoorden. En altijd hetzelfde paswoord gebruiken.
Uiteindelijk zijn er misschien wel ontelbare mogelijke paswoorden, maar mensen zijn zo voorspelbaar dat je die lijst gigantisch kunt terug brengen tot je een lijst hebt van effectief gebruikte paswoorden. Daarom dat die database lek van die grote dating site een aantal jaar terug zo een gigantische effect heeft gehad.
Nadat die database voor 99,9% gekraakt was hadden de crackers de beste mogelijke tool voor patroon analyse ooit en de gevolgen daarvan zijn bekend. De ene na de andere hash database moest er aan geloven.
Bij het gebruiken van willekeurige salts of algoritmes die zichzelf miljoenen keren herhalen voor je de uiteindelijke hash hebt is het niet meer mogelijk om rainbow tables te gebruiken. Immers, door het injecteren van een lange salt in een kort paswoord is de input voor je hashgenerator al zo groot dat je voor een rainbow table meer geheugen nodig hebt dan er deeltjes in het universum zijn.
[Reactie gewijzigd door Kain_niaK op 22 juli 2024 19:41]