Hvad er TLS (Transport Layer Security)? En forklaring af protokollen
TLS (Transport Layer Security) er en krypteringsprotokol, der sikrer sikker dataoverførsel på internettet. Den er efterfølgeren til den forældede SSL og anvendes nu næsten udelukkende i versionen TLS 1.3.
Hvad er TLS?
I internettets barndom var datasikkerhed ikke så vigtig, som den er i dag. Al kommunikation blev sendt åbent og ukrypteret fra den ene computer til den anden. Man kan forestille sig det som et postkort: enhver postbud kunne læse det.
TLS-protokollen – også kendt som SSL/TLS – indførte kryptering af det overførte indhold. For at fortsætte analogien kan man sige, at denne kryptering er som en forseglet konvolut, som kun den rette modtager kan åbne.
Forkortelsen TLS står for Transport Layer Security. Udtrykket henviser til transportlaget i TCP/IP-modellen. TLS er en metode, der krypterer datastrømme på internettet, så kun autoriserede modtagere kan læse dem.
Krypteringsprotokollens tidligere navn var SSL (Secure Socket Layer). Da denne forkortelse stadig er mere kendt end TLS, omtales TLS ofte under det sammensatte navn »SSL/TLS«.
Hvordan fungerer TLS?
TLS krypterer data, der sendes via internettet, og implementeres normalt oven på TCP ved hjælp af symmetrisk kryptografi.
Det, der lyder enkelt i teorien, er mere kompliceret i praksis. Det grundlæggende problem er, at serveren skal videregive nøglen til klienten –inden kommunikationen sikres med TLS. Enhver, der sender krypterede vedhæftede filer via e-mail, kender til dette problem: Man krypterer en fil og er nødt til at dele den hemmelige adgangskode med modtageren, f.eks. over telefonen.
TLS-protokollen, hvis nuværende standard siden 2018 har været version 1.3, anvender følgende fremgangsmåde til at løse dette problem:
- ClientHello: Klienten (f.eks. en browser) sender en indledende besked til serveren med oplysninger om de understøttede krypteringsmetoder. Dette omfatter krypteringssuiter, protokolversioner, en tilfældig værdi samt sin egen ECDHE-værdi ( Elliptic-Curve-Diffie-Hellman-nøgleudveksling ). Eventuelt kan den første krypterede datablok allerede sendes.
- ServerHello: Serveren vælger de relevante parametre og sender sit svar – herunder sin ECDHE-værdi og sit digitale certifikat. Dette SSL-certifikat beviser, at serveren er autentisk og ikke udgiver sig for at være en anden. Samtidig begynder beregningen af sessionsnøglen.
- Nøgleberegning: Begge sider beregner nu uafhængigt af hinanden den samme sessionsnøgle baseret på den fælles aftalte nøgle.
- Serveren afslutter håndtrykket og påbegynder krypteret kommunikation. Klienten gør det samme; forbindelsen er nu fuldt sikret.
Sammenlignet med tidligere versioner er TLS-håndtrykket i TLS 1.3 betydeligt mere strømlinet og mere sikkert. Hele den her beskrevne proces kræver nu kun én enkelt rundtur (1 RTT), hvilket mærkbart gør forbindelsen hurtigere.
Grunden til, at asymmetrisk kryptering med Diffie-Hellman kun anvendes til overførsel af sessionsnøglen (men ikke til kryptering af selve datastrømmene), er hastighedsfordelen; asymmetrisk kryptering er relativt langsom og ville forsinke datakommunikationen.
Fordele og ulemper ved TLS
TLS er en elegant løsning til at gøre webtrafikken mere sikker. Det kræver ikke, at de to parter selv krypterer indholdet, f.eks. data fra formularer. I stedet er det tilstrækkeligt, at trafikken dirigeres gennem TLS-protokollen, uanset deltagernes operativsystemer og softwareprogrammer. Alle datastrømme krypteres derefter automatisk under overførslen.
Prisen for sikkerheden er, at forbindelsen oprettes lidt langsommere, da de ovennævnte trin i processen – certifikat, tilfældigt tal, nøgleudveksling – er beregningskrævende.
Anvendelsesområder for TLS
Som nævnt kan TLS anvendes universelt, da det er uafhængigt af applikationer og operativsystemer. Der findes derfor en TLS-sikret version af en lang række applikationsprotokoller. Navngivningsreglen er i de fleste tilfælde ganske enkel: Bogstavet »S« tilføjes til protokollens navn, når protokollen kommunikerer via TLS.
Det vigtigste anvendelsesområde for TLS er internettet, nærmere bestemt HTTP-protokollen. Den krypterede version hedder HTTPS.
Ud over disse bør følgende almindelige anvendelsestilfælde nævnes:
- POP3S: Henter e-mails fra serveren ved hjælp af POP3-protokollen
- IMAPS: Synkroniser indbakken med serveren ved hjælp af IMAP-protokollen
- SMTPS: Send e-mails
- FTPS: Filoverførsel via FTP-protokollen
- SIPS: Voice-over-IP-telefoni via SIP-protokollen
- IRCS: Krypterede chats
- QUIC: Googles transportprotokol, der direkte integrerer TLS 1.3; et alternativ til TCP for hurtigere og mere sikre internetforbindelser (f.eks. med HTTP/3)
OpenVPN, et gratis program til oprettelse af et virtuelt privat netværk (VPN), bruger også TLS-protokollen.
Vigtige TLS-implementeringer
Nogle af de mest udbredte implementeringer af TLS omfatter:
- OpenSSL – den absolut mest udbredte implementering, der bruges af de fleste HTTPS-websteder
- GnuTLS (Free Software Foundation)
- LibreSSL (OpenBSD)
- NSS (Network Security Services)
- BoringSSL (Google)
- Rustls (Joe Birr-Pixton, Dirkjan Ochtman, Daniel McCarney, Josh Aas og Open-Source Community)
- Botan (BSD-licens, Jack Lloyd)
- JSSE (Java Secure Socket Extension, Oracle)
- S2n (Amazon)
Denne liste er ikke udtømmende. Du kan finde detaljerede oplysninger om TLS-implementeringer på Wikipedia.
Kendte TLS-angreb
Selvom TLS er udviklet til sikker kommunikation, har det stadig nogle kendte svagheder. Disse omfatter:
- Programmeringsfejl: Heartbleed-fejlen blev kendt som en kritisk programmeringsfejl i tidligere versioner af OpenSSL. Den blev rettet i 2014.
- Svage krypteringer: Som følge af amerikanske eksportrestriktioner for kryptografi blev der udviklet “eksportversioner”, der var lettere at knække end originalerne.
- Komprimeringsangreb: Når HTTP-komprimering bruges i stedet for TLS-komprimering, bliver det muligt for hackere at gætte TLS-krypteret indhold ved hjælp af bestemte metoder.
- BEAST-angrebet påvirkede TLS version 1.0 og blev beskrevet allerede i 2014. Nuværende TLS-versioner er sikre mod det.
- Padding Oracle-angrebet blev opdaget i 2002 og var muligt op til SSL version 3.0. Den nuværende TLS version 1.3 er ikke berørt.
- ALPACA-angrebet fra 2021 viser, hvordan TLS-certifikater på forkert konfigurerede servere kan udnyttes til at omdirigere brugere til andre tjenester og dermed opfange eller manipulere data.
Der har også været bestræbelser på at forhindre fuldstændig sikker TLS-kryptering for at give myndighederne adgang til krypteret kommunikation – for eksempel i forbindelse med finansielle transaktioner og kriminelle aktiviteter. En af de organisationer, der gik ind for en sådan »bevidst sårbarhed« i TLS, var ETSI (Det Europæiske Institut for Telekommunikationsstandarder).