What Is an SSL/TLS Handshake?
An SSL/TLS handshake is a negotiation between two parties on a network – such a browser and web server – to establish the details of their connection. Určuje, jaká verze protokolu SSL/TLS bude v relaci použita, jaká sada šifer bude komunikaci šifrovat, ověřuje server (a někdy také klienta) a před přenosem dat zjišťuje, zda je připojení zabezpečené.
To vše se naštěstí děje na pozadí – pokaždé, když prohlížeč nasměrujete na zabezpečený web, proběhne složitá interakce, která zajistí, že vaše data budou v bezpečí.
To je jednoduchá verze. Můžete si všimnout, že libovolný tucet popisů se bude více či méně držet tohoto formátu, zatímco v detailech se bude lišit tuctem různých způsobů – někdy až matoucích. Hodíme sem tabulku, která ukazuje obecný model, jak funguje handshake TLS, co říkáte?“
OBJEDNAT NYNÍ
Obligátní grafika handshake SSL/TLS
Všechny weby související s SSL/TLS mají svou vlastní verzi diagramu handshake – tady je ta naše! (Klikněte pro zvětšení.)
Vyjasněme si některé nejasnosti, pokud můžeme
Některé nejasnosti ohledně fungování handshake SSL/TLS jsou způsobeny tím, že handshake je pouze předehrou k samotné zabezpečené relaci. Pokusme se vyřešit některé běžné body:
Asymetrické vs. symetrické šifrování
Samotné handshake používá asymetrické šifrování – používají se dva samostatné klíče, jeden veřejný a jeden soukromý. Vzhledem k tomu, že asymetrické šifrovací systémy mají mnohem vyšší režii, nejsou použitelné pro zajištění plnohodnotného reálného zabezpečení. Veřejný klíč se tedy používá pro šifrování a soukromý klíč pro dešifrování pouze během handshake, což umožňuje oběma stranám důvěrně nastavit a vyměnit si nově vytvořený „sdílený klíč“. Samotná relace používá tento jediný sdílený klíč k provedení symetrického šifrování, a právě díky tomu je bezpečné spojení realizovatelné v reálné praxi (režie je výrazně nižší). Úplná a správná odpověď na otázku „Je šifrování SSL/TLS asymetrické nebo symetrické?“ tedy zní: „Nejprve jedno, pak druhé.“
Co je to „sada šifer“?
Samotný handshake má několik fází, z nichž každá je řízena podle jiných pravidel. Podrobnosti najdete zde, ale oříšek spočívá v tom, že namísto řady samostatných jednání tam a zpět (o tom, jaké klíče použít, jak zašifrovat samotné handshake, jak ověřit handshake a tak dále) se strany mohou dohodnout na použití „sady šifer“ – předem existujícího výběru nebo sady dohodnutých komponent. (Nezapomeňte, že asymetrické šifrování je časově i zdrojově náročné – použití sady šifer jako zkratky urychluje samotný handshake.) Specifikace TLS umožňují poměrně velký počet sad šifer a klient i server budou mít téměř vždy přístup k jedné, kterou mohou oba použít.
Základní versus vzájemně ověřený handshake
Dalším matoucím bodem je, že základní model, který jsme popsali výše, umožňuje klientovi ověřit server a naprostá většina relací zabezpečených protokolem TLS vyžaduje pouze toto. Některé sady šifer však budou vyžadovat, aby klient zaslal také certifikát a veřejný klíč pro vzájemné ověření obou stran. Toto oboustranné ověření samozřejmě zvýší režii handshake – v některých případech (například když dvě banky vyjednávají bezpečné spojení pro převody finančních prostředků) však na něm bude sada šifer trvat a dodatečné zabezpečení se vyplatí.
Různé relace budou mít různé bezpečnostní parametry
Každá nová handshake vytváří novou relaci a nastavení použitá v jedné se mohou drasticky lišit od druhé v závislosti na zvolené sadě šifer. To je jeden z důvodů, proč existuje tolik různých iterací toho zatraceného diagramu handshake a proč zde uvádíme poměrně široký přehled. Vězte také, že relace mohou nastavit parametry, které nemusí být přesně takové, jaké očekáváte. V závislosti na sadě šifer mohou být některé kroky přidány (například požadavek na obousměrné ověřování) nebo mohou chybět. Ve skutečnosti existují sady šifer, které vyjednávají relaci tak, aby nepoužívala vůbec žádné šifrování. (Ano, víme, připojení HTTPS přes port 443, které se rozhodne odesílat data v otevřeném tvaru, nám také nedává smysl. SSL.com vám důrazně doporučuje, abyste to nedělali – jen si uvědomte, že je to v oblasti možného)
.