Loading...

Blogindlæg

Hjem / Blog / Goer din hjemmeside sikrere med 2 faktor autentificering

Gør din hjemmeside sikrere med 2-faktor autentificering

Guide til 2FA (2-faktor autentificering). Læs hvordan det virker og hvad for en løsning der er bedst for din hjemmeside. 2FA øger sikkerheden på bruger login enormt, da brugeren skal bruge sin kode plus et ekstra sikkerhedslag som brugeren har på sig, f.eks. en mobil.

Introduktion

Der findes to former for autentificering ved 2FA:

  • Authenticator app (TOTP algoritme)
  • SMS (HOTP algoritme)

Man kan bruge én eller begge metoder. Hvis man benytter begge metoder i sin applikation, skal brugeren blot vælge den ønskede metode ved 2FA konfigurationen.

Authenticator App

Denne metode fungerer ved at brugeren downloader en app som kan lave 2FA. Der er mange apps som tilbyder 2FA autentificering, den mest kendte er ”Google Authenticator”, Microsoft har også en og så findes andre open source versioner. En app som kan lave 2FA er derfor åbent for alle, teknologien er ikke bundet til en producent eller andet, de følger blot den nævnte algoritme (TOTP), som er en standard.

En 2FA app er meget simpel, det eneste den gør er at generere en tidsbestemt kode, dette gør den ved at bruge TOTP algoritmen. TOTP står for ”Time-based One Time Password” og den genererer en kode ved at bruge en delt nøgle og mobilens unixtime. Den delte nøgle er skabt af serveren og givet til mobilen ved konfigurationen via en QR kode eller blot noget tekst som brugeren manuelt taster ind. Når brugeren prøver at logge ind på hjemmesiden og ankommer til 2FA delen efter at have skrevet sin normale adgangskode, så spørger hjemmesiden om en kode, som man skal generere med sin 2FA app.

Use case: Brugeren aktiverer 2FA på app

  1. Brugeren logger ind på hjemmesiden som normalt
  2. Brugeren får at vide at 2FA bliver aktiveret
  3. Brugeren får vist diverse forslag til 2FA apps til diverse styresystemer f.eks. Android, iOS og Windows Phone
  4. Brugeren får besked om at downloade en 2FA app f.eks. Google Authenticator
  5. Brugeren klikker på 2FA app link og downloader appen til sin mobil
  6. Hjemmesiden genererer en QR kode som indeholder en nøgle der bliver delt mellem serveren og 2FA appen
  7. Brugeren ser nu en QR kode på hjemmesiden
  8. Brugeren bliver informeret om at skanne QR koden med den installerede 2FA app
  9. Brugeren scanner QR koden med 2FA appen
  10. QR koden indeholder en nøgle, dette er blot et stykke tekst, og denne nøgle bliver registreret af 2FA appen
  11. Serveren og 2FA deler nu samme nøgle som tilhører den pågældende bruger, alle brugere får hver deres nøgle

Use case: Brugeren logger ind med 2FA på app

  1. Brugeren logger ind på hjemmesiden som normalt
  2. Brugeren taster sin adgangskode og brugernavn
  3. Brugerens adgang bliver accepteret
  4. Brugeren ankommer til 2FA skærmen
  5. Brugeren ser et input felt hvor der skal indsættes en kode fra 2FA appen f.eks. Google Authenticator
  6. Brugeren åbner 2FA appen og under hjemmesidens navn står der automatisk en kode
  7. Koden ændrer sig automatisk hvert 30. sekund
  8. Brugeren har nu 30 sekunder til at indtaste koden
  9. Hvis brugeren ikke når det inden 30 sekunder, skal brugeren blot indtaste den næste kode
  10. Serveren sammenligner koden ved at bruge samme algoritme og unixtime, hvis den genererede kode fra 2FA appen matcher serverens så bliver den accepteret. Hvert 30 sekunder ændrer den tilladte periode sig, og da unixtime time er nogenlunde ens for alle så er serveren og 2FA appen synkroniseret. Der kan være  latency problemer over netværket eller softwaren kan være lidt ude af synk, derfor laver man et vindue på 30 sekunder.

SMS

Denne metode benytter sig af en tilfældig kode som bliver genereret på serveren ved at bruge HOTP algoritmen og sendt via en SMS gateway til brugerens SIM kort telefonnummer. Det er den mest simple form for 2FA for brugeren da det ikke kræver opsætning på mobilen, man modtager bare en SMS.

HOTP er ikke baseret på tid som i TOTP men på en tæller. Den genererer en kode og når den validerer koden sammenligner den koden med nuværende tæller. Når serveren validerer koden eller den genererer en ny kode stiger tælleren med 1.

For at sende SMS skal man bruge en SMS gateway, der findes mange udbydere og prisen pr. SMS ligger på under 30 øre pr. styk.

SMS gateways udpluk

Use case: Brugeren aktiverer 2FA på SMS

  1. Brugeren logger ind på hjemmesiden som normalt
  2. Brugeren får at vide at 2FA bliver aktiveret
  3. Brugeren registrere sit SIM kort telefonnummer

Use case: Brugeren logger ind med 2FA på SMS

  1. Brugeren logger ind på hjemmesiden som normalt
  2. Brugeren taster sin adgangskode og brugernavn
  3. Brugerens adgang bliver accepteret
  4. Brugeren ankommer til 2FA skærmen
  5. Brugeren ser et input felt hvor der skal indsættes en 2FA kode
  6. Serveren genererer en kode
  7. Serveren sender koden via en SMS gateway til brugerens mobil
  8. Brugeren modtager SMS koden og taster ind
  9. Serveren sammenligner koden

Værktøjer

Der findes diverse biblioteker til udvikle 2FA autentificering:

For og imod

For 2FA app

  • Sikrere da koden ikke bliver vist som preview på skærmen som ved SMS
  • Ingen omkostninger ved kode generering
  • Kan bruges uden mobilnet eller internetforbindelse på mobilen
  • Virker i hele verdenen
  • Ingen forsinkelse ved kode generering
  • Kan bruges på app, Windows, Linux og OS X software

Imod 2FA app

  • Opsætning kræves af brugeren
  • Kræver en smartphone
For 2FA SMS

  • Kræver ingen opsætning af brugeren
  • Kræver ikke en smartphone

Imod 2FA SMS

  • Kræver netværksforbindelse
  • Omkostninger ved afsendelse af hver SMS til brugeren
  • SMS afsendelse kan være upålidelig og langsom ved høj trafik, f.eks. jul og nytår
  • SMS kan være upålidelig i udlandet og steder med dårlig forbindelse
  • SMS er ikke krypteret

Konklusion

2FA på app er helt klart den bedste løsning, der er ingen omkostninger for dig ved hver kode generering. Den har 100% tilgængelighed, så længe mobilen er opladt. Den kræver ikke internet eller mobilnet og så er den sikrere.

Der er kun et meget lille minus og det er at brugeren skal downloade en 2FA app og oprette login til hjemmesiden, men det er blot at scanne en QR kode, det burde tage under 2 minutter.

Kommentarer (0)

Skriv en kommentar

Din e-mailadresse vil ikke blive publiceret. Krævede felter er markeret med *

Allerede bruger? login