Cookies op Tweakers

Tweakers maakt gebruik van cookies, onder andere om de website te analyseren, het gebruiksgemak te vergroten en advertenties te tonen. Door gebruik te maken van deze website, of door op 'Ga verder' te klikken, geef je toestemming voor het gebruik van cookies. Wil je meer informatie over cookies en hoe ze worden gebruikt, bekijk dan ons cookiebeleid.

Meer informatie

WebAuthn-api voor vervanging van traditionele wachtwoorden is goedgekeurd

Het World Wide Web Consortium, beter bekend als W3C, heeft maandag de WebAuthn-api officieel goedgekeurd. Het gaat om een webstandaard die de noodzaak van wachtwoorden moet wegnemen door te authenticeren met verschillende methodes en apparaten.

De W3C zegt dat Web Authentication, of kortweg WebAuthn, een officiële standaard is die een grote stap voorwaarts is om het web veiliger te maken. De standaard wordt al ondersteund door Windows 10, Android en de webbrowsers Chrome, Firefox, Edge en een preview-versie van Safari.

WebAuthn geeft gebruikers de mogelijkheid om in te loggen op hun internetaccounts via een door hen gewenst apparaat. Internetdiensten en apps kunnen deze functionaliteit gebruiken door gebruikers in staat te stellen eenvoudig in te loggen via bijvoorbeeld biometrie, een geregistreerde telefoon, camera's of vingerafdrukscanners.

De W3C-specificatie betreft een api die inspeelt op een aantal verschillende gebruiksscenario's, zoals authenticatie met behulp van een geregistreerde telefoon. Bij het bezoeken van een website op een pc kan de gebruiker daar bijvoorbeeld met zijn telefoon inloggen. Hij krijgt dan een notificatie op zijn smartphone waarna het inlogproces kan worden voltooid met een pincode of een vingerafdruk.

Het idee van WebAuthn is dat authenticatie plaatsvindt op basis van de zogeheten publiekesleutelcryptografie, waarbij de sleutels op de authenticator zijn opgeslagen. Ten opzichte van traditionele wachtwoorden moet dat het voordeel hebben dat er een verhoogde bescherming tegen phishing is. Ook moet hiermee het inzetten van uitgelekte login-informatie door kwaadwillenden worden tegengegaan en moet een man-in-the-middleaanval beter kunnen worden onderschept.

De standaard is tot stand gekomen door een samenwerking tussen de FIDO Alliance en het W3C. Eerstgenoemde is in 2012 opgericht om tot een open, interoperabele en schaalbare reeks mechanismen te komen die onlineauthenticatie en het vervangen van wachtwoorden mogelijk moeten maken.

Door Joris Jansen

Nieuwsredacteur

04-03-2019 • 17:59

59 Linkedin Google+

Reacties (59)

Wijzig sortering
Is de authenticator verplicht? Zo ja, niet een goed alternatief wat mij betreft. Public key authentication is een prima idee, maar dan wel graag via een softwarematige private key, waar niet een hardware-device voor nodig is. Optioneel mag dat best natuurlijk. Net zoals via SSH bijvoorbeeld.

Ik wil mijn accounts niet aan een en hetzelfde apparaat hebben hangen, en wil ook niet altijd dat apparaat bij mij moeten hebben. Een softwarematige private key kan je prima met een wachtwoord beveiligen (of desgewenst met een hardmarematige key) en zo heb je een soort SSO.
Het WebAuthn-protocol schrijft geen form factor voor, maar browser makers willen wel een USB-device of ingebouwd secure element zien. Niet geheel onterecht want de gemiddelde gebruiker kan die keyfile niet veilig houden...
Is dat eigenlijk te emuleren? Je zou zeggen dat je de communicatie met een dergelijke device best zou moeten kunnen onderscheppen op OS-niveau en dus een softwarematige implementatie aanleveren.

Als je niet met wachtwoorden om kunt gaan snap ik dat een device de voorkeur heeft maar wel vervelend dat de rest altijd moet lijden onder diegene die veiligheid niet serieus (kunnen) nemen.
Ja, er is SoftU2F (voor de voorloper van WebAuthn) maar de manier waarop browsers met window focus omgaan zorgt ervoor dat het momenteel niet werkt: https://github.com/github/SoftU2F/issues/51
In firefox kan je volgende settings ook gebruiken om een softtoken te emuleren:
security.webauth.webauthn_enable_softtoken=true
security.webauth.webauthn_enable_usbtoken=false
Je zou Krypton eens kunnen proberen. Die implementeert de standaard via een app op Android of iOS.
En Android wil je dan op een emulator in de cloud draaien? Anders ben je nog steeds van een device afhankelijk.
Ik zou zeggen, geef elke apparaat/browser/gebruikerscombinatie een andere sleutel en onderteken die vervolgens als de jouwe vanuit een soort root-sleutel.

Iets makkelijker fixen als het misgaat. Ook kun je segmenteren per dienst.

Natuurlijk moet je dan wel een manier hebben om de root-sleutel veilig en betrouwbaar te bewaren. Een alternatief zou kunnen zijn dat een bedrijf of organisatie hem kan resetten als je 'm kwijt bent. Maar welk bedrijf of organisatie is daar betrouwbaar genoeg voor?
Waar is de keystore? In de browser of telefoon zelf? Kan ik de private keys makkelijk backuppen?
Of ben ik straks afhankelijk van een specifieke leverancier van de device waar de keypair is gegenereerd?

Ik zou verwachten dat ik ergens een keyring kan aanmaken, en deze lokaal kan opslaan en eventueel zelf kan backuppen, zodat ik niet afhankelijk ben van bijv. Google of Apple of Microsoft of Mozilla.
Het apparaat kent slechts 1 enkele key. Elke dienst die dit ondersteunt moet een zogenaamd "credential id" opslaan wat wordt gebruikt in combinatie met de token om te kunnen authenticeren.

De browser heeft geen opslag, dus je kunt je token gewoon meenemen naar een andere computer, daar inpluggen en vervolgens gewoon aanmelden.
Hoe meld je je dan aan op een nieuw apparaat als je enige ‘wachtwoord’ je andere apparaat is?
Die vraag snap ik niet helemaal. Je "wachtwoord" in deze zin is de token. Dat kan dus bijvoorbeeld een "Nitrokey FIDO U2F"-token zijn. Die steek je in de computer waarna je je aanmeldt.
Maar je token hoeft niet een usb stick te zijn, het mag van alles zijn (ook software) volgens de spec. Bijvoorbeeld de windows implementatie met windows hello, is dat dan niet mee te nemen?
Geen idee, dat zal een implementatie-detail zijn van die specifieke oplossing. Daar zegt webauthn zelf niets over natuurlijk. Persoonlijk lijkt me het ook geen handige oplossing: Het fijne van die hardware tokens is dat je ze makkelijk meeneemt, ze passen bijvoorbeeld prima op je sleutelhanger.
Opslag gebeurt op het secure element van je smartphone/tablet/laptop, of op een losse security key van bijv. Feitian of Yubico. De browsermakers bieden de WebAuthn-standaard voor websites, de browser communiceert met het CTAP2-protocol met de hardware.

Backups zijn momenteel niet mogelijk, er wordt wel over over gepraat (1, 2) bij de W3C-werkgroep maar voorlopig zal je meerdere sleutels aan je accounts moeten toevoegen of genoegen nemen met een ander (zwakker) recovery mechanisme.

[Reactie gewijzigd door Rafe op 4 maart 2019 21:49]

Zijn er al diensten die van deze api gebruik maken? Aangezien hij al door bijna alle grote platformen ondersteund wordt?
Nog niet heel breed, maar https://webauthn.io is een site waar je het kan testen.
Het werkt bijvoorbeeld op een moderne Android telefoon out of the box.
Ja leuk, het werkt op alle nonfossiele browsers.
Behalve Safari, maar who cares :)
Safari (+15%) had vorige maand een meer dan 3x zo hoog wereldwijd marktaandeel dan Firefox (<5%).

In de aankomende versies zit het gewoon standaard in.
Nice, jouw link werkt dus al met Trezor. Zodra ik wilde registreren, begon hij te piepen of ik een security key wilde registreren.
het vraagt om mijn beveiligingssleutel aan te sluiten... ik wil gewoon mijn smartphone gebruiken... hoe link je die dan...
Hey dank voor de link. Ik ben hier niet ontzettend thuis in, ik dacht ik probeer het eens uit op mijn telefoon (android) en had verwacht dat mij om iets van een link met bijvoorbeeld Authenticator van lastpass gevraagd zou worden of een fido USB maar Authenticator was geen optie en een fido heb ik niet. Een fingerprint is ook een optie dus dat geprobeerd en dat werkte heel goed. Maar als ik nou een account aanmaak op mij tel met een fingerprint how log ik dan in op mijn pc ?
Wij hebben bij ons bedrijf met ons product al er leuk mee gespeeld. We hebben het niet niet helemaal productierijp, maar hebben al een leuke setup voor wachtwoordloos aanmelden met een hardware sleutel. Voor onze doelgroep is dit een serieus alternatief voor alle veelal zwakke wachtwoord alternatieven.
Aangezien hij al door bijna alle grote platformen ondersteund wordt?
Zoals ik het lees is Chrome de enige die een zinnige publiekelijk toegankelijke implementatie heeft. Wat bedoel je dus met bijna alle grote platformen?
In het nieuwbericht:
De standaard wordt al ondersteund door Windows 10, Android en de webbrowsers Chrome, Firefox, Edge en een preview-versie van Safari.
Of doel je op 'zinnige implementatie'? Wat is er dan niet zinnig aan de rest?

[Reactie gewijzigd door Swerfer op 4 maart 2019 19:11]

nieuws: Microsoft maakt inloggen bij Microsoft Account met Hello of FIDO2-key...

Lijkt me een groot platform op de desktop markt. En Android met 80% marktaandeel op de mobile markt en Facebook die het ondersteunt, lijkt me samen toch bijna alle grote platformen.

Welke mis jij?

[Reactie gewijzigd door djwice op 4 maart 2019 22:21]

En Edge en Firefox.
https://www.dongleauth.info/ heeft een lijst van sites die U2F ondersteunen. Dit is de voorloper van WebAuthn.
Ik gebruik hem op github voornamelijk, icm een yubikey. Inlog, sign sleutel en encryptie op een klein draagbaar stukje plastic.
Dus eigenlijk een meer gestroomlijnde 2FA methode, of begrijp ik het verkeerd? Dit is toch ongeveer gelijk aan het genereren van een TOTP met je smartphone en die dan ingeven op de website?
Ja en nee. WebAuthn kan ingezet worden als 2FA methode, maar als je geschikte hardware gebruikt (zoals een Feitian BioPass of de vingerafdrukscanner van je laptop/tablet/scanner) ook voor wachtwoordloos inloggen. In dit geval is het device iets dat je hebt en controleert het of dat je iets bent, en is het dus multifactor: https://www.w3.org/TR/webauthn/#sctn-authenticator-taxonomy
Maar hoe bepaal je dan wie er inlogt? Zegmaar als het aan een device (bijv tpm) is gelocked, hoe kun je je account dan op een ander apparaat gebruiken? Anders zie ik het nut van de oplossing eigenlijk helemaal niet.
Het idee is dat je meerdere devices koppelt aan je account, elk met een uniek sleutelpaar voor dezelfde webdienst.
Geen integratie met email providers?
De sign-up, klik op link in email dans is dus nog steeds nodig, lijkt mij een gemiste kans.
De 'klik op een link' methode is in de meeste gevallen bedoeld om je e-mailadres te verifiëren bij het aanmelden. Het is geen vervanging om ergens op in te loggen. Dat is waar de WebAuthn-api voor bedoeld is (alternatief voor inloggen met wachtwoord).

[Reactie gewijzigd door rappie_nl op 4 maart 2019 18:34]

Je hebt ook "magical" links, daarmee kun je wel degelijk inloggen op mobiele apps. Dat wordt in elk geval geboden door o.a. de PostNL app en de Slack app.

[Reactie gewijzigd door CH4OS op 5 maart 2019 08:27]

Ik vermijdt die crap als de pest. Veel te omslachtig. En het komt ook voor dat je op het moment gewoon even niet bij je e-mail kan.
Bij beiden kun je dan ook gewoon "ouderwets" inloggen. ;)
Ah gelukkig. Er zijn nml ook diensten waarbij dat niet kan. Medium is er zo een :r
Dat is meer een slap bewijs van een identiteit danwel een test van de mogelijkheid je een 'email-pushbericht' te sturen. Zoiets heeft geen plaats in een sterk authenticatiemechanisme (al is het wel veel gebruikt).
De e-mail verificatie hoort bij de signup, niet bij de authenticatie.
Los daarvan, het is aan de W3C om de standaard neer te zetten, niet om te implementeren. Hoe websites deze authenticatie gaan inzetten, moeten ze helemaal zelf weten.
Signup en signin hebben natuurlijk wel wat met elkaar te maken..
Ik ben benieuwd naar wat dit oplevert.
In deze standaard hebben de twee niet zo veel met elkaar te maken. Behalve dat je vermoedelijk een keer moet athenticeren om een token aan je account te koppelen. Maar nogmaals: dat kan iedere website voor zich bedenken.
Alleen met een vaste standaard zorg je dat tools (zoals browsers) het native kunnen behandelen en hoe ze dat technisch doen in hun code is aan hen. Over een paar jaar komt vast standaard n+1, zoals je dat veel ziet. ;) Dus hoe nu iedere website dat voor zich kan bedenken is mij even een raadsel.

[Reactie gewijzigd door CH4OS op 6 maart 2019 01:11]

Gelukkig gaan webstandaarden tegenwoordig een stuk sneller dan vroeger, dus het zou best kunnen dat er een versie 2 van komt ja.
Gelukkig verplaatst dit het probleem.
Als je telefoon is gestolen of stuk is kan je niet inloggen op facebook om even te melden dat je niet bereikbaar bent 😂
Als de telefoon of fido2 key zoek is moet je dan alle websites waar je webauthn gebruikt langs om je account te herstellen ?
https://youtu.be/wHRURYGPMzQ?t=75

Waarom denk ik toch iedere keer aan dat ? :+

Gebruik voor iedere (niet belangrijke) website een random wachtwoord, voor wel belangrijke websites 2 stap auth.
Die "irisscan" uit het filmpje is de tweede stap authenticatie :)
Het is een stap in de goede richting. Er zijn te veel websites die enkel de mogelijkheid aanbieden voor in te loggen met wachtwoord en verder niets. Ik zou dit systeem ook niet op zichzelf willen zien worden gebruikt maar in een twee stap authenticatie. Dus inloggen met wachtwoord en dan verzoek krijgen om te authentiseren met een Webauthn-api.
Zou leuk zijn om de fingerprintsensor van mijn smartphone te gebruiken om in te loggen op website op de PC. Maar die link zie ik nog niet direct hiermee... Als ik een testsite open op mijn chromebook vraagt hij om een usb key aan te sluiten.

Op dit item kan niet meer gereageerd worden.


OnePlus 7 Pro (8GB intern) Nintendo Switch Lite LG OLED C9 Google Pixel 3a XL FIFA 19 Samsung Galaxy S10 Sony PlayStation 5 Smartphones

Tweakers vormt samen met Tweakers Elect, Hardware.Info, Autotrack, Nationale Vacaturebank, Intermediair en Independer de Persgroep Online Services B.V.
Alle rechten voorbehouden © 1998 - 2019 Hosting door True