Sdílet prostřednictvím


TLS Handshake Protocol

Protokol handshake protocol transportní vrstvy (TLS) zodpovídá za ověřování a výměnu klíčů, které jsou nezbytné k vytvoření nebo obnovení zabezpečených relací. Při vytváření zabezpečené relace spravuje protokol Handshake následující:

  • Vyjednávání šifrovací sady
  • Ověřování serveru a volitelně i klienta
  • Výměna informací o klíči relace.

Vyjednávání šifrovací sady

Klient a server kontaktují a vyberou sadu šifer, která se použije během výměny zpráv.

Autentizace

V protokolu TLS server prokáže klientovi svou identitu. Klient může také muset prokázat svou identitu serveru. Infrastruktura veřejných klíčů, použití párů veřejného a privátního klíče, je základem tohoto ověřování. Přesná metoda používaná pro ověřování je určena šifrou vyjednanou sadou.

Výměna klíčů

Klient a server vyměňují náhodná čísla a speciální číslo s názvem Pre-Master Secret. Tato čísla jsou kombinována s dalšími daty, která umožňují klientovi a serveru vytvořit sdílený tajný klíč, označovaný jako hlavní tajný klíč. Hlavní tajný klíč používá klient a server k vygenerování tajného klíče MAC pro zápis, což je klíč relace používaný pro hashovánía klíč pro zápis, což je klíč relace pro šifrování.

Vytvoření zabezpečené relace pomocí protokolu TLS

Protokol HANDShake TLS zahrnuje následující kroky:

  1. Klient odešle na server zprávu "Klient hello" spolu s náhodnou hodnotou klienta a podporovanými šifrovacími sadami.
  2. Server odpoví odesláním zprávy "Server hello" klientovi spolu s náhodnou hodnotou serveru.
  3. Server odešle svůj certifikát klientovi k ověření a může požádat o certifikát od klienta. Server odešle zprávu "Server hello done".
  4. Pokud server požádal o certifikát od klienta, klient ho odešle.
  5. Klient vytvoří náhodný tajný klíč před hlavním serverem a zašifruje ho pomocí veřejného klíče z certifikátu serveru a odešle šifrovaný předsunutý tajný klíč na server.
  6. Server obdrží tajný kód pre-master. Každý server a klient vygenerují klíče hlavního tajného kódu a relace na základě tajného klíče před hlavním serverem.
  7. Klient odešle na server oznámení "Změnit specifikaci šifry", aby indikovalo, že klient začne používat nové klíče relace pro hashování a šifrování zpráv. Klient také odešle zprávu "Klient byl dokončen".
  8. Server obdrží "Změnit specifikaci šifry" a přepne stav zabezpečení vrstvy záznamů na symetrické šifrování pomocí klíčů relace . Server odešle klientovi zprávu Server byl dokončen.
  9. Klient a server teď můžou vyměňovat data aplikací přes zabezpečený kanál, který vytvořil. Všechny zprávy odeslané z klienta na server a ze serveru do klienta se šifrují pomocí klíče relace.

Obnovení zabezpečené relace pomocí protokolu TLS

  1. Klient odešle zprávu "Klient hello" pomocí ID relace relace, která se má obnovit.

  2. Server zkontroluje, jestli mezipaměť relace odpovídá ID relace. Pokud se najde shoda a server může pokračovat v relaci, odešle zprávu "Server hello" s ID relace.

    Poznámka

    Pokud se nenajde shoda ID relace, server vygeneruje nové ID relace a klient TLS a server provede úplnou metodu handshake.

     

  3. Klient a server musí vyměňovat zprávy "Změnit specifikaci šifry" a odesílat zprávy "Klient dokončen" a "Server byl dokončen".

  4. Klient a server teď můžou obnovit výměnu dat aplikací přes zabezpečený kanál.