HTTPS a TLS

HTTPS (Hypertext Transfer Protocol Secure) je zabezpečená verze protokolu HTTP. Využívá protokol TLS (Transport Layer Security) k šifrování komunikace mezi webovým prohlížečem a serverem.

Dříve se pro tento účel používal protokol SSL (Secure Sockets Layer), který je však dnes považován za zastaralý a nebezpečný. TLS je jeho moderním nástupcem.

Jak HTTPS funguje?

HTTPS zajišťuje tři klíčové věci:

Šifrování: Data jsou nečitelná pro kohokoliv, kdo by je cestou odposlouchával.

Integrita dat: Data nemohou být během přenosu změněna bez odhalení.

Autentizace: Uživatel má jistotu, že komunikuje se skutečným serverem (např. bankou) a ne s podvrženou stránkou.

Vrstvy protokolu

HTTPS není samostatný protokol, ale kombinace dvou vrstev:

Aplikační vrstva: Standardní HTTP (požadavky GET, POST atd.).

Transportní vrstva: TLS (zajišťuje šifrovaný kanál).

Standardně HTTPS komunikuje na portu TCP 443 (klasické HTTP používá port 80).

Průběh navázání spojení (TLS Handshake)

Než se odešlou první data (např. webová stránka), proběhne tzv. „podání ruky“ (handshake):

1. **Client Hello:** Prohlížeč pošle serveru seznam podporovaných šifer a verzi TLS.
2. **Server Hello:** Server vybere nejlepší společnou šifru a pošle svůj **digitální certifikát**.
3. **Ověření certifikátu:** Prohlížeč zkontroluje u certifikační autority, zda je certifikát platný a patří dané doméně.
4. **Výměna klíčů:** Pomocí [[asymetrické šifrování|asymetrického šifrování]] si strany dohodnou společný "symetrický klíč".
5. **Šifrovaný přenos:** Veškerá další data už proudí pomocí rychlého [[symetrické šifrování|symetrického šifrování]].

Evoluce verzí

Verze	Stav	Poznámka
SSL 2.0 / 3.0	Zastaralé	Obsahují kritické chyby (POODLE atd.). Nesmí se používat.
TLS 1.0 / 1.1	Zastaralé	Již nejsou považovány za bezpečné pro moderní weby.
TLS 1.2	Používané	Stále široce rozšířené, velmi bezpečné, ale pomalejší handshake.
TLS 1.3	Aktuální	Nejnovější standard. Rychlejší (1-RTT) a bezpečnější (odstraněny staré šifry).

Digitální certifikáty

Aby HTTPS fungovalo, musí mít majitel webu certifikát vystavený důvěryhodnou Certifikační autoritou (CA) (např. Let's Encrypt, DigiCert). Certifikát obsahuje:

Název domény.

Veřejný klíč serveru.

Digitální podpis autority.

Datum platnosti.

Zajímavost: TLS se nepoužívá pouze pro web (HTTPS), ale i pro zabezpečení e-mailů (IMAPS, POP3S, SMTPS), souborových přenosů (FTPS) nebo VPN.

— Viz také: Šifrování, IPsec, Digitální podpis