image

Hoe hackers een wachtwoord van 16 karakters kraken

vrijdag 31 mei 2013, 10:58 door Redactie, 13 reacties

Met een paar handige tools wist een journalist in april een lijst met ruim 16.000 wachtwoordhashes voor de helft te ontcijferen, maar wat als de 'professionals' hiermee aan de slag gaan. Nate Anderson van Ars Technia dook in maart in de wereld van het kraken van wachtwoordhashes. Een hash is een gecodeerde versie van het wachtwoord die wordt opgeslagen.

Dit voorkomt dat het wachtwoord van gebruikers in platte tekst in een database wordt bewaard. Als de website dan zou worden gehackt, zou dit betekenen dat de aanvallers meteen alle wachtwoorden van de gebruikers hebben. Een hash moet dit voorkomen. Door de toegenomen rekenkracht van computers en videokaarten en leeftijd van bepaalde hashing-algoritmes, is een hash ook niet meer voldoende.

Onderzoek
Veel websites gebruiken nog steeds het MD5-algoritme voor het hashen van wachtwoorden en dat biedt nauwelijks bescherming tegen een aanvaller die de database met hashes weet te bemachtigen. Ars Technica besloot de lijst van ruim 16.000 hashes die Anderson voor de helft kraakte aan ervaren wachtwoordkrakers te geven.

Die maakten er letterlijk gehakt van en wisten wachtwoorden van 16 karakters binnen een uur te achterhalen. De beste van de drie krakers wist in 20 uur 14.734 van de 16.449 hashes te achterhalen. Een succespercentage van 90%, behaald met een enkele Radeon 7970 videokaart.

Een andere kraker wiste 13.486 hash (82%) te kraken, maar deed dit in minder dan een uur. Deze kraker gebruikte twee Radeon 6990 videokaarten. De derde kraker wist 62% van de hashes binnen een uur te ontcijferen middels een enkele Radeon 7970 videokaart.

Voor het ontcijferen van de hashes gebruikten de krakers verschillende technieken en strategieën, zoals brute-force, hybride-aanvallen en woordenlijsten.

Wachtwoord
De snelheid waarmee de hashes werden ontcijferd laat zien hoe belangrijk het is voor websites om sterkere hashing-algoritmes dan MD5 te gebruiken en ook 'salting' toe te passen, wat het kraken van de hashes lastiger moet maken.

Aangezien internetgebruikers geen controle over de manier hebben waarop websites wachtwoorden opslaan, onderstreept de test nogmaals het belang van een uniek en sterk wachtwoord voor elke website.

Reacties (13)
31-05-2013, 13:57 door lucb1e
Die maakten er letterlijk gehakt van en wisten wachtwoorden van 16 karakters binnen een uur te achterhalen
Dit is nogal misleidend en klopt niet eens met de grafiek eronder. Ik heb het artikel gelezen, en wachtwoorden van 16 tekens is echt nog niet zomaar te kraken. Dat wil niet zeggen dat 33nst3rkw4chtw00rd (19 tekens) veilig is, maar dat wil wel zeggen dat 16 willekeurige tekens nog altijd een veilig wachtwoord vormen. We hoeven echt niet alle wachtwoorden van 9 tekens of langer te gaan vervangen enkel omdat je met markov chains en hybride dictionary attacks enkele wachtwoorden van 16 tekens kan achterhalen.

Ik kan wel aanraden het originele artikel op Ars Technica te lezen, heb het een paar dagen geleden gedaan (stond op HackerNews) en vond het erg interessant. Als je Markov Chains niet kent, Wikipedia heeft opzich wel goede uitleg, maar in het kort: Het bepaalt op een statistische manier wat de kans is dat een bepaald teken het volgende teken is, gebaseerd op de voorgaande tekens. Bijvoorbeeld als je het de wachtwoorden Password1, Ienemienemutte89 en Eentweedrie4 voert, kun je met de markov-chain methode concluderen dat het waarschijnlijk is dat de eerste letter een hoofdletter is, vervolgens lowercase letters komen, en aan het einde vaak nog een cijfer staat. In dit geval zie je dat zo ook wel, maar met 10.000 gekraakte wachtwoorden is een geautomatiseerde manier toch éven handiger. Met deze methode verklein je de keyspace die je moet afzoeken aanzienlijk, en eventuele hiermee gekraakte wachtwoorden kun je weer toevoegen aan de markov chain zodat het verder "leert" en meer wachtwoorden kan raden.

Maar zoals je misschien al doorhebt is dit statistiek. En dat werkt niet op willekeurige wachtwoorden. Iets als iN4wuiH5ZU (10 tekens) is nog altijd prima veilig, zelfs als ongesalte MD5 hash. Niet heel lang meer (wet van Moore) en ik zou het danook niet publiceren, maar op dit moment is het theoretisch nog veilig.

Merk op dat wachtwoordzinnen niet zomaar veel veiliger zijn. Je moet wel echt willekeurige woorden pakken voor je wachtwoordzin. Ook op wachtwoordzinnen kun je namelijk weer markov chains en dictionaries op toepassen, aangezien taal op een logische manier in elkaar zit: https://en.wikipedia.org/wiki/Language#Syntax. Maar met willekeurige woorden (correct horse battery staple) is het dus wel veilig. Of het dan nog makkelijk te onthouden is, is een tweede, maar waarschijnlijk is het nog altijd beter dan 10+ willekeurige tekens onthouden.
31-05-2013, 14:00 door Anoniem
Volgens het plaatje onder het artikel (dat door de lineaire Y-as redelijk onleesbaar is), is een wachtwoord van 10 letters nog altijd reuze veilig. Jammer dat de genoemde videokaarten waar het kraakwerk mee gedaan is ook niet in de afbeelding staan, en nog gekker: De Amazon EC2 cloud, waar in het artikel niet over wordt gesproken, scoort zelfs het best.
Kunt u mij vertellen of ik het artikel, of de bijgevoegde afbeelding, nou kan geloven?

[admin] De afbeelding verwees na een eerder onderzoek voor het brute-forcen van wachtwoordhashes. We hebben nu een afbeelding geplaatst van de HashcatUI, die voor dit onderzoek werd gebruikt [/admin]
31-05-2013, 15:58 door Anoniem
@lucb1e: En als ik als wachtwoord snicdickakkeldoppelpok gebruik werkt die methode dan ook?
31-05-2013, 16:57 door Anoniem
Door lucb1e: Merk op dat wachtwoordzinnen niet zomaar veel veiliger zijn. Je moet wel echt willekeurige woorden pakken voor je wachtwoordzin. Ook op wachtwoordzinnen kun je namelijk weer markov chains en dictionaries op toepassen, aangezien taal op een logische manier in elkaar zit: https://en.wikipedia.org/wiki/Language#Syntax. Maar met willekeurige woorden (correct horse battery staple) is het dus wel veilig. Of het dan nog makkelijk te onthouden is, is een tweede, maar waarschijnlijk is het nog altijd beter dan 10+ willekeurige tekens onthouden.
Ik weet niet of je hier helemaal gelijk in hebt. Wat Markovketens "pakken" hangt af van wat je als elementen in de keten gebruikt (letters, woorden) en hoe lang je de ketens maakt. Hoe korter de keten hoe meer vrijheid er is om onzin te produceren, hoe langer de keten hoe meer het op echte taal gaat lijken.

Ik denk daarom dat het verband dat je noemt tussen de logische structuur van taal en het gebruik van willekeurige woorden optreedt als woorden als elementen in de ketens worden gebruikt.

Ik gebruik wachtzinnen van onzinwoorden die helemaal niet bestaan, maar die ik (na wat oefening) wel kan onthouden omdat ze uitspreekbaar zijn, dat werkt goed voor mij. Als Markovketens met letters als elementen en (uit de losse pols geschat) een lengte van 3 gebruikt worden zouden mijn wachtzinnen wel eens prima met de kenmerken van de Nederlandse taal overeen kunnen komen, ook al bestaan de woorden niet, en dat zou impliceren dat ook die zinnen makkelijker gekraakt kunnen worden. En 'correct horse battery staple' zit op dat niveau vermoedelijk net zo dicht bij Engels als een gestructureerde zin.

Om iets concreter te maken hoe dat werkt: stel dat van Engelse teksten van elke 3 opeenvolgende letters is vastgelegd welke letters in welke frequenties erop volgen. Uitgaande van 'correct horse battery staple' weet je dan hoe groot de kans is:
- dat er na 'cor' een 'r' staat,
- dat er na 'orr' een 'e' staat,
- dat er na 'ore' een 'c' staat,
- dat er na 'rec' een 't' staat,
- dat er na 'ect' een ' ' staat,
- dat er na 'ct ' een 'h' staat, enzovoorts
En van elk triplet weet je welke letters er nog meer achter kunnen staan met hoeveel kans.

Als je die kansen kent dan kan je willekeurige teksten gaan genereren door met een willekeurig lettertriplet te beginnen en op basis van die kansen en een randomizer er mogelijke letters achter te plaatsen. De laatste twee letters van het vorige triplet met die nieuwe letter leveren een nieuw triplet op waarbij je op dezelfde manier een volgende letter kan kiezen, enzovoorts. En daarmee kan je een stuk raker brute-force-aanvallen uitvoeren dan wanneer je de tekens volkomen willekeurig kiest.

Het gemiddelde aantal volgende tekens waar je uit kan kiezen is dan beduidend lager dan het totaal aantal tekens waarmee gewerkt wordt, en dat gemiddelde tot de macht van de lengte van het wachtwoord zal dan ook dramatisch veel lager uitvallen dan de hele tekensetlengte tot de macht van de lengte van het wachtwoord, en dat is de reductiefactor in de zoekruimte voor een brute-force-aanval, als ik het goed zie. Al weet ik (nog) niet hoe groot dat gemiddelde is, het zal een hoop uitmaken.

Weer wat geleerd. ;-)
01-06-2013, 08:44 door [Account Verwijderd]
[Verwijderd]
01-06-2013, 10:21 door rob
Door pe0mot: Intrigerende discussie.
Ik twijfel tussen de sterkte en of zwakte van
-16 Random characters, Deze kun je dus niet onthouden.
-Een onzin zin met korte woorden. Lange woorden zijn makkelijker te raden.

Praktisch blijft dus alleen de laatste optie over maar........
Het aantal korte woorden dat in onze taal bestaat is beperkt, dus is dit niet erg sterk.
Terwijl ik dit type geeft mijn Android toetsenboard voorspeller precies mijn zorg weer.

Zijn 8 random characters dan nu niet de beste optie?
Of zie ik iets over het hoofd?

8 random characters is niet veilig voor bijv. MD5 - maar het is zowieso aan de krappe kant. Bij hashes zonder salt is het al helemaal veel te weinig.. Er zijn ongetwijfeld rainbow tables met het volledige 8 byte spectrum. Ik zou zowieso richting 9 of 10 gaan.

Maar passphrases kan je beter gebruiken.

Wat vind je van deze:

1) 8 random characters (genereren door je computer), bijv.: FDKJVCAL
2) Die 8 random characters omzetten naar een Passphrase, aangevuld met wat andere character sets: Fun8DuckJoke+VicCallAapLike

Je gebruikt de entropy van de 8 random characters dan toe in je Passphrase. Toegegeven, bovenstaande 27 characters bieden *veel* minder kwaliteit dan 27 random characters. Maar daar staat dan tegenover dat het bruikbaar is als je het moet intypen: leesbaar en typbaar.
02-06-2013, 21:37 door Anoniem
Anti-keylog wachtwoorden:

ps aux|more
dir *.*

Ik gebruik ze al jaaaaren

Kort maar krachtig.
03-06-2013, 09:02 door [Account Verwijderd]
[Verwijderd]
06-06-2013, 09:36 door [Account Verwijderd]
[Verwijderd]
13-06-2013, 23:11 door Anoniem
Die maakten er letterlijk gehakt van en wisten wachtwoorden van 16 karakters binnen een uur te achterhalen. De beste van de drie krakers wist in 20 uur 14.734 van de 16.449 hashes te achterhalen.
Dan moeten ze wel supercomputers hebben gebruikt of het waren simple 16 karakters...

Met dit pass: 1234567890123456

Length: 16 characters
Character Combinations: 10
Calculations Per Second: 4 billion
Possible Combinations: 10 quadrillion

It would take a desktop PC about 28 days to crack your password
Hoe hun het in 20 uur doen??

En met een 16 karakter moeilijk: !Q@W#E$R%T?&U*I#


Length: 16 characters
Character Combinations: 169
Calculations Per Second: 4 billion
Possible Combinations: 442 decillion

It would take a desktop PC about 3 quintillion years to crack your password

https://howsecureismypassword.net/

Length: 8 characters
Character Combinations: 25
Calculations Per Second: 4 billion
Possible Combinations: 152 billion

Ik gebruik standaard 100 karakters met speciale karakters :)
01-07-2013, 12:49 door Dick99999
Ik ben ben aan het overstappen op wachtwoord zinnen i.p.v. 10-15 willekeurige tekens. Voordeel van zinnen is dat ze ook makkelijk in te tikken zijn, zeker als er spaties tussen de woorden staan. In het originele artikel wordt gemeld dat ze ook combinaties van 2 woorden uit woordenboeken hebben gebruikt. Heeft iemand wel eens van wachtwoord cracking tools gehoord die bijvoorbeeld zinnen van 4 woorden systematische kraken?

Enige nadeel dat ik heb gelezen over wachtwoordzinnen is dat sommige 'slechte' sites wachtwoorden afkappen na een aantal tekens. Overigens gebruik ik Diceware met een NL-woordenboek dat ik nog steeds aan het aanpassen ben.
voorbeeld: erfde gids kraal vierd&e (Ik verander 1 woord altijd door toevoeging een willekeurig teken.)
04-11-2014, 14:11 door Anoniem
raar
05-08-2015, 13:02 door Anoniem
eitje !
Reageren

Deze posting is gelocked. Reageren is niet meer mogelijk.