3.6 Autentisering, tilgangskontroll og passord
Tofaktor-autentisering, tilgangskontroll, og hvorfor salting + hashing av passord virker mot phishing og brute-force.
Nivå 2 — dette skal du kunne. Kapitlet hører til seksjon 3, datasikkerhet, en av de fire seksjonene som hver må bestås for seg. Temaet er ikke like garantert som mål/tiltak og nøkkelretning, men 83 % er høyt nok til at det er dårlig betalt å hoppe over det.
Slik kommer den: oftest som svarform F2 (sant/usant-matrise: én rad per påstand, du krysser sant eller usant for hver), og som F1 («velg ett eller flere alternativer»).
De to tingene som skiller bestått fra bom her:
1. Autentisering er ikke autorisasjon. Autentisering svarer på «hvem er du?», autorisasjon på «hva får du lov til?». Å bekrefte identiteten din gir deg ikke tilgang til noe som helst i seg selv.
2. Salt er ikke det samme som hashing. Hashing hindrer at lagrede passord kan leses ut. Salt hindrer noe annet: at ferdiglagde oppslagstabeller kan brukes, og at to like passord ser like ut i basen.
Tidsbruk: 45 minutter, fordelt på tre løkker med tidsanslag.
Forkunnskaper — sist du var her
Dette kapitlet bygger på kap. 3.1 og kap. 3.4. Her er det du trenger, ferdig oppfrisket:
1. Tilgangskontroll er et tiltak, ikke et mål. Målet den tjener, er konfidensialitet — at bare de rette får lese.
2. Autentisitet er et mål: at noe eller noen virkelig er den de utgir seg for. Autentisering er tiltaket som skal gi det målet.
3. Hash-verdiens tre egenskaper, fra kap. 3.4:
- Samme innhold gir alltid samme verdi.
- Ett endret bit gir en helt annen verdi.
- Verdien kan ikke regnes tilbake til innholdet — funksjonen går bare én vei.
Den siste egenskapen er hele grunnlaget for passordlagring, og den er derfor kjernen i dette kapitlet.
4. Minste privilegium, fra kap. 3.2: hver bruker skal ha akkurat de rettighetene oppgaven krever, og ikke flere.
Løkke 1 — Hvem er du, og hva får du lov til? (~13 min)
Du viser legitimasjon i resepsjonen på et sykehus. Vakten ser at du er den du sier. Det betyr ikke at du får gå inn på operasjonsstua.
De to tingene er helt atskilte:
- Autentisering er å bekrefte hvem du er.
- Autorisasjon er å avgjøre hva du får lov til.
Det er lett å blande dem, fordi de skjer rett etter hverandre når du logger inn. Men et system kan autentisere deg perfekt og likevel nekte deg alt — og det er ofte helt riktig.
Å bekrefte at noen er den de utgir seg for å være.
Det skjer ved at brukeren legger fram ett eller flere bevis: et passord, en kode fra telefonen, et fingeravtrykk.
Målet autentisering tjener, er autentisitet — og indirekte konfidensialitet, siden feil person ikke slipper inn.
Den faste feilslutningen: å tro at autentisering gir tilgang. Den svarer bare på spørsmålet hvem. Hva du så får lov til, avgjøres av autorisasjonen, og det er et helt eget spørsmål.
Tilgangskontroll er mekanismen som håndhever avgjørelsen i praksis.
Rekkefølgen er alltid den samme: først autentisering, så autorisasjon. Systemet må vite hvem du er før det kan vite hva du skal få lov til.
Bærende prinsipp: minste privilegium — hver bruker får akkurat de rettighetene oppgaven krever. Da blir skaden mindre både ved feil og ved en overtatt konto.
Den faste feilslutningen: å behandle de to som ett. En sykepleier og en regnskapsfører kan autentiseres på nøyaktig samme måte og likevel ha helt ulike rettigheter.
Tre hendelser på et sykehus. Er det autentiseringen eller autorisasjonen som har sviktet i hvert tilfelle?
a) En angriper gjetter en ansatts passord og logger inn som vedkommende.
b) En kantinemedarbeider kan åpne alle pasientjournaler i systemet.
c) En tidligere ansatt har fortsatt aktiv konto seks måneder etter at hen sluttet.
Mottiltak: sterkere passordkrav og tofaktor, som gjør et gjettet passord alene utilstrekkelig.
b) Autorisasjonen sviktet. Innloggingen var helt korrekt: kantinemedarbeideren er den hen utgir seg for. Feilen er at vedkommende har rettigheter jobben ikke krever.
Mottiltak: minste privilegium — rettigheter tildeles etter rolle og oppgave.
c) Begge deler, men først og fremst autorisasjonen. Kontoen skulle vært deaktivert. Så lenge den er aktiv, autentiserer systemet en person som ikke lenger skal ha noen rettigheter i det hele tatt.
Mottiltak: rutiner for avslutning av tilgang når et arbeidsforhold opphører.
Fasit: a) autentisering, b) autorisasjon, c) autorisasjon (rettighetene skulle vært fjernet).
Kontrollspørsmålet som avgjør alle tre: var det feil person, eller feil rettigheter? Feil person er autentisering. Feil rettigheter er autorisasjon.
(Innsteg — de to begrepene.) Forklar forskjellen på autentisering og autorisasjon med ett eksempel på hver.
Er det autentiseringen eller autorisasjonen som har sviktet i hvert tilfelle?
a) En student får lese en annen students karakterer.
b) Noen logger inn på din konto med et passord de har funnet i en lekkasje.
c) En vikar har fortsatt tilgang til lønnssystemet etter at vikariatet er over.
Løkke 2 — Faktorene, og hva som gjør tofaktor sterk (~14 min)
Et passord alene er svakt. Det kan gjettes, lures ut av deg, eller lekke i et innbrudd hos en tjeneste du bruker.
Tofaktor-autentisering løser dette ved å kreve to bevis — og de må være av ulik type. Det er den detaljen oppgavene tester.
| Type | Hva det er | Eksempler | Svakhet |
|---|---|---|---|
| Noe du vet | En hemmelighet i hodet | Passord, PIN-kode | Kan gjettes, lures ut, lekke |
| Noe du har | En fysisk gjenstand | Mobiltelefon, kodebrikke, smartkort | Kan mistes eller stjeles |
| Noe du er | En kroppslig egenskap | Fingeravtrykk, ansikt, stemme | Kan ikke byttes ut hvis den lekker |
Regelen for tofaktor: de to bevisene må være av ulik type.
- Passord og kode på telefonen → reell tofaktor (vet + har).
- Passord og sikkerhetsspørsmål → ikke tofaktor. Begge er «noe du vet», altså én faktor brukt to ganger.
- Fingeravtrykk og PIN på samme telefon → tofaktor (er + vet).
Hvorfor kombinasjonen virker: de to typene har helt ulike svakheter. Et lekket passord hjelper ikke angriperen som ikke har telefonen din, og en stjålet telefon hjelper ikke den som ikke kan koden.
Hva tofaktor demper konkret:
1. Lekkede passord. Et passord fra en lekkasje er ikke nok alene.
2. Gjetting og uttømmende søk. Selv et riktig gjettet passord åpner ingenting.
3. Phishing. En falsk innloggingsside som fanger passordet ditt, mangler fortsatt den andre faktoren.
Den faste feilslutningen: å tro at «to passord» eller «passord pluss sikkerhetsspørsmål» er tofaktor. Det er samme type bevis to ganger — og en angriper som har lurt deg for det ene, har som regel også det andre.
Kryss av alle kombinasjonene som er reell tofaktor-autentisering, og begrunn hvert av de fem.
a) Passord og engangskode sendt til mobilen
b) Passord og svar på et sikkerhetsspørsmål
c) Fingeravtrykk og PIN-kode
d) Brukernavn og passord
e) Kodebrikke og passord
Forklar hvorfor tofaktor-autentisering demper phishing, altså angrep der en falsk innloggingsside fanger opp passordet ditt.
Løkke 3 — Passordlagring: hash og salt (~16 min)
En tjeneste med en million brukere må kunne kontrollere passordene deres. Den enkleste løsningen er å lagre dem i en tabell.
Det er også den verste. Skjer det et innbrudd, er alle passordene borte på én gang — og siden folk gjenbruker passord, er også kontoene deres i andre tjenester i fare.
Løsningen bygger på hash-verdiens enveisegenskap fra kap. 3.4.
— naturlig pausepunkt —
Prosedyren ved registrering:
1. Bruker velger passord
2. Systemet lager et tilfeldig SALT, unikt for denne brukeren
3. Systemet regner ut hash(passord + salt)
4. Systemet lagrer SALT og HASH-VERDI — aldri passordetProsedyren ved innlogging:
1. Bruker taster passord
2. Systemet henter brukerens lagrede SALT
3. Systemet regner ut hash(passord + salt) på nytt
4. Stemmer verdien med den lagrede? -> innlogging godkjentHvorfor dette virker: hash-funksjonen går bare én vei. Systemet kan kontrollere passordet uten noen gang å ha lagret det, og et innbrudd gir angriperen hash-verdier, ikke passord.
Hva hashing alene IKKE stopper: en angriper kan regne ut hash-verdiene for millioner av vanlige passord på forhånd og slå opp i listen. Slike oppslagstabeller finnes ferdig laget.
Det er her saltet kommer inn.
En tilfeldig verdi som legges til passordet før hashing, og som er unik for hver bruker.
Saltet er ikke hemmelig — det lagres åpent ved siden av hash-verdien. Det er heller ikke poenget at det skal være hemmelig.
De to tingene saltet gjør:
1. Ferdiglagde oppslagstabeller blir ubrukelige. En tabell over hash-verdier for vanlige passord passer ikke lenger, fordi hver bruker har sitt eget salt. Angriperen må regne på nytt for hver enkelt bruker.
2. To like passord får ulik lagret verdi. Uten salt ville to brukere med samme passord hatt identiske hash-verdier i basen — og det avslører både hvem som deler passord, og hvilke passord som er vanlige.
Hva saltet ikke gjør: det gjør ikke et svakt passord sterkt. Har du valgt et passord som står på de tusen vanligste listene, kan en angriper fortsatt prøve seg gjennom dem — bare for én bruker om gangen.
Den faste feilslutningen: å tro at salt er et alternativ til hashing. De to gjør ulike jobber, og begge trengs.
En angriper stjeler en database med brukernavn, salt og hash-verdier for 100 000 brukere. Hva kan angriperen gjøre, og hva har saltet gjort vanskeligere?
Hva angriperen fortsatt kan gjøre: gjette. Angriperen velger et kandidatpassord, legger til en brukers salt, regner ut hash-verdien og sammenligner. Stemmer den, er passordet funnet — for den ene brukeren.
Hva saltet har gjort vanskeligere:
Uten salt kunne angriperen regnet ut hash-verdien for «passord123» én gang og slått den opp mot alle 100 000 radene samtidig. Alle som hadde det passordet, ville falt på ett forsøk.
Med salt må angriperen regne ut hash-verdien for «passord123» på nytt for hver enkelt bruker, siden hvert salt er ulikt. Arbeidet er 100 000 ganger større for samme resultat.
Og den andre virkningen: uten salt ville to brukere med samme passord hatt identiske verdier i basen. Angriperen kunne sett hvilke passord som var vanligst, og angrepet dem først. Med salt ser alle rader ulike ut.
Svar: saltet gjør ferdiglagde oppslagstabeller ubrukelige, og skjuler at to brukere har samme passord. Det gjør ikke et svakt passord sterkt.
Den praktiske konsekvensen for deg: velg lange, unike passord. Saltet beskytter mot masseangrep, men ikke mot at nettopp ditt passord står på en liste over de tusen vanligste.
Vurder hver påstand som sann eller usann, og begrunn hver rad.
| # | Påstand | Sant/usant |
|---|---|---|
| a | Salting gjør at to like passord får ulik lagret verdi | |
| b | Saltet må holdes hemmelig for at det skal virke | |
| c | Et system som kan sende deg passordet ditt, lagrer det i klartekst | |
| d | Hashing gjør et svakt passord sterkt |
Svarform F1. Kryss av alle påstandene som stemmer.
a) Autentisering svarer på «hvem er du?», autorisasjon på «hva får du lov til?».
b) Passord og sikkerhetsspørsmål er tofaktor-autentisering.
c) Passord bør lagres som hash med et salt som er unikt per bruker.
d) Tofaktor gjør et lekket passord utilstrekkelig alene.
e) Tilgangskontroll er et sikkerhetsmål.
b) Galt. Begge er noe du vet, altså samme faktortype brukt to ganger. Reell tofaktor krever to ulike typer — for eksempel noe du vet pluss noe du har.
c) Riktig. Hashing hindrer at passordet kan leses ut av basen; saltet gjør ferdiglagde oppslagstabeller ubrukelige og skjuler at to brukere har samme passord.
d) Riktig. Det lekkede passordet er bare den ene faktoren. Uten telefonen, kodebrikken eller fingeravtrykket kommer angriperen ikke inn.
e) Galt. Tilgangskontroll er et tiltak — noe man setter opp. Målet den tjener, er konfidensialitet. Dette er felle #1, som du kjenner fra kap. 3.1.
Fasit: a, c og d.
Om formen: tre av fem riktige, og de to gale er de to faste fellene i dette temaet — «to av samme type er tofaktor» og forvekslingen av mål og tiltak. Det er nøyaktig sammensetningen et virkelig sett bruker.
Vurder hver påstand som sann eller usann, og begrunn hver rad.
| # | Påstand | Sant/usant |
|---|---|---|
| a | Rekkefølgen er alltid autentisering før autorisasjon | |
| b | Minste privilegium reduserer skaden ved en overtatt konto | |
| c | Fingeravtrykk er faktortypen «noe du har» | |
| d | Autentisering gir automatisk tilgang til alle systemets funksjoner |
En tjeneste med 500 000 brukere blir hacket, og databasen med brukernavn, salt og hash-verdier lekker. Kryss av alle påstandene som stemmer, og begrunn hvert av de fem.
a) Angriperen kan lese passordene direkte ut av basen.
b) Angriperen kan gjette passord og kontrollere gjetningene mot basen.
c) Saltet gjør at ferdiglagde oppslagstabeller ikke kan brukes.
d) Brukere med svake passord er fortsatt utsatt.
e) Saltet må byttes for at basen skal være trygg etter lekkasjen.
Koble hvert element (1–6) til riktig kategori (A–C).
1. Passord · 2. Kodebrikke · 3. Fingeravtrykk · 4. PIN-kode · 5. Mobiltelefon med engangskode · 6. Ansiktsgjenkjenning
A. Noe du vet · B. Noe du har · C. Noe du er
1. Å blande autentisering og autorisasjon. Autentisering svarer på «hvem er du?», autorisasjon på «hva får du lov til?». Kontrollspørsmålet ved en hendelse: var det feil person, eller feil rettigheter?
2. Å tro at to av samme faktortype er tofaktor. Passord og sikkerhetsspørsmål er begge «noe du vet». Reell tofaktor krever to ulike typer.
3. Å regne brukernavn som en faktor. Brukernavnet er en identifikator, ikke et hemmelig bevis. Brukernavn og passord er enfaktor-autentisering.
4. Å tro at saltet må være hemmelig. Det lagres åpent. Poenget er at det er unikt per bruker, ikke at det er skjult.
5. Å tro at hashing gjør et svakt passord sterkt. Hashing beskytter den lagrede verdien. Et svakt passord kan fortsatt gjettes, én bruker om gangen.
6. Å blande fingeravtrykk inn under «noe du har». Det er «noe du er» — og forskjellen er reell: en kodebrikke kan byttes ut, et fingeravtrykk kan ikke.
7. Å krysse av tilgangskontroll som et mål. Det er et tiltak (felle #1). Målet den tjener, er konfidensialitet.
8. Å tro at tofaktor fjerner phishing helt. Den demper angrepet kraftig, men en angriper som lurer deg til å taste engangskoden i samme øyeblikk, kan bruke den videre.
Begrepsbank til eksamen
Begrepsbanken er flashcard- og repetisjonsstoff — den gjentar det du nettopp har lest. Hopp trygt over ved førstegangslesing; tidsanslaget for kapitlet gjelder kjernestoffet.
Autorisasjon: «hva får du lov til?» — å tildele rettigheter.
Rekkefølgen er alltid autentisering først: systemet må vite hvem du er før det kan slå opp hva du skal få lov til.
Kontrollspørsmålet ved en hendelse: var det feil person, eller feil rettigheter? Feil person er autentisering; feil rettigheter er autorisasjon.
Mekanismen som håndhever autorisasjonen i praksis: hvem får lese, skrive, slette eller administrere hva.
Det er et tiltak, ikke et mål. Målet den tjener, er først og fremst konfidensialitet, og også integritet — den som ikke får skrive, kan ikke endre.
Bærende prinsipp: minste privilegium. Hver bruker får akkurat de rettighetene oppgaven krever.
| Type | Eksempler | Svakhet |
|---|---|---|
| Noe du vet | Passord, PIN | Kan gjettes, lures ut, lekke |
| Noe du har | Telefon, kodebrikke, smartkort | Kan mistes eller stjeles |
| Noe du er | Fingeravtrykk, ansikt, stemme | Kan ikke byttes ut ved lekkasje |
Den siste svakheten er verdt å merke seg: mister du kodebrikken, får du en ny. Lekker fingeravtrykket ditt, er det lekket for godt.
De to bevisene må være av ulik type.
| Kombinasjon | Tofaktor? |
|---|---|
| Passord + engangskode på mobil | Ja (vet + har) |
| Passord + sikkerhetsspørsmål | Nei (vet + vet) |
| Fingeravtrykk + PIN | Ja (er + vet) |
| Brukernavn + passord | Nei (brukernavn er ikke en faktor) |
Den faste feilen er å telle to hemmeligheter i hodet som to faktorer. En angriper som har lurt deg for det ene, har som regel også det andre.
Et brukernavn er en identifikator — det sier hvem du påstår å være, ikke at du er det.
I de fleste systemer er brukernavn dessuten offentlig kjent eller lett å gjette: fornavn.etternavn, en e-postadresse, et studentnummer.
Derfor er «brukernavn og passord» enfaktor-autentisering. Bare passordet er et bevis.
1. Lekkede passord. Et passord fra en lekkasje er ikke nok alene.
2. Gjetting og uttømmende søk. Et riktig gjettet passord åpner ingenting.
3. Phishing. Den falske siden fanger passordet, men ikke den fysiske faktoren.
Det ærlige forbeholdet: tofaktor demper phishing, den fjerner den ikke. En angriper som lurer deg til å taste engangskoden i samme øyeblikk, kan bruke den videre. Koder som er bundet til en bestemt nettadresse, er derfor sterkere enn koder du skriver av manuelt.
Den ufravikelige regelen. Et system som kan sende deg passordet ditt, lagrer det i lesbar form — og det er en alvorlig svakhet.
Et riktig bygd system tilbyr tilbakestilling, ikke gjenutsending: du får en lenke som lar deg sette et nytt passord, fordi systemet ikke kan hente fram det gamle.
Dette er den enkleste praktiske testen på om en tjeneste håndterer passord forsvarlig.
REGISTRERING:
1. lag et tilfeldig SALT, unikt for brukeren
2. regn ut hash(passord + salt)
3. lagre SALT og HASH-VERDI
INNLOGGING:
1. hent brukerens lagrede SALT
2. regn ut hash(passord + salt) på nytt
3. sammenlign med den lagrede verdienSystemet kan altså kontrollere passordet uten noen gang å ha lagret det. Det er enveisegenskapen til hash-funksjonen som gjør dette mulig.
1. Gjør ferdiglagde oppslagstabeller ubrukelige. Angriperen må regne på nytt for hver enkelt bruker, siden hvert salt er ulikt.
2. Skjuler at to brukere har samme passord. Uten salt ville identiske passord gitt identiske verdier i basen.
Saltet er ikke hemmelig — det lagres åpent ved siden av hash-verdien. Poenget er unikhet, ikke hemmelighold.
Og det gjør ikke et svakt passord sterkt: styrken må komme fra passordet selv.
En ferdig utregnet liste over hash-verdier for millioner av vanlige passord.
Uten salt kan en angriper slå opp en stjålet hash-verdi direkte i tabellen og finne passordet på et øyeblikk — og gjøre det for alle brukere samtidig.
Med salt passer tabellen ikke lenger. Angriperen må regne ut verdiene på nytt for hver bruker, og arbeidet vokser med antall brukere i stedet for å være likt for alle.
Har en base med salt og hash-verdier lekket, er ikke passordene lest — men de kan gjettes, én bruker om gangen.
Det som må skje: alle brukere bytter passord. Og de må bytte det i alle andre tjenester der de har gjenbrukt det.
Det som ikke hjelper: å bytte saltene. Saltet var aldri hemmelig, og et nytt salt beskytter ikke et passord som allerede er gjettet.
Dette er hovedgrunnen til at passord ikke skal gjenbrukes: en lekkasje ett sted blir en lekkasje overalt.
Å prøve kandidatpassord til ett gir riktig hash-verdi.
Arbeidsmengden avhenger av passordets lengde og variasjon, ikke av hvor god hash-funksjonen er. Et kort passord av vanlige ord faller uansett; et langt, unikt passord er praktisk umulig å treffe.
Derfor er lengde det viktigste enkeltrådet: hvert ekstra tegn ganger antall muligheter opp, på samme måte som hvert ekstra bit dobler en nøkkels mulighetsrom (kap. 3.3).
Angrep der offeret lures til å oppgi opplysninger selv — typisk via en e-post eller melding som leder til en falsk innloggingsside.
Mål som brytes: autentisitet (siden utgir seg for å være en annen) og konfidensialitet (passordet lekker).
Mottiltakene er todelte: tofaktor, som gjør det stjålne passordet utilstrekkelig, og opplæring, som gjør at folk kjenner igjen mønsteret. Ingen teknisk løsning fjerner behovet for det siste.
Hver bruker og hvert program får akkurat de rettighetene oppgaven krever — ikke flere.
Gevinsten er dobbel: skaden blir mindre både når noen gjør en feil, og når en konto blir overtatt.
En praktisk følge: ingen bør arbeide daglig med en konto som har fulle administratorrettigheter. Klikker den kontoen på noe skadelig, har skadevaren de samme rettighetene.
At rettigheter tildeles roller — sykepleier, saksbehandler, regnskapsfører — i stedet for til hver enkelt person.
Brukeren får rettighetene som følger av rollen, og bytter man jobb, bytter man rolle.
Gevinsten er at rettighetene blir mulige å holde oversikt over. Den vanligste svikten i praksis er at gamle roller ikke fjernes: en ansatt som har byttet oppgaver flere ganger, ender med å ha samlet opp alt.
Rutinen for å fjerne rettigheter når et arbeidsforhold eller oppdrag opphører.
Svikter den, står kontoer aktive lenge etter at de skulle vært stengt — og en slik konto er attraktiv nettopp fordi ingen følger med på den.
Dette er en autorisasjonssvikt, ikke en autentiseringssvikt: personen er den hen utgir seg for, men skulle ikke lenger hatt noen rettigheter.
Bruker du samme passord i flere tjenester, blir én lekkasje til mange innbrudd.
Angriperen som har gjettet passordet ditt fra en lekket base, prøver det samme passordet i e-post, nettbank og sosiale medier — automatisk, og for millioner av brukere samtidig.
Mottiltakene er unike passord per tjeneste (i praksis med en passordbehandler) og tofaktor, som gjør det gjenbrukte passordet utilstrekkelig alene.
Uforutsigbarhet er det nest viktigste. Et passord som står på en liste over vanlige passord, faller uansett hvor komplisert det ser ut.
Unikhet per tjeneste er det tredje: styrken hjelper lite hvis samme passord brukes overalt.
Begrensningen: den kan ikke byttes ut. Lekker en database med fingeravtrykk, kan de berørte ikke få nye fingre.
Derfor lagres biometriske data som regel lokalt på enheten og ikke sentralt, og biometri brukes vanligvis som én faktor sammen med noe du vet — ikke som eneste bevis.
Det er ikke bare brukere som må bekrefte hvem de er. En nettleser må også vite at den snakker med rett tjener.
Den autentiseringen skjer med sertifikat, ikke med passord — se kap. 3.4.
Prinsippet er det samme: en part legger fram et bevis som bare den rette kan ha. For mennesker er det noe du vet, har eller er; for tjenere er det en privat nøkkel bundet til en identitet.
Dette kapitlet er skrevet av Anthropics toppmodeller (Claude Opus og Claude Fable) og er foreløpig ikke manuelt gjennomgått — kvalitetskontrollen gjøres av uavhengige KI-agenter, og innmeldte feil rettes fortløpende. Funnet en feil? Meld fra, så retter vi den. Les mer om hvordan innholdet lages.
Skolesaga er en uavhengig læringsressurs og er ikke tilknyttet eller godkjent av Universitetet i Oslo. Dette er ikke offisielt studiemateriell. Les mer.