Klanten van de webwinkel Amazon die hun wachtwoord al ‘enige jaren’ niet hebben veranderd, hebben een ernstig veiligheidsprobleem. Dat werd afgelopen weekend bekend. Het is namelijk mogelijk om in te loggen met wachtwoorden die lijken op dat van de gebruiker maar het niet exact zijn.

Alles langer dan acht tekens

Door de tekortkoming van het authenticatiesysteem van de webwinkel accepteert Amazon bij wachtwoorden die langer zijn dan acht tekens ook de eerste acht karakters. Bovendien accepteert de webwinkel alle tekens die na een wachtwoord van acht karakters worden ingevoerd. Iemand die als wachtwoord ‘Password987’ heeft kan dus ook inloggen met ‘Password’ of bijvoorbeeld ‘Password123’.

Het systeem negeert niet alleen lange wachtwoorden, maar het kijkt bij oudere wachtwoorden ook niet naar hoofd- of kleine letters. Iemand die een mix van deze tekens in zijn wachtwoord heeft, kan dus ook met alleen kleine letters inloggen. Iemand die als wachtwoord ooit ‘PaSsWOrD’ ingevuld heeft kan dus ook met het simpeler ‘password’ naar binnen.

Webwereld heeft deze beweringen met een test kunnen bevestigen.

Veroorzaakt door oude UNIX-functie

Volgens speculaties worden deze beveiligingsproblemen in het systeem van Amazon wordt veroorzaakt door het gebruik van de Unix functie crypt(). Amazon zou die hebben gebruikt om oudere wachtwoorden te versleutelen.

De oorspronkelijke versie van de crypt() functie kapt langere wachtwoorden af. Alles na het achtste teken wordt genegeerd. De wachtwoorden die met behulp van deze functie versleuteld zijn, zijn daarnaast relatief eenvoudig te kraken. Dat komt doordat de functie de wachtwoorden met behulp van de encryptiestandaard DES opslaat.

Overigens zijn er verschillende nieuwere versies van crypt() in omloop. De functie gebruikt nu standaard MD5-versleuteling en kan bovendien ook wachtwoorden van meer dan acht tekens aan.

Problemen inmiddels opgelost

De wachtwoorden zouden na het versleutelen met crypt() bovendien in bovenkast op de servers van Amazon opgeslagen zijn. Daardoor is het met oudere wachtwoorden mogelijk om zonder de juiste hoofd- en kleine letters in te loggen bij de webwinkel.

Omdat nieuwere wachtwoorden niet te kampen hebben met de beveiligingsproblemen, lijkt het erop dat Amazon het probleem in de tussentijd opgelost heeft zonder oudere wachtwoorden te updaten. Gebruikers die vatbaar zijn voor het probleem kunnen dat oplossen door hun wachtwoord te veranderen. Het wordt dan ook op de nieuwe manier opgeslagen.

Gawker en XS4ALL

Amazon is niet het eerste bedrijf dat last ondervindt van de onvolkomenheden van crypt(). Toen uitgever Gawker Media vorige maand gehackt werd konden de hackers de wachtwoorden eenvoudig decoderen omdat Gawker de wachtwoorden via crypt() versleutelde met DES.

De Nederlandse internetprovider XS4ALL heeft lange tijd geen wachtwoorden van meer dan 8 tekens geaccepteerd. Dat kwam oorspronkelijk ook door het gebruik van deze UNIX-functie. De internetprovider maakte het in 2009 pas mogelijk voor klanten om langere wachtwoorden te gebruiken.