Hop til indhold
Sikkerhed

TLS (Transport Layer Security)

Transport Layer Security

TLS, forkortelse for Transport Layer Security, er en kryptografisk protokol, der beskytter data, når de sendes mellem to enheder over et netværk som internettet. Protokollen sikrer, at indholdet i en forbindelse forbliver fortroligt for udenforstående, at data ikke kan ændres undervejs uden at det opdages, og at parterne i kommunikationen i rimelig grad kan stole på hinandens identitet. TLS placerer sig oven på transportlaget i netværksstakken og bruges af applikationer, der har brug for at udveksle data sikkert over et i øvrigt usikret netværk.

Det mest kendte eksempel er den lille hængelås, som browsere viser ud for adressen, når man besøger for eksempel en netbank eller en webshop. Låsen betyder, at forbindelsen er krypteret med TLS, og at oplysninger som loginoplysninger og betalingskortdata i praksis ikke kan læses af nogen, der måtte opsnappe trafikken undervejs. Uden TLS ville de samme data blive sendt i klartekst, hvor de i princippet kunne læses af enhver med adgang til de netværk, dataene passerer igennem.

Sådan fungerer en TLS-forbindelse

En TLS-forbindelse indledes med et såkaldt handshake mellem klient (fx en browser) og server. Under handshaket bliver de to parter enige om, hvilke krypteringsmetoder de vil bruge, og serveren beviser sin identitet ved hjælp af et digitalt certifikat udstedt af en certificeringsmyndighed (Certificate Authority, CA). Certifikatet knytter en offentlig nøgle til serverens identitet, så klienten kan kontrollere, at den taler med den rigtige modpart og ikke med en angriber, der forsøger at udgive sig for serveren.

Selve handshaket bygger på asymmetrisk kryptografi med et offentligt og et privat nøglepar, men når forbindelsen er etableret, skifter TLS til symmetrisk kryptografi med en fælles, midlertidig nøgle for selve dataudvekslingen. Den kombination giver en fornuftig balance mellem sikkerhed og ydeevne, fordi asymmetrisk kryptografi er regnetungt, mens symmetrisk kryptografi er langt hurtigere at bruge til de store mængder data, der sendes under en session. Når sessionen afsluttes, kasseres den midlertidige nøgle.

Hvor og hvem bruger TLS?

TLS er tættest forbundet med HTTPS, altså den krypterede udgave af HTTP, som stort set alle moderne websites benytter til almindelig browsing. Men protokollen bruges langt bredere end som så: den kan sikre e-mail-forbindelser, filoverførsler, VPN-forbindelser, videokonferencer og VoIP-opkald, ligesom den ofte ligger bag den krypterede kommunikation, når applikationer taler sammen via en REST API. Fælles for alle disse anvendelser er, at data skal krydse et netværk, som afsender og modtager ikke selv har fuld kontrol over.

På den måde bruges TLS af stort set alle, der driver eller besøger en hjemmeside: webshops og netbanker for at beskytte betalingsoplysninger, virksomheder for at sikre intern kommunikation, og udviklere for at beskytte trafik mellem servere og applikationer. Mange sites leverer i dag deres indhold gennem et CDN (Content Delivery Network), hvor det ofte er CDN-leverandøren, der terminerer TLS-forbindelsen tættest på brugeren, før trafikken sendes videre til det bagvedliggende system. TLS løser dog et andet problem end protokoller som SSH (Secure Shell), der specifikt bruges til at logge sikkert ind på og administrere servere fra en fjernplacering, selvom begge dele bygger på kryptografiske principper om autentifikation og kryptering af trafik.

TLS og SSL – hvad er forskellen?

TLS er efterfølgeren til SSL (Secure Sockets Layer), som oprindeligt blev udviklet af Netscape Communications i 1990’erne. Da IETF overtog og standardiserede protokollen, blev navnet ændret til Transport Layer Security, blandt andet for at undgå juridiske uklarheder omkring Netscapes oprindelige navn. I daglig tale bruges “SSL” og “TLS” stadig ofte i flæng, og man støder fortsat på betegnelsen “SSL-certifikat”, selvom det certifikat i praksis anvendes til at etablere en TLS-forbindelse. De to protokoller er dog ikke direkte kompatible med hinanden, og SSL i sine oprindelige versioner regnes i dag for usikkert og bør ikke bruges.

TLS er desuden ikke det samme som HTTPS, selvom de to begreber ofte forveksles. HTTPS er kombinationen af HTTP-protokollen og en underliggende TLS-forbindelse, mens TLS i sig selv er en mere generel sikkerhedsprotokol, der kan bruges til at beskytte mange andre former for netværkstrafik end lige webtrafik.

Fordele og udfordringer ved TLS

Sammenlignet med slet ingen kryptering giver TLS en række håndgribelige fordele: data kan i praksis ikke læses af udenforstående under transport, ændringer i dataene kan opdages, og klienten får en rimelig sikkerhed for, hvem den taler med. Fordi TLS bygges direkte ind i den enkelte applikation frem for at kræve separat sikkerhedsudstyr, kan det desuden give end-to-end-kryptering og en mere granulær kontrol over, hvad der egentlig sendes og modtages på en given forbindelse.

  • Data krypteres, så indholdet ikke kan læses af tredjeparter, der aflytter forbindelsen.
  • Servere (og i visse tilfælde klienter) autentificeres via certifikater, hvilket gør det sværere for en angriber at udgive sig for den anden part.
  • Dataintegritet sikres, så det kan opdages, hvis nogen forsøger at ændre i dataene undervejs.
  • Protokollen er indbygget i den enkelte applikation og kræver derfor ikke separate VPN-tunneler eller lignende ekstraudstyr for at give beskyttelsen.

Der findes også begrænsninger. Fordi TLS typisk fungerer på applikationsniveau, skal hver enkelt applikation understøtte protokollen for at kunne bruge den, hvilket i praksis giver mere administration end en løsning, der beskytter al trafik samlet på netværksniveau. Ældre versioner af TLS har desuden vist sig at indeholde sårbarheder over tid, hvilket er en del af baggrunden for, at protokollen løbende opdateres, og at forældede versioner udfases til fordel for nyere og strammere konfigurationer.

Eksempel
Når en browser viser en hængelås ud for adressen på en netbank, betyder det, at forbindelsen mellem browseren og bankens server er krypteret med TLS.
Ofte stillede spørgsmål
Er TLS og SSL det samme?
Nej. SSL er forgængeren til TLS og regnes i sine oprindelige versioner for usikkert. Navnet blev ændret til TLS, da IETF standardiserede protokollen, men de to protokoller er ikke direkte kompatible, selvom betegnelserne stadig bruges i flæng i daglig tale.
Hvad er forskellen på TLS og HTTPS?
HTTPS er selve kombinationen af HTTP-protokollen og en underliggende TLS-forbindelse. TLS er den mere generelle sikkerhedsprotokol, som kan bruges til at beskytte mange andre former for netværkstrafik end webtrafik, fx e-mail og VPN.
Kan TLS bruges til andet end webbrowsing?
Ja. TLS bruges også til at sikre e-mail-forbindelser, filoverførsler, VPN-forbindelser, videokonferencer og VoIP-opkald, samt til at kryptere trafik mellem servere og applikationer, fx via API'er.
Hvad sker der under et TLS-handshake?
Klient og server bliver enige om krypteringsmetoder, serveren beviser sin identitet via et digitalt certifikat, og parterne udveksler en midlertidig nøgle, som derefter bruges til at kryptere selve dataudvekslingen i sessionen.
Hvem udsteder de certifikater, TLS bruger?
Certifikaterne udstedes af en certificeringsmyndighed (Certificate Authority, CA), som er en betroet tredjepart, der bekræfter, at en given offentlig nøgle rent faktisk tilhører den server eller organisation, certifikatet er udstedt til.
Vil du vide, hvordan et lignende krypteret protokol bruges til at logge sikkert ind på og administrere en server, når man ikke sidder foran den fysisk?
SSH (Secure Shell) →