Sobes.tech
Junior

Ako funguje HTTPS?

sobes.tech AI

Odpoveď od AI

HTTPS (Hypertext Transfer Protocol Secure) je protokol, ktorý zabezpečuje bezpečnú prenos dát medzi klientom (napríklad prehliadačom) a serverom. Je založený na HTTP, ale používa šifrovanie na ochranu prenášaných informácií.

Práca HTTPS je založená na použití protokolu TLS (Transport Layer Security), ktorý sa predtým nazýval SSL (Secure Sockets Layer). TLS/SSL zabezpečuje tri kľúčové aspekty bezpečnosti:

  1. Šifrovanie: Dáta medzi klientom a serverom sú šifrované, čím sa stávajú nečitateľnými pre tretie strany.
  2. Integrita dát: Kontroluje sa, či dáta neboli počas prenosu zmenené.
  3. Autentifikácia: Server potvrdzuje svoju pravosť klientovi.

Proces nadväzovania HTTPS spojenia zahŕňa niekoľko etáp, nazývaných "TLS/SSL Handshake":

  1. Client Hello: Klient odosiela serveru "Client Hello", ktorý obsahuje:
    • Verziu TLS, ktorú podporuje.
    • Zoznam podporovaných algoritmov šifrovania (cipher suites).
    • Náhodné číslo.
  2. Server Hello: Server odpovedá "Server Hello", vyberajúc z navrhnutých klientom:
    • Verziu TLS.
    • Jeden z algoritmov šifrovania.
    • Náhodné číslo.
    • Certifikát servera.
  3. Certificate: Klient dostáva certifikát servera a overuje jeho pravosť:
    • Kontroluje digitálny podpis certifikátu pomocou verejného kľúča certifikačného centra (CA).
    • Kontroluje platnosť certifikátu.
    • Kontroluje, či doména v certifikáte zodpovedá tej, na ktorú sa obracia.
  4. Client Key Exchange: Klient generuje pre-master secret (kľúč), šifruje ho verejným kľúčom z certifikátu servera a odosiela serveru.
  5. Change Cipher Spec (Client): Klient oznamuje serveru, že je pripravený začať výmenu zašifrovaných dát.
  6. Finished (Client): Klient odosiela zašifrovanú správu s hashom všetkých predchádzajúcich správ Handshake na kontrolu integrity.
  7. Change Cipher Spec (Server): Server dešifruje pre-master secret pomocou svojho súkromného kľúča a generuje symetrické kľúče na šifrovanie relácie. Potom oznamuje klientovi, že je pripravený začať výmenu zašifrovaných dát.
  8. Finished (Server): Server odosiela klientovi zašifrovanú správu s hashom všetkých predchádzajúcich správ Handshake.
  9. Zašifrovaný prenos dát: Po úspešnom ukončení Handshake, klient a server používajú generované symetrické kľúče na symetrické šifrovanie všetkých nasledujúcich dát.

Týmto spôsobom HTTPS zabezpečuje chránený komunikačný kanál, čím robí webové prehliadanie bezpečnejším.