In de Security Tip van de week geeft elke week een andere professional, expert, onderzoeker of lezer een security tip. Persoonlijke tips, variërend van het veilig configureren van Windows, een handige security tool of het juist instellen van een firewall, waarmee de tipgever zijn systeem, applicatie of netwerk veiliger maakt.
Heb jij ook een leuke, originele, maar bovenal goede security tip die niet mag ontbreken, stuur dan een mail naar redactie@security.nl.
Deze week de tip van Hugo Leisink
Wachtwoorden
Als beveiligingsadviseur heb ik regelmatig gesprekken met klanten over ICT beveiliging en daarbij komt het onderwerp ‘wachtwoorden’ vaak voorbij. Ook op het internet zie ik geregeld iets voorbij komen over dit onderwerp, waarbij het dan met name gaat over sterke en zwakke wachtwoorden. Soms wordt beweerd dat je beter voor een zo lang mogelijk wachtwoord kan gaan, op andere momenten lees je weer dat een complex wachtwoord (met hoofdletters, cijfers en leestekens) beter is dan een lang wachtwoord. Om aan die onduidelijkheid een eind te maken leg ik hieronder uit wat een veilig wachtwoord is en hoe je een veilig wachtwoord kan kiezen dat ook nog makkelijk te onthouden is.
Wat is een veilig wachtwoord?
Een veilig wachtwoord is een wachtwoord waarbij het dusdanig veel tijd kost om via een bruteforce-aanval het wachtwoord te achterhalen, de aanvaller daar niet de middelen of tijd voor heeft om de aanval succesvol uit te voeren. Voor diegene die onbekend zijn met de term ‘bruteforce-aanval’: een bruteforce-aanval is een aanval waarbij een aanvaller het wachtwoord probeert te raden door alle mogelijke combinaties van een wachtwoord af te gaan. Bij bovengenoemde definitie laat het ik afluisteren van wachtwoorden of achterhalen van wachtwoorden door onveilige opslag buiten beschouwing.
Aantal te raden combinaties
Hoeveel middelen of tijd een aanvaller heeft weet je niet, daarom kan je maar het beste voor een zo sterk mogelijk wachtwoord gaan dat nog te onthouden is. Je moet dus een wachtwoord kiezen dat zo veel mogelijk bescherming biedt tegen een bruteforce-aanval. Deze bescherming wordt bepaald door het aantal combinaties dat een aanvaller af moet gaan om je wachtwoord te kunnen raden. Dit aantal combinaties wordt bepaald door de volgende formule:
Hierbij is c gelijk aan de grootte van de gebruikte tekenset en n gelijk aan de lengte van je wachtwoord. Heb ik een wachtwoord dat slechts uit 6 kleine letters bestaat, dan kan een aanvaller dit raden binnen 261 + 262 + 263 + 264 + 265 + 266 = 321 miljoen stappen. De aanvaller begint bij ‘a’ en heeft het wachtwoord geraden als hij bij ‘zzzzzz’ is aanbeland.
Bij het kiezen van een wachtwoord kan je dit aantal te raden combinaties verhogen door je wachtwoord langer te maken en/of tekens te pakken uit een tekenset groter dan alleen de kleine letters. Zo is het aantal te raden combinaties voor een wachtwoord van kleine letters, hoofdletters en cijfers van 6 tekens lang 57 miljard en voor een wachtwoord van kleine letters van 8 tekens lang al 217 miljard. Wat beter is hangt af van hoe lang je het wachtwoord kiest of welk tekenset je gebruikt.
Lengte of complexiteit?
Het toevoegen van een extra letter of cijfer aan je wachtwoord doet het aantal te raden combinaties sneller stijgen dan het toevoegen van wat tekens aan de tekenset waaruit je je wachtwoord kiest. Daardoor lijkt ‘groter’ beter dan ‘complexer’, maar hier zit een addertje onder het gras. Stel, we nemen het wachtwoord ‘prachtigverzonnen’. Het aantal te raden combinaties voor dit wachtwoord is: 11,7 * 1023. Het is namelijk een wachtwoord van 17 tekens, gekozen uit een tekenset van 26 letters. Echter, we kunnen het wachtwoord ook zien als twee woorden. Stel dat een aanvaller beschikt over een bestand met 100.000 Nederlandse woorden, waar ‘prachtig’ en ‘verzonnen’ toevallig inzitten.
We hebben dan dus te maken met een wachtwoord van 2 tekens lang, gekozen uit een tekenset van 100.000 tekens. Het aantal te raden combinaties is dan nog ‘slechts’ 10,0 * 109. Dit is een aanzienlijke vermindering van het aantal te raden combinaties! Naast ‘lengte’ en ‘complexiteit’ hebben we hiermee dus een derde veiligheidskenmerk voor een wachtwoord gevonden, iets wat we de ‘entropie’ van een wachtwoord noemen. De entropie zegt iets over de willekeurigheid van de in het wachtwoord aanwezige tekens.
Door je wachtwoord te laten bestaan uit normale woorden verlaag je de entropie en dus de veiligheid van het wachtwoord. Het aantal te proberen combinaties kan nog verder verlaagt worden indien de aanvaller de grammatica regels toepast. Het is namelijk niet raar om te veronderstellen dat als iemands wachtwoord bestaat uit normale woorden, daar de grammatica regels op toegepast zijn.
Kiezen van een veilig wachtwoord
Bij het kiezen van een wachtwoord moeten we dus letten op lengte, complexiteit en entropie. Is dat nog wel te doen? Jawel. Een handig trucje daarvoor is als volgt. Kies een makkelijk te onthouden zin, bijvoorbeeld een zin uit een liedje dat je goed kent. Neem van elk woord de beginletter en plak deze achter elkaar. Verander een willekeurige e door een 3, een o door een 0, een i door een 1, voeg nog wat speciale teken toe en klaar is je wachtwoord!
Als voorbeeld nemen we de eerste regel uit het liedje "Another brick in the wall" van Pink Floyd: "Hey, teacher! Leave them kids alone. All in all it's just another brick in the wall." levert op "H,t!Ltka.Aiaijabitw.".
Daar maken we het volgende wachtwoord van: "H,t!Ltka.Ai@1ja6itw.". Dit wachtwoord van 20 tekens is voldoende lang. Het bevat daarnaast voldoende complexiteit, namelijk kleine letters, hoofdletters, cijfers en leestekens. En de entropie is ook hoog, want de tekens uit het wachtwoord hebben geen dusdanige relatie dat een woordenboek kan worden gebruikt om het raadproces te versnellen.
Periodiek wijzigen van een wachtwoord
Om de impact van achterhaalde wachtwoorden te verkleinen wordt vaak van gebruikers geëist dat het wachtwoord periodiek, bijvoorbeeld iedere maand, gewijzigd moet worden. Hoewel dit als doel heeft om de veiligheid te vergroten blijkt in de praktijk vaak dat dit juist het tegenovergestelde effect heeft.
Om te voorkomen dat het nieuwe wachtwoord vergeten wordt, kiezen mensen vaak eenvoudige wachtwoorden, wordt een standaard wachtwoord voorzien van een volgnummer of het nummer van de maand of worden het wachtwoord zelfs opgeschreven. En daarbij kan je je afvragen waarom het een aanvaller niet zou lukken om het wachtwoord voor een tweede keer te achterhalen als het de eerste keer ook gelukt is. Periodiek wachtwoorden wijzigen biedt schijnveiligheid omdat het het daadwerkelijke probleem niet oplost.
Het probleem is dat gebruikers zwakke wachtwoorden kiezen en daar niet zorgvuldig genoeg mee omgaan. Het probleem ligt dus bij de gebruiker en dat los je niet op met een instelling op een server.
Hugo Leisink is ICT beveiligingsadviseur bij OGD
Dit artikel is geschreven op persoonlijke titel van de auteur en reflecteert niet noodzakelijk de zienswijze van Security.NL.
Deze posting is gelocked. Reageren is niet meer mogelijk.