akademin körs anonymt — inget sparas
skapa kontonummer →
Akademin / Nivå III / Lektion 08
lektion 08 · försvaret

2FA & MFA — vad, varför, hur.

Lösenord läcker. 2FA gör läckan oanvändbar för anfallaren — för även med ditt lösenord kommer hen inte in utan en andra faktor som finns på din enhet. Men inte all 2FA är jämställd.

Välj spår Hur tekniskt vill du ha det?

2FA betyder att du behöver två saker för att logga in: något du vet (lösenordet) plus något du har (telefonen, en fysisk nyckel). Tappar du lösenordet är det inte slut — det andra steget skyddar dig.

01Varför 2FA är så viktigt

Anta att ditt Spotify-lösenord läckte 2018. En credential stuffing-bot testar det idag mot 1000 sajter. Med 2FA aktiverat: även när botten skriver in rätt lösenord får den prompten "verifiera med koden i din app" — som finns på din telefon, inte botens. Attacken stoppas.

Microsoft rapporterar att 2FA blockerar 99,9 % av automatiserade account-takeover-attacker. Det är inte ett perfekt skydd (mer om det nedan), men det är den största procentuella förbättringen ett enskilt steg kan ge dig.

02De fyra vanligaste typerna

I Sverige tillkommer BankID — som faktiskt är en form av 2FA (något du vet: PIN, något du har: telefonen med BankID-app). Ett bra system, men har sina egna problem (vishing-bedrägerier — se lektion 5).

03Vilken är säkrast?

Inte all 2FA är lika. Den här tabellen visar vilken typ som stoppar vilken typ av attack.

Attack ↓  /  2FA-typ → SMS App (TOTP) Push-notis FIDO2-nyckel
Bara lösenord läcker
Phishing (klassisk) ~ ~ ~
Phishing med AiTM-proxy
SIM-swap (porting)
Push-fatigue (spam av prompts) n/a

✓ skyddar  ·  ~ partiellt  ·  ✗ skyddar inte

04Se en TOTP-kod genereras

Här är en simulerad authenticator-kod. Den uppdateras var 30:e sekund — exakt som en riktig.

— — — — — —
Uppdateras var 30:e sekund · genererad lokalt i din webbläsare

I en riktig authenticator-app finns en hemlig nyckel som delas med sajten när du sätter upp 2FA (oftast genom en QR-kod). Både din app och sajten räknar samtidigt ut samma kod baserat på den hemliga nyckeln + aktuell tid. Koderna matchar i 30 sekunder, sedan rullar de.

05Praktiskt — vad ska du göra?

Om någon ringer och ber om din 2FA-kod: det är phishing. Alltid. Banker, support — ingen seriös aktör ringer och frågar efter koder. Se lektion 5.

"2FA" är en familj av tekniker med radikalt olika garantier. TOTP (RFC 6238) skyddar mot offline-attacker men inte AiTM. WebAuthn (W3C, FIDO Alliance) skyddar mot AiTM genom origin binding. Skillnaden i hotmotstånd är två storleksordningar.

01Faktor-kategorier

"True MFA" kräver minst två kategorier. Två lösenord = inte MFA. Lösenord + TOTP = MFA (knowledge + possession). Lösenord + fingeravtryck = MFA (knowledge + inherence).

02TOTP — RFC 6238

HMAC-baserad one-time password. När du sätter upp 2FA delar sajten en hemlig nyckel (ofta ~160 bitar, base32-kodad i QR-koden). Klienten beräknar:

counter = floor(unix_time / 30)
hmac = HMAC-SHA1(secret, counter)
truncated = ta sista 4 byte av hmac, modulo 10⁶
kod = truncated, padda med ledande nollor till 6 siffror

Sajten gör samma beräkning. Matchar koderna är det giltigt. Time skew: sajten accepterar normalt ±1 fönster (30 s) för klockors drift.

Säkerhet: offline brute force är inte möjlig — utan secret kan en angripare inte räkna ut framtida koder. Live phishing är möjlig — om användaren skriver in koden på en proxy-sida har anfallaren 30 sekunder att använda den mot äkta sajt.

03SMS — varför det är dåligt

SMS-baserad 2FA har två fundamentala problem:

NIST tog officiellt bort SMS-OTP som "rekommenderat" i SP 800-63B (2017). Det är fortfarande "tillåtet" — och fortfarande mycket bättre än ingen 2FA — men det är inte rekommenderad praxis.

04WebAuthn / FIDO2 — phishing-resistens via origin binding

Webbsidans origin (protocol + host + port) bakas in i utmaningen som signeras av nyckeln. En FIDO2-nyckel som registrerats för https://google.com producerar bara giltiga signaturer för utmaningar med den exakta origin. En phishing-sajt på google-secure.com får inte ut något användbart — även om användaren själv trycker på nyckeln.

Detta är hela skillnaden: TOTP och SMS skyddar mot offline attacker (cred stuffing, brute force på lösenord). FIDO2 skyddar dessutom mot online phishing.

Hardware-implementationer: YubiKey, Google Titan, SoloKey (open hardware), Apple's Secure Enclave (passkeys — se lektion 9).

05Push-fatigue (MFA bombing)

Push-notis-baserad 2FA är bekvämt — användaren godkänner med en knapptryckning. Sårbarheten är just den bekvämligheten:

Mest känd: Uber 2022. En anställd hos Uber accepterade en push-notis efter 1 timmes spammning. Anfallaren fick AWS-tillgång, GCP-tillgång, Slack-tillgång. Hela företaget komprometterades.

Försvar: number matching (visa en siffra som måste skrivas in i appen) eller context (visa "logga in från Bryssel?" med plats/enhet). Microsoft Authenticator default 2023+.

06Recovery codes

Backup-koder genereras vid 2FA-setup — typiskt 6-10 engångskoder. De ÄR alternativa lösenord. Anfallare som får dem kringgår all 2FA. Lagra som:

07BankID — svensk specifik

BankID är en form av MFA (PIN + telefon med privatnyckel + biometri). Tekniskt bygger det på asymmetrisk kryptografi och är robust mot remote-attacker. Sårbarheten är användarens beslut att signera — vishing-bedragare övertalar användaren att klicka "Identifiering" eller "Underskrift" tror dem att det stoppar en attack, när det i själva verket är attacken. Se lektion 5.

Strukturellt: BankID ger ingen visuell information om vad som signeras i många implementationer (bara "Identifiering" eller "Underskrift"). Det är användbarhets-vs-säkerhet-trade-off som har kostat svenska konsumenter ~1,2 miljarder kr 2023 enligt Polisens statistik.

Snabb-koll — tre frågor

lektion 08 · klarad ✓ Sista lektionen — nivå III

Lektion 09 — Passkeys & framtiden utan lösenord

Lösenordens efterträdare — vad de är, hur de fungerar, och var de redan finns.

Sista lektionen