Appar som kontinuerligt visar nya koder är ett populärt alternativ för tvåstegsverifiering. Men hur fungerar egentligen apparna och varför dyker det upp nya koder med jämna mellanrum när apparna öppnas?
Verktyg för tvåstegsverifiering baseras på en teknik kallad TOTP – time-based one-time password. När någon först börjar använda exempelvis Google Authenticator med en tjänst delar tjänsten en hemlig nyckel med Authenticator som lagras på ett säkert vis. Nyckeln delas ofta genom en QR-kod.
Authenticator och tjänsten synkroniserar tiden genom Network Time Protocol (NTP). Lokala tidszoner är irrelevanta eftersom både Authenticator och tjänsten använder Coordinated Universal Time som har samma tid oavsett region. Anledningen till att det kommer nya koder med jämna mellanrum är att tiden delas upp i korta intervall. För att öka säkerheten genereras en ny unik kod för varje tidsintervall. De unika koderna skapas utifrån den hemliga nyckeln och det aktuella tidsintervallet.
Koden bygger på en HMAC-algoritm och fungerar bara under tidsintervallet kontoägaren försöker logga in. För att engångskoden ska vara enklare att ange förkortas koden till ett numeriskt värde. När koden från Authenticator anges i tjänsten vid inloggning gör tjänsten precis samma beräkning som Authenticator utifrån den hemliga huvudnyckeln och aktuella tiden: om allt stämmer loggas användaren in.
Authenticator behöver ingen internetuppkoppling eller kommunikation med tjänsten eftersom allt baseras på nyckeln och den aktuella tiden. Tack vare att koderna bara fungerar en kort tid minskar risken att en angripare ska kunna logga in genom att exempelvis lyckas stjäla 2FA-koden, eftersom koden snabbt blir obrukbar.
Tvåstegsverifiering bör användas överallt där det går av de som bryr sig om säkerheten online. Ett ännu säkrare alternativ som nu är på frammarsch är passkeys. Då agerar istället en fysisk enhet – likt en smartphone – som en unik slags hårdvarunyckel. Angriparen kan då inte komma åt ditt konto utan att både ha stulit din mobil och ha lyckats knäcka telefonens biometriska autentisering eller PIN.