TLS (transport layer security) är det säkra kommunikationsprotokoll som används på stora delar av internet. TLS är branschstandarden för allt från den krypterade anslutning som din webbläsare använder för att ansluta till webbplatser till de säkra anslutningar som används av dina bankappar och är anledningen till att du tryggt kan överföra känslig information online.
I den här guiden beskrivs vad en TLS-handskakning är, hur den fungerar och vilken betydelse den har för nätverkssäkerheten och för att säkerställa att din kommunikation är privat och att den inte kan avlyssnas eller manipuleras.
Vad är en TLS handshake?
TLS-kryptering är det kryptografiska standardprotokoll som används för att säkra nätverkskommunikation, inklusive data som du skickar över internet.
Innan krypterad kommunikation kan ske måste förtroende etableras mellan de två kommunicerande parterna (t.ex. webbservern som är värd för en webbplats och din webbläsare som öppnar den).
Det är vad TLS-handskakningen gör; den upprättar en säker kanal mellan klienten och servern genom att kommunicera vilka TLS-versioner och chiffersviter som stöds av båda, autentisera serverns identitet med hjälp av dess offentliga nyckel och SSL-certifikat och slutligen generera sessionsnycklar som kommer att användas för att unikt kryptera anslutningen.
TLS jämfört med SSL
TLS är efterföljaren till SSL (Secure Sockets Layer) och ersätter det som krypteringsprotokollet bakom HTTPS (det säkra HTTP-protokollet som levererar webbsidor till din webbläsare och data till dina appar). TLS används även av annan programvara som kräver säker nätverkskommunikation, t.ex. VPN-lösningar.
Inblandade kryptografiska element
TLS-kryptering bygger på flera kryptografiska element/begrepp:
- Chiffersviten: Cipher Suite är den algoritm som används för att säkra en TLS-krypterad anslutning. Varje svit innehåller en nyckelutbytesalgoritm, en krypteringsalgoritm och en MAC-algoritm (Message Authentication Code).
- Symmetrisk kryptering: En enda kryptografisk nyckel används för att säkra anslutningen av både servern och klienten. Båda parter måste känna till nyckeln och ingen tredje part får känna till eller kunna gissa sig till den, annars äventyras säkerheten i anslutningen.
- Asymmetrisk kryptering: Den här krypteringsmetoden, som även kallas kryptering med publik nyckel, innebär att servern och klienten använder separata privata och publika nycklar för att kryptera data och säkra anslutningen. Den privata nyckeln krävs för att dekryptera data som krypterats med den publika nyckeln.
- Autentisering: För att kunna ansluta säkert till en server (och inte till en imitatör) måste den kunna bevisa sin identitet bortom allt tvivel genom autentisering.
TLS-versioner och kompatibilitet
TLS 1.0 släpptes 1999, TLS 1.1 släpptes 2006, TLS 1.2 2008 och den senaste TLS-versionen 1.3 släpptes 2018. Varje version innehöll betydande förbättringar av säkerheten, inklusive ytterligare chiffersviter och skydd mot nya attacker.
De flesta servrar stöder både TLS 1.3 och TLS 1.2 för bakåtkompatibilitet med äldre klienter.
Steg-för-steg-process för en TLS-handskakning
TLS 1.3 effektiviserar och förbättrar säkerheten i handskakningsprocessen avsevärt jämfört med tidigare versioner. Här följer en detaljerad beskrivning av processen för att säkra en TLS 1.3-anslutning:
- Klienten hälsar: Klienten skickar ett “hej”-meddelande till servern för att initiera TLS-handskakningen och anslutningen. Detta inkluderar de TLS-versioner, chiffersviter, nyckeldelningsmetoder och tillägg som stöds. Den innehåller även “client random”, som är slumpmässiga data som kommer att användas för att generera masterhemligheten. I många fall kan de hemliga parametrarna för premaster även genereras när klienten kan gissa vilken metod för nyckeldelning som servern kommer att använda (vilket ofta är fallet på grund av det minskade antalet chiffersviter som stöds av TLS 1.3), vilket minskar antalet rundresor som krävs för klienten och servern.
- Mästarens hemlighet: Servern väljer en TLS-version, chiffersvit och nyckeldelning som är kompatibel med klienten och genererar sin “server random”. När klienten och servern har klientens slumpmässiga, premaster-hemligheten och serverns slumpmässiga kan de oberoende av varandra generera samma masterhemlighet.
- Serverhallå och asymmetrisk kommunikation: Servern svarar på klientens “hello” genom att skicka den valda TLS-versionen, chiffersviten och serverns SSL/TLS-certifikat som innehåller dess publika nyckel och certifikatutfärdare (CA). Klienten kan verifiera serverns identitet med certifikatutfärdaren.
- Generering av sessionsnycklar: Klienten och servern genererar matchande sessionsnycklar från huvudhemligheten.
- “Färdiga” meddelanden och symmetrisk kommunikation: Klienten och servern utbyter “färdiga” meddelanden som innehåller den symmetriska sessionsnyckeln och en hash av den handskakningsprocess som har ägt rum för att säkerställa att den inte har störts. TLS-handskakningen är avslutad när “finished”-meddelandena har dekrypterats och validerats av båda parter.
När TLS-handskakningen har slutförts kan anslutningen användas för att överföra data på ett säkert sätt med hjälp av de symmetriska sessionsnycklarna.
Felsökning av problem med TLS-handskakning
Den vanligaste orsaken till problem med TLS-handskakning är att tiden är felaktigt inställd på servern eller klienten (en enkel åtgärd). Föråldrade certifikatutfärdare på klienten kan även vara en möjlig orsak om operativsystemet inte har uppdaterats på ett tag.
På serversidan misslyckas TLS-anslutningar om det inte finns några TLS-versioner eller chiffersviter som stöds ömsesidigt, eller om SSL/TLS-certifikatet har återkallats av certifikatutfärdaren, har löpt ut eller om serverns värdnamn inte stämmer överens med det som anges i certifikatet.
Om du har problem med nätverksanslutningen eller ansluter till en långsam server kan TLS-handskakningar misslyckas om de tar slut på grund av fördröjning.
Säkra kommunikationsprotokoll är inte helt säkra
TLS ligger till grund för nätverkssäkerheten för i stort sett allt som händer på nätet just nu. Men bara för att den kan överföra data på ett säkert sätt (efter den viktiga TLS-handskakningen) betyder det inte att det som överförs på ett säkert sätt inte är skadligt.
Bara för att du har en säker anslutning till en webbplats betyder det inte att den inte kan innehålla ett virus, så du bör hålla dig till att ladda ner programvara från välrenommerade webbplatser (eller ännu bättre, officiella appbutiker), och om du driver ett företag bör du skydda och säkra din infrastruktur med robust endpoint-hantering.