Voorwaarden
Er zijn echter ook situaties waarbij men actief en bewust heeft geprobeerd om een persoon of organisatie te raken. Dit kan zijn door hacking, malware en/of phishing. Dit was ongeveer 3% en dus in absolute aantallen meer dan 800 gevallen. Deze laatste soort lek is in potentie veel schadelijker omdat het om een gerichte aanval gaat. De getroffen organisatie kan bedrijfsgegevens kwijtraken, bedrijfsgeheimen kunnen bij concurrenten bekend worden en de integriteit van gegevens kan ernstig beschadigd worden.
Goede reden om te zorgen voor een goede beveiliging.
Waar begint het mee?
Net als bij een huis begint het bij goede muren en een waterdicht dak. Hiervoor zorgt een firewall en goed beveiligd netwerk. Vanuit beveiligingsoogpunt is de deur een potentieel gevaarlijke plaats. Een zwakke plek in de beveiliging. Bij een ICT-netwerk is dat vergelijkbaar met het inlogscherm wat toegang geeft tot de achterliggende systemen. Voor alle toegang tot gevoelige zaken geldt dat het begint met het juist identificeren wie men tegenover zich heeft. Vele jaren was een gebruikersnaam met ter controle een wachtwoord het geëigende middel. Wanneer Henk zich meldt met hjanssen en wachtwoord e-niro78 kon het systeem ervan uitgaan dat Henk achter het toetsenbord zat en kreeg hij dus toegang tot de gegevens waar hij bij kon. Probleem is echter dat de hier genoemde Henk niet zo heel creatief was, en mensen die hem kenden met een aantal pogingen wellicht zijn wachtwoord konden raden. Wachtwoorden worden tegenwoordig gezien als een zwakke beveiliging. Het ‘iets-wat-je-weet’-principe is niet meer voldoende.
Nieuwe technieken zoals gezichtsherkenning, tijd veranderende toegangscodes en vingerafdrukken worden tegenwoordig ook veel gebruikt in beveiliging. Dus een ‘iets-wat-je-hebt’ in combinatie met ‘iets-wat-je-weet’. Soms wordt het ‘iets-wat-je-hebt’-principe zelfs leidend. Telefoons worden ge-unlocked met alleen een vingerafdruk of gezichtsscan. Het ingewikkelde van de ‘iets-wat-je-hebt’-gedachte is echter dat als jij het hebt, iemand anders het wellicht ook kan hebben, of te pakken kan krijgen. Of men kan doen of men het heeft. Neem bijvoorbeeld een e-mailadres. Wanneer jij een e-mail van jouwkennis@hetnet.nl krijgt, ga je er wellicht van uit dat deze mail van jouw kennis komt. Of dat whatsappje wat je krijgt van jouw zoon, dochter, vader of moeder die geld nodig heeft. Gelukkig kun je dan altijd nog bellen om te verifiëren of de stem van jouw zoon of dochter wel te horen is (bekijk het artikel van Blik op nieuws inzake WhatsApp-fraude).
Blijkbaar kun je dus ook al niet meer uitgaan van de vertrouwde stem van iemand die jij kent. Met de opkomst van deep fake technieken komt er een nieuwe bedreiging: zie dit artikel van The Verge. Wanneer jij iemand die je kent hoort vragen om informatie (of zelfs ziet), wie ben jij dan om dit te wantrouwen?
Naast het feit dat je de kans op misleiding kunt verkleinen door bij twijfel de ander te bellen, kun je ook hier eventueel terugvallen op ‘iets-wat-je-weet’. Stel de ander vragen waarvan de kans klein is dat anderen die weten. Dingen die in-persoon een keer zijn besproken of op een andere manier niet door anderen op te zoeken. En dan komen we dus weer terug bij het aloude principe van wachtwoorden…
Een heel veilig wachtwoord wat niet bij anderen bekend is, is in theorie een hele goede bescherming.
Probleem is alleen dat de meeste wachtwoorden niet veilig zijn. Een wachtwoord moet namelijk in een systeem worden opgeslagen om later te controleren of het wachtwoord juist is ingevoerd. Voor de veiligheid worden wachtwoorden over het algemeen niet leesbaar opgeslagen, maar worden ze versleuteld op een manier die niet omgekeerd kan worden. De enige manier om een wachtwoord te controleren is deze opnieuw versleutelen en controleren of de uitkomst overeen komt.
Wel kun je natuurlijk de wachtwoorden en de versleutelde wachtwoorden in een database opslaan. Dit heeft men op de website Hashes.org gedaan. Daar staat een mooie te downloaden database met meer dan 3,5 miljard ‘gekraakte’ wachtwoorden. Wanneer iemand dus een versleutelde wachtwoordenlijst van een computersysteem weet te downloaden (zoals jaarlijks helaas bij vele grote websites gebeurt) kan men dan eenvoudig het originele wachtwoord vinden.
Het is dus de bedoeling dat een wachtwoord niet uit bestaande woorden bestaat. Om dat te voorkomen kennen veel systemen de mogelijkheid om ‘wachtwoordcomplexiteit’ in te schakelen. Men moet dan minimaal een hoofdletter, kleine letter, cijfer en als het tegenzit ook nog een speciaal teken invoeren.
Met uitzondering van een beperkte groep creatieve geesten blijkt men in de praktijk vaak terug te vallen op een paar standaard ‘complexiteiten’:
- Vervang een paar letters door cijfers : Passw0rd (e door 3, i door 1, etc.)
- Voeg één of twee cijfers toe : Passw0rd1
- Vervang een letter door een speciaal teken : P@ssw0rd1
- Voeg eventueel nog een uitroepteken toe : P@ssw0rd1!
Veilig!! (zou je misschien zeggen)… Helaas. Zoals hieronder te zien is, is dit wachtwoord ook al te vinden in de database.
Deze ‘bekende’ trucjes worden door hackers natuurlijk allemaal gebruikt. Ze hebben de bestaande woorden versleuteld, en gaan daarna verder door op alle woorden de bekende trucjes uit te voeren. Er moet dus voorkomen worden dat bekende woorden of combinaties (eventueel misvormd door de bekende trucjes) gebruikt worden.
Minstens net zo belangrijk is het echter dat een wachtwoord lang genoeg is. In het stukje ‘let’s crunch the numbers hieronder maak ik inzichtelijk dat een wachtwoord van 8 karakters bestaande uit hoofdletters, kleine letters, cijfers en speciale tekens in een fractie van seconden gehacked zou kunnen worden. Een wachtwoord van 20 tekens, alleen bestaande uit kleine en hoofdletters (dus zonder complexiteit) zou met dezelfde machine meer dan 2 miljard jaar kosten. Size does matter!
Een veilig en toch goed te onthouden wachtwoord bestaat uit meerdere niet-samenhangende woorden of een variatie daarop, en heeft een lengte van minimaal 15 tekens. Wanneer jouw wachtwoord hieraan voldoet, dan heb je een hele goede eerste drempel opgeworpen. Een wachtzin als ‘visslagroomcake:)’ zou bijvoorbeeld veilig kunnen zijn, en toch goed te onthouden. Een ‘Dorpeltuinplaats-trap’ is net zo onlogisch en dus ook veilig.
Hoe maak ik dit werkbaar binnen mijn organisatie?
Voor een deel is het een kwestie van ruilen. Mensen hoeven niet meer een complex wachtwoord te gebruiken wanneer ze een lang (en onbekend) wachtwoord gebruiken. En wat is dan lang? Tegenwoordig roep ik dat men eigenlijk een wachtwoord van minimaal 15 tekens zou moeten gebruiken. In feite heb je het dan over een wachtzin, waarbij een paar onsamenhangende woorden een prima combinatie zijn.
Om te voorkomen dat men per dag vaak het langere wachtwoord in moeten voeren is het aan te raden om gebruik te maken van Single Sign On (SSO). Hierbij meldt de medewerker zich éénmaal aan in de ochtend met zijn ‘lange’ wachtwoord en is het openen van een ander systeem enkel ‘doorklikken’. Wanneer men zuinig is op zijn wachtwoord (dus niet deelt of opschrijft) dan lijkt een langere geldigheid (bijvoorbeeld van een half jaar) ook acceptabel. Door gebruik te maken van password-auditor-software (zoals bijvoorbeeld Specops) kunnen wachtwoorden getoetst worden op bijvoorbeeld voorkomen in woordenlijsten en opvolgende toetsen op het toetsenbord (qwert).
Uiteraard blijft de combinatie van ‘iets wat je weet’ (wachtwoord) en ‘iets wat je hebt’ (telefoon, SMS, etc.) ook een ijzersterke combinatie. Aangezien hier tegenwoordig ook goede en betaalbare varianten voor te krijgen zijn, is er eigenlijk geen reden om dit niet in te stellen. Om terug te komen op de vraag C0mPl3x of n13t? Doe maar niet. Ga liever voor lengte…
Let’s crunch the numbers
Ik werk bij een accountantskantoor dus een stukje met cijfers kan natuurlijk niet ontbreken. Hieronder de berekening waarom een lang wachtwoord beter is:
Zoals al beschreven kan een computer dus brute-force wachtwoorden versleutelen door alle combinaties van karakters te proberen. Daar wordt hij niet moe van en hij zeurt ook niet. Is dan geen enkel wachtwoord veilig? Gelukkig wel. Een computer zal middels brute force alle mogelijkheden moeten proberen. En dat voor alle karakters:
- 26 kleine letters (a-z)
- 26 hoofdletter (A-Z)
- 10 cijfers (0-9)
- 25 Symbolen: (spatie) ! ” # $ % & ‘ ( ) * + , – . / : ; < = > ? @ [ \ ]
Dat geeft al 87 tekens. De wiskundige formule om het aantal mogelijkheden te berekenen is dan:
87^[lengte] (87 tot de macht [lengte])
Dus een wachtwoord van 1 teken = 87^1 = 87 mogelijkheden
Een wachtwoord van 2 tekens is 87^2 = 7569 mogelijkheden (87×87)
Een wachtwoord van 3 tekens is 87^3 = 658.603 mogelijkheden (87x87x87)
Een wachtwoord van 4 tekens is 87^4 = 57.289.761 mogelijkheden (87x87x87x87)
Een wachtwoord van 5 tekens is 87^5 = 4.984.209.207 mogelijkheden (etc…)
…
Een wachtwoord van 10 tekens is 87^10 = 24.842.341.419.143.568.849 mogelijkheden.
Je ziet dat het aantal enorm hard groeit met ieder karakter dat een wachtwoord langer wordt. Om die reden geldt voor wachtwoorden eigenlijk altijd de volgende regel:
Langer = Beter
Let wel op! De kans dat bekende woorden en zinnetjes al versleuteld zijn is natuurlijk heel groot. ‘Automatiseringafdeling’ is een lang woord, maar ook bekend, net als ‘Hastalavistababy’ en daarmee met het oog op de wachtwoordlijsten dus niet veilig. Dat brengt de tweede belangrijke regel voor wachtwoorden:
Onbekender = Beter
Een lang onbekend wachtwoord is dus veilig. Om het voor jezelf eenvoudig te maken om te onthouden kun je een combinatie van niet-bij-elkaar horende woorden gebruiken. Een wachtwoord als ‘visslagroomcake:)’ is lang (17 tekens) en niet logisch en dus een veilig wachtwoord. Daarnaast is het nog betrekkelijk eenvoudig om te onthouden. Mocht je helemaal onvoorspelbaar willen zijn, dan kun je van een zin alle eerste of eerste twee letters pakken. Van de zin ‘Ik heb een hekel aan het bedenken van lange wachtwoorden’ kun je zo ‘Iheeeheaahebevalawa’ maken. Mooi lang en mega-onbekend. Geen complexiteit, maar dat is in deze gevallen absoluut niet nodig. Ook zonder complexiteit (alleen hoofd- en kleine letters) is het voor de snelste supercomputer een bijna onmogelijke taak om dit wachtwoord te kraken.
Het systeem doet er bij een wachtwoord van 20 tekens met alleen hoofd- en kleine letters middels brute force ongeveer 2.319.147.174 jaar over:
(5220/200.000.000.000.000.000)/60/60/24/365,25 *0,7 (het wachtwoord begint met een hoofletter I, dus voor de 37e letter (a-z en dan A-J) is heeft het systeem het wachtwoord geraden) Hierbij ben ik er voor het gemak even van uitgegaan dat een wachtwoord in één stap berekend is, terwijl hier in de praktijk meerdere berekeningen voor nodig zijn.
In vergelijking; Een wachtwoord van 8 tekens MET speciale tekens en cijfers is met dezelfde berekening in slechts 12 milliseconden al berekend. Size does matter…
Publicatiedatum: 15-01-2021