FreeBSD-SA-05:21.openssl "Potential SSL 2.0 rollback"

The FreeBSD Project よりセキュリティ勧告が出ました。要点を以下にまとめます。

  • OpenSSLを使用しているサーバアプリケーションでSSL_OP_MSIE_SSLV2_RSA_PADDINGオプション、またはそのオプションを内包するSSL_OP_ALLオプションが有効である場合、中間者攻撃(man-in-the-middle attack)により、SSLv3プロトコルが可能であってもSSLv2プロトコルとする事が出来る。
  • これにより、このような中間者攻撃が可能である状況では、SSLv2プロトコルの知られている脆弱性により、通信内容が漏洩したり改変される可能性がある。
  • このライブラリによる影響はFreeBSDのベースシステムのみならず、portsサードパーティの提供するアプリケーションにも及び、スタティックリンクされている場合は再コンパイルを必要とする。
  • この脆弱性は次の方法で回避できる。*1
    • SSL_OP_MSIE_SSLV2_RSA_PADDING及びSSL_OP_ALLオプションを使用しない。
    • SSLv2をサポートしないか、SSLv2の使用を許さないように設定する。

セキュリティ勧告は ftp://ftp.freebsd.org/pub/FreeBSD/CERT/advisories/FreeBSD-SA-05:21.openssl.asc にあります。
以下は上記のセキュリティ勧告の一部とその訳文です。ただし品質は保証致しません。

I. 背景 - Background

The OpenSSL library implements the Secure Sockets Layer and Transport Layer Security protocols, as well as providing a large number of basic cryptographic functions.
OpenSSLライブラリは多くの基礎的な暗号の機能を提供することと同様に、Secure Sockets LayerおよびTransport Layer Securityプロトコルを実装します。
The Secure Sockets Layer protocol exists in two versions and includes a mechanism for negotiating the protocol version to be used. If the protocol is executed correctly, it is impossible for a client and server both capable of the newer version of the protocol (SSLv3) to end up using the older version of the protocol (SSLv2).
Secure Sockets Layerプロトコルは2つのバージョンが存在し、使用されるプロトコルバージョンの交渉のためのメカニズムを含んでいます。プロトコルが正確に実行され、クライアントとサーバーの両方をプロトコルのより新しいバージョン(SSLv3)にしうるには不可能な場合、結局プロトコルのより古いバージョン(SSLv2)を使用します。

II. 問題の詳細 - Problem Description

In order to provide bug-for-bug compatibility with Microsoft Internet Explorer 3.02, a verification step required by the Secure Sockets Layer protocol can be disabled by using the SSL_OP_MSIE_SSLV2_RSA_PADDING option in OpenSSL. This option is implied by the frequently-used SSL_OP_ALL option.
マイクロソフトインターネットエクスプローラ3.02とのバグのためのバグの互換性を提供するために、Secure Sockets Layerプロトコルによって要求された検証ステップは、OpenSSLのSSL_OP_MSIE_SSLV2_RSA_PADDINGオプションを使用することにより無効にすることができます。このオプションは頻繁に用いられているSSL_OP_ALLオプションに含れています。

III. 影響範囲 - Impact

If the SSL_OP_MSIE_SSLV2_RSA_PADDING option is enabled in a server application using OpenSSL, an attacker who is able to intercept and tamper with packets transmitted between a client and the server can cause the protocol version negotiation to result in SSLv2 being used even when both the client and the server support SSLv3. Due to a number of weaknesses in the SSLv2 protocol, this may allow the attacker to read or tamper with the encrypted data being sent.
OpenSSLを使用しているサーバアプリケーションで、SSL_OP_MSIE_SSLV2_RSA_PADDINGオプションが有効である場合、クライアントとサーバ間で送信されたパケットを傍受し干渉することができる攻撃者は、クライアントとサーバの両方がSSLv3をサポートする場合にさえ、プロトコルバージョン交渉をSSLv2が使用される様に帰着させることができます。SSLv2プロトコル中の多くの弱点により、これは、送られている暗号化されたデータを読んだり干渉することを攻撃者に可能にさせるるかもしれません。
Applications which do not support SSLv2, have been configured to not permit the use of SSLv2, or do not use the SSL_OP_MSIE_SSLV2_RSA_PADDING or SSL_OP_ALL options are not affected.
SSLv2をサポートしないか、SSLv2の使用を許さないように設定されているか、SSL_OP_MSIE_SSLV2_RSA_PADDINGまたはSSL_OP_ALLのオプションを使用しないアプリケーションは影響されません。

IV. 回避方法 - Workaround

No workaround is available.
回避方法はありません。

><

*1:回避方法には「ない」と記述されているが、影響範囲にはこの条件の場合には影響されないとある