TLS 1.3-handshake og 0-RTT-genoptagelse
Følg TLS 1.3-handshaken trin for trin, forstå, hvordan protokollen som standard opnår forward secrecy, og vurder sikkerhedsmæssige afvejninger ved 0-RTT-genoptagelse af sessioner.
TLS 1.3-handshake og 0-RTT-genoptagelse er en gratis Cloud & IT Cert Prep-lektion på CoddyKit. Dette er lektion 1 af 4. Du kan læse hele lektionen gratis nedenfor — og derefter øve dig praktisk i browseren med en indbygget kodeeditor og en AI-vejleder, der er tilgængelig døgnet rundt. Den er en del af læringsforløbet i Cloud & IT Cert Prep, og dine fremskridt synkroniseres på tværs af nettet og CoddyKit-appen. Cloud & IT Cert Prep-kurset indeholder 4 lektioner i alt.
Hvorfor TLS 1.3 var nødvendigt
TLS 1.3, der blev udgivet i 2018 (RFC 8446), blev designet til at løse de svagheder, der havde ophobet sig i TLS 1.2 gennem et årti med angreb i den virkelige verden. Tidligere versioner tillod forhandling af svage chifferpakker, understøttede kryptografi på eksportniveau og krævede flere rundrejser, før data kunne flyde. TLS 1.3 fjerner alle forældede algoritmer og strømliner håndtrykket til én rundrejse i det normale tilfælde, hvilket forbedrer både sikkerhed og ydeevne markant.
Oversigt over håndtrykket: Én rundrejse
I TLS 1.3 gennemfører klienten og serveren håndtrykket med 1-RTT (én rundrejse). Klienten sender en ClientHello, der indeholder understøttede chifferpakker og en nøgledeling (ved hjælp af Diffie-Hellman). Serveren svarer med en ServerHello, sin egen nøgledeling, et certifikat og de første krypterede applikationsdata — alt sammen i én transmission. Klienten verificerer derefter certifikatet og sender en Finished-meddelelse, før applikationsdata udveksles.
# Trace TLS 1.3 handshake with openssl
openssl s_client -connect example.com:443 -tls1_3 -msg 2>&1 | grep -E 'ClientHello|ServerHello|Finished'Nøgleudveksling: Kun ephemeral Diffie-Hellman
TLS 1.3 kræver ephemeral nøgleudveksling — RSA-nøgleudveksling er fjernet helt. Al nøgleudveksling skal bruge ECDHE (Elliptic Curve Diffie-Hellman Ephemeral) eller DHE (Diffie-Hellman Ephemeral). Ordet »ephemeral« betyder, at der genereres et nyt nøglepar for hver session. Dette er grundlaget for perfect forward secrecy: Hvis serverens langsigtede private nøgle kompromitteres, kan tidligere sessioner ikke dekrypteres, fordi hver session brugte en unik midlertidig nøgle.
Perfect Forward Secrecy forklaret
Perfect Forward Secrecy (PFS) sikrer, at en angriber, som i dag optager al krypteret trafik og på et senere tidspunkt får fat i serverens private nøgle, stadig ikke kan dekryptere gamle sessioner. I TLS 1.2 med RSA-nøgleudveksling kunne serverens private nøgle dekryptere pre-master-hemmeligheden i alle tidligere sessioner — en katastrofal svaghed. TLS 1.3's ephemeral DH-nøgler betyder, at hver session udleder sine egne nøgler, og at disse ephemeral-nøgler kasseres efter brug.
Forenkling af chifferpakker
TLS 1.2 understøttede over 300 chifferpakker, hvoraf mange var svage eller ødelagte. TLS 1.3 reducerer dette til blot fem chifferpakker, som alle bruger AEAD (Authenticated Encryption with Associated Data): TLS_AES_128_GCM_SHA256, TLS_AES_256_GCM_SHA384, TLS_CHACHA20_POLY1305_SHA256, TLS_AES_128_CCM_SHA256 og TLS_AES_128_CCM_8_SHA256. Dette eliminerer hele angrebskategorier som BEAST, POODLE og FREAK, der udnyttede svag chifferforhandling.
# Check supported TLS 1.3 cipher suites on a server
nmap --script ssl-enum-ciphers -p 443 example.com0-RTT-genoptagelse: Hastighed kontra sikkerhed
0-RTT-genoptagelse (Zero Round Trip Time) er en valgfri funktion i TLS 1.3, som gør det muligt for en klient at sende applikationsdata i den allerførste meddelelse, før håndtrykket er gennemført. Det fungerer ved hjælp af en Pre-Shared Key (PSK) fra en tidligere session. Selvom 0-RTT reducerer ventetiden markant — hvilket er afgørende for API'er med høj trafik — medfører det en væsentlig afvejning: De tidlige data er ikke beskyttet mod replay-angreb.
Risiko for replay-angreb i 0-RTT
I et replay-angreb mod 0-RTT-data kan en angriber, der opsnapper den tidlige datameddelelse, sende den til serveren igen og dermed muligvis udløse den samme handling to gange (f.eks. en betaling eller en tilstandsændring). TLS 1.3-specifikationen advarer udtrykkeligt om, at tidlige 0-RTT-data kun må indeholde idempotente operationer — operationer, der giver det samme resultat, uanset hvor mange gange de udføres, f.eks. en GET-anmodning. Ikke-idempotente operationer (POST, DELETE) bør aldrig bruge 0-RTT.
Pre-Shared Keys og genoptagelse af sessioner
Efter et vellykket fuldt TLS 1.3-håndtryk sender serveren en NewSessionTicket-meddelelse, der indeholder en PSK (Pre-Shared Key), som klienten gemmer. Ved genforbindelse inkluderer klienten denne PSK i sin ClientHello ved hjælp af pre_shared_key-udvidelsen. Serveren genkender den og godkender enten 0-RTT-data eller falder tilbage til 1-RTT-genoptagelse. PSK-billetter er tidsbegrænsede og bør udskiftes hyppigt for at begrænse det tidsrum, hvor de kan være eksponeret.
Krypteret håndtryk: Skjulte metadata
En væsentlig forbedring i TLS 1.3 er, at det meste af håndtrykket er krypteret, herunder serverens certifikat. I TLS 1.2 blev serverens certifikat sendt i klartekst, så en netværksobservatør kunne identificere, hvilket domæne klienten oprettede forbindelse til. TLS 1.3 krypterer certifikatet og de fleste efterfølgende håndtryksmeddelelser, hvilket reducerer de metadata, som passive observatører kan se. Encrypted Client Hello (ECH) er en ny udvidelse, der også skjuler feltet SNI (Server Name Indication).
Fjernede funktioner: Hvad TLS 1.3 eliminerede
TLS 1.3 fjernede adskillige ældre funktioner, der var blevet til sikkerhedsproblemer: RSA-nøgleudveksling (ingen forward secrecy), chifferpakker i CBC-tilstand (sårbare over for padding-orakelangreb), RC4 (fuldstændig ødelagt stream-chiffer), kryptografi på eksportniveau (årsagen til FREAK og Logjam), MD5 og SHA-1 i digitale signaturer, komprimering (årsagen til CRIME) og genforhandling (årsagen til flere angreb). Ved at fjerne disse funktioner har TLS 1.3 fået en markant mindre angrebsflade.
Konfiguration af servere til TLS 1.3
Korrekt implementering af TLS 1.3 kræver, at webserveren konfigureres til at foretrække TLS 1.3, samtidig med at TLS 1.0 og 1.1 deaktiveres. De fleste moderne webservere (Nginx, Apache, IIS) understøtter TLS 1.3 indbygget. Du bør også sikre, at OCSP Stapling er aktiveret, så status for certifikattilbagekaldelse kan leveres uden at klienten kontakter CA'en, og at HSTS-headere forhindrer nedgraderingsangreb til HTTP. Brug værktøjer som SSL Labs til at kontrollere, at din konfiguration opnår vurderingen A+.
# Nginx TLS 1.3 configuration
ssl_protocols TLSv1.2 TLSv1.3;
ssl_ciphers 'TLS_AES_256_GCM_SHA384:TLS_CHACHA20_POLY1305_SHA256:ECDHE-RSA-AES256-GCM-SHA384';
ssl_prefer_server_ciphers off;
ssl_session_timeout 1d;
ssl_session_cache shared:SSL:10m;
add_header Strict-Transport-Security 'max-age=63072000' always;Kort kontrol
Test din forståelse af begreberne i CompTIA Security+ (SY0-701) fra denne lektion.
Opsummering af lektionen
I denne lektion har du lært, at TLS 1.3 gennemfører håndtrykket med 1-RTT og kun bruger ephemeral DH-nøgleudveksling for at opnå perfect forward secrecy, at 0-RTT-genoptagelse muliggør hurtigere genforbindelse ved hjælp af PSK'er, men er sårbar over for replay-angreb og kun bør indeholde idempotente operationer, samt at TLS 1.3 fjerner alle svage ældre funktioner — RSA-nøgleudveksling, CBC-chiffre, RC4, kryptografi på eksportniveau og komprimering — hvilket reducerer angrebsfladen markant. Nu ser vi nærmere på algoritmer til godkendt kryptering som AES-GCM.
Lær Cloud & IT Cert Prep med en AI-underviser — gratis
Skriv og kør rigtig kode i din browser, få øjeblikkelig hjælp fra en AI-underviser døgnet rundt, og fortsæt, hvor du slap, på web eller i appen.
- Kurser
- 150
- Lektioner
- 600
Ofte stillede spørgsmål
Er lektionen “TLS 1.3-handshake og 0-RTT-genoptagelse” gratis?
Ja — hele teksten til “TLS 1.3-handshake og 0-RTT-genoptagelse” kan læses gratis her på nettet. Hvis du vil øve dig interaktivt med en indbygget kodeeditor og en AI-vejleder døgnet rundt og få adgang til resten af Cloud & IT Cert Prep-kurset, skal du opgradere til CoddyKit PRO. Cloud & IT Cert Prep-kurset indeholder 4 lektioner i alt.
Hvad lærer jeg i “TLS 1.3-handshake og 0-RTT-genoptagelse”?
Følg TLS 1.3-handshaken trin for trin, forstå, hvordan protokollen som standard opnår forward secrecy, og vurder sikkerhedsmæssige afvejninger ved 0-RTT-genoptagelse af sessioner. Du øver dig i Cloud & IT Cert Prep med praktisk kode, som du kører direkte i browseren, og en AI-vejleder døgnet rundt besvarer dine spørgsmål, mens du arbejder dig gennem lektionen.
Skal jeg have erfaring for at begynde på Cloud & IT Cert Prep?
Der kræves ingen tidligere erfaring. Cloud & IT Cert Prep på CoddyKit er tilrettelagt for både begyndere og øvede, så du kan starte her eller fra begyndelsen og lære i dit eget tempo. Dette er lektion 1 af 4.
Hvor lang tid tager lektionen “TLS 1.3-handshake og 0-RTT-genoptagelse”?
De fleste CoddyKit-lektioner tager cirka 5–10 minutter. Hver lektion er kort og interaktiv, så du gør løbende fremskridt og kan fortsætte, hvor du slap – på både web og app.
Kan jeg skrive og køre kode i denne Cloud & IT Cert Prep-lektion?
Ja. Alle Cloud & IT Cert Prep-lektioner har en indbygget kodeeditor, så du kan skrive og køre rigtig kode direkte i din browser og få øjeblikkelig feedback fra AI – uden lokal opsætning.
Alle lektioner i dette kursus
- TLS 1.3-handshake og 0-RTT-genoptagelse
- Godkendt kryptering: AES-GCM og ChaCha20-Poly1305
- Nøgleafledningsfunktioner: PBKDF2, bcrypt og Argon2
- Post-kvantekryptografi: CRYSTALS-Kyber og Dilithium