先週のInternet Week 2014でHTTPSサーバー設定の話をさせて頂きました。お越し頂いた方、ありがとうございました。マニアックな内容だったのですが、何か参考になる所があれば嬉しいです。

さて、今日はパネルネタで仕込んでおいたのに陽の目を見なかった話をちょっとブログで書こうと思います。SSL/TLS関連で統計データみたいなものを出しているサイトが幾つかあって、そこから世の中の傾向がわかったり、それを元に自分のサーバーはどう設定するかなぁ、などと考えるのに役に立つのではと思い紹介したいと思います。

SSL Pulse

まず最初に紹介したいのがSSL Pulseというサイトです。
t1
出典:SSL Pulse https://www.trustworthyinternet.org/ssl-pulse/
このサイトSSL Pulse (https://www.trustworthyinternet.org/ssl-pulse/)ssllabsでも有名なQualys社が 運営しているサイトで、Webサイト調査のAlexa社による 世界のアクセストップ20万サイトを対象にSSL関係の統計情報を毎月公開しているもので、以下のような情報を公開しています。

  • サーバー設定強度ランクA〜F
  • プロトコルバージョン状況(SSLv3, TLSv1.2等)
  • サーバー証明書の状況(SHA2対応、鍵長)
  • 最近の脆弱性の対応率(HeartBleed, BEAST, CRIME, RC4等)
トップページは今月の情報が表示されていますが、「Previous」のボタンを押していくと先月、先々月とグラフを見る事ができます。ただ、このサイトで残念なのは、どのように値が推移してきたのかっていうのがわかりにくいことなんですよねぇ。ちょっとソースを見てみると全てのデータはJSON形式で2012年4月から提供していることがわかります。
https://www.trustworthyinternet.org/asset/project/ssl-pulse/data/index.json
https://www.trustworthyinternet.org/asset/project/ssl-pulse/data/ssl-pulse_2014-11.json
じゃぁ、時系列で見えるようにしましょう・・・と。本当はJavaScriptとjQuery系のグラフプラグインだけでやるべきなんでしょうが講演まであまり時間がなかったので、Pythonでちゃちゃっと作ってCSV形式に加工しました。

SSL Pulse: SSLプロトコルバージョン推移

これは、2012年4月からのSSL/TLSのプロトコルバージョンの推移です。
001

  • ずっとSSLv3、TLSv1.0はほぼ100%のサポートだったが、 2014年10月に発見されたPOODLE攻撃の影響でSSLv3が60%にまで下がった。
  • TLSv1.1、TLSv1.2は順調にのびているが、まだ50%程度しかない。
  • SSLv2を使っているサイトが、未だ20%近くある。

SSL Pulse: SSL脆弱性の対応推移

今年はSSL/TLSに関しても脆弱性の当たり年でしたが、脆弱性への対応の推移をまとめてみました。 元データのせいで評価の仕方が「対応してる率」なのか「してない率」なのかバラバラで、本当は統一できればよかったんですが、わかりにくくてすみません。
002

  • HeartBleedについては重大な問題だったためか発生直後で大多数が対応しているようだ。
  • CCSInjectionについても対応率が高いが影響自体が少なかったせいかもしれない。
  • 再ネゴシエーション攻撃についても対応率が高く残り数%の所まできている。
  • CRIME、TIMEなどSSL圧縮による攻撃の影響を受けるSSL圧縮を無効化していない サイトも数%までに現象した。
  • スノーデンの告白でわかったNSAなどの大量監視から身を守る Perfect Forward Secrecy対応のため、ECDHE、DHEの暗号スイートを使えないサイトは 40%程度まで減ってきており対応がかなり進んだ。
  • ストリーム暗号RC4の危殆化と、Microsoft製品がRC4アルゴリズムの利用を 無効化した影響か、RC4アルゴリズムを使えないサイトが20%ぐらいと徐々に 増えているが未だRC4を使えるサイトは80%もある。
  • BEAST、BREACH、POODLE攻撃などに影響のあるCBCブロック暗号モードを 利用可能なサイトは一時現象傾向を見せたが、RC4停止と逆にCBCが増えており、 CBCの利用可能は80%近くまで戻している。レガシー環境では暗号スイートは 3DES-CBCかRC4の2択しかないが、Microsoftが利用停止した影響もあり、 BEAST攻撃対策をあきらめてRC4対策を取るという傾向にあるようだ。

SSL Pulse: サーバー証明書の署名アルゴリズム推移

Microsoft や Google のブラウザが、SHA1withRSA署名アルゴリズムの証明書のサポートを2017年1月には打ち切るとしており、サーバー管理者の方はSHA256withRSAなどの証明書の移行をそろそろ検討しなければならないかと思います。 サイバートラスト社のサイトでMicrosoft、Google、Firefox、CABForumのSHA1証明書対応をとてもわかりやすくまとめておられるのでご覧になると良いと思います。 では、署名アルゴリズムの移行についても見てみましょう。
003

  • 2014年6月以降、90%→75%と急激にSHA1withRSA証明書が減っている。
  • 逆にSHA256withRSA証明書は10%→25%と急激に増えている。
  • SHA256withECDSA証明書はなかなか利用がすすまずほぼ0%で横ばい。

SSL Pulse: SSLの先進機能の利用推移

EV証明書が先進機能かどうかはさておき、HTTPS関係の先進機能の利用状況推移について見てみましょう。
004

  • 先進機能はどれも10%に満たない。
  • EV証明書も増えてはいるが2年で8%→10%と微増
  • SPDYサポートも6%程度
  • 通信をHTTPS強制化するHSTS(HTTP Strict Transport Security) もわずか2%で増えているという感じでもない

SANS SSL CRL Activity

セキュリティ教育機関であるSANS Instituteの SSL CRL Activity (https://isc.sans.edu/crls.html) というページで、サイトを閉鎖する時とか鍵が盗まれたなどでSSLサーバー証明書を失効させた場合の失効件数を、全ての認証局について毎日集計をして、公表しています。大きな攻撃があった時や、認証局に何らかの問題があった時に大量の失効が発生することがあります。2002年からと、かなり昔から情報収集をしています。
005
表示する期間を好きなように設定して表示させることができます。

まずは、2002年から現在までの失効数推移をみてみましょう。
007
2014年に突如70,000件もの大量失効があったのはHeartBleed脆弱性の問題の影響です。では、それまでの 推移をみてみましょう。HeartBleed脆弱性の前は、概ね単純に増加しているのみであり、SSLサーバー証明書の利用者も順調にのびており、1日千件程度の失効になってきていました。
008
大量失効の前後を中心にみてみると以下のようになっています。
009
GlobalSignが2014年4月16日、17日、証明書を大量失効させたのが一因のようです。HeartBleed後はCCSInjectionやPOODLEの影響と思われる失効のピークが見られます。
010

ChromeのHTTPS通信の比率の推移

SEARCH ROUND TABLEの「Google: HTTPS Support Has Grown 300% In Past Two Years」の記事によると 2013年から2014年にかけて、ChromeブラウザでのHTTPSの通信の比率が30%から60%へと倍近く増えていることがグラフからわかります。うちのサービスもそうですけど、単に認証の所やフォームの入力の所だけでなく、サービスの全ての通信をHTTPSで提供するサービスが増えていることが原因なようです。
011

おわりに

以上、Internet Weekのパネルで紹介しようかなぁと思ったけどボツになったネタを紹介させていただきました。こりゃ、話はじめると長い話になっちゃうので、パネルで触れなくて結局は正解だったんですかね。グラフにしてみると何がどんな風に変化しているのかわかって楽しいですよね。今日はこんなところでw

関連リンク