Sobes.tech
Middle

Jak je zajištěno šifrování zpráv mezi prohlížečem a serverem?

sobes.tech AI

Odpověď od AI

Šifrování mezi prohlížečem a serverem se provádí pomocí protokolu HTTPS, který je nadstavbou nad HTTP využívající protokoly SSL/TLS (Secure Sockets Layer / Transport Layer Security).

Proces navázání zabezpečeného spojení (Handshake):

  1. Client Hello: Prohlížeč odešle serveru zprávu obsahující podporované verze SSL/TLS, seznam cipher suites, algoritmy komprese a náhodné číslo (od klienta).
  2. Server Hello: Server vybere nejlepší verzi protokolu, sadu šifer a algoritmus komprese z navržených, vygeneruje své vlastní náhodné číslo (od serveru) a odešle je spolu se svým SSL/TLS certifikátem prohlížeči.
  3. Ověření: Prohlížeč ověří certifikát serveru:
    • Kořenová CA (Root CA).
    • Platnost certifikátu.
    • Shodu doménového jména v certifikátu s adresou webové stránky.
    • Absenci odvolaných certifikátů v seznamu (CRL nebo OCSP).
  4. Premaster Secret: Prohlížeč vygeneruje náhodné číslo (premaster secret), zašifruje ho veřejným klíčem serveru (z certifikátu) a odešle jej na server.
  5. Vytvoření klíče relace: Jak prohlížeč, tak server použijí náhodná čísla klienta (Client Random), serveru (Server Random) a premaster secret k vygenerování symetrického klíče relace.
  6. Change Cipher Spec: Prohlížeč odešle zprávu serveru, která oznamuje přechod na použití vygenerovaného klíče relace pro další komunikaci.
  7. Finished: Prohlížeč odešle serveru hash všech předchozích zpráv handshake, zašifrovaný klíčem relace. Tato zpráva ověřuje správnost handshake.
  8. Change Cipher Spec: Server odešle prohlížeči zprávu, která indikuje přechod na šifrované spojení.
  9. Finished: Server odešle prohlížeči hash všech předchozích zpráv handshake, zašifrovaný klíčem relace.

Po úspěšném handshake veškerý přenos dat mezi prohlížečem a serverem probíhá pomocí symetrického šifrování založeného na vygenerovaném klíči relace. Symetrické šifrování je mnohem efektivnější než asymetrické, což ho činí vhodným pro šifrování velkých objemů dat.

Používané algoritmy (příklad):

  • Asymetrické šifrování (pro výměnu klíče relace): RSA, Diffie-Hellman (DH), Elliptic Curve Diffie-Hellman (ECDH).
  • Symetrické šifrování (pro šifrování dat): AES, 3DES, ChaCha20.
  • Hashování (pro kontrolu integrity zpráv): SHA-256, SHA-384.