Lær om symmetrisk/asymmetrisk kryptering, hashing, 2FA og digitale sertifikater.
Kryptering og autentisering
Hver gang du logger inn på en nettside, sender en melding eller betaler med Vipps, bruker du kryptering uten å tenke over det. Kryptering er den usynlige teknologien som gjør det trygt å handle på nett, kommunisere privat og beskytte sensitive data. Uten kryptering ville all digital kommunikasjon vært som å sende postkort – hvem som helst underveis kunne lese innholdet.
I dette kapittelet skal vi forstå de grunnleggende prinsippene bak kryptering og autentisering. Vi skal se hvordan symmetrisk og asymmetrisk kryptering fungerer, hvorfor hashing er viktig for passordsikkerhet, hvordan tofaktorautentisering beskytter kontoene dine, og hvordan digitale sertifikater gjør HTTPS mulig.
Mennesker har brukt kryptering i tusenvis av år. Allerede i antikken utviklet man metoder for å skjule meldinger:
- Cæsar-chifferet (ca. 100 f.Kr.): Julius Cæsar erstattet hver bokstav med en bokstav et fast antall plasser lenger ut i alfabetet. Med forskyvning 3 blir A til D, B til E, osv. Meldingen «ANGRIP» blir «DQJULS».
- Enigma-maskinen (1920–1940-tallet): Tyskerne brukte den elektromekaniske Enigma-maskinen til å kryptere militær kommunikasjon under andre verdenskrig. Den britiske matematikeren Alan Turing og teamet hans ved Bletchley Park klarte å knekke Enigma-koden, noe som ifølge mange historikere forkortet krigen med flere år.
- Moderne kryptering (1970-tallet–i dag): Med datamaskiner ble det mulig å bruke avanserte matematiske algoritmer. DES (1977) og AES (2001) ble standarder for symmetrisk kryptering. RSA (1977) revolusjonerte feltet med asymmetrisk kryptering basert på primtallsfaktorisering.
I dag er kryptering en integrert del av all digital kommunikasjon. Algoritmene er basert på matematiske problemer som er enkle i én retning men ekstremt vanskelige å reversere – som å multiplisere to store primtall versus å faktorisere produktet.
Hvordan det fungerer
1. Avsender tar klarteksten og krypterer den med nøkkelen → chiffertekst
2. Chifferteksten sendes over nettverket (trygt – den er uleselig uten nøkkelen)
3. Mottaker dekrypterer chifferteksten med den samme nøkkelen → klartekst
Fordeler
- Rask: Symmetrisk kryptering er svært effektiv for store datamengder
- Enkel: Én nøkkel gjør det enkelt å implementere
- Sterk: Moderne algoritmer som AES-256 er praktisk umulige å knekke med dagens teknologi
Ulemper
- Nøkkeldistribusjon: Hvordan får du trygt overlevert nøkkelen til mottakeren? Hvis nøkkelen fanges opp underveis, kan angriperen dekryptere alt
- Skalering: Hvis 100 personer skal kommunisere sikkert med hverandre parvis, trengs 4 950 unike nøkler
Vanlige algoritmer
- AES (Advanced Encryption Standard): Den mest brukte symmetriske algoritmen i dag. Bruker nøkkellengder på 128, 192 eller 256 bit. AES-256 anses som uknuselig med dagens teknologi
- ChaCha20: Et raskt alternativ til AES, brukt i noen TLS-implementasjoner og meldingsapper
AES brukes blant annet i HTTPS (for selve datakrypteringen), BitLocker (Windows-diskryptering), FileVault (Mac-diskryptering) og de fleste VPN-tjenester.
- Offentlig nøkkel (public key): Kan deles fritt med alle
- Privat nøkkel (private key): Holdes strengt hemmelig
Data som krypteres med den offentlige nøkkelen kan bare dekrypteres med den tilhørende private nøkkelen, og omvendt.
Hvordan det fungerer (kryptering)
1. Mottaker genererer et nøkkelpar og deler sin offentlige nøkkel fritt
2. Avsender krypterer meldingen med mottakerens offentlige nøkkel
3. Den krypterte meldingen sendes over nettverket
4. Mottaker dekrypterer med sin private nøkkel – bare mottaker kan lese meldingen
Selv om angriperen fanger opp den krypterte meldingen og kjenner den offentlige nøkkelen, kan de ikke dekryptere meldingen uten den private nøkkelen.
Digitale signaturer
Asymmetrisk kryptering brukes også for digitale signaturer – en måte å bevise avsenderens identitet:
1. Avsender signerer meldingen med sin private nøkkel
2. Hvem som helst kan verifisere signaturen med avsenderens offentlige nøkkel
3. Signaturen beviser at meldingen virkelig kommer fra avsender og ikke er endret
Fordeler
- Ingen nøkkeldeling nødvendig: Den offentlige nøkkelen kan deles fritt
- Skalering: Hver bruker trenger bare ett nøkkelpar
- Digitale signaturer: Muliggjør identitetsverifisering
Ulemper
- Langsom: Mye tregere enn symmetrisk kryptering (ca. 1000 ganger)
- Nøkkellengde: Krever mye lengre nøkler for tilsvarende sikkerhet
Vanlige algoritmer
- RSA: Den mest kjente asymmetriske algoritmen, basert på vanskeligheten med å faktorisere store tall. Bruker typisk 2048- eller 4096-bit nøkler
- ECC (Elliptic Curve Cryptography): Gir tilsvarende sikkerhet som RSA med kortere nøkler, og er dermed raskere. Brukes stadig mer i moderne systemer
I praksis brukes asymmetrisk og symmetrisk kryptering sammen i det som kalles hybridkryptering. HTTPS er et godt eksempel:
Problem: Symmetrisk kryptering er rask men krever en felles nøkkel. Asymmetrisk kryptering løser nøkkeldelingen men er langsom.
Løsning – hybridkryptering:
1. TLS-handshake (asymmetrisk):
- Nettleseren kobler seg til serveren
- Serveren sender sitt digitale sertifikat med sin offentlige nøkkel
- Nettleseren verifiserer sertifikatet
- Nettleseren og serveren bruker asymmetrisk kryptering til å forhandle frem en sesjonsnøkkel (en tilfeldig symmetrisk nøkkel)
2. Dataoverføring (symmetrisk):
- All videre kommunikasjon krypteres med den avtalte sesjonsnøkkelen (AES)
- Symmetrisk kryptering er rask nok for kontinuerlig dataoverføring
- Sesjonsnøkkelen er unik for denne forbindelsen og forkastes når sesjonen avsluttes
Resultat: Asymmetrisk kryptering løser nøkkelproblemet (trygg nøkkelutveksling), og symmetrisk kryptering gir hastigheten som trengs for selve dataoverføringen. Sammen gir de det beste fra begge verdener.
Egenskaper ved en god hash-funksjon
- Deterministisk: Samme input gir alltid eksakt samme hash-verdi
- Enveis: Det er praktisk umulig å finne input fra hash-verdien
- Skredeffekt: Selv den minste endring i input gir en helt annerledes hash
- Kollisjonsmotstand: Det er ekstremt usannsynlig at to ulike input gir samme hash
- Fast størrelse: Hash-verdien har alltid samme lengde, uansett størrelse på input
Eksempel
La oss se SHA-256-hashing i aksjon:
- Input: Hei → Hash: a4c4b3c88e... (64 heksadesimale tegn)
- Input: hei → Hash: 7f83b1657f... (helt annerledes – bare endret stor til liten H)
- Input: En hel bok på 500 sider → Hash: Fortsatt 64 heksadesimale tegn
Bruksområder for hashing
1. Passordlagring:
Ansvarlige nettsteder lagrer aldri passordet ditt i klartekst. I stedet lagrer de en hash av passordet. Når du logger inn, hashes passordet du skriver inn og sammenlignes med den lagrede hashen. Hvis de er like, er passordet riktig.
I tillegg brukes et salt – en tilfeldig streng som legges til passordet før hashing. Saltet gjør at to brukere med samme passord får ulike hash-verdier, og beskytter mot forhåndsberegnede angrep (rainbow tables).
2. Filintegritet:
Når du laster ned en fil, kan du sammenligne filens hash med den oppgitte hash-verdien for å verifisere at filen ikke er endret eller korrupt underveis.
3. Digitale signaturer:
I stedet for å signere en hel melding (som kan være stor), beregnes en hash av meldingen, og hashen signeres med den private nøkkelen.
Vanlige hash-algoritmer
- SHA-256: Del av SHA-2-familien, brukes i TLS, Bitcoin og filverifisering
- SHA-3: Nyere standard, designet som backup i tilfelle SHA-2 viser svakheter
- bcrypt: Spesielt designet for passordlagring, med innebygd salt og justerbar vanskelighetsgrad
- MD5: Eldre algoritme som ikke lenger anses som sikker (kollisjoner er funnet), men brukes fortsatt for filsjekksummer
De tre faktorene
1. Noe du vet (kunnskapsfaktor): Passord, PIN-kode, sikkerhetsspørsmål
2. Noe du har (besittelsesfaktor): Mobiltelefon, sikkerhetsnøkkel, smartkort, engangskode-brikke
3. Noe du er (biometrisk faktor): Fingeravtrykk, ansiktsgjenkjenning, iris-skanning, stemmegjenkjenning
Enfaktorautentisering
De fleste innlogginger bruker bare én faktor – passord (noe du vet). Problemet er at passord kan stjeles gjennom phishing, datalekkasjer eller brute force-angrep. Hvis passordet kompromitteres, er kontoen ubeskyttet.
Tofaktorautentisering (2FA)
2FA krever to ulike faktorer fra minst to kategorier. Vanlige kombinasjoner:
- Passord + SMS-kode: Du logger inn med passord og mottar en engangskode på SMS. Enkelt men SMS kan avlyttes (SIM-swapping).
- Passord + autentiseringsapp: Apper som Google Authenticator eller Microsoft Authenticator genererer tidsbegrensede engangskoder (TOTP). Tryggere enn SMS fordi kodene genereres lokalt på telefonen.
- Passord + fysisk sikkerhetsnøkkel: En USB-enhet (f.eks. YubiKey) som kobles til datamaskinen. Den sterkeste formen for 2FA fordi nøkkelen ikke kan kopieres digitalt.
- Passord + biometri: Fingeravtrykk eller ansiktsgjenkjenning som andre faktor.
Multifaktorautentisering (MFA)
MFA bruker to eller flere faktorer og er i dag standard for mange tjenester. Norske banker krever for eksempel BankID med passord (noe du vet) og mobil/kodebrikke (noe du har) – en form for 2FA.
Passordløs autentisering
En ny trend er passkeys – passordløs autentisering basert på asymmetrisk kryptering. I stedet for passord bruker du biometri (fingeravtrykk/ansikt) for å frigjøre en privat nøkkel som er lagret sikkert på enheten din. Serveren har bare den offentlige nøkkelen. Passkeys er motstandsdyktige mot phishing fordi den private nøkkelen aldri forlater enheten.
Asymmetrisk kryptering løser nøkkelproblemet, men skaper et nytt spørsmål: Hvordan vet du at den offentlige nøkkelen du mottar virkelig tilhører riktig person? En angriper kan i teorien gi deg sin egen offentlige nøkkel og utgi seg for å være noen andre. Løsningen er digitale sertifikater og PKI (Public Key Infrastructure).
Hva er et digitalt sertifikat?
Et digitalt sertifikat er et elektronisk dokument som binder en offentlig nøkkel til en identitet. Sertifikatet inneholder:
- Eierens identitet: Domenenavn, organisasjon, land
- Eierens offentlige nøkkel
- Utsteders identitet: Sertifikatautoriteten som garanterer sertifikatet
- Gyldighetstid: Start- og sluttdato
- Digital signatur: Sertifikatautoritetens signatur som bevis på ektheten
Sertifikatautoriteter (CA)
En sertifikatautoritet (Certificate Authority) er en pålitelig tredjepart som verifiserer identiteten til den som ber om et sertifikat, og utsteder signerte digitale sertifikater. Det finnes et hierarki av CA-er:
- Rot-CA (Root CA): De mest pålitelige CA-ene, innebygd i nettlesere og operativsystemer
- Mellomliggende CA: Utstedet av rot-CA-er, brukes til å utstede sertifikater til nettsider
- Sluttsertifikater: Sertifikatene som faktisk brukes av nettsider
Sertifikater i praksis
Når du besøker en HTTPS-side:
1. Serveren sender sitt digitale sertifikat til nettleseren
2. Nettleseren sjekker at sertifikatet er signert av en pålitelig CA
3. Nettleseren sjekker at sertifikatet ikke er utløpt
4. Nettleseren sjekker at domenenavnet matcher sertifikatet
5. Hvis alt er OK, vises hengelåsikonet og forbindelsen krypteres
Hvis noe er galt med sertifikatet, viser nettleseren en advarsel som «Forbindelsen er ikke sikker». Du bør aldri ignorere slike advarsler, spesielt ikke på sider der du oppgir sensitiv informasjon.
Let's Encrypt
Let's Encrypt er en gratis, automatisert sertifikatautoritet som har demokratisert HTTPS. Før Let's Encrypt måtte nettsideeiere betale for sertifikater, noe som førte til at mange små nettsider ikke brukte HTTPS. I dag utsteder Let's Encrypt sertifikater til over 300 millioner nettsider og har vært en viktig faktor i at HTTPS-bruken har økt fra ca. 40 % til over 95 % av all webtrafikk.
Slik fungerer det forenklet:
1. Hver bruker har et nøkkelpar (offentlig + privat)
2. Meldingen krypteres med mottakerens offentlige nøkkel
3. Bare mottakerens private nøkkel kan dekryptere meldingen
4. Tjenesteleverandørens servere ser bare kryptert data
Apper med E2EE: Signal (sterkest anbefalt), WhatsApp, iMessage, Telegram (i «hemmelig chat»-modus).
Apper uten E2EE: Vanlig SMS, Facebook Messenger (standard), Slack, e-post (med mindre du bruker PGP).
E2EE er kontroversielt fordi myndigheter argumenterer for at det gjør det vanskeligere å etterforske kriminalitet, mens personvernforkjempere mener det er nødvendig for demokrati og ytringsfrihet.
Du kan selv undersøke digitale sertifikater i nettleseren:
1. Gå til en HTTPS-nettside (f.eks. www.nrk.no)
2. Klikk på hengelåsikonet i adressefeltet
3. Klikk på Sertifikat eller Vis sertifikat
4. Du kan se:
- Hvem sertifikatet er utstedt til (domenenavnet)
- Hvem som utstedte det (sertifikatautoriteten)
- Gyldighetsperioden
- Den offentlige nøkkelen og krypteringsalgoritmen
Prøv å sammenligne sertifikatene til ulike nettsider – du vil se at de bruker forskjellige CA-er og ulike nøkkellengder.
Hva er hovedforskjellen mellom symmetrisk og asymmetrisk kryptering?
Hva er hashing?
Hvorfor lagrer seriøse nettsteder passord som hash-verdier i stedet for i klartekst?
Hvilken av disse er et eksempel på tofaktorautentisering (2FA)?
Forklar hvordan HTTPS bruker hybridkryptering for å sikre kommunikasjonen mellom nettleser og server. Beskriv stegene i TLS-handshaken og forklar hvorfor man bruker både asymmetrisk og symmetrisk kryptering.
Hva er rollen til en sertifikatautoritet (CA) i HTTPS?
Sammenlign tre ulike metoder for tofaktorautentisering: SMS-kode, autentiseringsapp (TOTP) og fysisk sikkerhetsnøkkel (f.eks. YubiKey). Vurder sikkerhet, brukervennlighet og praktiske forhold for hver metode. Hvilken ville du anbefalt for en bedrift, og hvorfor?
Hva er ende-til-ende-kryptering (E2EE), og hvorfor kan ikke tjenesteleverandøren lese meldingene dine?
Oppsummering
I dette kapittelet har du lært:
- Kryptering: gjør klartekst til uleselig chiffertekst.
- Symmetrisk vs. asymmetrisk: samme nøkkel mot noekkelpar.
- Hashing: enveis funksjon, brukes til passord.
- Autentisering: enfaktor, tofaktor (2FA) og multifaktor.
- Digitale sertifikater: utstedt av sertifikatautoriteter (CA).
Noekkelbegreper
| Begrep | Forklaring |
|---|---|
| Kryptering | Å gjøre informasjon uleselig uten nøkkel |
| Symmetrisk kryptering | Samme nøkkel til kryptering og dekryptering |
| Hashing | Enveis funksjon, f.eks. for passord |
| 2FA | Tofaktorautentisering |
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.