Key Management Interoperability Protocol

Key Management Interoperability Protocol (KMIP)は、データ暗号化のための暗号鍵を管理する「鍵管理サーバ」と「クライアント」との通信方式を定める通信プロトコルである。暗号鍵生成と使用方法に関するテンプレートが定められており、複数の鍵を容易に管理できるようになる技術である。
OASIS (組織)のプロジェクトの一つである。OASISは仕様を公開しており、ストレージベンダーはこれに対応した製品を製造、販売できる。
概要.
情報漏えい問題の解決策の一つとして、補助記憶装置 (ストレージ) での暗号化がある。実際に、ハードディスクドライブは自分自身でデータを暗号化出来る。このように暗号化自体は容易になってきた一方で、複数の暗号鍵を管理する事が課題となってきた。暗号鍵の紛失「ロストキー」は、データを読み出せなくなる事を意味する。複数の暗号鍵を一元管理する仕組みが必要とされてきた。KMIPによりクライアントは暗号鍵に直接アクセスせずとも、サーバに暗号化・復号を依頼できるようになる。
KMIPは2010年に登場し、鍵管理の業界標準となった。
オラクル、IBM、ネットアップ等、複数のハードディスク及びテープライブラリの製造業者が加盟しており、これら企業は毎年開催されるRSA カンファレンスで最新の製品を紹介している。
技術詳細.
KMIPサーバは暗号鍵、証明書、パスワード等を保存・管理する。技術詳細は公式ページやウィキで公開されている。
管理オブジェクト.
管理オブジェクト (Managed Objects、マネージド・オブジェクト) は、KMIPサーバの管理対象となるデータである。その下位集合 (サブセット) には、実際の暗号鍵、証明書等の情報が含まれる。以下がそのサブセットの一例である：
管理オブジェクトは、その種類に応じて異なるデータの構造を持つ。例えば暗号鍵に分類される共通鍵、公開鍵、秘密鍵は共通して「Key Block」と呼ばれる構造体を持ち、これには暗号鍵本体および周辺情報が含まれている。例えば、鍵本体の情報 (Key Value)、圧縮方式、暗号化方式、暗号長がカプセル化されている。加えて、このKey Valueは更に2つの構造を持ち、鍵本体 (Key Material) とベンダーが自由に定義して良い属性情報 (Attribute)に分かれる。
ライフサイクル管理.
それぞれの管理オブジェクトには以下の「状態」を示す情報が付与され、これに基づき鍵のライフサイクル管理 (鍵の生成、登録、取得、削除) が可能となっている。それぞれの状態は以下のとおりである：
プロトコル.
クライアントはアプリケーションプログラミングインタフェース (API) をKMIPサーバに発行することで管理オブジェクトを制御できる。例えば、「生成」、「登録」、「取得」、「破壊」、「属性の付与・取得・削除」等の命令がある。
プロトコルは、TTLV (Tag-Type-Length-Value)と呼ばれる方式を採用している。これは命令をタグ、種類、長さ、値として表現し一つのブロックとして符号化する。「値」の部分は別のTTVLを入れ子にできるため、一つのメッセージで複雑な命令を送信する事ができる。下図は入れ子になったメッセージの一例である：
実装.
通常、ストレージネットワークとは別に鍵専用の回線を設ける。
OASIS KMIP技術委員会が各社実装のリストを作成、公開している。
相互運用性.
ベンダーは、自社製品がKMIPの標準に準拠している事を証明するため、技術委員会が主催するイベントにて相互運用性を実証しなくてはならない。これは通常RSA コンファレンスの直前の月に行われる。
クライアントとベンダーの両者は個別テストを行っている。テスト数のトレンドは、OASISのサイトで見ることが出来る。2014年、 SNIAは類似のテスト・プログラムを発表した。
SSIF KMIP カンファレンス・テスト・プログラムと呼ばれる。