BankID-klienten benytter et krypteringsbibliotek i JavaScript kalt CryptoJS.
Dette er et prosjekt i åpen kildekode skrevet av én mann på fritiden.
Les også: Spionselskap ble hacket
Inaktivt prosjekt
Biblioteket ble sist oppdatert i januar 2013.
Det er gått to og et halvt år siden forfatteren sist oppdaterte prosjektet, som da ble definert inaktivt på ubestemt tid. Han anbefaler å bytte til alternativer hvis noen opplever at CryptoJS ikke lenger dekker behovene.
Spørsmålet til bankenes fellesprosjekt for sikker autentisering, BankID med sine 3,2 millioner registrerte kunder, blir derfor hvor trygt de anser bruken av dette lite oppdaterte biblioteket for å være?
- Nåværende bruk av crypto.js i BankID anses som trygt og sikkert, svarer kommunikasjonssjef Hege Steinsland.
Hun forklarer at utviklingsstrategien til BankID, på generell basis, innebærer en balanse mellom å utnytte kildekodekomponenter som er skrevet av 3-parter – for å unngå å finne opp hjulet på nytt – samtidig som sikkerheten i BankID ikke skal legges i andres hender.
Før vi kommer til de øvrige svarene tok digi.no kontakt med et par eksperter.
- Det kan alltids stilles spørsmål ved bruken av åpen kildekode utviklet av en mann som ikke lengre jobber med det. Jeg vil håpe og tro at BankID har benyttet eksperter både på kildekode og kryptorevisjon, slik at de sitter med god trygghet i at dette er nok, sier sikkerhetsrådgiver Per Thorsheim i God Praksis.
Han får støtte fra Juan J. Güelfo i det Ålesund-baserte IT-sikkerhetsfirmaet Encripto, som også trekker frem at en sikkerhetsrevisjon er et tiltak som kan gjøre BankIDs valg forsvarlig.
- Siden biblioteket er distribuert i åpen kildekode, kan også kodens sikkerhet revideres på en enklere måte. Hvis BankID har sikkerhetstestet CryptoJS, og deretter brukt biblioteket som grunnlag for å utvikle komponenter til løsningen sin, kan dette være et OK alternativ, sier Güelfo.
Så du denne? Putter spionvare i harddiskens firmware
- Risiko blir alltid gjennomgått
BankID svarer at de har lagt følgende kriterier til grunn for bruk av alle tredjeparts komponenter, og at det alltid gjøres en såkalt risk-assessment bestående av følgende punkter:
- Tar inn kun de deler av 3-partskomponenter som faktisk benyttes (unngå død kode)
- Erstatter/kompletterer de deler av 3-partskomponenter som ikke anses gode nok
- Sikre at de deler av 3-partskomponenter som tas inn AS-IS ikke inneholder kjente sårbarheter
- Kvalifisere at 3-partskomponenten brukes også av andre (og større) aktører
- Kvalifisere i hvilken grad aktuell 3-partskomponent aktivt vedlikeholdes
- En slik risikogjennomgang ble gjort for Crypto.js i 2014 forut for prodsetting av BankID 2.0, sier Hege Steinsland i BankID. Hun forklarer at dette ga følgende resultat:
- BankID trimmer crypto.js ned kun til de deler som faktisk benyttes.
- Noen deler av crypto.js anses ikke gode nok alene (random numbers) og er komplettert med egenskrevet kode.
- For de deler av crypto.js som benyttes har vi ikke kunnskap om kjente sårbarheter.
- Crypto.js benyttes i mange anvendelser hos andre parter, herunder flere produkter hos større aktører som Google og Adobe
- Crypto.js ble aktivt vedlikeholdt av en kjerne av frivillige ledet av en anerkjent enkeltperson
BankID skal altså ha sørget for å komplementere de deler av kryptobiblioteket, som alene ikke anses som trygt nok, herunder generering av tilfeldige numre.
Les også: Resatt Android sletter ikke alle data
Kan bli vraket
Likevel peker BankID tilbake på det siste punktet (5). De åpner for at Crypto.js kan bli vraket som følge av at prosjektet ikke lenger blir aktivt vedlikeholdt.
- Per juni 2015 har sistnevnte premiss endret seg. Dette er nylig også påpekt i en rutinemessig sikkerhetsgjennomgang (IT-sikkerhetsfirmaet) Mnemonic har foretatt på oppdrag fra BankID. Som en konsekvens av dette vil BankID gjøre en vurdering av om crypto.js fortsatt skal benyttes i det videre, men at videreutvikling og vedlikehold tas inn i «egne rekker» eller om man skal finne et alternativt 3-parts produkt, sier kommunikasjonssjef Hege Steinsland.