TLS Handshake : Pod Kapotou

Server — ServerKeyExchange

Toto poselství nese klíče exchange algoritmus parametry, které klient potřebuje ze serveru za účelem odvození intermiate tajemství, které budou využity při konstrukci finální relace klíče pro symetrické šifrování obě strany. To je volitelné, protože některé klíčové exchange algoritmy jako RSA key exchange nevyžaduje, aby tyto parametry, protože certifikát serveru sám o sobě bude dost pro klienta sestavit a bezpečně komunikovat pre-master secret server.

např. pokud je metoda výměny klíčů zvolená serverem v předchozím kroku Diffie-Hellman (DH), server obsahuje tuto zprávu za certifikátem, která bude obsahovat veřejné komponenty potřebné k vygenerování hlavního tajemství.

Server-CertificateRequest

tato zpráva bude odeslána, pokud je na serveru povoleno ověřování klienta SSL. To obvykle není vyžadováno ve většině webových serverů, ale pro vysoké bezpečnostní požadavky může server vyžadovat certifikát klienta pro ověření. Spolu s žádostí o certifikát sever odešle typy klientů, které jsou přijatelné, a také označuje seznam významných jmen certifikačních autorit, kterým server důvěřuje. Tento seznam obsahuje autority CA dostupné v truststore serveru.

Server-ServerHelloDone

nakonec server odešle zprávu ServerHelloDone oznamující klientovi, že server dokončil předávání bezpečnostních parametrů. Tato zpráva končí část serveru vyjednávání handshake. Tato zpráva nebude obsahovat žádné další informace.

Client-Certificate

klient odpoví certifikátem klienta, pokud server požádá o ověření klienta zprávou s požadavkem na certifikát. Před odesláním certifikátu však klient zkontroluje DN emitenta certifikátu klienta, který lze nalézt v seznamu významných jmen důvěryhodných CAs zaslaných serverem. Pokud DN emitenta nebylo nalezeno, klient nebude posílat svůj certifikát na server. Pokud je autentizace certifikátu klienta povinná na straně serveru, handshake TLS zde selže. Jinak, klient pošle svůj certifikát a veškeré potřebné intermediate certifikáty, které řetězce uzavřeno DN uvedené v Žádosti o Certifikát zpráva.

Client-ClientKeyExchange

zpráva ClientKeyExchange obsahuje pre-master tajemství, které je generováno klientem. To se provádí podle šifrovací sady, kterou obě strany shromáždily v předchozím kroku. Klient i server to použijí k vygenerování hlavního tajemství, ze kterého oba odvodí konečné kryptografické klíče potřebné k vytvoření encypted kanálu. Klient zašifruje pre-master tajemství veřejným klíčem serveru tak, že pokud by odposlouchávač zachytil tento bit dat, nebude jej schopen dešifrovat, protože nemá přístup k soukromému klíči serveru. Hlavní klíč Poskytuje serveru požadovaná data pro generování klíčů pro symetrické šifrování. Pokud však šifrová sada zvolená pro tuto relaci byla DH, pak ClientKeyExchange obsahuje veřejné parametry DH klienta namísto pre-master tajemství.

Client-CertificateVerify

tuto zprávu klient používá k prokázání serveru, že vlastní soukromý klíč odpovídající jeho certifikátu veřejného klíče. Zpráva obsahuje hashované informace (hash všech dosud vyměněných zpráv během procesu podání ruky), které jsou digitálně podepsány klientem. Je vyžadováno, pokud server vydal klientovi certifikát, aby klient odeslal certifikát, který musí být ověřen na straně serveru.

Klient — ChangeCipherSpec

zprávu ChangeCipherSpec je jen zpráva od klienta informovat server, že všechna data klient pošle z tu na, budou šifrována pomocí dohodnutých bezpečnostních parametrů. V tomto okamžiku má klient i server všechny komponenty potřebné k vygenerování hlavního tajemství a odvození kryptografických klíčů relace.
Obě strany ověřit, zda handshake probíhala podle plánu a že obě přinesly shodné klíče zasláním konečné šifrované Skončil zpráva oznamující, že se k sobě CipherSuite je aktivován.

Client-Finished

nejprve klient odešle zašifrovanou hotovou zprávu na server. Tato zpráva je kryptografický hash (message digest), všech předchozích zpráv handshake v kombinaci, následuje speciální číslo identifikující roli klienta, hlavní tajemství a polstrování. To je šifrováno pomocí nově vygenerovaného klíče relace a odesláno na server.

Server — ChangeCipherSpec

server odešle zprávu ChangeCipherSpec zpět klientovi sdělit klientovi, že všechna data poté, co tato zpráva bude zašifrována.

dokončeno serverem

zpráva ChangeCipherSpec je následována šifrovanou hotovou zprávou ze serveru klientovi. Jedná se o kryptografický hash generovaný serverem, všech komponent používaných během procesu hanshake spolu se zvláštním číslem identifikujícím roli serveru.

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna.