Cloud & IT Cert Prep · leksjon

Bruksområder for PKI: HTTPS, S/MIME og kodesignering

Bruk PKI-konsepter i praktiske situasjoner: sikre webtrafikk, kryptere e-post med S/MIME og kontrollere programvareintegritet med sertifikater for kodesignering.

Leksjon 4 av 413 trinn

Bruksområder for PKI: HTTPS, S/MIME og kodesignering er en gratis leksjon i Cloud & IT Cert Prep på CoddyKit. Dette er leksjon 4 av 4. Du kan lese hele leksjonen gratis nedenfor – og deretter øve praktisk i nettleseren med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt. Den er en del av læringsløpet i Cloud & IT Cert Prep, og fremdriften din synkroniseres mellom nettet og CoddyKit-appen. Kurset i Cloud & IT Cert Prep inneholder totalt 4 leksjoner.

PKI i virkelige bruksområder

Public Key Infrastructure (PKI) er den usynlige ryggraden i sikker digital kommunikasjon. Sertifikatene og CA-ene De har studert, brukes daglig i dusinvis av virkelige scenarier. Security+-eksamen tester evnen Deres til å gjenkjenne bruksområder for PKI, forstå hvilken sertifikattype som passer i hvert tilfelle, og identifisere hvilken beskyttelse PKI gir i hver sammenheng. De tre viktigste bruksområdene på eksamen er HTTPS/TLS (nettsikkerhet), S/MIME (e-postsikkerhet) og kodesignering (programvareintegritet).

HTTPS: PKI for nettsikkerhet

HTTPS (HTTP over TLS) er det mest synlige bruksområdet for PKI. Når De kobler til https://bank.com, gjør nettleseren følgende: (1) mottar TLS-sertifikatet til serveren, (2) bekrefter at sertifikatkjeden fører til en klarert rot-CA, (3) kontrollerer vertsnavnet mot SAN-feltene, (4) bekrefter at sertifikatet ikke er tilbakekalt, og (5) bruker den offentlige nøkkelen i en Diffie-Hellman-nøkkelutveksling for å opprette en kryptert økt. Hengelåsikonet i nettleseren viser at alle disse kontrollene er bestått. Et manglende eller ugyldig sertifikat utløser en nettleseradvarsel som hindrer de fleste brukere i å fortsette.

# Check HTTPS certificate details
curl -v https://example.com 2>&1 | grep -A 10 'SSL certificate'

# Test TLS configuration quality
openssl s_client -connect example.com:443 -tls1_3 2>/dev/null | \
  grep -E 'Protocol|Cipher|Verify'
# Protocol: TLSv1.3
# Cipher: TLS_AES_256_GCM_SHA384
# Verify return code: 0 (ok)

S/MIME: PKI for e-postsikkerhet

S/MIME (Secure/Multipurpose Internet Mail Extensions) bruker PKI-sertifikater til å tilby to sikkerhetstjenester for e-post. Kryptering: Avsenderen krypterer e-postinnholdet med mottakerens offentlige nøkkel, slik at bare mottakeren kan dekryptere det – og beskytter konfidensialiteten selv om e-posten blir fanget opp under overføring eller lagret på en kompromittert server. Digitale signaturer: Avsenderen signerer med sin private nøkkel, noe som beviser overfor mottakeren at e-posten faktisk kommer fra avsenderen og ikke er endret – og beskytter integriteten samt gir ikke-benektelse. S/MIME krever at hver bruker har sitt eget sertifikat utstedt av en CA.

# S/MIME email signing and encryption with OpenSSL
# Sign an email
openssl smime -sign -in email_body.txt -signer alice_cert.pem \
  -inkey alice_private.key -out signed_email.eml -outform PEM

# Encrypt an email (using Bob's public key/certificate)
openssl smime -encrypt -aes256 -in email_body.txt \
  -out encrypted_email.eml bob_cert.pem

# Bob decrypts with his private key
openssl smime -decrypt -in encrypted_email.eml \
  -recip bob_cert.pem -inkey bob_private.key

Kodesignering: PKI for programvareintegritet

Kodesignering bruker PKI til å signere programvare digitalt – kjørbare filer, skript, drivere og installasjonsprogrammer – slik at brukere kan bekrefte at programvaren kommer fra en klarert utgiver og ikke er manipulert. Programvareleverandøren signerer koden med en privat nøkkel fra et kodesigneringssertifikat som er utstedt av en klarert CA. Når en bruker kjører programvaren, bekrefter operativsystemet signaturen ved hjelp av leverandørens offentlige nøkkel fra sertifikatkjeden. Windows SmartScreen, macOS Gatekeeper og appbutikkene for iOS/Android er alle avhengige av kodesignering for å etablere programvarens opphav. Usignert programvare kan bli blokkert eller utløse sikkerhetsadvarsler.

# Verify code signing on Windows (PowerShell)
Get-AuthenticodeSignature -FilePath 'C:\Software\installer.exe' | Format-List
# Status: Valid
# SignerCertificate: [certificate details]
# TimeStamperCertificate: [timestamp CA details]

# On Linux/macOS, verify GPG signature of downloaded software
gpg --verify hashicorp_public.gpg terraform.zip.sig terraform.zip
# Good signature from 'HashiCorp Security (hashicorp.com/security)'

Autentisering med klientsertifikat

Autentisering med klientsertifikat (også kalt gjensidig TLS eller mTLS) utvider den vanlige TLS-modellen ved å kreve at klienten også presenterer et sertifikat. I standard TLS blir bare serveren autentisert med sertifikat; i mTLS blir begge parter gjensidig autentisert. Dette brukes til: VPN-autentisering (smartkort eller klientsertifikater i stedet for passord), API-autentisering (maskin-til-maskin-autentisering der klienten er en tjeneste, ikke en person) og privilegert administratortilgang (der administratorer må bruke maskinvarebrikker med innebygde sertifikater).

# nginx configuration for mutual TLS (client certificate required)
# server {
#   listen 443 ssl;
#   ssl_certificate /path/to/server_cert.pem;
#   ssl_certificate_key /path/to/server_key.pem;
#   ssl_client_certificate /path/to/ca_cert.pem;
#   ssl_verify_client on;
#   ssl_verify_depth 2;
# }

# Test with a client certificate
curl --cert client_cert.pem --key client_key.pem https://api.example.com/

Kontroll av SSH-vertsnøkler

SSH bruker kryptografi med offentlige nøkler til to formål: serverautentisering og klientautentisering. Serverautentisering: Når De kobler til en SSH-server for første gang, presenterer den vertsnøkkelen sin (offentlige nøkkel). SSH-klienten lagrer denne i ~/.ssh/known_hosts. Ved senere tilkoblinger varsler SSH Dem hvis vertsnøkkelen er endret, noe som kan indikere et MITM-angrep eller at serveren er bygget på nytt. Klientautentisering: I stedet for passord bruker administratorer nøkkelpar – den offentlige nøkkelen legges til i serverens authorized_keys, og den private nøkkelen (som aldri sendes) beviser identiteten. SSH-vertsnøkler er separate fra PKI-sertifikater, men har samme tillitsfunksjon.

# First-time SSH connection stores server host key
ssh user@server.example.com
# The authenticity of host 'server.example.com' can't be established.
# ED25519 key fingerprint is SHA256:abc123...
# Are you sure you want to continue connecting (yes/no/[fingerprint])? yes

# Host key stored in: ~/.ssh/known_hosts
cat ~/.ssh/known_hosts | grep server.example.com

# If host key changes: 
# WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!

Dokumentsignering og tidsstempling

PKI muliggjør juridisk bindende digital dokumentsignering i mange jurisdiksjoner. Adobe PDF-signaturer, DocuSign og offentlige systemer for elektroniske signaturer bruker alle PKI-sertifikater til å signere dokumenter. Et viktig supplement til dokumentsignering er tidsstempling: En Trusted Timestamp Authority (TSA) medsignerer dokumentets hash med et betrodd tidspunkt og beviser dermed at dokumentet eksisterte på et bestemt tidspunkt. Tidsstempling er også avgjørende for kodesignering – uten et tidsstempel blir kodesignaturer ugyldige når signeringssertifikatet utløper, selv for programvare som ble distribuert før utløpsdatoen.

IoT-enhetssertifikater

Etter hvert som IoT-enheter blir stadig mer utbredt, tilbyr PKI en mekanisme for å autentisere enheter i stor skala. Hver enhet utstyres med et unikt sertifikat under produksjonen (en prosess kalt klargjøring av enhetsidentitet), slik at servere kan autentisere enkeltstående enheter ved hjelp av sertifikatene deres. Dette muliggjør scenarier som at en smartmåler beviser identiteten sin overfor energiselskapets server, at en medisinsk enhet autentiserer seg mot et sykehusnettverk, eller at en kjøretøyflåte autentiserer seg mot produsentens backend. IoT-PKI må håndtere millioner av enheter med begrensede ressurser, noe som driver bruken av ECC-sertifikater på grunn av den lille størrelsen og raske verifiseringen.

VPN-autentisering med sertifikater

Sertifikatbasert VPN-autentisering er betydelig sikrere enn passordbasert VPN-autentisering. Hver VPN-bruker eller -enhet får utstedt et klientsertifikat av organisasjonens interne CA. Ved tilkobling bekrefter VPN-gatewayen klientsertifikatet (og kontrollerer at det er utstedt av den klarerte interne CA-en, er innenfor gyldighetsperioden og ikke er tilbakekalt via CRL/OCSP). Når en ansatt slutter, hindrer tilbakekalling av sertifikatet umiddelbart VPN-tilgang – noe som er mer pålitelig enn å håpe at vedkommende ikke har delt passordet sitt med andre.

# OpenVPN client certificate configuration
# client
# remote vpn.example.com 1194
# proto udp
# ca ca.crt        <- CA certificate (trust anchor)
# cert client.crt  <- Client's certificate
# key client.key   <- Client's private key
# tls-auth ta.key 1
# cipher AES-256-GCM

# The VPN server verifies the client cert chain against ca.crt
# Revoked certs listed in CRL won't be accepted

Vanlige sertifikatrelaterte feil

Sikkerhetseksperter må kunne diagnostisere vanlige sertifikatfeil. Sertifikatet er utløpt: Datoen notAfter er passert – forny sertifikatet. Vertsnavnet samsvarer ikke: SAN-en i sertifikatet samsvarer ikke med det forespurte vertsnavnet – kontroller CN-er og SAN-er; det kan være nødvendig med et jokertegnsertifikat eller et sertifikat med flere SAN-er. Selvsignert sertifikat: Ingen CA har gått god for sertifikatet – legg det til i det lokale tillitslageret eller erstatt det med et CA-signert sertifikat. Ufullstendig kjede: Det mellomliggende CA-sertifikatet leveres ikke av serveren – konfigurer serveren til å sende hele kjeden. Sertifikatet er tilbakekalt: CRL eller OCSP viser tilbakekalling – umiddelbar håndtering av kompromittert nøkkel er nødvendig.

# Diagnose certificate errors with openssl
openssl s_client -connect server.example.com:443 2>&1
# Common error messages:
# depth=0 ... error 10 at 0 depth lookup: certificate has expired
# depth=0 ... error 18: self-signed certificate
# depth=0 ... error 20: unable to get local issuer certificate (broken chain)
# depth=0 ... error 23: certificate revoked
# Verify return code: 0 (ok) = success

Jokertegnsertifikater kontra SAN-sertifikater

To sertifikattyper håndterer flere vertsnavn. Et jokertegnsertifikat dekker alle underdomener på første nivå i et domene: *.example.com dekker www.example.com, mail.example.com og api.example.com, men IKKE sub.api.example.com (to nivåer). Ett sertifikat og én privat nøkkel for alle tjenester er praktisk, men risikabelt hvis nøkkelen kompromitteres (alle tjenester rammes). Et sertifikat med flere SAN-er viser uttrykkelig flere bestemte domener i SAN-utvidelsen (for eksempel example.com, www.example.com og api.example.com). Dette gir mer detaljert kontroll, men krever at sertifikatet oppdateres når nye domener legges til.

Kort kontroll

Test forståelsen Deres av CompTIA Security+ (SY0-701)-konseptene fra denne leksjonen.

Oppsummering av leksjonen

I denne leksjonen har De lært at HTTPS/TLS bruker serversertifikater til å kryptere nettrafikk og autentisere servere; S/MIME-sertifikater muliggjør signering og kryptering av e-post; kodesigneringssertifikater beviser programvareintegritet og utgiverens identitet; og klientsertifikater muliggjør gjensidig autentisering for VPN-er og API-er. Neste tema er passordregler og flerfaktorautentisering.

Gratis å komme i gang

Lær deg Cloud & IT Cert Prep med en AI-veileder – gratis

Skriv og kjør ekte kode i nettleseren, få umiddelbar hjelp fra en AI-veileder som er tilgjengelig døgnet rundt, og fortsett der du slapp – på nettet eller i appen.

Kurs
150
Leksjoner
600

Ofte stilte spørsmål

Er leksjonen «Bruksområder for PKI: HTTPS, S/MIME og kodesignering» gratis?

Ja – hele teksten i «Bruksområder for PKI: HTTPS, S/MIME og kodesignering» er gratis å lese her på nettet. For å øve interaktivt med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt, og for å låse opp resten av Cloud & IT Cert Prep-kurset, kan du oppgradere til CoddyKit PRO. Kurset i Cloud & IT Cert Prep inneholder totalt 4 leksjoner.

Hva lærer jeg i «Bruksområder for PKI: HTTPS, S/MIME og kodesignering»?

Bruk PKI-konsepter i praktiske situasjoner: sikre webtrafikk, kryptere e-post med S/MIME og kontrollere programvareintegritet med sertifikater for kodesignering. Du øver på Cloud & IT Cert Prep med praktisk kode som du kjører direkte i nettleseren, mens en AI-veileder som er tilgjengelig døgnet rundt, svarer på spørsmålene dine mens du jobber deg gjennom leksjonen.

Trenger jeg erfaring for å begynne med Cloud & IT Cert Prep?

Ingen tidligere erfaring er nødvendig. Cloud & IT Cert Prep på CoddyKit er lagt opp for både nybegynnere og viderekomne, så De kan begynne her eller helt fra start og lære i Deres eget tempo. Dette er leksjon 4 av 4.

Hvor lang tid tar leksjonen «Bruksområder for PKI: HTTPS, S/MIME og kodesignering»?

De fleste CoddyKit-leksjoner tar omtrent 5–10 minutter. Hver leksjon er kort og interaktiv, slik at De gjør jevne fremskritt og kan fortsette akkurat der De slapp – både på nettet og i appen.

Kan jeg skrive og kjøre kode i denne Cloud & IT Cert Prep-leksjonen?

Ja. Alle Cloud & IT Cert Prep-leksjoner har en innebygd kodeeditor, slik at De kan skrive og kjøre ekte kode direkte i nettleseren og få umiddelbar tilbakemelding fra AI – uten lokal konfigurering.

Alle leksjonene i dette kurset

  1. Sertifikatutstedere og tillitskjeder
  2. X.509-sertifikatets struktur
  3. Sertifikatenes livssyklus og tilbakekalling
  4. Bruksområder for PKI: HTTPS, S/MIME og kodesignering
← Tilbake til Cloud & IT Cert Prep