自堕落な技術者の日記

基本は喰ってるか飲んでるかですが、よく趣味でカラオケ・PKI・署名・認証・プログラミング・情報セキュリティをやっています。旅好き。テレビ好きで芸能通

SSL

Mozilla FirefoxのCRLiteで遊ぶ (moz_crlite_queryの話)

OCSPによる失効検証は、先日のApple macOS Big Burrのソフトウェアコード署名の大量の検証で、OCSPレスポンダ高負荷による失効検証の障害が出たのではと推測されるように、通信障害、サーバー障害などでOCSP応答が取れないなどのことがあって、最近非常に評判が悪いです。そのため、ウェブブラウザの世界では、Chromeでは CRLSet、Firefox ではCRLiteという別の失効検証方法を使おうとしているそうです。ChromeのCRLSetについては2013年2月に、CRLSetで本当に大丈夫なんだろうかと思い「将来Google ChromeがSSL証明書のオンライン失効検証をやめて独自の失効情報プッシュを行うという困った話」というブログエントリを書かせていただきました。(が、その後、Chrome CRLSetがどうなっているのかよくわかっていません。)

mushimegane_boy で、Firefox CRLiteについてですが、 先日、「Querying CRLite for WebPKI Revocations」(2020.11.26)という記事が公開されました。Firefox Nightly バージョンで実装されているCRLite失効検証の機能を確認するためのPythonのツール moz_crlite_query が合わせて公開されています。Firefox Nightly 85.0 で実装されているということなので、2021年1月26日リリース予定のFirefox 85正式版ではCRLite失効検証が使われているということなのでしょう。(間違っていたらごめんなさい。) おお、FirefoxのCRLiteがいよいよ実運用されるんだなぁ、、、とwktkしながら、今日はこの moz_crlite_query を試してみたいと思います。

インストール

Python 3.7 以上の環境で

% pip install moz_crlite_query
とすればインストールすることができます。依存するPythonモジュールをビルドするのにgcc、g++が必要になるみたいです。

私のMac Book Airは古くから使っていてPython環境が汚れていて、OSで提供されるPython2.7、Python3?、macportsのPython2、Python3などあり、切り替えがうまくいかず、インストールでとてもハマりました。 古いPython setuptoolsだと、2.7等、バージョンが古くてもインストールエラーにならないようで、これでハマりました。 最初からpyenv使っときゃよかったんだよなぁ、、、。pyenvでPython 3.9を入れ直して、Windows 10 WSL2でインストールしたmoz_crlite_queryスクリプトをコピーし戻してやっと動くようになりました。pyenvでインストールしたときmoz_crlite_queryスクリプトはどこにインストールされるんだ???

Windows 10 WSL2のUbuntuに入れるのは、それほど大変ではありませんでした。aptコマンドで足りてなかった、gcc、g++、python3-devを入れてpipでインストールできました。

サイトで紹介されてる実行例は、いちいちPEM証明書ファイル持ってきてますが、「moz_crlite_query --hosts 調べたいTLSサイトFQDN」で調べられます。例えばMacでwww.nist.govを調べればこんな感じ、
crlite-mac
Windows WSLでec.europa.euを調べればこんな感じで実行できます。
crlite-win
(絵文字使うんじゃね〜〜!!!)
PEM証明書を指定して「moz_crlite_query PEM証明書ファイル」でも調べることができます。

で、ちょっと見てみるぞ、と

CRLiteのデータベースは一日に4回更新して配布されるそうで、moz_crlite_queryコマンドは、データベースを確認して新しいのがあれば~/.crlite_dbにデータベース一式をダウンロードして使用します。ファイルの一覧はこんな感じ。

2020-11-24T00:08:12+00:00Z-full 2020-11-26T18:08:13+00:00Z-diff 2020-11-24T06:08:12+00:00Z-diff 2020-11-27T00:08:16+00:00Z-diff 2020-11-24T12:08:14+00:00Z-diff 2020-11-27T06:08:13+00:00Z-diff 2020-11-24T18:08:15+00:00Z-diff 2020-11-27T12:08:20+00:00Z-diff 2020-11-25T00:08:23+00:00Z-diff 2020-11-27T18:08:11+00:00Z-diff 2020-11-25T06:08:05+00:00Z-diff 2020-11-28T00:08:14+00:00Z-diff 2020-11-25T12:08:22+00:00Z-diff 2020-11-28T06:08:12+00:00Z-diff 2020-11-25T18:08:11+00:00Z-diff 2020-11-28T12:08:12+00:00Z-diff 2020-11-26T00:08:11+00:00Z-diff 2020-11-28T18:08:21+00:00Z-diff 2020-11-26T06:08:17+00:00Z-diff intermediates.sqlite 2020-11-26T12:08:14+00:00Z-diff
コマンドを実行すると表示されている通り、2457のパブリックな中間CAが登録されているようで、FAQでは「すべてのCA」とか言っちゃってますが、そういうわけではなさそう。エンドエンティティがSSLサーバー証明書を発行しているような中間CAは概ね登録されているようですが、SSLサーバー証明書発行用でないCAや、中間CA証明書の検証に使うCAは登録されていないようです。登録されてない中間CAに対してクエリをかけると「Enrolled in CRLite: ✕」のように表示され登録されてないことがわかります。(絵文字ヤメロw)

「intermediates.sqlite」が中間CAのSQLiteデータベースになっており、中にはテーブルは一つしかなく、こんな感じでスキーマ定義されています。なんとなく想像つきますね。

CREATE TABLE intermediates ( id TEXT PRIMARY KEY, last_modified TEXT, subject TEXT, subjectDN BLOB, derHash BLOB, pubKeyHash BLOB, crlite_enrolled BOOLEAN, -- crlite_enrolled = FALSEな中間CAは1656なので、対応してるのは801 CA? whitelist BOOLEAN); -- whitelist = TRUEな中間CAは登録されてなかった

とまぁ、こんな感じなんですが、CRLSetのときに書いた疑問は払拭されず、本当に信用できるのかモヤモヤしますね〜〜〜。なんかヤベーーーの見つけちゃった気もするし。ブラウザでどう使われているのか見ないと何ともいえないですが、、、、

今日はこんなとこで。環境も汚れてきたしバッテリーも酷い状況なのでM1 Mac Book Air買うかなぁ、、、

最近の証明書の話題(2): CloudFlare DNS 1.1.1.1サイトのIPv6証明書

今日も、証明書ハンターネタの第二弾ということで、、、

4月1日に公開になったAPNICとCloudFlareが提供する、レスポンスが速くて、プライバシーに配慮した噂の1.1.1.1というパブリックDNSサービスが利用できるようになりました。DNSサーバーは、通信が暗号化されていても、どのIPからどのIPにアクセスしたかという記録が残るので、それをターゲティング広告などに使ったりするそうです。このDNSサービスは、プライバシーに配慮してログの保存期間を1週間とし、広告などに使われないようにしているそうです。

こんな記事見ちゃうと通信全体で早くなるのかどうかはよくわからないですね。で、このサービスの公式紹介サイトhttps://1.1.1.1/なんですが、FQDNでなく、IPアドレスで発行しているわけです。何やらおもしろそうじゃないですか。早速、証明書をダウンロードしてみて、内容を見てみましょう。

$ openssl x509 -in ip1.1.1.1.cer -noout -text Certificate: Data: Version: 3 (0x2) Serial Number: 05:6c:de:b4:14:65:ff:27:07:16:c0:6e:91:16:2e:19 Signature Algorithm: <font color=“orange”>ecdsa-with-SHA256</font> Issuer: C=US, O=DigiCert Inc, CN=DigiCert ECC Secure Server CA Validity Not Before: Mar 30 00:00:00 2018 GMT Not After : Mar 25 12:00:00 2020 GMT Subject: C=US, ST=CA, L=San Francisco, O=Cloudflare, Inc., CN=*.cloudflare-dns.com Subject Public Key Info: Public Key Algorithm: id-ecPublicKey Public-Key: (256 bit) pub: 04:b2:45:0b:31:ac:50:63:ce:21:e6:7c:34:23:1a: c5:c1:53:45:96:97:7a:31:87:bb:e0:ea:1d:95:f5: ff:25:04:ca:75:f0:f6:3f:b5:df:51:e9:5b:c9:3d: ad:b4:03:05:73:20:92:3e:74:be:8e:4b:1b:e2:68: 86:44:6e:62:bb ASN1 OID: prime256v1 NIST CURVE: P-256 X509v3 extensions: X509v3 Authority Key Identifier: keyid:A3:9D:E6:1F:F9:DA:39:4F:C0:6E:E8:91:CB:95:A5:DA:31:E2:0A:9F X509v3 Subject Key Identifier: DF:97:4D:E5:43:B3:B0:41:A7:42:F2:90:CF:89:7F:AE:12:57:84:E1 X509v3 Subject Alternative Name: DNS:*.cloudflare-dns.com, IP Address:1.1.1.1, IP Address:1.0.0.1, DNS:cloudflare-dns.com, IP Address:2606:4700:4700:0:0:0:0:1111, IP Address:2606:4700:4700:0:0:0:0:1001 X509v3 Key Usage: critical Digital Signature X509v3 Extended Key Usage: TLS Web Server Authentication, TLS Web Client Authentication X509v3 CRL Distribution Points: Full Name: URI:http://crl3.digicert.com/ssca-ecc-g1.crl Full Name: URI:http://crl4.digicert.com/ssca-ecc-g1.crl X509v3 Certificate Policies: Policy: 2.16.840.1.114412.1.1 CPS: https://www.digicert.com/CPS Policy: 2.23.140.1.2.2 Authority Information Access: OCSP - URI:http://ocsp.digicert.com CA Issuers - URI:http://cacerts.digicert.com/ DigiCertECCSecureServerCA.crt X509v3 Basic Constraints: critical CA:FALSE Signature Algorithm: ecdsa-with-SHA256 30:65:02:31:00:8e:8c:b2:d8:e8:21:d6:2d:7f:2a:1f:7e:a6: c3:1c:d4:e0:a1:95:02:2f:40:5e:80:92:88:d9:4b:cc:a5:89: aa:fa:9b:ca:b9:9e:a0:b7:a9:ed:21:1d:1d:1f:13:1c:0b:02: 30:2e:79:64:67:1d:7e:10:27:d9:68:a8:c8:6c:3e:4d:cd:07: 40:ac:d2:64:ad:b0:d0:cd:1b:af:c3:a4:26:30:ed:79:a3:a0: 6d:f2:d4:b4:bb:66:46:59:9a:a3:67:d9:0f
この証明書の特徴はこんなとこ:
  • DigiCertが発行している
  • 楕円曲線(ECC)の公開鍵証明書
  • 主体者別名(subjectAltName)にIPv4アドレスとIPv6アドレスが記載されている
いや〜〜〜、すごいですね。証明書ハンターなのでいろいろ証明書を探して見てますけど、IPv6アドレス向けのプライベートじゃない証明書を初めて見ましたよ。これは、早速コレクション対象ですよっ!!!

先日、データ通信協会のセミナーで総務省の方の講演を拝聴したんですが、 「iPhoneとかスマホのおかげでIPv6って本当に普及しちゃった。」と仰っていました。 ホント、その通りなんですねぇ。日本からGoogleへのアクセスは17%がIPv6なんだそうです。 Apple iOSでは、IPv4だと(わざと?)遅延させる仕組みが入るそうで、今後、IPv6への移行が加速されるだろうとの事でした。

実は、趣味で作ったjsrsasignというJavaScript実装の暗号/PKI関連ライブラリを公開しているんですが、よく考えてみたらIPv6対応してなかったんですよ。こりゃマズイなぁ、、、と。早速、対応させてみました。

最後のサンプルはいろんな証明書を簡単に作れるので、遊んでやってください。 そういう意味ではOpenSSLの証明書の表示は
IP Address:2606:4700:4700:0:0:0:0:1001
のような感じでRFC 5952で正規化されているわけではない、一意じゃない表記のやつなんですねぇ。正規化したらこうなりますよね。
IP Address:2606:4700:4700::1001
RFC 5952なんて知らなかったんですが、JPNICさんの「RFC5952-IPv6アドレスの推奨表記 IPv6アドレス表記の柔軟性が起こす問題とRFC5952の解説」を見て勉強させてもらいました。ありがたや。ありがたや。

てなわけで、今日もナイスな証明書をゲットだぜ。今日はこの辺で、、、

(小ネタ) Chrome 60で証明書を表示させるフラグ設定

Chrome 56からGoogleの「素人はすっこんでろ」UI/UXポリシーによりHTTPSで接続した際に使用しているSSLサーバー証明書の表示が鍵アイコンから簡単にできなくなってしまいました。証明書大好きっ子にはなんとも辛い仕打ちでした。開発ツールからは証明書が表示できるので、メニューを辿って操作するか、ショートカットキーを素振り100回していた方も多いのではと思います。

Windows: Ctrl + Shift + I or F12
Mac: ⌘ + Opt + I

今日は、やっとChrome 60からフラグ設定で証明書が簡単に表示できるようになったので、今日はその設定について紹介します。

何も設定していないと、HTTPSサイトを見ている際の、鍵アイコンをクリックして見られるメニューはこんな感じ。
before
そこで、アドレスバーで以下のように入力します。

chrome://flags/#show-cert-link
すると、このようなフラグ設定が表示されます。
flag
「有効にする」をクリックし、指示に従ってブラウザを再起動します。すると、HTTPSサイトを表示した場合このように
after
「証明書、有効」というリンクが表示されるようになり、クリックすると証明書が表示されるようになります。いや〜〜、よかった、よかった。
52

SSL Pulseの統計情報でみるSSL/TLSの引越しについて

2014年11月頃から、SSLに関する統計情報を公開しているサイトSSL Pulseのデータから推移情報をブログで公開してきました。隔月で更新するようなことを言ってて、2015年12月から更新が無い状態になっており、「コラ〜〜!サボってんじゃね〜〜」的なことを思われたかたもいらっしゃるかもしれません。すみません。すみません。すみません。

新しいサイト

SSL Pulse Trends(SSL Pulseデータの推移) https://kjur.github.io/www/sslpulsetrend/index_j.htmlというサイトを作りました。今後の毎月の更新はこちらでやっていきます。

サイトを移行した経緯など、、、

前は、エクセルなど駆使してグラフ描いてたんですが、そりゃもう、結構手間がかってたんですよ。自分も興味があって毎月すぐ知りたいんだけど、とても、毎月はできないなと、、、ざっくりとした流れはこんな感じ:

  • 今月のデータファイル(JSON)をwgetでダウンロードする
  • データの推移をTSV形式になるように変換するツールを実行する。グラフに必要なデータ列もこの時作る。
  • TSVファイルをUTF-16にする(Mac Excel対策)
  • Excelで読み込み
  • データを細かい整形(日付フォーマットや表ヘッダなど)
  • 必要なグラフを作る
  • グラフをEMF(拡張メタファイル)でエクスポートする
  • PowerPointに吹き出し等を貼り付け(位置調整)
  • PowerPointの画面を画像キャプチャし、ブログへ
まず、第一の鬼門なんですが、自分は自宅ではMac Book Airを使ってまして、Mac用のExcel(前の2011も今のやつも)は、文字化けしないようにCSVやTSVファイルを読み込むのが骨が折れるんですよ。一応ファイルの入力候補としては普通のUTF-8でも大丈夫そうに見えるんだけど、うまくいかず。結局うまくいったのはメモ帳アプリでUTF-16に変換してから読み込ませるという方法です。Googleとかで"Mac Excel TSV 文字化け"みたいなキーワードで検索すれば、方法が出てくるでしょう。
07

そして、一つ一つグラフを作っていくわけです。
01
で、Excelのグラフの凡例ではちょっと見づらいのでパワポで吹き出しをつけます。
39
どうです?結構面倒くさそうでしょう?

で、新しいサイトでは

とにかくExcelでグラフをつくるのはやめにしたく、JavaScriptベースでグラフを描けないもんかと、調べてみました。最初は、ccchartなんかがデザインも良いかなぁと考えていたんですが、思っていたデザインにするのは、至難の技であると知り、D3.jsという有名なライブラリも見たんですが、一つのフツーのグラフ書くのに多くのコードを書かねばならず断念。D3.jsを簡単に使うためのラッパーがあるそうで、それを幾つか見て、rickshawで何とか許せるグラフが描けたのでそれを使うことにしました。

本当は、SSL Pulseに置いてあるJSON形式のデータファイルをそのまま、表示の度に取り込んで加工してからグラフ表示しようとしたんですが、諸々CORSの壁に阻まれ断念。動的にダウンロードする必要もなくなり、スタティックな解析データをNodeで作って、SOURCEタグで普通にデータ取り込むことになりました。

ブログでたまたまSSL Pulseについて書くだけなら、特別な断りをいれなくてもいいかと思ったんですが、定常的に今後は英語でもページを公開するとなると、SSL Pulseの作者のIvan Ristićさんに仁義というか確認取っといたほうがいいかなと思いました。IvanさんはSSL/TLSの技術解説書の中では最高に良いと思うBulletproof SSL and TLSの著者であり、SSLの設定評価サイトであるssllabsの開発などもしています。

Bulletproof SSL and TLS
Ivan Ristic
Lightning Source Inc
2014-08

最初は、TwitterのDMで連絡取ろうとしたんですが、当然ながら私のフォローして頂いてるわけではないのでDMが送れず、メールアドレスもどこにも記載されていなので、連絡がつきませんでした。そこで、いつもJavaScriptの暗号/PKIライブラリでは情報交換などさせて頂き大変お世話になっているRyan Hurstさんに頼み込み、連絡とってくれないかと伝えました。Ryanさんは「Kenjiを紹介するよ。彼は、すげーJavaScriptの暗号/JWT/X.509ライブラリの作者だ。」と私からのお願い事項のメールを転送してくれました。2日ぐらい待ってて、「う〜〜ん」こりゃレス無しかなぁとも思ってたんですが、返事が来まして「SSL Labsは自由なコンテンツライセンスになってて、君の場合でも全く問題ないとわかると思うよ。同じようなこと(=データ推移情報)をやりたいと思ってたんだけど、時間がなくてね〜〜。」との事でした。よかった、よかった。これで安心して定常的に公開できそうです。

Rickshawの使い方は概ねこんな感じです。

<div id="chart_container"><div id="grade_chart"></div></div> <script> var graph = new Rickshaw.Graph({ element: グラフを描くキャンバスが挿入されるDIVのDOM, width: グラフ幅, height: グラフ高, renderer: グラフ形式(棒グラフとか折れ線グラフとか), series: [{"color": グラフデータ色, "name": データ名(TLS1.2とかSHA256withRSAとかデータ名), "data": [{x: 値, y: 値}, {x: 値, y: 値} ...]}, : (複数のデータがあれば続く) ] }); graph.render(); </script>
同じ形式のグラフ描くのに、同じようなコード書くのも面倒なので、さらにラッパーを作りました。
RickshawUtilGraph(グラフ描くDOM IDの共通ヘッド(グラフや凡例、XY軸など), グラフの共通テンプレート, データ(グラフデータ、データ名) [,オプションでグラフ形式を変えたい場合のパラメータ] [,オプションでグラフ色変えたい場合のパラメータ]);
これでようやく、SSL Pulseの更新があっても、make 一発でグラフデータを作れるので、毎月の更新も負担にならなくなりました。

というわけで、まだ素っ気ないページですが日本語ページ公開にこぎつけました。今までなかった評価グレード(A-F)の分布推移のグラフはNPNのHTTP/2サポートプロトコルの推移のグラフも付け加わっています。
42
しばらくしたら英語ページの作成にとりかかりたいと思います。

今後とも、よろしくお願いします。

関連記事

SSL Pulseの統計情報で見るSSL/TLS (2015年12月版)

いやぁ、年の瀬ですねぇ。最近、SSL/TLS関連の調査に全く時間が取れてないっす。 SSL Pulseサイト(https://www.trustworthyinternet.org/ssl-pulse/)は、 ssllabsでも有名なQualys社が運営しているサイトで、 Webサイト調査のAlexa社による 世界のアクセストップ20万サイトを対象にSSL関係の統計情報を毎月公開しています。 10月に引き続き2015年12月のSSL PulseでのSSL/TLSの状況推移をグラフ化しましょう。 今月は、なかなかデータ公開が早かったっぽいですが、気づくのに遅れました。

脆弱性対応の推移


201512-a1vuln

SSL/TLSプロトコルの推移


201512-a2proto

SSLサーバー証明書の鍵長、署名アルゴリズムの推移


201512-a3crt

新しい技術のサポートの推移


201512-a4adv
SPDYが下がっています。HTTP/2への移行が始まっています。実はSSL PulseでHTTP/2の対応状況も4ヶ月前あたりから取れるようになっているので、そろそろ可視化したいと思っています。

鍵交換の最低鍵長


201512-a5kx

DH(E)鍵交換の最低鍵長


201512-a6dh
DH鍵交換のサポート率は、ほぼ横ばいであるのに対して、

ECDH鍵交換の最低鍵長


201512-a7ecdh
ECDH(E)への対応は進んでいることがわかります。

おわりに

年末進行で、そんなに呑みに行っている気もしませんが、なんか仕事が山積みですorz コメント少なめですみません。今月はこの辺で。

関連記事

SSL Pulseの統計情報で見るSSL/TLS (2015年10月版)

SSL Pulseサイト(https://www.trustworthyinternet.org/ssl-pulse/)は、 ssllabsでも有名なQualys社が運営しているサイトで、 Webサイト調査のAlexa社による 世界のアクセストップ20万サイトを対象にSSL関係の統計情報を毎月公開しています。 8月に引き続き2015年10月のSSL PulseでのSSL/TLSの状況推移をグラフ化しましょう。 今月は、なかなかデータ公開してくれなくて、確か10月19日頃ようやくアップデートされたようです。新しい項目増えているわけでもないのに、なんででしょうね。

脆弱性対応の推移


201510vuln
RC4の利用可能率が順調に継続して下がっており、今月では53%のサイトしか使えなくなりました。 また、ECDHEやDHEの鍵交換をサポートするPFSに対応したサイトは71.5%にまで上がっており、かなりのサーバーで使えるようになってきました。

SSL/TLSプロトコルの推移


201510proto
POODLEの影響でSSLv3が使えるサイトが32.5%にまで下がっています。

SSLサーバー証明書の鍵長、署名アルゴリズムの推移


201510crt
Google ChromeやWindows製品のSHA1証明書のアラート対応を受けて、今月も順調にSHA2移行が進んでおりSHA1withRSAが24.1%、SHA256withRSAが74.9%まで進んでいます。あと残り1/4になりましたね〜〜〜。

新しい技術のサポートの推移


201510adv
HSTSも、OCSP Staplingも、EVも徐々に上がっていますが、全く大したことない。

鍵交換の最低鍵長


201510kx
鍵交換の鍵長は順調に、512bit、1024bitの利用をやめ、2048bit相当に移行が進んでいるようですが、、、

DH(E)鍵交換の最低鍵長


201510dh
DH鍵交換をサポートしないサイトが48.2%もあり、暗号強度が十分でないDH1024bitも減ってはいるものの、28.9%もあり、いろんな意見はあるでしょうが、DH(E)は使わずにECDH(E)を使うのが良いのではと思います。

ECDH鍵交換の最低鍵長


201510ecdh
ECDH/ECDHEが使えていないサイトが34.2%にまで減り、ECC 256bitを使えるサイトが61.9%にまで増えています。かなり普及してきたという感があり、「何も考えずにとりあえずECDHE使えるようにしとけ!」と思います。

おわりに

講演資料2本作らないとマジでやばす。今日はこの辺で。

関連記事

SSL Pulseの統計情報で見るSSL/TLS (2015年8月版)

SSL Pulseサイト(https://www.trustworthyinternet.org/ssl-pulse/)は、 ssllabsでも有名なQualys社が運営しているサイトで、 Webサイト調査のAlexa社による 世界のアクセストップ20万サイトを対象にSSL関係の統計情報を毎月公開しています。 6月に引き続き今月も8月のSSL PulseでのSSL/TLSの状況推移をグラフ化しましょう。

脆弱性対応の推移


201508-vuln
RC4の利用可能率が順調に下がっているなど、おおむね順調な感じがしますね。つまらん。

SSL/TLSプロトコルの推移


201508-ssl
POODLEの影響でSSLv3の無効化が35.0%まで順調に下がっています。これもつまらん。

SSLサーバー証明書の鍵長、署名アルゴリズムの推移


201508-crt
Google ChromeやWindows製品のSHA1証明書のアラート対応を受けて、今月も順調にSHA2移行が進んでおりSHA1withRSAが31.9%、SHA256withRSAが67.2%まで進んでいます。

新しい技術のサポートの推移


201508-new
う〜む、これもつまらん。

鍵交換の最低鍵長


201508-kx
鍵交換の鍵長は順調に、512bit、1024bitの利用をやめ、2048bit相当に移行が進んでいます。

DH鍵交換の最低鍵長


201508-dh
暗号強度の十分でないDH1024bit、512bitの利用は順調に減り、2048bitは増えていますが、そうはいっても大した率でなく、やはりDH/DHEは使わないのが良いと思います。

ECDH鍵交換の最低鍵長


201508-ecdh
ECDH/ECDHEが使えていないサイトが順調に減り、使えるサイトが増えており、ECC 256bitのECDH/ECDHEが使えるサイトが58.5%まで増えています。

おわりに

今週は、セキュリティ・キャンプ全国大会に来ているので、あっさり風味で。

関連記事

SSL Pulseの統計情報で見るSSL/TLS (2015年6月版)

SSL Pulseサイト(https://www.trustworthyinternet.org/ssl-pulse/)は、 ssllabsでも有名なQualys社が運営しているサイトで、 Webサイト調査のAlexa社による 世界のアクセストップ20万サイトを対象にSSL関係の統計情報を毎月公開しています。 5月に引き続き6月のSSL PulseでのSSL/TLSの状況推移をグラフ化してみましょう。 本当は隔月にしようと思ってたんですが、Logjamの影響が見たかったので今月はやってしまいました。 (ウソ、今月はやらなくて良い月だったのに忘れててグラフを作ってしまっただけですorz )

脆弱性対応の推移


201506vuln

SSL/TLSプロトコルの推移


201506proto
POODLEの影響でSSLv3の無効化が順調に下がっており、サポートするサイトは37.6%までに減りました。

SSLサーバー証明書の鍵長、署名アルゴリズムの推移


201506crt
Google ChromeやWindows製品のSHA1証明書のアラート対応を受けて、SHA1とSHA2証明書の比率が5月に逆転しましたが、順調にSHA2移行が進み、SHA2が60%、SHA1が40%まできていることがわかります。

新しい技術のサポートの推移


201506adv
OCSP stapling対応率は伸びかかったのにまた戻ってしまいました。

鍵交換の最低鍵長


201506kx
鍵交換の情報が3月から取れるようになり、ようやく傾向がつかめるようになってきています。

DH鍵交換の最低鍵長


201506dh
弱い輸出グレードのDH(E)鍵のダウングレードによるLogjam脆弱性が5月に公表されたことで、全体的にDH鍵交換の鍵長が増えていますが、とは言っても2、3%の変化しかなく、 やはりDH鍵交換の鍵長を増やすよう設定するよりも、DH鍵交換は使わず、ECDH系の鍵交換を使うのが良いように思います。

Logjam脆弱性の発見者の一人であるMatthew Green先生のブログによると、この攻撃を成功させるには中間者がハンドシェイク中の十分短い時間でDH鍵の解読をしなければならないそうですが、ある鍵パラメーターについて事前計算をしておけばこれは可能であり、512bitなら一般的な環境でも数十秒で解くことは可能であり、1024bitの場合、一般的な環境では無理かもしれないがNSAのような諜報機関であれば、その予算と比較して全く不可能という値でもないということです。怖いですね〜〜〜。

ECDH鍵交換の最低鍵長


201506ecdh
ECDH系の鍵交換を使えるサイトと、使えないサイトの比率が5月に逆転しましたが、ECC 256bitの利用が順調に進んでいていることがわかります。

おわりに

来週月曜はJNSAの勉強会なので、早く資料作らんといかんなぁ。しかし、おぎゃ〜さんは、ものすごい集客力だなぁ。

関連記事

SSL Pulseの統計情報で見るSSL/TLS (2015年5月版)

SSL Pulseサイト(https://www.trustworthyinternet.org/ssl-pulse/)は、 ssllabsでも有名なQualys社が運営しているサイトで、 Webサイト調査のAlexa社による 世界のアクセストップ20万サイトを対象にSSL関係の統計情報を毎月公開しています。 3月に引き続き5月のSSL PulseでのSSL/TLSの状況推移をグラフ化してみましょう。 隔月で見ていけたらと思っています(^^;

脆弱性対応の推移


201505vuln

SSL/TLSプロトコルの推移


201505proto
POODLEの影響でSSLv3の無効化が順調に下がっており、サポートするサイトは40%までに減りました。

SSLサーバー証明書の鍵長、署名アルゴリズムの推移


201505cert
Google ChromeやWindows製品のSHA1証明書のアラート対応を受けて、SHA1とSHA2証明書の比率が逆転しました。今月のグラフで最も特徴的な事かと思います。

新しい技術のサポートの推移


201505adv
OCSP stapling対応率は順調に伸びていますが。大したことはありません。

鍵交換の最低鍵長


201505kx
鍵交換の情報が3月から取れるようになり、ようやく傾向がつかめるようになってきています。

DH鍵交換の最低鍵長


201505dh
DH鍵交換に対応するサイトはわずかながら増えていますが、2048bitだけでなく、安全でないとされる1024bitも増えていること、またそれ以上に安全でない512bitが使われていることは非常に問題です。このような傾向からも、DH鍵交換の鍵長を増やすよう設定するよりも、DH鍵交換は使わず、ECDH系の鍵交換を使うのが良いように思います。

先日ブログに書いたTLSの実装と導入上の推奨をまとめたRFC 7525の4.4節にもDH鍵交換の課題が整理されており、RFC 7525では「使うな」とは言っていませんが、これを読むとDH系の鍵交換は使うべきではないように思います。

ECDH鍵交換の最低鍵長


201505ecdh
ECDH系の鍵交換を使えるサイトと、使えないサイトの比率が逆転し、ECDH系の鍵交換への対応が半数を超えてきました。ECDH系鍵交換を使えない比率の減り方がDHに比べて顕著です。

おわりに

なんか今週末はブログラッシュっすね。メッセージ入りSSLサーバー証明書の件が書けなかったなぁ。今日はこの辺で。

関連記事

SSL Pulseの統計情報で見るSSL/TLS (2015年3月版)

SSL Pulseサイト(https://www.trustworthyinternet.org/ssl-pulse/)は、 ssllabsでも有名なQualys社が運営しているサイトで、 Webサイト調査のAlexa社による 世界のアクセストップ20万サイトを対象にSSL関係の統計情報を毎月公開しています。 1月に引き続き3月のSSL PulseでのSSL/TLSの状況推移をグラフ化してみましょう。

SSL Pulseのデータの追加

2015年3月より、以下のデータを追加で観測するようになりました。

  • POODLE攻撃の緩和策としてGoogleからインターネットドラフトが出され、 Google Chrome、OpenSSLの最新版などでは対応している TLS_FALLBACK_SCSVのサポート状況
  • 通信障害等によるOCSPレスポンダへのアクセス不能により、失効した証明書のサイトにつながってしまったり、認証局が利用者のサイト訪問記録を取得しないように導入されたOCSP staplingのサポート状況
  • 鍵交換の際の最低鍵長(DC、ECDHに分けた値もあるが円グラフ表示はされてない)

脆弱性対応の推移


01vuln1
今月からPOODLE攻撃を緩和する「TLS_FALLBACK_SCSVをサポートしていない率」の情報が追加されています。45%近いサイトが対応しているようです。

SSL/TLSプロトコルの推移


02proto
POODLEの影響でSSLv3の無効化が順調に下がっていますが、下がり方が鈍化しているようです。

SSLサーバー証明書の鍵長、署名アルゴリズムの推移


03key
Google ChromeやWindows製品のSHA1証明書のアラート対応を受けて、順調にSHA1からSHA2証明書への移行が進んでいていて、SHA2が42%、SHA1が57%ともう少しでクロスしそうな所まで来ています。

新しい技術のサポートの推移


04func
今月からOCSP staplingのサポート状況がグラフに記載されるようになりました。20%のサイトがOCSP staplingに対応しているようです。意外と多いなという印象です。

鍵交換の最低鍵長


05keyex
SSL Pulseで鍵交換の最低鍵長が今月から表示されるようになりました。 証明書はRSA 2048bit以上の証明書になっているので、 グラフ中の2048bitはRSAで鍵交換しているケース、 1024bitおよび512bitはDH(Diffie-Hellman)かDHEで鍵交換しているケース、 であると言えます。NISTの暗号アルゴリズム移行のガイドラインによれば、 鍵長1024bit以下のRSA、DH、DSAなどの共通鍵暗号は使ってはならないことになっており、 DH、DHEを使った暗号スイートが使えるサイトはかなりあり、 あえてDH、DHEを使うのは安全ではないことはよくわかります。 サーバー側で止めたり充分な鍵長となる設定をしていないので、 クライアント側で配慮するしかないのでは?という気がしています。 特に、PFS(Perfect Forward Secrecy)のために、DH、DHEを使おうとする 傾向がありますが、そのような場合にはECDH、ECDHEを選択するべきだと思います。

DH鍵交換の最低鍵長


06dh
このグラフを見ても明らかな事に、DH、DHEでは十分な安全性を持たない鍵長1024bitか512bitがほとんどであることがわかります。 怖いですね〜〜。このグラフはSSL Pulseのサイトでは見られない値になっています(つまり、データだけある)。

ECDH鍵交換の最低鍵長


07ecdh
ECDH、ECDHEが使える場合にはほとんどが鍵長256bit(RSA 3076bit相当)になっており、 一般に安心して利用できることがわかります。 go.jpドメインの調査でも 紹介したように571bitのECC鍵が少し使われていることも驚きます。256bit未満だと224bit、163bitがごくわずかに使われており、192bitが無いということも意外でした。 このグラフも、SSL Pulseのサイトでは見られない値になっています(つまり、データだけある)。

おわりに

以上、今月のSSL Pulseのデータからいろんな推移を見てみました。 今日はこの辺で。

関連記事

最新記事
Categories
Archives
Twitter
記事Google検索

本ブログ内をGoogle検索
Yahoo!アクセス解析
Travel Advisor
記事検索
QRコード
QRコード
  • ライブドアブログ