Hva er TLS (Transport Layer Security)? En forklaring på protokollen
TLS (Transport Layer Security) er en krypteringsprotokoll som sikrer sikker dataoverføring på internett. Den er etterfølgeren til den utdaterte SSL-protokollen og brukes nå nesten utelukkende i versjon TLS 1.3.
Hva er TLS?
I internettets barndom var datasikkerhet ikke like viktig som i dag. All kommunikasjon ble sendt åpent og ukryptert fra en datamaskin til en annen. Man kan tenke på det som et postkort: enhver postbud kunne lese det.
TLS-protokollen – også kjent som SSL/TLS – innførte kryptering av overført innhold. For å fortsette analogien kan denne krypteringen sammenlignes med en forseglet konvolutt som bare den rettmessige mottakeren kan åpne.
Forkortelsen TLS står for Transport Layer Security. Begrepet refererer til transportlaget i TCP/IP-modellen. TLS er en metode som krypterer datastrømmer på internett, slik at kun autoriserte mottakere kan lese dem.
Det tidligere navnet på krypteringsprotokollen var SSL (Secure Socket Layer). Siden denne forkortelsen fortsatt er mer kjent enn TLS, blir TLS ofte referert til med det sammensatte navnet «SSL/TLS».
Hvordan fungerer TLS?
TLS krypterer data som sendes via internett og implementeres vanligvis på toppen av TCP ved hjelp av symmetrisk kryptering.
Det som høres enkelt ut i teorien, er mer komplisert i praksis. Det grunnleggende problemet er at serveren må overføre nøkkelen til klienten –før kommunikasjonen sikres med TLS. Alle som sender krypterte e-postvedlegg, kjenner til dette problemet: Man krypterer en fil og må dele det hemmelige passordet med mottakeren, for eksempel over telefonen.
TLS-protokollen, som siden 2018 har hatt versjon 1.3 som gjeldende standard, bruker følgende fremgangsmåte for å løse dette problemet:
- ClientHello: Klienten (f.eks. en nettleser) sender en innledende melding til serveren med informasjon om hvilke krypteringsmetoder som støttes. Dette inkluderer krypteringspakker, protokollversjoner, en tilfeldig verdi og sin egen ECDHE-verdi ( Elliptic-Curve-Diffie-Hellman-nøkkelutveksling ). Eventuelt kan den første krypterte datablokken allerede sendes.
- ServerHello: Serveren velger de riktige parametrene og sender sitt svar – inkludert sin ECDHE-verdi og sitt digitale sertifikat. Dette SSL-sertifikatet beviser at serveren er autentisk og ikke utgir seg for å være noen andre. Samtidig starter beregningen av sesjonsnøkkelen.
- Nøkkelberegning: Begge sider beregner nå uavhengig av hverandre den samme sesjonsnøkkelen basert på den felles avtalte nøkkelen.
- Serveren fullfører håndtrykket og starter kryptert kommunikasjon. Klienten gjør det samme; forbindelsen er nå fullstendig sikret.
Sammenlignet med tidligere versjoner er TLS-håndtrykket i TLS 1.3 betydelig enklere og sikrere. Hele prosessen som beskrives her krever nå bare én rundtur (1 RTT), noe som gir en merkbar økning i tilkoblingshastigheten.
Årsaken til at asymmetrisk kryptering med Diffie-Hellman kun brukes til å overføre sesjonsnøkkelen (men ikke til å kryptere selve datastrømmene) er hastighetsfordelen; asymmetrisk kryptering er relativt treg og ville forsinke datakommunikasjonen.
Fordeler og ulemper ved TLS
TLS er en elegant løsning for å gjøre nettrafikken sikrere. Det krever ikke at de to partene krypterer innholdet selv, for eksempel data fra skjemaer. I stedet er det tilstrekkelig at trafikken sendes via TLS-protokollen, uavhengig av deltakernes operativsystemer og programvare. Alle datastrømmer krypteres da automatisk under overføringen.
Prisen for sikkerheten er at tilkoblingen tar litt lengre tid å opprette, fordi de ovennevnte trinnene i prosessen – sertifikat, tilfeldig tall, nøkkelutveksling – er beregningskrevende.
Anvendelser av TLS
Som nevnt kan TLS brukes universelt fordi det er uavhengig av applikasjoner og operativsystemer. Det finnes derfor en TLS-sikret versjon for en rekke applikasjonsprotokoller. Navngivningsskjemaet er i de fleste tilfeller ganske enkelt: bokstaven «S» legges til i protokollnavnet når protokollen kommuniserer via TLS.
Det viktigste anvendelsesområdet for TLS er internett, nærmere bestemt HTTP-protokollen. Den krypterte versjonen kalles HTTPS.
I tillegg til disse bør følgende vanlige bruksområder nevnes:
- POP3S: Hent e-poster fra serveren ved hjelp av POP3-protokollen
- IMAPS: Synkroniser innboksen med serveren ved hjelp av IMAP-protokollen
- SMTPS: Send e-post
- FTPS: Filoverføring via FTP-protokollen
- SIPS: Voice-over-IP-telefoni via SIP-protokollen
- IRCS: Krypterte chatter
- QUIC: Googles transportprotokoll som integrerer TLS 1.3 direkte; et alternativ til TCP for raskere og sikrere nettforbindelser (f.eks. med HTTP/3)
OpenVPN, et gratis program for å opprette et virtuelt privat nettverk (VPN), bruker også TLS-protokollen.
Viktige TLS-implementeringer
Noen av de mest brukte implementeringene av TLS er blant annet:
- OpenSSL – den klart mest brukte implementeringen blant de fleste HTTPS-nettsteder
- 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-lisens, Jack Lloyd)
- JSSE (Java Secure Socket Extension, Oracle)
- S2n (Amazon)
Denne listen er ikke uttømmende. Du finner detaljert informasjon om TLS-implementeringer på Wikipedia.
Kjente TLS-angrep
Selv om TLS er utviklet for sikker kommunikasjon, har det likevel kjente svakheter. Disse inkluderer:
- Programmeringsfeil: Heartbleed-feilen ble kjent som en kritisk programmeringsfeil i tidligere versjoner av OpenSSL. Den ble rettet i 2014.
- Svake krypteringer: Som følge av amerikanske eksportrestriksjoner for kryptografi ble det utviklet «eksportversjoner» som var lettere å knekke enn originalene.
- Komprimeringsangrep: Når HTTP-komprimering brukes i stedet for TLS-komprimering, blir det mulig for hackere å gjette TLS-kryptert innhold gjennom visse metoder.
- BEAST-angrepet rammet TLS versjon 1.0 og ble beskrevet allerede i 2014. Nåværende TLS-versjoner er sikre mot det.
- Padding Oracle-angrepet ble oppdaget i 2002 og var mulig opp til SSL versjon 3.0. Den nåværende TLS-versjonen 1.3 er ikke berørt.
- ALPACA-angrepet fra 2021 viser hvordan TLS-sertifikater på feilkonfigurerte servere kan utnyttes til å omdirigere brukere til andre tjenester, og dermed fange opp eller manipulere data.
Det har også vært forsøk på å hindre fullstendig sikker TLS-kryptering for å gi myndighetene tilgang til kryptert kommunikasjon – for eksempel i forbindelse med finansielle transaksjoner og kriminell virksomhet. En av organisasjonene som gikk inn for en slik «bevisst sårbarhet» i TLS, var ETSI (Det europeiske instituttet for telekommunikasjonsstandarder).