TLS (Transport Layer Security) er en kryp­te­rings­pro­tokol, der sikrer sikker da­ta­over­før­sel på in­ter­net­tet. Den er ef­ter­føl­ge­ren til den forældede SSL og anvendes nu næsten ude­luk­ken­de i versionen TLS 1.3.

Hvad er TLS?

I in­ter­net­tets barndom var da­ta­sik­ker­hed ikke så vigtig, som den er i dag. Al kom­mu­ni­ka­tion blev sendt åbent og ukryp­te­ret fra den ene computer til den anden. Man kan fo­re­stil­le sig det som et postkort: enhver postbud kunne læse det.

TLS-pro­tokol­len – også kendt som SSL/TLS – indførte kryp­te­ring af det overførte indhold. For at fortsætte analogien kan man sige, at denne kryp­te­ring er som en forseglet konvolut, som kun den rette modtager kan åbne.

For­kor­tel­sen TLS står for Transport Layer Security. Udtrykket henviser til trans­port­la­get i TCP/IP-modellen. TLS er en metode, der krypterer da­ta­strøm­me på in­ter­net­tet, så kun au­to­ri­se­re­de modtagere kan læse dem.

Note

Kryp­te­rings­pro­tokol­lens tidligere navn var SSL (Secure Socket Layer). Da denne for­kor­tel­se stadig er mere kendt end TLS, omtales TLS ofte under det sam­men­sat­te navn »SSL/TLS«.

Hvordan fungerer TLS?

TLS krypterer data, der sendes via in­ter­net­tet, og im­ple­men­te­res normalt oven på TCP ved hjælp af sym­me­trisk kryp­to­gra­fi.

Det, der lyder enkelt i teorien, er mere kom­pli­ce­ret i praksis. Det grund­læg­gen­de problem er, at serveren skal vi­de­re­gi­ve nøglen til klienten –inden kom­mu­ni­ka­tio­nen sikres med TLS. Enhver, der sender kryp­te­re­de ved­hæf­te­de filer via e-mail, kender til dette problem: Man krypterer en fil og er nødt til at dele den hemmelige ad­gangs­ko­de med mod­ta­ge­ren, f.eks. over telefonen.

TLS-pro­tokol­len, hvis nuværende standard siden 2018 har været version 1.3, anvender følgende frem­gangs­må­de til at løse dette problem:

  1. Cli­ent­Hel­lo: Klienten (f.eks. en browser) sender en ind­le­den­de besked til serveren med op­lys­nin­ger om de un­der­støt­te­de kryp­te­rings­me­to­der. Dette omfatter kryp­te­rings­su­i­ter, pro­tokol­ver­sio­ner, en tilfældig værdi samt sin egen ECDHE-værdi ( Elliptic-Curve-Diffie-Hellman-nøgle­ud­veks­ling ). Eventuelt kan den første kryp­te­re­de datablok allerede sendes.
  2. Ser­ver­Hel­lo: Serveren vælger de relevante parametre og sender sit svar – herunder sin ECDHE-værdi og sit digitale cer­ti­fi­kat. Dette SSL-cer­ti­fi­kat beviser, at serveren er autentisk og ikke udgiver sig for at være en anden. Samtidig begynder be­reg­nin­gen af ses­sions­nøg­len.
  3. Nøg­le­be­reg­ning: Begge sider beregner nu uaf­hæn­gigt af hinanden den samme ses­sions­nøg­le baseret på den fælles aftalte nøgle.
  4. Serveren afslutter hånd­tryk­ket og på­be­gyn­der krypteret kom­mu­ni­ka­tion. Klienten gør det samme; for­bin­del­sen er nu fuldt sikret.
Note

Sam­men­lig­net med tidligere versioner er TLS-hånd­tryk­ket i TLS 1.3 be­ty­de­ligt mere strøm­li­net og mere sikkert. Hele den her beskrevne proces kræver nu kun én enkelt rundtur (1 RTT), hvilket mærkbart gør for­bin­del­sen hurtigere.

Grunden til, at asym­me­trisk kryp­te­ring med Diffie-Hellman kun anvendes til over­før­sel af ses­sions­nøg­len (men ikke til kryp­te­ring af selve da­ta­strøm­me­ne), er ha­stig­heds­for­de­len; asym­me­trisk kryp­te­ring er relativt langsom og ville forsinke da­ta­kom­mu­ni­ka­tio­nen.

Fordele og ulemper ved TLS

TLS er en elegant løsning til at gøre web­tra­fik­ken mere sikker. Det kræver ikke, at de to parter selv krypterer indholdet, f.eks. data fra for­mu­la­rer. I stedet er det til­stræk­ke­ligt, at trafikken dirigeres gennem TLS-pro­tokol­len, uanset del­ta­ger­nes ope­ra­tiv­sy­ste­mer og softwa­re­pro­gram­mer. Alle da­ta­strøm­me krypteres derefter au­to­ma­tisk under over­førs­len.

Prisen for sik­ker­he­den er, at for­bin­del­sen oprettes lidt lang­som­me­re, da de oven­nævn­te trin i processen – cer­ti­fi­kat, til­fæl­digt tal, nøgle­ud­veks­ling – er be­reg­nings­kræ­ven­de.

An­ven­del­ses­om­rå­der for TLS

Som nævnt kan TLS anvendes uni­ver­selt, da det er uaf­hæn­gigt af ap­pli­ka­tio­ner og ope­ra­tiv­sy­ste­mer. Der findes derfor en TLS-sikret version af en lang række ap­pli­ka­tions­pro­tokol­ler. Navn­giv­nings­reg­len er i de fleste tilfælde ganske enkel: Bogstavet »S« tilføjes til pro­tokol­lens navn, når pro­tokol­len kom­mu­ni­ke­rer via TLS.

Det vigtigste an­ven­del­ses­om­rå­de for TLS er in­ter­net­tet, nærmere bestemt HTTP-pro­tokol­len. Den kryp­te­re­de version hedder HTTPS.

Ud over disse bør følgende al­min­de­li­ge an­ven­del­ses­til­fæl­de nævnes:

  • POP3S: Henter e-mails fra serveren ved hjælp af POP3-pro­tokol­len
  • IMAPS: Syn­kro­ni­ser indbakken med serveren ved hjælp af IMAP-pro­tokol­len
  • SMTPS: Send e-mails
  • FTPS: Fi­lover­før­sel via FTP-pro­tokol­len
  • SIPS: Voice-over-IP-telefoni via SIP-pro­tokol­len
  • IRCS: Kryp­te­re­de chats
  • QUIC: Googles trans­port­pro­tokol, der direkte in­te­gre­rer TLS 1.3; et al­ter­na­tiv til TCP for hurtigere og mere sikre in­ter­net­for­bin­del­ser (f.eks. med HTTP/3)

OpenVPN, et gratis program til op­ret­tel­se af et virtuelt privat netværk (VPN), bruger også TLS-pro­tokol­len.

Vigtige TLS-im­ple­men­te­rin­ger

Nogle af de mest udbredte im­ple­men­te­rin­ger af TLS omfatter:

  • OpenSSL – den absolut mest udbredte im­ple­men­te­ring, der bruges af de fleste HTTPS-websteder
  • GnuTLS (Free Software Fo­un­da­tion)
  • 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øm­men­de. Du kan finde de­tal­je­re­de op­lys­nin­ger om TLS-im­ple­men­te­rin­ger på Wikipedia.

Kendte TLS-angreb

Selvom TLS er udviklet til sikker kom­mu­ni­ka­tion, har det stadig nogle kendte svagheder. Disse omfatter:

  • Pro­gram­me­rings­fejl: Heartble­ed-fejlen blev kendt som en kritisk pro­gram­me­rings­fejl i tidligere versioner af OpenSSL. Den blev rettet i 2014.
  • Svage kryp­te­rin­ger: Som følge af ame­ri­kan­ske eks­port­re­strik­tio­ner for kryp­to­gra­fi blev der udviklet “eks­port­ver­sio­ner”, der var lettere at knække end ori­gi­na­ler­ne.
  • Kom­pri­me­rings­an­greb: Når HTTP-kom­pri­me­ring bruges i stedet for TLS-kom­pri­me­ring, 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-cer­ti­fi­ka­ter på forkert kon­fi­gu­re­re­de servere kan udnyttes til at om­di­ri­ge­re brugere til andre tjenester og dermed opfange eller ma­ni­p­u­le­re data.

Der har også været be­stræ­bel­ser på at forhindre fuld­stæn­dig sikker TLS-kryp­te­ring for at give myn­dig­he­der­ne adgang til krypteret kom­mu­ni­ka­tion – for eksempel i for­bin­del­se med fi­nan­si­el­le transak­tio­ner og kri­mi­nel­le ak­ti­vi­te­ter. En af de or­ga­ni­sa­tio­ner, der gik ind for en sådan »bevidst sårbarhed« i TLS, var ETSI (Det Eu­ro­pæ­i­ske Institut for Tele­kom­mu­ni­ka­tions­stan­dar­der).

Gå til ho­ved­me­nu­en