April 4th, 2010

Ik maak gebruik van het compressie programma 7-zip. Een fijn programma waarmee je ook je gecomprimeerde bestanden kan beveiligen met een goed en stevig algoritme. In een vorige versie was er echter maar één enkel wachtwoord invoer veld. Dus geen tweede om te controleren of je je wachtwoord niet per ongeluk verkeerd getypt hebt.

Zoals ik.

Dus nu zit ik met een probleem; een 256 bit AES beveiligd, gecomprimeerd bestand. Met een wachtwoord van zo rond de 20 karakters. Nagenoeg onkraakbaar, maar dat zal mij er niet van weerhouden om het toch eens te proberen. Met Java zelfs en middels ‘brute force’. Gewoon, omdat ik het leuk vind, ik hou er van om het wiel opnieuw uit te vinden. Gelukkig heeft 7-Zip nu in ieder geval, mede op mijn verzoek, een tweede wachtwoord invoerveld ter controle. Al heb ik daar in dit geval niet zo veel meer aan.

Mijn eerste poging heet; Cracker. Erg origineel. Dit stukje code probeert het 7-Zip bestand uit te pakken met een wachtwoord van iedere mogelijke letter combinatie, van 1 t/m 22 karakters, uit de verzameling:

‘a’, ‘b’, ‘c’, ‘d’, ‘e’, ‘f’, ‘g’, ‘h’, ‘i’, ‘j’, ‘k’, ‘l’, ‘m’, ‘n’, ‘o’, ‘p’, ‘q’, ‘r’, ‘s’, ‘t’, ‘u’, ‘v’, ‘w’, ‘x’, ‘y’, ‘z’,
‘A’, ‘B’, ‘C’, ‘D’, ‘E’, ‘F’, ‘G’, ‘H’, ‘I’, ‘J’, ‘K’, ‘L’, ‘M’, ‘N’, ‘O’, ‘P’, ‘Q’, ‘R’, ‘S’, ‘T’, ‘U’, ‘V’, ‘W’, ‘X’, ‘Y’, ‘Z’,
’0′, ’1′, ’2′, ’3′, ’4′, ’5′, ’6′, ’7′, ’8′, ’9′,
‘ ‘, ‘~’, ‘`’, ‘!’, ‘@’, ‘#’, ‘$’, ‘%’, ‘^’, ‘&’, ‘*’, ‘-’, ‘=’, ‘+’ en ‘_’

Hierbij kan het mogelijke wachtwoord bijv. ook bestaan uit één en dezelfde letter, bijvoorbeeld ‘AAAAA’.

De code verderop in dit artikel kan vrij vlot een wachtwoord vinden dat is opgebouwd uit ongeveer 5 of, als je wat meer tijd neemt, wellicht 8 karakters, gebruikmakend van de voorgaande verzameling. Maar het aantal combinatie mogelijkheden van 22 karakters is belachelijk! Er vanuitgaande dat ik alleen 22 letter wachtwoorden zou maken, dan alleen al zijn er 3,1827018296519204e+41 mogelijkheden (uitgerekend via deze website). Dat is ruim een 3 met 41 nullen, of:

318.270.182.965.192.040.000.000.000.000.000.000.000.000

mogelijkheden. Dat dit er nogal veel zijn lijkt me voor de hand. Stel dat ik per ongeluk 18 karakters heb gebruikt, dan worden dat 9,053844956548483e+33 mogelijkheden, of:

9.053.844.956.548.483.000.000.000.000.000.000

Wel, dat helpt, maar niet heus.

En ik dacht nog wel zo slim te zijn om de gebruikte wachtwoorden netjes, per 1000 weg te schrijven in een bestand. Zodat ik deze nog eens voor een ander vergeten wachtwoord zou kunnen gebruiken. Al zou ik ze per miljoen opslaan, dan nog zit ik met een belachelijke verzameling bestandjes. Waarschijnlijk veel te veel om in een normaal systeem überhaubt op je schijf kwijt te kunnen. En al zou ik dat achterwege laten; zou het controleren van 1 wachtwoord altijd maar 1 milliseconde duren, dan zou het controleren van de 18 letterige wachtwoorden nog 2,870955402e+23 of:

287.095.540.200.000.000.000.000 jaar (!)

duren (berekend via deze website)! Er vanuitgaande dat ik dezelfde computer zou gebruiken en de controle nooit sneller zou verlopen dan 1 milliseconde. Al mag ik hopen dat dat na een fractie van deze schatting inmiddels wel het geval is. Dat moet dus echt vele malen beter, ‘brute force’ is absoluut geen oplossing. Tenminste, niet als ik uitga van alle mogelijkheden die er zijn op basis van een set van 77 karakters.

Stel nu dat ik ongeveer wist welke karakters het zouden kunnen zijn. Ik weet hoe mijn wachtwoord er ongeveer uit had moeten zien. Ik zou ook gebruik kunnen maken van alleen die karakters. Ik kom dan op een setje van, in het meest gunstige geval, 35 karakters. Natuurlijk ga ik dàt setje niet met je delen. Helaas zit ik wel vast aan de lengte van (naar verwachting) 20 karakters van het wachtwoord. Een voordeel is wel dat ik er ook op kan gokken dat het wachtwoord niet uit één enkele letter zal bestaan, dus geen ‘AAAAAAAAAAAAAAAAAAAA’.

Zo blijven er nog 7.90192743640758e+27 of:

7.901.927.436.407.580.000.000.000.000

mogelijkheden over. De kans dat de aarde nog niet is vergaan op het moment dat ik het wachtwoord heb gevonden, wordt steeds groter. Ik moet er nog maar eens even een nachtje over slapen. Ik stop nu maar eens mijn Cracker, want hoe correct de code ook werkt, hier gaat het niet mee lukken: Cracker.

Leuk om te weten is dat de naar bestand (373 stuks) weggeschreven wachtwoorden (tot 5 letter wachtwoorden, eindigend bij ‘jUbh!’) in totaal zo’n dikke 2Gb beslaan (gecomprimeerd, natuurlijk met 7-Zip, een schamele 60 mb). Ook qua schijfruimte schiet het opslaan dus niet op.

Tags: , , , , , , , , , ,