CBC モードの脆弱性対策
今回はSSLv3.0/TLSv1.0 プロトコルの弱い CBC モードの脆弱性(CVE-2011-3389)への対策。
この脆弱性なのだが、SSLv3.0 と TLSv1.0 の実装では CBC モードの使用を選択することに弱点があり、攻撃されてしまうとのこと。 うーん、よくわからん...
これに対応するには、Apacheの設定で以下の2つのSSL設定を行なうことで脆弱性が緩和されるとのこと。
- SSLCipherSuite RC4-SHA:HIGH:!ADH
- SSLHonorCipherOrder ON
SSLCipherSuiteでは、クライアントからの接続を許可する暗号化アルゴリズムを限定する。
上記の設定では、以下の暗号化アルゴリズムを許可する。
# openssl ciphers -v 'RC4-SHA:HIGH:!ADH'
RC4-SHA SSLv3 Kx=RSA Au=RSA Enc=RC4(128) Mac=SHA1
DHE-RSA-AES256-SHA SSLv3 Kx=DH Au=RSA Enc=AES(256) Mac=SHA1
DHE-DSS-AES256-SHA SSLv3 Kx=DH Au=DSS Enc=AES(256) Mac=SHA1
AES256-SHA SSLv3 Kx=RSA Au=RSA Enc=AES(256) Mac=SHA1
DHE-RSA-AES128-SHA SSLv3 Kx=DH Au=RSA Enc=AES(128) Mac=SHA1
DHE-DSS-AES128-SHA SSLv3 Kx=DH Au=DSS Enc=AES(128) Mac=SHA1
AES128-SHA SSLv3 Kx=RSA Au=RSA Enc=AES(128) Mac=SHA1
KRB5-DES-CBC3-MD5 SSLv3 Kx=KRB5 Au=KRB5 Enc=3DES(168) Mac=MD5
KRB5-DES-CBC3-SHA SSLv3 Kx=KRB5 Au=KRB5 Enc=3DES(168) Mac=SHA1
EDH-RSA-DES-CBC3-SHA SSLv3 Kx=DH Au=RSA Enc=3DES(168) Mac=SHA1
EDH-DSS-DES-CBC3-SHA SSLv3 Kx=DH Au=DSS Enc=3DES(168) Mac=SHA1
DES-CBC3-SHA SSLv3 Kx=RSA Au=RSA Enc=3DES(168) Mac=SHA1
DES-CBC3-MD5 SSLv2 Kx=RSA Au=RSA Enc=3DES(168) Mac=MD5
SSLHonorCipherOrderでは、ONにすると、SSLで接続した場合、サーバ側で許可している暗号化アルゴリズムが選ばれるようになるようである。
つまり、SSLの暗号化アルゴリズムとしては、RC4-SHAが選択される可能性が高くなるため、脆弱性が緩和されるらしい。(へぇ~)
とりあえず設定してみたけど、どう確認すれば良いかわからんな。 脆弱性チェックで引っかかからなければヨシとするか。
追記
確認は以下のコマンドで実施してみた。 とりあえず、RC4-SHAになっているのでOKかな?# openssl s_client -connect localhost:443 -showcerts
:
SSL handshake has read 1532 bytes and written 435 bytes
---
New, TLSv1/SSLv3, Cipher is RC4-SHA
Server public key is 2048 bit
Secure Renegotiation IS supported
Compression: NONE
Expansion: NONE
SSL-Session:
Protocol : TLSv1
Cipher : RC4-SHA
参考