TLS (Transport Layer Security) in SSL (Secure Sockets Layer) sta protokola za zagotavljanje varnosti in zasebnosti podatkov pri prenosu čez internet. Čeprav se SSL praktično ne uporablja več in je zamenjal TLS, pogosto govorimo o SSL/TLS kot o enotnem konceptu zaradi zgodovinske kontinuitete. Tukaj je pojasnilo, kako deluje TLS:
1. Osnove TLS/SSL
- Šifriranje: TLS zagotavlja šifriranje podatkov, kar pomeni, da so podatki kodirani tako, da jih lahko dešifrira le namenjeni prejemnik.
- Avtentikacija: Zagotavlja, da so strani, s katerimi komunicirate, tiste, za katere se predstavljajo.
- Integriteta: Preverja, da podatki niso bili spremenjeni ali poškodovani med prenosom.
2. Proces vzpostavitve TLS povezave
a. Rojstni certifikat (TLS certifikat):
- Preden lahko strežnik uporablja TLS, mora imeti TLS certifikat, ki ga izda zaupanja vreden organ za certificiranje (CA). Ta certifikat vsebuje javni ključ strežnika in identifikacijske podatke.
b. Začetek TLS rokovanja:
- Ko brskalnik poskuša dostopati do varne spletne strani, začne TLS rokovanje:
- Klientov pozdrav: Brskalnik pošlje “Client Hello” sporočilo, ki vključuje podatke, kot so podprti TLS različice, šifrirni algoritmi in naključni “nonce” za generiranje sejnega ključa.
- Strežnikov pozdrav: Strežnik odgovori z “Server Hello”, kjer izbere najvišjo podprto različico TLS, šifrirni algoritmi in pošlje svoj certifikat.
c. Verifikacija certifikata:
- Brskalnik preveri veljavnost certifikata, ali je izdan s strani zaupanja vredne CA, ali ni potekel in ali ustreza domeni.
d. Izmenjava ključev:
- Če je certifikat veljaven, se začne izmenjava ključev:
- Brskalnik generira ključ za sejo (prehodni ključ) in ga šifrira z javnim ključem strežnika iz certifikata, nato pa ga pošlje nazaj strežniku.
- Strežnik ta ključ dešifrira z lastnim zasebnim ključem.
e. Simetrično šifriranje:
- Po uspešni izmenjavi ključev se vzpostavi simetrično šifriranje za prenos podatkov. Ta ključ je specifičen za to povezavo in se uporablja za šifriranje vseh nadaljnjih podatkov.
f. Zaključek rokovanja:
- Ko je rokovanje končano, se izmenjajo dodatna sporočila za potrditev uspešnosti povezave (npr. “Change Cipher Spec”, “Finished”).
3. Prenos podatkov
- Šifrirani prenos: Vsi podatki, ki sledijo, so šifrirani s simetričnim ključem, ki je bil dogovorjen med rokovanjem. To zagotavlja, da samo strežnik in klient lahko berejo podatke.
4. Zaključek povezave
- Ko je prenosa končan, se povezava lahko varno zapre z ustreznimi sporočili za prekinitev.
5. Različice in izboljšave
- Različice: TLS se je razvijal skozi različice (TLS 1.0, TLS 1.1, TLS 1.2, TLS 1.3). Vsaka nova različica vključuje izboljšave varnosti, učinkovitosti in odpravljanje ranljivosti.
- Perfect Forward Secrecy (PFS): TLS 1.3 uvaja PFS, kar zagotavlja, da kompromitiranje ene sejne ključa ne vpliva na varnost prejšnjih ali prihodnjih sej.
Pomembno:
- TLS/SSL deluje na aplikacijski ravni: To pomeni, da se lahko uporablja z različnimi protokoli (ne samo HTTP), kot so SMTP, FTP, itd.
- Konfiguracija: Pravilna konfiguracija TLS je ključna za zagotavljanje najboljše varnosti. Slaba konfiguracija lahko pusti ranljivosti.
TLS/SSL je ključna tehnologija za zagotavljanje varnosti na internetu, omogoča zaupanje v spletne transakcije in komunikacije.
