Secure Sockets Layer

Iz Wikipedije, proste enciklopedije

(Preusmerjeno z SSL)
Skoči na: navigacija, iskanje

Secure Sockets Layer (kratica SSL) in njegov naslednik Transport Layer Security (TLS) sta kriptografska protokola, ki omogočata varno komunikacijo na medmrežju, na primer pri brskanju po spletu in e-poštnim ter instantnim komuniciranjem. Med protokoloma obstajajo majhne razlike, vendar sta v principu enaka.

Protokol SSL je zelo razširjen tudi pri spletnih trgovinah, kjer se pojavlja potreba po prenosu podatkov zaupne narave (npr. osebni podatki in številke kreditnih kartic). Precej prezrto ostaja dejstvo, da SSL pred vdorom ščiti podatke le med pošiljanjem, ne pa tudi po tem, ko prispejo na ciljni računalnik.

Vsebina

[uredi] Zgodovina

Protokol SSL je razvil Netscape. Različica 1.0 ni bila nikoli javno izdana; različica 2.0 je bila izdana leta 1994, vendar je vsebovala mnoge varnostne pomanjkljivosti, kar je vodilo do razvoja SSL različice 3.0, ki je bila izdana leta 1996.

Ta je nato bil podlaga TLS različice 1.0, standardiziranemu protokolu Internet Engineering Task Force (IETF), prvič definiranemu januarja 1999 v RFC 2246.

V Netscapeu so si zastavili naslednje cilje:

  • Varnost in zasebnost povezave
  • Odprtost (lahko so ga začeli uporabljati vsi razvijalci spletnih aplikacij)
  • Možnost povečanja varnosti z novimi, boljšimi algoritmi

[uredi] Potek komunikacije

Uporabnikov brskalnik pošlje zahtevo za spletno stran z varovanim prenosom SSL (ali TLS). Strežnik se predstavi z javnim ključem. Ta proces uporablja enkripcijo z javnim ključem in digitalnim potrdilom. Tako strežnik potrdi da je, kar trdi, da je. Ko se strežnik predstavi, brskalnik ustvari ključ za enkripcijo z simetričnim ključem, ga zakodira z strežnikovim javnim (public) ključem, in mu ga pošlje. Strežnik prejme ključ, ga dekodira z privatnim ključem. Od tu naprej poteka povezava prek veliko hitrejše enkripcije. To je enkripcija s simetričnim ključem. Je bistveno hitrejša za kodiranje in dekodiranje podatkov, hitro pa lahko odkrije tudi, če so bili podatki med prenosom spremenjeni. Strežnik včasih zahteva tudi uporabnikovo predstavitev. Ta se (podobno kot strežnik) predstavi z digitalnim potrdilom / certifikatom.

[uredi] Enkripcija s simetričnem ključem (Symmetric-Key Encryption)

Pri tej enkripciji je ključ za kodiranje lahko izračunan na podlagi ključa za dekodiranje in obratno. Pri večini primerov te enkripcije se za kodiranje in dekodiranje uporablja isti ključ. Uporaba enkripcije s simetričnim ključem je lahko učinkovita, saj je procesorsko nezahtevna in zato uporabniki ne zaznajo prekinitve procesa kot posledico (de)kodiranja. Ta način do neke mere omogoča tudi preverjanje, s kom komunikacija v resnici poteka, zakaj podatke zakodirane z enim ključem lahko dekodira le oseba z tem istim ključem. Torej dokler je ključ znan le dvema stranema, sporočila med njima ne morajo biti dekodirana z nobenim drugim ključem. Torej je ta enkripcija efektivna le, če je ključ skrit pred ostalimi potencialnimi prisluškovalci. Oseba z pridobljenim ključem lahko ne le dekodira sporočila, temveč tudi zakodira nova,spremenjena, ter jih pošlje kot bi jih poslal nekdo izmed pravih lastnikov ključev. Enkripcija s simetričnim ključem igra pomembno vlogo v protokolu SSL.

[uredi] Enkripcija z javnim ključem (Public-Key Encryption)

Enkripcija z javnim ključem vključuje par ključev: zasebni ključ (private key) in javni ključ (public key). Javni ključ je znan vsem in je objavljen, medtem ko je zasebni ključ znan le osebi (strežniku) in mora ostati skrit. Podatki zakodirani z javnim ključem so lahko dekodirani le z pripadajočim privatnim ključem. V splošnem, pri pošiljanju podatkov prejemniku, zakodiramo podatke z njegovim javnim ključem, prejemnik pa ga dekodira s svojim privatnim ključem. V primerjavi s enkripcijo s simetričnim ključem ta enkripcija zahteva več procesorskega časa in je zato manj primerna za pošiljanje večjih količin podatkov. Zato se običajno s to enkripcijo varuje le prenos ključev za simetrično enkripcijo. Ta način uporablja tudi protokol SSL. Deluje pa tudi obratna smer namreč: z javnim ključem se da odkleniti podatke zakodirane z zasebnim ključem. Tak način prenašanja podatkov pa ni zaceljen, saj lahko vsak, ki pozna pošiljateljev javni ključ dekodira poslane podatke. Vseeno se ta metoda uporablja in namreč za preverjanje pošiljatelja. Pošiljatelj torej podatke zaklene najprej s svojim privatnim ključem, nato pa še z prejemnikovim javnim. Edini, ki lahko odpre pošiljko je prejemnik s svojim privatnim ključem in nato še z pošiljateljevem javnim (tega je lahko zaklenil edinole pošiljatelj).

[uredi] Problem z IP-naslovi

SSL lahko deluje le nad eno spletno stranjo na IP-naslov. Torej na strežniku, ki je v medmrežje povezan prek le enega IP-naslova, lahko na tem strežniku vzpostavimo le eno varno povezavo.