暗号技術の基礎と応用
TLS 1.3の0-RTT(以前の接続で得た事前共有鍵を使い、最初のメッセージと一緒に「アーリーデータ」を送る方法)の注意点として、正しいものはどれか。
- Aアーリーデータは暗号化されずに平文のまま送られるので、パスワードやクレジットカードの番号などを含めてはならない
- B攻撃者が記録したアーリーデータを再送するリプレイ攻撃を防ぎきれないので、繰り返しても問題のない要求に限って使う
- Cアーリーデータは通常のデータより前方秘匿性が強いので、送金などの重要な要求ほど使うべきである
答えと解説を見る
正解:B. 攻撃者が記録したアーリーデータを再送するリプレイ攻撃を防ぎきれないので、繰り返しても問題のない要求に限って使う
0-RTTでは、クライアントは以前の接続で受け取った事前共有鍵からアーリーデータ用の鍵を作り、最初のメッセージと一緒に暗号化したデータを送るので、待ち時間を1往復分減らせます。ただし、この時点ではサーバの新しい乱数が使われていないため、攻撃者が記録したアーリーデータをもう一度送ると、サーバが同じ要求をもう一度処理してしまうおそれがあります(リプレイ攻撃)。また、アーリーデータは事前共有鍵だけで守られるので、その鍵が漏れたときの前方秘匿性もありません。そのため、0-RTTはページの取得のような何度実行しても結果が変わらない要求に限り、送金や注文には使わないのが基本です。
- A. アーリーデータも、事前共有鍵から作った鍵で暗号化されます。問題は暗号化ではなく、再送されることです。
- B. 正しい。リプレイの対策が十分でないため、使える要求を限ります。
- C. アーリーデータは事前共有鍵だけで守られ、通常のデータより前方秘匿性が弱くなります。