Wachtwoorden sterven niet uit
Vorig jaar waren er nieuwsartikelen die op internet circuleerden en die beweerden dat grote technologiebedrijven de krachten bundelden om wachtwoorden te elimineren. Sommige startups verklaarden zelfs dat wachtwoorden verouderd en ouderwets waren.
Introductie
Vorig jaar waren er nieuwsartikelen die op internet circuleerden en die beweerden dat grote technologiebedrijven zoals Apple, Google en Microsoft de krachten bundelden om wachtwoorden te elimineren. Sommige startups verklaarden zelfs dat wachtwoorden verouderd en ouderwets waren. Na maandenlang onderzoek in het domein van identiteitsbeheer begon ik de geldigheid en praktische bruikbaarheid van deze beweringen in twijfel te trekken.
Wat doet een wachtwoord?
Op het eerste gezicht lijkt het antwoord duidelijk: wachtwoorden worden gebruikt voor inloggen en het verifiëren van identiteiten. Echter, ik heb een andere kijk hierop als je bedenkt dat wachtwoorden niet echt kunnen verifiëren wie je bent:
- Wanneer een gebruiker zich aanmeldt op een website met een e-mail en wachtwoord, heeft de website geen manier om de daadwerkelijke persoon achter die inloggegevens te bevestigen. Het zou een mens kunnen zijn of zelfs een kat.
- Iedereen kan een iPhone ontgrendelen met de juiste pincode.
In werkelijkheid is het doel van een wachtwoord om anoniem het eigendom van iets te bewijzen: een gebruikersaccount, een apparaat, of toegang tot een deur.
De huidige “wachtwoordverdelgers”
De eerder genoemde bedrijven hebben verschillende "wachtwoordverdelgers" voorgesteld. Velen beweren veiligere alternatieven te zijn die de noodzaak voor gebruikers om complexe, statische wachtwoorden te onthouden, tijdens authenticatie elimineren. Echter, de meeste van deze alternatieven zijn niet geheel praktisch om wachtwoorden volledig te verwijderen.
FIDO-authenticatie
FIDO (Fast Identity Online) authenticatie, zoals uitgelegd in de officiële documentatie, gebruikt technieken van publieke sleutel cryptografie voor registratie en inloggen (het is het vermelden waard dat WebAuthn een kerncomponent is van de FIDO2 specificaties). Op het eerste gezicht lijkt het proces aantrekkelijk:
Eenvoudig, toch? Helaas is er een significante hindernis: compatibiliteit. Vergeleken met de traditionele combinatie van "identificator en wachtwoord" vereist FIDO-authenticatie:
- Websites of apps die FIDO ondersteunen.
- Browsers en/of besturingssystemen die FIDO ondersteunen.
- Gebruikersapparaten met een gebruiksvriendelijk verificatiemechanisme.
Als aan een van deze vereisten niet wordt voldaan, is FIDO-authenticatie niet beschikbaar, wat een terugvalmethode noodzakelijk maakt.
Bovendien, zelfs als aan alle voorwaarden is voldaan, wat kwalificeert als een "gebruiksvriendelijk verificatiemechanisme" op een apparaat? Momenteel kan het gaan om biometrische methoden zoals vingerafdruk- of gezichtsherkenning, vergezeld van een terugvaloptie zoals een pincode, oftewel een wachtwoord. Uiteindelijk komen we daarmee weer terug bij af.
Technisch gezien is het geen "wachtwoordverdelger" maar eerder een veiligere en gebruiksvriendelijke authenticatie- of verificatieprocedure die beschermd wordt door wachtwoorden.
Eenmalig wachtwoord
Hoewel de naam het woord "wachtwoord" bevat, zijn eenmalige wachtwoorden (OTPs) geen traditionele wachtwoorden aangezien ze dynamisch zijn. Er zijn twee populaire soorten OTPs:
- Tijdgebaseerd Eenmalig Wachtwoord (TOTP): Wordt algoritmisch gegenereerd met de huidige tijd als bron van uniciteit. Het wordt vaak gebruikt in Multi-factor Authenticatie (MFA) of 2FA.
- SMS/E-mail Eenmalig Wachtwoord: Wordt gegenereerd op de server met willekeurige algoritmes. In sommige landen is het breed geadopteerd als primaire inlogmethode.
TOTPs zijn bij naam misschien niet zo algemeen bekend. Bijvoorbeeld, wanneer een website je vraagt om MFA in te stellen en een app zoals Google Authenticator of Duo te gebruiken om een QR-code te scannen, gebruik je hoogstwaarschijnlijk TOTP. Je hebt misschien ook gemerkt dat de website vaak een lange "herstelsleutel" toont en je adviseert deze op te slaan omdat deze maar één keer wordt getoond. Sommige websites moedigen gebruikers zelfs aan om deze op papier af te drukken. In wezen functioneert deze herstelsleutel als een lang wachtwoord.
Wat betreft SMS/E-mail OTPs, ze kunnen duur en onbetrouwbaar zijn:
- Het bouwen van een SMS- of emailverzender vanaf nul vereist instelling.
- E-mailverzenders moeten een positieve "reputatie" opbouwen om de bezorgbaarheid te verbeteren, anders kan de verzender gemarkeerd worden als spam.
- Elk land heeft zijn eigen mobiele netwerkoperators, wat leidt tot onvoorspelbare levertijden en aanzienlijke kosten voor het verzenden van SMS, vooral voor startups.
Biometrie
De term "biometrisch" verwijst naar het gebruik van alleen biometrische methoden voor online authenticatie. Feitelijk is er een fundamenteel verschil vergeleken met andere methoden: biometrische authenticatie verplaatst de oorspronkelijke taak van "het eigendom van iets bewijzen" naar "bewijzen wie je bent". Vanwege privacyzorgen worden biometrische methoden voornamelijk gebruikt voor lokale authenticatie.
Wachtwoorden zijn echter niet perfect
Zoals we kunnen zien, verbergen "wachtwoordverdelgers" in wezen wachtwoorden of gebruiken ze wachtwoorden als terugvalopties. Hier is een samenvatting van de voordelen van wachtwoorden op basis van onze discussie:
- Toegankelijkheid en compatibiliteit: Wachtwoorden kunnen worden gebruikt in verschillende systemen en zijn toegankelijk voor een breed scala aan gebruikers.
- Kosteneffectiviteit en veelzijdigheid: Wachtwoord-gebaseerde authenticatie is over het algemeen kosteneffectiever dan andere methoden en aanpasbaar aan verschillende scenario's.
- Anonimiteit en privacy: Wachtwoorden maken anoniem gebruik mogelijk en beschermen de privacy van gebruikers.
Maar elke medaille heeft twee kanten. Hoewel wachtwoorden hun voordelen hebben, brengt het uitsluitend vertrouwen op wachtwoorden voor authenticatie aanzienlijke kwetsbaarheden met zich mee. Ze kunnen moeilijk te beheren zijn voor eindgebruikers en als website-eigenaren geen goede beveiligingspraktijken volgen, worden wachtwoorden gemakkelijk te omzeilen. Gevaarlijke beveiligingspraktijken zijn onder andere, maar niet beperkt tot:
- Het toestaan van zwakke of gelekte wachtwoorden.
- Het niet afdwingen van HTTPS voor verbindingen.
- Het gebruik van onveilige hashing-algoritmen.
- Het niet strikt naleven van beproefde standaarden zoals OAuth of OpenID Connect (OIDC).
- Het blootstellen van de database aan het publiek.
Conclusie
Ik ben niet van plan om een van de hierboven genoemde authenticatiemethoden te ondermijnen. Integendeel, terwijl ik werk aan het bouwen van Logto, heb ik groot respect ontwikkeld voor deze opmerkelijke authenticatiemethoden en de mensen achter hen.
Desalniettemin is het bereiken van 100% veiligheid een onhaalbaar doel. Wat we kunnen nastreven is het verminderen van de kans op aanvallen. Een effectieve benadering is om wachtwoord-gebaseerde authenticatie te combineren met eenmalige wachtwoorden gebaseerd op het huidige apparaat of de huidige omgeving, wat een extra verificatielaag toevoegt en breed is geadopteerd. Door de sterke punten van verschillende authenticatietechnieken te benutten, kunnen we een gelaagde benadering creëren die sterkere bescherming biedt.
Tot slot, in plaats van de focus te leggen op modewoorden zoals "wachtwoordverdelger" wanneer wachtwoorden niet echt worden geëlimineerd, zou het waardevoller zijn om te concentreren op het evenwicht tussen beveiliging en gebruikservaring. Dit houdt in dat de sterke en zwakke punten van verschillende authenticatiemethoden worden begrepen en geïmplementeerd op een manier die zowel de beveiliging van gebruikersgegevens als een soepele gebruikerservaring waarborgt.