コンテンツにスキップ

Secure Sockets Layer/POODLE攻撃

出典: フリー教科書『ウィキブックス(Wikibooks)』

POODLE攻撃(Padding Oracle On Downgraded Legacy Encryption)は、SSL 3.0プロトコルの脆弱性を悪用したサイバー攻撃の一種です。2014年にGoogleのセキュリティチームによって発見され、SSL 3.0の使用が非推奨となるきっかけの一つとなりました。

POODLE攻撃の概要

[編集]

POODLE攻撃は、SSL 3.0の暗号化方式(具体的にはCBCモードのブロック暗号)における設計上の欠陥を利用します。この攻撃により、攻撃者は暗号化された通信を解読し、平文(暗号化されていない元のデータ)を盗み取ることが可能になります。

攻撃の手順

[編集]
  1. プロトコルのダウングレード:
    • 攻撃者は、クライアントとサーバー間の通信をSSL 3.0に強制的にダウングレードさせます。これは、多くのクライアントとサーバーが下位互換性のためにSSL 3.0をサポートしていることを利用します。
  2. パディングオラクル攻撃:
    • SSL 3.0のCBCモードでは、暗号化されたデータの最後にパディング(余分なデータ)が追加されます。攻撃者は、このパディングの検証方法の欠陥を利用して、暗号化されたデータを1バイトずつ解読します。
  3. 平文の復元:
    • 攻撃者は、暗号化されたデータを繰り返し送信し、パディングのエラーレスポンスを観察することで、平文を推測します。このプロセスを繰り返すことで、最終的に平文全体を復元できます。

POODLE攻撃の影響

[編集]
  • 機密情報の漏洩:
    • 攻撃者が暗号化された通信を解読することで、クッキーやパスワードなどの機密情報が盗まれる可能性があります。
  • セッションハイジャック:
    • クッキーを盗むことで、攻撃者はユーザーのセッションを乗っ取り、なりすまし行為を行うことができます。

POODLE攻撃の対策

[編集]

POODLE攻撃を防ぐためには、以下の対策が有効です。

  1. SSL 3.0の無効化:
    • サーバーとクライアントの両方でSSL 3.0を無効にし、TLS 1.2やTLS 1.3などのより安全なプロトコルを使用します。
    Nginxでの設定例:
    ssl_protocols TLSv1.2 TLSv1.3;
    
    Apacheでの設定例:
    SSLProtocol all -SSLv3
    
  2. プロトコルのダウングレード防止:
    • クライアントがSSL 3.0にダウングレードできないように、サーバー側で設定を行います。
  3. HSTSの有効化:
    • HTTP Strict Transport Security (HSTS) を有効にすることで、ブラウザがHTTPSを強制し、SSL 3.0へのダウングレードを防ぎます。
    Nginxでの設定例:
    add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always;
    

まとめ

[編集]

POODLE攻撃は、SSL 3.0の脆弱性を悪用した重大なセキュリティリスクです。この攻撃を防ぐためには、SSL 3.0を無効にし、より安全なTLSプロトコルを使用することが不可欠です。セキュリティを強化し、ユーザーのデータを保護するために、これらの対策を実施してください。