Løsningsbeskrivelse
- Stine Granviken
"Buypass Javafri" - ny løsning for smartkortstøtte
Moderne nettlesere tilbyr standard grensesnitt mot en rekke ulike lokale enheter og ressurser. Utviklingen av slike grensesnitt har først og fremst vært rettet mot multimedia og grafikk, og det finnes i dag ikke noen tilsvarende mulighet for å kommunisere med smartkort fra script i en nettside. Standard grensesnitt mot såkalte «sikre elementer», herunder smartkort, er under utvikling men befinner seg i en tidlig spesifikasjonsfase og vil neppe bli tilgjengelige i nær fremtid. Buypass har derfor utviklet en egen løsning basert på standard web-teknologi.
Tilgang til smartkortet fra Javascript i en nettside muliggjøres ved installasjon av et program («SCProxy») på sluttbrukerens PC. Programmet starter automatisk ved pålogging og opptrer som en enkel web-server med et REST API som kan kalles fra Javascript i en nettside. Dette API-et inneholder funksjoner for å sende kommandoer til smartkortet og returnere kortets respons. Programmet fungerer dermed som en «proxy» mellom nettsiden og kortet.
SCProxy har følgende egenskaper og begrensninger:
- Kjører som HTTPS server på port 31505
- Krever lite ressurser
- Aksepterer bare henvendelser over https fra lokal maskin (127.0.0.1)
- Implementerer Cross-Origin Resource Sharing (CORS) og kan bare kalles fra script i nettsider fra Buypass.
- Beskytter PIN-koder på en sikker måte
Hvorfor HTTPS og selvsignert sertifikat?
Nettsider som bruker smartkortet leveres over https fra en Buypass server. Av sikkerhetshensyn håndhever nettleserne en «Same-origin policy» som blant annet innebærer at script i en nettside som er levert over https ikke kan bruke en annen protokoll (f.eks. http) ved henvendelser til en annen nettside. SCProxy må derfor opptre som en https-server og må presentere et SSL-sertifikat som er tiltrodd i nettleseren.
Ved installasjon av SCProxy genereres derfor et RSA nøkkelpar og et selvsignert SSL-sertifikat utstedt til IP-adresse 127.0.0.1. Nøkkelpar og sertifikat er altså unike for hver installasjon, slik at sertifikatet ikke vil være tiltrodd på andre maskiner. Privatnøkkelen legges i standard nøkkellager i Windows, og tilgang til nøkkelen gis til https-server på port 31505. Sertifikatet installeres i Windows-sertifikatlageret for «Trusted Certification Authorities» og vil dermed betraktes som tiltrodd av Internet Explorer, Chrome og Opera. Dersom Firefox er installert, legges sertifikatet også inn i listen over tiltrodde sertifikater i alle Firefox-profilene på maskinen.
Beskyttelse av PIN-kode
PIN-koder håndteres på en slik måte at de ikke kan gjenfinnes i nettleserens cache eller andre logger.
I tillegg til at data mellom nettleser og proxy overføres via TLS, er PIN-kodene også beskyttet med engangsnøkler.
Den overordnede flyten mellom brukersted, Buypass og nettleser endres ikke
Ingen endring i oppsett eller grensesnitt hos Buypass brukersteder er nødvendig ved overgang fra Java til Javafri løsning.
Innhold: