Verified by VISA

2013-08-30

Enligt en lagändring från 2010 har bankerna nu större frihet att själva bestämma om ett kortuttag ska klassas som “behörigt” eller “obehörigt”, dvs. huruvida en kund ska få tillbaka pengar eller inte vid otillbörliga kortaktiviteter. Den praktik som verkar följas, enligt bland annat Dagens Nyheter (http://www.dn.se/ekonomi/rakna-inte-med-pengarna-tillbaka-vid-kortbedrageri/) är att både kortföretagen och Allmänna reklamationsnämnden (ARN) ser ett uttag som behörigt om det utförts med egenkonstruerat lösenord (Verified by VISA eller MasterCard SecureCode) och att kunden då inte ersätts.

Är användningen av Verified by VISA/MasterCard SecureCode bra för mig som kund? Rimligen är risken att utsättas för kortbedrägeri lägre. Men, å andra sidan, om jag råkar ut för ett kortbedrägeri så är det nästan säkert att jag får stå för kostnaderna själv, medan det verkar som kortbolagen fortfarande täcker kostnaden om jag inte använder ett sådant lösenord.

Självklart är det bra för mig som kund att öka säkerheten, men hur mycket ökar säkerheten med Verified by VISA? Låt oss titta lite på hur det fungerar och om det finns några sårbarheter. Beskrivningen gäller Verified by VISA, men MasterCard SecureCode bygger på samma teknologi.

Hur fungerar Verified by VISA?
Via din bank sätter du ett lösenord och dels en “hälsningsfras”, en fras som banken visar dig när du ska skriva in lösenordet. Eftersom bara du och banken känner till denna fras så har du ett skydd mot att andra försöker lura dig att mata in lösenordet, förutsatt att du är observant på frasen och dess innehåll. Observera att det betyder att både lösenordet och hälsningsfrasen ska hållas hemlig.

Hur fungerar det i praktiken?
Om en hackare kommit över dina kortuppgifter så betyder hälsningsfrasen väldigt lite, eftersom hackaren kan gå in på vilken webshop som helst som är ansluten till Verified by VISA, använda dina kortuppgifter och sedan få upp hälsningsfrasen från din bank och där avbryta. Försöket kommer förvisso loggas av banken, men i övrigt är det ett enkelt sätt att få tag på din hälsningsfras.

Hur kan då en hackare använda dina kortuppgifter och din hälsningsfras för att lura av dig eller komma runt ditt lösenord?

Phishing, DNS spoofing, keyloggers etc.
Phishing är e-postmeddelanden som försöker lura dig att logga in (till en felaktig webbplats) och där uppge kortuppgifter och kod. Om hackaren lurat till sig din hälsningsfras genom att använda dina kortuppgifter enligt ovan kan en sida med korrekt hälsningsfras skapas. En informerad och uppmärksam användare luras knappast av phishing, men hälsningsfrasen skyddar dig inte, utan skapar snarare en bedräglig tilltro till sidan!

Om någon lyckats fuska med din DNS så att du tror att du går till banken men istället går till en bedrägeriwebbplats så kan motsvarande hack utföras. Skillnaden i detta fall är att även adressfältet ser korrekt ut i webbläsaren, vilket kan lura även en uppmärksam användare.

I de båda fallen är det ett bra skydd att vara uppmärksam på vad som står i webbläsarens adressfält, liksom på certifikatsvarningar. Acceptera aldrig certifikatsvarningar på din bankwebbplats!

Har du fått en trojan på din dator/i din webbläsare som loggar dina knapptryckningar har du ingen hjälp av Verified by VISA alls, och det spelar ingen roll om angriparen känner till din hälsningsfras. Eftersom du alltid matar in samma uppgifter vid en transaktion så räcker det att monitorera en enda transaktion för att göra fler transaktioner, hur många som helst och när som helst. Det är en generell svaghet med kortbetalningar, som inte avhjälps alls med Verfied by VISA.

Oseriös handlare
Oseriösa handlare som använder sin egen kortbetalning kan enkelt få tag i både kortnummer, hälsningsfras och Verified by VISA-kod om de så önskar genom att parallellt skapa en kortinloggning på en annan webshop med de kortuppgifter du nyss uppgett, stjäla hälsningsfrasen från den andra webshoppen och visa den för dig, vilket lurar dig att skriva in lösenordet i deras falska Verified by VISA-formulär. Kontrollen av handlare som hanterar kortnummer är strikt i Sverige (PCI DSS), men det är också vanligt att svenskar handlar via utländska betalsidor.

Identitetsstöld
Om någon lyckas stjäla din identitet så är antagligen Verified by VISA-lösenordet en av de svåraste sakerna att stjäla, eftersom du har satt det själv, det inte går att se någonstans och enda sättet att sätta om det oftast är via webbtjänsten. Det innebär att identitetstjuven måste ha fått ut e-ID, PIN och engångskoder för att kunna byta lösenordet, och i så fall är det antagligen enklare att bara logga in på Internet-banken och föra över pengar direkt. Så, för identitetsstöld är Verified by VISA-lösenordet kanske ett extra skydd.

CSRF för att ändra lösenordet
Hur hanteras lösenord och framför allt omställning av lösenord? Lösenordshanteringen är upp till bankerna själva och standard verkar vara att lösenord byts i bankens webbtjänst och att detta görs utan extra autentisering, dvs. utan att behöva uppge sitt gamla lösenord. Standard på Internet i övrigt för lösenordsbyten är ju annars att användaren behöver autentisera sig igen för att kunna byta lösenord (antingen med gamla lösenordet eller på annat sätt). Eftersom det i Verified by VISA-fallet normalt räcker att du är inloggad hos banken så kan vem som helst som hittar en webbläsare som är inloggad mot banken omedelbart byta detta lösenord. Å andra sidan kan personen då även göra överföringar, så lämnar användaren webbläsaren inloggad på det sättet så är det ett stort hot oavsett och det får ses som oaktsamt.

Men ett sådant förfarande är framför allt känsligt för Cross-Site Request Forgery-attacker (CSRF). CSRF innebär att någon får dig att klicka på en specialkonstruerad länk samtidigt som du är inloggad på banken och vips så är ditt lösenord ändrat utan att du märker det! Eftersom du inte behöver ange ditt gamla lösenord så kan det räcka att du klickar på en länk för att din session till banken kan användas för att ändra lösenordet. Det här scenariot är troligast vid en riktad attack där någon kommer över dina kortuppgifter, kanske via ett köp på en opålitlig webbplats, lurar dig att logga in på banken för att ta reda på kontonummer eller någon annan uppgift och sedan nollställer ditt lösenord. Därefter har hackaren fri tillgång till att göra kortköp med ditt kort. Kanske väger det in för skadebedömningen att lösenordet plötsligt ändrats precis före köpet, men risken är stor att det blir kortköp som du som kund får stå för. Detta trots att CSRF går att förebygga om banken implementerat sin tjänst på ett säkrare sätt.

Skyddet mot denna typ av CSRF, om autentisering inte krävs vid lösenordsbytet, är att bankapplikationen använder Synchronizer Token Pattern (https://www.owasp.org/index.php/Cross-Site_Request_Forgery_(CSRF)_Prevention_Cheat_Sheet) som väldigt förenklat betyder att ett anrop till bankens ”ändra lösenord”-sida bara går igenom om det utförs från samma fönster och tab där din inloggning redan finns. Men, det här är upp till varje bank att implementera och även om svenska banker generellt är säkerhetsmedvetna så är det långt ifrån säkert om detta faktiskt görs.

Om du fått in en trojan på din dator eller i din webbläsare som monitorerar och modifierar trafik, en så kallad man-in-the-browser, så kan den också användas för att ändra ditt lösenord. I detta fall hjälper inte Synchronizer Token Pattern, men å andra sidan kräver det att trojanen antingen installerats på din dator (exempelvis i form av ett webbläsar-tillägg) eller möjligen att du kör sidor med tveksamma Javascript i din webbläsare, så det innebär att du brustit i säkerhetshänseende. Det obehagliga med CSRF i detta sammanhang är att det räcker med ett klick och att brandväggar, antivirusprogram och uppmärksamhet från användaren är till väldigt begränsad hjälp.

Brute force
Minimikrav och möjligheter vad gäller lösenorden varierar mellan olika banker, men det är tydligt att lösenorden ofta är så korta som 6 tecken. Vidare finns ofta begränsningar i vilka specialtecken som får användas. Skandiabanken kräver exempelvis 6 tecken och tillåter alfanumeriska tecken och fyra sorters specialtecken. Det gör att entropin, dvs. antalet lösenord som behöver gås igenom vid Brute Force är förhållandevis lågt, jämfört med en vanlig e-posttjänst som gmail som i alla fall har 8 teckens lösenord. Verified by VISA verkar bara tillåta 6 försök innan lösenordet spärras och måste låsas upp i webbtjänsten (med MasterCard SecureCode verkar det vara fler försök), så en online Brute Force av ett enskilt konto är inte troligt. Däremot kan man tänka sig Brute Force-attacker på en större mängd konton i kombination med vanligt använda lösenord. Om bankernas hashade lösenord kommer ut kan man dessutom tänka sig en offline-attack för att knäcka lösenorden, vilket blir lättare med ett kort lösenord. Intressant är även att lösenorden faktiskt inte följer PCI DSS-standarden om minst 7 tecken i lösenorden (https://www.pcisecuritystandards.org/documents/pci_dss_v2.pdf, avsnitt 8.5.10).

Gissa lösenordet
Vi har sett att hälsningsfrasen inte är speciellt hemlig. Det är därför ytterst viktigt att lösenordet inte går att gissa från hälsningsfrasen, liksom att lösenordet inte är ”password” eller liknande.

Kan jag avstå Verfied by VISA?
Nej, vill du handla på Internet med VISA eller MasterCard så måste du ansluta till Verified by VISA respektive Mastercard SecureCode. Däremot finns det handlare som fortfarande inte är anslutna och dessa kan du handla av även utan att använda dig av Verified by VISA/MasterCard SecureCode.

Framtiden
Hittills har banker och kreditkortsföretag tagit en stor del av risken med kreditkortstransaktioner, men det verkar tydligt att de nu anser tillvänjningen vid kreditkort så stor i kundledet att de vågar skjuta över mer och mer risk på kunden. Kunder har därmed ett större behov av att förstå vilka säkerhetsrisker som finns och minska dem på lämpligt sätt. Tyvärr ger inte Verified by VISA/Mastercard SecureCode det solida intryck som jag som kund borde kunna förvänta mig för att ta en större del av risken. Med tanke på riskerna med oseriösa handlare, phishing, DNS spoofing, trojaner, CSRF, Brute force-attacher etc. så kan det även ifrågasättas om ARN kan göra antagandet att ett uttag gjort med Verified by VISA alltid ska klassas som “behörigt”. Framför allt CSRF och Brute force ser jag gärna som bankens ansvar snarare än mitt, men även de andra riskerna borde ge både bankerna och ARN huvudvärk, förutom alla oss bankkunder.

Andra källor:
http://www.cl.cam.ac.uk/~rja14/Papers/fc10vbvsecurecode.pdf