2014年7月31日木曜日

SSLチェックツールでサーバをチェックしたときに表示された警告に対処する方法メモ

SSLの設定をチェックしてみよう


単にWebサーバでSSLを使えるようにするだけならそこそこ簡単なわけですが、「ちゃんと設定できているか」ってとこまで気にしてますか?まあ、何を持って「ちゃんと設定できている」とするかは悩みどころなわけですが、そういったチェックをやってくれるサイトがあるのですよ。


中身的にはQUALY'S SSL LABの「SSL Server Test」と同じっぽいですが、日本語で表示されるのでGlobalSignのほうが使いやすそうかなと。


自宅サーバをチェックしてみましたよ


ってことで、自宅サーバをチェックしてみました。テキストボックスに自分のドメインを入力し、「スキャン」をクリック。しばらく待つと(*1)結果が表示されますよ。

ボクのサーバの場合は「A-」ということで、まあそこそこって感じでしょうかね。


さて、いくつか改善提案が出てるみたいなので、チェックしてみて修正できるようならしてみましょうか。ちなみに、Apache 2.4系での設定を前提にしてますよ。あと、ボクの環境で出たエラーについてしか書いてませんよ。

サーバはHTTP Strict-Transport-Securityが有効になっていません。


説明を読むと「HTTP Strict Transport Security (HSTS)とは、ウェブサーバがブラウザーにHTTPSのみを使用して接続するよう指示するウェブセキュリティーポリシーの仕組みです。」とのことで。ちょっとググってみたところ、下記のサイトなんかが参考になりそうかな。


Header set Strict-Transport-Security "max-age=315360000; includeSubDomains"

ってところですね。mod_headerが使えるようになっているApacheのSSLなバーチャルホストの所にこれを入れておけばOKっぽい。

ただ、これを入れてしまうと一度でもHTTPSで接続してしまうと次回以降にHTTPで接続しても強制的にHTTPSになってしまうので、それが問題になる場合もあるかもしれない。そこら辺はよく考える必要があるかな。ちなみにボクは書かないことにしました。

サーバはモダンブラウザでRC4を使用します


説明によると「より安全性の高い暗証がTLS 1.1 以降のバージョンでご利用できます」とか「この攻撃が実際的でないとは言え、可能な限りRC4 の使用の中止を推奨します」とか書いてあるのです。要は「SSLCipherSuite」を適切なものに変えればいいって感じなのかなと思いつつ、何を設定すれば良いのかいまいちよく分かっておらず……。

いろいろググってみたところ下記のサイトが見つかったので、とりあえずそれを抜き出してみることに。


SSLCipherSuite ECDH+AESGCM:DH+AESGCM:ECDH+AES256:DH+AES256:ECDH+AES128:DH+AES:ECDH+3DES:DH+3DES:RSA+AESGCM:RSA+AES:RSA+3DES:!aNULL:!MD5:!DSS

と記載するようにしてみた。

このサーバはSSL v3が有効化されています


要は

SSLProtocol ALL -SSLv2 -SSLv3

ってしましょうねって話だよね。

このサーバは脆弱性のあるRC4ベースのciphersuites を使用しています


これについては前述の「サーバはモダンブラウザでRC4を使用します」と同じような話だと理解している。ので、対処法も同じ。

サーバの設定はFIPSガイドラインを満たしていません


説明によるとこの「FIPSガイドライン」というのは「FIPS 140-2」の話らしい。

説明文には

  • SSL v2 とSSL v3 が無効であること (TLS バージョンのプロトコルのみを使用)
  • FIPSに認められたアルゴリズムを使用していること
  • FIPSに求められたcipher suitesのみ有効であること

といった条件が挙げられているので、前述の「サーバはモダンブラウザでRC4を使用します」、「このサーバはSSL v3が有効化されています」、「このサーバは脆弱性のあるRC4ベースのciphersuites を使用しています」あたりを解決しておけばOKっぽい。

このサーバはOCSP stapling が設定されていません


SSLで接続しようとすると遅いなと感じることがあるかもしれない。これは「OCSP(Online Certificate Status Protocol)」っていう証明書失効を確認する為のブツが原因である事があって、それを高速化する為の仕組みが「OSCP stapling」って奴らしい。新しめのWebサーバだったら大丈夫っぽいけど、古いやつだと設定に対応していないっぽいね。

説明文中によると下記サイトのリンクが張ってある。


いろいろ書いてあるけど、必要そうな所だけ抜き出してみたのが下記。<VirtualHost>ディレクティブ中にはかけないので、その外側に追記すればOK(?)

SSLUseStapling on
SSLStaplingCache "shmcb:logs/stapling_cache(128000)"

サーバーは現在EV SSLを使用していません


自宅サーバはRapidSSLなので、これがでますね。そもそも個人でEV SSLなんか入れてられないので、無視します。法人の場合でも、必要かどうかは悩みどころかな。安い買い物ではないので。

サーバはSPDYを使用可能な状態にしていません


要はmod_spdyをインストールしましょうって話ですよね。でもmod_spdyって2.2までしかオフィシャルには対応してないよね?……ってことで、無視します。

結果どうなった?


上記の設定を踏まえてみた結果、「A-」から「A」になりましたとさ。ちなみに「HTTP Strict-Transport-Security」を有効にした状態だと「A+」になりました。


コレで安心だね……と思っていたのだけれど、「セッションはBEAST攻撃を受けやすいかもしれません」というメッセージが……。説明をみると「サーバ側でRC4 cipher suitesの優先的使用を行う事を推奨します」とか書いてあるのだけれど、前述の通り「RC4系を外せ」って言われて外したのよねん……。

とりあえず、無視して、いいのかな?

ダメなものはわかるけど、どうすれば良いかが分からない


一通りやってみて、自分でいろいろ調べてみて思うのは、「○○はしてはいけません」って情報はすごく容易に入手できるなぁと。でも、「じゃあどうすればいいの?」って疑問の答えってのはビックリするほど見つからない。まあ、「こうしなさい!」ってのをコピペするってのもいろいろとアレなのだけれども。。。

情報源のほとんどが英文で、ボクの英語力が低すぎる……ってのはあるのかもしれないし、技術力が低すぎるってのが原因なのかもしれない。けど、もうちょっとこの辺りの情報が見つかってもおかしくないんだけどなぁ……。なんで見つからないんだろ。誰も書いてないのか、書いてあるけど検索キーワードがボクの想定と違っていてヒットしないのか……。

このエントリも「コレで大丈夫です!」って内容じゃないから、だれか詳しい人にツッコミを貰いたい今日この頃。


*1:ボクの場合、130秒ほど

0 件のコメント:

コメントを投稿