Cookies op Tweakers

Tweakers maakt gebruik van cookies, onder andere om de website te analyseren, het gebruiksgemak te vergroten en advertenties te tonen. Door gebruik te maken van deze website, of door op 'Ga verder' te klikken, geef je toestemming voor het gebruik van cookies. Wil je meer informatie over cookies en hoe ze worden gebruikt, bekijk dan ons cookiebeleid.

Meer informatie

Door , , 60 reacties
Bron: The Register

In de afgelopen paar jaar hebben drie beveiligingshobbyisten een 500GB grote database gegenereerd, die moet helpen om bij een hash-code de meest waarschijnlijke brontekst te vinden. De database van RainbowCrack Online, zoals het project heet, omvat momenteel hashes die zijn aangemaakt met MD4, SHA1 en '1-6 Mixalpha Symbol32 Space'. De dienst is sinds 1 november leverbaar voor prijzen vanaf dertig dollar; wie een jaar lang ongelimiteerd in de database wil zoeken betaalt tot $2500.

Regenboog De site helpt de betalende bezoeker volgens eigen zeggen met het 'evalueren van zijn beveiliging' door middel van een proces dat als 'rainbow hacking' bekend staat. Met hash-algoritmes kan van elke willekeurige invoer een specifieke code berekend worden, waarbij twee verschillende invoerteksten wel dezelfde code zouden kunnen opleveren, maar dat komt in de praktijk niet voor. Omdat in theorie geen 'brontekst' bij een code te berekenen valt, gold een hash lange tijd als de ideale, praktisch onkraakbare versleuteling van passwords. De laatste tijd begint de theorie echter scheurtjes te vertonen: SHA-1- en MD5-hashes bleken al niet zo goed bestand tegen decodeerpogingen, en nu is er dus deze database. Juist het feit dat in de praktijk zelden of nooit voorkomt dat twee bronnen dezelfde hash opleveren, betekent dat het hashsysteem gevoelig is voor de op statistiek gebaseerde dienst van de regenboogkrakers.

'Een kort maar ingewikkeld password als $FT%_3^, wordt doorgaans als erg veilig beschouwd', aldus een van de oprichters, 'maar onze database heeft daar geen problemen mee.' Het aanleggen van die database mag dan jaren gekost hebben, hij is wel steeds opnieuw te gebruiken. Met een goede rainbow-database wordt dan ook de bijl aan de wortel van password-only beveiliging gelegd; daarmee zullen de drie kleurrijke types nogal wat beheerders flinke hoofdbrekens bezorgen en weinig nieuwe vrienden maken. Woordvoerder 'Travis' wilde alvast niet dat zijn achternaam op het web verscheen. Overigens zijn er wel degelijk al diverse openbare rainbow-databases op het web te vinden, dus het initiatief zal ook weer geen revolutie tot gevolg hebben.

Moderatie-faq Wijzig weergave

Reacties (60)

Dit is al best oud eigenlijk.

En dit is een serieus veiligheidslek!

Op mijn oude school was het namelijk niet zo moeilijk om met behulp van een bios back-door wachtwoord wat met google wel te vinden was de floppyboot aan te zetten op een PC waarna met een simpele NTFS enabled Linux floppy de SAM-file gecopieëerd kon worden.
Deze thuis ff een half uurtje met de Rainbow tables vergelijken en je hebt het wachtwoord van maar liefst 14!!! karakters mét cijfers, hoofdeltters én tekens!
das niet enkel op uw school. In heel wat openbare overheidsgebouwen is dit ook perfect mogelijk. (en kan je zo zelfs heel kostbare data bemachtigen)
Nuja, zelfs met wifi valt het allemaal al uit de lucht te plukken.

Wat ik me wel afvraag: ik plaats een link naar een tool die gebruik maakt van rainbowtables, en dit mag niet omdat het cracksoftware is. Maar dit hele artikel beschrijft anders wel zeer goed hoe je het moet doen niet...
stel, ik sla de md5 hash van een password op. is dat dan nu te kraken?

en wat als ik nou weer een md5 hash van die md5 hash maak? :D
Als je een md5 van een md5 maakt verzwak je je beveiliging juist. want daardoor zijn er nog meer passwords die tot hetzelfde resultaat leiden!

Je opgeslagen hash heb je gewoon nodig dus het niet opslaan is geen optie. Tenminste als ik ervan uitga dat je het originele password niet opslaat.

Vanuit de MD5 is het onmogelijk om wiskundig terug te komen tot het originele password vanwege 'data loss'. Wat ze daarom doen is enorme databases aanleggen van passwords met de bijbehorende hashes. Als jij nu een voor de hand liggend password hebt genomen, zit het in de database en kunnen ze aan de hand van de hash in de tabel opzoeken welk password er gaat werken.
Vandaar: hoe langer een password hoe beter. Woordenboekwoorden zijn ontzettend dom.
Niet alleen alfanumerieke tekens gebruiken.

Kan je altijd nog de pech hebben dat je slimme password '987R%!**(Hkq,mnfweZ1='
dezelfde hash heeft als 'geheim', en ze dat terugvinden in de database en dat gewoon kunnen invoeren als jouw password. Zo werkt het met hashes. Vandaar de formulering in het stukej bovenaan 'het meest waarschijnlijke'.

Je zou twee verschillende hashmethodes moeten gebruiken of zo om dat te voorkomen.
Een MD5 hashing van een MD5 hashing maakt het niet veiliger. Je blijft binnen dezelfde dimensie

Stel : strings kunnen maximaal 96 tekens bevatten. en we noemen deze verzameling S

Password (tekens 8 ) -> md5 hash
S8 -> S32
hier word dus inprincipe informatie toegevoegd.

bestanden(tekens 1000) -> md5 hash
S1000 -> S32
Hier word dus informatie geweggooid, meerdere bestanden kunnen dezelfde hash worden

md5 -> md5
S32 -> S32
Geen informatie toegevoegd , geen informatie weggegooid


Wat wel te verwachten is, is dat er in die database waarschijnlijk minder md5 hashes van md5 hashes waarmee het lastiger word om een match te vinden, maar het is geen concequente oplossing, voorgesteldde salts e en is een stuk beter
Nou, ik kan ieder wachtwoord invoeren dat die hash opleverd. Dus in die zin is het te kraken. Maar of ik dan het werkelijke wachtwoord weet of een onzin-string is de vraag.

md5 van een md5 is nutteloos. Ga dan voor challenge-response als inlogprocedure...
Dat is geen onzin. Vaak voegen ze ook nog een 'salt' toe. Regenboog tabellen zijn bedoeld voor een vast aantal hashing operaties (meestal maar 1).

"MS-Windows is one of the rare operating systems, with few routers, firewalls and databases, that uses salt-less hashes, making the attack possible."

Het programma 'KeePass' doet honderdduizenden hashing operaties op het hoofdwachtwoord. Daarbij is zelfs een brute-force aanval zinloon.
Bij wachtwoorden is de beveiliging heel eenvouding.

Niet alleen voeg je een unieke salt toe (zoals de naam van de website bijvoorbeeld) daarnaast voeg je een veranderende salt toe (zoals de unix timestamp bij het invoeren welke je apart opslaat) en daarnaast limiteer je het aantal tekens dat het wachtwoord lang mag zijn.

Wanneer je een limiet instelt van 16 tekens is het zo goed als onmogelijk binnen die 16 tekens een 2e string te vinden die dezelfde hash terug geeft.

Al met al is dit soort beveiliging relatief nutteloos gezien ze worden opgeslagen in een beveiligde database. Wanneer iemand toegang heeft tot de database is het systeem dus al gekraakt.

Ook dit zou je weer kunnen omzeilen door een aparte database te gebruiken voor je wachtwoorden en om ook te beveiligingen tegen brute-force aanvallen moet je het wachtwoord daarvan regelmatig veranderen.

Natuurlijk moet alles over een encrypted verbinding en dan het liefste via een PGP systeem.

Conclusie:
Je kan het dus zo ingewikkeld maken als je zelf wil en dan is het echt wel veilig, echter het punt is dat veel mensen hier niet het geld in steken. Dit omdat de gegevens vaak niet dermate gevoelig zijn en omdat de human factor dan een veel grotere rol gaat spelen.

Het is zo gemakkelijk even bij een collega op het toestenbord te kijken wanneer hij z'n wachtwoord intypt. En we kennen allemaal die gele blaadjes met alle wachtwoorden erop. Daarnaast zijn er genoeg mensen die gevoelige gegevens uitprinten en tijdens de lunch even op tafel laten liggen.

Security begint dus (zoals alles) bij jezelf.
Wanneer je een limiet instelt van 16 tekens is het zo goed als onmogelijk binnen die 16 tekens een 2e string te vinden die dezelfde hash terug geeft.
En dan vind je dus de originele string. Wordt je beveiliging daar beter van?
Zoek maar eens naar "mdcrack" op google ;)

(kan je zelf met een beetje processor je md5-hash crackz0ren)
(kan je zelf met een beetje processor je md5-hash crackz0ren)
Hoeveel tijd kost dat tegenwoordig voor md5 hashes van 48-bits invoer?

Update:
Ik zie dat mixalpha-numeric maar tot 7 karakters gaat, 42-bits dus.
In principe wel, je kan er vanuitgaan dat een "gewoon" wachtwoord tussen de 6 en 10 tekens lang zal zijn (alfanumeriek, voor de "doorsnee" gebruiker), waardoor het aantal "checks" dat je hoeft uit te voeren héél sterk afneemt.

Toch vind ik dit in principe heel erg slecht, omdat mensen zeer makkelijk aan de gecodeerde wachtwoorden kunnen komen. In principe kan je ze nu net zo makkelijk níet coderen, gezien degene die het wachtwoord wilt weten er toch wel achterkomt.
Dan noemen we dat 'Security trough opscurity', wat wel kan helpen maar ook geen aanrader is.

Het wachtwoord dient veilig te zijn, zelfs als de manier van coderen bekend is.
als je het in het engels moet doen kan je dan aub iig "obscurity" wel goed spellen? dit staat gewoon niet
Als je zonodig moet reageren, wil je dan wel op de interpunctie letten? Dit staat gewoon niet.
Als je het dan moet verbeteren, verbeter dan gelijk ook "trough", wat "through" moet zijn.
Ik heb hier zelf ook enkele van die rainbow tables op mn pc. In enkele seconden tijd kan je vrijwel elk windows wachtwoord achterhalen daarmee. Zeer doeltreffend dus. Voordeel van de online dienst: het gaat nog sneller, en je hebt al die vrije HD niet nodig.
handig tooltje dat hier gebruik van kan maken: <div class="b4" style="position: relative; color: black; border: #C6C1B4 1px solid; width: 80%; padding: 5px; font-size: 12px;"><span style="color: C00042;">Admin-edit:</span>
Linken naar site's waar warez, cracks en/of Cracktools te vinden zijn is niet toegestaan.
</div>
(voor zover het linken naar zo een software hier mag...)
Ik heb ook eerder met dergelijke rainbowtabellen gewerkt, en het maakt het wel heel makkelijk om een password te achterhalen.
Daar hoef je geen hacker voor te zijn, scriptkiddie is goed goenoeg. Wat me wel stoort is dat dergelijke informatie echt heel makkelijk te verkrijgen is. Je kunt verschillende systemen binnenkomen en bekijken zonder al te veel moeite informatie (geld) meenemen.
Ik heb ook eerder met dergelijke rainbowtabellen gewerkt, en het maakt het wel heel makkelijk om een password te achterhalen.
Maar hoe kom je aan de password hashes? Zijn die world readable (onder Windows)?
Maar hoe kom je aan de password hashes? Zijn die world readable (onder Windows)?
Nee, dat niet. Maar als je fysiek toegang hebt tot de computer kan je de betreffende file van het filesysteem lezen door bijvoorbeeld met Linux op te starten en de HD te mounten. Tijdens het runnen van windows is hij gelockt en zelfs door Administrator of System account niet te benaderen.

Er waren vroeger wel trucjes dat je m.b.v. een buffer overflow in de kernel ofzo toch die gegevens uit kon lezen maar voor zover ik weet zijn die gepatcht.
'Een kort maar ingewikkeld password als $FT%_3^, wordt doorgaans als erg veilig beschouwd'
René, misschien is het handiger als je daar niet het root wachtwoord van t.net neerzet ;)
De kans dat ie een ander geldig wachtwoord vindt is erg klein. Veel kleiner dan dat je een collision kan vinden bij gebruik van alle mogelijke ascii karakters.
In theorie is het idd zo dat een onwaarschijnlijk wachtwoord in hun DB gemakkelijk is terug te vinden, maar in praktijk is de kans dat er een hashcode van een onwaarschijnlijk wachtwoord instaat net zo klein als de kans is dat je dat wachtwoord zo samenstelt.

Dus of je er nou wat aan hebt... het lijkt me een eigenlijk een grote hoop onzinnige data in die database.
Zo moeilijk is het natuurlijk niet om zo'n database te genereren. Je hasht gewoon eerst alle mogelijke stings van lengte 1 dan lengte 2 dan 3 enz Al die hashes sla je op en je database is klaar. Het duurt effe maar theoretisch is het geen probleem

Gebruik is nog simpeler. Zoek de hashes van de wachtwoorden van het programma wat je wilt hacken op en als dat lukt heb je een code waarmee je de hash aan kan maken. Deze code is dan ook nog eens vrijwel zeker de oorspronkelijke code uit het originele programma aangezien vrijwel elke text een andere hash oplevert. Blijft het zout over dat men in je ogen probeert te strooien. Als je "genoeg" hashes kan terugvinden kun je ook het zout herkennen en verwijderen. Zout maakt het allemaal iets ingewikkelder maar ik zou niet durven vertrouwen op ongehashte wachtwoorden waar enkel "salt" aan toegevoegd is. En hashes lijken ondertussen toch wel hun langste tijd gehad te hebben.

Het probleem is dus niet zo gemakkelijk structureel op te lossen door meerdere hashes te gaan vergelijken , (integendeel, de kans dat 1 van die hashes in de tabel staat neemt alleen maar toe als je meerdere hashes neemt) te salten of de hashes te hashen.

De enige structurele oplossing is het gebruik van systemen die niet enkel meer op een wachtwoord gebaseerd zijn maar extra informatie nodig hebben zoals een vingerafdruk, iris scan of gewoon zo'n rekenmachine van de bank. En in praktijk zien we ook daadwerkelijk zo'n verschuiving.
Het duurt effe maar theoretisch is het geen probleem
Dan heb je een database van 2048 tbyte (strings van 8 chars, 6 bits/char, 64 bits/row).
Blijkbaar hebben ze hier toch iets slimmer gevonden.
Het probleem is dus niet zo gemakkelijk structureel op te lossen door ... te salten of de hashes te hashen.
Salts zijn zeer zeker wel een structurele oplossing.
Passwords zijn zelden 'langer' dan 48 bits. Met een salt voeg je daar zo 32 bits aan toe wat betekent dat je geen tabellen meer kunt genereren zoals hier gedaan wordt.
Ja ... maar ik zit me even te bedenken of Salt technieken niet alsnog met reply-attacks gebruikt zouden kunnen worden.
Ik snap hier niet veel van maar betekend dit dat de passwords veel langer zullen moeten worden om veilig te blijven?
Kies nu een nieuw hotmail password tussen de 32 en 38 tekens |:(

jahakommaareensachterditpassword
Feitelijk gezien maakt een langer wachtwoord kiezen niet zo heel veel uit. Wat je moet doen is een wachtwoord kiezen waarvan de hash zeldzaam is, zodat de kans dat die hash in de tabellen voorkomt erg klein is.

Sterker nog: je kunt natuurlijk gewoon een wachtwoord kiezen en vervolgens zelf controleren of de bijbehorende hash in die tabellen voor komt.

En het beste voor password-only methoden is natuurlijk om ze gewoon te vervangen door een challenge-response systeem; bij een goede implementatie daarvan zijn dit soort tabellen compleet waardeloos.

edit: Op deze pagina hebben ze bijvoorbeeld staan van welke wachtwoorden ze de MD5-hashes allemaal berekend hebben. Voorlopig is een wachtwoord met gemengd hoofd- en kleine letters en symbolen nog relatief veilig :)
Dit is natuurlijk eenvoudig te verslaan door een (random) 'salt' voor je password te zetten voor je ze hashed in je applicatie. Die random salt moet je dan natuurlijk ook opslaan of berekenen uit de beschikbare gegevens, maar het maakt dit soort rainbow attacks moeilijker. Dit wordt overigens al tijden aangeraden door zo'n beetje iedereen.

Je kan trouwens ook twee hashes gebruiken, de kans dat er een andere string bestaat waarvan zowel de md5 als de sha-1 overeenkomen met je originele password is microscopisch klein.

Probleem opgelost.
Bij je eigen script timmer je het zo dicht, maar de mensen die bijv. PHPBB installeren kunnen dat niet..
Maar de mensen die phpbb maken weer wel..
Door middel van modificaties heb je hier als forum beheerder wel zelf invloed op. Ik heb hier zelf eens een zeer simpele mod voor uitgebracht, dit middels het salt principe de hash in de cookie extra beveiligt. Het is een druppel op de gloeiende plaat, maar het helpt iets.
Sorry, reactie komt ineens onder de verkeerde post.

Maar je hebt helemaal gelijk. Salten is een goede oplossing!

[knip]
...
[/knip]
Zo heb je wel meer van die websites:
<div class="b4" style="position: relative; color: black; border: #C6C1B4 1px solid; width: 80%; padding: 5px; font-size: 12px;"><span style="color: C00042;">Admin-edit:</span>
Linken naar site's waar warez, cracks en/of Cracktools te vinden zijn is niet toegestaan.
</div>
mmm ik wist nog een betaalde site, maar daar kan ik even niet opkomen.

met dit tooltje kun je ze zelf maken:
<span style="color: C6C1B4;">Admin-edit: Link verwijderd</span>

Zo zie je maar dat je je wachtwoord toch vrij lang moet kiezen. Of, zoals Gerco zegt, gewoon salten.
Ik probeerde alleen maar aan te geven dat er al jaren andere mensen ook al bezig zijn met generen en opslaan van rainbow tables. Want er zijn nog een aantal andere bedrijven/website die ook deze services bieden, maar dan goedkoper, of dat je zelf een aantal rainbow tables moet genereren en uploaden om vervolgens van de andere tabellen gebruik te mogen maken.
Helaas mag je geen concurerende websites opgeven van tweakers.net. Het is terecht als ik link naar illegale websites/cracks ofzo en dat dan de links worden weggehaald, maar dat doe ik helemaal niet. Dus ik ben het helemaal eens met de reactie van superbit.
@admin:
en een link naar een google search?
@admin en die link in het artikel dan?
Wat dit inhoud is:

Ik genereer een wachtwoord, hash van wachtwoord heeft een bepaalde waarde.
Dit gooien deze mensen door hun 'database' vinden een match op iets wat zij zelf ooit gegenereerd hebben en matchen daar het oorspronkelijke wachtwoord bij.

Simpel en doeltreffend (nadat je onnoemelijk veel hashes gegenereerd hebt).
Leuk dat je het uitlegt, maar doe het dan wel goed.

De kans dat het het "oorspronkelijke wachtwoord" is is nihil. Het idee is juist om strings te vinden die dezelfde hash opleveren.

Op dit item kan niet meer gereageerd worden.



Apple iOS 10 Google Pixel Apple iPhone 7 Sony PlayStation VR AMD Radeon RX 480 4GB Battlefield 1 Google Android Nougat Watch Dogs 2

© 1998 - 2016 de Persgroep Online Services B.V. Tweakers vormt samen met o.a. Autotrack en Carsom.nl de Persgroep Online Services B.V. Hosting door True