TLS
Også kendt som: Transport Layer Security
Protokollen, der lægger en krypteret kanal om data sendt over TCP/IP, efter at modpartens certifikat er kontrolleret.
Kladde - dette opslag er endnu ikke gennemgået.
Formelt
En protokol oven på TCP/IP, der først kontrollerer modpartens identitet via dens digitale certifikat, aftaler fælles hemmelige nøgler og derefter bruger kryptering til at holde data hemmelige og sikre, at de ikke ændres undervejs. Den afløste den ældre SSL; version 1.3 er den gældende.
Forklaret enkelt
Som at sende dine breve i en låst, forseglet kuffert efter først at have tjekket, at modtageren virkelig er den, de udgiver sig for.
I praksis
En kommunes IT-driftsansvarlige får besked om, at TLS-certifikatet på borgernes selvbetjeningsside udløber om ti dage; hun fornyer det, for ellers ville borgernes browsere vise en sikkerhedsadvarsel, og mange ville give op.
Hvorfor det betyder noget
Uden den kunne alle på det samme wifi eller langs ruten læse eller ændre adgangskoder og persondata, mens de passerer.
Sådan kommer du i gang
De typiske trin i rækkefølge. Tilpas dem til jeres organisation.
- Lav en liste over alle tjenester, der bruger TLS - webservere, load balancere, mailservere, VPN-gateways, databaser, API'er og interne forbindelser mellem tjenester - med ejer, TLS-bibliotek og certifikat.
- Skriv en TLS-baseline ned, fx TLS 1.3 som foretrukket, TLS 1.2 kun med ECDHE og AEAD-ciphersuites, og SSL 3.0, TLS 1.0 og TLS 1.1 slået fra.
- Anvend baselinen på hver server ud fra en gennemprøvet konfigurationsskabelon, fx den Mozilla-baserede Intermediate-profil, i stedet for at vælge ciphersuites i hånden.
- Brug certifikater med mindst RSA 2048-bit- eller ECDSA P-256-nøgler, korrekte navne i subjectAltName og en komplet kæde, og tilføj CAA-records i DNS, der angiver, hvilke CA'er der må udstede til jeres domæner.
- Hold en oversigt over certifikater med udløbsdatoer, automatisér fornyelsen, og alarmér i god tid, før et certifikat udløber.
- Kryptér også intern trafik, og brug mutual TLS, hvor tjenester skal bevise over for hinanden, hvem de er, med certifikater fra en intern CA.
- Sørg for, at klientprogrammer og scripts validerer certifikater, og fjern enhver indstilling, der slår valideringen fra.
- Test alle offentlige endpoints med en TLS-scanner efter hver ændring og mindst hvert kvartal, hold TLS-bibliotekerne patchet, og opdatér baselinen, når vejledningen ændres, også ved overgangen til kvantesikker nøgleudveksling.
Typiske faldgruber
- At slå certifikatvalidering fra i kode eller scripts for at komme forbi en fejl, hvilket i det stille fjerner al beskyttelse mod en man-in-the-middle.
- At lade TLS 1.0 eller svage ciphersuites være slået til for én gammel klient og glemme dem i årevis.
- At glemme certifikater på interne systemer og appliances, så de udløber ubemærket og stopper en kritisk tjeneste.
Gode vejledninger
- Sikker brug af Transport Layer Security (TLS)(åbner i en ny fane) · Styrelsen for Samfundssikkerhed
- NIST SP 800-52 Rev. 2 - Guidelines for the Selection, Configuration, and Use of Transport Layer Security (TLS) Implementations(åbner i en ny fane) · NIST (på engelsk)
- RFC 9325 - Recommendations for Secure Use of Transport Layer Security (TLS) and Datagram Transport Layer Security (DTLS)(åbner i en ny fane) · IETF (på engelsk)
- Transport Layer Security Cheat Sheet(åbner i en ny fane) · OWASP (på engelsk)
Teknisk uddybning
TLS består af en record-protokol, der deler applikationsdata op, beskytter hver record med en AEAD-algoritme og nonces baseret på sekvensnumre, og en række underprotokoller, der bæres i records: håndtrykket, alerts og, i ældre versioner, change cipher spec. Slægtslinjen går fra Netscapes SSL 2.0 (1995) og SSL 3.0 (1996) over TLS 1.0 (RFC 2246, 1999), 1.1 (RFC 4346, 2006) og 1.2 (RFC 5246, 2008) til TLS 1.3 (RFC 8446, 2018). RFC 8996 (2021) udfasede formelt TLS 1.0 og 1.1, og RFC 9325 giver de gældende anbefalinger til konfiguration. DTLS overfører samme design til UDP; DTLS 1.3 er RFC 9147.
I det fulde TLS 1.3-håndtryk (RFC 8446 §2) sender klienten en ClientHello med understøttede cipher suites, en key_share med én eller flere flygtige (EC)DHE-offentlige nøgler, supported_versions og SNI. Serveren svarer med en ServerHello med sin egen key share; herfra udleder begge sider håndtryksnøgler via en HKDF-baseret key schedule, og resten af serverens svar - EncryptedExtensions, Certificate, CertificateVerify (en signatur over hele udvekslingen) og Finished - er allerede krypteret. Klienten verificerer kæden og sender sin Finished, og applikationsdata kan sendes efter én rundtur. Genoptagelse med en pre-shared key kan tilføje 0-RTT early data, som ikke er beskyttet mod genafspilning og kun må bruges til idempotente forespørgsler.
TLS 1.3 fjernede en lang række gamle funktioner, som var roden til tidligere angreb: statisk RSA-nøgletransport (oracle-angreb i Bleichenbacher-stil, ROBOT), CBC-baserede algoritmer (BEAST, Lucky Thirteen, POODLE mod SSL 3.0), RC4, komprimering (CRIME), genforhandling samt eksport-svage og selvdefinerede Diffie-Hellman-grupper (FREAK, Logjam). Der er kun fem cipher suites tilbage, alle AEAD, og hvert fuldt håndtryk giver forward secrecy. En nedgraderingsmarkør i de sidste otte byte af ServerHello.random (§4.1.3) lader en TLS 1.3-klient opdage, hvis en angriber tvinger en ældre version igennem. Heartbleed (2014) var derimod en implementeringsfejl i OpenSSL, ikke en fejl i protokollen.
Serverautentifikation afhænger af validering af X.509-certifikatet: en kæde til et betroet rodcertifikat, et navn, der passer til en subjectAltName-post, gyldighedsdatoer og kontrol af tilbagekaldelse, som i praksis er svag - én af grundene til, at CA/Browser Forum forkorter certifikaternes levetid. Mutual TLS tilføjer et klientcertifikat og er almindeligt mellem tjenester. Åbne problemer er de metadata, TLS efterlader synlige (IP-adresser, størrelser og SNI, medmindre Encrypted Client Hello, RFC 9849, er indført), og kvanterisikoen, som imødegås med den hybride nøgleudveksling X25519MLKEM768, som de store browsere og CDN'er allerede forhandler. Sammenlignet med en VPN sikrer TLS én applikationsforbindelse fra ende til ende ved grænsen mellem transport- og applikationslaget, mens en VPN tunnelerer al IP-trafik mellem en enhed og en netværksgateway; mange "SSL VPN"-produkter er i virkeligheden TLS, der bærer tunnelerede IP-pakker.
Hvad du bør lære først
Alt det, dette bygger på - grundlaget først.
Relationer
- En slags
- Protokol
- Forudsætter
- TCP/IPKrypteringDigitalt certifikat
- Åbner for
- HTTPS
- Implementerer
- FortrolighedIntegritet
- Forveksl ikke med
- VPNEnd-to-end-kryptering
Kilder og videre læsning
Standarder og officielle tekster
- RFC 8446 - The Transport Layer Security (TLS) Protocol Version 1.3
- RFC 9849 - TLS Encrypted Client Hello · IETF
Lærebøger
- Kurose & Ross, Computer Networking: A Top-Down Approach
Hvor dataene kommer fra
Dette opslag er skrevet af en AI ud fra kilderne ovenfor og er endnu ikke gennemgået af et menneske. Brug det som udgangspunkt, og tjek alt vigtigt mod kilderne.
Se gennemgangskøenForeslå en rettelse på GitHubDette begreb som JSON
Test dig selv
Indlæser…