TLS 1.3

最終更新: 2023-04-20 18:47:07 +0800 +0800
原文は英語で書かれています。あなたはAI翻訳版を読んでいます。

本稿では TLS 1.3 の概要を説明します。TLS は一連のレコードを伝送します。暗号化前の ハンドシェイクデータは TLSPlaintext レコードで伝送されます。従来のレコードバージョンフィールドは 相互運用性のために存在し、TLS 1.3 のピアはプロトコルのネゴシエーションにこのフィールドを使用しません。 レコードの内容は、許容される拡張が適用される前の状態で 2^14 バイトに制限されます。

ハンドシェイク #

クライアントは、ランダム値、対応する暗号スイート、鍵共有、 拡張、および従来のセッション ID を含む ClientHello を送信します。legacy_version は 0x0303 であり、 supported-versions 拡張によって TLS 1.3 をネゴシエートします。現行標準の AEAD スイートには、 SHA-256 または SHA-384 と組み合わせた AES-GCM および ChaCha20-Poly1305 があります。

サーバーは ServerHello を返し、暗号スイートと鍵共有を選択します。別の許容可能な鍵共有が 必要な場合は、代わりに HelloRetryRequest を送信できます。その場合、クライアントは 要求された変更を含む 2 回目の ClientHello を送信します。双方は鍵交換とトランスクリプトから ハンドシェイクトラフィックシークレットを導出し、Finished でハンドシェイクを認証した後、 アプリケーショントラフィックシークレットを導出します。証明書認証を使用する場合、サーバーは Certificate と CertificateVerify を送信します。

TLS 1.3 は ServerHello 以降のハンドシェイクメッセージを暗号化し、廃止された RSA 鍵 転送と静的 DH ネゴシエーションを削除しています。証明書の検証は引き続き不可欠です。クライアントは、 信頼できる発行者までの証明書チェーン、ホスト名またはサービス ID、有効期間、 鍵用途、署名アルゴリズム、および該当する失効ポリシーを検証します。認証局は、 DNS 名またはその他のサブジェクト ID の管理権を検証した後に証明書を発行します。 証明書は、その ID を公開鍵に結び付けます。

証明書のエンコーディング、パス構築、およびローカルのトラストアンカーについては、 X.509 証明書および 暗号学的トラストストアを参照してください。

コメント

GitHub で閲覧・コメントする(投稿にはログインが必要です)