Apache と OpenSSL を使用して、SSL の安全でない再ネゴシエーションの脆弱性をテストしています。
Apache 2.2.14 が OpenSSL 0.9.8k に対してコンパイルされた場合、openssl コマンドは、次のように、クライアントが開始した Apache との安全でない SSL 再ネゴシエーションを確立できました。
# /usr/local/openssl-0.9.8k/bin/openssl s_client -connect debian:443
[...]
HEAD / HTTP/1.0
R
RENEGOTIATING
depth=0 /C=UA/ST=Some-State/O=Alice Cruel Ltd/CN=strawberry.xxx
verify error:num=18:self signed certificate
verify return:1
depth=0 /C=UA/ST=Some-State/O=Alice Cruel Ltd/CN=strawberry.xxx
verify return:1
HTTP/1.1 200 OK
Date: Thu, 23 Jan 2014 13:54:33 GMT
Server: Apache/2.2.14 (Unix) mod_ssl/2.2.14 OpenSSL/0.9.8k
Last-Modified: Sat, 20 Nov 2004 20:16:24 GMT
ETag: "1b006b0-2c-3e9564c23b600"
Accept-Ranges: bytes
Content-Length: 44
Connection: close
Content-Type: text/html
closed
#
しかし、OpenSSL 0.9.8m に対してコンパイルされた Apache 2.2.15 では、「SSLInsecureRenegotiation on」が ssl.conf に追加されていても、クライアントが開始した SSL 再ネゴシエーションは失敗しました。
# /usr/local/openssl-0.9.8k/bin/openssl s_client -connect debian:443
CONNECTED(00000003)
[...]
HEAD / HTTP/1.0
R
RENEGOTIATING
4790:error:1409E0E5:SSL routines:SSL3_WRITE_BYTES:ssl handshake failure:s3_pkt.c:530:
#
後者の結果は予想外のようです。SSLInsecureRenegotiation ディレクティブが機能していませんか? 指令を有効にする方法を知りたい。
前もって感謝します。