物議を醸している UAE のモバイル セキュリティ企業をめぐる騒動により、人気の証明機関 (CA) 管理ソフトウェアの不適切なデフォルト設定が原因で、数百万件の TLS セキュリティ証明書が不適切に発行されていたことが判明しました。
Darkmatterが正式な証明書発行機関になるための申請についてグループ内で議論していた際mozilla.dev.security.policy
、ネットユーザーは、同社の証明書に含まれる64ビットのシリアル番号が実際には1ビット不足しており、最上位ビットが常に0で正の整数を示していることに気付きました。他の組織のエンジニアがこのスレッドを読んだ後、彼らも自社の証明書に同様の問題が発生していることに気付きました。
その結果、Google、GoDaddy などが発行した 200 万以上のセキュリティ証明書を交換する必要があるかもしれません。
UAEを拠点とするDarkmatterは、ロイター通信が1月に国家支援のハッキング活動への関与を報じたことで注目を集めているが、同社はこれを否定している。この報道はその後、Firefoxブラウザの開発元であるMozillaの注目を集め、Moz開発者の間で議論が巻き起こった。
セキュリティ研究者のアダム・コーディル氏は今月初めのブログ投稿でこの問題を次のように要約している。「DarkMatterが発行した証明書を分析したところ、その長さはすべて64ビットちょうどで、それ以上でもそれ以下でもないことがわかった。」
MWCで最もL33Tなスマートフォン:DarkMatterのKatim
続きを読む
彼が説明したように、公開鍵証明書の形式を規定する RFC 5280 では、証明書のシリアル番号は少なくとも 64 ビットの「正の整数」でなければならず、負の数は絶対に許されないと規定されています。
これは、Darkmatterの証明書のシリアル番号の上位ビットが空になっている理由をうまく説明できるかもしれません。番号を生成するソフトウェアは、整数を表すために2の補数を使用している可能性があります。そのため、各シリアル番号の上位ビットを空にして、それが負でない値であることを示す必要があります。そうすると、実効長は63ビットに短縮されます。
Caudrill氏は、Darkmatterが特定のオープンソース証明書発行パッケージであるEJBCAを使用したのではないかと推測しています。このパッケージは、デフォルトで乱数ジェネレータから64ビットの証明書シリアル番号を出力し、最上位ビットをクリアすることで非負ルールを強制します。これにより、発行された証明書の追跡と失効に使用されるシリアル番号の候補数が大幅に削減されます。
証明書のシリアル番号は、そのCAが発行する他のすべての証明書の中で一意である必要があります。証明書間の衝突は避けるべきです。衝突があると、さらなる問題や混乱を招く可能性があり、例えば、シリアル番号が1ビットでも少ないと、衝突の可能性が高まります。
世界の終わりではありません。例えば、証明書を使って暗号化されたトラフィックが突然盗聴されるようなことはありません。これは、厳格で規則に則った暗号の世界における、恥ずかしい見落としに過ぎません。
CA がより長いシリアル番号を使用することを阻止するものは何もありません。この特定のツールキットのデフォルトが誤解を招くというだけのことです。
D'OH-障害設定
SSL.com の研究開発ディレクターである Fotis Loukos 氏が最近 MDSP メーリング リストに投稿したコメント (Mozilla CA プログラム マネージャー Wayne Thayer 氏がここに転載) によると、EJBCA のデフォルト設定が CA に誤った安心感を与えている可能性があるとのことです。これは痛ましいことです。
「EJBCA のシリアル番号生成方法により、期待される動作と出力と実際の動作および出力との間に矛盾が生じ、デフォルト設定で EJBCA を使用するすべての CA がこの問題に遭遇することになる」と彼は投稿し、これによりこれらの CA がベースライン要件 7.1 に違反することになるだろうと指摘した。ベースライン要件 7.1 は、すべての非連続証明書シリアル番号は少なくとも 64 ビット幅で、正の値であり、暗号的に安全な疑似乱数生成器 (CSPRNG) から生成されなければならないと規定する CA ルール (PDF、65 ページ) である。
Apple、Googleなどの他の企業からの回答は、実際の影響を明らかにしている。
Appleは、合計87万8000件の非準拠TLS証明書を発行したことを認めた。そのうち55万8000件は5日前でもまだ使用されていた。また、2000件のS/MIME証明書も発行した。昨日の報告書に添付されたタイムラインによると、同社は2017年4月に「長さが不十分と疑われるシリアル番号を検知するアラートを誤って抑制した」と述べ、先週、影響を受けた証明書の失効を開始した。
アドテク大手の証明書部門であるGoogle Trust Servicesは、不適合な証明書が正確にいくつ発行されたかは明らかにしなかったが、2016年9月30日から今年2月28日までの間にGoogle Internet Authority G3信頼チェーンが発行したすべての証明書が含まれていると述べた。
GoDaddyも2016年以降同様の影響を受けており、同社の回答によると、合計285,936件の非準拠証明書を発行し、そのうち12,152件が現在も有効となっている。同社は当初推定していた180万件の非準拠証明書の数を減らし、「証明書のシリアル番号を最低128ビット、あるいは可能な限り最大限にアップグレードするための計画とロードマップを検討している」と付け加えた。
Darkmatterをめぐる論争は依然として続いています。シリアル番号のセキュリティ問題は主に理論上の問題であり、たとえ仕様に準拠していなくても、63ビットであれば衝突攻撃を防御するのに十分な余裕が残されています。しかし、認証局(CA)は影響を受ける証明書を特定し、失効させ、再発行する作業において、依然として頭を悩ませることになるでしょう。®