TLS 1.3

最後更新: 2023-04-20 18:47:07 +0800 +0800
tags: TLS | 密碼學 | 憑證
原文以英文撰寫。您正在閱讀AI翻譯版本。

本文概述 TLS 1.3。TLS 會傳輸一連串記錄。在加密之前,握手資料會由 TLSPlaintext 記錄承載;舊版記錄版本欄位是為了互通性而存在,TLS 1.3 對等端 不會使用該欄位協商通訊協定。在進行允許的擴充之前,記錄的內容大小上限為 2^14 位元組。

握手 #

用戶端傳送 ClientHello,其中包含隨機值、支援的加密套件、金鑰 共享、擴充功能及舊版工作階段 ID。其 legacy_version 為 0x0303; supported-versions 擴充功能用於協商 TLS 1.3。目前的標準 AEAD 套件包括 搭配 SHA-256 或 SHA-384 的 AES-GCM 與 ChaCha20-Poly1305。

伺服器以 ServerHello 回覆,並選擇套件與金鑰共享。需要另一個可接受的 金鑰共享時,伺服器也可以改為傳送 HelloRetryRequest;接著用戶端會傳送 第二個 ClientHello,其中包含要求的變更。雙方從金鑰交換和握手轉錄內容 衍生握手流量祕密,使用 Finished 驗證握手,並衍生應用程式流量祕密。 使用憑證驗證時,伺服器會傳送 Certificate 和 CertificateVerify。

TLS 1.3 會加密 ServerHello 之後的握手訊息,並移除已淘汰的 RSA 金鑰 傳輸與靜態 DH 協商。憑證驗證仍不可或缺:用戶端會驗證通往受信任簽發者的 憑證鏈、主機名稱或服務身分、有效期限、金鑰用途、簽章演算法,以及相關的撤銷 政策。憑證授權單位在驗證 DNS 名稱或其他主體身分的控制權後簽發憑證;該憑證會將 該身分與公開金鑰繫結。

關於憑證編碼、路徑建構及本機信任錨點,請參閱 X.509 憑證及 密碼學信任存放區。

評論

在 GitHub 上閱讀或評論(發表評論需要登入)