Secure Sockets Layer

Från Wikipedia
(Omdirigerad från SSL)
Hoppa till: navigering, sök
För andra betydelser, se SSL (olika betydelser).
Protokollstack för IP-nätverk
IP-skikt
Protokoll
5. Applikation  BitTorrent | DHCP | DNS | FTP | HTTP | IMAP | IRC | NNTP | POP3 | RTP | SIP | SMTP | SNMP | SSH | Telnet | TLS | SSL | TFTP
4. Transport DCCP | SCTP | TCP | UDP | IL | RUDP
3. Nätverk ARP | BGP | ICMP | IGMP | IP (IPv4 | IPv6) | RIP
2. Länk ATM | Ethernet | FDDI | ISDN | MPLS | Token Ring | PPP | SLIP | Wi-Fi
1. Fysiskt IEEE 802 | ISDN | RS-232 | IrDA | Bluetooth | xDSL

Secure Sockets Layer (SSL) är en säkerhetsmekanism som uppfanns till Netscape och används för att kryptera kommunikationen mellan två enheter. Ofta är ena sidan en webbserver (ex. onlinebutik) och den andra är en webbläsare (ex. Internet Explorer, 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. 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.

Om en webbadress börjar med https://www... används i praktiken SSL. Många vanliga webbplatser (t ex gmail och hotmail) tillåter att man aktiverar SSL genom att ändra http://www... till https://www... dvs genom att bara lägga till ett s.

Tekniska detaljer[redigera | redigera wikitext]

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).

Versioner[redigera | redigera wikitext]

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 pga 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.

Hur SSL fungerar[redigera | redigera wikitext]

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[redigera | redigera wikitext]

  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[redigera | redigera wikitext]

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[redigera | redigera wikitext]

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[redigera | redigera wikitext]

Externa länkar[redigera | redigera wikitext]