Veilige wachtwoorden: Gewoon niet doen
Even een ‘accountje’ maken doen we bijna dagelijks. Er is geen dienstverlener die zonder kan. De tentakels van de AVG zijn nog niet zo ver doorgedrongen dat ook dat aan banden wordt gelegd. Veilig wachtwoord? het hoort wel, en vinden het ook nodig, maar we doen het gewoon niet. Te veel gedoe, moeilijk te onthouden en dus onhandig. Misschien helpt het echte antwoord op het grote “Waarom dan?” om je gedrag aan te passen. Er zit meer achter dan je op het eerste gezicht zou denken. En bovendien heb je met de onderstaande info heb je ook iets leuks bij te dragen aan je buren op het komende buurtfeestje.
In de begindagen van het internet werkte het maken van een account alsvolgt. Je gaf een gebruikersnaam en wachtwoord drukte op OK en de dienstverlener sloeg allebei netjes, zonder verdere aanpassingen, op in een database. Stel je een database voor als een Excel sheet met een lijst met gebruikersnaam en wachtwoorden van alle accounts die ooit werden aangemaakt.
Allemaal prima zolang de database ontoegankelijk is voor buitenstaanders. Maar, wordt het systeem van de dienstverlener gehackt, dan betekende dat alle gebruikersaccounts met gebruikersnaam en wachtwoord direct beschikbaar zijn voor de aanvaller.
Wat bedacht men toen: we gaan wachtwoorden niet meer in clear tekst opslaan, maar “Hashen”. Een zogenaamd cryptografisch valluik mechanisme (in het engels een trap door genoemd). Je stopt willekeurige data, zoals een wachtwoord, in een stukje wiskundige software, het hashing algoritme, dan komt er aan de andere kant een stukje data dat er heel anders uitziet, een “hash“. Stop je er hetzelfde wachtwoord in, dan komt iets onherkenbaars uit, maar wel altijd hetzelfde, uit. Deze hash kan echter nooit meer worden herleidt naar de invoer. Stoppen we het wachtwoord: "12345678" in de hash-software, dan komt daar het volgende uit: "ef797c8118f02dfb649607dd5d3f8c7623048c9c063d532cc95c5ed7a898a64f"
. Je kunt het zelf proberen op deze website.
Alle wiskundigen bevestigen het "ef797c8118f02dfb649607dd5d3f8c7623048c9c063d532cc95c5ed7a898a64f"
is op geen enkele manier terug te herleiden naar 12345678. Welnu, een dienstverlener die zijn zaakjes op orde wil hebben zorgt dus dat zijn database er voortaan zo uit ziet.
Maar hoe kun je dan nog inloggen? Hoe weet de dienstverlener dat “12345678” bij de opgegeven hash hoort? Dat is eigenlijk heel simpel. Voordat de dienstverlener controleert of je wachtwoord klopt stopt hij het door jou opgegeven wachtwoord eerst in de hash-software. Als de uitkomst (hash) overeenkomt met de hash van jou wachtwoord in de database, dan heb je blijkbaar het goede wachtwoord ingevoerd. Het grote voordeel is, dat op deze manier de dienstverlener jouw wachtwoord niet hoeft te weten.
Mocht er een dienstverlener zijn die je ooit vertelt dat ze jouw wachtwoord wel even op kunnen zoeken, dan slaan ze dus blijkbaar jouw wachtwoord zonder hash op. Tegenwoordig is dat een praktijk die, met de komst van de AVG, strafbaar is geworden.
Maar “hashen” is ook niet alles…
Maakt het dan uit of je een moeilijk of makkelijk wachtwoord kiest? Ja, absoluut. In het verleden werden nog wel eens databases gestolen met niet-gehashte wachtwoorden. Men heeft van al die wachtwoorden een soort naslagwerk gemaakt: oneindig veel regels met Hash- en wachtwoordcombinaties. Voer een hash in, en het systeem zoekt het bijbehorende wachtwoord op. Uiteraard heeft men voor het gemak voor elke taal de woordenboeken in dit naslagwerk gestopt. Voor elk woord is een hash gemaakt. Zo’n naslagwerk wordt ook wel een Rainbow table genoemd. Deze zijn deels beschikbaar op internet of anders te vinden op het Dark Web.
Naast oude wachtwoorddatabases en woordenboeken, worden ook hashes berekent voor alle karaktercombinaties die mogelijk zijn. Men is begonnen met “a”, “b” … “aa”, “ab” etc… Het berekenen van die hashes kost tijd. Het berekenen van alle variaties voor lange wachtwoorden kost veel computerkracht en dus tijd. Aangenomen wordt dat er geen rainbow tables beschikbaar zijn voor wachtwoorden van 15 karakters en langer. Maar let wel, daarin worden alle karakters gebruikt die mogelijk zijn, dus ook “@(#&$)…0123…”. Dat betekent dus ook, dat er bestanden bestaan die langere wachtwoorden bevatten, maar minder variatie gebruiken, alleen cijfers en letters bijvoorbeeld. Het kiezen van een wachtwoord met bijzondere tekens is dus daarom heel belangrijk.
Kies je een wachtwoord dat in een rainbow table voorkomt, dan is het eigenlijk net alsof je wachtwoord in leesbare tekst in de database staat.
De gouden wachtwoordregels
- Kies geen woordenboekwachtwoord.
- Kies geen wachtwoord waarvan je weet dat dit al eerder kan zijn gebruikt door iemand anders.
- Kies of een heel lang wachtwoord als je geen bijzondere tekens gebruikt (meer dan 30 tot 45 karakters), Een zin bijvoorbeeld.
- Kies een korter wachtwoord (vanaf 15 karakters). Maar dan wel met meer dan alleen cijfers en letters.
...en nog iets
Je hebt het vast vaker gehoord: Kies voor elke dienstverlener een ander wachtwoord. Waarom? De bovenstaande eisen aan een wachtwoord zijn best flink. Je weet waarschijnlijk dat je wachtwoorden niet voldoen aan de bovenstaande eisen. De kans is dus groot, als er een hack plaatsvindt en jouw wachtwoord-hash wordt gestolen, dat de aanvallers met een rainbow table vlot je wachtwoord kan achterhalen. Ze zullen dan direct proberen geautomatiseerd bij andere diensten in te loggen met inloggegevens. Gebruik je hetzelfde wachtwoord overal, dan komen ze ook overal zonder problemen binnen met alle bijkomende gevolgen. Het wordt al anders als je aan de gouden wachtwoordregels voldoet. Maar dan nog is het een best practice overal een ander wachtwoord te gebruiken. Hoe dan?
De moed zakt je misschien in de schoenen als je bedenkt dat je zulke lange moeilijke wachtwoorden moet gaan verzinnen en onthouden. Daarom kun je er voor kiezen om een wachtwoordmanager te installeren of een online dienst af te nemen die dat regelt. Je komt dan met 1 wachtwoord, bij al je andere wachtwoorden. Deze programma’s zijn in staat om moeilijke wachtwoorden voor je te maken en veilig te bewaren en bovendien vaak geautomatiseerd in te loggen. Een programma wat ik zelf altijd gebruik is KeePass Password Safe
Je emailaccount
Een ketting is zo sterk als de zwakste schakel. Je mailaccount is meestal de spin in het web van je veiligheid. Wachtwoord vergeten? Dan laat je je een password reset linkje mailen. Heeft een hacker toegang tot je mail account, dan kun je nog zulke veilige wachtwoorden kiezen voor al je diensten, meestal kan hij dan bijna overal bij. Zorg dus dat je e-mailaccount beter beveiligd is dan de rest. Het is geen overbodige luxe, een tweede factor toe te voegen. Hieronder meer daarover.
De tweede factor
In de security-wereld is beschreven dat je dingen kunt beveiligen met 3 factoren:
- Iets wat je weet (bijv. een wachtwoord)
- Iets wat je hebt (bijv. een Identifier van je bank) of
- Iets wat je bent (bijv. vingerafdruk).
Om de beveiliging op te schroeven kun je, bij sommige dienstverleners, niet slechts 1, maar 2 factoren gebruiken voordat je toegang krijgt. Als je inlogt bij je bank heb je dat vaak al. Je hebt bijvoorbeeld een PIN (iets wat je weet) en een identifier (iets wat je hebt). Zonder die 2 kom je niet binnen. De aanvaller heeft allebei nodig en dat maakt een aanval een stuk moeilijker.
Een tweede factor instellen kan bij veel grote dienstverleners zonder veel moeite. Denk aan Microsoft, Google (gmail) of Amazon. De meestgebruikte tweede factor is een Authenticator App die je installeert op je mobiel. Deze genereert een 6 cijferige nummer dat je na het invoeren van je wachtwoord invoert bij de dienstverlener. Als allebei kloppen, dan ben je binnen.
Ben ik gehackt?
Of de sites van grote dienstverleners zijn gehackt en eventueel wanneer en wat er is gebeurd kun je terugvinden op de site van Have I Been Pwned. Je kunt daar ook je gebruikersnaam / e-mail invoeren om te controleren of jouw account is gestolen via een gehackte dienstverlener.
Wat te doen als ik ben gehackt?
Als een dienstverlener gehackt blijkt te zijn en jij hebt daar een wachtwoord gebruikt dat je ook bij andere dienstverleners gebruikt? Zorg dan dat je een nieuw en uniek wachtwoord kiest voor elk van deze dienstverleners. Vergewis je ervan dat de betreffende accounts niet ook al zijn misbruikt. Als dat het geval is meld dit dan bij de dienstverlener.
Tot slot
Je kent nu het “waarom” van een veilig wachtwoord. Als je voor veilig gaat, help je daar jezelf mee, maar ook anderen. Want als bijvoorbeeld jouw e-mailadres niet wordt gehackt, kan er ook geen malware via jouw account naar anderen worden verspreidt. Een veilig internet begint dus bij jezelf.
Mocht je nog vragen hebben? Dan hoor ik dat graag. Er zijn geen domme vragen, dus kom maar op 😉