SSL/TLS handshake
SSL/TLS handshake je proces, při kterém si klient (např. webový prohlížeč) a server (např. webhosting) navzájem vymění potřebné informace, aby mohli navázat šifrované a důvěryhodné spojení. Tento handshake probíhá vždy na začátku zabezpečené komunikace, například při návštěvě webu začínajícího https://
.
Co je cílem handshake?
Cílem je:
- ověřit identitu serveru (a případně i klienta),
- dohodnout se na způsobu šifrování,
- a bezpečně si předat šifrovací klíče, které budou použity pro další komunikaci.
Jak probíhá SSL/TLS handshake (zjednodušeně):
- Zahájení spojení
Klient kontaktuje server a sdělí mu, jaké verze protokolu TLS (dříve SSL) a šifrovací algoritmy podporuje. - Odpověď serveru
Server vybere vhodné parametry a pošle svůj digitální certifikát, který obsahuje veřejný klíč a informace o jeho identitě (např. doménu, komu byl vydán atd.). - Ověření certifikátu
Klient ověří, zda je certifikát důvěryhodný (např. podepsaný uznávanou certifikační autoritou a platný). - Výměna klíčů
Klient a server si pomocí veřejného klíče bezpečně vymění tajný klíč (nebo se dohodnou na jeho vytvoření). Tento klíč se pak použije pro šifrování samotné komunikace. - Dokončení handshake
Obě strany si potvrdí, že komunikace může začít – od této chvíle je přenos šifrovaný a chráněný před odposlechem nebo změnou.
Proč je handshake důležitý?
SSL/TLS handshake je základní kámen zabezpečené komunikace na internetu. Bez něj by nefungovalo HTTPS, online platby, e-mailové šifrování a mnoho dalších služeb. Umožňuje ověřit, že jste skutečně připojeni ke správnému serveru, a zároveň zajišťuje, že žádné třetí straně se nepodaří data po cestě přečíst nebo upravit.