Skip to content
Vol. 1 · Ed. 2026
CyberGlossary
Entry № 121

Bleichenbacher 攻撃

監修Cybersecurity entrepreneur & security researcher

Bleichenbacher 攻撃 とは何ですか?

Bleichenbacher 攻撃1998 年に Daniel Bleichenbacher が発表した適応的選択暗号文攻撃。サーバが PKCS#1 v1.5 パディングの正当性を漏えいすると RSA 平文を復元できる。


Daniel Bleichenbacher は 1998 年の CRYPTO で、RSA-PKCS#1 v1.5 暗号化を用いる SSL ハンドシェイクへのこの攻撃を発表しました。サーバは意図せずパディングオラクルとして振る舞い、区別可能なあらゆる応答(TLS アラートコード、接続リセット、あるいはタイミング)が、改変された暗号文がバイト列 0x00 0x02 で始まる値に復号されるかどうかを攻撃者に教えてしまいます。RSA は乗法準同型であるため、攻撃者は捕捉した暗号文を選んだ値 s で乗じて結果を送信し、「パディングが正当」という各回答を使って可能な平文の集合を絞り込みます。およそ 100 万回の問い合わせの後、区間は単一の値へ収束し、RSA で暗号化された事前マスタが復元されます。これは秘密鍵に一切触れることなく行われ、攻撃者はセッションを復号したり RSA 署名を偽造したりできるようになります。

PKCS#1 v1.5 のアンパディングは一定時間実装を拒むため、この欠陥はなかなか根絶できません。これは DROWN(CVE-2016-0800) として再来し、SSLv2 オラクルを用いて現代の TLS セッションを破りました。さらに ROBOT(Return Of Bleichenbacher's Oracle Threat、2017) として再現し、研究者の Böck、Somorovsky、Young は F5(CVE-2017-6168)、Citrix、Cisco などが依然として脆弱であることを発見し、Facebook と PayPal に対して実証しました。対策は、正しいパディングと不正なパディングで同一のエラー処理を行うこと、RSA-OAEP を優先すること、RSA 鍵交換の暗号スイートを無効化すること、そしてハンドシェイクから RSA 暗号化を完全に排除した TLS 1.3 を採用することです。

flowchart TD
  A[Attacker captures RSA ciphertext c] --> B["Pick multiplier s, send c·s^e mod n"]
  B --> C{Server padding check}
  C -->|"Starts 0x00 0x02 → valid"| D[Narrow plaintext interval]
  C -->|"Invalid → distinct response"| E[Discard this s]
  D --> F{Interval = 1 value?}
  E --> B
  F -->|No| B
  F -->|Yes| G[Premaster secret recovered]

  1. 01

    1990 年代の Web サーバで、パディング誤りのアラート差から SSL 事前マスタを復元する。

  2. 02

    DROWN と ROBOT は現代の TLS 実装に対し同じオラクルを再利用する。

よくある質問

Bleichenbacher 攻撃 とは何ですか?

1998 年に Daniel Bleichenbacher が発表した適応的選択暗号文攻撃。サーバが PKCS#1 v1.5 パディングの正当性を漏えいすると RSA 平文を復元できる。 サイバーセキュリティの 攻撃と脅威 カテゴリに属します。

Bleichenbacher 攻撃 とはどういう意味ですか?

1998 年に Daniel Bleichenbacher が発表した適応的選択暗号文攻撃。サーバが PKCS#1 v1.5 パディングの正当性を漏えいすると RSA 平文を復元できる。

Bleichenbacher 攻撃 からどのように防御しますか?

Bleichenbacher 攻撃 に対する防御は通常、上記の定義で述べたとおり、技術的統制と運用上の実践を組み合わせます。

Bleichenbacher 攻撃 の別名は何ですか?

一般的な別名: ミリオンメッセージ攻撃。

関連用語