BEAST 攻撃
BEAST 攻撃 とは何ですか?
BEAST 攻撃2011 年に Rizzo と Duong が公表した SSL 3.0/TLS 1.0 CBC への選択平文攻撃(CVE-2011-3389)。予測可能な IV を悪用して HTTPS クッキーを復元する。
BEAST(Browser Exploit Against SSL/TLS)は Ekoparty 2011 で Juliano Rizzo と Thai Duong によって公開され、CVE-2011-3389 として追跡されています。SSL 3.0 と TLS 1.0 はレコード間で CBC の初期化ベクトルを連結します。レコード N の IV は単にレコード N−1 の最後の暗号文ブロックであり、次のレコードが送信される前にネットワーク上の攻撃者に既知となります。これにより暗号化は IV が予測可能な CBC 方式となり、ブロック単位の適応的選択平文攻撃に対して脆弱になります。
実際の攻撃は、中間者攻撃(MITM)と、被害者のブラウザ内で動作する攻撃者制御の JavaScript(当初は同一オリジンの弱点を突く Java アプレット)を組み合わせます。攻撃者は未知の秘密バイト — 例えばセッションクッキーの 1 バイト — を CBC ブロックの末尾に来るように位置合わせし、そのバイトを推測します。生成された暗号文ブロックが以前に観測したものと一致したとき、その推測は確定します。境界を 1 バイトずつずらすことで、クッキー全体は 256^n 回ではなく 1 バイトあたり約 256 回の推測で復元されます。
対策:TLS 1.1 以降はレコードごとに明示的かつランダムな IV を用いるため影響を受けません。ブラウザは 1/n−1 レコード分割(次の IV をランダム化するために 1 バイトを独立したレコードで送信する手法)を導入しました。RC4 はその独自のバイアスによって安全でなくなるまでの暫定策でした。恒久的な修正は、レコード暗号化において CBC を放棄する AEAD 暗号(AES-GCM、ChaCha20-Poly1305)を備えた TLS 1.2/1.3 です。
flowchart TD
M[MITM observes TLS 1.0 CBC records] --> J[Attacker JS injects chosen plaintext]
J --> A[Align secret cookie byte at block boundary]
A --> G[Guess byte using prior ciphertext block as known IV]
G --> C{Ciphertext block matches?}
C -->|Yes| R[Byte recovered, shift boundary]
C -->|No| G
R --> D{Cookie complete?}
D -->|No| A
D -->|Yes| S[Session cookie stolen]● 例
- 01
悪意ある Java アプレットで TLS 1.0 の銀行サイトから認証クッキーを復元する。
- 02
CBC モードの HTTPS セッションで HTTP リクエストヘッダを 1 バイトずつ復号する。
● よくある質問
BEAST 攻撃 とは何ですか?
2011 年に Rizzo と Duong が公表した SSL 3.0/TLS 1.0 CBC への選択平文攻撃(CVE-2011-3389)。予測可能な IV を悪用して HTTPS クッキーを復元する。 サイバーセキュリティの 攻撃と脅威 カテゴリに属します。
BEAST 攻撃 とはどういう意味ですか?
2011 年に Rizzo と Duong が公表した SSL 3.0/TLS 1.0 CBC への選択平文攻撃(CVE-2011-3389)。予測可能な IV を悪用して HTTPS クッキーを復元する。
BEAST 攻撃 からどのように防御しますか?
BEAST 攻撃 に対する防御は通常、上記の定義で述べたとおり、技術的統制と運用上の実践を組み合わせます。
BEAST 攻撃 の別名は何ですか?
一般的な別名: BEAST。