Wachtwoorden zijn nog steeds de meest gebruikte methode om gegevens te beschermen en toegang te verlenen aan die mensen die er ook daadwerkelijk bij mogen. Het is een oeroud principe: een systeem, applicatie of misschien wel gewoon een bewaker (zeg: poortwachter), die de rechtmatige gebruikers niet kent, heeft een van tevoren afgesproken “geheim” (het wachtwoord) dat de gebruiker moet noemen als hij ergens bij wil. Dit proces heet authenticatie: de poortwachter stelt vast dat de gebruiker authentiek (echt) is en verleent de bijbehorende privileges.

Versleuteling
De makkelijkste én onveiligste manier is dat de poortwachter de geheimen zelf in een lijstje bewaart. Als deze lijst in handen van anderen valt, kan iedereen onder de identiteit van gebruiker X binnenkomen. Er is dus een volgende stap nodig: versleuteling. Het geheim wordt omgezet in een vorm die versleuteld (en opgeslagen) is. Gebruiker X toont zijn eigen geheim aan de poortwachter, waarna deze de versleutelingsmethode toepast en het resultaat vergelijkt met de opgeslagen versleutelde versie die hoort bij gebruiker X. Komen deze resultaten overeen, dan krijgt X toegang.

Combinaties afgaan
De enige manier voor een indringer om zo’n geheim te breken is dat hij alle mogelijke combinaties probeert door deze via de (gegeven) methode te versleutelen en het resultaat keer op keer te vergelijken met de opgeslagen, versleutelde versie. Als alle combinaties systematisch worden geprobeerd volgt uiteindelijk de treffer: het geheim is gebroken.

Verbeteringen
Gelukkig wordt de methode van versleutelen sterker en worden de wachtwoorden langer. Vroeger accepteerden veel systemen wachtwoorden van maximaal 8 karakters. En veel gebruikers kozen simpele woorden van alleen kleine letters. Aan combinatiemogelijkheden leverde dat 26^8, ofwel 208.827.064.576 (ruim 8 miljard) woorden op. Voor een mens lijkt dat veel, maar computers kunnen vele miljoenen combinaties per seconde proberen. Stel dat een hacker over een programma beschikt dat een miljoen wachtwoorden per seconde kan proberen, dan duurt het 200.000 seconden om 2 miljard combinaties uit te proberen (dus ook de juiste). En dat is ongeveer 55 uur. Dat klinkt al anders!

Kies uit meer dan 26 tekens
We moeten ons heil dus zoeken in het vergroten van het aantal mogelijke combinaties. U hebt veel meer keus dan 26 tekens; op veel toetsenborden zijn circa 90 verschillende tekens direct in te toetsen. Verleng ten tweede uw wachtwoord, bijvoorbeeld van 8 naar 12 tekens. Deze gegevens leveren in bovenstaand voorbeeld een heel andere rekentijd op: 8949651953 (bijna 9 miljard) jaar (!) om alle combinaties uit te proberen. Zonder overdrijven kunnen we dus stellen dat indien de aarde dan nog kosmologisch zelfstandig is, de waarde van de informatie achter het betreffende wachtwoord wel vervaagd zal zijn :-). Eerlijkheid gebiedt te zeggen dat het *gemiddelde* wachtwoord natuurlijk in minder tijd gevonden zal worden, maar dan nog is dat een stuk veiliger dan de eerder aangegeven limieten van wachtwoorden gekozen uit 26 tekens met een lengte van 8.

Wachtwoorden bij XS4ALL
Wij slaan wachtwoorden op in versleutelde vorm, volgens de op dit moment als betrouwbaar te boek staande methode MD5 hashing. Formeel gezien is MD5 hashing geen versleuteling, maar een methode om in één richting (niet omkeerbaar) een wachtwoord op te slaan zonder dat de originele versie te herleiden valt. Het is mogelijk om wachtwoorden (wachtzinnen) van willekeurige lengte te gebruiken; dit is cruciaal om het een aanvaller -die simpelweg alle mogelijkheden probeert- zo moeilijk mogelijk te maken. Een goed artikel hierover: http://nl.wikipedia.org/wiki/Brute_force.

Vernieuw uw wachtwoord
XS4ALL hanteert MD5 hashing sinds 2006. Echter, sommige klanten hebben hun wachtwoord bij ons sinds de invoering van deze methode nog niet gewijzigd. Voor hen geldt in de praktijk nog steeds de limiet van 8 tekens, waardoor hun wachtwoord aanzienlijk makkelijker te kraken valt (zie boven). Deze gebruikers raden wij dus aan om eenmalig hun wachtwoord te vernieuwen, waardoor zij vanaf dat moment automatisch meeliften met de nieuwe methode.

Steekproef onder klanten: 8% achterhaald
Onlangs hebben wij een wachtwoordbreekprogramma -zoals er vele vrijelijk beschikbaar zijn- uitgeprobeerd op een steekproef van onze klanten. In feite precies zoals een hacker te werk zou gaan. In korte tijd (een volle dag) konden we circa 8% van de gebruikte wachtwoorden achterhalen zonder enige insider-kennis. Lees onderstaande tips dus goed door!

Andere valkuilen
Het is dus niet zo moeilijk om een veilig wachtwoord te kiezen dat niet snel gekraakt wordt door het uitproberen van alle combinaties. Maar er zijn uiteraard meer valkuilen. Moeilijke wachtwoorden zijn moeilijk te onthouden, dus worden ze vaak, al dan niet op slinkse wijze, opgeschreven. Slecht ingerichte programma’s kunnen de wachtwoorden onversleuteld ergens op het systeem opslaan (‘plain text’). Ook een veilig wachtwoord kan dan op straat komen te liggen. Kies daarom per omgeving een geschikt wachtwoord. Een website waar een internetter op geen enkele wijze eigen gegevens achterlaat (bv een nieuwssite) is van een heel andere orde dan de site van de bank waarop hij zijn rekeningen beheert.

Tips en trucs
1. Kies verschillende wachtwoorden, of tenminste categorieën van wachtwoorden, bij de verschillende omgevingen waar u wachtwoorden voor moet gebruiken.
2. Bedenk een manier waarbij het wachtwoord (liever: een wacht*zin*) complex blijft, maar die voor uzelf inzichtelijk en dus makkelijk te onthouden is.
3. Gebruik een wachtwoordmanager die wachtwoorden kan administreren en herkent wanneer een specifiek wachtwoord moet worden ingevuld. Met een zorgvuldig gekozen eigen centraal wachtwoord beschermt u de “private” lijst wachtwoorden. Programma’s die dit uitstekend kunnen zijn bijvoorbeeld 1Password (https://agilebits.com/) of Keepass (http://keepass.com).

Toekomst
Een van de zwakke punten van de klassieke wachtwoordbescherming is dat deze alleen maar bestaat uit dat concrete wachtwoord, dat geheim moet worden gehouden. We noemen dit ook wel 1-factorauthenticatie. In de toekomst zullen we steeds vaker een extra factor willen toevoegen aan het geheim dat iemand weet, namelijk iets dat iemand ook *heeft*. Vrijwel alle bancaire diensten werken al zo: de rechtmatige gebruiker *weet* zijn geheim, en *heeft* iets waarmee dat geheim gebruikt kan worden, zoals een bankpasje, of in het geval van electronisch bankieren, een apart apparaatje (token, identifier, challenge-response, mobiele telefoon). Deze benadering lost twee fundamentele problemen op die bestaan in de klassieke benadering van 1-factor:
1. De indringer heeft niet genoeg aan alleen het geheime wachtwoord; hij zal ook de tweede factor in handen moeten krijgen.
2. De combinatie van de 2 factoren produceert elke keer dat ingelogd wordt, een andere code.
Bij electronisch bankieren moet bij elke authenticatie de methode opnieuw worden toegepast, en resulteert deze steeds weer in een andere, voor die sessie unieke combinatie. Dat betekent dat het voor een indringer geen zin heeft om het verkeer van het netwerk af te luisteren, en de conversatie tussen gebruiker en systeem op een ander moment exact na te spelen. De verwachting is dat steeds meer diensten die voor de gebruiker belangrijk zijn, via 2-factorauthenticatie zullen worden ontsloten.

Jacques Schuurman

Jacques is Security Officer bij XS4ALL

Deel dit:

Reacties

  1. geenwiskundige says:

    “Aan combinatiemogelijkheden leverde dat 26^8, ofwel 208.827.064.576 (ruim 8 miljard) woorden op.”

    Moet dat niet “ruim 208 miljard” woorden zijn?

  2. chat says:

    Een medewerker kan immers van binnenuit ook iets verkeerd doen, bewust of onbewust.

  3. Franck says:

    Een eenvoudige methode tegen brute force aanvallen is een extra vertraging inbouwen aan de kant van XS4ALL. Dus bijv. als 2x het verkeerde wachtwoord wordt opgegeven het account voor 5 minuten blokkeren (geen logins accepteren voor dat account).

    • Addi says:

      HOE blokkeer je het account voor b.v. 5 minuten als twee keer een verkeerd wachtwoord wordt opgegeven ?

  4. Robert says:

    Wat nauwelijks aan bod is gekomen in deze discussie is de vraag hoe XS4all omgaat met Brute Force attacks. Het zou toch wel vreemd zijn als het mogelijk is om miljoenen malen een inlogpoging op een account te doen. Zoals iemand al suggereerde kan je na elke foute inlog de wachttijd langer maken. je zou ook het IP-adres kunnen blokkeren, of simpelweg het account kunnen blokkeren, of na 10 ongeldige ionlogpogingen het (gehasde) password kunnen recetten, en de gebruiker daarvan op de hoogte stellen. Hoe gaat Xs4all om met brute force hackpogingen?

  5. Cor Bosman says:

    Je kan bij XS4ALL een 2factor/ One Time Password systeem gebruiken. Dit is nog een beetje experimenteel, maar veel XS4ALL beheerders gebruiken het al, dus het wordt vermoedelijk snel gefixt als het stuk is :)

    Dit is alleen nog niet overal bruikbaar, maar in elk geval wel op https://mail.xs4all.nl.

    Je kan dit aanzetten via https://mail.xs4all.nl, onder instellingen -> calculator.

    Als je dan inlogt vanuit een onveilige plek, kunnen ze hooguit je OTP afluisteren, maar die werkt daarna niet meer.

  6. pbe says:

    Wat ik nog steeds mis bij XS4ALL is dat voor de verschillende diensten een apart wachtwoord (en evt. ook user) aan te maken valt.

    Als je nu gebruik maakt van KPN hotspots, dan ben je verplicht in te loggen met 1 en hetzelfde gebruiker/wachtwoord. Je hoeft maar 1 fake KPN hotspot tegen te komen en als je (automatisch) daarop inlogt, ligt direct je hele xs4all account open voor de misbruiker.
    Zelfde geldt voor de webdisk. 1x een man-in-the-middle-attack en alles ligt open voor misbruik.

    Wat mij betreft moet er de keuze komen dat er voor de DSL verbinding, de hoofdmailbox, selfservice centre, hotspots etc etc elk andere inloggegevens te maken.

    • Niels Huijbregts Niels Huijbregts says:

      Op Hotspots kun je inloggen met de gegevens van elke willekeurige POPbox. Als je speciaal voor Hotspots een POPbox aanmaakt die je verder nergens voor gebruikt, is de schade uiterst klein als iemand het wachtwoord zou onderscheppen.

  7. Fred says:

    Ik zou vooral graag een two-factor authentication zien bij webmail, in combinatie met “app-specific passwords” (eg voor je POP/IMAP client).

    Lees bijvoorbeeld eens wat er gebeurt wanneer je password ‘publiek geheim’ geworden is:

  8. Rob says:

    Wat te doen….?
    Als leek raak ik de draad een beetje kwijt en vraag me af of het nu wel of niet zin heeft om mijn paswoord (nu 8 karakters) te veranderen in een van 12 karakters zoals in het artikel wordt aanbevolen.
    Is het gebruik van een andere hash-methode of crypt-methode relevant indien xs4all alleen MD5 ter beschikking stelt?

    • Jacques Schuurman says:

      Ja, het heeft altijd zin om de lengte van een geheim langer te maken. Lengte is tezamen met de variatie van gekozen tekens in een geheim bij uitstek datgene wat de gebruiker zelf beïnvloedt om de sterkte van een geheim te bepalen. Bij een keuze uit 90 tekens neemt de factor waarmee zo’n geheim moeilijker te kraken is (ongeacht de onderliggende methode van hashing) met 90^4 toe, ofwel 65.610.000. In plaats van (bijvoorbeeld) 10 seconden met een supersnelle computer wordt dat ruim 20 jaar. De boodschap is en blijft: Size Does Matter.

    • OM says:

      Wat voor systeem xs4all ook gebruikt, het valt altijd aan te raden een langer wachtwoord te kiezen.

  9. Tristan says:

    Waarom nog steeds een cryptografische hash gebruiken (MD5) en geen wachtwoord hash zoals bijvoorbeeld Bcrypt?