金岡 晃
暗号鍵の管理に関しては、米国国立標準技術研究所(NIST)が2005年にSP(Special Publication)シリーズとしてSP 800-57 "Recommendation for Key Management"のPart 1を発行し、暗号鍵管理の全体像を示した。その後Part 1は2回、改訂を繰り返し、最新のものは2007年に改訂された。またPart 2、Part 3も発行されて、ベストプラクティスや特定アプリケーションでの鍵管理を述べている[1]。
暗号鍵の管理は、単に暗号鍵の保護機構のみならず、暗号鍵の種類や有効期間・強度など暗号鍵そのものに関する情報や、暗号鍵の確立や保護、保証、アーカイブ、バックアップなど暗号鍵の管理機能、さらに管理フェーズや暗号鍵の状態、移行など暗号鍵の運用を含んでおり、非常に多岐にわたる。
国内では、「安全な暗号鍵のライフサイクルマネージメントに関する調査」がIPAにより行われ、2008年7月にその報告書が公開されている[2]。報告書ではNIST SP 800-57だけでなく、ISO/IECやIETF(Internet Engineering Task-Force)に関する動向にも触れられている。
今期は、NISTが複数の暗号鍵管理関連の文書を公開した。まず2010年6月にSP 800-130 "A Fremework for Designing Cryptographic Key Management Systems"のドラフトが公開され[3]、続いてSP 800-131 "Transitions: Recommendation for Transitioning the Use of Cryptographic Algorithms and Key Lengths"がドラフト公開の後2011年1月に正式発行[4]、2010年12月にSP 800-132 "Recommendation for Password-Based Key Derivation Part 1: Storage Applications"[5]、SP800-135 "Recommendation for Existing Application-Specific Key Derivation Functions"[6]がそれぞれ発行されるなど、活発な動きを見せている。
国内では、2010年11月22日に日本ネットワークセキュリティ協会(JNSA)標準化部会において「鍵管理勉強会」が行われるなどの動きもあった[7]。
本稿では多岐にわたる暗号鍵の管理において、さらに広く管理システムの設計フレームワークを述べたSP 800-130について、これまでの暗号鍵管理に関する文書であるSP 800-57との違いを中心に解説し、またSP 800-130に関連してNISTで開催された暗号鍵管理ワークショップ(Cryptographic Key Management Workshop)の紹介を行う。
暗号鍵の管理はSP 800-57に書かれているが、実際の鍵管理を行うシステムをいかに設計するかについて書かれたものがSP 800-130である。SP 800-130は暗号鍵管理システムの設計のためのフレームワークであり、コンポーネントと要件から構成されている。文書はそのコンポーネントごとに書かれ、それぞれの要件はコンポーネントごとに示されている。システム設計者はこれらコンポーネント群から必要なものを抽出し、設計を行うことが可能である。フレームワーク中からいくつかのコンポーネントを選択したサブセットを「プロファイル」と呼ぶ。NISTではSP 800-130に加え、米国政府機関向けのプロファイルを作成する予定であるとしている。コンポーネントには下記のものがある。
|
図1:暗号鍵管理システムの設計のためのフレームワーク
これらのほとんどはSP 800-57が対象としていないものとなっているが、「暗号鍵とメタデータ」部分ではSP 800-57と関連する事項が記載されている。それらの差について次項以降で解説する。
暗号鍵はその用途と方式により複数の種類に分けられ、SP 800-57 Part 1では19種類の暗号鍵を挙げていた。暗号鍵の管理システムを考慮する場合、これら鍵の種類だけでなくその鍵の識別情報やフォーマット情報、発行日時など鍵に付随する情報を扱うことが必要となる。SP 800-130ではそういった暗号鍵の利用をコントロールするためのデータを暗号鍵のメタデータと定義している。メタデータとして扱われる情報には以下のものがある。
鍵ラベル |
鍵長 |
親鍵 |
鍵識別子 |
鍵強度 |
鍵の保護 |
鍵ライフサイクル状態 |
鍵タイプ |
メタデータ保護 |
鍵フォーマット仕様 |
鍵の適切なアプリケーション |
メタデータ紐付の保護 |
鍵生成に利用された製品 |
鍵に適用可能なセキュリティポリシ |
日時 |
鍵を利用する暗号アルゴリズム |
所有鍵識別子 |
失効理由 |
運用モード |
鍵アクセス管理リスト(ACL) |
|
鍵のパラメータ |
バージョン番号 |
|
暗号鍵の状態とその遷移図についてはSP 800-57でも記載されていたが、SP 800-130ではこれらにシステムでの管理を踏まえた追加として「一時停止(Suspended)」と「失効(Revoked)」の2つの状態が追加された。
図2:暗号鍵の状態とその遷移図
SP 800-130のドラフト文書は公開とともにパブリックコメントの募集が行われた。また2010年の9月にはNISTにおいてNIST Cryptographic Key Management Workshop 2010が開催され、鍵管理についての議論がSP 800-130を中心に行われた[8]。
パブリックコメントは非常に多岐にわたるが、一部コメントを抜粋して紹介する。
|
ワークショップではSP 800-130とそのパブリックコメントの紹介が行われると同時に、米国政府機関アプリケーションに対する暗号鍵管理プロファイルの概要についての発表も行われた。また参加者間で議論を行うBreakoutセッションが設けられた。Breakoutセッションはフレームワークとプロファイルの2つに分かれて議論が行われた。
フレームワークセッションではその内容についての議論が行われ、理解を深めるためのより多くの図表の提示や、優先度の高いコア機能の提示、フレームワークとプロファイルの明確な区別などがまとめとして挙げられた。
プロファイルセッションではその必要性とスコープや粒度、互換性・相互運用性の記載などの議論が行われた。その結果、そのプロファイルが鍵用途のシナリオに基づいて作られる必要性や、より根本的なプロファイルのスコープや構成・適合性についてより深い議論が必要であることや、その利用法についての議論が行われたことが報告された。
暗号鍵の管理は、ますます重要性を帯びている。暗号鍵の管理は、鍵そのものを越えて管理するシステムを考慮する必要性の存在がSP 800-130策定の大きな背景であろう。そして公開されたSP 800-130のドラフト文書の内容とそれを受けてのパブリックコメント、また暗号鍵管理ワークショップでの内容を考慮すると、暗号の鍵管理はその管理システムの考慮を越えて、さらに暗号鍵を利用するエンティティの管理や時刻情報の管理、そして利用されるアプリケーションシステムの管理など、鍵管理だけで独立する問題でなく利用システムや環境の管理を十分に考慮した管理がされなければならず、またシステム自体の安全性管理なども必要となり、その検討事項は多岐にわたることが見えてきた。
暗号鍵管理システムの設計としてどこまでを行うべきかの議論はまだ収束しておらず、さらに時間を要することも考えられるが、暗号により守られるシステムの強度は鍵自体のセキュリティ強度のみならず鍵管理の適切さが重要であり、この議論は欠かせるものではない。暗号鍵の鍵管理は今後とも注目が必要なテーマであろう。
以上
| [1] | NIST Special Publications (800 Series) http://csrc.nist.gov/publications/PubsSPs.html |
| [2] | 情報処理推進機構,「安全な暗号鍵のライフサイクルマネージメントに関する調査 調査報告書」,2008年7月 http://www.ipa.go.jp/security/fy19/reports/Key_Management/documents/keymanagement_report.pdf |
| [3] | NIST SP 800-130, "DRAFT A Framework for Designing Cryptographic Key Managemet Systems" , June 2010 http://csrc.nist.gov/publications/drafts/800-130/draft-sp800-130_june2010.pdf |
| [4] | NIST SP 800-131 "Transitions: Recommendation for Transitioning the Use of Cryptographic Algorithms and Key Lengths", Jan. 2011 http://csrc.nist.gov/publications/nistpubs/800-131A/sp800-131A.pdf |
| [5] | NIST SP 800-132 "Recommendation for Password-Based Key Derivation Part 1: Storage Applications", Dec. 2010 http://csrc.nist.gov/publications/nistpubs/800-132/nist-sp800-132.pdf |
| [6] | NIST SP800-135 "Recommendation for Existing Application-Specific Key Derivation Functions", Dec. 2010 http://csrc.nist.gov/publications/nistpubs/800-135/sp800-135.pdf |
| [7] | 日本ネットワークセキュリティ協会,「鍵管理勉強会」,2010年11月 http://www.jnsa.org/result/2010/101122seckey/index.html |
| [8] | NIST, Cryptographic Key Management Workshop 2010, Sep. 2010 http://www.nist.gov/itl/csd/ct/ckm_workshop_2010.cfm |