Tilbake
3.6

3.6 Autentisering, tilgangskontroll og passord

Tofaktor-autentisering, tilgangskontroll, og hvorfor salting + hashing av passord virker mot phishing og brute-force.

45 min
8 oppgaver
Autentiseringtilgangskontrollpassord
Din fremgang i kapitlet
0 / 8 oppgaver
Kapitlets plass i kurset

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.

Notasjons- og konstruksjonsliste

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.

Autentisering

Å 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.

Autorisasjon og tilgangskontroll
Autorisasjon er avgjørelsen av hva en bekreftet bruker får lov til: lese, skrive, slette, administrere.

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.

✏️Eksempel 1: Hvilket av de to sviktet?

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.

a) Autentiseringen sviktet. Systemet trodde det snakket med den ansatte, men gjorde det ikke. Rettighetene var trolig helt riktige — de tilhørte bare feil person i øyeblikket.

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.

📝Oppgave 1

(Innsteg — de to begrepene.) Forklar forskjellen på autentisering og autorisasjon med ett eksempel på hver.

📝Oppgave 2
Sjanger G

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.

📜De tre faktortypene
TypeHva det erEksemplerSvakhet
Noe du vetEn hemmelighet i hodetPassord, PIN-kodeKan gjettes, lures ut, lekke
Noe du harEn fysisk gjenstandMobiltelefon, kodebrikke, smartkortKan mistes eller stjeles
Noe du erEn kroppslig egenskapFingeravtrykk, ansikt, stemmeKan 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.

📝Oppgave 3
Sjanger G

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

📝Oppgave 4
Sjanger G

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 —

📜Slik lagres et passord riktig
Aldri i klartekst. Det er den ufravikelige regelen. Et system som kan sende deg passordet ditt på e-post, lagrer det i klartekst — og det er en alvorlig svakhet.

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 passordet

Prosedyren 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 godkjent

Hvorfor 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.

Salt

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.

✏️Eksempel 2: Hva salt faktisk stopper

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 IKKE kan gjøre: lese passordene direkte. Hash-funksjonen går bare én vei, så verdiene kan ikke regnes tilbake.

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.

📝Oppgave 5
Sjanger G

Vurder hver påstand som sann eller usann, og begrunn hver rad.

#PåstandSant/usant
aSalting gjør at to like passord får ulik lagret verdi
bSaltet må holdes hemmelig for at det skal virke
cEt system som kan sende deg passordet ditt, lagrer det i klartekst
dHashing gjør et svakt passord sterkt

✏️Eksempel 3: Eksamensnivå — autentisering, tofaktor og passord

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.

a) Riktig. Dette er kjerneskillet i kapitlet. Systemet må vite hvem du er før det kan avgjøre hva du får lov til.

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.

📝Oppgave 6
Eksamensnivå, sjanger G

Vurder hver påstand som sann eller usann, og begrunn hver rad.

#PåstandSant/usant
aRekkefølgen er alltid autentisering før autorisasjon
bMinste privilegium reduserer skaden ved en overtatt konto
cFingeravtrykk er faktortypen «noe du har»
dAutentisering gir automatisk tilgang til alle systemets funksjoner

📝Oppgave 7
Eksamensnivå, sjanger G

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.

📝Oppgave 8
Eksamensnivå, sjanger G

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

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.

Autentisering mot autorisasjon
Autentisering: «hvem er du?» — å bekrefte identiteten.

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.

Tilgangskontroll

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.

De tre faktortypene
TypeEksemplerSvakhet
Noe du vetPassord, PINKan gjettes, lures ut, lekke
Noe du harTelefon, kodebrikke, smartkortKan mistes eller stjeles
Noe du erFingeravtrykk, ansikt, stemmeKan 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.
Regelen for reell tofaktor

De to bevisene må være av ulik type.

KombinasjonTofaktor?
Passord + engangskode på mobilJa (vet + har)
Passord + sikkerhetsspørsmålNei (vet + vet)
Fingeravtrykk + PINJa (er + vet)
Brukernavn + passordNei (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.

Brukernavn er ikke en faktor

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.

Hva tofaktor demper

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.

Passord lagres aldri i klartekst

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.

Passordlagring med hash og salt
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 verdien

Systemet kan altså kontrollere passordet uten noen gang å ha lagret det. Det er enveisegenskapen til hash-funksjonen som gjør dette mulig.

Hva saltet gjør

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.

Oppslagstabell

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.

Hva som skjer etter en passordlekkasje

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.

Uttømmende søk mot passord

Å 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).

Phishing

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.

Minste privilegium i praksis

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.

Rollebasert tilgang

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.

Avslutning av tilgang

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.

Hvorfor passordgjenbruk er farlig

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.

Hva som gjør et passord sterkt
Lengde er det viktigste. Hvert ekstra tegn ganger opp antall muligheter, og en lang passfrase av flere ord slår et kort passord med spesialtegn.

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.

Biometri: styrke og begrensning
Styrken: faktoren er alltid med deg, og den kan ikke glemmes eller lånes bort.

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.

Autentisering av maskiner, ikke bare mennesker

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.

Repetisjon — sitter autentiseringen?

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.