Secure Sockets Layer

För andra betydelser, se SSL (olika betydelser).

Secure Sockets Layer (SSL) är ett säkerhetsprotokoll som utvecklades av Netscape och som användes för att kryptera kommunikationen mellan två enheter. Numera har SSL ersatts av Transport Layer Security (TLS) för att åtgärda de säkerhetsbrister som finns i SSL. Så ofta används SSL som synonym för TLS. Ofta är ena sidan en webbserver (ex. onlinebutik) och den andra är en webbläsare (ex. Edge, Chrome eller Firefox). Tanken med att kryptera data som sänds till och från dessa två enheter är att ingen annan på nätverket (oftast internet) ska kunna avlyssna eller manipulera informationen.[1] Handlar man på internet så faller det sig naturligt att man använder SSL för att kryptera ex. kreditkortsinformation. Även mindre "kritiska" data, ex. lösenord, bör krypteras men det är inte lika vanligt, då det belastar webbservern mer än om kryptering inte används. Högre belastning innebär större fördröjning och högre driftkostnader för webbservern och de kostnaderna har kanske högre prioritet än användarnas säkerhet.

SSL kan med fördel användas för ökat integritetsskydd på Internet och därmed för att omöjliggöra, eller i vart fall kraftigt försvåra, att avlyssna trafiken.

SSL lanserades 1994 av webbläsaren Netscape.[1]

Tekniska detaljer

SSL arbetar mellan Transportlagret och Applikationslagret i TCP-IP-modellen. Att SSL arbetar på en så hög nivå medför att utvecklarna måste implementera stöd för SSL i programvaran. Saknas stöd för SSL kan man använda sk. tunnlingsprogram för att kapsla in trafiken i SSL. Ett exempel på sådan mjukvara är Stunnel.

SSL kräver ett pålitligt transportprotokoll (ex. TCP).

SSL är numera bara av historiskt intresse och har ersatts av sin efterföljare Transport Layer Security (TLS).

Versioner

SSL finns i ett antal olika versioner:

  • v1 (1994) är den första versionen och användes inte då och ej heller nu.
  • v2 (1994) ersatte v1 men på grund av säkerhetsbrister togs v3 fram.
  • v3 (1996) är den version av SSL som används mest idag.
  • TLS 1.0 (1999) RFC 2246 är nästan samma som SSLv3, fast lite mer utbyggd. IETF har nu tagit över utvecklingen och standarden är numera öppen.
  • TLS 1.1 (2006) RFC 4346 har några mindre ändringar jämfört med TLS 1.0. Aktuell version.
  • TLS 1.2 (2008) RFC 5246

Hur SSL fungerar

SSL använder en kombination av kryptering med publika nycklar (PKI) och symmetriska nycklar.
En SSL-session börjar alltid med en så kallad handskakning där klienten och servern bland annat ska komma överens om vilken kryptering som ska användas. När handskakningen är klar är anslutningen etablerad och data kan skickas. Informationen som skickas krypteras med de symmetriska nycklar som värdarna kommit överens om under handskakningen.

Handskakningen

  1. Klienten skickar sitt versionsnummer, krypteringsinställningar, certifikat och annan data som behövs för servern för att kommunicera med klienten.
  2. Servern skickar sin uppsättning av samma information till klienten. Servern skickar också med sitt certifikat.
  3. Klienten använder delar av den mottagna informationen för att verifiera att servern är den server som det ska vara.
  4. Klienten använder all data som hittills har genererats i handskakningen och genererar en nyckel ("premaster secret"), krypterar den med serverns publika nyckel och skickar den genererade nyckeln till servern.
  5. Servern dekrypterar premaster secret med hjälp av sin privata nyckel, bearbetar denna och får fram master secret. Klienten bearbetar också premaster secret på samma sätt som servern.
  6. Både klienten och server genererar sessionsnycklar med hjälp av master secret. Sessionsnycklarna är symmetriska nycklar och används för att kryptera, dekryptera och verifiera integriteten på den data som skickas till och från servern och klienten.
  7. Klienten skickar två meddelanden till servern. Det första säger att framtida meddelanden är krypterade med sessionsnyckeln och det andra säger att klienten är klar med handskakningen.
  8. Servern skickar två meddelanden till klienten och de innebär samma sak som de två klienten skickat.

Certifikat

För att säkerställa identiteten på servern och ibland också klienten använder SSL certifikat. Certifikaten kan vara egentillverkade eller skapade av en Certificate authority (CA). Skapar man det själv kommer användaren att tillfrågas om den litar på certifikatet, något som man slipper om en CA har utfärdat certifikatet.

Krypteringen

SSL kan använda flera olika krypteringsmetoder, här är några av dem:
DES, DSA, KEA, MD5, RC2, RC4, RSA, SHA-1, SKIPJACK och Triple-DES

Källor

Noter

Externa länkar