
Varje dag använder miljontals svenskar BankID för att logga in på sin bank, skriva under avtal eller verifiera sin identitet hos myndigheter. Det tar några sekunder, man trycker på en knapp och är klar. Men under den enkla ytan döljer sig ett tekniskt system byggt på kryptografi, certifikat och digital signering – ett system som faktiskt är ganska elegant när man förstår hur det fungerar.
BankID är i grunden ett digitalt certifikat
När du ansöker om BankID hos din bank skapas ett digitalt certifikat och lagras antingen på din telefon (Mobilt BankID) eller på ett smartkort. Det här certifikatet innehåller din identitetsinformation kopplad till ett unikt nyckelpar: en privat nyckel och en publik nyckel.
Den privata nyckeln lämnar aldrig din enhet. Den är skyddad av din PIN-kod eller ditt fingeravtryck och används för att skriva under data kryptografiskt. Den publika nyckeln är precis vad det låter som – den kan vem som helst använda för att verifiera att en signatur kom från just din privata nyckel.
Det är asymmetrisk kryptografi, samma teknik som skyddar HTTPS-trafik på webben. Tanken är enkel: det som krypteras med den privata nyckeln kan bara dekrypteras med den publika, och tvärtom. Ingen kan förfalska din signatur utan tillgång till din privata nyckel.
Vad händer steg för steg vid en inloggning?
Säg att du loggar in på Skatteverkets webbplats med BankID. Här är vad som faktiskt sker:
- Skatteverkets server skickar en unik, slumpmässig textsträng – ett så kallat challenge – till BankID-systemet.
- BankID-appen på din telefon tar emot detta challenge och ber dig bekräfta med PIN eller biometri.
- Appen använder din privata nyckel för att skriva under challenget. Resultatet är en digital signatur.
- Signaturen, tillsammans med ditt certifikat, skickas tillbaka till Skatteverket.
- Skatteverkets server verifierar signaturen med din publika nyckel och kontrollerar att certifikatet är utfärdat av en betrodd part – i det här fallet Finansiell ID-Teknik BID AB, det bolag som äger och driver BankID-infrastrukturen.
Om allt stämmer är du verifierad. Hela processen tar under en sekund.
Vad skyddar BankID mot?
Det smarta med den här konstruktionen är att din privata nyckel aldrig behöver skickas någonstans. Inte ens BankID-bolaget eller din bank känner till den. Det innebär att en eventuell attack mot BankIDs servrar inte kan avslöja dina nycklar.
Challenget – den slumpmässiga strängen – löser dessutom problemet med replay-attacker. En angripare som sniffar upp din signatur kan inte använda den igen, eftersom nästa inloggning genererar ett nytt unikt challenge.
Certifikaten har också en begränsad giltighetstid och kan spärras av banken om de komprometteras. Det fungerar ungefär som att makulera ett fysiskt körkort.
Mobilt BankID kontra BankID på fil
Tidigare fanns BankID som en fil på datorn, vilket visade sig sårbart – filen kunde kopieras och den privata nyckeln extraheras om angriparen fick tag på den och kände till PIN-koden. Mobilt BankID löser det genom att lagra den privata nyckeln i telefonens secure enclave – ett hårdvaruisolerat chip som inte ens operativsystemet kan komma åt direkt. På moderna iPhones heter det Secure Enclave, på Android-telefoner används liknande teknik via Trusted Execution Environment (TEE).
Det gör att även om din telefon hackas ska angriparen inte kunna extrahera nyckeln utan fysisk manipulation av hårdvaran.
Varför BankID trots allt har kritiserats
BankID är inte utan brister. Systemet är centraliserat kring ett privat bolag ägt av ett bankkonsorium, vilket skapar ett enskilt beroende för en stor del av svensk digital infrastruktur. Dessutom har bedrägerier ökat där angripare lurar användare att signera transaktioner de inte förstår – inte för att tekniken brustit, utan för att den mänskliga faktorn alltid är svagaste länken.
Tekniken i sig är robust. Det är hur vi använder den som avgör säkerheten.