Een regenboogtabel was een hulpmiddel dat werd gebruikt om cryptografische hashfuncties te kraken en zo wachtwoorden in platte tekst te achterhalen met behulp van een vooraf berekende authenticatiedatabase . Oplossingen met een regenboogtabel gebruiken een algoritme om snel de informatie op te zoeken die nodig is om wachtwoordhashes te kraken. Hoewel moderne wachtwoord-salting- en hashingalgoritmen de regenboogtabel grotendeels overbodig hebben gemaakt, zijn er nog steeds veel toepassingen die dergelijke direct beschikbare tools niet gebruiken en in plaats daarvan vertrouwen op afzonderlijke gehashte wachtwoorden, vaak uit gemakzucht of omdat ze belangrijke details over het hoofd zien.
Het idee achter het gebruik van rainbow tables of andere hash-kraakmethoden komt voort uit het gebruik van wachtwoordhashes in authenticatiedatabases. Elk systeem dat wachtwoorden gebruikt voor authenticatie, moet die wachtwoorden op de een of andere manier opslaan. In het ergste geval slaat de applicatieontwikkelaar de wachtwoorden op als platte tekst, waardoor de wachtwoorden van alle geregistreerde gebruikers extreem kwetsbaar zijn voor ongeautoriseerde toegang door hackers of zelfs interne systeembeheerders. Hoewel deze slechte praktijk al tientallen jaren bekend is, komt deze nog steeds vaak voor in online applicaties.
Iets wat sommige programmeurs enigszins, maar misschien wel zinloos, doen, is een enkele hash-berekening van het wachtwoord uitvoeren. Er zijn gangbare hash-algoritmen die wachtwoorden omzetten in wat op het eerste gezicht willekeurige tekenreeksen lijken, maar in werkelijkheid heel eenvoudig te reverse-engineeren zijn met een rainbow table. Wanneer u zich aanmeldt bij een systeem, wordt het ingevoerde wachtwoord gehasht met hetzelfde algoritme als waarmee het wachtwoord in de wachtwoorddatabase is opgeslagen. Als de hashes overeenkomen, bent u succesvol geauthenticeerd. Hier komt een rainbow table van pas.
Een rainbowtabel slaat alle eenrichtingshashes van platte tekstwachtwoorden op, van 1 teken tot 7 of misschien wel 8 tekens lang. (Een rainbowtabel van 8 tekens voor een eenvoudig hash-algoritme neemt tot 32 petabyte aan databaseruimte in beslag!). Wanneer een hacker een cache met eenvoudige wachtwoordhashes steelt, kan hij de hashwaarde in de rainbowtabel opzoeken om het platte tekstwachtwoord te vinden.
Met de komst van wachtwoordversleuteling met maximaal 32 tekens, bestaan regenboogtabellen niet meer om dergelijke zoekopdrachten uit te voeren (Bron: Rainbow Tables are Dead ). Belangrijker nog, veel standaard binaire bestanden voeren iteratieve hashing van wachtwoorden uit. Dit houdt in dat een wachtwoord met versleuteling een vast aantal keren herhaaldelijk wordt gehasht, en de uiteindelijke hashwaarde, bijvoorbeeld de 764e hash van het oorspronkelijke wachtwoord met versleuteling, wordt opgeslagen in de database voor toekomstige vergelijking bij authenticatie in de applicatie. Regenboogtabellen kunnen deze wachtwoorden niet kraken.
Wanneer hackers een cache met wachtwoorden stelen, kunnen ze snel bepalen of de wachtwoorden N keer gesald en gehasht zijn door een rainbowtabel te gebruiken om de top 100 wachtwoorden op te zoeken. Als ze een match vinden, kunnen ze terugwerken om te bepalen of de programmeurs lui waren en de wachtwoorden niet hebben gesald of iteratief gehasht, of beide. Ontwikkelaars hebben deze belangrijke stappen te vaak overgeslagen, waardoor hackers nu uw wachtwoorden kunnen achterhalen door ze te reverse-engineeren op een eenvoudige rainbowtabel.
Rainbowtabellen zijn een snelle en effectieve manier om ongezouten en enkelvoudig gehashte wachtwoorden te kraken. Ontwikkelt u een applicatie voor uw MKB? Vraag dan hoe de wachtwoorden worden opgeslagen. Vraag de ontwikkelaar hoe groot hun SALT-waarde is (8 is klein, 32 tekens is voldoende) en vraag vervolgens hoeveel iteraties ze op de wachtwoorden uitvoeren voordat ze de gehashte waarde opslaan. LastPass hasht het hoofdwachtwoord meer dan 100,000 keer. Dat is misschien te veel voor uw organisatie, maar een paar honderd tot duizenden keren zou voldoende moeten zijn.
Veelgebruikte functies voor salting en hashing zijn onder andere: “ Argon2 , scrypt , bcrypt en PBKDF2 ”.
Wat u ook doet, beschouw dit als een cruciale vereiste in uw applicatieontwikkeling. Als u geen SSO in uw wachtwoordschema kunt inbouwen en u wachtwoordhashes moet opslaan, moet u uw wachtwoorddatabase salten en iteratief hashen met behulp van de tools die in dit artikel worden genoemd.
Bronnen:
Extra Reading:
Hoe u uw website kunt beveiligen tegen datalekken
Encryptie, hashing en salting: wat is het verschil?
Gerelateerde termen:
Ontdek en deel de nieuwste trends, tips en best practices op het gebied van cyberbeveiliging, maar ook nieuwe bedreigingen waar u op moet letten.
Auteur: Katie Boquetti | Redactie: Craig Taylor Redactie: We wisten dit al een tijdje...
Lees meer
Auteur: Katie Boquetti | Redactie: Craig Taylor Redactie: Een CAPTCHA moet testen of...
Lees meerKrijg een scherper beeld van menselijke risico's met een positieve aanpak die traditionele phishingtests overtreft.
