Sobes.tech
Junior

Kako funkcioniše HTTPS?

sobes.tech АИ

Одговор од АИ

HTTPS (Hypertext Transfer Protocol Secure) — to je protokol koji obezbeđuje sigurnu transmisiju podataka između klijenta (npr. pregledača) i servera. Osnovan je na HTTP, ali koristi enkripciju za zaštitu prenesenih informacija.

Rad HTTPS-a se zasniva na korišćenju protokola TLS (Transport Layer Security), koji je ranije bio poznat kao SSL (Secure Sockets Layer). TLS/SSL obezbeđuje tri ključna aspekta bezbednosti:

  1. Enkripcija: Podaci između klijenta i servera se enkriptuju, čineći ih nečitljivim za treće strane.
  2. Integritet podataka: Proverava se da podaci nisu izmenjeni tokom prenosa.
  3. Autentikacija: Server potvrđuje svoju autentičnost klijentu.

Proces uspostavljanja HTTPS veze uključuje nekoliko faza, nazvanih "TLS/SSL Handshake":

  1. Client Hello: Klijent šalje serveru "Client Hello", koji sadrži:
    • Verziju TLS koju podržava.
    • Listu podržanih algoritama enkripcije (cipher suites).
    • Nasumični broj.
  2. Server Hello: Server odgovara "Server Hello", birajući iz ponuđenih od strane klijenta:
    • Verziju TLS.
    • Jedan od algoritama enkripcije.
    • Nasumični broj.
    • Sertifikat servera.
  3. Certificate: Klijent prima sertifikat servera i proverava njegovu autentičnost:
    • Proverava digitalni potpis sertifikata koristeći javni ključ ovlašćujućeg centra (CA).
    • Proverava rok trajanja sertifikata.
    • Proverava da li domen u sertifikatu odgovara onom kojem se obraća.
  4. Client Key Exchange: Klijent generiše pre-master secret (ključ), šifruje ga javnim ključem iz sertifikata servera i šalje serveru.
  5. Change Cipher Spec (Client): Klijent obaveštava server da je spreman da počne razmenu šifrovanih podataka.
  6. Finished (Client): Klijent šalje šifrovanu poruku sa hešom svih prethodnih poruka Handshake za proveru integriteta.
  7. Change Cipher Spec (Server): Server dešifruje pre-master secret koristeći svoj privatni ključ i generiše simetrične ključeve za šifrovanje sesije. Zatim obaveštava klijenta da je spreman da počne razmenu šifrovanih podataka.
  8. Finished (Server): Server šalje klijentu šifrovanu poruku sa hešom svih prethodnih poruka Handshake.
  9. Šifrovani prenos podataka: Nakon uspešnog završetka Handshake-a, klijent i server koriste generisane simetrične ključeve za simetrično šifrovanje svih narednih podataka.

Na ovaj način, HTTPS obezbeđuje zaštićen kanal komunikacije, čineći web surfovanje sigurnijim.