パディングオラクル攻撃(Padding Oracle Attack)とは
パディングオラクル攻撃(Padding Oracle Attack)とは、ブロック暗号の1つのCBC(Cipher Block Chaining)により暗号化された文章を鍵がなくても解読が行えたり、内容の改ざんを行うことができる攻撃です。
ブロック暗号とは、平文をいくつかのブロックに分けて暗号化を行う方式で、共通鍵暗号方式のAES(Advanced Encryption Standard)などが広く使われています。
パディングオラクル攻撃では、サーバなどからのブロック暗号のアルゴリズムの解読エラーから平文を推測して解読します。適当なデータを暗号文としてサーバに送信し、サーバからのエラーの返答によって平文を推測していきます。
攻撃名に含まれる「オラクル」はデータベース名からとったものではなく、神託という意味で正しいレスポンスを返すことを表し、エラーに返答の正しさを悪用して攻撃を行う。
オラクルによる推測
暗号文を送った時のオラクルとして以下のパターンに分けられる。
- 送信された暗号文が正しく復号できた
- 送信されたデータのパディングが一致しなかった
- 送信されたデータのパディングが一致したが、復号は暗号鍵が正しくないなどの理由で失敗した
パディングオラクル攻撃では、正しいパディングをオラクルによって推測し、そこから平文の推測や改ざんを行う。
コメント
[…] POODLE攻撃とは、SSL3.0の脆弱性を利用したパディング攻撃(パディングオラクル攻撃)の一つで、暗号化された通信から平文を解析して重要な情報を取得する攻撃です。 […]