米国運転免許証バーコードの署名鍵を復元

原題: Keys Not Included: recovering the signing keys for US driver's license barcodes

なぜ重要か

公的身分証明書のセキュリティが「鍵の秘匿」に依存している現状は、政府・民間双方のID検証システム全体の信頼性に直結する問題だ。

セキュリティ研究者のRyan Faheyが、米国の運転免許証に使われるPDF417バーコードのデジタル署名検証鍵を独自に復元したことを報告した。各州が署名鍵を公開していないにもかかわらず、バーコードデータの解析と既知平文攻撃などの手法を組み合わせることで、複数の州の鍵を実際に導出することに成功している。

米国の運転免許証に印刷されているPDF417バーコードには、データ改ざんを防ぐためにデジタル署名が含まれている。しかし各州は署名検証に必要な公開鍵を一般に公開しておらず、免許証の真正性を独立して検証することは事実上不可能な状態に置かれていた。

Ryan Faheyはこの「公開されていない鍵」を取得するため、複数のアプローチを取った。まず、州が提供するモバイルアプリや第三者の免許証スキャンアプリのバイナリを逆コンパイルし、ハードコードされた鍵を探索した。アプリ内にそのまま埋め込まれていたケースもあり、複数の州の鍵はこの方法で比較的容易に回収できた。

より技術的に興味深いのは、鍵がアプリ内に見当たらない州への対処だ。Faheyは既知のバーコードデータ構造を利用した既知平文攻撃を試み、署名アルゴリズムの実装上の弱点も調査した。一部の州では署名にECDSA(楕円曲線デジタル署名アルゴリズム)を使用しているが、乱数生成の不備などにより鍵の部分的な推定が可能なケースも確認されている。

Faheyは最終的に、対象とした複数の州について署名検証鍵の復元に成功したと述べており、その過程で見つかった実装上の問題点を詳細に記録している。なお今回の研究は、免許証の偽造を目的としたものではなく、公的身分証明書のセキュリティ設計における透明性の欠如を問題提起するものだとFaheyは強調している。鍵を非公開にすることが実質的なセキュリティをもたらすという「隠蔽によるセキュリティ」の考え方に対する批判的な検証といえる。

出典

ryan.science — 元記事を読む →