この章では、OKM-ICSF 統合ソリューションの概要を説明します。
KMS 2.0.x 以降では、Oracle Key Manager (OKM) クラスタ内の KMA は、Sun 暗号化アクセラレータ (SCA) 6000 カードを使って独自の鍵を生成します。顧客によっては、外部キーストアで作成され、そこに保存されるマスター鍵を KMA で使用することを望みます。
KMS 2.2 では、マスター鍵モード機能が導入されました。この機能が有効になっているときは、OKM クラスタはマスター鍵セットからテープ鍵を生成します。マスター鍵は、外部キーストアで作成され、そこに保存されます。テープ、マスター鍵、および出荷時デフォルト OKM 装置だけで、完全な障害回復が可能です。
このソリューションでは、外部キーストアが IBM メインフレーム内にあり、TLS/XML プロトコルを使用してアクセスされます。このプロトコルは、鍵が IBM Integrated Cryptography Service Facility (ICSF) のトークンデータセットに格納されている IBM メインフレームでサポートされます。図 1-1 に通常の構成を示します。
OKM クラスタは、IBM メインフレームに定期的にリクエストを発行して、新しいマスター鍵 (ICSF ではアプリケーションキーと呼ばれる) の作成および OKM クラスタへの返却を依頼します。すると KMA は、これらの新しいマスター鍵を使って、新しいテープ鍵を生成します。
次のコンポーネントが統合ソリューションを構成します。また、これらのコンポーネントについてはこのセクションで説明します。
マスター (アプリケーション) 鍵は、IBM ICSF ドキュメントで定義されているとおり、トークンデータセット (TKDS) に格納されます。TKDS は、ICSF インストールオプションデータセットで識別されます。z/OS システムプログラマは、IDCAMS ユーティリティーを使用すると TKDS を作成できます。
TKDS に格納される鍵は暗号化されませんが、データセット自体へのアクセス、および呼び出し可能なサービスおよびトークン (鍵セット) は、RACF または同等機能によって制御されます。TKDS へのアクセスは、マスター鍵のバックアップおよび復元に関する現在のポリシーで定義できます。
ICSF 呼び出し可能サービスプロキシを実装するには、既存の Sun メインフレームソフトウェアにモジュールを追加する必要があります。このプロキシによって、OKM クラスタが PKCS#11 関数を呼び出して、キーストアにアクセスできます。OKM クラスタとのセキュアな通信は、IBM メインフレームで z/OS Application Transparent - Transport Layer Security (AT-TLS)を使用して実装されます。
AT-TLS は、アプリケーションクライアントおよびサーバーに完全に透過的な、TCP/IP アプリケーションの暗号化ソリューションです。パケットの暗号化および復号化は、z/OS TCPIP アドレス空間で TCP プロトコルレベルで行われます。暗号化されたパケットペイロードは、スニッフィングまたはトレースしても読み取りできませんが、アプリケーションに配信される時点までにはふたたび読み取り可能になります。
OKM クラスタは、IBM メインフレーム上のプロキシと通信するために、Transport Layer Security (TLS) プロトコルを実装します。
z/OS システムプログラマは、2 つの自己署名 X.509v3 証明書と 1 つの RSA 2048 ビット公開鍵ペアを生成してからエクスポートし、FTP を使用して IBM メインフレームから転送します。1 つめの証明書はルート認証局 (CA) 証明書です。システムプログラマは、このルート CA 証明書を使用して、クライアント証明書および鍵ペアを生成します。これらの証明書および鍵ペアは、IBM メインフレームに手動でインストールし、RACF および AT-TLS を使用して構成することで、プロキシが有効な OKM リクエストを識別できるようにします。証明書および鍵ペアの非公開鍵は、OKM クラスタにインストールし、OKM クラスタがプロキシを認証できるようにします。この結果、有効な OKM クラスタの KMA のみがプロキシにリクエストを発行でき、有効なプロキシからの応答を受け入れます。
OKM クラスタは、プロキシからマスター鍵値および 18 バイトのマスター鍵 ID を受け入れます。2 バイトのヘッダー、18 バイトのマスター鍵 ID、および内部で生成された 10 バイトの値を連結して、30 バイトの鍵 ID を作成します。その後、鍵 ID (32 バイトになるようにパディングされたもの) をマスター鍵値で暗号化して、導出鍵を作成します。
ドライブと OKM クラスタの間の鍵管理では、引き続き現在の OKM 戦略を使用します。そのため、ファームウェアのアップグレードは必要ありません。
OKM クラスタは、マスター鍵のライフサイクルを制御します。現在の日付に基づいて、プロキシから現在のマスター鍵値をリクエストします。プロキシは、一連の PKCS#11 関数呼び出しを使用して、TKDS から現在のマスター鍵を取得します。現在のマスター鍵値がない場合、OKM クラスタはマスター鍵の作成リクエストをプロキシに発行します。その後、OKM はプロキシからの現在のマスター鍵値についてリクエストを再送信できます。
OKM クラスタは、作成したすべての導出鍵および鍵 ID を保持しています。クラスタは、書き込まれたデータの指定セットについて鍵を持っていない場合、鍵 ID からマスター鍵 ID を形成してから取得リクエストをプロキシに発行して TKDS に格納されたマスター鍵値を取得することにより、鍵を再導出できます。これで、OKM は鍵値を再導出してエージェントがデータを読み取れるようになります。
この鍵の回復メカニズムでは、TKDS のアーカイブ済みマスター鍵の可用性のみによって、このシステムで暗号化されたすべてのテープの「かさ上げ」による回復が可能です。