暗号化通信を解読して情報が盗まれるという「POODLE」攻撃が問題になっているようです。銀行のWebサイトなどで「POODLE」攻撃についてのお知らせや注意喚起を目にしました。いったいどのような攻撃で、対策などはあるのでしょうか。
A
「POODLE」とは暗号化された通信から、その脆弱性を突いて認証情報やクッキー情報を盗み出す攻撃です。対策方法としては、サーバーやWebブラウザーのSSL 3.0を無効にすることです。
「POODLE」はインターネットの暗号化通信を盗聴して解読する攻撃のひとつです。グーグルのエンジニアが発見・報告して話題になりました。暗号化通信は、通信内容の盗聴や改ざんを防ぎ、オンラインバンキングやECサイトでの安全な取引に欠かせない技術です。その安全性がおびやかす攻撃であるとして、多くの銀行や企業が対応に迫られ大きな問題となりました。
POODLEとはどんな攻撃なのか
「POODLE(CVE-2014-3566)」という呼び名は、「Padding Oracle On Downgraded Legacy Encryption」の頭文字をとった略称です。この攻撃は、暗号化通信プロトコルの脆弱性を利用した攻撃と、特定の文字列を利用した暗号解読方法を組み合わせたものです。では詳しく見ていきましょう。
危険なプロトコルにダウングレードするSSL通信の脆弱性
Webブラウザーによる暗号化通信にはSSLやTLSといった手法があります。ひとくくりに「SSL通信」などと呼ばれることがありますが、SSL(3.0が主流)は暗号化の方式が古く、解読される危険性が高いため、現在はTLS(最新は1.2)が推奨されています。すでにほとんどのWebサーバーやWebブラウザーは新しいTLSに対応しています。
しかし、すべてのサーバーやWebブラウザーが新しいTLSに対応しているとは限りません。古い暗号化通信の方式もまだ使われている可能性もあります。そのため、最新の暗号化通信に対応しているサーバーであっても、SSL3.0など古い暗号化通信の方式による通信のリクエストを受けることもあり得ます。そうした場合でも暗号化通信が行えるように互換性を確保するため、自動的に古い通信方式に切り替えて(ダウングレードして)通信するしくみを採用していました。つまり、サーバーやWebブラウザーが最新の安全な暗号化に対応していても、古い暗号のリクエストがきたら、解読されてしまうリスクがあったとしてもその暗号化方式により通信してしまうのです。それが、「暗号化通信プロトコルの脆弱性」です。
特定文字列の連続を手がかりに暗号が解読される
POODLEは、このような暗号化通信の脆弱性を突く攻撃です。その際に使われる暗号の解読方法は「Padding Oracle」という手法です。暗号化の計算方法によっては、ゼロが連続した文字列を暗号化すると特定のパターンが現れることがあります。そのような特定の文字列の暗号文に現れる、ある特定のパターンを手がかりに解読する方法です。具体的には、攻撃者は傍受した暗号化通信からパスワードと思われる文字列を抽出し、1文字だけ残してあとは全部ゼロにして暗号化します。それで作成されたデータをたよりに原文(平文)を調べていくことで解読をしていくのです。
対策はどうすればよいか
ユーザーが古いWebブラウザー(SSL 3.0しか対応していない)を使っていたり、Webサイト側が下方互換のためにSSL 3.0を有効にしていたりすると、POODLE攻撃によって暗号化通信が解読される危険があります。
古いプロトコルにダウングレードする機能は規格で決められた仕様ですので、いまからこの仕様を無効にしても既存のサーバーのプログラムがすべて対応しなければ効果はありません。また、TLSは比較的安全とされているので、1.2から1.1への自動切り替え機能まで無効にする必要はありません。対策はSSL 3.0を無効にすることです。
エンドユーザーは、使っているWebブラウザーのSSL 3.0を無効にしてください。企業やWebサイトの管理者は、Webサーバーの設定でSSL 3.0を無効化します。
また、2014年12月にTLSにおいても実装に問題がある場合は、POODLEの影響を受けるとの指摘も出ています。セキュリティ機関の発表へ引き続き注意する必要があります。対策方法については、情報処理推進機構(IPA)の情報を参考にするとよいでしょう。