Translated message

A translation of this page exists in English.

SWEET32:64 ビットブロックサイズの TLS 暗号に対する誕生日攻撃 (CVE-2016-2183)

概要

Red Hat 製品セキュリティーでは、SSL/TLS プロトコル内のブロック暗号に関する問題を認識しています。この問題は、特定の設定で競合攻撃ができてしまう可能性があります。この問題は 中程度 と評価されており、CVE-2016-2183 が割り当てられています。この問題に関しては、現時点では Red Hat 製品のユーザーによる更新やアクションは必要ありません。 詳細は、以下の 解決策 のセクションを参照してください。

背景情報

ブロックサイズが 64 ビットの従来のブロック暗号は、CBC モードで使用すると実際の競合攻撃に対して脆弱です。対称鍵暗号として 3DES を使用する暗号スイートをサポートしているすべての SSL/TLS プロトコルのバージョンが影響を受けます (例: ECDHE-RSA-DES-CBC3-SHA)。Red Hat Enterprise Linux 6 および 7 に同梱されている OpenSSL のバージョンでは、DES ベースの暗号スイートは、AES-128 (PFS 暗号スイート付き) および AES-256 をサポートする暗号スイートの下にリストされています。つまり、サーバーが AES-128 と AES-256 を明示的に無効にしている場合にのみ、DES 暗号が選択されることになります。 Red Hat Enterprise Linux 5 に同梱されている OpenSSL のバージョンでは、DES ベースの暗号スイートは AES-256 より下ですが、AES-128 より上にリストされます。このような場合、サーバーが AES-256 ベースの暗号スイートを明示的に無効にしている場合にのみ DES が選択されます。

ブロック暗号のセキュリティーは、キーのサイズ (k) によって決まります。したがって、ブロック暗号に対する最も効果的な攻撃は、計算量が 2 k の総当たり鍵探索攻撃です。ただし、CBC などの暗号化モードでブロック暗号を使用して大量のデータを暗号化する場合、ブロックサイズ (n) もセキュリティーを決定する上で重要な役割を果たします。

CBC モードの暗号化を使用する場合、単純な誕生日攻撃が可能であり、同じ鍵で 2 n/2 データブロックを暗号化すると、2 つの暗号化ブロックが競合することが予想されます。出力の競合は入力が同じであることを意味します。このデータは、いくつかの条件 (以下で説明) と組み合わせて、暗号化されたデータのプレーンテキストを抽出するために使用できます。

攻撃の実現可能性

  1. まず、DES/3DES は、ブロックサイズが 64 ビットである SSL/TLS で使用される唯一の暗号です。概要で説明したように、3DES を含む暗号スイートは、他の暗号スイート (例: AES-128) よりも優先されます。

  2. 64 ビットブロック暗号に対する攻撃を実行するには、少なくとも 32 GB のデータがネットワーク上でキャプチャーされる必要があります。SSL/TLS の場合、これは単一の SSL/TLS セッションからのことを意味します。(すべての新しいセッションでは、SSL/TLS は対称鍵を再ネゴシエートします)。したがって、長時間持続する https 接続は脆弱になる可能性があります。

  3. 多くの場合、2 つのプレーンテキストブロック間の XOR だけを復元しても、実際に意味のある攻撃にはなりません。ただし、以下の条件が満たされると攻撃を仕掛けることができます。

    • 固定されたシークレットが繰り返し送信される。

    • プレーンテキストの一部がすでに知られている。

  4. 研究論文に記載されている概念実証攻撃では、すべての通信においてサーバーとクライアントの間で何らかの認証トークンが渡されることを前提としています (トークンは Basic 認証で使用される認証情報の Cookie である可能性があります)。その後、攻撃者は攻撃対象の Web サイトのオリジン内で悪意のある JavaScript を実行します。その後、BEAST タイプの攻撃を使用して Cookie を抽出できます。

軽減策

  1. SSL/TLS 設定では DES よりも AES を優先する必要があります。Red Hat Enterprise Linux 6 および 7 に同梱されている OpenSSL のバージョンでは、すでにこの機能が実装されています。
  2. Red Hat Enterprise Linux 5 に同梱されている OpenSSL のバージョンでは、3DES は AES-256 暗号よりも下、AES-128 暗号よりも上にリストされているため、AES-256 ベースの暗号スイートをサーバー上で無効にしないでください。
  3. OpenSSL を使用するサーバーでは、AES-128 および AES-256 暗号スイートを無効にしないでください。Red Hat Enterprise Linux に同梱されている Apache のバージョンでは、デフォルトの暗号文字列が使用され、DES/3DES ベースの暗号スイートよりも AES が優先されます。
  4. 3DES を無効にします。これは、Apache httpd では次のように設定すると無効化できます。SSLCipherSuite HIGH:MEDIUM:!MD5:!RC4:!3DES

解決策

  1. この不具合は DES/3DES 暗号の設計に関連するものであり、実装上の不具合ではありません。
  2. デフォルトの暗号リスト設定では 3DES よりも上位に、より強力な暗号スイートがいくつか配置されているため、この不具合は Red Hat Enterprise Linux 5、6、7 の暗号化ライブラリー (OpenSSL、NSS、GnuTLS) に直接影響しません。
  3. Red Hat Enterprise Linux 5 の場合、サーバー上で AES-256 ベースの暗号スイートを無効にしないでください。Red Hat Enterprise Linux 6 および 7 の場合、サーバー上で AES-128 または AES-256 ベースの暗号スイートを無効にしないでください。
  4. 悪意のあるクライアントが TLS ハンドシェイク中に脆弱な暗号のみを提供できるシナリオを回避するために、DES/3DES 暗号を完全に無効にすることを推奨します。

アップストリームのセキュリティー修正:

OpenSSL:

OpenSSL は、これを重大度「低」のセキュリティーの問題として評価しました。 1.0.2 ブランチでは 3DES 暗号スイートが HIGH カテゴリーから MEDIUM カテゴリーに移動されており、今後のリリースではデフォルトで無効になる予定です。

NSS:

Mozilla はすべての暗号スイートに対してデータ制限を実装しています。

関連する問題:

アップストリーム OpenVPN も Sweet32 攻撃の影響を受けやすく、CVE-2016-6329 によって追跡されています。 Red Hat の OpenVPN 実装はこの不具合の影響を受けません。

参照

https://access.redhat.com/security/cve/CVE-2016-2183
https://sweet32.info/

Comments