Sikkerhet & personvern
Lumi håndterer sikkerhet og personvern automatisk — du trenger ikke gjøre noe spesielt i din integrasjon.
PII-maskering
API-et maskerer automatisk personlig identifiserbar informasjon (PII) i fritekst-svar. Maskering skjer ved lagring, slik at sensitive data aldri finnes i klartekst i databasen.
| Mønster | Eksempel | Erstatning |
|---|---|---|
| Fødselsnummer | 12345678901 | [FØDSELSNUMMER FJERNET] |
| Nav-ident | A123456 | [NAVIDENT FJERNET] |
| E-post | test@nav.no | [E-POST FJERNET] |
| Telefonnummer | 12345678 | [TELEFON FJERNET] |
| Kortnummer | 1234 5678 9012 3456 | [KORTNUMMER FJERNET] |
| Kontonummer | 1234.56.12345 | [KONTONUMMER FJERNET] |
| Hemmelig adresse | «hemmelig adresse» | [HEMMELIG ADRESSE] |
Dobbel maskering
PII-redaksjon kjøres både ved lagring og ved lesing. Selv om et mønster slipper gjennom ved lagring, fanges det ved visning.
Rate limiting
API-et håndhever rate limiting på flere nivåer for å beskytte mot misbruk:
| Kategori | Grense | Beskrivelse |
|---|---|---|
| Innsending | 100 req/min | Per kaller-app |
| Innsending (per bruker) | 15 req/min | Per hashet sluttbruker innenfor samme kaller-app |
| Analyse | 300 req/min | Per kilde-IP for dashboard-trafikken |
| Eksport | 30 req/min | Per kilde-IP for dashboard-trafikken |
| Global | 1000 req/min | Alle kall samlet |
Nøkling av analyse og eksport
Analyse- og eksport-endepunktene autentiseres i Ktors auth-fase, som kjører etter rate limit-pluginen. Den validerte klient-identiteten er derfor ikke tilgjengelig når rate limit-nøkkelen beregnes, så disse endepunktene nøkles på kilde-IP. På NAIS brukes første IP i X-Forwarded-For-headeren. Innsending nøkles derimot per kaller-app, og per hashet sluttbruker, fordi identiteten settes i en route-scoped plugin før rate limit-pluginen.
Inndatavalidering
Alle submissions valideres nå strengt i API-et før lagring. Dette inkluderer lengdegrenser og formatsjekker på alle relevante felter, URL-validering med krav om https, validering av pathname-format, og begrensninger på størrelse/dybde i debug-objektet.
For integratører betyr dette at ugyldig payload avvises tidlig med tydelig valideringsfeil, i stedet for å bli lagret med uforutsigbar struktur.
Penetrasjonstest
Lumi har gjennomgått en penetrasjonstest utført av Team SåPe, Navs interne sikkerhetstest-team.
Team SåPe gjennomførte testen i februar 2026. Testingen inkluderte kildekodegjennomgang av både backend og frontend (whitebox).
Hovedresultat
Ingen sårbarheter med høy eller kritisk alvorlighetsgrad ble funnet. Fundamentale sikkerhetsmekanismer som autentisering og autorisasjon fungerer etter hensikten.
Rapporten fremhever at React sin innebygde auto-escaping gir god beskyttelse mot XSS, understøttet av tiltak mot CSV-injeksjon. Totalt ble 5 funn identifisert — 2 med middels alvorlighetsgrad og 3 informasjonelle. Alle funn er utbedret per mars 2026.
Oppfølgingen omfattet blant annet strengere inndatavalidering i API-et, HTML-sanitering av kontekstfelt før lagring, samt URL-hardening i dashboardet der kun gyldige https://*.nav.no-lenker vises som klikkbare.
Risiko- og sårbarhetsanalyse (ROS)
Det er gjennomført risiko- og sårbarhetsanalyse (ROS) for Lumi. Analysen holdes oppdatert ved vesentlige endringer.
Åpne ROS-analysen (krever Nav-innlogging).
Se også
- Bruksvilkår — vilkår, ansvar og sjekkliste for bruk av Lumi
- Koble til backend — token exchange og NAIS-oppsett
- Tilgang — hvem som har tilgang til dashboardet
