ポタージュを垂れ流す。

マイペースこうしん(主に旅行)

POODLE攻撃

例によってリレーブログの時間です!前の僕の記事はこれ、前回の方のブログはこちらになります。

potaxyz.hatenablog.jp

amame.hateblo.jp

今回僕に与えられたテーマはPOODLE攻撃になります。かなりざっくりまとめます。(せっかくなら実装して検証したり...とかやろうと思っていたのですが全然時間が取れなかったのでまたいつか...!)

POODLE攻撃とは

POODLEとは、Padding Oracle On Downgraded Legacy Encryptionの略で、SSL3.0というインターネット上でデータを暗号化して送受信する仕組み(=プロトコル)を用いた中間者攻撃を実行するために悪用されうるセキュリティ上の欠陥です。

新しい暗号化方式の通信に対応しているサーバーであっても、サーバーが対応している古い暗号化方式の通信プロトコルに切り替え(=ダウングレード)、古い方式に有効なPadding Oracle攻撃を行うというものです。

Padding Oracle

暗号方式にも様々ありますが、その中でもブロック暗号方式では、特定のサイズ単位でデータを暗号化します。しかし、暗号化したい平文は必ずしも特定のサイズ単位になっているとは限りません。そこで、前回の僕の記事のように、特定のサイズ単位になるようにダミーデータを詰めてやる、ということをします。

例を出すと、64bit単位でデータを暗号化する方式だったとすると、平文が54bitであれば、残りの10bitはダミーデータで埋め(埋める=padding)、規格に合うようにします。

クライアントからサーバーに暗号文を送ると、暗号文を解析した結果をクライアントに返すときに、暗号文が正しく復号できたかどうかのみならず、パディングの一致不一致などをお知らせする場合があります(パディングのオラクル、オラクルは神託という意味)。

このPadding Oracleを攻撃者は利用して、例えば、正しいパディングを変えながら送信しまくって調べ、正しいパディングがわかれば暗号化途中の中間値が解析でき、と、これを繰り返せば最終的に暗号化前の平文を解析することができてしまうのです!

対策

対策としては、SSL3.0を無効にすること、と、いたってわかりやすいものになっています。現在ではSSLは使用が禁止されており、TLSというプロトコルが使われています。

実は、この脆弱性SSLだけでなくTLSの初期バージョン(1.0/1.1)にも存在することが報告されています。このため、2021年3月には、TLS1.0/1.1の使用禁止が求められています。なので、TLSTLSでもバージョン1.2以上のものを使うようにすればよいということになります。

参考文献

次の記事はこちらです。

qwerty11.hatenablog.com