Secure Sockets Layer
Iz Wikipedije, proste enciklopedije
Vsebina |
[uredi] Kaj je SSL?
SSL je okrajšava za Secure Sockets Layer. Skupaj s TLS-jem (Transport Layer Security), ki je naslednik SSL-ja zagotavlja varno komunikacijo po medmrežju, na primer med bančnim strežnikom in uporabnikom. Med SSL-jem in TLS-jem obstajajo nekatere razlike, vendar osnovni principi delovanja so enaki. SSL je Netscape predstavil leta 1994, zastavili pa so si 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
Netscape je zadano nalogo opravil tako dobro, da je SSL postal standard.
[uredi] Kako poteka komunikacija?
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] Kaj je 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] Kaj je 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] Problen z IP-ji
SSL lahko deluje le nad eno spletno stranjo na IP naslov (Internet Protocol address). Torej na strežniku, ki je v medmrežje povezan prek le enega IP-ja, lahko na tem strežniku vzpostavimo le eno varno povezavo.