Sobes.tech
Junior

Jak funguje HTTPS?

sobes.tech AI

Odpověď od AI

HTTPS (Hypertext Transfer Protocol Secure) je protokol, který zajišťuje bezpečný přenos dat mezi klientem (například prohlížečem) a serverem. Je založen na HTTP, ale používá šifrování k ochraně přenášených informací.

Fungování HTTPS je založeno na použití protokolu TLS (Transport Layer Security), který dříve nesl název SSL (Secure Sockets Layer). TLS/SSL zajišťuje tři klíčové aspekty bezpečnosti:

  1. Šifrování: Data mezi klientem a serverem jsou zašifrována, což je činí nečitelnými pro třetí strany.
  2. Integrita dat: Kontroluje se, že data nebyla během přenosu změněna.
  3. Autentizace: Server potvrzuje svou pravost klientovi.

Proces navázání spojení HTTPS zahrnuje několik etap, nazývaných "TLS/SSL Handshake":

  1. Client Hello: Klient pošle serveru "Client Hello" obsahující:
    • Podporovanou verzi TLS.
    • Seznam podporovaných šifrovacích algoritmů (cipher suites).
    • Náhodné číslo.
  2. Server Hello: Server odpoví "Server Hello" a vybere z nabízených možností:
    • Verzi TLS.
    • Jeden z podporovaných šifrovacích algoritmů.
    • Náhodné číslo.
    • Certifikát serveru.
  3. Certificate: Klient obdrží a ověří pravost certifikátu serveru:
    • Ověří digitální podpis certifikátu pomocí veřejného klíče certifikační autority (CA).
    • Zkontroluje platnost certifikátu.
    • Ověří, že doménové jméno v certifikátu odpovídá požadovanému.
  4. Client Key Exchange: Klient vygeneruje pre-mistr tajný klíč, zašifruje ho veřejným klíčem certifikátu serveru a odešle ho serveru.
  5. Change Cipher Spec (Client): Klient informuje server, že je připraven začít vyměňovat zašifrovaná data.
  6. Finished (Client): Klient odešle zašifrovanou zprávu s hash hodnotou všech předchozích zpráv Handshake pro ověření integrity.
  7. Change Cipher Spec (Server): Server dešifruje pre-mistr tajný klíč pomocí svého soukromého klíče a vygeneruje symetrické klíče pro šifrování relace. Poté informuje klienta, že je připraven začít vyměňovat zašifrovaná data.
  8. Finished (Server): Server odešle zašifrovanou zprávu s hash hodnotou všech předchozích zpráv Handshake.
  9. Šifrovaný přenos dat: Po úspěšném dokončení Handshake používají klient a server vygenerované symetrické klíče k šifrování všech následujících dat.

Tímto způsobem HTTPS zajišťuje zabezpečený komunikační kanál, což činí webové prohlížení bezpečnějším.