[脆弱性②]POODLE
POODLEは、 2014年に発覚したSSLの脆弱性である。
今回はPOODLEの原理について簡単に記載する。
■POODLEの概要
POODLE(Padding Oracle On Downgraded Legacy Encryption)は、httpsなどのSSLによって暗号化された通信傍受することで、暗号鍵なしで解読することが可能な脆弱性である。
Downgraded Legacy Encryption(ダウングレード攻撃)とPadding Oracle(パディングオラクル攻撃)を組み合わせた攻撃である。
■前提
・ダウングレード攻撃
SSL/TLSにはいくつかのバージョンがあるが、暗号化通信を行なう前に、クライアントとサーバでどのバージョンで暗号化を行なうかを取り決める。これをネゴシエーションと呼ぶ。攻撃者が意図的に低いバージョン(一般には防御力が弱い)で暗号化を行なうように仕向けるのがダウングレード攻撃である。
・パディングオラクル攻撃
暗号化データを解読する攻撃。
SSL3では、暗号化を固定長のブロック長ごとに行なう。人間が作成したデータは、このブロック長の整数倍とは限らないため、データ量が足りない場合は、末尾にブロック長になるようにダミーデータで穴埋めを行う。これをパディングと呼ぶ。
実は、このパディングの完全性(改ざんされていないか)をチェックする機能が無い。
攻撃者はこれを利用し、パディングをうまく設定しながらサーバに対して解読したい暗号文を何度も送りつけ、エラーがでるか、でないかを検証していくことで、暗号文の解読を行なう。
■POODLEの簡単な流れ
①サーバとクライアントの間に機器を設置し、盗聴、改ざん、偽サーバへ誘導ができる状態にする。ただし、暗号化されたデータの盗聴はできない。
②クライアントを偽サーバへ誘導する
③クライアントからサーバへhttpsリクエストを発行させる(このデータには、解読したいCookieデータなどがある)
④このとき、ネゴシエーションデータを改ざんし、脆弱性のあるSSL3で通信を開始させる。
※ネゴシエーションのデータは平文なので、改ざんが可能。
⑤SSL3によって暗号されたデータがクライアントからサーバへ送信されるので、そのデータを盗聴する
⑥盗聴したデータのパディングを改ざんしてからサーバへ送信して、サーバ側で復号が成功したかを確認する
⑦ ①から⑥を繰り返し、データの解読を行なう
■対策
SSL3へのダウングレードを防ぐのが有効。サーバかクライアントのいずれかで、SSL3を無効にすれば良い。
今回はPOODLEの原理について簡単に記載する。
■POODLEの概要
POODLE(Padding Oracle On Downgraded Legacy Encryption)は、httpsなどのSSLによって暗号化された通信傍受することで、暗号鍵なしで解読することが可能な脆弱性である。
Downgraded Legacy Encryption(ダウングレード攻撃)とPadding Oracle(パディングオラクル攻撃)を組み合わせた攻撃である。
■前提
・ダウングレード攻撃
SSL/TLSにはいくつかのバージョンがあるが、暗号化通信を行なう前に、クライアントとサーバでどのバージョンで暗号化を行なうかを取り決める。これをネゴシエーションと呼ぶ。攻撃者が意図的に低いバージョン(一般には防御力が弱い)で暗号化を行なうように仕向けるのがダウングレード攻撃である。
・パディングオラクル攻撃
暗号化データを解読する攻撃。
SSL3では、暗号化を固定長のブロック長ごとに行なう。人間が作成したデータは、このブロック長の整数倍とは限らないため、データ量が足りない場合は、末尾にブロック長になるようにダミーデータで穴埋めを行う。これをパディングと呼ぶ。
実は、このパディングの完全性(改ざんされていないか)をチェックする機能が無い。
攻撃者はこれを利用し、パディングをうまく設定しながらサーバに対して解読したい暗号文を何度も送りつけ、エラーがでるか、でないかを検証していくことで、暗号文の解読を行なう。
■POODLEの簡単な流れ
①サーバとクライアントの間に機器を設置し、盗聴、改ざん、偽サーバへ誘導ができる状態にする。ただし、暗号化されたデータの盗聴はできない。
②クライアントを偽サーバへ誘導する
③クライアントからサーバへhttpsリクエストを発行させる(このデータには、解読したいCookieデータなどがある)
④このとき、ネゴシエーションデータを改ざんし、脆弱性のあるSSL3で通信を開始させる。
※ネゴシエーションのデータは平文なので、改ざんが可能。
⑤SSL3によって暗号されたデータがクライアントからサーバへ送信されるので、そのデータを盗聴する
⑥盗聴したデータのパディングを改ざんしてからサーバへ送信して、サーバ側で復号が成功したかを確認する
⑦ ①から⑥を繰り返し、データの解読を行なう
■対策
SSL3へのダウングレードを防ぐのが有効。サーバかクライアントのいずれかで、SSL3を無効にすれば良い。
スポンサーサイト