Bugzillaによる AIA(Authority Information Access)テスト

ニュースソース:Bugzilla@Mozilla

以下は2017年4月1日に公開されたChrome enabled AIA fetching on Androidの記載を要約したものです。

注:AIA (Authority Information Access) により、SSL / TLSクライアント(主にWebブラウザ)は、サーバーが中間証明書を提示しない場合にも中間証明書を取得できます。

ChromeがAndroidでAIAを有効にしたというニュースを聞いて、ユーザーからのTLSエラーの分析を始めました。
[1] https://groups.google.com/a/chromium.org/forum/#!topic/net-dev/H-ysp5UM_rk
[2]https://support.mozilla.org/t5/Fix-slowness-crashing-error/What-does-quot-Your-connection-is-not-secure-quot-mean/ta-p/30354#w_reporting-the-error

分析の目的はFirefoxでAIAを利用した時の、SEC_ERROR_UNKNOWN_ISSUERエラー減少の上限を知ることです。
もしAIAに成功した場合は、すべてのUNKNOWN_ISSUER エラー減少の上界は5.88%になることが分かりました。
この分析をするにあたって、1ヶ月分(2017年2月分)のTLSエラー報告から1%をサンプルとして抜き出し、その中からSEC_ERROR_UNKNOWN_ISSUERだけを抜き出すようにフィルターをかけました。
そして、エンドエンティティと、それぞれの証明書がサンプル内で観測された回数のリストを作成しました。(2.2GB)
更に、リスト内で11回以上観測された証明書だけに絞り122MBまで落としました。
[3] https://gist.github.com/jcjones/535b5672d075910fdce4f55b9ce57ef7

そして、それぞれの証明書にAIA拡張フィールドがあるかを確認しました。
上限を求めていたので、AIAフィールドがあった場合はエラーなしで接続に成功すると仮定しています。
[4] https://gist.github.com/mozkeeler/29754494dcdb3b169483595283f29923

AIAフィールドを持つそれぞれの証明書に観測された数と同じweightを振っていて、AIAによってエラーにならずに済んだ証明書の上限を求めるために、weightの合計は観測された回数で割っています。