Teknologien bak Smittestopp
Artikkel
|Publisert
Dette innholdet er arkivert og blir ikke oppdatert.
Lurer du på hvordan Smittestopp er bygget opp teknisk og hvordan den ivaretar personvern? Her får du en teknisk beskrivelse av løsningen.
– Det sentrale elementet i løsningen er Google-Apple-rammeverket, sier senioringeniør og løsningsarkitekt Sindre Møgster Braaten.
I Norge har vi bygd en app på dette rammeverket ved hjelp av Netcompany og løsningen de først utviklet for danske Smittestop.
Appen
– Siden FHI har valgt å bruke dette rammeverket, gjør det at strukturen på løsningen langt på vei er bestemt, ifølge Sindre.
Systemet som ligger til grunn for løsningen er Apples og Googles Exposure Notification System (ENS). Dette er et rammeverk som finnes på din telefon, og som kan aktiveres for å starte digital kontaktsporing. Smittestopp er bygget på toppen av dette rammeverket. Det er også lansert en Express-versjon, hvor man kan bruke rammeverket uten en egen app, men dette er ikke tilgjengelig for oss utenfor USA enda.
– Når ENS er aktivert på din telefon, vil det starte å registrere kontakt med andre telefoner som har rammeverket aktivert. Dette blir kun lagret desentralisert på telefonen til hver enkelt bruker, sier Braaten.
Systemet går kort fortalt ut på at telefonen genererer en “dagnøkkel” en gang i døgnet. Denne er hemmelig, og lagres kun på din telefon, inntil du eventuelt skal melde deg som smittet. På bakgrunn av denne genererer telefonen nye “kontaktnøkler” som utveksles med telefoner du er i nærheten av ved hjelp av Bluetooth. Disse byttes hvert 10.-15. minutt. På hver enkelt telefon blir det da lagret hvilke kontaktnøkler de har fanget opp fra andre telefoner, sammen med informasjon om tidspunkt og signalstyrke. Det er ingenting i kontaktnøkkelen som kan fortelle deg hvem du har vært i kontakt med.
Når noen melder seg smittet, så er det de inntil da hemmelige “dagnøklene” som blir delt med andre telefoner. Ved jevne mellomrom blir lister av nye “dagnøkler” som er knyttet til smitte tilgjengeliggjort til alle som har appen. Sammen med hver dagnøkkel, så kommer det med litt informasjon om når denne nøkkelen har vært smittsom, som er basert på dato du oppgir at du fikk symptomer. Hvis du ikke ønsker eller kan oppgi denne datoen, så benytter vi dato for avlagt prøve i stedet. Ut fra disse, kan din telefon beregne alle “kontaktnøklene” som kan ha blitt laget på bakgrunn av hver “dagnøkkel”, og dermed fange opp kontakt med en som er smittet ved å se etter treff i “kontaktnøkler” registrert under kontaktsporingen via Bluetooth. Ved å se på varigheten for kontakten, ut fra tidspunkt registrert, og estimert avstand ut fra signalstyrke, har appen på din telefon mulighet til å avgjøre om dette er en kontakt som er tilstrekkelig til å gi deg et varsel.
Desentralisert lagring
Dagnøklene fra alle som har sendt melding om smitte blir samlet inn i back end-løsningen, blir altså lastet ned av alle telefonene som har appen. Dette er fordi det er kun din telefon som kan vite hvilke nøkler den har vært i kontakt med. Telefonen din må da også sjekke alle nye dagnøklene til de som har meldt seg smittet opp mot dataene telefonen har lagret for å avgjøre om du har vært i nærheten av noen som har fått påvist smitte.
– Det er dette som rett og slett kan kalles for desentralisert kontaktsporing. Det er kun din egen telefon som vet hvilke andre app-brukere du har vært i kontakt med. Dataene slettes etter 14 dager, sier Sindre Møgster Braaten.
Backend-løsningen
Smittestopp er da avhengig av å ha et sted å dytte opp “dagnøkler” ved bekreftet smitte, samt en mekanisme for å få distribuert alle dagnøkler til telefoner som har appen. Det er her "backend”-løsningen kommer inn i bildet, altså serveren som har kontroll over databasen over alle “dagnøkler” som er knyttet til smitte. Denne løsningen ligger på to datasentre utenfor København, og driftes av Netcompany, som også har utviklet appen, sier Sindre.
Nye “dagnøkler” som lastes opp hit blir ved jevne mellomrom publisert i lister som tilgjengeliggjøres for appen. Etter 14 dager vil dagnøkler, som er lastet opp for å varsle andre, bli slettet fra backend-løsningen.
Siden listene over “dagnøkler” ikke publiseres kontinuerlig, og at appen også bare spør etter listene ved jevne mellomrom, så kan det være litt forsinkelse fra noen velger å varsle om sin smitte, til de som har vært i kontakt får et varsel. Det er hensyn til batteriforbruk som gjør at appen ikke sjekker listene kontinuerlig.
Verifiseringsløsningen
Vi ønsker ikke at hvem som helst kan varsle om smitte via appen, uten at smitten har blitt bekreftet. Det er her den største lokale tilpasningen til ENS-rammeverket kommer inn. Hvert land har sin måte å bekrefte smitte hos personer før de får lov til å varsle via sin nasjonale app. Det er her verifiseringsløsningen kommer inn i bildet. Her har vi i Norge gått for en løsning som er veldig lik den danske, hvor vi benytter et sentralt register over personer som er smittet. Registeret heter Meldingssystem for smittsomme sykdommer (MSIS).
For å melde deg som smittet, må du først gi et ekstra samtykke for denne funksjonen, og så logge deg inn via ID-porten slik at verifiseringsløsningen kan kontrollere at det finnes et positivt prøvesvar i MSIS for deg. Prøven må være tatt innen de siste to ukene, og du må være minst 16 år. Hvis ikke disse kriteriene er tilfredsstilt, vil MSIS svare at det ikke ble funnet noe gyldig positivt prøvesvar. MSIS vil også oppgi dato for avlagt prøve, hvis en slik prøve ble funnet. Det er herfra appen får vite prøvedatoen som blir brukt for å beregne “smittsomhet” for her dagnøkkel, hvis den ikke har noe dato for symptomer tilgjengelig.
– Denne sjekken blir grunnlaget for å gi ut på det som norsk blir kalt en «sikkerhetsbillett» eller «access token» på engelsk, som er den tingen appen trenger å ha for å få tilgang til å laste opp dagnøklene til den sentraliserte back end-løsningen, sier Sindre.
Lagring av data i verifiseringsløsningen
For å unngå misbruk, blir det også lagret litt data i verifiseringsløsningen. Fra ID-porten får man et unikt pseudonym for hver enkelt person. Utenfor ID-porten selv, er det ikke noe måte å spore dette tilbake til fødselsnummer. Dette pseudonymet brukes til å spore hvor mange ganger du som enkeltperson har prøvd å verifisere smitte for å varsle via appen, og lagres i 24 timer. Det er for å unngå at du for eksempel kan melde deg smittet flere ganger fra ulike telefoner.
– Man kan for eksempel tenke seg at elever kan prøve å ta en hel skoleklasse ut av skolen ved å melde seg smittet via mange enheter. Derfor tillater vi tre forsøk på verifiseringer i døgnet. Dette er for å sikre at du har mulighet til å prøve på nytt dersom noe skulle gå galt når du vil melde deg som smittet. Og hvis du for eksempel har både en privat telefon og en jobbtelefon, så har du muligheten til å melde om smitte fra begge to, forklarer Sindre.
Oppslagene i MSIS vil bli ansett som å være innsyn for deg som ønsker å verifisere deg. Hvis MSIS svarer at det finnes et gyldig positivt prøvesvar for deg, så vil denne utleveringen logges som et innsyn i systemet. Da logges det at du som person har bedt om å få innsyn i denne informasjonen MSIS, i henhold til MSIS-forskriften. Dette er for å sikre sporbarhet på hvor data fra MSIS blir utlevert.
Åpen kildekode
Smittestopp i Norge er bygget på åpen kildekode. Det betyr at hvem som helst kan gå inn og sjekke koden og komme med forslag til forbedringer. Du kan se kildekoden her:
- https://github.com/folkehelseinstituttet/Fhi.Smittestopp.App
- https://github.com/folkehelseinstituttet/Fhi.Smittestopp.Backend
- https://github.com/folkehelseinstituttet/Fhi.Smittestopp.Verification
- https://github.com/folkehelseinstituttet/Fhi.Smittestopp.Documentation
Prosessen for å bygge Smittestopp
Lurer du på hvordan arbeidet med Smittestopp foregikk?
Mer informasjon om teknologi og personvern
Noen av de beste kildene til teknologi og personvern ellers er disse: