⑪TLS 1.3認証の続きです。
TLS 1.3 でのAlertプロトコルの概要
AleartプロトコルはTLS 1.2以前と同様にエラーの通知や接続終了時に使用されます。
Alertプロトコルは通信の状況によって暗号化された状態、平文の両方があります。
Alertプロトコルのメッセージは以下の2バイトで構成されています。
AlertDescription(1バイト) : 事前に定義されたメッセージの型を表す値を送信
AlertLevel : TLS旧バージョンではメッセージの深刻度を表すために使用されていた。TLS 1.3では互換性維持のため残されているが使用されません。※
※ TLS 1.3 ではメッセージの深刻度は、(メッセージの型で暗黙的に表され)すべてのAleartプロトコルのメッセージはすべて fatal とされ接続を中断する必要があります。
旧バージョンのTLSではAlertプロトコルのメッセージはフラグメントが可能で、その結果複数の実装で潜在的に空くよう可能な問題があり、TLS 1.3ではAlertプロトコルのメッセージはフラグメントが許可されません。
原書ではAlertプロトコルのメッセージサンプル例がありますが、少し長いので割愛します。
## TLS(暗号化)接続終了の重要性
暗号学では強制切断攻撃(truncation attack)※ を確実に検知するために接続終了を正しい順番で実行する必要があります。
※ 強制切断攻撃:能動的なネットワーク攻撃者が接続チャネルを乗っ取ってメッセージの流れを止めてしまうような攻撃です。サーバー、クライアントが不完全な情報を処理することになり、それにより攻撃者を有利にする状況を生む可能性があります。
TLS 1.3 には強制切断攻撃を検知する事を目的として以下の2つのメッセージが用意されています。
user_canceled メッセージ : ハンドシェイクが完遂する前に接続が終了したことを伝える。
close_notify メッセージ : 暗号化のネゴシエーションが既に実施されている事を伝える時に使う必要がある。