BankID under en presentasjon av planene om ny løsning våren 2013. Den Java-frie tjenesten ble lansert høsten 2014. Allerede året før ble et kryptobibliotek klienten deres benytter definert som et inaktivt prosjekt. (Bilde: Sigvald Sveinbjørnsson)

Crypto-JS

BankID bruker kryptobibliotek som er «lagt på is»

Laget av én mann på fritiden. Sist oppdatert i 2013.

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.

Hege Steinsland i BankID Norge forteller at organisasjonen har innblikk i hva danske NemID gjør i forhold til bruken av Java, men at det er flere av forholdene i Norge som er annerledes enn i Danmark.
Hege Steinsland er kommunikasjonssjef i BankID Bilde: BankID
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.

Daglig leder i Ålesunds-selskapet Encripto, Juan J. Güelfo, fant et alvorlig sikkerhetshull i Nordeas Android-app.
Juan J. Güelfo er daglig leder i Encripto.
- 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:

  1. Tar inn kun de deler av 3-partskomponenter som faktisk benyttes (unngå død kode)
  2. Erstatter/kompletterer de deler av 3-partskomponenter som ikke anses gode nok
  3. Sikre at de deler av 3-partskomponenter som tas inn AS-IS ikke inneholder kjente sårbarheter
  4. Kvalifisere at 3-partskomponenten brukes også av andre (og større) aktører
  5. Kvalifisere i hvilken grad aktuell 3-partskomponent aktivt vedlikeholdes

Per Øyvind Thorsheim, sikkerhetsrådgiver i EDB Ergogroup
Per Thorsheim har mange ganger tidligere vært kritisk til sikkerheten i BankID, dog skyldtes det tjenestens tidligere avhengighet av Java. - Som vanlig bruker av BankID overfor bank, forsikring, myndigheter og andre tjenester har jeg ingen problemer med å akseptere de premisser for sikkerhet og ansvar som ligger til grunn for BankID i dag, sier han.
- 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:

  1. BankID trimmer crypto.js ned kun til de deler som faktisk benyttes.
  2. Noen deler av crypto.js anses ikke gode nok alene (random numbers) og er komplettert med egenskrevet kode.
  3. For de deler av crypto.js som benyttes har vi ikke kunnskap om kjente sårbarheter.
  4. Crypto.js benyttes i mange anvendelser hos andre parter, herunder flere produkter hos større aktører som Google og Adobe
  5. 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.

Les også: BankID falt ned for 3,2 millioner brukere

Til toppen