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:
- Enkripcija: Podaci između klijenta i servera se enkriptuju, čineći ih nečitljivim za treće strane.
- Integritet podataka: Proverava se da podaci nisu izmenjeni tokom prenosa.
- Autentikacija: Server potvrđuje svoju autentičnost klijentu.
Proces uspostavljanja HTTPS veze uključuje nekoliko faza, nazvanih "TLS/SSL Handshake":
- 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.
- 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.
- 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.
- Client Key Exchange: Klijent generiše pre-master secret (ključ), šifruje ga javnim ključem iz sertifikata servera i šalje serveru.
- Change Cipher Spec (Client): Klijent obaveštava server da je spreman da počne razmenu šifrovanih podataka.
- Finished (Client): Klijent šalje šifrovanu poruku sa hešom svih prethodnih poruka Handshake za proveru integriteta.
- 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.
- Finished (Server): Server šalje klijentu šifrovanu poruku sa hešom svih prethodnih poruka Handshake.
- Š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.