20TD02S_Informasjonssikkerhet_K05_v2_Dypere - itnett/FTD02H-N GitHub Wiki
Kapittel 5: Nøkkelhåndtering og PKI
Innholdsfortegnelse
- Nøkkelhåndtering
- Public-Key Infrastructure (PKI)
- RSA Algoritme
- Elliptic Curve Cryptography (ECC)
- Oppgaver
- Videre Læring og Kilder
1. Nøkkelhåndtering
Nøkkelhåndtering er avgjørende for sikkerheten i kryptografiske systemer. Det inkluderer generering, lagring, distribusjon og destruksjon av kryptografiske nøkler.
Én anvendelse per nøkkel
En enkelt nøkkel skal bare brukes til en enkelt anvendelse (f.eks. kryptering, autentisering, nøkkelinnkapsling). Bruk av samme nøkkel til flere formål kan svekke sikkerheten.
Typer av kryptografiske nøkler
Kryptonøkler klassifiseres etter:
- Om de er offentlige, private eller symmetriske
- Tiltenkt bruk (kryptering, signering, etc.)
- Om de er statiske (lang levetid) eller flyktige (kort levetid)
Kryptoperiode
Kryptoperiode er tidsperioden for godkjent bruk av en bestemt nøkkel. Det er viktig fordi det:
- Begrenser mengden data beskyttet av en gitt nøkkel
- Begrenser skade ved nøkkelkompromittering
- Begrenser bruken av en algoritme til dens sikre levetid
Anbefalte størrelser for nøkler
Anbefalte nøkkelstørrelser varierer med tid og økt beregningskraft. NIST SP 800-57 gir retningslinjer for nøkkelstørrelser.
Kompromittering av nøkler
Kompromittering skjer når en nøkkel er kjent eller mistenkt å være kjent for uautoriserte enheter. Da må nøkkelen anses som kompromittert, og bruken for beskyttelse må opphøre umiddelbart.
2. Public-Key Infrastructure (PKI)
PKI løser utfordringen med nøkkeldistribusjon ved å garantere autentisitet av offentlige nøkler og forenkle nøkkeldistribusjonen. PKI består av:
- Policyer
- Teknologier
- Prosedyrer
- Tillitsmodell for offentlige nøkkelsertifikater
Utfordringer med nøkkeldistribusjon
I et nettverk med $(n)$ noder trenger hvert nodepar en nøkkel for sikker kommunikasjon. PKI reduserer antallet nøkkeldistribusjoner ved å bruke en rot-CA som distribueres til alle noder.
X.509 offentlig nøkkelsertifikater
X.509-sertifikater er en standard for offentlige nøkkelsertifikater som inkluderer:
- Subjektets navn og offentlige nøkkel
- Digital signatur fra en CA
Tillitsmodeller
Tillitsmodeller for PKI inkluderer:
- Enkelt hierarki
- Bruker-sentrisk PKI
- Internett PKI (silo-hierarkier)
3. RSA Algoritme
RSA algoritme er den mest populære metoden for å støtte offentlig nøkkelinfrastruktur. RSA, utviklet av Ron Rivest, Adi Shamir og Leonard Adleman i 1977, produserer et par inverse funksjoner som kan brukes som offentlig og privat nøkkelpar i ulike protokoller.
Hvordan RSA fungerer
- Generering av primtall:
- Velg to store primtall, $( p )$ og $( q )$.
- Beregn modulus $( n )$:
- $( n = p \times q )$
- Velg eksponent $( e )$:
- Eksponent $( e )$ velges slik at det ikke har noen faktorer til felles med $( \varphi(n) = (p-1)(q-1) )$. Ofte brukes 65,537.
- Beregn privat eksponent $( d )$:
- Bruk utvidet euklidisk algoritme for å finne $( d )$ slik at $( e \times d \equiv 1 \pmod{\varphi(n)} )$
- Nøkkelpar:
- Offentlig nøkkel: $( (e, n) )$
- Privat nøkkel: $( (d, n) )$
Kryptering og signering med RSA
Kryptering:
- Melding $( m )$ krypteres med offentlig nøkkel $( (e, n) ): ( c = m^e \mod n )$
- Dekryptering skjer med privat nøkkel $( (d, n) ): ( m = c^d \mod n )$
Signering:
- Meldingsdigest $( h )$ signeres med privat nøkkel $( (d, n) ): ( s = h^d \mod n )$
- Signaturen verifiseres med offentlig nøkkel $( (e, n) ): ( h = s^e \mod n )$
Eksempel med OpenSSL
Generer nøkkelpar:
openssl genpkey -algorithm RSA -out private_key.pem
openssl rsa -in private_key.pem -pubout -out public_key.pem
Signering:
openssl dgst -sha256 -sign private_key.pem -out signature.bin document.txt
Verifisering:
openssl dgst -sha256 -verify public_key.pem -signature signature.bin document.txt
4. Elliptic Curve Cryptography (ECC)
Elliptic Curve Cryptography (ECC) er en populær metode som tillater mindre nøkkelstørrelser for samme sikkerhetsnivå som RSA. ECC ble uavhengig utviklet av Neal Koblitz og Victor Miller i 1985.
Hvordan ECC fungerer
ECC bruker en matematisk struktur kalt elliptisk kurve, som definert ved ligningen: $$[ y^2 = x^3 + ax + b ]$$ Denne kurven brukes til å utføre punktmultiplikasjon, en operasjon som er enkel å utføre, men vanskelig å reversere (diskret logaritmeproblem).
Fordeler med ECC
- Mindre nøkkelstørrelser: Samme sikkerhetsnivå som RSA med mye mindre nøkler.
- Brukes ofte i blokkjeder og pseudo-tilfeldige tallgeneratorer.
Eksempel med OpenSSL
Generer nøkkelpar:
openssl ecparam -genkey -name secp256k1 -out private_key.pem
openssl ec -in private_key.pem -pubout -out public_key.pem
Signering:
openssl dgst -sha256 -sign private_key.pem -out signature.bin document.txt
Verifisering:
openssl dgst -sha256 -verify public_key.pem -signature signature.bin document.txt
5. Oppgaver
Oppgave 1: Sertifikater
a. Grunner for begrenset kryptoperiode:
- Redusert risiko ved nøkkelkompromittering
- Begrenset eksponering for kryptografiske angrep
- Sikrere estimering av algoritmens levetid
- Økt rotasjon av nøkler som gir høyere sikkerhet
b. Perioder for beskyttelse og prosessering:
- Beskyttelse: Bruk av nøkkel for kryptering og signering
- Prosessering: Bruk av nøkkel for dekryptering og validering av signatur
c. Gyldighetsperiode for rotsertifikat: Finn sertifikatets gyldighetsperiode ved å inspisere rotsertifikatet i nettleseren.
d. Utstedelsesdato for mellomliggende CA-sertifikat: Kontroller utstedelsesdato og sammenlign med NIST SP800-57 anbefalinger.
e. Kvantekomputere og rotsertifikater: Rotsertifikater må oppdateres før kvantekomputere blir praktisk tilgjengelige for å forhindre kompromittering.
**f.
SSL/TLS test:** Bruk SSL Labs for å teste sertifikatet og TLS-tjeneren på nsm.no og universitetsforlaget.no.
Oppgave 2: Tillitsmodell
a. Tillitsmodell for PKI i nettlesere: PKI i nettlesere bruker hierarkiske modeller hvor rot-CA signerer mellomliggende CA-er som igjen signerer sluttbrukersertifikater.
b. Fordeler og ulemper:
- Fordeler: Enkel å administrere, effektiv distribusjon
- Ulemper: Kompromittering av rot-CA kan føre til alvorlige sikkerhetsbrudd
c. Tillit skapt av PKI: PKI skaper tillit ved å verifisere at en offentlig nøkkel tilhører den angitte enheten gjennom digital signering av CA-er.
Oppgave 3: Sikkerhet for kryptonøkler
a. Faktorer for styrken til sikkerhetsløsninger:
- Nøkkelstørrelse
- Algoritmens styrke
- Implementeringskvalitet
- Nøkkelhåndtering
b. Viktigheten av nøkkelhåndtering: Korrekt nøkkelhåndtering sikrer at nøkler ikke blir kompromittert under generering, lagring, distribusjon eller destruksjon.
c. Beskyttelse for ulike nøkkelkategorier:
- Symmetriske nøkler: Konfidensialitet
- Asymmetriske offentlige nøkler: Autentisitet og integritet
- Asymmetriske private nøkler: Konfidensialitet
d. Sikkerhetstiltak for nøkkelbeskyttelse:
- Bruk av HSM (Hardware Security Modules)
- Sterk kryptering for nøkkeloppbevaring
- Regelmessig rotasjon og destruksjon av nøkler
Oppgave 4: Nøkkeltyper
a. Nøkkeltransportnøkkel: Brukes for å sikre transport av andre nøkler.
b. Bruk av nøkkeltyper: Nøkkeltypene brukes i symmetriske og asymmetriske kryptosystemer.
c. Fremoverhemmelighold: Sikrer at kompromittering av en nåværende nøkkel ikke avslører tidligere kommunikasjon. Diffie-Hellman nøkkelutveksling gir fremoverhemmelighold.
d. Beskyttelsestyper:
- Nøkkeltyper for beskyttelse: Symmetriske krypteringsnøkler
- Nøkkeltyper for prosessering: Dekrypteringsnøkler
- Nøkkeltyper for begge deler: Noen asymmetriske nøkler
Oppgave 5: CA-autorisering
a. Problemer løst med CA-autorisering: Forhindrer utstedelse av falske sertifikater.
b. Lagre CA-autorisering: Lagring skjer i DNS med CAA-oppføringer.
c. OSCP-sertifikater og "must staple": OCSP (Online Certificate Status Protocol) brukes for å kontrollere om et sertifikat er tilbakekalt. "Must staple" krever at sertifikatet alltid inneholder en OCSP-respons.
Oppgave 6: Sertifikater og tillit
a. Offentlig-nøkkelsertifikater og autentisitet: Sertifikater garanterer at en offentlig nøkkel tilhører den påståtte eieren gjennom signering av CA-er.
b. Betingelser for tillit til sertifikat: Sertifikatet må være signert av en pålitelig CA, ikke utløpt og ikke tilbakekalt.
c. Tillit til rotsertifikater: Rotsertifikater må være forhåndslastet i nettleseren og signert av en kjent pålitelig kilde.
Oppgave 7: Sertifikater i nettlesere
a. Antall rotsertifikater: Varierer mellom nettlesere. Sjekk rotsertifikater i din nettleser.
b. Sertifikater med kort levetid: Identifiser sertifikater med kort levetid i nettleseren.
c. Sertifikater med lang levetid: Finn sertifikater med utløpsdato langt frem i tid.
d. Utløpte sertifikater: Inspiser utløpte sertifikater og observer advarslene.
Oppgave 8: Sertifikatrevokering
a. Nødvendigheten av revokering: Revokering er nødvendig for å forhindre bruk av kompromitterte sertifikater.
b. Problemer løst med "must-staple": "Sikrer at nettlesere alltid sjekker statusen til et sertifikat før tilkobling.
Videre Læring og Kilder
Offisielle Rapporter:
-
ENISA Reports
-
Nasjonal Sikkerhetsmyndighet (NSM)
Akademiske Artikler og Bøker:
- Jøsang, A. (2023). Informasjonssikkerhet: Teori og praksis. Universitetsforlaget.
- Schneier, B. (2015). Data and Goliath: The Hidden Battles to Collect Your Data and Control Your World. W.W. Norton & Company.
Nettressurser:
- NIST Cybersecurity Framework - NIST
- OWASP (Open Web Application Security Project) - OWASP
- SANS Institute - SANS
Disse ressursene gir en omfattende dekning av nøkkelhåndtering og PKI, støttet av eksempler og ressurser for videre studier og forståelse.
For mer om matematikk og anvendelse
RSA Algoritme:
Elliptic Curve Cryptography (ECC):
Denne dokumentasjonen skal gi en omfattende forståelse av nøkkelhåndtering og PKI, med en rekke eksempler, ressurser og oppgaver for å utdype læringen og forståelsen av emnet.