image

Last.fm onderzoekt wachtwoord-lek *update*

vrijdag 8 juni 2012, 09:36 door Redactie, 6 reacties

Last.fm onderzoekt het lekken van een aantal gebruikerswachtwoorden, zo laat de muziekdienst op de eigen website weten. Het onderzoek volgt na inbraken bij sociale netwerksite LinkedIn en online datingsite eHarmony, alsmede informatie die op internet verscheen. Gisteren verscheen deze tweet online, waarin wordt beweerd dat ook Last.fm is gehackt.

Op dat moment had de Twitteraar in kwestie nog geen bewijs, maar hij stelt dat zijn bron meestal gelijk heeft. Een paar uur later kwam Last.fm met de melding. Of de website ook daadwerkelijk gehackt is, is nog onbekend. Uit voorzorg vraagt Last.fm aan gebruikers om hun wachtwoord te wijzigen.

Update 11:10
Het Duitse Heise.de zegt dat het een bestand met 2,5 miljoen Last.fm-wachtwoorden in handen heeft. Het gaat om met MD5 gehashte wachtwoorden, die niet gesalt zijn. Daardoor zijn ze vrij eenvoudig te kraken.

Reacties (6)
08-06-2012, 11:31 door wizzkizz
Door Redactie: Update 11:10
Het Duitse Heise.de zegt dat het een bestand met 2,5 miljoen Last.fm-wachtwoorden in handen heeft. Het gaat om met MD5 gehashte wachtwoorden, die niet gesalt zijn. Daardoor zijn ze vrij eenvoudig te kraken.
Dat mag misschien voor zwakke wachtwoorden gelden, mijn Last.fm wachtwoord had een entropie van 160bits dat is gegenereerd door mijn password manager, dus daar zijn ze wel even mee zoet. Maar naar aanleiding van de aanbeveling op hun website toch maar veranderd. En de entropie ook nog maar verhoogd, naar 260 bits nu ;)
08-06-2012, 22:47 door Bitwiper
Door wizzkizz: Dat mag misschien voor zwakke wachtwoorden gelden, mijn Last.fm wachtwoord had een entropie van 160bits dat is gegenereerd door mijn password manager, dus daar zijn ze wel even mee zoet. Maar naar aanleiding van de aanbeveling op hun website toch maar veranderd. En de entropie ook nog maar verhoogd, naar 260 bits nu ;)
Mocht die knipoog NIET betekenen dat je een geintje maakt: een MD5 hash is 128 bits lang, dus zolang Last.fm MD5 hashes gebruikt (met of zonder salt) is een wachtwoord met een grotere entropie zinloos.
09-06-2012, 11:22 door wizzkizz
Door Bitwiper:
Door wizzkizz: Dat mag misschien voor zwakke wachtwoorden gelden, mijn Last.fm wachtwoord had een entropie van 160bits dat is gegenereerd door mijn password manager, dus daar zijn ze wel even mee zoet. Maar naar aanleiding van de aanbeveling op hun website toch maar veranderd. En de entropie ook nog maar verhoogd, naar 260 bits nu ;)
Mocht die knipoog NIET betekenen dat je een geintje maakt: een MD5 hash is 128 bits lang, dus zolang Last.fm MD5 hashes gebruikt (met of zonder salt) is een wachtwoord met een grotere entropie zinloos.
Dat is waar, maar ik mag toch echt hopen dat ze inmiddels zijn overgestapt op een hash-algoritme dat niet al tig jaar als onveilig wordt beschouwd. SHA256 lijkt mij toch wel het minimale, maar waarom niet met hetzelfde gemak bijvoorbeeld SHA512. Dan heeft de extra entropie dus wel zin en dat is eigenlijk waarop ik *hoop*.
09-06-2012, 11:28 door burne101
Door wizzkizz:
mijn Last.fm wachtwoord had een entropie van 160bits dat is gegenereerd door mijn password manager,

Om Bitwiper's reactie iets uit te diepen: md5 is theoretisch zwak genoeg om een 'birthday attack' mogelijk te maken. De aanvaller probeert dan niet eens meer om jouw wachtwoord te achterhalen, hij verzint een ander wachtwoord wat een gelijke md5-hash oplevert en logt daar mee in. De lengte of complexiteit van je wachtwoord is daarmee irrelevant geworden.

Wat niet irrelevant geworden is, is de tijd die je nodig hebt voor die aanval. Gemiddeld moet je 2^64 random strings hashen om een collision te vinden. Daar ben je even mee bezig. Met realistische hardware (GPU) een half miljoen jaar, met NSA-hardware 500 jaar (1000 GPU's).

https://en.wikipedia.org/wiki/Birthday_attack
11-06-2012, 00:30 door Bitwiper
Door burne101: Om Bitwiper's reactie iets uit te diepen: md5 is theoretisch zwak genoeg om een 'birthday attack' mogelijk te maken.
Als ik het goed begrijp gaat het bij een "birthday attack" om de kans dat twee willekeurige personen in een groep mensen (zoals een schoolklas) op dezelfde dag jarig zijn. De grafiek in https://en.wikipedia.org/wiki/Birthday_problem laat zien dat in een groep van 23 personen de kans ca. 50% is dat 2 personen op dezelfde dag jarig zijn.

Echter, uitgaande van een specifiek persoon (bijv. jijzelf of de docent) is de kans aanzienlijk kleiner dat er nog minstens 1 ander persoon op dezelfde dag verjaart. Volgens https://en.wikipedia.org/wiki/Birthday_problem#Same_birthday_as_you is die kans, bij 23 willekeurige personen, 6,1%. Maar ook deze "aanval" ("second-preimage attack" a.k.a. "weak collision attack") heeft niets met het reversen van wachtwoordhashes te maken.

De aanvaller probeert dan niet eens meer om jouw wachtwoord te achterhalen, hij verzint een ander wachtwoord wat een gelijke md5-hash oplevert en logt daar mee in. De lengte of complexiteit van je wachtwoord is daarmee irrelevant geworden.
Dat klopt, elke karakterreeks die dezelfde hash oplevert is bruikbaar als wachtwoord.

Dit is vergelijkbaar met een Excel workbook dat met het wachtwoord "geheim" is beveiligd. Als je daar een password cracking macro (zoals deze: http://jsbi.blogspot.nl/2008/09/how-to-easily-unprotectremove-password.html) op loslaat, krijg je na enkele minuten een wachtwoord als "AAABBAAABBO" dat als volwaardig equivalent werkt. Hetzelfde gebeurt als je i.p.v. "geheim" een wachtwoord met een entropie van 260 bits had gekozen (dat helpt dus geen zier bij Excel).

Maar het "reversen" van een MD5 hash naar een maakt-niet-uit-wat-voor-wachtwoord is, integenstelling tot een Excel wachtwoord, nog steeds computationally unfeasible (ondoenlijk). Het gaat hierbij om de Preimage resistance (zie http://en.wikipedia.org/wiki/Cryptographic_hash_function#Properties). Dus ja, elk wachtwoord dat de gegeven MD5 hash oplevert is even goed als het oiginele wachtwoord, maar het vinden van het originele wachtwoord of equivalent is in theorie nauwelijks uitvoerbaar.

Het risico zit hem voor bijna 100% in in het feit dat mensen te eenvoudige wachtwoorden gebruiken, deze op meerdere sites hergebruiken en dat ook andere mensen diezelfde wachtwoorden gebruiken. Hier spelen de zogenaamde rainbow tables op in. Omdat in rainbow tables voornamelijk korte wachtwoorden zitten, is de kans extreem klein dat je in zo'n rainbow table een equivalent van jouw wachtwoord vindt dat dezelfde hash oplevert

Gemiddeld moet je 2^64 random strings hashen om een collision te vinden.
Ja, een collision (willekeurige dus), maar de kans dat dit toevallig een collision is met de gegeven hash is verwaarloosbaar klein. Als ik de preimage attacks op MD5 niet meeneem, zou je volgens mij gemiddeld 2^(128-1) brute-force pogingen moeten doen om een willekeurige karakterreeks (die best identiek zou kunnen zijn aan het oorspronkelijke wachtwoord) te vinden die toevallig dezelfde hash oplevert.

Concluderend is MD5 in theorie nauwelijks slechter dan bijv. SHA1 of SHA-2. In de praktijk wel, omdat er al relatief veel rainbow tables bestaan voor MD5 en nog weinig voor SHA1/SHA-2. Maar dat is natuurlijk een kwestie van tijd en dus een onverstandige gok (het is simpel om alle bestaande wachtwoorden in MD5 rainbow tables in SHA1 of SHA-2 om te zetten).

Ik ben een langer stuk over het wel en wee van MD5 gehashte wachtwoorden aan het schrijven maar dat is nog niet af. Zodra dat af is en ik het gepost heb (in een nieuwe thread) zal ik onderaan deze bijdrage een verwijzing naar die thread opnemen.
11-06-2012, 20:50 door wizzkizz
Door Bitwiper:
De aanvaller probeert dan niet eens meer om jouw wachtwoord te achterhalen, hij verzint een ander wachtwoord wat een gelijke md5-hash oplevert en logt daar mee in. De lengte of complexiteit van je wachtwoord is daarmee irrelevant geworden.
Dat klopt, elke karakterreeks die dezelfde hash oplevert is bruikbaar als wachtwoord.
(...)
Maar het "reversen" van een MD5 hash naar een maakt-niet-uit-wat-voor-wachtwoord is, integenstelling tot een Excel wachtwoord, nog steeds computationally unfeasible (ondoenlijk). Het gaat hierbij om de Preimage resistance (zie http://en.wikipedia.org/wiki/Cryptographic_hash_function#Properties). Dus ja, elk wachtwoord dat de gegeven MD5 hash oplevert is even goed als het oiginele wachtwoord, maar het vinden van het originele wachtwoord of equivalent is in theorie nauwelijks uitvoerbaar.
(...)
Concluderend is MD5 in theorie nauwelijks slechter dan bijv. SHA1 of SHA-2. In de praktijk wel, omdat er al relatief veel rainbow tables bestaan voor MD5 en nog weinig voor SHA1/SHA-2. Maar dat is natuurlijk een kwestie van tijd en dus een onverstandige gok (het is simpel om alle bestaande wachtwoorden in MD5 rainbow tables in SHA1 of SHA-2 om te zetten).

Ik ben een langer stuk over het wel en wee van MD5 gehashte wachtwoorden aan het schrijven maar dat is nog niet af. Zodra dat af is en ik het gepost heb (in een nieuwe thread) zal ik onderaan deze bijdrage een verwijzing naar die thread opnemen.
De rainbow tables zijn vervelend, maar nog niet eens al te lastig (salting etc.). Het grote probleem is dat het algoritme achter MD5 gewoon niet veilig (meer) is. Er zijn algoritmen om MD5 collisions te vinden die behoorlijk effectief blijken te zijn. Even een kort citaat uit één van die papers (http://cryptography.hyperlink.cz/md5/MD5_collisions.pdf):
More specifically, finding the first (complete) collision took 8 hours using a notebook PC (Intel Pentium 1.6 GHz). Note that our method works for any initialization vector. It can be abused in forging signatures of software packages and digital certificates as some papers show ([4], [5], [6]). We have shown that it is possible to find MD5 collisions using an ordinary home PC. That should be a warning towards persisting usage of MD5.
Reageren

Deze posting is gelocked. Reageren is niet meer mogelijk.