Så kan du minska bedrägerier med BankID

Så här gör du som förlitande part för att inte låta ditt system användas för bedrägerier med BankID.

Executive summary

För att sammanfatta det hela

  1. Använd alltid “autostarttokenrequired”, eventuellt med extra filtrering så som PolicyID.
  2. Låt aldrig användaren själv mata in ett personnummer.
  3. Använd QR-kod för att skicka över autostarttoken till mobilen från datorn.

Inledning

Under den här sommaren har det kommit många artiklar som handlar om hur olika personer blivit bedragna med hjälp av BankID. En vän uttryckte sig: “tydligen förenklar BankID inte bara vår vardag utan även brottslingarnas vardag.”

För att vara tydlig är det främst användarna som blir lurade att logga in bedragarna och det har inte varit tekniska brister som utnyttjats. Men om teknik kan användas för att skydda användarna ska vi naturligtvis göra det.

Enligt DN är tillvägagångssättet ungefär så här:

  1. Bedragarna ringer slumpmässigt utvalda telefonnummer som de kan koppla till ett personnummer.
  2. Bedragaren utger sig ofta för att ringa från bankens säkerhetsavdelning, polisen eller annan auktoritet och förklarar att det pågår ovanlig aktivitet på offrets konto. För att få hjälp med att stoppa transaktionen måste offret bara signera med BankID först.
  3. Samtidigt gör bedragaren sig redo att logga in på offrets internetbank via sin egen dator eller telefon. När offret loggar in med BankID är bedragaren inloggad.
  4. Nu kan bedragaren via överföring eller Swish flytta pengarna till målvaktens konto. För att godkänna överföringarna övertalas offret att signera med BankID igen.

Det finns rekommendationer (till exempel från DN och BankID) för hur du som privatperson ska göra för att minska möjligheten att bli bedragen.

Det som saknas är rekommendationer för hur jag som förlitande part ska göra för att minimera risken att mina kunder bedras med hjälp av mitt system.

Om vi tittar på flödet ovan ser vi att bedragaren skapar en begäran om inloggning via den riktiga Internetbanken (förlitande parten) med hjälp av personnummer. Det hänger ihop med BankID’s stöd för att dela på “informationskanalen” (dvs. där användaren surfar) och “säkerhetskanalen” (dvs. där användaren legitimerar sig eller skriver under).

Problemet är att det inte alltid varit lätt att knyta ihop informations- och säkerhetskanalen och de förlitande parterna har inte alltid koll på hur man gör i de lägen man kan det. Om en sådan knytning hade varit enkel hade inte personnummer behövt anges för någon inloggning med BankID.

Tänk om det fanns något sätt att legitimeras sig eller skriva under med BankID utan att någonsin ange ett personnummer? smile

Nu ska jag visa hur du kan göra det.

Säkerhets- och informationskanalen på samma enhet

Två exempel på när man har säkerhets- och informationskanalen på samma enhet är en app på din telefon eller när du surfar på datorn och använder BankID på kort.

När man har säkerhetskanalen och informationskanalen på samma enhet är det lätt att knyta ihop dem tekniskt. BankID har förberett detta sedan mycket lång tid genom en funktion de kallar för “autostarttoken” som går att kräva med “requireautostarttoken” i anropet till BankID.

Lite förenklat fungerar den enligt följande:

  1. Användaren klickar på att logga in. Detta görs utan personnummer.
  2. Förlitande part skapar en inloggningstransaktion till BankID utan personnummer och med “requireautostarttoken”.
  3. BankID returnerar autostarttoken och en orderRef.
  4. Förlitande part skapar en länk och triggar klienten till exempel med en iframe eller med javascript. Länken ser ut ungefär så här :
    bankid:///?autostarttoken=0f5184b8-fd55-44d4-87e8-96dcd880acc4&redirect=null
    
  5. På klienten startas nu BankID säkerhetsapp (eller BankID säkerhetsprogram) som kopplar upp sig till BankID och med hjälp av autostarttoken kopplar inloggingen till den inloggningstransaktion som den förlitande parten gjorde tidigare.
  6. Användaren är nu inloggad.

Eftersom det inte skickas in något personnummer går det inte för bedragaren att starta en transaktion för någon annan. Visst kan bedragaren skicka länken till offret via SMS men det blir i alla fall krångligare. Den stora vinsten som jag ser är att när offret själv loggar in på banken i sin egen app blir det inte någon sammanblanding mellan transaktionerna.

Erfarenheter

Hur man jobbar med autostarttoken och requireautostartoken är beskrivet i BankIDs guide till de förlitande parterna och det följs av många förlitande parter, som Skandiabanken i deras app (för öppenhetens skulle, jag är kund i Skandiabanken). Det är lätt att se eftersom något personnummer inte behöver skrivas in.

Problemet är att även relativt stora förlitande parter har valt att göra annorlunda, förhoppningsvis på väl valda grunder.

Några exempel är Avanza och Carpay från Volvo finans (för öppenhetens skull, jag är kund i både Avanza och Volvo finans).

När jag efter att ha angett personnummer klickar på logga in kommer inloggningstransaktionen upp även på andra telefoner och i Avanzas fall även på en dator. De använder alltså inte autostarttoken trots att de är på samma enhet.

Säkerhets- och informationskanalen på olika enheter

Historiskt har det inte funnits många sätt att knyta ihop säkerhets- och informationskanalen med flera enheter, till exempel en dator och en telefon. Det har skapat behovet av att kunna ange personnummer till exempel på Skatteverkets hemsida för att kunna logga in med Mobilt BankID.

I senaste uppdatering av BankID säkerhetsapp finns en QR-läsare:

Den är tänkt att användas för att knyta informations- och säkerhetskanalen med hjälp av autostarttoken (känns det igen från ovan?). Enligt BankIDs guide till de förlitande parterna ska innehållet i QR-koden vara en länk som ser ut ungefär här:

bankid:///?autostarttoken=0f5184b8-fd55-44d4-87e8-96dcd880acc4

QR-koden visas på datorn där du vill logga in och användaren skannar den med BankID säkerhetsprogram. På så vis behöver användren aldrig ange sitt personnummer, vilket förenklar inloggningen, och bedragaren får det svårare att skapa inloggningstransaktioner för någon annan person.

Sammanfattningsvis

För att se till att ditt system skyddar dina användare bättre, se till att aldrig be om användarens personnummer och att använda “autostarttokenrequired”.

Använd QR-kod för att skicka över autostarttoken till mobilen från datorn.


<< Tidigare inlägg ("Maven-plugin för att verifiera licenser")

Dela på:    
John Allberg

John har arbetat med elektronisk identifiering och e-legitimationer sedan 2000. Först på Posten eSäkerhet mellan 2000 och 2004, sedan på Telia mellan 2004 och 2008. Från 2009 är han konsult inom området och 2010 grundade han Ayoy tillsammans med Oscar Jacobsson.