3.4 Digital signatur, hash og PKI
Digital signatur (senderens private nøkkel signerer), hash for integritet, og PKI/sertifikater — inkludert at signatur **ikke** gir konfidensialitet.
Høyeste prioritet — dette må sitte. Kapitlet hører til seksjon 3, datasikkerhet, en av de fire seksjonene som hver må bestås for seg. Dette er dessuten det enkeltpunktet i faget der rettingen oftest presiserer nøyaktig hva som gjelder.
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. En digital signatur gir IKKE konfidensialitet. Alle med avsenderens offentlige nøkkel kan lese innholdet — det er nettopp derfor signaturen kan kontrolleres. Dette er felle #4 i registeret.
2. Nøkkelretningen er motsatt av hemmelig melding. Du signerer med din egen private nøkkel, og mottakeren validerer med din offentlige. Snur du dette, er svaret galt — felle #5.
En tredje felle, som hører til her: å krysse av hash eller sjekksum for konfidensialitet. En hash gir integritet og skjuler ingenting. Det er felle #9.
Tidsbruk: 50 minutter, fordelt på fire løkker med tidsanslag.
Forkunnskaper — sist du var her
Dette kapitlet bygger på kap. 3.3. Her er det du trenger, ferdig oppfrisket:
1. Nøkkelparet. Hver part har en offentlig nøkkel som kan deles med alle, og en privat nøkkel som aldri forlater eieren. Det som krypteres med den ene, kan bare dekrypteres med den andre.
2. Retningen for en hemmelig melding:
Alice krypterer med -> Bobs OFFENTLIGE nøkkel
Bob dekrypterer med -> Bobs PRIVATE nøkkelBegge nøklene tilhører mottakeren. I dette kapitlet snus dette: signering bruker avsenderens nøkler.
3. Målene som er i spill, fra kap. 3.1:
| Mål | Spørsmålet |
|---|---|
| Konfidensialitet | Kan uvedkommende lese det? |
| Integritet | Er innholdet uendret? |
| Autentisitet | Er det virkelig den vi tror? |
| Uavviselighet | Kan avsenderen nekte for det? |
4. Mellommannsangrep fra kap. 3.2: kryptering alene er ikke nok, fordi angriperen kan sette opp sin egen krypterte forbindelse og utgi seg for motparten. Sertifikatene i dette kapitlet er svaret på nettopp det.
Løkke 1 — Hash: et fingeravtrykk av innholdet (~12 min)
Du laster ned en programfil på 900 MB. Hvordan vet du at den ikke er endret underveis — at ingen har puttet noe inn i den?
Du kunne sammenlignet den med originalen byte for byte, men da måtte du jo lastet ned originalen igjen.
Løsningen er å regne ut et lite fingeravtrykk av fila, og bare sammenligne fingeravtrykkene. Det er en hash-verdi, og den er byggesteinen under både signaturer og passordlagring.
En kort verdi med fast lengde, regnet ut fra innholdet i en fil eller melding.
Tre egenskaper gjør den nyttig:
1. Samme innhold gir alltid samme verdi. Verdien kan derfor sammenlignes.
2. Endres innholdet med så mye som ett bit, endres verdien fullstendig. Det er dette som avslører endringer.
3. Verdien kan ikke regnes tilbake til innholdet. Funksjonen går bare én vei.
Lengden er fast uansett hvor stort innholdet er: en tekst på tre bokstaver og en fil på 900 MB gir hash-verdier av nøyaktig samme størrelse.
Målet den tjener: integritet.
Den faste feilslutningen: å tro at en hash skjuler innholdet. Den gjør ikke det. Fila er nøyaktig like lesbar med hash-verdi som uten — hash-verdien er noe som kommer i tillegg. Dette er felle #9.
En nedlastingsside oppgir en hash-verdi ved siden av programfila. Du laster ned fila, regner ut hash-verdien selv og sammenligner. Hva har du bevist hvis verdiene stemmer — og hva har du ikke bevist?
Det er integritet.
Dette har du IKKE bevist, i tre punkter:
1. At fila er hemmelig. Selvsagt ikke — alle kan laste den ned og lese den. Hash gir ikke konfidensialitet.
2. At fila er trygg. Hash-verdien sier bare at innholdet er uendret. Var det skadevare i utgangspunktet, er det fortsatt skadevare, og hash-verdien stemmer perfekt.
3. At hash-verdien selv er ekte. Dette er det viktigste. En angriper som kontrollerer nettsiden, kan endre både fila og den oppgitte hash-verdien. Da stemmer de fortsatt overens.
Konklusjonen: en hash alene beskytter mot feil og forvanskning underveis, ikke mot en angriper som kontrollerer kilden.
Hva som løser det siste problemet: at hash-verdien signeres med utgiverens private nøkkel. Da kan du kontrollere at hash-verdien kommer fra rett avsender, og angriperen kan ikke lage en ny signatur uten den private nøkkelen. Det er nettopp digital signatur, som kommer i neste løkke.
(Innsteg — hash.) Hvilket sikkerhetsmål tjener en hash-verdi, og hvilket tjener den ikke? Begrunn begge deler.
Løkke 2 — Signaturen: den motsatte retningen (~14 min)
Nå kommer den ene operasjonen som ser ut som en feil, og som likevel er hele poenget.
I kap. 3.3 lærte du at det å kryptere med sin egen private nøkkel gir en melding alle kan lese. Det virket ubrukelig.
Det er det ikke. Det er nettopp fordi alle kan lese den — med din offentlige nøkkel — at de også kan kontrollere at det var deg. Ingen andre kunne ha laget noe som lar seg åpne med din offentlige nøkkel.
— naturlig pausepunkt —
Alice signerer med -> Alices PRIVATE nøkkel
Bob validerer med -> Alices OFFENTLIGE nøkkelBegge nøklene tilhører avsenderen. Mottakerens nøkler er ikke involvert i det hele tatt.
Slik gjøres det i praksis, fire steg:
1. Alice regner ut hash-verdien av meldingen.
2. Alice krypterer hash-verdien — ikke hele meldingen — med sin private nøkkel. Resultatet er signaturen.
3. Alice sender meldingen og signaturen.
4. Bob regner ut hash-verdien av meldingen selv, dekrypterer signaturen med Alices offentlige nøkkel, og sammenligner de to verdiene.
Hvorfor bare hash-verdien signeres: asymmetrisk kryptering er treg, og hash-verdien er liten uansett hvor stor meldingen er. En signatur på en fil på 900 MB tar like kort tid som på en tekstmelding.
Hva du oppnår, og hva du ikke oppnår:
| Mål | Oppnådd? | Hvorfor |
|---|---|---|
| Integritet | Ja | Endres meldingen, stemmer ikke hash-verdiene lenger |
| Autentisitet | Ja | Bare Alice har den private nøkkelen |
| Uavviselighet | Ja | Alice kan ikke nekte — ingen andre kunne laget signaturen |
| Konfidensialitet | Nei | Meldingen sendes i klartekst, og alle kan lese den |
Den siste raden er felle #4, og den er fagets mest testede enkeltinnsikt. En digital signatur skjuler ingenting. Vil du ha både hemmelighold og signatur, må du gjøre begge deler: signere med din private nøkkel og kryptere med mottakerens offentlige.
Å kontrollere at en signatur er ekte, ved å bruke avsenderens offentlige nøkkel.
Mottakeren gjør to ting og sammenligner:
1. Regner ut hash-verdien av meldingen slik den ble mottatt.
2. Dekrypterer signaturen med avsenderens offentlige nøkkel, og får ut hash-verdien slik den var da den ble signert.
Stemmer de to? Da er meldingen uendret, og den kom fra den som eier den private nøkkelen.
Stemmer de ikke? Da er enten meldingen endret underveis, eller signaturen laget av noen andre. Hvilken av delene, kan man ikke se — og det trenger man heller ikke: begge deler betyr at meldingen ikke skal stoles på.
Svarform F2, altså sant/usant-matrise: Alice sender en signert melding til Bob. Vurder hver påstand.
a) Bob kan kontrollere at meldingen kom fra Alice.
b) Ingen andre enn Bob kan lese meldingen.
c) Bob kan oppdage om meldingen er endret underveis.
d) Alice kan senere nekte for å ha sendt meldingen.
b) Usann. Dette er felle #4, fagets mest testede enkeltinnsikt. Meldingen sendes i klartekst; signaturen kommer i tillegg. Alle som fanger opp meldingen, kan lese den — og det må de kunne, for ellers kunne de heller ikke regne ut hash-verdien og kontrollere signaturen.
c) Sann. Bob regner ut hash-verdien selv og sammenligner med den signerte. Er meldingen endret med ett bit, stemmer ikke verdiene. Det er integritet.
d) Usann. Det er nettopp det signaturen hindrer. Bare Alice har sin private nøkkel, så bare hun kan ha laget signaturen. Det er uavviselighet.
Fasit: a sann, b usann, c sann, d usann.
Mønsteret å ta med seg: en signert melding gir tre av fire mål — integritet, autentisitet og uavviselighet. Det ene den ikke gir, er konfidensialitet.
Om formen: rad b og d er begge formulert slik at riktig svar er «usant», men av motsatt grunn: b) påstår en egenskap signaturen ikke har, mens d) benekter en egenskap den har. Les hver rad for seg.
Kari signerer et dokument digitalt og sender det til Ola. Velg ett alternativ per delspørsmål.
a) Kari signerer med …
1. Olas offentlige nøkkel · 2. Karis private nøkkel · 3. Karis offentlige nøkkel · 4. Olas private nøkkel
b) Ola validerer signaturen med …
1. Karis offentlige nøkkel · 2. Karis private nøkkel · 3. Olas private nøkkel · 4. Olas offentlige nøkkel
Kryss av alle målene en digital signatur gir, og begrunn hvert av de fire.
a) Konfidensialitet
b) Autentisitet
c) Uavviselighet
d) Integritet
Alice vil sende Bob en melding som både er hemmelig og bevislig kommer fra henne. Hvilke to operasjoner må hun gjøre, og med hvilke nøkler?
Løkke 3 — Sertifikater: hvem eier egentlig nøkkelen? (~12 min)
Det er ett hull igjen, og det er stort.
Du validerer en signatur med «Alices offentlige nøkkel». Men hvordan vet du at nøkkelen du har, faktisk er Alices? En angriper kan ha sendt deg sin egen offentlige nøkkel og påstått at den er Alices. Da vil alt validere pent — mot feil person.
Det samme gjelder nettbanken: nettleseren din får en offentlig nøkkel fra tjeneren. Hvem sier at den tilhører banken?
Svaret er digitale sertifikater.
Et dokument som binder en offentlig nøkkel til en identitet — et navn, et domene, en virksomhet.
Sertifikatet er selv signert av en betrodd tredjepart, en sertifikatutsteder. Signaturen gjør at sertifikatet ikke kan forfalskes uten utstederens private nøkkel.
Når nettleseren din kobler seg til en nettbank, får den bankens sertifikat. Den kontrollerer utstederens signatur, og hvis den stemmer, vet den at den offentlige nøkkelen faktisk tilhører banken.
Problemet sertifikatet løser: at en offentlig nøkkel i seg selv ikke sier noe om hvem den tilhører. Uten sertifikater ville en angriper kunne levere sin egen nøkkel og utgi seg for hvem som helst — nettopp mellommannsangrepet fra kap. 3.2.
Den faste feilslutningen: å tro at et sertifikat krypterer noe. Det gjør det ikke. Det bekrefter en tilhørighet, og krypteringen skjer med nøkkelen sertifikatet bekrefter.
Systemet av sertifikatutstedere, sertifikater og regler som gjør det mulig å stole på offentlige nøkler i praksis.
Forkortelsen står for public key infrastructure, og den glosses her fordi den brukes i oppgavetekster.
De tre delene du bør kunne:
1. Utstederne kontrollerer identiteten til den som ber om et sertifikat, og signerer det.
2. Tillitskjeden går fra en rot-utsteder som nettleseren stoler på i utgangspunktet, ned til det enkelte sertifikatet.
3. Tilbaketrekking gjør at et sertifikat kan erklæres ugyldig før det utløper — for eksempel hvis den private nøkkelen kommer på avveie.
Svakheten i systemet er at det hviler på tillit til utstederne. Blir en utsteder kompromittert, kan angriperen få utstedt sertifikater i andres navn.
Den praktiske konsekvensen: en sertifikatadvarsel i nettleseren betyr at denne kjeden ikke går opp. Da skal du ikke klikke deg forbi.
Du besøker en nettbutikk du aldri har brukt før. Nettleseren viser hengelås og et gyldig sertifikat. Hva har du fått bekreftet, og hva har du ikke fått bekreftet?
1. At du snakker med den som eier domenet som står i sertifikatet — ikke med en mellommann.
2. At trafikken er kryptert, slik at ingen på veien kan lese den.
3. At en betrodd utsteder har kontrollert at nøkkelen hører til dette domenet.
Det er autentisitet, konfidensialitet og integritet på selve forbindelsen.
Dette har du IKKE fått bekreftet:
- At butikken er hederlig. Et sertifikat sier ingenting om hvem som står bak, om varene finnes, eller om pengene dine kommer tilbake. En svindler kan skaffe seg et fullt gyldig sertifikat til sitt eget domene.
- At domenet ikke ligner på et annet. Et domene som ligner på et kjent navn, kan ha sitt eget gyldige sertifikat. Sertifikatet bekrefter at du er på det domenet som står der — ikke at det er det domenet du trodde du skulle til.
Konklusjonen: sertifikatet svarer på spørsmålet «snakker jeg med den jeg tror?», ikke på «kan jeg stole på dem?».
Eksamensrelevansen: en fast distraktor er å hevde at HTTPS eller et sertifikat gjør en nettside «trygg». Den riktige formuleringen er at forbindelsen er sikret og motparten identifisert.
Vurder hver påstand som sann eller usann, og begrunn hver rad.
| # | Påstand | Sant/usant |
|---|---|---|
| a | Et sertifikat binder en offentlig nøkkel til en identitet | |
| b | Et sertifikat krypterer trafikken mellom nettleser og tjener | |
| c | Et gyldig sertifikat garanterer at nettstedet er hederlig | |
| d | Sertifikatet er signert av en betrodd utsteder |
Løkke 4 — To begreper til, og eksamensformen (~12 min)
To begreper hører hjemme i denne delen av seksjonen, og begge dukker opp i faktaoppgaver: nulldagssårbarhet og trojaner.
Deretter en siste gjennomgang av selve eksamensformen, der de tre fellene #4, #5 og #9 møtes i samme sett.
En svakhet i programvare som er ukjent for leverandøren, og som det derfor ikke finnes noen rettelse for.
Navnet kommer av at leverandøren har hatt null dager på seg til å lukke hullet når det først blir utnyttet.
Hvorfor den er farlig: alle de vanlige tiltakene forutsetter at svakheten er kjent. Sikkerhetsoppdateringer hjelper ikke mot noe som ikke er oppdaget, og antivirus kjenner ikke igjen et angrep ingen har sett før.
Det som fortsatt virker, er tiltak som ikke avhenger av å kjenne trusselen: minste privilegium, overvåking av unormal oppførsel, og segmentering som begrenser skaden.
Den faste feilslutningen: å tro at et oppdatert system er trygt mot alt. Oppdatering lukker de kjente hullene, og det er svært mye — men ikke alt.
Et program med en skjult skadelig funksjon, pakket inn i noe som ser nyttig ut.
Brukeren installerer det frivillig, i den tro at det er et spill, et verktøy eller en oppdatering. Den skadelige delen kjører i bakgrunnen.
Kjennetegnet er innpakningen, ikke hva skaden består i. En trojaner kan inneholde en tastelogger, en bakdør eller et løsepengevirus.
Skillet mot virus og orm: viruset fester seg til en vertsfil, ormen sprer seg selv over nett. Trojaneren gjør ingen av delene — den blir båret inn av brukeren selv. Hele skadevaretypologien behandles sist i denne delen.
Svarform F1. Kryss av alle påstandene som stemmer.
a) En digital signatur gir uavviselighet.
b) En hash-verdi gjør innholdet uleselig for uvedkommende.
c) En hemmelig melding krypteres med mottakerens offentlige nøkkel.
d) En signatur valideres med avsenderens private nøkkel.
e) En signert melding kan leses av alle som fanger den opp.
b) Galt — felle #9. En hash-verdi kommer i tillegg til innholdet og skjuler ingenting. Den avslører endringer, altså integritet. Innholdet er nøyaktig like lesbart som før.
c) Riktig. Dette er retningsregelen for hemmelighold: begge nøklene tilhører mottakeren.
d) Galt — felle #5. Validering bruker avsenderens offentlige nøkkel. Den private har bare avsenderen selv, og hadde mottakeren hatt den, ville hele poenget falt bort. Påstanden snur retningen.
e) Riktig — dette er felle #4 formulert som en sann påstand. Signaturen gir ikke konfidensialitet. Meldingen sendes i klartekst, og alle kan lese den. Merk hvordan samme innsikt kan stå både som en sann og som en usann rad, avhengig av formuleringen.
Fasit: a, c og e.
Om formen: de tre gale og sanne alternativene fordeler seg over de tre fellene #4, #5 og #9 — akkurat som et virkelig sett gjerne gjør. Har du de tre reglene klare, avgjør du hele oppgaven på et minutt:
1. Signatur gir alt unntatt konfidensialitet.
2. Hemmelighold bruker mottakerens nøkler; signering bruker avsenderens.
3. Hash gir integritet, aldri konfidensialitet.
Vurder hver påstand som sann eller usann, og begrunn hver rad.
| # | Påstand | Sant/usant |
|---|---|---|
| a | Det er hash-verdien, ikke hele meldingen, som signeres | |
| b | En digital signatur skjuler innholdet i meldingen | |
| c | En hash-verdi kan regnes tilbake til innholdet | |
| d | Endres meldingen med ett bit, feiler valideringen |
Kryss av alle påstandene som stemmer, og begrunn hvert av de fem.
a) I en hemmelig melding tilhører begge nøklene mottakeren.
b) I en digital signatur tilhører begge nøklene avsenderen.
c) Mottakeren validerer en signatur med sin egen private nøkkel.
d) Vil du ha både hemmelighold og signatur, må to operasjoner gjøres.
e) En signatur laget med avsenderens offentlige nøkkel kan valideres av alle.
En nedlastingsside oppgir en hash-verdi ved siden av en programfil. Kryss av alle påstandene som stemmer, og begrunn hvert av de fem.
a) Stemmer hash-verdien, er fila garantert fri for skadevare.
b) Stemmer hash-verdien, er fila uendret siden verdien ble regnet ut.
c) En angriper som kontrollerer nettsiden, kan endre både fila og hash-verdien.
d) Hash-verdien gjør fila utilgjengelig for uvedkommende.
e) Signeres hash-verdien av utgiveren, blir kontrollen sterkere.
1. Å tro at en digital signatur gir konfidensialitet (felle #4). Fagets mest testede enkeltinnsikt. Signaturen skjuler ingenting; meldingen sendes i klartekst. Signaturen gir integritet, autentisitet og uavviselighet — og det er alt.
2. Å snu signeringsretningen (felle #5). Du signerer med din egen private nøkkel og validerer med avsenderens offentlige. Begge nøklene i en signatur tilhører avsenderen.
3. Å krysse av hash for konfidensialitet (felle #9). Hash gir integritet. Verdien kommer i tillegg til innholdet og skjuler ingenting.
4. Å blande de to retningene. Hemmelighold bruker mottakerens nøkler; signering bruker avsenderens. Ser du begge parters nøkler i én operasjon, er alternativet galt.
5. Å tro at en uendret fil er en trygg fil. En hash-verdi som stemmer, sier bare at ingenting er endret. Skadevare som lå der fra starten, gir perfekt samsvar.
6. Å tro at et sertifikat krypterer. Det bekrefter en tilhørighet. Krypteringen skjer med nøkkelen sertifikatet bekrefter.
7. Å tro at et gyldig sertifikat betyr at nettstedet er hederlig. Det svarer på «snakker jeg med den jeg tror?», ikke på «kan jeg stole på dem?».
8. Å tro at et oppdatert system er trygt mot alt. Oppdatering lukker de kjente hullene. En nulldagssårbarhet er per definisjon ukjent for leverandøren.
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.
HEMMELIG MELDING til Bob:
krypter med -> Bobs OFFENTLIGE dekrypter med -> Bobs PRIVATE
DIGITAL SIGNATUR fra Alice:
signer med -> Alices PRIVATE valider med -> Alices OFFENTLIGEHemmelighold bruker mottakerens nøkler. Signering bruker avsenderens.
Kontrollen på eksamen: i hver operasjon brukes bare ett nøkkelpar. Blander et alternativ begge parters nøkler, er det galt.
En digital signatur gir integritet, autentisitet og uavviselighet — men ikke konfidensialitet.
Meldingen sendes i klartekst, og signaturen kommer i tillegg. Alle kan lese meldingen, og de må kunne det: uten tilgang til innholdet kan de ikke regne ut hash-verdien og kontrollere signaturen.
Dette er felle #4, og den er fagets mest testede enkeltinnsikt. Vil du ha begge deler, må du signere og kryptere.
1. Samme innhold gir alltid samme verdi — derfor kan verdier sammenlignes.
2. Ett endret bit gir en helt annen verdi — derfor avsløres endringer.
3. Verdien kan ikke regnes tilbake — funksjonen går bare én vei.
Lengden er fast uansett innholdets størrelse: tre bokstaver og 900 MB gir like store hash-verdier.
Målet den tjener: integritet. Aldri konfidensialitet.
Asymmetrisk kryptering er treg, og hash-verdien er liten uansett hvor stor meldingen er.
Derfor signeres hash-verdien i stedet for innholdet: en signatur på en fil på 900 MB tar like kort tid som på en tekstmelding.
Konstruksjonen virker fordi hash-verdien er følsom: endres meldingen med ett bit, stemmer ikke lenger den signerte verdien med den mottakeren regner ut.
Mottakeren gjør to ting og sammenligner:
1. Regner ut hash-verdien av meldingen slik den ble mottatt.
2. Dekrypterer signaturen med avsenderens offentlige nøkkel, og får hash-verdien slik den var ved signering.
Stemmer de to, er meldingen uendret og fra rett avsender.
Stemmer de ikke, kan man ikke se hvilken av delene som sviktet — og det trengs heller ikke: begge betyr at meldingen ikke skal stoles på.
| Slutning | Gyldig? |
|---|---|
| Meldingen er uendret siden signeringen | Ja |
| Meldingen kommer fra eieren av den private nøkkelen | Ja |
| Avsenderen kan ikke nekte for å ha sendt den | Ja |
| Ingen andre kan lese meldingen | Nei |
| Innholdet er sant eller ufarlig | Nei |
De to siste radene er de viktigste å ha klare. En signatur sier noe om opphav og uendrethet — ingenting om hemmelighold, og ingenting om innholdets kvalitet.
Vil du ha både hemmelighold og bevis for avsender, må to operasjoner gjøres:
1. signer med -> din egen PRIVATE nøkkel
2. krypter med -> mottakerens OFFENTLIGE nøkkelMottakeren gjør det motsatte i motsatt rekkefølge: dekrypterer med sin private, og validerer med din offentlige.
Til sammen er fire nøkler i bruk, to fra hvert nøkkelpar. Rekkefølgen «signer først, krypter etterpå» gjør at også signaturen er skjult for utenforstående.
Et dokument som binder en offentlig nøkkel til en identitet, og som selv er signert av en betrodd utsteder.
Problemet det løser: en offentlig nøkkel sier ingenting om hvem den tilhører. Uten sertifikater kunne en angriper levert sin egen nøkkel og utgitt seg for hvem som helst.
Den faste feilslutningen: å tro at sertifikatet krypterer. Det bekrefter en tilhørighet; krypteringen skjer med nøkkelen det bekrefter.
Den betrodde tredjeparten som kontrollerer identiteten til den som ber om et sertifikat, og signerer det med sin egen private nøkkel.
Nettleseren din har en liste over rot-utstedere den stoler på i utgangspunktet, og kontrollerer hvert sertifikat mot en kjede opp til en av dem.
Svakheten: hele systemet hviler på tillit til utstederne. Blir en utsteder kompromittert, kan angripere få sertifikater i andres navn.
Systemet av sertifikatutstedere, sertifikater og regler som gjør det praktisk mulig å stole på offentlige nøkler. Forkortelsen står for public key infrastructure.
Tre deler å kunne: utstederne som kontrollerer og signerer, tillitskjeden fra rot-utsteder ned til det enkelte sertifikatet, og tilbaketrekking som gjør at et sertifikat kan erklæres ugyldig før det utløper.
Tilbaketrekking er nødvendig nettopp fordi private nøkler kan komme på avveie.
Sertifikatet svarer på «snakker jeg med den jeg tror?», ikke på «kan jeg stole på dem?».
En svindler kan skaffe seg et fullt gyldig sertifikat til sitt eget domene. Et domene som ligner på et kjent navn, kan ha sitt eget gyldige sertifikat.
Den faste distraktoren: at HTTPS eller hengelåsen gjør en nettside «trygg». Riktig formulering: forbindelsen er sikret og motparten identifisert.
Nettleserens melding om at tillitskjeden ikke går opp — sertifikatet er utløpt, selvsignert, utstedt til et annet navn, eller signert av en ukjent utsteder.
Det betyr at du ikke kan vite hvem du snakker med. Nettopp den situasjonen et mellommannsangrep skaper.
Derfor skal en slik advarsel ikke klikkes bort, særlig ikke på et åpent nett. Det er det ene stedet der kryptering alene ikke hjelper deg.
En hash-verdi oppgitt ved siden av en fil lar deg kontrollere at nedlastingen er bit for bit identisk med originalen.
Det beskytter mot: forvanskning underveis, avbrutte nedlastinger, endring hos en mellommann.
Det beskytter ikke mot: en angriper som kontrollerer selve nettsiden og kan endre både fila og den oppgitte verdien.
Løsningen på det siste er å signere hash-verdien: da kan ingen lage en gyldig verdi uten utgiverens private nøkkel.
En hash-verdi som stemmer, beviser at innholdet ikke er endret. Den sier ingenting om hva innholdet er.
Var det skadevare i fila fra starten, er den der fortsatt, og hash-verdien stemmer perfekt.
Dette er et fast alternativ i oppgaver om hash, og det er alltid galt: integritet handler om uendrethet, ikke om godhet.
At en hash-verdi ikke kan regnes tilbake til innholdet den ble laget av.
Dette er grunnen til at hash kan brukes til passordlagring: systemet lagrer hash-verdien i stedet for passordet, og kan kontrollere et innlogget passord uten noen gang å ha lagret det.
Mekanikken, og hvorfor hash alene ikke er nok uten salt, behandles i neste kapittel.
En svakhet som er ukjent for leverandøren, og som det derfor ikke finnes noen rettelse for.
Navnet kommer av at leverandøren har hatt null dager på seg til å lukke hullet.
Hvorfor den er farlig: sikkerhetsoppdateringer og antivirus forutsetter at svakheten er kjent. Det som fortsatt virker, er tiltak som ikke avhenger av å kjenne trusselen — minste privilegium, overvåking av unormal oppførsel, og segmentering.
Et program med en skjult skadelig funksjon, pakket inn i noe som ser nyttig ut.
Kjennetegnet er innpakningen, ikke hva skaden består i: en trojaner kan inneholde en tastelogger, en bakdør eller et løsepengevirus.
Skillet mot de andre typene: viruset fester seg til en vertsfil, ormen sprer seg selv over nett, og trojaneren blir båret inn av brukeren selv.
Mottakeren må regne ut hash-verdien av meldingen for å kunne sammenligne den med den signerte verdien.
Det forutsetter at mottakeren har hele meldingen i klartekst.
Derfor er det ikke en svakhet at en signert melding kan leses — det er en forutsetning for at kontrollen skal være mulig i det hele tatt. Vil du skjule innholdet, krypterer du i tillegg.
Validerer du med mottakerens nøkler i stedet for avsenderens, kontrollerer du ingenting — mottakerens nøkkelpar har ingen tilknytning til signaturen.
Og en «signatur» laget med avsenderens offentlige nøkkel ville vært verdiløs: alle har den nøkkelen, så hvem som helst kunne laget den.
Poenget med en signatur er at bare én person kan produsere den, og at alle kan kontrollere den.
En håndskrevet underskrift er den samme uansett hva dokumentet inneholder, og kan i prinsippet klippes og limes.
En digital signatur er regnet ut fra innholdet. Endres én bokstav i dokumentet, blir signaturen ugyldig.
Derfor gir den digitale signaturen både autentisitet og integritet, mens den håndskrevne bare peker på hvem som skrev under.
1. Signatur gir alt unntatt konfidensialitet — integritet, autentisitet og uavviselighet (felle #4).
2. Hemmelighold bruker mottakerens nøkler; signering bruker avsenderens (felle #5).
3. Hash gir integritet, aldri konfidensialitet (felle #9).
Tre setninger, og de avgjør praktisk talt hver eneste oppgave i sjangeren. Skriv dem i margen før du begynner.
Et mellommannsangrep går ut på at angriperen leverer sin egen offentlige nøkkel og utgir seg for motparten. Kryptering alene stopper det ikke — du får en pent kryptert forbindelse til feil part.
Sertifikatet binder nøkkelen til en identitet, og bindingen er signert av en utsteder nettleseren stoler på.
Angriperen kan ikke lage et gyldig sertifikat for bankens domene uten utstederens private nøkkel — og det er derfor angrepet stopper der.
At et sertifikat erklæres ugyldig før det utløper.
Den viktigste grunnen er at den private nøkkelen har kommet på avveie. Da må sertifikatet trekkes tilbake, ellers kan den som har nøkkelen, fortsette å opptre som eieren.
Dette er den praktiske grunnen til at en privat nøkkel på avveie er så alvorlig: den kan ikke «tas tilbake», bare erklæres ugyldig — og alt som ble signert i mellomtiden, er i tvil.
| Egenskap | Gir HTTPS det? |
|---|---|
| Trafikken kan ikke leses av utenforstående | Ja |
| Trafikken kan ikke endres underveis | Ja |
| Du snakker med den som eier domenet | Ja |
| Nettstedet er hederlig | Nei |
| Innholdet på siden er sant | Nei |
De tre første er konfidensialitet, integritet og autentisitet. De to siste er vurderinger ingen teknologi kan gi deg.
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.