職場の外部向けサーバーでapache 2.2+OpenSSL 0.98を使ってます。
OpenSSLの1.01はバグ(最近ではhttp://www.openssl.org/news/secadv_20140407.txt)が怖くて移行できないでいるのですが、いつまもでも移行しないではいられません。
バージョン1.01を比較的安全に使うのはどうすれば良いのか思案中です。お知恵を貸して下さい。
CentOS 6.5 上で実験してみました。
サーバ側:
openssl s_server -cert 証明書ファイル -key 秘密鍵ファイル -ssl3
クライアント側:
echo B | openssl s_client -connect localhost:4433
結果:
(略) SSL-Session: Protocol : SSLv3 Cipher : ECDHE-RSA-AES256-SHA Session-ID: XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX Session-ID-ctx: Master-Key: XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX Key-Arg : None Krb5 Principal: None PSK identity: None PSK identity hint: None Start Time: 1398341090 Timeout : 300 (sec) Verify return code: 18 (self signed certificate) --- HEARTBEATING DONE
SSLv3 でつながっているのけど heartbeat は使えています。
余談:
検証してみようと試している中で、RHEL / CentOS 6.5 の httpd で SSLProtocol で SSLv3 のみを指定している場合、TLSv1.0 でのネゴシエーションに失敗するのに、TLSv1.1、TLSv1.2 ではつながる、という不思議な現象を発見...。
閑話休題。
結論としては、TLSv1.1、1.2 を無効にしても heartbeat が使えるので、Heartbleed の問題は避けられないことになります。
うーん。1.01gを信用するべきなのか。信用するにしても当面TLS1.1/1.2は非活性にするべきなのか。。。
ピンポイントで今回の Heartbleed の問題に対して、1.0.1g や各ディストリビューションの update での修正が信用できるか? ということであれば、十分に信用できます。というのは、原因が極めて単純なバグだったからです。ですので、Heartbleed の問題は、きちんとアップデートして置けば、今後は発生しません。
ただ、OpenSSL というプログラムがどうか? という事に関しては、ケチが付いた格好にはなります。
一度、こういった事があると、「他に同様の問題はないか?」と疑心暗鬼になるのは仕方がないことです。OpenSSL のプロジェクトのあり方にも疑問が示され、OpenBSD プロジェクトが LibreSSL という代替プログラムのプロジェクトを立ち上げています。
なので、OpenSSL 自体を信用ならないとするなら、どのバージョンを使うべきか、ではなく、OpenSSL 以外の実装(例えば GnuTLS)を選択する、という話になります。
確かに Heartbleed は、久しぶりに見る「大きな穴」でしたが、正直、これほどの大きな穴が、ほいほいと見つかるかというと、確率は低いと思います。
これよりも小さな穴は、どんなソフトでも見つかる話で、一番肝心なのは、アップデートが出たら、面倒がらずにアップデートする、という方が、トータルで考えると、簡単で確実な方法だと思います。
今回問題になった脆弱性はHeartbeat拡張の実装の問題なので、TLSだけでなくSSLにも及びます。なので、TLS1.1/TLS1.2認証を非活性にしていても避けられません。
https://sect.iij.ad.jp/d/2014/04/157355.html
この脆弱性はバージョン1.01gにアップデートすれば改善します。
修正済みバージョンの適用が困難な場合は、以下の回避策の適用を検討してください。
「-DOPENSSL_NO_HEARTBEATS」オプションを有効にして OpenSSL を再コンパイルする。
http://www.jpcert.or.jp/at/2014/at140013.html
バージョン1.01については、今回の脆弱性が指摘されるまで1年近くにわたってバグらしいバグが出ていなかったので、安定しているバージョンだと思います。
今回のケースでの1.01gの利用に関しては、会社の信用情報を扱うサーバーのため、堅牢さ重視の運用になるかと思います。
ただ、同じようなケースを抱えてる方にとっては、反面教師になる部分を含めて、お役に立てたのではないでしょうか。
もう一つの質問も含め、私には、とても勉強になりました。
人力検索にも良い回答者がいらっしゃることが分かって、長年の愛好者としては、これも嬉しい発見でした。
おつきあい下さった皆様、ありがとうございました!