SSL

Från Rilpedia

Hoppa till: navigering, sök
Wikipedia_letter_w.pngTexten från svenska WikipediaWikipedialogo_12pt.gif
rpsv.header.diskuteraikon2.gif
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, SIP, SMTP, SNMP, SSH, Telnet,TLS, SSL , TFTP, …
4.Transport DCCP, SCTP, TCP, RTP, UDP, IL, RUDP, …
3.Nätverk ARP, ICMP, IGMP, IP (IPv4, IPv6),RIP
2.Länk ATM, Ethernet, FDDI, ISDN, MPLS, Token Ring, PPP, SLIP, Wi-Fi, …
1.Fysiska ISDN, RS232, IrDA, Bluetooth, xDSL, …

SSL (Secure Sockets Layer) är en säkerhetsmekanism som uppfanns av Netscape och används för att kryptera kommunikationen mellan två värdar. Ofta är ena värden en webbserver (ex. onlinebutik) och den andra är en webbläsare (ex. Firefox eller Internet Explorer). Tanken med att kryptera datan som sänds till och från dessa två värdar är att ingen annan användare på nätverket (oftast internet) ska kunna avlyssna eller manipulera datan. 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 tyvärr är det inte lika vanligt då det belastar webbservern mer än om kryptering inte används. Högre belastning innebär högre driftkostnader för webbservern och de kostnaderna har antagligen 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.

Innehåll

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. För program som inte redan stöder SSL kan man använda sk. tunnlingsprogram för att tunnla trafiken över SSL till mottagaren. Ett exempel på sådan mjukvara är Stunnel.
SSL kräver ett pålitligt transportprotokoll (ex. tcp).

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 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 några mindre ändringar från v1.0. Aktuell version.

Hur SSL fungerar

SSL använder en kombination av kryptering med publika nycklar och symmetriska nycklar (PKI).
En SSL session börjar alltid med en sk. Handskakning där klienten och servern ska bl.a. komma överens om vilken kryptering som ska användas. När handskakningen är klar är anslutningen etablerad och data kan skickas. Datan som skickas krypteras med de symmetriska nycklar som värdarna kommit överens om i 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 servern publika nyckel och skickar den genererade nyckeln till servern.
  5. Servern dekrypterar premaster secret m.h.a 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 m.h.a 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 identiten på servern och eventuellt också klienten använder SSL certifikat. Certifikaten kan utfärdas själv eller så låter man en Certificate authority (CA) skapa ett. 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 krypteringar, här är några av dem:
DES, DSA, KEA, MD5, RC2, RC4, RSA, SHA-1, SKIPJACK och Triple-DES

Källor

http://docs.sun.com/source/816-6156-10/contents.htm#1041640

Externa länkar

Personliga verktyg