Junior
Cum funcționează HTTPS?
sobes.tech AI
Răspuns de la AI
HTTPS (Hypertext Transfer Protocol Secure) este un protocol care asigură transferul sigur de date între client (de exemplu, un browser) și server. Se bazează pe HTTP, dar utilizează criptarea pentru a proteja informațiile transmise.
Funcționarea HTTPS se bazează pe utilizarea protocolului TLS (Transport Layer Security), care anterior se numea SSL (Secure Sockets Layer). TLS/SSL asigură trei aspecte cheie de securitate:
- Criptare: Datele între client și server sunt criptate, ceea ce le face ilizibile pentru observatori externi.
- Integritatea datelor: Se verifică dacă datele nu au fost modificate în timpul transmiterii.
- Autentificare: Serverul confirmă autenticitatea sa față de client.
Procesul de stabilire a unei conexiuni HTTPS include mai multe etape, numite "TLS/SSL Handshake":
- Client Hello: Clientul trimite către server un "Client Hello" care conține:
- Versiunea TLS suportată.
- Lista algoritmilor de criptare suportate.
- Un număr aleatoriu.
- Server Hello: Serverul răspunde cu un "Server Hello", alegând dintre opțiunile propuse de client:
- Versiunea TLS.
- Unul dintre algoritmii de criptare.
- Un număr aleatoriu.
- Certificatul serverului.
- Certificate: Clientul primește și verifică autenticitatea certificatului serverului:
- Verifică semnătura digitală a certificatului folosind cheia publică a autorității de certificare (CA).
- Verifică valabilitatea certificatului.
- Verifică dacă numele de domeniu din certificat corespunde cu cel solicitat.
- Client Key Exchange: Clientul generează un pre-mester secret, îl criptează cu cheia publică a certificatului serverului și îl trimite către server.
- Change Cipher Spec (Client): Clientul informează serverul că este gata să înceapă schimbul de date criptate.
- Finished (Client): Clientul trimite un mesaj criptat cu un hash al tuturor mesajelor anterioare ale Handshake-ului pentru verificarea integrității.
- Change Cipher Spec (Server): Serverul decriptează pre-mester secret folosind cheia sa privată și generează chei simetrice pentru criptarea sesiunii. Apoi, informează clientul că este gata să înceapă schimbul de date criptate.
- Finished (Server): Serverul trimite un mesaj criptat cu un hash al tuturor mesajelor anterioare ale Handshake-ului.
- Transferul de date criptate: După finalizarea cu succes a Handshake-ului, clientul și serverul folosesc cheile simetrice generate pentru a cripta toate datele ulterioare.
Astfel, HTTPS asigură un canal de comunicare securizat, făcând navigarea pe web mai sigură.