(58)【調査した分野】(Int.Cl.,DB名)
信頼できないコンピュータ資源(以下「信頼を発行されるアプライアンス」と称する)と信頼できるコンピュータ資源(以下「信頼を発行するアプライアンス」と称する)とを含む安全未確保のコンピュータ環境で信頼されたプロトコルを生成する方法において、
(A)信頼を発行されるアプライアンスは信頼できると決定するよう要求するリクエストを受領すると、下記の基準(i)と(ii)の内の少なくとも一方が満たされた時には、信頼を発行するアプライアンスが前記信頼を発行されるアプライアンスは信頼できると認証するステップと、
基準(i):前記信頼を発行するアプライアンスは、前記信頼を発行されるアプライアンスを設定する又は活性化することに直接関与していたこと、
基準(ii):前記信頼を発行するアプライアンスが、信頼を同定するデータベース又は前記信頼を発行するアプライアンスが前記信頼を発行されるアプライアンスは信頼できると認証するのを許可した情報を同定するデータベースの少なくとも1つのデータベースにアクセスしたこと、
(B1)前記信頼を発行するアプライアンスが、準同型公開キーで暗号化されたマスターキーを、前記信頼を発行されるアプライアンスに送るステップと、
(B2)前記信頼を発行されるアプライアンスが、前記準同型公開キーの準同型特性を用いて、ユーザにより入力されたマスターキーの値を知ることなく、ランダム数値を用いてマスターキーをブラインド化し前記準同型公開キーでさらに暗号化し、前記信頼を発行するアプライアンスに戻すステップと、
(C1)前記信頼を発行するアプライアンスは、PVKMサーバに対し、前記準同型公開キーを解除し、前記信頼を発行するアプライアンスとPVKMサーバとは前記ブラインド化されたマスターキーを知ること無く、前記準同型公開キーとは異なる新たな準同型公開キーを適用するよう依頼するステップと、
(C2)前記新たな準同型公開キーで、ブラインド化されたマスターキーを暗号化し、信頼を発行されるアプライアンスに転送するステップと、
を有し、
その結果前記信頼を発行されるアプライアンスは、前記信頼を発行するアプライアンスとは異なる準同型公開キーで暗号化される
ことを特徴とする安全未確保のコンピュータ環境で信頼されたプロトコルを生成する方法。
前記信頼を発行するアプライアンスは、前記マスターキーの平文を公開キーで最初に暗号化するアプライアンスと、前記信頼を発行するアプライアンスが信頼できなかった時の信頼を発行する別のアプライアンスとからなるグループから選択された少なくとも1つのアプライアンスから、前記マスターキーを公開キーで暗号化した状態で最初に受領する
ことを特徴とする請求項1に記載の方法。
信頼できないコンピュータ資源(以下「信頼を発行されるアプライアンス」と称する)と信頼できるコンピュータ資源(以下「信頼を発行するアプライアンス」と称する)とを含む安全未確保のコンピュータ環境で信頼されたプロトコルを生成するシステムにおいて、
前記システムは、
(X)以下の(i)〜(iii)を含むアプライアンスとPVKMサーバーと、
(i)計算操作を実行するCPU、
(ii)データを記憶するメモリ・モジュール、
(iii)ネットワークを介して通信するネットワーク接続装置、
(Y)前記アプライアンス又はPVKMサーバー上にある信頼を発行する認証モジュールと、
を有し、
前記認証モジュールは、以下のステップ(A)−(C2)
(A)信頼を発行されるアプライアンスは信頼できると決定するよう要求するリクエストを受領すると、下記の基準(i)と(ii)の内の少なくとも一方が満たされた時には、信頼を発行するアプライアンスが前記信頼を発行されるアプライアンスは信頼できると認証するステップと、
基準(i):前記信頼を発行するアプライアンスは、前記信頼を発行されるアプライアンスを設定する又は活性化することに直接関与していたこと、
基準(ii):前記信頼を発行するアプライアンスが、信頼を同定するデータベース又は前記信頼を発行するアプライアンスが前記信頼を発行されるアプライアンスは信頼できると認証するのを許可した情報を同定するデータベースの少なくとも1つのデータベースにアクセスしたこと、
(B1)前記信頼を発行するアプライアンスが、準同型公開キーで暗号化されたマスターキーを、前記信頼を発行されるアプライアンスに送るステップと、
(B2)前記信頼を発行されるアプライアンスが、前記準同型公開キーの準同型特性を用いて、ユーザにより入力されたマスターキーの値を知ることなく、ランダム数値を用いてマスターキーをブラインド化し前記準同型公開キーでさらに暗号化し、前記信頼を発行するアプライアンスに戻すステップと、
(C1)前記信頼を発行するアプライアンスは、PVKMサーバに対し、前記準同型公開キーを解除し、前記信頼を発行するアプライアンスとPVKMサーバとは前記ブラインド化されたマスターキーを知ること無く、前記準同型公開キーとは異なる新たな準同型公開キーを適用するよう依頼するステップと、
(C2)前記新たな準同型公開キーで、ブラインド化されたマスターキーを暗号化し、信頼を発行されるアプライアンスに転送するステップと、
を有し、
その結果前記信頼を発行されるアプライアンスは、前記信頼を発行するアプライアンスとは異なる準同型公開キーで暗号化される
ことを特徴とする安全未確保のコンピュータ環境で信頼されたプロトコルを生成するシステム。
前記信頼を発行するアプライアンスは、前記マスターキーの平文を公開キーで最初に暗号化するアプライアンスと、前記信頼を発行するアプライアンスが信頼できなかった時の信頼を発行する別のアプライアンスとからなるグループから選択された少なくとも1つのアプライアンスから、前記マスターキーを公開キーで暗号化した状態で最初に受領する
ことを特徴とする請求項3に記載のシステム。
信頼できないコンピュータ資源(以下「信頼を発行されるアプライアンス」と称する)と信頼できるコンピュータ資源(以下「信頼を発行するアプライアンス」と称する)とを含む安全未確保のコンピュータ環境で信頼されたプロトコルを生成するコンピュータで読み取り可能なコードを記憶する非揮発性の記憶媒体において、
前記コードは、前記信頼を発行されるアプライアンスは、前記信頼を発行するアプライアンスとは異なる準同型公開キーで暗号化されるよう、以下のステップ(A)−(C2)
(A)信頼を発行されるアプライアンスは信頼できると決定するよう要求するリクエストを受領すると、下記の基準(i)と(ii)の内の少なくとも一方が満たされた時には、信頼を発行するアプライアンスが前記信頼を発行されるアプライアンスは信頼できると認証するステップと、
基準(i):前記信頼を発行するアプライアンスは、前記信頼を発行されるアプライアンスを設定する又は活性化することに直接関与していたこと、
基準(ii):前記信頼を発行するアプライアンスが、信頼を同定するデータベース又は前記信頼を発行するアプライアンスが前記信頼を発行されるアプライアンスは信頼できると認証するのを許可した情報を同定するデータベースの少なくとも1つのデータベースにアクセスしたこと、
(B1)前記信頼を発行するアプライアンスが、準同型公開キーで暗号化されたマスターキーを、前記信頼を発行されるアプライアンスに送るステップと、
(B2)前記信頼を発行されるアプライアンスが、前記準同型公開キーの準同型特性を用いて、ユーザにより入力されたマスターキーの値を知ることなく、ランダム数値を用いてマスターキーをブラインド化し前記準同型公開キーでさらに暗号化し、前記信頼を発行するアプライアンスに戻すステップと、
(C1)前記信頼を発行するアプライアンスは、PVKMサーバに対し、前記準同型公開キーを解除し、前記信頼を発行するアプライアンスとPVKMサーバとは前記ブラインド化されたマスターキーを知ること無く、前記準同型公開キーとは異なる新たな準同型公開キーを適用するよう依頼するステップと、
(C2)前記新たな準同型公開キーで、ブラインド化されたマスターキーを暗号化し、信頼を発行されるアプライアンスに転送するステップと
を前記アプライアンスに実行を指示するプログラム・コードを含む
ことを特徴とするコンピュータで読み取り可能なコードを記憶する非揮発性の記憶媒体。
【発明の概要】
【発明が解決しようとする課題】
【0008】
本発明の目的は、仮想化とクラウド・コンピューティングの安全確保と管理に適用される、 安全未確保のコンピュータ環境で暗号化キーを確保する方法と装置を提供することである。
【0009】
説明を明確にするために本明細書で使用される用語について以下定義する。
用語「仮想化(virtualization)」は、基礎となっているハードウエアの資源から分離された環境でソフトウエアを実行する手段を意味する。このハードウエア資源は、ハードウエア仮想化、ソフトウエア仮想化、メモリ仮想化、データベース仮想化、データ仮想化、ストレージ仮想化、アプリケーション仮想化、デスクトップ仮想化、ネットワーク仮想化を含む。
【0010】
用語「コンピュータ資源」は、データストレージ、書換え可能メモリ、永久メモリ、コンピューティング、計算能力、ネットワーク能力、アルゴリズム機能、ソフトウエア機能、ソフトウエアベースのオブジェクト、サービスプロバイダにより提供されるハードウエア又はソフトウエアにより使用されるソフトウエアベースのオブジェクトを提供するコンピュータサービスを意味する。
【0011】
用語「アプライアンス」は、ソフトウエア又はハードウエアを意味する。これは、物理的に分離したサーバ上で実現される、ネットワークシステムのサーバ上のエージェント、仮想サーバ、追加的ソフトウエアを含む仮想サーバ上のエージェント、システムに利用可能な適宜のコンピュータ資源を用いた、資源の暗号化又は脱暗号化に対するアクリプトグラフィックアプライアンスとしてのサービスを意味する。
【0012】
用語「カスタマー・アプリケーション」は、顧客又は第三者により書かれたクラウドアプリケーションを意味し、安全確保したストレージのI/Oの操作を実行するためにアプライアンスを用いて、アプライアンスは、カスタマー・アプリケーションとしての同一のコンピュータ資源上にインストールされたソフトウエアエージェントである。
【0013】
用語「保護アイテム」とは、暗号化されるべきあらゆるオブジェクトを意味する。
【0014】
用語「準同型エージェント(homonorphic agent)」とは、ブライディングバリューの暗号化・バージョンを保持するオプショナルサーバ又はエージェントを意味し、ブライディングバリューは、「準同型・エージェント」により要求されて適応されたり又は取り除かれたりする。
【課題を解決するための手段】
【0015】
本発明の一実施例により、安全確保に厳しい顧客は、プロバイダ又はベンダーから提供される公開の、秘密の、混成の、共有の資源を使用することができ、完全な安全性とその制御を享受できる。本発明の一実施例により、安全未確保の資源の安全を確保できる。これは、資源の機能性を損なうことなく資源の安全確保ができる。本発明の一実施例によれば、安全未確保の資源の安全を確保し、それをより安全に制御しながら発生する共有資源のモデルの出現の利点を享受できる。
【0016】
本発明の一実施によれば、ある環境における1つのエンティティ(即ちアプライアンス)により暗号化でき、別のエンティティ(即ちアプライアンス)により脱暗号化ができ、そしてこのような暗号化と脱暗号化操作を、別々のエンティティにより行うことができる。
【0017】
このようなアプライアンスは、保護された仮想・キー・マネージャー(PVKM:Protected Virtual Key Manager )に接続されて、サービスをアプライアンスとシステムのユーザーに提供する。このサービスは、システムの暗号化キーを管理するサービスに関連するか或るいはシステムの安全性を強化する方法に関連する。この様なサービスの特徴は以下を含む。(これに限定されるわけではないが)
1.アプライアンス上のデータ又はルーチン状態が危険に晒されている場合には、顧客キー(「顧客キー」とも称する)の漏洩を防ぐ。
1.PVKM上の状態が危険に晒されている場合には、顧客キーの漏洩を防ぐ。
1.PVKMが悪質コード又はバグを含むコードで置換された場合には、顧客キーの漏洩を防ぐ
1.アプライアンスが悪質コード又はバグを含むコードで置換された場合には、顧客キーの漏洩を防ぐ
1.攻撃者が別のアプライアンス上の顧客キーを確保した場合には、アプライアンス上の類似のキーの漏洩を防ぐ
1.顧客キーが、ネットワーク内あるいはシステムの資源内に入り込んだ盗聴者に漏れるのを防ぐ
【0018】
本発明の一実施例は、公開方式、秘密方式、混成方式に適用可能で、安全確保した資源が異なる法人に帰属する場合を例に説明する。
【0019】
本発明の一実施は、コンピュータ資源の集合体内又はコンピュータ資源の群内のコンピュータ資源の協調動作を行わせるために、信頼されたプロトコルを提供する。この実施例においては、エンティティの集合体(例えばアプライアンスの群あるいはカスタマー・アプリケーションの集合体)が、この集合体の各メンバーは安全未確保環境で信頼に値することを確認する。特にこの実施例により、集合体の新たなメンバーの安全が確保され信頼足り得るものとなる。
【0020】
本発明の他の実施例は、暗号化キーの保管の形態で仮想化されたキー管理システムの安全性を提供する。このキーの保管システムは、暗号化キーの値を知らずに、顧客により使用されるキーを記憶し、このようなキーの値を公開に曝すリスクなしに行われる。
【0021】
本発明の一実施例は、安全確保したアプリケーションを更新させるようなアルゴリズムを提供する。
【0022】
信頼できないコンピュータ資源(以下
「信頼を発行されるアプライアンス」と称する)と信頼できるコンピュータ資源(以下
「信頼を発行するアプライアンス」と称する)とを含む安全未確保のコンピュータ環境で信頼されたプロトコルを生成する方法において、
(A)
信頼を発行されるアプライアンスは信頼できると決定するよう要求するクエストを受領すると、下記の基準(i)と(ii)の内の少なくとも一方が満たされた時には、
信頼を発行するアプライアンスが前記
信頼を発行されるアプライアンスは信頼できると認証するステップと、
基準(i):前記
信頼を発行するアプライアンスは、前記
信頼を発行されるアプライアンスを設定する又は活性化することに直接関与していたこと、
基準(ii):前記
信頼を発行するアプライアンスが、
信頼を同定するデータベース又は前記
信頼を発行するアプライアンスが前記
信頼を発行されるアプライアンスは信頼できると認証するのを許可した情報を同定するデータベースの少なくとも1つのデータベースにアクセスしたこと、
(B1)前記
信頼を発行するアプライアンスが、
準同型公開キーで暗号化された
マスターキーを、
前記信頼を発行されるアプライアンスに送るステップと、
(B2)
前記信頼を発行されるアプライアンスが、
前記準同型公開キーの準同型特性を用いて、
ユーザにより入力されたマスターキーの値を知る
ことなく、
ランダム数値を用いてマスターキーをブラインド化し前記準同型公開キーでさらに暗号化し、前記
信頼を発行するアプライアンスに戻すステップと、
(C1)
前記信頼を発行するアプライアンスは、
PVKMサーバに対し、前記
準同型公開キーを解除し、
前記信頼を発行するアプライアンスとPVKMサーバとは前記ブラインド化されたマスターキーを知ること無く、前記
準同型公開キーとは異なる新たな準同型公開キーを適用するよう
依頼するステップと、
(C2)
前記新たな準同型公開キーで、ブラインド化されたマスターキーを暗号化し、信頼を発行されるアプライアンスに転送するステップとを有する。
その結果前記信頼を発行されるアプライアンスは、前記
信頼を発行するアプライアンスとは異なる準同型公開キーで暗号化される。
【0023】
【0024】
【0025】
本発明の一実施例によれば、
信頼できないコンピュータ資源(以下「信頼を発行されるアプライアンス」と称する)と信頼できるコンピュータ資源(以下「信頼を発行するアプライアンス」と称する)とを含む安全未確保のコンピュータ環境で信頼されたプロトコルを生成するシステムにおいて、
前記システムは、
(X)以下の
(i)〜(iii)を含む
アプライアンスとPVKMサーバーと、
(i)計算操作を実行するCPU、
(ii)データを記憶するメモリ・モジュール、
(iii)ネットワークを介して通信するネットワーク接続装置、
(Y)前記
アプライアンス上にある信頼
を発行する認証モジュールと、
を有し、
前記認証モジュールは、以下のステップ(A)−(C2)
(A)
信頼を発行されるアプライアンスは信頼できると決定するよう要求するクエストを受領すると、下記の基準(i)と(ii)の内の少なくとも一方が満たされた時には、
信頼を発行するアプライアンスが前記
信頼を発行されるアプライアンスは信頼できると認証するステップと、
基準(i):前記
信頼を発行するアプライアンスは、前記
信頼を発行されるアプライアンスを設定する又は活性化することに直接関与していたこと、
基準(ii):前記
信頼を発行するアプライアンスが、
信頼を同定するデータベース又は前記
信頼を発行するアプライアンスが前記
信頼を発行されるアプライアンスは信頼できると認証するのを許可した情報を同定するデータベースの少なくとも1つのデータベースにアクセスしたこと、
(B1)前記
信頼を発行するアプライアンスが、
準同型公開キーで暗号化された
マスターキーを、
前記信頼を発行されるアプライアンスに送るステップと、
(B2)
前記信頼を発行されるアプライアンスが、
前記準同型公開キーの準同型特性を用いて、
ユーザにより入力されたマスターキーの値を知る
ことなく、
ランダム数値を用いてマスターキーをブラインド化し前記準同型公開キーでさらに暗号化し、前記
信頼を発行するアプライアンスに戻すステップと、
(C1)
前記信頼を発行するアプライアンスは、
PVKMサーバに対し、前記
準同型公開キーを解除し、
前記信頼を発行するアプライアンスとPVKMサーバとは前記ブラインド化されたマスターキーを知ること無く、前記
準同型公開キーとは異なる新たな準同型公開キーを適用するよう
依頼するステップと、
(C2)
前記新たな準同型公開キーで、ブラインド化されたマスターキーを暗号化し、信頼を発行されるアプライアンスに転送するステップとを有する。
その結果前記信頼を発行されるアプライアンスは、前記
信頼を発行するアプライアンスとは異なる準同型公開キーで暗号化される。
【0026】
【0027】
信頼できないコンピュータ資源(以下
「信頼を発行されるアプライアンス」と称する)と信頼できるコンピュータ資源(以下
「信頼を発行するアプライアンス」と称する)とを含む安全未確保のコンピュータ環境で信頼されたプロトコルを生成するコンピュータで読み取り可能なコードを記憶する非揮発性の記憶媒体において、
前記コードは、以下のステップ(A)−(C2)
(A)
信頼を発行されるアプライアンスは信頼できると決定するよう要求するクエストを受領すると、下記の基準(i)と(ii)の内の少なくとも一方が満たされた時には、
信頼を発行するアプライアンスが前記
信頼を発行されるアプライアンスは信頼できると認証するステップと、
基準(i):前記
信頼を発行するアプライアンスは、前記
信頼を発行されるアプライアンスを設定する又は活性化することに直接関与していたこと、
基準(ii):前記
信頼を発行するアプライアンスが、
信頼を同定するデータベース又は前記
信頼を発行するアプライアンスが前記
信頼を発行されるアプライアンスは信頼できると認証するのを許可した情報を同定するデータベースの少なくとも1つのデータベースにアクセスしたこと、
(B1)前記
信頼を発行するアプライアンスが、
準同型公開キーで暗号化された
マスターキーを、
前記信頼を発行されるアプライアンスに送るステップと、
(B2)
前記信頼を発行されるアプライアンスが、
前記準同型公開キーの準同型特性を用いて、
ユーザにより入力されたマスターキーの値を知る
ことなく、
ランダム数値を用いてマスターキーをブラインド化し前記準同型公開キーでさらに暗号化し、前記
信頼を発行するアプライアンスに戻すステップと、
(C1)
前記信頼を発行するアプライアンスは、
PVKMサーバに対し、前記
準同型公開キーを解除し、
前記信頼を発行するアプライアンスとPVKMサーバとは前記ブラインド化されたマスターキーを知ること無く、前記
準同型公開キーとは異なる新たな準同型公開キーを適用するよう
依頼するステップと、
(C2)
前記新たな準同型公開キーで、ブラインド化されたマスターキーを暗号化し、信頼を発行されるアプライアンスに転送するステップと、
を実行するプログラム・コードを含む。
その結果前記信頼を発行されるアプライアンスは、前記
信頼を発行するアプライアンスとは異なる準同型公開キーで暗号化される。
【発明を実施するための形態】
【0029】
本発明の方法と装置の一実施例を図面を参照しながら以下説明する。
【0030】
本発明の一実施においては、安全未確保の環境で使用されるキーの安全確保する方法と装置の一例として、仮想化又はクラウドの環境下で走るシステム(ソフトウエアアプリケーション)を例に説明する。このシステムは複数のコンピュータ資源を有し、それ等はサーバとして及び記憶媒体として機能する。安全確保するシステムとして資源の一部は暗号化する必要がある。
【0031】
暗号化された資源は、データを含むシステムのファイル、ディスク、他の資源である。(例えばサーバ・メモリ内のデータは本明細書においては資源でもある。)資源は暗号化技術で保護される。これは、対称又は非対称の暗号化である。これ等の技術は、常に暗号化と脱暗号化のキーの生成と使用を含む。この暗号化キーは後で取り出せるように記憶され、その結果システムは必要なときにはいつでも、資源を暗号化したり脱暗号化することができる。
【0032】
指定されたサービス(即ち資源の暗号化又は脱暗号化)を提供するために、アプライアンスは、システムのサーバと資源に接続され、又PVKMにも接続される。このPVKMは、上記の暗号化キーとシステムの安全確保に関連するサービスを提供する。このような接続は、ネットワーク通信、メモリ内通信、他の適宜のシステムに有用な通信技術を含む。かくしてこのような接続性は、通信チャネル又は通信とも称する。
【0033】
アプライアンスの集合体(相互作用するグループ)とクラスタ(相互作用しないグループ)が、システムでも用いられ、システムの故障回復と、スケーラ・ビリティと、暗号化メカニズムを確保する。あるアプライアンスにより暗号化された資源は、別のアプライアンスにより脱暗号化されるのが有益であり、このような暗号化と脱暗号化の操作は別々のアプライアンスにより原理的に行われるのが有益である。同時にセキュリティの観点から、攻撃者があるアプライアンスを危険に曝したとしても、システム全体は危険に曝されないのが望ましい。
【0034】
本明細書に記載した方法は、クラスタにおいて極めて有効であるが、1つのクラスタ(即ち単独のアプライアンス)においても有効である。クラスタは適用性を一般化するために、クラスタを説明して、適用の一般化とシステムの特徴を強調するが、ここで用いられている技術は、アプライアンスの1つのインスタンス内に存在するキーの保護にも有効である。
【0035】
以下に説明する実施例と実行方法を記述する一般的な構成は 以下の「秘密」キーとキー要素がシステムの構築の説明に関連する。
【0036】
固有キーKsは、特定の保護された資源を暗号化するために用いられるキーあるいはキー群であり、従来公知の暗号化技術を使用する。システムは、この複数の資源の安全確保するために、各資源は異なる固有キーKsを有する。本発明の一実施においては、固有キー(Ks)は、暗号化されていない平文形態でどこかに永続的に記憶しておく必要はない。
【0037】
固有キーKsは複数の部分に分けられる。説明を簡便にするために、最も一般的なケースの実施例においては、Ksを2つの部分マスターキーKmとセカンドキー・シェアとに分ける。サードキー・シェア、更にはそれ以上のキー・シェアを用いることも本発明の範囲内に入る。
【0038】
以下の説明において演算子Θと●とがある。この演算子は、適宜の演算(例;XOR、乗算、除算、加算、減算)を表す。この演算子は、例えば;キー・ジョイニング、キー・スプリティング、キー・ブラインディングに有効である。一般的に、これ等の演算子はこれらの演算を表すのに用いられる。簡単に説明すると、Θは同一の式内では、演算とその逆算の両方を意味する。例えば、XORの逆はXORそのものでありこれに対し、乗算の逆は割り算(除算)である。同じことは●についてもいえる。●とΘの両方が用いられるが、これ等は1つの式の中で2つの演算を表すのに有効だからである。これ等の一般化された演算子は、準同型演算、例えば
E(A)●E(B)=E(AΘB)で用いられる。
【0039】
マスター・キーKmは、固有キーの1つのキー・シェアである。本発明のシステムは、マスター・キーは、コンピュータシステム内の何処かに平文形態で記憶する必要もなく、メモリ内で平文形態で使用される必要もない。
【0040】
上記の実施例は、追加的なキー又はキー・シェアにまで拡張可能である。一般的なフレーム・ワークにおいては、このような態様はマスターキーにのみ適用される。
【0041】
このような態様は、以下の実施例で説明するように、マスター・キー又はキー・シェアは、演算(例えばキー・スプリティング、キー・ジョイニング又は他の関連演算)で、キーの平文(未暗号)値を知ることなく、使用できる。本発明の一実施においては、ブラインド値rは、キー又はキー・シェアを揮発性メモリ内に記憶しないようにするために、用いられる。他の実施例は、準同型暗号化を、Eとして示されたキー群を用いて、又は公開/秘密のキー対で示した(Ek,Dk)を用いて実行し、これによりキーとキー・シェアを暗号化し安全確保する。本発明の他の実施例においては、従来公知の暗号化技術を用いる。準同型暗号化の一例は、ElGamal,paillier,RSA,or Goldwasser-Micali algorithmsである。
【0042】
本発明の一実施によれば、暗号化キー(例えばマスター・キー又はキー・シェア)の一部は、完全にコンピュータ環境外に置くことができる。その結果、それ等の暗号化キーは、コンピュータ環境内で平文形式即ち未暗号化形式で知られることはない。この実施の態様は安全確保を機能を向上させる。その理由は、重要なキーは、平文形態ではコンピュータ環境内に存在することなく使用することができるからである。
【0043】
本発明の一実施においては、ブラインド値(blinding value)、キー又はキー・ペアは、システム内の各アプライアンス毎に異なっており、更には保護すべき対象の各資源内でも異なっている。本発明の一実施例により、キーは、コンピュータ環境内の様々な使用状態において別々に暗号化される。この態様により安全性が向上する。その理由は、暗号化形態でのキーの窃盗はこの窃盗者には役立たない。その理由は、暗号化形態のキーは、例えそれが盗まれたとしても、システムの他の部分では使用できないからである。
【0044】
本発明により、十分には信頼できない環境内でも、信頼性の確立ができる。この実施例により、安全未確保の環境内でのキーの安全が確保される。
【0045】
以下の説明において、PVKMは、このような環境におけるロケーション(物理的あるいは仮想的の何れの)と見ることができ、各アプライアンス又は他のセキュリティ要素も、別のロケーションとして見ることができる。しかし、PVKMそのものは、集合体あるいはクラスタとして実行され、PVKMをロケーションとも称する。
【0046】
本発明の一実施においては、スプリット・キーの暗号化アプローチは、ブライド化値rを用いたブラインド・キーで実現され、これにより、Kmが、コンピュータ・システムのアプライアンス上、PVKM上あるいは何れの場所でも、未暗号化(平文)形態になるのが阻止される。
【0047】
図1−4において、全体プロセスを、別々に又は順番に、タイムライン(上から下に時間が経過する)に従って、アプライアンスAとPVKM−B(図面ではPVKM B(ハイフンが無い)で示されている)の2つの主要な要素に対し示す。これにより、各コンポーネントで別々に(独立して)起きる並列プロセスを分離して示す。
【0048】
アプライアンスAは、複数のアプライアンスの一例を意味する。本発明は、このようなアプライアンスの集合体あるいはクラスタにより広く適用可能である。更にPVKM−Bは概念的なエンティティ(例;サーバ)を意図するが、実際にはPVKM−Bは複数のサーバ(例;故障からの回復保護のため)を意味する。このアプローチを一般化するとより多くのロケーション、より多くのタイムライン(例えば準同型・サーバCと他の更なる要素用のタイムライン)が存在する。
【0049】
更にこの全体プロセスは3つのサブ・プロセスに分けられる。サブ・プロセスIでは新たなアプライアンスを生成し、サブ・プロセスIIでは新たに保護すべきアイテムを生成し、サブ・プロセスIIIでは既に保護されたアイテムにアクセスする。
【0050】
このブラインド・キーの実施例においては、新たなアプライアンスを創設する為(サブ・プロセスI)、PVKM−Bはキー・ペア(Ek,Dk)を生成(ステップ10)し、この公開キーEkをアプライアンスAに送信(ステップ12)し、そこに記憶(ステップ14)する。標準の暗号化技術(いわゆるサーティフィケート内に公開キーをラッピングする技術)を用いて、公開キーEkが本物(authenticity of the public key )であることを保証する。ブラインド値rを用いて、アプライアンスA上のKmの値を暗号化し、秘密に(ブラインド化)する。このブラインド・プロセスは、KmΘrとして計算される。ここでΘは適宜の演算を意味する。ブラインド化された値KmΘrは、アプライアンスA上にその後記憶される(ステップ16)。この記憶はメモリ内でのみ行われ、ディスクのストレージ又は他の永久的な記憶媒体を必要とはしない。しかしこれは他の実施例では許される場合もある。
【0051】
本発明の実施に際し、アプライアンスAは、Kmの元の入力値をユーザが入力する演算を実行する。このような構成においては、ブラインド値rのコピーがPVKM−Bに送られ(ステップ18)、そこに記憶される(ステップ20)。ブラインド値rはアプライアンスAには記憶されない。rは、ブラインド値が計算された後は、メモリから消去され、PVKM−Bはrのコピーを記憶する(ステップ20)。
【0052】
ここに記載したプロトコルで、rをブラインド値KmΘrで演算を実行することにより、システムは、Km又は何れのKs(これ等はPVKM−Bにより知られたものである)の値を知らずに、アプライアンスA上で知られたKmの値を知らずに、キーをブラインド化操作を実行した後は、管理できる。
【0053】
新たに保護されたアイテムが生成される(サブ・プロセスII)と、アプライアンスAはKsを生成する。このKsは、このアイテムを暗号化し保護するために用いられる固有キーである。これは従来公知の暗号化技術を用いて行われる。
【0054】
Ksを、KsのKmも曝すことなく、安全に記憶するために、PVKM−BのKmΘKsΘrのキー・シェアのブラインド化が生成され(ステップ22)、その後これがEkを用いて暗号化され(ステップ24)、PVKM−B(ステップ26)に送られる。PVKM−Bは、ブラインド化されていない(未ブラインド化)キー・シェアを、rの記憶された値を用いて計算し(ステップ28)、このブラインド化されていないキー・シェアをPVKM−Bに記憶させる(ステップ30)。
【0055】
選択的事項として、ハッシュ・ベースのメッセージ認証コード(HMAC:Hash-based Message Authentication Code)を用いて、PVKM−Bのキー・シェアの修正形態をアプライアンスAに戻す(ステップ32)。HMACの有無にかかわらず、PVKM−Bの未ブラインド化キー・シェアは、アプライアンスAに記憶することもできる(ステップ33)。これは、PVKM−Bに記憶する代わりに又はそれに加えて(ステップ30)行われる。この実施例において、HMACを使用することを以下説明する。
【0056】
演算子Θは、本明細書において使用される可能性のある演算の一例である。
【0057】
保護されたアイテムが再びアクセスされると(サブ・プロセスIII)、PVKMキー・シェアが取り出される。これはアプライアンス上で選択的事項として行われ(ステップ34)、PVKMキー・シェアは、PVKM−Bに(HMACを用いて)送られる(ステップ36)。あるいはPVKM上で局部的に取り出してもよい。その後PVKM−Bは、暗号化されたキー・シェアを脱暗号化する(ステップ38)。PVKM−Bは、ブラインド化された脱暗号化されたキー・シェアをアプライアンスAに送る(ステップ40)。そこで脱暗号化されたキー・シェアが、アプライアンスのブラインド化されたキー・シェアKmΘrと結合されて、ストレージ・キーKsを回復する(ステップ42)。
【0058】
ブラインド値を加えることにより、Kmはアプライアンス上に又はPVKM上に記憶されることはない。かくして、アプライアンスを破壊しても、攻撃者はKmを回復/再生できない。同じく、PVKMの破壊も攻撃者に対しKmを再生させることはない。
本発明の一実施においては、準同型・ブラインディングは、準同型公開キー暗号化スキームを用いて、2つの場所で実行され、マスター・キーKmのブラインド化を達成する。
【0059】
図2は、本発明の一実施例による、2(暗号化)位置の準同型ブラインド化の暗号化方式を実施する主要ステップのブロック図である。
【0060】
この2位置の準同型・ブラインド化の実施例においては、新たなアプライアンスを創設する(サブ・プロセスI)ために、PVKM−Bはキー・ペア(Ek,Dk)を生成し(ステップ50)、EkをアプライアンスAに送信し(ステップ52)、そこに記憶する(ステップ54)。このキー・ペアは、部分的な準同型又は完全な準同型の暗号化スキームである。アプライアンスAは、キーを受領すると、マスター・キーKm暗号化し(ステップ56)、又は既に暗号化されたマスター・キーを受領する。しかし未暗号化キーをPVKM−Bに送ることはない。
【0061】
新たな保護アイテムが生成されると(サブ・プロセスII)、アプライアンスAはKsを生成する。このKsは、アイテムを暗号化し保護するのに用いられる固有のキーである。この暗号化は、従来公知の暗号化技術を用いて行われる。
【0062】
Ksを安全に記憶する為にそしてKsのKmも露出しないために、PVKM−Bの暗号化されたキー・シェアEk(KmΘKs)が生成される(ステップ60)。暗号化されたキー・シェアは、その後PVKM−Bに送られ(ステップ62)、そこに記憶される(ステップ64)。PVKM−Bの暗号化されたキー・シェアは、アプライアンスAに記憶され(ステップ65)、これはPVKM−Bに記憶する代わりに又はそれに加えて行って(ステップ64)もよい。
【0063】
この実施例において、アプライアンスに対し、脱暗号化することなく暗号化テキストを乗算する準同型・プロパティを用いてもよい。これによりEk(KsΘKm)が、KsとEk(Km)から、Kmを知ることなく、計算できる。
Ek(Ks)●Ek(Km)=Ek(KsΘKm)
これはステップ60に示されている。
【0064】
保護されたアイテムが再びアクセスされると(サブ・プロセスIII)、アプライアンスAは、まず暗号化されたキー・シェアEk(KsΘKm)を取り出す。アプライアンスAは、PVKM−Bに対しこのキーを脱暗号化するよう要求する必要がある。その理由はアプライアンスAはDkを持っていないからである。PVKM−Bは固有キーKsの値とマスター・キーKmの値を決定することはできない。PVKM−Bがこれ等のキーを直接得るのを阻止するために、固有キーは、既にアプライアンスAに知られている新たなランダムな値rでブラインド化(ステップ66)される。これは、脱暗号化(ステップ70)の為に、キーがPVKM−Bに送られる(ステップ68)毎に行われる。
【0065】
準同型・プロパティを用いて、アプライアンスAが、Ek(Ks)にブライド化ステップを加えるが、これは、Ks又はKmに知らずに行う。
Ek(KsΘKm)●Ek(Km)●Ek(r)=Ek(KsΘr)
その後PVKM−Bは、ブラインド化された脱暗号化されたキー・シェアをアプライアンスAに送る(ステップ72)、そこで脱暗号化されたキー・シェアが、アプライアンスAのキー・シェアと、Kmと、ブラインド化された値と組み合わされて、ストレージ・キーKsを回復する(ステップ74)。
【0066】
数学的に、同一の2位置準同型・ブラインド化プロセスを以下説明する。暗号化キーSと重要な資源を保護する例を考える。
S=[b1,b2,b3−−−bx]
各bxはデータのビットまたはバイトである。一部のbx又は全てのbxが権限のないエンティティに知られたものとなると、このキーは(全体又は一部が)露出されたものとなり、その結果重要な資源も露出されることになる。Sは、b要素のストリングをbxまで暗号化することにより、保護される。Sは、1回又はn回暗号化されるが、これは複数の異なる暗号化方法ε={E1...En}と適宜の暗号化キーP={P1...Pn}を用いて行われる。そしてこれは次のように定義される。
C=ε(S,P)=E1(E2(...En(S,Pn),....P2),P1)
【0067】
上記の説明において、P(P1からPnの順番の組である)は暗号化キーのセットであり、CはSの暗号化形態(即ちSの暗号)である。各Pxは従来公知(例えば、対称暗号化、公開−秘密スキーム又はキー・シェア・スキーム)である。各Pxは、対称キーの分野で公知のキーで(対称キー、公開−秘密キー対あるいはキー・シェア・スキームのキー)ある。Cは適宜の脱暗号化δ()で脱暗号化される。例えば、
S=δ(C,P)=Dn(...D2(D1(C,P1),P2),...Pn);S=δ(ε(S,P))
【0068】
このアプローチにおいて、DxはExの逆数であり、δはεの逆数である。Sは、暗号化キー・セットPが安全で、暗号文CがSが使用される時間と場所の近傍で脱暗号化される場合には安全であると見做される。言い換えると、演算δ() は、Sが実際に必要なときにのみ適用される、Sは必要とされない場合には廃棄される。
【0069】
暗号化方法Ek(kは1−nの整数)の1つを考えてみる。Ekは上記に定義されたアプライアンス上で具体化される。アプライアンスのクラスタが、Ekがクラスタ内のどのアプライアンスでも実現されるよう、要求すると仮定する。暗号化方法の故障回復又は拡張可能性を達成するために、Ekは、クラスタ内の全てのアプライアンスで実現されなければならない。
【0070】
別の暗号化方法Ej(jはkと異なり1−nの整数)を考えてみる。この暗号化方法Ejは、PVKM上で具体化される。Ejの実施例与える為に、アプライアンスとの通信を安全に確保する以外に、PVKMの正確な場所や特徴に関して何も仮定しにあ。例えばPVKMは、サーバ又はサーバのクラスタのようなコンピュータ資源上で実現される。
【0071】
Cに対する前の式は次のようになる。(j<k)
C=e(S,P)=E1(E2(...Ej(...Ek(En(S,Pn),....Pk),...Pj),...,P2),P1)
S=d(C,P)=Dn(...Dk(...Dj(...D2(D1(c、P1),P2),...,Pj),...,Pk),...,Pn)
S=d(e(S,P))
jがkよりも大きい場合には、EjとEkの順番は逆転し、全てのDnとPnの順番も逆転する。jとk以外の方法を無視すると、以下の議論で関連する方法は、次のように定義することができる。
C=e(S,P)=Ej(Ek(S,Pk),Pj)
S=d(C,P)=Dk(Dj(C,Pj),Pk)、C=d(e(S,P))
ここで除かれた方法が示される。
【0072】
Sを重要な資源を保護する暗号化キーとして導入した。本発明では、このSそのものを保護しようとしている。Sは、平文状態ではアプライアンスのメモリ内でのみ、及びSが重要な資源の暗号化又は脱暗号化で使用されている時のみ入手可能である。Sはアプライアンスのメモリ外では入手は不可能である。例えばSは、永久メモリ例えばディスク内には記録されず、PVKM上でも入手不可能である。
【0073】
PKI(Public-Key Infrustructure公開キー方式)の技術は、暗号化アルゴリズムEpkiと脱暗号化アルゴリズムDpkiを有する。PKIのキーの対は、公開キー(e,m)と秘密キー(d,m)がPKIに一般的に使用される。秘密キー(d,m)はPVKM 上でのみ見出され、脱暗号化アルゴリズムDpki(y)=Dpki(d,m)で使用される。公開キー(e,m)はPVKMとアプライアンスの両方で見出され、暗号化アルゴリズムEpki(x)=Epki(x(e,m))で使用される。
【0074】
このPKI技術は、部分的に準同型または完全に準同型の環境(ElGamal,paillier,RSA,and Goldwasser-Micali)で基本的に使用されるPKI技術でもよい。e,d,mの実際の意味は、選択され使用された技術に依存する。例えばRSA方式においてはmはmodulusで、eは暗号化の際の累乗回数で、dは脱暗号化際の累乗回数である。(e,m)は公開キーを含み(d,m)は秘密キーを含む。
【0075】
便宜上マスター・キーMはKmと本明細書では同意である。PKIで暗号化されたマスター・キーはμ=Epki(M)であり、以下の実施例に関連する特定のアプライアンス上でのみ得られる。Mはシステムの如何なる場所でも得ることができず、μのみが上記した特定のアプライアンス上でのみ得られる。
【0076】
一般化した乗算の演算子を‘●’で定義する。演算子の実際の選択は、使用されるPKI技術に依存する。この実施例で選択された演算子‘●’は、部分的準同型の演算で選択されたPKI技術に適したものである。例えばRSAにおいては演算子は乗算であり、Goldwasser-Micaliでは演算子はXOR論理回路である。部分的準同型の特性は次のことを意味する。
Epki(x1)●Epki(x2)=Epki(x1●x2)
Dpki(y1●y2)=Dpki(y1)●Dpki(y2)
*の逆は割り算で‘/’で表され、選択されたpki技術に対して存在すると仮定する。このような定義を用いて、暗号化技術EjとEkと脱暗号化技術DkとDjは、以下のように記述することができる。
【0077】
資源(ディスク上に記憶されたファイル)をSに依存する暗号化技術で暗号化するためには以下のステップを実行する。
1.アプライアンス上で暗号化キーSを得る又は生成する(ランダムに)。
2.アプライアンス上でSを用いて資源を暗号化する。
3.Sをそれ自身の値を曝すことなく記憶する必要がある。PVKMと他のアプライアンス上の何れでも(システム内のエンティティ)はSを得ることはない。その為
a.アプライアンス上でσ=Epki(S)を計算する。
b.アプライアンス上でκ=σ●μ=Epki(S)●Epki(M)を計算する。
c.κをPVKMに送る(これはS又はMを、PVKMに曝すことにはならない)。
d.PVKM上でのみDpki(κ)を計算する。(秘密キー(d,m)はPVKM上でのみ得られる)これはスルー・準同型は以下を示唆する。
Dpki(κ)=Dpki(Epki(S)●Epki(M))=Dpki(Epki(S●M))=S●M
PVKMは適宜の技術で、値(S●M)を安全に確保する。(例えは、データ・ベース内の記憶装置)
4.Sを廃棄し、その結果、Sは、アプライアンス上ではもはや得ることができず更にはアプライアンスのメモリ内でも得ることはできない。(選択的事項としてこの値は将来 一時記憶することもできるが、これは性能と利便性を引き換えに、安全性を犠牲にしたものである。
【0078】
アプライアンス上で起きる上記のステップはEkを記述し、PVKM上で起きる上記のステップはEjを記述する。Sが得られない場合、上記の暗号化した資源を脱暗号化するために以下のステップが行われる。
【0079】
1.PVKM上でS●Mを取り出す。
2.PVKM上でκ=Epki(S●M)を計算する。
3.κをアプライアンスに送る
4.準同型とEpki(M)を利用して介して、アプライアンス上のκ/μを計算する。κ/μ=Epki(S●M)/Epki(M)=Epki(S)=σ
5.公知の適宜のブラインド技術を用いて、σblindedをσから生成する。この様な技術は乱数rとEk(r)による乗算による(これは
図2に記載している)。
6.σblindedをアプライアンスからPVKMに送る。
7.PVKM上でSblindedを計算する。
Sblinded=Dpki(σblinded)=Dpki(Epki(Sblinded))
8.PVKMからSblindedをアプライアンスに戻す(PVKMはSを取り出すことができるがそれはPVKMはブラインディング・ステップを実行したからである)。
9.アプライアンス上でSを用いて所望の資源を脱暗号化する。
10.値Sを廃棄し、従ってアプライアンス上ではもはや得ることができず、更にアプライアンス上のメモリ上でも得ることができない。選択的事項としてこの値は将来使用するために一時記憶することもできるが、これは性能と便利性のために安全性を犠牲にするものである。
【0080】
アプライアンス上の上記のステップはDkを記述し、PVKM上で起きる上記のステップはDjを記述する。
Kmは、暗号化形態でのみ記憶されているので、アプライアンスを破壊しても、攻撃者はKmを回復することはできない。
【0081】
本発明の一実施においては、準同型・ブラインディングは3か所で行われる。この3暗号化箇所での準同型・ブラインディングの実施例は、ブラインドキーを用いてスプリット・キー暗号化に関連する上記のプロセスに類似する。但し、rが、3暗号化箇所での準同型・ブラインディングの方法では、何処にも非暗号化形態で記憶されることはない点を除いて類似する。その代りrの暗号化版は、外部の準同型・サーバに送られる。
【0082】
図3は、3暗号化箇所での準同型・ブラインディングの暗号化を実施する主要なステップのブロック図である。
【0083】
この3暗号化箇所での準同型・ブラインディングの暗号化においては、新たなアプライアンスを生成する為(サブ・プロセスI)、PVKM−Bは(Ek,Dk)キーの対を生成し(ステップ80)、EkをアプライアンスAに送り(ステップ82)、そしてそこに記憶する(ステップ84)。アプライアンスAは、ブラインド化されたKmを記憶する(ステップ86)。
【0084】
上記の実施例において、ブラインド化操作は、ユーザが入力したランダムな値rとKmの元の入力値を用いて行われる。このような構成においては、rの暗号化版が計算され(ステップ88)、その後準同型・サーバCに送られ(ステップ90)、そこに記憶される(ステップ92)。rもその暗号化版も、アプライアンス又はPVKMには記憶されない。
【0085】
新たな保護されたアイテムが生成されると(サブ・プロセスII)、アプライアンスAはKsを従来公知の暗号化技術を用いて生成する。Ksは、そのアイテムを暗号化し保護するのに用いられる固有のキーである。
【0086】
Ksを安全に記憶し且つKsもKmも露出しないようにするために、ブラインド・キーKmΘKsのPVKM−Bの暗号化されたキー・シェアを生成する(ステップ104)。これはEκ(KsΘKmΘKr)の計算を行い、その後準同型・サーバCに送信する(ステップ98)。Cはrの記憶された暗号化形態を用いて、ブラインド化されていないキー・シェアを計算する(ステップ100)。その後暗号化されたブラインド化されていないキーをPVKM−Bに送信し(ステップ102)、そこに記憶する(ステップ104)。
【0087】
選択的事項として、HMACを用いてステップ100で計算されたキー・シェアの修正形態をアプライアンスAに戻す(ステップ106)。HMACの使用の有無に関わらず、PVKM−Bの暗号化されていないキー・シェアは、アプライアンス上に記憶される(ステップ107)。これはPVKM−Bに記憶する代わりに又はそれに加えて行われる(ステップ104)。
【0088】
保護されたアイテムが再びアクセスされると(サブ・プロセスIII)、記憶された暗号化キー・シェアが取り出され(ステップ108)、それが準同型・サーバCに送られる(ステップ110)。選択的事項としてHMACを用いる。
図3は、アプライアンス上に記憶される場合のアプライアンスから送信されたキー・シェアを示す(ステップ107)。キー・シェアは、PVKM−Bに記憶されている場合には、PVKMから送信される(ステップ104)。準同型・サーバCはその後ブラインドされた暗号化されたキー・シェアを計算し(ステップ112)、このブラインドされ暗号化されたキー・シェアをPVKM−Bに送る(ステップ114)。PVKM−Bは、最終的にブラインドされ暗号化されたキー・シェアを脱暗号化し(ステップ116)、その結果ブラインドされ脱暗号化されたキー・シェアをアプライアンスAに送る(ステップ118)。そこで脱暗号化されたキー・シェアは、アプライアンスのブラインドされたキー・シェアKmΘrと組み合わされて、固有のキーKsを再生する(ステップ120)。
【0089】
上記の暗号化方法の準同型特性は、ブラインド値は平文のrを知らずに暗号化テキストに適用され、そこから直接取り出すことができることを意味する。その理由は、rの値は平文形態で記憶されず、PVKM又はアプライアンス(更には両方)への受動的な攻撃ではrを知ることはできない。マスター・キーを解明する唯一の方法は、すべて3つのサーバに入り込み、アプライアンスからKmΘrを、PVKMからDkを、準同型・サーバからEk(r)を取り出し、この3つのキーを組み合わせることである。
【0090】
本発明の一実施においては、2暗号化位置準同型・ブラインド暗号化は、プロトコルの最適化を行うことで実現できる。この実施例は、
図2で説明した準同型・ブラインドの2つの位置の暗号化方法に類似する。但し、プロトコルでは、ある場所ではより効率的であり、より少ない計算量とより少ない繰り返し計算で目標に達成できる。
【0091】
図4は、本発明の一実施例による、プロトコル最適化を伴った2暗号化位置の準同型ブラインド化キーの暗号化方式を実施する主要ステップのブロック図である。
【0092】
この実施例の2暗号化箇所での準同型・ブラインディングの暗号化においては、新たなアプライアンスを生成する為(サブ・プロセスI)、PVKM−Bは、キーの対(Ek,Dk)を生成し(ステップ130)、EkをアプライアンスAに送り(ステップ132)、そこに記憶する(ステップ134)。更に、Ekをユーザに送る(ステップ136)。アプライアンスAは、暗号化されたマスター・キーEk(Km)を受領すると記憶し(ステップ138)、この暗号化さたKm(生成され記憶されたブラインド化値rから得られる)をEk(KmΘr)を計算することにより、ブラインド化する(ステップ140)。このブラインド化されたKmをその後PVKM−Bに送り(ステップ142)、これをPVKM−Bに記憶する(ステップ144)。
【0093】
上記の暗号化方法の準同型・プロパティは、Kmに知らずにブライド化ステップを加えることである。
Ek(KsΘr)=Ek(Km)ΘEk(r)
【0094】
新たに保護されたアイテムが生成されると(サブ・プロセスII)、新たな固有キーKs(アイテムを暗号化し保護するに用いられる)が必要とされる。これには従来公知の暗号化技術が用いられる。固有キーは以下のように生成される。
【0095】
アプライアンスAは、アプライアンスA上でランダムなビット形式であるエントロピー(この分野では公知技術)をキー生成リクエストと共に集める(ステップ146)。その後アプライアンスAは、キーを生成するよう要求する(ステップ148)。これは。リクエストを、集められたエントロピー上を通過させて、PVKM−Bに送る(ステップ150)ことにより行われる。その後PVKM−Bは、ランダムな値を生成する。このランダムな値は、アプライアンスAのエントロピーと共に、PVKM−Bのキー・シェア、KmΘKsとして機能する。
【0096】
PVKM−Bは、リクエストで供給されたアプライアンス・エントロピ又はPVKMのアプライアンス・エントロピーの何れかを用いるか又はその両方を用いて、新たなキーを生成する。その後このキー・シェアを用いて、ブラインド・キーKsΘrを生成する(ステップ154)。これをPVKM−BからアプライアンスAに送る(ステップ156)、それからアプライアンスAは、キーKsを、予め記憶されたブラインド値rを用いて計算する(ステップ158)。
【0097】
保護されたアイテムに再度アクセスされると(サブ・プロセスIII)、アプライアンスAはリクエストを生成(ステップ160)することにより、固有キーKsを得る。その後、このリクエストPVKM−Bに送ること(ステップ162)により。固有のキーを得る。PVKM−Bはそのキー・シェアを取り出し(ステップ164)、このブラインド化されたキーを計算し(ステップ166)、このブラインド化されたキーをアプライアンスAに送る(ステップ168)。アプライアンスAは、その後このキーKsを計算する(ステップ170)。
【0098】
本発明の一実施例においては、Nか所の暗号化プロセスが、上記の2か所又は3か所の暗号化プロセスを拡張することにより、実現できる。
【0099】
本発明の一実施例においては、クラスタに関与する信頼されたプロトコルを実行して、エンティティのクラスタ(即ちアプライアンス)が、クラスタの構成員が仮想環境又はクラウド環境で、信頼に値することを確認できる。この場合、特に新たなクラスタの構成員の安全が確保され信頼に値することが確認できる。
【0100】
この実施例においては、クラスタ内のエンティティの信頼を認証するプロトコルが規定される。アプライアンスは識別チケットを具備する。これは従来公知の適宜のチケットである。アプライアンスは適宜のデータ・ベース内で信頼できるとして指定されるか又はこの様なアプライアンス内で信頼の生成を指定する。このようなチケット発行又はアプライアンスの指定は、トラストのフラッグの付いたアプライアンス(appliance flagged trusted)である。
【0101】
アプライアンス
にトラストのフラッグを付ける前に、特定のアプライアンスにおけるトラストが確立されなければならない。アプライアンスは、少なくとも1つの信頼されたエンティティによりトラストが発行されない限り、
トラストのフラッグは付かない。信頼されたエンティティは、別のアプライアンス、PVKM又は、他の信頼されたエンティティでもよい。アプライアンスは、信頼証明が発行された後のみ、トラスト
のフラグが付く。アプライアンスに対し信頼証書を発行するよう信頼されたエンティティは、以下の方法によってのみ、それ自身に信頼性があるものと見做される。
【0102】
1.エンティティがトラストを得ること
そしてトラストのフラッグを付けることの唯一の方法は、システムのユーザが、エンティティに対し個人的に信頼状を発行することである。このような状況は、クラスタの第1のインスタンスが最初に活性化された時にあるシチュエーションが起きるか又は他のシチュエーションが起きた時に、発生する。この様なアプローチの代表的な例として、ユーザが信頼されたトラストに対しマスター・キーのコピー又はこのマスター・キーの暗号化版を提供することにより、そのエンティティに対し
トラストを発行すること又はユーザがエンティティの
トラストをPVKMに対し発行することである。
2.別の信頼されたエンティティが以下の条件の少なくとも1つが満たされたときのみ、アプライアンスに対し信頼状を発行することに同意することである。
(a)信頼されたエンティティがアプライアンスを設定する又は活性化することに直接関与したこと、そしてそれ故にアプライアンスが正しくセットアップされたこと又は安全性のリスクがないことに対し
トラストを発行することである。
(b)信頼されたエンティティが識別された秘密情報又は識別された情報のデータ・ベースにアクセスすること、これにより信頼されたエンティティがアプライアンスは信頼に値すると認証することである。
【0103】
信頼状(トラスト)を発行するある方法は、状況によっては他のものよりも好ましいが、両方のアプローチ共一般性を維持する。信頼されたエンティティがアプライアンスに対しトラストを発行すると決定すると、信頼されたエンティティは、アプライアンスに対するトラストを、クラスタの他のメンバー又はPVKMの他のメンバーに、発行する。新たに
信頼されたアプライアンスが、適宜の秘密を受領すると、エンティティのトラストが確立される。
【0104】
上記の秘密の一例は以下のものがある。
適宜のフラッグ(例えば、チケット)
適宜に暗号化されたマスター・キー
従来用いられている秘密
事項
このような秘密は、それを暗号化することにより安全確保される。更に好ましいのは、
秘密そのものがコンピュータ環境で平文の形態で知られていないことである。
秘密が送信側(信頼を発行する側)のエンティティとは異なる方法で受信側(信頼を要求される側)のアプライアンスに対し暗号化される。
【0105】
本発明の一実施例においては、トラスト
(信頼)を発行するエンティティは、PVKMと協働して秘密のそれ自身の暗号化を取り除くが、これはPVKM又は信頼を発行したアプライアンス側の秘密
事項を知らず(例えばマスター・キーを知らず)に行うことができる。秘密の新たな暗号化が、その後PVKMと共に適用されるが、PVKM又は他のアプライアンスもこの秘密を知る必要はない。この新たな暗号化は、受領する(信頼が要求される)
アプライアンスにとって適切なものである。
【0106】
このアプローチを達成する代表的な技術は以下のステップに関連する。
1.送信側のエンティティが準同型で暗号化されたEk(Km)を受信側のアプライアンスに送る。
1.受信側のアプライアンスが、このEkの準同型特性を用いてその値を知る
ことなくKmをブラインド化する。(例えばランダム数値tを生成しEk(KmΘt)=Ek(Km)ΘE(t)が計算される)そしてこれを送信側のアプライアンスに戻す。
1.
トラストを発行するアプライアンスは、PVKMに対し暗号化
公開キーEkを取り除き、暗号化
公開キーEjを適用する(t
のブラインド化のために、PVKMと
信頼を発行するアプライアンスは両方ともKmを知ることができない)。
1.新たに暗号化された値Ej(KmΘt)を受信側アプライアンスに送られる、これにより新たなアプライアンスにKmの暗号化
版を、どのエンティティにもKmを知られずに、与えることができる。その結果新たなアプライアンスにおける暗号化は他の何れの暗号化とも異なる。
【0107】
この実施例は新たなアプライアンスに対し信頼できるのみならず、あるアプライアンスの秘密が破られたときに他のアプライアンスはそうではないということが確認できる。その理由は、アプライアンスが含む秘密は別々に暗号化されるからである。
【0108】
本発明の一実施例においては、HMACはサービスの拒否(DoS)の回避で、セキュリティのために、PVKMで維持されている脱暗号化キー(Dk)の使用を制限するために実行される。HMACは、特別なチェックサム機構でPVKMにとって計算は容易ではあるが、他のエンティティがそれを作り出すことは非常に困難である。HMACを用いて、PVKMはPVKMがデータを暗号化する毎にチケットを計算し、このデータを暗号文と共にアプライアンスに送る。PVKMは有効なチケットなしではデータを脱暗号化するのを拒否する。PVKMは暗号文からチェックサムを簡単に計算し、これによりアプライアンスが、PVKMがそのデータベース内に暗号化キーを記憶していない場合でも作業することができる。
【0109】
本発明の更なる実施例において、PVKMとアプライアンスは、安全確保した仮想化したキー管理システムとして使用され、暗号化キーをAPI(Application Programming Interface)を介してユーザに送る。この実施例においては、ユーザ実際の暗号化を実行するが、この実行システムはキーを提供するだけである。この実施例において、PVKMとアプライアンスとそれ等の間のプロトコルは上記の何れの場合でも又は一般的原理に入るようなどのプロトコルでもある。
【0110】
更に実際の暗号化キーをユーザに適用し、適用することは実行システムにとっては完全に知りえないものである(即ち、PVKMとアプライアンスに対しては完全に未知のものである)。この様な実行はプロトコルを強化することにより達成され、その結果ユーザは、ユーザに対してブラインドの値、暗号化キー、暗号化キー群、暗号化キー対を発行することを要求することによりプロセスに参加する。
【0111】
この実施例において、PVKMとアプライアンスはそれ自身のキーの暗号化を切り替えてそれをユーザにより指定された暗号化で置換するが、これはキーを必要とすることなく行うことができる。この実施例は、PVKMとアプライアンスの何れもがキーに値を知ることが無いよう実行される。即ち、ユーザにより供給されるブラインド値を用いて更にブラインドする。この実施例において、seで仮想化されたキー管理システムは、キーの生成とキーの記憶システムとしてユーザのために機能するが、システムがユーザに提供するキーの値を知る必要はない。この実施例はセキュリティを確実にするために更なるセキュリティの向上が期待できる。その理由はシステムには完全には未知の値はシステムから盗むことができないからである。特にキーの値はシステムの一時メモリであるキャッシュから盗むことができないからである。
【0112】
以上の説明は、本発明の一実施例に関するもので、この技術分野の当業者であれば、本発明の種々の変形例を考え得るが、それらはいずれも本発明の技術的範囲に包含される。特許請求の範囲の構成要素の後に記載した括弧内の番号は、図面の部品番号に対応し、発明の容易なる理解の為に付したものであり、発明を限定的に解釈するためのものではない。また同一番号でも明細書と特許請求の範囲の部品名は必ずしも同一ではない。これは上記した理由による。実施例の記載においては、「少なくとも1つ又は複数」、「と/又は」は、それらの内の1つに限定されない。例えば「A,B,Cの内の少なくとも1つ」は「A」、「B」、「C」単独のみならず「A,B又はB,C更には又A,B,C」のように複数のもの、AとBの組合せAとBとCの組合せでもよい。「A,Bと/又はC」は、A,B,C単独のみならず、AとBの2つ、又はAとBとCの全部を含んでもよい。本明細書において「Aを含む」「Aを有する」は、A以外のものを含んでもよい。特に記載のない限り、装置又は手段の数は、単数か複数かを問わない。
本PCT出願は、米国仮出願61/562,893号(2011年11月28日出願)と米国仮出願61/603,383号(2012年2月27日出願)を優先権を主張してなされたものである。