LinkedIn heeft namelijk relatief zwakke encryptie toegepast op de opgeslagen wachtwoorden van zijn gebruikers. Bovendien heeft het daarbij een essentiële vervolgstap achterwege gelaten: het zogeheten salten van de versleutelde wachtwoorden. Het toevoegen van 'zout' zorgt ervoor dat versleutelde informatie (zogeheten hashes) langer worden dan ze eigenlijk hoeven te zijn. Daardoor kan het eigenlijke wachtwoord moeilijker worden achterhaald, dus kost het kraken meer tijd.

Tijd en moeite

Encryptie is zoals alle soorten van beveiliging - zelfs fysieke - een kwestie van tijd en moeite. Aan de ene kant voor de beveiligende partij, aan de andere kant voor de aanvaller. Belangrijk hierbij is dat 100 procent veiligheid, onkraakbaarheid, eigenlijk niet bestaat. Zeker niet gezien de snelheid waarmee het kraakgereedschap zich ontwikkelt: de rekenkracht van computers, videokaarten en cloudopstellingen wordt steeds groter met daarop steeds geavanceerdere, slimmere software om sleutels te ontcijferen.

Goede beveiliging komt dan ook neer op het gebruik van meerdere lagen, die elkaar aanvullen en versterken. Hackers roepen van het door LinkedIn gebruikte encryptiemethode SHA1 dat dat niet veilig is, al lange tijd niet meer. Onderzoeksbureau Gartner bevestigt die onveiligheid, maar stelt dat de eigenlijke zwakke - of zwakste - plek elders zit.

Twee zwakke plekken

Het type aanvallen op hashing-functies zoals SHA1 maakt het kraken van daarmee versleutelde wachtwoorden niet ineens makkelijk, of makkelijker. Daarvoor zijn aanvullende omstandigheden nodig die de beveiliging ondermijnen. Hierbij spelen twee factoren een cruciale rol, blogt Gartner-analist Ramon Krikken.

Hoe sterk het oorspronkelijke wachtwoord is, dat vervolgens wordt ge-hashed, en de (reken)tijd die wordt besteed aan dat hashen. Meer versleuteltijd kan sterkere hashes opleveren, maar dit is geen eenmalige moeite en inzet van rekenkracht. Zodra een gebruiker ergens zijn wachtwoord invoert, wordt het eerst versleuteld waarna die sleutel wordt vergeleken met de eerder opgeslagen hash. Komt het overeen, dan is het juiste wachtwoord ingevoerd.

Wachtwoordfails

De factor wachtwoord is echter al jaren een probleem: gebruikers kiezen makkelijk te onthouden wachtwoorden die dus ook relatief makkelijk te raden zijn. Door bijvoorbeeld kraaksoftware die woordenboeken loslaat op versleutelde inloggegevens. Of door krakers die een wachtwoord raden of geheime controlevraag goed beantwoorden doordat ze hun doelwit (enigszins) kennen.

Dit praktijkfeit van zwakke wachtwoorden geldt ook voor LinkedIn. De diverse analyses die uiteenlopende crackers, hackers en security-experts uitvoeren op de uitgelekte 6,5 miljoen log-ins leveren de meest basale no-no's voor wachtwoorden op. Password, wachtwoord, jansmit, appeltaart, geheim, secret, linkedin, pietjepuk. Om er maar enkele te noemen. Lijsten van de gekraakte wachtwoorden zijn ook al online gepubliceerd.

Maar er zijn gelukkig mogelijkheden om de zwakte van wachtwoorden te ondervangen. Als LinkedIn die nou maar gebruikt had... Lees verder op pagina 2.

Hashes zónder salt

De tweede zwakke plek die Gartner-analist Krikken noemt, is die van het zogeheten salten. Dat is het toevoegen van willekeurige (random) data aan een versleuteld wachtwoord, zodat het eindresultaat nog lastiger is te kraken. Aanvallers kunnen dan niet simpelweg een vooraf al opgezette lijst (zogeheten rainbow table) van wachtwoorden plus salt loslaten op de te kraken data omdat dit te veel variabelen beslaat en dus te veel ruimte en rekenkracht kost.

Tenminste, op een bepaald moment met dan courante hardware en software. Het is dus van belang om 'de hoeveelheid' salt in de loop der tijd te vergroten: van ooit 12-bit naar 48- tot wel 128-bit nu, en meer. Hetzelfde geldt voor de kracht van de gebruikte encryptie. Fataal voor LinkedIns gebruikers nu is dat het zakelijke sociale netwerk tot voor kort geen salt gebruikte voor de opgeslagen versleutelde wachtwoorden.

Gartner stipt nog een derde punt aan, naast de eigenlijke wachtwoorden en het salten van de hashes. Voor goede beveiliging is het van belang om versleuteling, inclusief salting, meerdere malen toe te passen. Zo vaak en veel als maar mogelijk is binnen de beperkingen van prestatieniveau en reactiesnelheid (latency) van de bewuste site, dienst of systeem. Deze zogeheten iteration bezorgt een aanvaller die rauwe rekenkracht inzet met een brute force-aanval weer vertraging.

Als het kalf verdronken is

LinkedIn is nu net overgegaan op het gebruiken van salt. Het heeft zijn huidige databases met wachtwoorden sinds kort voorzien van hashing en salting. Dit meldt het in een blogpost waarin het uitlekken van de versleutelde inloggegevens wordt erkend, lang na het bekend worden van dit lek. Deze beveiligingsmaatregel helpt niet het huidige risico te verkleinen, want de op straat liggende data stamt van enige tijd terug. Mogelijk van zo'n zes maanden geleden.

De wachtwoorden zijn unsalted, is gebleken uit analyse en kraken. Ze zijn relatief snel en makkelijk te ontcijferen. In zo'n 24 uur tijd heeft kraakgroep KoreLogic ongeveer de helft van de 6,5 miljoen LinkedIn-wachtwoorden ontcijferd. De langste daarin is er een van 29 tekens: een zin uit de Bijbel.

LinkedIn: geen commentaar

Webwereld heeft vragen gesteld aan LinkedIn over het eigenlijke gat waarlangs de hashes zijn buitgemaakt én over de timing van de verbeterde beveiliging. Het Nederlandse persbureau verwijst naar LinkedIns twee korte blogposts over de hele affaire en naar de twee officiële Twitter-accounts van het bedrijf.

Op laatstgenoemde is eerst gemeld dat de zaak wordt onderzocht, waarna geruime tijd later is gelinkt naar de ene en vervolgens naar de volgende blogpost. De eerste blogpost was een algemene uitleg hoe wachtwoorden te wijzigen. De tweede was de erkenning van het uitlekken en de aankondiging van de na de inbraak verbeterde beveiliging.