デジタル世界を、送られるすべてのメッセージが封印された手紙のような、活気ある都市として想像してみてください。これらの手紙を安全に保つために、私たちは「暗号化」と呼ばれる特別な鍵を使用し、改ざんされていないことを確認するために、「タグ」と呼ばれる独自の蝋封を取り付けます。この方法の中で最も人気のあるものの一つが、GCM(Galois/Counter Mode)と呼ばれるシステムです。GCMを、手紙を施錠するだけでなく、数学的な指紋であるスタンプも押してくれるハイテクな郵便局だと考えてください。この指紋は、送り手と受け手の両方だけが知っている特別な数字である「ハッシュキー」を使用して作成されます。手紙が届いたときに指紋が一致すれば、それが本物であることを全員が知ることができます。もし指紋が間違っていれば、その手紙は拒否されます。このシステムは、Wi-Fiからセキュアな銀行取引に至るまで、あらゆる場所で使用されているため、秘密のハッシュキーを安全に保つことが極めて重要です。もし悪意のある者がそのキーを盗めば、自分自身の偽の手紙を作成し、郵便局にそれらが本物であると思い込ませることができるのです。
研究者ヤオビン・シェン(Yaobin Shen)による最近のノートは、このシステムが時としてどのように設定されるかにおける、非常に特定的で、やや珍しい抜け穴について探求しています。論文は、ある極めて細かな詳細、すなわち「ノンス(nonce)」に焦点を当てています。GCMの世界において、ノンスは一意のシリアル番号や使い捨てパスワードのようなものであり、送られるすべての手紙に対して異なるものでなければなりません。これにより、たとえ同じメッセージを2回送ったとしても、鍵と封印が全く異なるものに見えるようになります。論文は、もし誰かが誤って、あるいは意図的に「ゼロ長(zero-length)」のノンス、つまり中身が何もない空の箱を使用した場合に何が起こるかを調査しています。GCMの公式なルールブック(具体的にはISO/IECのバージョン)の中には、この空の箱を許可しているものもありますが、他のもの(NISTのバージョンなど)はそれを厳格に禁止しており、少なくともわずかなデータが必要であると要求しています。シェンの研究は、もし空の箱を許可するルールに従った場合、巧妙な攻撃者がその空の箱を利用して、封印の背後にある数学を破壊できることを示しています。
論文は、攻撃者が空のノンスで暗号化されたメッセージを単に観察するだけで、複雑な数学的パズルを解いて秘密のハッシュキーを復元できるという、巧妙なトリックを実証しています。それは、もし泥棒が、空の鍵穴でドアを施錠したときに、鍵がカチリと鳴る音からマスターキーの形が判明してしまうことに気づいたようなものです。一度攻撃者がこのキーを手に入れれば、どんなメッセージでも偽造できるようになります。彼らは完璧な封印が付いた偽の手紙を作成でき、システムはそれを本物として受け入れてしまいます。著者は、この攻撃が空のノンスを許可するバージョンのシステムに対してのみ機能し、非空のノンスを要求するバージョンに対しては完全に失敗することを指摘しています。この論文は、単にこれが起こり得る可能性を示唆しているだけではありません。特定のシナリオにおいてどのように数学が崩壊するかを示す明確なステップ・バイ・ステップの手法を提供しており、「空の箱」が特定の環境実装において危険な弱点であることを証明しています。
技術要約:GCMおよびGMACにおけるゼロ長ノンスの影響に関する注記
問題提起
本論文は、Galois/Counter Mode (GCM) およびその特殊化形態である GMAC において、ゼロ長のノンス(nonce)の取り扱いに起因する特定の脆弱性を扱っている。GCM および GMAC は広く普及している認証付き暗号およびメッセージ認証コードスキームであるが、そのセキュリティ仕様は規格間で異なる。NIST 版では、ノンスは少なくとも 1 ビットの長さを持つ必要があると明示的に規定されている。対照的に、ISO/IEC 版(具体的には ISO/IEC 9797-3 および ISO/IEC 19772)では、ノンスを可変長の文字列として許可しており、最小長の強制を行っていないため、ゼロ長の文字列({} で表される)の使用を許容している。著者は、ISO/IEC フレームワーク内におけるこのゼロ長ノンスの使用がもたらすセキュリティ上の影響を調査している。
手法
本論文は、ノンスが空である場合の GHASH 関数の数学的特性を悪用した鍵復元攻撃を提示している。この攻撃は、選択平文設定(攻撃者がゼロ長ノンスを用いて暗号化オラクルにクエリを投げることができる設定)または、ゼロ長ノンスに対応する有効な暗号文を攻撃者が観測する特定の既知暗号文設定の下で動作する。
攻撃の手順は以下の通りである:
- 初期化: ノンス N がゼロ長の文字列であるとき、初期化ベクトル Y0 は GHASH(H,{},{}) として計算される。GHASH の定義に従うと、これは 0n⋅H となり、0n に等しくなる。
- タグ生成: 認証タグ T は、T=GHASH(H,A,C)⊕EK(Y0) として生成される。Y0=0n であるため、EK(Y0) は EK(0n) となり、これはハッシュキー H と定義される。
- 方程式の定式化: タグの方程式は T=GHASH(H,A,C)⊕H に簡略化される。A(関連データ)および C(暗号文)は既知であり、T が観測されているため、この方程式は未知の変数 H(ハッシュキー)に関する 3 次多項式となる。
- 鍵復元: この 3 次多項式を解くことにより、攻撃者はハッシュキー H を復元できる。
- 偽造: 一度 H が復元されると、攻撃者はゼロ長ノンスを再利用することを条件として、任意の関連データおよびメッセージのペアに対して任意の暗号文およびタグを偽造できる。さらに、攻撃者は線形関係 GHASH(H,A′,C′)⊕T′=GHASH(H,A1,C1)⊕T1 を満たすことで、以前に観測された任意のノンスを用いてメッセージを偽造することも可能である。
また、本論文は機密性への潜在的な影響についても述べている。もし復元されたハッシュキーによって、攻撃者が偽造されたクエリに対する EK(Y0′) を計算できる場合、かつ Y0′ と別のメッセージの暗号化に使用されたカウンタとの間でカウンタ衝突が発生した場合、攻撃者は対応する平文ブロックを復元できる可能性がある。
主な貢献と結果
- 攻撃ベクトル: 本論文は、ゼロ長ノンスを用いた単一の暗号化クエリを用いて、GCM/GMAC の秘密ハッシュキー H を復元する、単純かつ実用的な攻撃を実証している。
- 規格の相違: 本研究は、NIST 仕様と ISO/IEC 仕様の間の決定的な相違を浮き彫りにしている。この攻撃は、ゼロ長ノンスを許容する ISO/IEC 標準に準拠した実装に対してのみ有効であり、1 ビット以上の最小ノンス長を強制する NIST 準拠の実装に対しては無効である。
- 結果: ハッシュキーの復元は、認証メカニズムの完全な破壊をもたらし、任意の暗号文(GCM の場合)またはメッセージ(GMAC の場合)の偽造を可能にする。
意義および主張
本論文は、ISO/IEC 仕様におけるゼロ長ノンスの許容が、GCM および GMAC のセキュリティを損なう脆弱性を生み出していることを示していると主張している。その重要性は、この攻撃が最小限のデータ(単一のクエリ)を用いて、スキームのセキュリティの基本要素である内部ハッシュキーを復元するという点にある。
著者は、攻撃の範囲について控えめなトーンを維持しており、これが ISO/IEC 版にのみ適用されるものであり、NIST 版には通用しないことを明示している。本論文は、基礎となるブロック暗号や、長さ ≥1 ビットのノンスを用いた場合の GCM の一般的なセキュリティを破壊すると主張するものではない。むしろ、ISO/IEC 標準における特定のパラメータ選択に関する警告として機能している。著者は、いくつかの現実世界の implemetation(実装)がゼロ長ノンスを受け入れているようであることを指摘しているが、即時の悪用を避けるためにこれらを公に特定することは控え、代わりに影響を受ける当事者に個別に通知することを選択している。
毎週最高の computer science 論文をお届け。
スタンフォード、ケンブリッジ、フランス科学アカデミーの研究者に信頼されています。
受信トレイを確認して登録を完了してください。
問題が発生しました。もう一度お試しください。
スパムなし、いつでも解除可能。
週刊ダイジェスト — 最新の研究をわかりやすく。登録