Salasanat ovat tilien tietoturvan heikoin lenkki. Ne voidaan kalastella, vuotaa, käyttää uudelleen tai unohtaa. Siksi lisäsimme tuen WebAuthn-pääsyavaimille (passkeys): tietojenkalastelua kestävälle, salasanattomalle tunnistautumistavalle, joka on sekä turvallisempi että kätevämpi.
Mitä pääsyavaimet ovat?
Pääsyavaimet ovat laitteellesi (puhelimeen, kannettavaan tai suojausavaimeen) tallennettuja kryptografisia tunnistetietoja, jotka korvaavat salasanat tunnistautumisessa. Ne perustuvat WebAuthn-standardiin (osa FIDO2:ta), ja niissä on monta etua:
- Kestävät tietojenkalastelua: pääsyavaimet on sidottu sivuston verkkotunnukseen, joten niitä ei voi käyttää väärennetyillä sivustoilla
- Ei vuotavia salaisuuksia: palvelimelle tallennetaan vain julkinen avain
- Laitteeseen sidottuja: yksityinen avain ei koskaan poistu laitteeltasi
- Biometrisesti suojattuja: yleensä Face ID:n, Touch ID:n tai Windows Hellon suojaamia
- Synkronoituvat laitteiden välillä: nykyaikaiset alustat synkronoivat pääsyavaimet laitteiden välillä iCloud-, Google- tai Microsoft-tilin kautta
Toteutuksemme
Liitimme WebAuthn-pääsyavainten tuen olemassa olevaan django-allauth-pohjaiseen tunnistautumiskokonaisuuteemme ja tarjoamme sekä verkko- että mobiili-API-päätepisteet.
Rekisteröinnin kulku
Kun käyttäjä rekisteröi uuden pääsyavaimen, kulku etenee näin:
- Asiakas pyytää palvelimelta rekisteröintiasetukset
- Palvelin luo haasteen käyttäjän ja luottavan osapuolen tiedoilla
- Selaimen WebAuthn-rajapinta pyytää käyttäjää vahvistamaan (biometrisesti tai suojausavaimella)
- Asiakas lähettää tunnistetiedon takaisin palvelimelle
- Palvelin tarkistaa ja tallentaa julkisen avaimen
| |
Tunnistautumisen kulku
Kaksivaiheisessa tunnistautumisessa pääsyavaimella:
- Käyttäjä suorittaa ensisijaisen tunnistautumisen (käyttäjätunnus ja salasana tai kirjautuminen sosiaalisen median tilillä)
- Palvelin palauttaa haasteen WebAuthn-vahvistusta varten
- Selain pyytää pääsyavainta (biometrinen kosketus)
- Tunnistetieto tarkistetaan tallennettua julkista avainta vasten
- Käyttäjä on tunnistautunut kokonaan
| |
Pääsyavainten hallinta
Käyttäjät voivat hallita rekisteröityjä pääsyavaimiaan:
- Listata kaikki pääsyavaimet rekisteröintipäivän ja viimeisimmän käytön kera
- Nimetä pääsyavaimia uudelleen, jotta ne on helpompi tunnistaa (esim. “iPhone”, “MacBook”)
- Poistaa pääsyavaimia (viimeisen tunnistautumistavan poistaminen on estetty)
| |
API-päätepisteet
REST-rajapintamme tarjoaa mobiilisovellukselle täyden WebAuthn-tuen:
| Päätepiste | Metodi | Kuvaus |
|---|---|---|
/api/webauthn/register/options/ | GET | Hae rekisteröinnin haaste |
/api/webauthn/register/complete/ | POST | Viimeistele rekisteröinti |
/api/webauthn/authenticate/options/ | GET | Hae tunnistautumisen haaste |
/api/webauthn/verify/ | POST | Tarkista tunnistetieto kaksivaiheista tunnistautumista varten |
/api/webauthn/ | GET | Listaa rekisteröidyt pääsyavaimet |
/api/webauthn/<id>/ | PATCH | Nimeä pääsyavain uudelleen |
/api/webauthn/<id>/ | DELETE | Poista pääsyavain |
Tietoturvanäkökohdat
Palautuskoodit
Kun käyttäjä rekisteröi ensimmäisen tunnistautumistapansa (pääsyavaimen tai TOTP:n), luomme automaattisesti palautuskoodit. Näitä kertakäyttöisiä koodeja voi käyttää, jos kaikki muut tunnistautumistavat eivät ole käytettävissä:
| |
Lukkiutumisen estäminen
Käyttäjä ei voi poistaa viimeistä pääsyavaintaan, jos hänelle ei sen jälkeen jäisi yhtään kaksivaiheisen tunnistautumisen tapaa:
| |
Valvonta
Seuraamme pääsyavainten käyttöä Datadog-mittareilla tietoturvan valvomiseksi:
| |
Selaintuki
WebAuthnia tukevat kaikki nykyaikaiset selaimet:
- Chrome 67+
- Firefox 60+
- Safari 13+
- Edge 79+
- Chromen, Safarin ja Firefoxin mobiiliversiot
Vanhemmilla selaimilla käyttäjät voivat edelleen käyttää TOTP:ta (todennussovelluksia) tai palautuskoodeja.
Käyttökokemus
Pääsyavaimen lisääminen vie vain sekunteja:
- Siirry kohtaan Asetukset → Tietoturva → Kaksivaiheinen tunnistautuminen
- Napsauta Lisää pääsyavain
- Nimeä laitteesi (esim. “iPhone 15”)
- Tunnistaudu Face ID:llä, Touch ID:llä tai Windows Hellolla
- Valmista! Pääsyavaimesi on rekisteröity
Jatkossa kirjautumiseen riittää biometrinen vahvistus: ei salasanojen kirjoittamista eikä koodien kopioimista todennussovelluksista.
Miksi valitsimme pääsyavaimet
| Menetelmä | Kalasteluriski | Käyttökokemus | Palautus |
|---|---|---|---|
| Salasanat | Suuri | Heikko (unohtuvat, heikkoja) | Nollaus sähköpostilla |
| Tekstiviesti-2FA | Kohtalainen (SIM-kortin kaappaus) | Kohtuullinen | Puhelinnumero |
| TOTP-sovellukset | Pieni | Koodin syöttö käsin | Varmuusavaimet |
| Pääsyavaimet | Hyvin pieni | Erinomainen | Palautuskoodit |
Pääsyavaimet ovat tunnistautumisen tulevaisuus. Applen, Googlen ja Microsoftin alustat tukevat niitä jo, joten ne ovat lähes kaikkien käyttäjiemme ulottuvilla.
Valmis luopumaan salasanoista? Ota pääsyavaimet käyttöön tietoturva-asetuksissasi!
