機密データの保護処理のための方法及び装置
機密データの保護処理のための装置は、保護ネットワーク・チャネルを通じて依頼者から処理のための要求を受信するネットワーク・サーバと、機密データを外部から監視することも改ざんすることもできない方法で処理するための保護計算環境と、当事者が合意した契約に基づいて要求の処理を制御する契約エンジンとを含む。契約エンジンは、要求を司る契約を選択する要求ハンドラを含み、当事者が要求をサーバに送信することができるかどうか、及び、該要求が該契約に適合するかどうかを検査する。タスク処理ユニットが、契約に定められた通りに一連の処理ステップを実施し、当初は要求内に含めて送信された情報を含む処理状態を利用して、拡張するようにする。レスポンダは、契約に定められた通りに処理状態の一部を選択し、保護ネットワーク・チャネルを通じて該契約に定められた当事者に送信される応答メッセージを生成する。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、機密データの保護処理のためのシステム及び方法に関する。より具体的には、本発明は、必ずしも相互に信頼するとは限らない当事者が、処理と自らのデータの使用とを制御することが必要なシステムに関する。
【背景技術】
【0002】
多くのITアプリケーションは、機密データ、すなわち、ITシステムが秘密又は機密を保持すべきデータの処理から構成される。こうしたアプリケーションの典型的な例は、飛行機搭乗前又は雇用前の、警戒リストとの対照による個人のスクリーニングである。こうしたスクリーニングは、氏名又は他の個人データの簡単なテキストベースの照合とすることが可能であり、特に、指紋の特徴点又は人間の顔の特徴などのバイオメトリクス(非特許文献1参照)を用いて、照合した個人の身元を確認するか、又は候補者の集合の中から個人を特定することができる。
【0003】
データをコンピュータ・ネットワークを通じて送信するか又はストレージ・メディアに格納する際に、データを暗号化し、保護するための暗号化技術が存在する(例えば、非特許文献2参照)。しかしながら、実際の処理ステップのためには、処理の間にコンピュータ・システムがデータを解釈し、変更し、新たなデータを得ることが可能になるように、データを自由に利用できなければならない。この処理の間、データは、処理環境に侵入してデータを探し出し、変更する攻撃者に対して脆弱である。ITシステムには、その処理環境に入る方法を発見した攻撃者からプログラム及びデータを保護する手段がない。
【0004】
ITシステムを侵入者から保護する1つの方法は、機密データの処理を保護計算環境に限定することである(2001年11月6日に付与されたSchneckらの特許文献1、及び、引用によりここに組み入れられる非特許文献3参照)。保護計算環境は、FIPS 140−1 Level 4妥当性検査を有するIBM 4758 暗号化コプロセッサのような汎用コンピュータ装置である(非特許文献4参照)。保護計算環境内の計算は、外部から監視することはできない。さらに、処理又は処理データを、保護計算環境の外部から悪意を持って変更することは不可能である。保護計算環境、内部で作動しているプログラム、又は内部で処理中のデータを改ざんしようとする試みは、該環境によって検出され、その後、該環境は、該環境内部に格納された機密データを破壊するか、又は該データに永久にアクセスできないようにする。
【0005】
保護計算環境は、外部からの攻撃に対する保護を与えることができるが、システムによって当事者の保護要求及びプライバシー要求が満たされることを、該システム自体が保証することはできない。当事者は、自らのデータが予定通りの方法で処理されるアプリケーションのプロバイダを信頼しなければならない。当事者はサービスを制御できないため、このことに対する技術的な保証は存在しない。
【0006】
当事者は、自らが処理とデータの使用とを制御できない場合、すなわち完全に信頼に頼らなければならない場合には、データ処理タスクに参加しようとしないことが多い。
【0007】
既存のシステムは、関与する当事者にサービスを制御させないようにするか、又は、単に当事者の数を1つに減らして問題を回避する。例えば、幾つかの航空会社は、規則に従わない乗客のデータベースを持ち、乗客をこのデータと照合することがある。この場合、必然的に自らを信頼する航空会社は、全ての役割、すなわち、サービス・プロバイダ、情報プロバイダ、スクリーナ、及び通知された当事者のすべての役割を担当する。他のデータベースの例として、法執行エージェンシ(非特許文献5参照)又は信用履歴検査がある。これらのアプリケーションは、サービス・プロバイダでもあるインフォメーション・プロバイダによって完全に制御される。スクリーナである当事者には、該スクリーナが提供する情報をサービス・プロバイダがさらにどのように用いるかを制御する方法がない。同様の例は、乗客をその乗客のID文書の写真と照合する、空港での顔認識アプリケーションである。このアプリケーションは、サービス・プロバイダでもあるスクリーナによって完全に制御される。
【0008】
例えば2001年のスーパーボール又は幾つかの空港で用いられる顔認識システムのような既存の監視システム(非特許文献6参照)は、大部分が閉回路システムである。これらのシステムは、バイオメトリック・データを、ローカル・データベース、又は個人が所持するスマート・カードに格納された情報と比較する問い合わせに対して、直接応答を返す。したがって、対話中の異なる当事者が用いることが可能な、より一般的なサービスについての必要性が存在する。
【0009】
サーバに対して認められる一連の要求を契約が定めるコンピュータ・プログラムを用いて、可能な対話パターンを定めるために、Asit Dan及びFrancis Nicholas Parrに対して2000年11月4日に付与され、全体が引用によりここに組み入れられる特許文献2に記載されるような他のシステムが用いられてきた。これらのシステムでは、サービス・プロバイダは、サービス契約を決定する。この契約は、有効な別の要求Bが要求Aに先行することを必要とする。当事者は、こうした種類の契約を用いて処理とデータの使用とを制御することができない。
【0010】
多くの既存システムは、保護計算環境では実行されない。この場合、処理にアクセスする攻撃者は、自由にその処理を監視し、影響を及ぼすことができる。このように、当事者が処理ステップ及びデータの取扱いについて合意したとしても、こうした無保護環境において処理が該当事者のセキュリティ要件を満たすことを保証する技術的な方法は存在しない。
【0011】
ウェブ・サービスに構築された既存システム(非特許文献7)は、どのサービス・プロバイダを選択するかをクライアントに制御させるが、サービスの機能自体は制御させない。
【0012】
例えば、(非特許文献8)に記載されるようなサービス・レベル合意又はサービス合意の質などの明示的な契約を用いる既存のシステムは、リソース消費又は所要時間などの、サービスの非機能的な特徴に対応するのみである。こうした手法は、当事者にサービスの機能を制御させない。
【0013】
【特許文献1】米国特許第6,314,409号明細書
【特許文献2】米国特許第6,148,290号明細書
【特許文献3】米国特許第6,167,521号明細書
【特許文献4】米国特許第5,650,948号明細書
【非特許文献1】Anli Jain、Lin Hong、及びSharath Pankanti、「Biometric identification」、Communications of the ACM、43(2)、90−98ページ、ACM Press、2000年
【非特許文献2】Bruce Schneier、「Applied Cryptography」、John Wiley&Sons、1996年
【非特許文献3】Sean W. Smith及びDave Safford、「Practical Private Information Retrieval with Secure Coprocessor」、IBM Research Report、RC21806、2000年7月
【非特許文献4】http://www.ibm.com/security/cryptocards
【非特許文献5】James X.Dempsey、「Overview of current criminal justice information systems」、Proceedings of the 10th Conference on Computers,Freedom and Privacy、Toront、101〜106ページ、ACM Press、2000年
【非特許文献6】Scholz及びJohnson、「Interacting with identification Technology:Can it make us more secure?」、Conference on Human Factors in Computer Systems、Minneapolis、564〜656ページ、ACM Press、2002年
【非特許文献7】Vadim Draluk、「Discovering Web Services:An Overview」、Proceedings of the Twenty−seventh International Conference on Very Large Data Bases、Roma、Italy、637ページ、Morgan Kaufmann、2000年
【非特許文献8】Dinesh Verma、Mandis Beigi、及びRaymond Jennings、「Policy Based SLA Management in Enterprise Networks」、Lecture Notes in Computer Science、1995巻、137〜152ページ、Springer−Verlag、2001年
【発明の開示】
【発明が解決しようとする課題】
【0014】
本発明は、必ずしも相互に信頼するとは限らない多数当事者が機密データの処理に参加することを可能にする。当事者間の関係は、処理システムが自動的に履行することができる契約によって保護される。契約は、要求が処理される方法と、この処理において個々の当事者によって提供される情報が用いられ、開示される方法とを定める。処理は、誰も該処理を監視することも改ざんすることもできないことを保証する保護計算環境で実行されることが好ましい。
【課題を解決するための手段】
【0015】
本発明の一実施形態においては、契約がシステムに実装される前に、すべての当事者が該契約に合意することができる。このようにして、機密データの処理のためにサービスを用いる当事者は、その処理とそのデータの使用とを完全に制御することができる。
【0016】
本発明の別の実施形態においては、依頼者が、処理要求をサーバに送信することによってデータ処理を起動する。処理自体は、監視することも外部から改ざんすることもできない。処理の最後に、サービスは、依頼者を含むこともある、直接的又は間接的に要求の処理に関わった幾つかの又はすべての当事者に、応答メッセージを送信する。
【0017】
本発明のさらに別の実施形態においては、サービス要求の処理は、要求の処理の間に行われることになるアクションと、これらのアクション間における情報の流れ方とを指定する契約によって定められる。サービス要求の処理に協力する当事者は、システムが契約を実行する前に、該契約に相互に合意しなければならない。
【0018】
本発明のさらに別の実施形態においては、要求の処理に協力する当事者は、要求の処理の間に計算されるデータ項目の所有者である。データ項目の所有者は、どの処理ステップに、又は他の当事者のどれに、データ項目を開示しようとするかを正確に制御することができる。
【0019】
本発明の他の特徴及び利点は、添付図面と併せて解釈され、本発明の原理の明細並びに例を与える以下の詳細な説明から、明らかになるであろう。
【発明を実施するための最良の形態】
【0020】
本発明は、機密データの保護処理のための方法を以下のように定めるものである、すなわち、
a)機密データの処理に協力する当事者は、まず、処理を構成する機能ステップと、個々の処理ステップで用いられるべきデータ項目とについて合意する関係を構築する。
b)当事者は、契約に明示された、処理とデータの使用とについての公式仕様に合意する。契約は、他の情報の中から、処理の中の個々の処理ステップと、個々の処理ステップに対する入力として用いられるべきデータ項目と、処理ステップが処理状態に与える出力とを定める。
c)サービスは、契約についてのインタプリタである。契約は、システムが該契約によって定められた機能を正確に実行し、意図した通りにのみデータ項目を用いることを保証する。特に、このことは、用いられる処理及びデータ項目が、外部から監視又は改ざんできないことを意味する。
【0021】
スクリーニング・シナリオの場合には、関与する当事者は、スクリーニング・サービスを行うサービス・プロバイダと、個人を検査しようとするスクリーナと、警戒リスト・データを提供する幾つかの情報プロバイダと、審査対象の個人が警戒リスト上に発見された場合に情報を与えられるべき、法執行、空港警備、又は人的資源などの他の当事者とになるであろう。
【0022】
情報プロバイダは警戒リスト・データを機密扱いしようとし、すなわち、該プロバイダは、該データをスクリーニングに用いることは認めるが、該リスト上の情報はシステムの外に漏らすことはない。スクリーナは、審査対象の個人が警戒リストに現れない限り、該審査対象の個人についての基本的なプライバシーを保証しようとする。特に、スクリーナは、情報プロバイダがスクリーニング要求に基づいて任意の個人を追跡することを不可能にしようとする。スクリーナ及び情報プロバイダは、一致した場合のみ法執行に通知しようとし、他の場合には、情報を漏らすことはない。いずれの当事者も、サービス・プロバイダ又は侵入者に情報を漏洩しないようにすべきである。
【0023】
図1は、本発明の実施形態に係る参加当事者間の概略的な作業の流れを示す。一般に、すべての処理は、以下のスキームによって表される。区別された当事者である依頼者101が、サービス要求110を保護要求処理102に送信する。この要求の処理を司り、契約に基づいて一連の処理ステップを実行する要求処理102は、その契約を判断する。要求処理102は、サービス契約に基づいてデータを当事者103から受信する。個々の処理ステップのアプリケーションは、処理状態のサブセットを入力として用いる。処理ステップの出力は、処理状態を拡張するのに用いられる。入出力の仕様は、契約内に定められる。処理の初期状態は、処理を起動させる要求からの情報で構成される。該当するすべての処理ステップが実行されると、要求処理102は、要求の処理に関わった当事者101、103、及び104のための応答メッセージ111を生成する。当事者のためのメッセージの内容が、契約内に指定される。
【0024】
各々の要求は、異なる依頼者を有することがある。例えば、要求110が図1で処理された後、当事者103は、依頼者の役割を引き受け、自分のサービス要求112を送信することができる。異なる種類のサービス要求が異なる契約を呼び出し、該契約が次に、異なるサービス機能をクライアントに提供する。
【0025】
典型的なアプリケーションにおいては、情報プロバイダ103が、時折、サービス要求112を送信して、サービスに提供する情報を更新することになる。この種の要求を制御する契約は、情報プロバイダからの要求内のデータをどのように用いてサービス内部の情報を変えるかを指定する。他のサービス要求は、その後、更新済みの情報を用いて処理される。
【0026】
システムは、異なる当事者が異なる契約に基づいて同時に対話することを可能にする。例えば、スクリーニングの用途においては、多数の異なるスクリーナである当事者と、多数の異なる情報プロバイダと、多数の異なる法執行エージェンシが存在することになる。システムに送信された各々の要求は、指定された契約に基づいて処理を呼び出す。契約は、どの当事者がこの要求の処理に同時使用されるかを判断する。便宜上、以下にさらに示される複合契約も定められる。
【0027】
処理は契約によって制御され、参加する当事者は契約を制御するので、参加する当事者は、処理と自分のデータが用いられる方法とを完全に制御することになる。保護計算環境において契約を実行することにより、情報が漏洩せず、誰もデータの処理を改ざんできないことが保証される。
【0028】
図2は、本発明の実施形態による契約によって定められ、制御される保護データ処理のためのシステムの全体構造のブロック図を示す。一般に、処理は、サーバ201がネットワーク接続204を通じてサービス要求200を受信したときに開始される。要求200は、要求ハンドラ205と、タスク処理208と、レスポンダ209とから構成される契約エンジン203によって処理される。3つの要素のすべては、処理状態207と連動し、契約206によって制御される。
【0029】
要求ハンドラ205は、まず、送られてくる要求が有効で、処理に受け入れられるかどうかを検査する。要求ハンドラは、要求の内容と該要求を送信した当事者とを、この特定のサービス要求の処理を定め、制御する契約206に定められた情報と照合することによって、この検査を行う。
【0030】
本発明によって説明されるシステムでは、サービス要求の処理は、契約206によって制御される。契約(図6を見よ)は、サービス要求の処理に協力するすべての当事者によって相互に合意される公式仕様である。契約は、サーバが要求を処理する方法と、この処理の際に情報が個々の処理ステップ間で開示され、集約される方法とを正確に定め、制御する。
契約は、
a)要求の処理に協力する当事者、
b)要求メッセージ内に与えられるデータ項目、
c)要求の処理の間に実行されなければならない個々のアクション、
d)アクションを実行した結果として生成されるデータ項目、及び、これらのデータ項目の所有権、
e)個々のアクションのアプリケーションを制御する作業の流れ、
f)データ項目の所有者がどの処理ステップを開示しようとし、どの処理ステップを開示しようとしないかを正確に制御することを可能にする、個々のアクション間の制御されたデータの流れ、
を指定する。
公式データ・モデル、及び契約に関するさらなる詳細が、以下に与えられる。
【0031】
送られてくるサービス要求200の要求ハンドラ205による検査が失敗した場合には、該要求は拒否される。そうではなく、すべてが許容された場合には、処理は、タスク処理208内における要求処理の個々のタスクの処理を続ける。
【0032】
タスク処理208は、2つのデータ構造を用いる。処理の根拠となる契約206、及び、要求処理の過程で個々の処理タスクによって作成されるデータ項目を蓄積する処理状態207である。図3で分かるように、処理状態207は、ItemSet(項目セット)と呼ばれる名前/値ペアの順序付きセットである。
【0033】
当初は、タスク処理208の処理状態207は、入力サービス要求200によって提供されたデータ項目のみからなる。タスク処理208は、契約206を用いて、サービス要求を処理するために実行されるべき一連のタスクを判断する。タスク処理208はまた、処理状態のどの部分が、サービス要求の処理を含む個々のタスクに送られるべきかを契約から判断する。次いで、契約の中にも定められるタスクの結果を用いて、処理状態を拡張し、次のタスクに使用できるようにする。タスク処理は、契約を読み込むのみであるが、処理状態207を読み込んで、修正する。契約が指定するすべてのタスクが指定された順序で処理されると、タスク処理208は終了する。
【0034】
すべてのタスクがタスク処理208によって処理された後、制御は、レスポンダ209に受け渡される。レスポンダは、主に、協力する当事者に送出される応答メッセージ210を生成する。応答は、処理状態から生成される。実際には、レスポンダ209は、タスク処理208と同様のものである。主な違いは、レスポンダ209によって実行されるタスクは、所定の意味体系を有するため、特殊なものであるということである。
【0035】
契約206は、電子的な形式でコンピュータ・プログラムが解釈し、実行することができる。保護計算環境202で実行される場合には、契約が電子的に実行されることによって、すべてのステップが指定された順序で処理されること、及び契約が提示する通りに情報が正確に流れることが保証される。
【0036】
保護計算環境202は、閉鎖されたコンピュータであるため、内部処理は外部から監視することができず、適切な許可なしでは、外部の誰も装置内部の計算又はデータを改変することはできない。こうした装置は、装置を開き、侵入し、又は探ろうとする試みを検出する。改ざんしようとするこれらの試みのいずれかが検出された場合には、保護計算環境は、内部に格納された機密データを破壊し、作動を完全に中止する。こうした保護計算環境の一例は、IBM4758プログラマブル暗号化コプロセッサである。
【0037】
保護計算環境202の保護機能は、コンピュータ・ネットワーク上の通信に拡張することができる。これは、2つの保護計算環境間のネットワーク通信に、標準的な暗号化技術を用いることによって達成することができる。このように保護された、チャネル204としても知られる通信セッションは、チャネルを通じて通信されるデータが攻撃者に読み取られないようにする。通信セッションはまた、攻撃者が、いつメッセージを改変し、自分自身のメッセージを挿入し、又は保護計算環境の1つになりすまそうとしたかを、検出することを可能にする。当然のことながら、ネットワークは信頼されておらず、すべての暗号化技術は、保護計算環境の内部に実装されなければならない。チャネルについてのさらなる詳細については、図5の記述を参照されたい。
【0038】
本発明で説明されるシステムが保護計算環境内に実装されない場合には、様々な攻撃者に対して極めて脆弱となることに注目する必要がある。具体的には、無保護環境では、要求200及び処理状態207が攻撃者からアクセス可能になるので、契約を電子的に実行しても、情報が指定されたタスクにのみ流れ、公開も改変もされないことが保証されない場合がある。
【0039】
図3aは、本発明の実施形態による契約の構造を統一モデリング言語(UML)のクラス図として示す。各々の契約(Contract)307は、その契約をシステム内の他のすべての契約と一意的に区別する契約ID(contractID)を有する。契約307は、サービス要求を満たすことに協力するであろう1つ又はそれ以上の当事者(当事者(parties))を指定する。個々の当事者を記述する当事者(Party)クラス301は、システム内の当事者の固有ID(id)と、サービス要求の処理に応答してサービスがメッセージを送信できるネットワーク・アクセス・ポイントとを含む。サービス・アクセス・ポイントは、例えば、インターネット・アドレス及びポート番号、又は、ユニフォーム・リソース・ロケータ(URL)によって定めることができる。当事者クラスは、当事者の名前を含むこともできる。一実施形態においては、当事者のこの最小定義は、要求の保護処理には必要ないが当事者間の付加的な関係を維持するために必要な場合がある番地(StreetAddress)などの属性によって、さらに増加する場合がある。
【0040】
契約307はさらに、処理されるべきサービス要求の到着である単一のアクション(トリガー(trigger))を指定する。要求到着(RequestArrival)クラス304のオブジェクトは、この契約によって定められ、制御される処理を起動する、送られてくる要求を記述する。
【0041】
契約307はさらにまた、要求の処理の間に実行されるゼロ又はそれ以上の処理ステップ(タスク(tasks))を指定する。タスクは、タスク(Task)オブジェクト305によって作成されるタスク仕様の順序付きリストとして与えられる。さらに契約は、要求の処理後にシステムが協力当事者に対して応答するのに用いるゼロ又はそれ以上の出力メッセージ(応答(responses))を指定する。応答は、応答仕様の順序付きリストとして与えられる。アクション(Action)302は、要求到着304と、タスク305と、応答(Response)306との共通のアブストラクションである。各々のアクションは、名前(名前(name))と、完了後に提供されるデータ項目(項目仕様セット(ItemSpecSet))の順序付きセットの仕様(出力仕様(outputSpec))とを有する。アクションは、単一の当事者(オーナー(owner))によって所有される。
【0042】
実施することができる多数のアクションが存在する。第1のタイプのアクションは、新たなサービス要求の到着、すなわち要求到着304である。この場合、オーナーは、この種の要求を送信することができる依頼者、すなわち当事者を定める。要求到着アクションの出力仕様は、要求内に存在するデータ項目を記述する。各々の要求は、この要求の処理を定め、制御する契約を一意的に特定するのに用いられる契約IDと呼ばれる少なくとも1つの必須項目を有する。
【0043】
第2のタイプのアクションは、機能(Function)303である。機能は、データ項目の順序付きセットを入力(入力仕様(inputSpec))として取得し、データ項目の順序付きセットを出力(outputSpec)として戻す。機能の実行は、ブール式(述部)によって制御される。ブール式は、特殊定数「真」及び「偽」と、ブール演算子「not」、「and」、及び「or」と、関係演算子<、<=、=、/=、>、>=と、任意定数と、図2に示される処理状態における項目名とから構成される式である。機能は、その述部が真を戻した場合のみ、実行される。
【0044】
タスク305は、協力する当事者(そのオーナー)の1つによって定められ、任意の機能を実行することができる機能である。実行されることになる機能は、タスクを実装するコードを参照することによって定められる。
【0045】
応答306は、タスクと同様のものであるが、応答が提供する機能は、事前に定められ、固定される。この機能は、協力当事者が変更することはできない。同様に、応答の出力仕様の項目数は1つに固定される。しかしながら、この戻りコードの名前は、自由に定めることができる。
【0046】
図3bは、本発明の実施形態による項目セット(ItemSet)及び項目仕様セットのUML仕様を示す。項目仕様セット311は、入力仕様及び出力仕様を定めるのに用いられる。項目仕様セットは、項目仕様(ItemSpec)312と呼ばれるデータ項目仕様の順序付きセットを定める。データ項目仕様は、その名前(name)によってデータ項目を特定する。項目(Item)クラス314によって定められるデータ項目は、名前/値のペアである。項目セット313は、データ項目の順序付きセットである。
【0047】
図4Aは、本発明の実施形態に係る、要求ハンドラ、タスク処理、及びレスポンダの処理のフローチャート図を示す。送られてくる要求は、図3で定められる項目セットとすることができる。サーバが新たなサービス要求を受信したときは、要求ハンドラはまず、ステップ400において、要求の要素である項目セットから必須項目の契約Idを取り出す。契約Id項目の値によって、ステップ401で、要求ハンドラが、送られてくるサービス要求の処理を制御する契約を取得することが可能になる。次にステップ402で、要求ハンドラは、この送信者からの要求を受け入れるかどうかを検査する。要求ハンドラは、この検査のために、契約のトリガーを所有する当事者を選択し、その当事者を、チャネルの他端に存在し、該チャネルを通じて要求を受信した当事者と比較する。両方の値が同一の当事者であることを示した場合には、要求がさらに処理されることが考慮され、そうでなければ、処理は、ステップ403においてエラー・ハンドラを用いて終了する。
【0048】
次の検査は、ステップ404において、要求が完全であるかどうか、すなわち、契約が必要とするすべての項目を該要求が提供するかどうかを判断するものである。この検査は、トリガーの出力仕様に定められたすべての名前が、要求の項目セットの中に正確に一度現れ、かつ、それらが定められた値を有することを肯定することによって実施される。項目が現れる順序は問題にはならない。要求が、トリガーの出力仕様に記述されない付加的な項目を有する場合は、エラーとはみなされない。次に続く処理ステップのいずれもこれらの項目にはアクセスできないので、該項目は、要求処理によって無視されるだけであり、損なわれることはない。エラーの場合には、要求処理は、ステップ403で終了する。
【0049】
両方の検査を通った場合には、要求ハンドラは、ステップ405において、タスク処理のために処理状態Sを初期化する。初期の処理状態は、トリガー出力仕様によって名前が指定された項目をそのまま含む。
【0050】
タスク処理は、ステップ410で始まる。契約の順序付きタスク・リストにはより多くのタスクが存在するが、タスク処理は、ステップ411において、順番に次のタスクTを選択する。
【0051】
ステップ412は、処理状態SにわたってTの述部を評価する。タスクの述部は、処理状態のすべての項目にアクセスすることができる。評価されている式は、すべての当事者に対して契約から明らかであるので、当事者は、所与の述部の評価について、処理状態の項目の特定の使用に関してすでに合意したことが明らかである。述部がfalseを与える場合には、タスクTは無視され、処理は、ステップ410において、タスクのリスト内の次のタスクを用いて続く。タスクの述部が真と評価された場合には、ステップ413が、新たな項目セットsを作る。処理は、タスクTの入力仕様の中に項目の名前を発見した場合には、処理状態Sの項目を新たな項目セットsに挿入する。
【0052】
ステップ414は、Tのタスク仕様からタスクの実装を判断し、次いで、唯一のパラメータとして新たな項目セットsを用いて該タスクの実装を呼び出す。この呼び出しの結果は、項目セットrである。ステップ415は、名前がタスクTの出力仕様に現れるすべての項目をrから取り出して、それらを処理状態Sに挿入する。ステップ415は、rからの新たな値を用いてSの既存値をオーバーライドすることはない。同一の名前を持つ項目が既に存在する場合には、その項目も同一の値を持つはずであり、そうでなければ、契約は正当なものではない。しかしながら、タスクの述部又はそれらの実装が、2つのアクティブにされたタスクが同一の項目名について異なる値を生成しないことを保証する場合には、幾つかのタスクは、その出力仕様に同一の項目仕様を指定することができる。
【0053】
タスクのすべてが処理されると、タスク処理ユニットは、制御をレスポンダに渡す。これは、ステップ420に示される。応答の処理は、タスク処理と同じ基本構造に従う。
【0054】
未処理の応答仕様が存在するが、レスポンダは順番にそれらを処理する。ステップ421及び422における応答の取り出し及び応答の述部の評価は、タスク処理のステップ411及び412における処理と同一であり、ステップ423は413と同様である。ステップ423において、処理状態Sと実際の応答Rの入力仕様とから新たな項目セットsを生成した後、ステップ424は、応答仕様の中にRの所有者として定められた当事者Pからネットワーク・アクセス・ポイントを取り出し、それを用いて、sを応答メッセージとしてPに送出する。
【0055】
各々の応答仕様についての出力仕様は、単一の要素を持つセットである。この要素の値は、ブール値であり、応答を当事者Pに配信するのに成功したかどうかを記述するものである。この項目の名前は、自由に定めることができる。項目は、処理状態Sに追加され、したがって、まだ処理されていない他の応答がアクセスすることができる。具体的には、このことによって、別の応答が成功したか失敗したかに応じて応答を送出するか、又は、他のメッセージに以前の応答の戻りコードを含ませることができる。すべての応答が処理されると、全要求処理は、ステップ426で無事に終了する。
【0056】
タスク及び応答の順次処理は、簡単であるという利点があるが、必ずしも極めて効率的な処理を可能にするとは限らない。一実施形態は、アクション間の依存関係を判断することを選択し、アクションの入力仕様に与えられたすべての項目が利用可能であるときには、独立のアクションを同時に実行する。
【0057】
図5は、本発明の実施形態に係る、ネットワークと保護されたデータベースとの統合を示す。保護計算環境506、ネットワーク・ハンドラ503、及び大容量ストレージ・ハンドラ505の1つ又はそれ以上と、同一のホスト・コンピュータ上の1つ又はそれ以上の保護されたローカル・データベース504との集合体は、サービス・セル又は単にセルとも呼ばれる。例えばIBM4758プログラマブル暗号化コプロセッサのような保護計算環境には、データベース又はネットワークに直接アクセスする方法がない場合がある。図5は、保護計算環境506内部のアプリケーション・コードが、安全にデータベース504及びネットワーク502にアクセスすることができる方法を示す。契約と、例えば警戒リストなどのすべてのデータ項目とがデータベース504に格納されるので、ネットワーク502に送信されるすべてのメッセージは、暗号化技術によって保護される。
【0058】
ホスト・コンピュータ501は、保護計算環境506、ネットワーク・ハンドラ503、大容量ストレージ・ハンドラ505、及びデータベース504のホストとなる。ネットワーク・ハンドラ503は、ホスト・コンピュータ501のオペレーティング・システムに対する呼び出しを用いて、ネットワーク502にアクセスし、保護計算環境内部から送られてくるネットワーク要求を処理する。大容量ストレージ・ハンドラ505は、SQLなどの標準的なデータベース・インターフェースを用いて、データベース504にアクセスし、保護計算環境内部から送られてくるデータベース要求を処理する。
【0059】
ネットワーク・ハンドラ503は、ネットワーク502との間でメッセージを送受信する。メッセージは、暗号化技術、すなわち、暗号化、認証、メッセージ要約、及びシーケンス番号を用いて保護される。これにより、監視者が、検出されずにメッセージの内容を解釈することも変更することもできないことが保証される。ネットワーク・ハンドラ503は、暗号化された入力メッセージをネットワーク502から受信し、それを保護計算環境506内部のチャネル・ハンドラ507に与える。チャネル・ハンドラ507は、暗号化チェックサムを検査し、シーケンス番号を取り外し、データを暗号解除する。ここで、保護計算環境506内部の契約エンジン508は、データに自由にアクセスすることができる。
【0060】
契約エンジン508がネットワークを通じてメッセージを送出しようとするときは、該契約エンジンは、該メッセージを暗号化してシーケンス番号及びメッセージ要約を追加するチャネル・ハンドラ507に、該メッセージを送信する。次いで、チャネル・ハンドラ507は、ホスト501上ではあるが保護計算環境506の外部にあるネットワーク・ハンドラ503に暗号化されたメッセージを送信し、該ネットワーク・ハンドラ503は、次に、該メッセージをネットワークに送信する。
【0061】
契約エンジン508がデータベース504にアクセスしようとする場合には、該契約エンジンは、チャネル・ハンドラ507に平文の要求を送信し、該チャネル・ハンドラは、要求内のデータを暗号化して、それをホスト501上ではあるが保護計算環境506の外部にある大容量ストレージ・ハンドラ505に送る。大容量ストレージ・ハンドラは、データベース504に直接アクセスし、該データベースからの結果をカード内部のチャネル・ハンドラ507に戻すことができ、そこで返答は暗号解除され、契約エンジンに戻される。
【0062】
最適化のために、契約エンジン508は、データベース504からのデータの一部を、保護計算環境506内部のキャッシュ510に格納することができる。これによって、チャネル・ハンドラ507と、大容量ストレージ・ハンドラ505と、データベース504とを通り、大容量ストレージ・ハンドラ505と、チャネル・ハンドラ507とを通って戻る、コストのかかる往復を避けることができる。
【0063】
図6は、本発明の実施形態に係る、個人が厳重に警戒リストと照合される用途のための契約例を示す。図6は、個人を犯罪者の警戒リストと照合するのに用いることができる契約601についての例を与えるものである。テーブルに与えられた情報は、図3AのUMLクラス図に定められた変数に対応する。この例では、契約識別番号602は「4711B5」であり、A、B、Cと名前が付けられた関与する当事者603は、申込者を審査しようとする空港603Aと、照合されることになる警戒リストを提供する政府機関603Bと、一致が見出されたときに通知されるべき法執行官庁603Cとである。
【0064】
テーブルの行には、契約に定められたアクションによって作成される個々のデータ項目が記載される。データ項目の各々のブロックについて、第1列には、データ項目を作成するアクションと、このアクションの所有者と、該アクションが実施される条件とが記述される。この列は、各々の処理ステップ及び応答について、どのデータ項目が入力として渡されるかを記述する。
【0065】
行604は、サービス要求を定める。欄605は、当事者Aのみが要求を送信できることを示す。行604の第2列の欄606は、どのデータ項目が要求の中に存在しなければならないかを示す。行607は、この契約の処理タスクを定める。この例では、3つの処理ステップ、すなわち、行608の「1:n照合」、行609の「バイオメトリック照合」、及び行610の「おとり生成」が存在する。行608の第2列の欄611は、タスク「1:n照合」の出力仕様のデータ項目を定める。行609及び610の第2列の欄は、これらのタスクについての単一のデータ項目のみを持つ出力仕様を定める。行612は、この契約の可能な4つの応答を定める。行612の第1列の欄は、応答の名前と、所有者と、述部とを、すなわち、応答がどのように呼ばれるか、応答がどの当事者に送信されるか、及び応答がどの条件の下で送信されるか、を定める。行612の第2列の欄は、応答の出力仕様の中の個々の戻り値を定める。
【0066】
列608は、タスク及び応答についての入力仕様を定める。各々のタスクについての列と、各々の応答についての列が存在する。欄の中のプラス記号(+)は、プラス記号が現れている行によって特定されるデータ項目が、列が属するタスク又は応答の入力仕様の一部であることを示す。行a、列bのスラッシュ(/)は、行aのデータ項目が、列bのタスク又は応答の入力仕様に属さないことを示す。空欄( )は、データ項目が未計算のため、該データ項目がこの入力仕様に含まれるべきか否かを決定する意味がないことを示す。
【0067】
この契約例は以下のように解釈される、すなわち、処理は、契約Idと、名と、姓と、誕生日と、指紋データと、場所と、トランザクション番号とを含む、当事者Aが送信する要求604によって起動される。
【0068】
最初の処理ステップは、XYZという名前の警戒リストとの1:n照合608である。この処理ステップは、当事者Bが所有し、無条件に(述部=真)実行される。「1:n照合」という名前の列は、+記号を用いて、この処理ステップついての入力、すなわち、名と、姓と、誕生日とを定める。列608には、出力、すなわち、照合が成功したかどうかを示す値と、名と、姓と、誕生日と、容疑者クラスと、ファイルからの指紋データと、前科に関する情報と、反応アドバイスとが定められる。
【0069】
次の処理ステップ609は、バイオメトリック照合を用いる。バイオメトリック照合は、当事者Cが所有し、1:n照合が成功した場合にのみ実行される。入力は、実際の指紋データ、及び1:n照合ステップからの指紋データである。出力は、これら2つの指紋の間の相関を示す値である。
【0070】
次に、おとり生成処理ステップ610は、1:n照合が成功しなかった場合に、おとりメッセージを生成する。
【0071】
契約は、行612において、当事者Cに対する3つの代替的な応答と、当事者Aに対する1つの応答と、当事者Bに対する無応答とを定める。すべての応答は、受信者が該応答を確認したか否かを示す単一の出力値を有する。応答1は、1:n照合が成功し、かつ、個人の容疑者クラスが<5の場合に、Cに送信される。この応答は、名と、姓と、誕生日と、場所と、バイオメトリック照合の出力とを含む。応答2は、1:n照合が成功し、かつ、容疑者クラスが>4の場合に、Cに送信される。この応答は、応答1と同じ欄に加えて、反応アドバイスを含む。応答3は、1:n照合が失敗した場合に送信される。この応答は、おとりメッセージのみを含み、検査対象の個人に関するデータは含まない。応答4は、当事者Aに送られる。この応答は、実際の要求と共に到着したトランザクション番号と、サービスが通知当事者Cにおいて成功したかどうかを示す値とを含む。
【0072】
図6から、前科に関する情報は、この契約の下では、いかなる当事者にも開示されないことが明らかである。1:n照合が失敗した場合には、個人に関する情報が送信されないことも明らかである。(おとりメッセージは、実データを含まず、単に、サービスと当事者Cとの間の通信を監視できる攻撃者から一致又は非一致の事実を隠すために送信される。)
【0073】
当事者がサービス要求の処理に協力することができるようになる前に、当事者はまず、この種の要求を処理するに当たって最初に定められ、合意された基本を定め、制御する契約に合意しなければならない。すべての当事者が合意した後にのみ、この契約に基づく処理がサーバ内でアクティブにされる。アクティブにされた契約のセットは、当事者によって動的に拡張されることがある。新たな契約を導入し、アクティブにすることによって、サービスは、新たな種類の要求の処理方法を学習する。
【0074】
契約は、データ構造、すなわち電子文書として表すことができる公式仕様と考えることができる。一実施形態においては、相互合意による契約は、すべての当事者が契約の電子署名付き複製をサーバにアップロードする方法でアクティブにされる。サーバが、すべての当事者からこうした署名付き複製を受信し、電子署名を検証し、すべての複製が実際に同一の契約を指定していることを確認した後、処理は自動的にアクティブにされる。
【0075】
同様に、電子的に提出された契約は、いつでも、又は契約の期限が切れたときに、取り消すこともできる。当事者がそのように合意した場合には、単一の当事者が契約を取り消すことができ、契約の期限が切れた場合には、システムは、この契約が司る要求を受け付けるのを中止する。
【0076】
依頼者が、同時に実行しようとする多数の契約を有する場合には、これらの契約をグループ化し、単一の要求に代えて実行することができる。幾つかの他の契約を束ねた契約は、複合契約と呼ばれる。複合契約の構造は、基本的な契約の構造と極めて類似する。違いは、複合契約は処理ステップ及び応答を定めるのではなく、組み合わされるべき契約のIDを列挙するのが好ましいことである。基本的な契約と同様に、複合契約もトリガーを有する。このトリガーの出力仕様は、この複合契約内で組み合わされるべき基本的な契約の出力仕様の結合を定める。契約エンジンは、受信した要求に関する副契約を呼び出すことによって、複合契約を処理する。
【0077】
例えば、スクリーニングの用途においては、これは、スクリーナが、エージェンシAからの警戒リストと照らし合わせて審査を行うための契約と、エージェンシBからの警戒リストと照らし合わせて審査を行うための別の契約とを有することを可能にする。組み合わされた契約は、システムに対する単一の要求に代えて、両方の検索を呼び出すことになる。他の複合契約は、さらに他の組み合わせとの照合を可能にすることができる。
【0078】
エントリー・ポイントで走査されたバイオメトリック情報は、要求内に入れて、データを処理し、該データを多数のデータベースと照合することができる1つ又はそれ以上のサーバに送信することができる。作業の流れは、審査対象の個人に関するデータをスクリーナに戻す代わりにアラームを法執行エージェンシに送信することを含めて、参加する当事者が全面的に判断する。
【0079】
提案された処理の実装の正確さに関する公式証明は、契約エンジンと、個々の処理ステップについてのコードとの検証を必要とする。このように構築されたすべてのシステムは同一の契約エンジンを用いるため、契約エンジンの検証は、1回限りのタスクである。個々の処理ステップについてのコードは、該コードがシステムに導入されるときに検証されなければならない。個々の処理ステップについてのコードは、異なる契約が再利用することができ、それが、全体の検証作業を最小にする。
【0080】
個々の処理ステップの名前のみを提供するのとは対照的に、個々の処理ステップのコードを契約の一部にすることによって、前述のシステムの動的な特徴をさらに向上させることができる。コードを安全にサービスにダウンロードすることを可能にする技術については、例えば、全体が引用によりここに組み入れられる(200年12月26日に付与されたSmithらの特許文献3)を参照されたい。処理ステップについてのコードを提供することによって、当事者がサービスの機能を動的に拡張することが可能になり、検証処理を局所的に行うことができる。
【0081】
図1を用いて、本発明の実施形態に係る、参加当事者間における作業の流れの具体例を示す。スクリーナ101が、サービス要求110を保護要求処理102に送信する。この要求の処理を司り、契約に基づいて一連の処理ステップを実行する要求処理102は、その契約を判断する。個々の処理ステップのアプリケーションは、処理状態のサブセットを入力として用いる。処理ステップの出力は、処理状態を拡張するのに用いられる。入出力の仕様は、契約内に定められる。処理の初期状態は、処理を起動させる要求からの情報で構成される。該当するすべての処理ステップが実行されたときには、処理状態を用いて、要求の処理に関わった当事者101、103、及び104’のための応答メッセージ111が生成される。どの当事者が通知を受け、該当事者に送信される応答にどんな情報が含まれるかもまた、契約に指定される。
【0082】
図7は、本発明の実施形態に係る可能な分散の一例を示す。本発明のサービスは、相互接続された幾つかのサービス・セルから構成される。1つのセルは、1つ又はそれ以上の保護計算環境と、ネットワーク・ハンドラと、大容量ストレージ・ハンドラと、1つ又はそれ以上の保護されたデータベースとを含むことができる。1つの物理的位置に多数のセルを導入することができるが、図7に示されるように、2つ以上の物理的位置が存在することになる。図7に示されるように、セル801〜806は、異なる場所に存在することができる。クライアントが、利用可能なセルのサブセットに接続されることがある。
【0083】
この構成によって、十分な量のリソースが可能になり、個々の誤作動に対する複合サービスの高度な耐障害性がもたらされる。さらに、この構成は、地理的及び/又は国家的(法律的)な問題に応じて、サービス及びデータを容易に分割することができるという効果がある。
【0084】
本発明は、より小規模なシナリオに実装することができるが、アーキテクチャは、世界規模のサービスに備えたものである。
【0085】
図8は、本発明の実施形態に係る、異なる保護範囲を示す。暗号化コプロセッサ907、910は、サービス内(908、909、911)だけでなく、クライアントA及びBに配置される。コプロセッサ907〜911は、保護ストレージ及び通信セグメント901〜906と共に物理的に配置され、それらすべては、セル外周920〜924の内部に配置される。
【0086】
したがって、すべての機密操作は、保護暗号化コプロセッサ907〜911内部に閉じ込められる。データベースの内容は常に暗号化され、保全性はメッセージ要約によって確保される。セル間の通信は、暗号化され、認証され、改変及びリプレイから保護される。最終的に、セル外周920〜924は、ファイアウォール及びシステムレベルのアクセス制御を用いて保護される。
【0087】
図9は、本発明の実施形態に係るスクリーニング・シナリオを示す。まず最初は、サーバ・セル1103に対するスクリーナ1101からのスクリーニング要求1110で始まる。セル1103は、ネットワーク・ハンドラ1106を通じて要求を受信し、処理のために該要求をコプロセッサ1108に伝える。スクリーニングに用いられるべき警戒リストがこのセル内で利用可能な場合には、コプロセッサ1108は、個人に関する情報についてデータベース1109に問い合わせを行う。次いで、コプロセッサは、ネットワーク・ハンドラを用いて、法執行1107に通知する。この通知は、どんな場合でも送信される。一致しなかった場合には、通知には、法執行においてアラームとして表示されないおとりが含まれる。法執行1107の確認通知が受信された後、スクリーナ1101は、自分の要求が処理されたことの通知を受ける。
【0088】
別のシナリオも同様である。この場合の主な違いは、警戒リストがスクリーナのクライアント・セル1103で局所的に利用できないことである。この場合には、このセルは、必要なテーブルを有するセル1105に要求を転送する。このセル1105も、法執行1107に通知し、転送された要求についての通知を返信し、該通知はスクリーナ1101に返信される。
【0089】
図10は、本発明による一実施形態の一般構造を示す。処理の大部分は図10に示されるコプロセッサ内部で実施されることになるが、PCIバス1210及びシリアル・ポートは、カードがその環境と通信を行う唯一の方法であるため、本発明の一部はホスト1204上に実装することができる。
【0090】
ホスト・アプリケーションは、ネットワーク・アクセス1224及び大容量ストレージ1226を提供しなければならない。ホスト・アプリケーションはまた、カード/ホスト通信のホスト部分1220を実装しなければならない。無保護ホスト1204は、ホスト/カード・インターフェース1220と、ネットワーク・ハンドラ1224と、大容量ストレージ・ハンドラ1226と、データベース1228とを含む。しかしながら、保護計算環境1202は、保護処理の主要部分を取り扱うために、コプロセッサ1206と、他のコプロセッサ1208とを含む。
【0091】
図11は、本発明の実施形態に係る機能モジュール図を示す。図11は、異なるインターフェース及び幾つかのセル1510、1510´などから構成される基本的な要素のアーキテクチャを示す。システムに対する要求は、ユーザ・インターフェースによって生成される。異なるクライアントに対して異なるインターフェースが存在する。サービス・プロバイダは、設定インターフェースSP Config1570と、サービスの請求を制御し、管理する請求インターフェース1571とを有する。スクリーニング当事者もまた、設定インターフェースSC Config1572と、スクリーニング要求を送信するグラフィカル・ユーザ・インターフェースSC GUIとを有する。スクリーニング当事者が、自動的に要求を生成することができるITシステムであるSC Backendをすでに保有している場合がある。この場合には、そのシステムをサービスに接続するために、統合コンポーネントSC BE Integrが必要である。情報プロバイダ当事者もまた、既存システムIP Backendをサービスに接続するために、種々のインターフェース1573、すなわち統合インターフェースIP BE Integrを必要とする。サービス設定のために、専用インターフェースIP Configが存在する。法執行もまた、設定インターフェースLE Config1574と、アラーム・メッセージが表示されるグラフィカル・ユーザ・インターフェースLE Notif.GUIとを有する。状況に応じて、アラーム・メッセージをLE Notif.GUIから法執行バックエンド・システムLE Backendに転送することもできる。
【0092】
各々のセル、すなわちセル1510及び他のセル1510´は、ホスト・アプリケーション1520と、1つ又はそれ以上のコプロセッサ(コプロセッサ1540、他のコプロセッサ)とで構成される。ホスト・アプリケーション1520は、インターフェースが接続されるネットワーク・ハンドラ1523を介して要求を受信する。ネットワーク・ハンドラ1523は、ホスト−カード通信コンポーネント1524を介して、このセル1510内のコプロセッサ1540、1540´の1つに要求を転送する。ホスト・アプリケーションのもう1つのコンポーネントは、ホスト−カード通信コンポーネント1524を介してコプロセッサ1540からデータベースの問い合わせを受信し、それをローカル又は遠隔データベース1521に配信するストレージ・ハンドラ1522である。コプロセッサ1540の内部では、ネットワーク・ハンドラ1523から送られてくる要求は、暗号化/暗号解除と認証とセッションとを実装し、平文の要求を要求ハンドラ1543に転送するネットワーク・チャネル・ハンドラ1541によって、処理される。要求ハンドラ1543は、要求の完全性及び正確性について検査し、次いで、該要求を専門のハンドラの1つに委任する。スクリーニング要求ハンドラ1546はスクリーニング要求を処理し、設定要求ハンドラ1545はサービス内部の制御構造の更新を可能にし、更新要求ハンドラ1544はスクリーニングに用いられる警戒リストの内容を変更することができ、セル間ハンドラ1550は要求を他のセル1510´に転送し、データを他のセルに配布するのに用いられる。セル間ハンドラ1550は、要求ハンドラ1543からネットワークの質に関するフィードバックを得て、ネットワークを通る最適経路に関して動的に学習するグローバル・セル・モデル1549によって制御される。大部分のハンドラは、設定ハンドラ1547によって提供される設定情報にアクセスし、かつ、ホスト上のデータベース1521にアクセスすることが必要であり、後者のアクセスは、次にデータベース・チャネル・ハンドラ1542を用いるバケット・ハンドラ1548によって提供される。データベース・チャネル・ハンドラ1542は、データベース1521との間を行き来するデータのすべての暗号化/暗号解除及び認証を取り扱う。
【0093】
図12A〜図12Cは、本発明の他の実施形態に係る、可能な異なる設計を示す。図12Aから図12Cまでは、単一のセルについての可能な異なる設計を示すものであり、図12Aは単層を、図12Bは2層を、図12Cは複製アプリケーション・サーバを備える2層を示す。単層の環境においては、セルは、ファイアウォール2011と、ホスト・アプリケーション・サーバ2010とを含むことになる。2層の場合には、ファイアウォール2011及び2021が用いられ、データベース・サーバ2040は、ホスト・アプリケーション・サーバ2020から分離される。図12Cに示される構成は、多数のホスト・アプリケーション・サーバ2020を含む。
【0094】
本発明の別の実施形態は、契約の動的な特徴を減少させることもできる。さらに極端な場合には、システムを、1つの契約か又は少数の異なる契約に完全に特化することができる。技術的には、これは、既知の契約を持つ契約エンジンの部分評価と、結果として得られるコードの最適化とによって行うことができる。これは、例えば、全体が引用によりここに組み入れられる(1997年7月22日に付与されたGafterの特許文献4)の手法を用いて行うことができる。結果は、契約が明示的なデータ・オブジェクトではなく、当事者間の合意の履行がプログラム・コードに組み込まれている静的実装と等価である。こうした実施形態においては、契約の取り消し、及び新たな契約の合意には、ソフトウェアの一部を再生成又は再実装し、再インストールし、サービスを再始動することが必要である。
【0095】
提示された実施例は、本発明についての多くの可能な使用方法を網羅するものではないことを理解すべきである。
前述の説明から、当業者であれば、本発明の本質的な特徴を容易に把握することができ、本発明の精神及び範囲から逸脱することなく、本発明を様々に変更及び修正して、様々な利用及び条件に適合させることができる。
本発明は、上述の唯一の実施形態に限定されるものではなく、あらゆる実施形態が添付の特許請求の範囲に包含されることを理解すべきである。
【図面の簡単な説明】
【0096】
【図1】本発明の実施形態に係る参加当事者間の概略的な作業の流れを示す。
【図2】本発明の実施形態による契約によって定められ、制御される保護データ処理のためのシステムの全体構造のブロック図を示す。
【図3A】本発明の実施形態による契約の構造を統一モデリング言語(UML)のクラス図として示す。
【図3B】本発明の実施形態による項目セット及び項目仕様セットのUML仕様を示す。
【図4A】本発明の実施形態に係る、要求ハンドラ、タスク処理、及びレスポンダの処理のフローチャート図を示す。
【図4B】本発明の実施形態に係る、提案から契約までの状態遷移図を示す。
【図4C】本発明の実施形態に係る、アップロードから仕様の取消しまでの状態遷移図を示す。
【図5】本発明の実施形態に係る、ネットワークと保護されたデータベースとの統合を示す。
【図6】本発明の実施形態に係る、個人が厳重に警戒リストと照合されるアプリケーションのための契約例を示す。
【図7】本発明の実施形態に係る可能な分散の一例を示す。
【図8】本発明の実施形態に係る、異なる保護範囲を示す。
【図9】本発明の実施形態に係るスクリーニング・シナリオを示す。
【図10】本発明による一実施形態の一般構造を示す。
【図11】本発明の実施形態に係る機能モジュール図を示す。
【図12A】本発明の他の実施形態に係る、可能な異なる設計を示す。
【図12B】本発明の他の実施形態に係る、可能な異なる設計を示す。
【図12C】本発明の他の実施形態に係る、可能な異なる設計を示す。
【技術分野】
【0001】
本発明は、機密データの保護処理のためのシステム及び方法に関する。より具体的には、本発明は、必ずしも相互に信頼するとは限らない当事者が、処理と自らのデータの使用とを制御することが必要なシステムに関する。
【背景技術】
【0002】
多くのITアプリケーションは、機密データ、すなわち、ITシステムが秘密又は機密を保持すべきデータの処理から構成される。こうしたアプリケーションの典型的な例は、飛行機搭乗前又は雇用前の、警戒リストとの対照による個人のスクリーニングである。こうしたスクリーニングは、氏名又は他の個人データの簡単なテキストベースの照合とすることが可能であり、特に、指紋の特徴点又は人間の顔の特徴などのバイオメトリクス(非特許文献1参照)を用いて、照合した個人の身元を確認するか、又は候補者の集合の中から個人を特定することができる。
【0003】
データをコンピュータ・ネットワークを通じて送信するか又はストレージ・メディアに格納する際に、データを暗号化し、保護するための暗号化技術が存在する(例えば、非特許文献2参照)。しかしながら、実際の処理ステップのためには、処理の間にコンピュータ・システムがデータを解釈し、変更し、新たなデータを得ることが可能になるように、データを自由に利用できなければならない。この処理の間、データは、処理環境に侵入してデータを探し出し、変更する攻撃者に対して脆弱である。ITシステムには、その処理環境に入る方法を発見した攻撃者からプログラム及びデータを保護する手段がない。
【0004】
ITシステムを侵入者から保護する1つの方法は、機密データの処理を保護計算環境に限定することである(2001年11月6日に付与されたSchneckらの特許文献1、及び、引用によりここに組み入れられる非特許文献3参照)。保護計算環境は、FIPS 140−1 Level 4妥当性検査を有するIBM 4758 暗号化コプロセッサのような汎用コンピュータ装置である(非特許文献4参照)。保護計算環境内の計算は、外部から監視することはできない。さらに、処理又は処理データを、保護計算環境の外部から悪意を持って変更することは不可能である。保護計算環境、内部で作動しているプログラム、又は内部で処理中のデータを改ざんしようとする試みは、該環境によって検出され、その後、該環境は、該環境内部に格納された機密データを破壊するか、又は該データに永久にアクセスできないようにする。
【0005】
保護計算環境は、外部からの攻撃に対する保護を与えることができるが、システムによって当事者の保護要求及びプライバシー要求が満たされることを、該システム自体が保証することはできない。当事者は、自らのデータが予定通りの方法で処理されるアプリケーションのプロバイダを信頼しなければならない。当事者はサービスを制御できないため、このことに対する技術的な保証は存在しない。
【0006】
当事者は、自らが処理とデータの使用とを制御できない場合、すなわち完全に信頼に頼らなければならない場合には、データ処理タスクに参加しようとしないことが多い。
【0007】
既存のシステムは、関与する当事者にサービスを制御させないようにするか、又は、単に当事者の数を1つに減らして問題を回避する。例えば、幾つかの航空会社は、規則に従わない乗客のデータベースを持ち、乗客をこのデータと照合することがある。この場合、必然的に自らを信頼する航空会社は、全ての役割、すなわち、サービス・プロバイダ、情報プロバイダ、スクリーナ、及び通知された当事者のすべての役割を担当する。他のデータベースの例として、法執行エージェンシ(非特許文献5参照)又は信用履歴検査がある。これらのアプリケーションは、サービス・プロバイダでもあるインフォメーション・プロバイダによって完全に制御される。スクリーナである当事者には、該スクリーナが提供する情報をサービス・プロバイダがさらにどのように用いるかを制御する方法がない。同様の例は、乗客をその乗客のID文書の写真と照合する、空港での顔認識アプリケーションである。このアプリケーションは、サービス・プロバイダでもあるスクリーナによって完全に制御される。
【0008】
例えば2001年のスーパーボール又は幾つかの空港で用いられる顔認識システムのような既存の監視システム(非特許文献6参照)は、大部分が閉回路システムである。これらのシステムは、バイオメトリック・データを、ローカル・データベース、又は個人が所持するスマート・カードに格納された情報と比較する問い合わせに対して、直接応答を返す。したがって、対話中の異なる当事者が用いることが可能な、より一般的なサービスについての必要性が存在する。
【0009】
サーバに対して認められる一連の要求を契約が定めるコンピュータ・プログラムを用いて、可能な対話パターンを定めるために、Asit Dan及びFrancis Nicholas Parrに対して2000年11月4日に付与され、全体が引用によりここに組み入れられる特許文献2に記載されるような他のシステムが用いられてきた。これらのシステムでは、サービス・プロバイダは、サービス契約を決定する。この契約は、有効な別の要求Bが要求Aに先行することを必要とする。当事者は、こうした種類の契約を用いて処理とデータの使用とを制御することができない。
【0010】
多くの既存システムは、保護計算環境では実行されない。この場合、処理にアクセスする攻撃者は、自由にその処理を監視し、影響を及ぼすことができる。このように、当事者が処理ステップ及びデータの取扱いについて合意したとしても、こうした無保護環境において処理が該当事者のセキュリティ要件を満たすことを保証する技術的な方法は存在しない。
【0011】
ウェブ・サービスに構築された既存システム(非特許文献7)は、どのサービス・プロバイダを選択するかをクライアントに制御させるが、サービスの機能自体は制御させない。
【0012】
例えば、(非特許文献8)に記載されるようなサービス・レベル合意又はサービス合意の質などの明示的な契約を用いる既存のシステムは、リソース消費又は所要時間などの、サービスの非機能的な特徴に対応するのみである。こうした手法は、当事者にサービスの機能を制御させない。
【0013】
【特許文献1】米国特許第6,314,409号明細書
【特許文献2】米国特許第6,148,290号明細書
【特許文献3】米国特許第6,167,521号明細書
【特許文献4】米国特許第5,650,948号明細書
【非特許文献1】Anli Jain、Lin Hong、及びSharath Pankanti、「Biometric identification」、Communications of the ACM、43(2)、90−98ページ、ACM Press、2000年
【非特許文献2】Bruce Schneier、「Applied Cryptography」、John Wiley&Sons、1996年
【非特許文献3】Sean W. Smith及びDave Safford、「Practical Private Information Retrieval with Secure Coprocessor」、IBM Research Report、RC21806、2000年7月
【非特許文献4】http://www.ibm.com/security/cryptocards
【非特許文献5】James X.Dempsey、「Overview of current criminal justice information systems」、Proceedings of the 10th Conference on Computers,Freedom and Privacy、Toront、101〜106ページ、ACM Press、2000年
【非特許文献6】Scholz及びJohnson、「Interacting with identification Technology:Can it make us more secure?」、Conference on Human Factors in Computer Systems、Minneapolis、564〜656ページ、ACM Press、2002年
【非特許文献7】Vadim Draluk、「Discovering Web Services:An Overview」、Proceedings of the Twenty−seventh International Conference on Very Large Data Bases、Roma、Italy、637ページ、Morgan Kaufmann、2000年
【非特許文献8】Dinesh Verma、Mandis Beigi、及びRaymond Jennings、「Policy Based SLA Management in Enterprise Networks」、Lecture Notes in Computer Science、1995巻、137〜152ページ、Springer−Verlag、2001年
【発明の開示】
【発明が解決しようとする課題】
【0014】
本発明は、必ずしも相互に信頼するとは限らない多数当事者が機密データの処理に参加することを可能にする。当事者間の関係は、処理システムが自動的に履行することができる契約によって保護される。契約は、要求が処理される方法と、この処理において個々の当事者によって提供される情報が用いられ、開示される方法とを定める。処理は、誰も該処理を監視することも改ざんすることもできないことを保証する保護計算環境で実行されることが好ましい。
【課題を解決するための手段】
【0015】
本発明の一実施形態においては、契約がシステムに実装される前に、すべての当事者が該契約に合意することができる。このようにして、機密データの処理のためにサービスを用いる当事者は、その処理とそのデータの使用とを完全に制御することができる。
【0016】
本発明の別の実施形態においては、依頼者が、処理要求をサーバに送信することによってデータ処理を起動する。処理自体は、監視することも外部から改ざんすることもできない。処理の最後に、サービスは、依頼者を含むこともある、直接的又は間接的に要求の処理に関わった幾つかの又はすべての当事者に、応答メッセージを送信する。
【0017】
本発明のさらに別の実施形態においては、サービス要求の処理は、要求の処理の間に行われることになるアクションと、これらのアクション間における情報の流れ方とを指定する契約によって定められる。サービス要求の処理に協力する当事者は、システムが契約を実行する前に、該契約に相互に合意しなければならない。
【0018】
本発明のさらに別の実施形態においては、要求の処理に協力する当事者は、要求の処理の間に計算されるデータ項目の所有者である。データ項目の所有者は、どの処理ステップに、又は他の当事者のどれに、データ項目を開示しようとするかを正確に制御することができる。
【0019】
本発明の他の特徴及び利点は、添付図面と併せて解釈され、本発明の原理の明細並びに例を与える以下の詳細な説明から、明らかになるであろう。
【発明を実施するための最良の形態】
【0020】
本発明は、機密データの保護処理のための方法を以下のように定めるものである、すなわち、
a)機密データの処理に協力する当事者は、まず、処理を構成する機能ステップと、個々の処理ステップで用いられるべきデータ項目とについて合意する関係を構築する。
b)当事者は、契約に明示された、処理とデータの使用とについての公式仕様に合意する。契約は、他の情報の中から、処理の中の個々の処理ステップと、個々の処理ステップに対する入力として用いられるべきデータ項目と、処理ステップが処理状態に与える出力とを定める。
c)サービスは、契約についてのインタプリタである。契約は、システムが該契約によって定められた機能を正確に実行し、意図した通りにのみデータ項目を用いることを保証する。特に、このことは、用いられる処理及びデータ項目が、外部から監視又は改ざんできないことを意味する。
【0021】
スクリーニング・シナリオの場合には、関与する当事者は、スクリーニング・サービスを行うサービス・プロバイダと、個人を検査しようとするスクリーナと、警戒リスト・データを提供する幾つかの情報プロバイダと、審査対象の個人が警戒リスト上に発見された場合に情報を与えられるべき、法執行、空港警備、又は人的資源などの他の当事者とになるであろう。
【0022】
情報プロバイダは警戒リスト・データを機密扱いしようとし、すなわち、該プロバイダは、該データをスクリーニングに用いることは認めるが、該リスト上の情報はシステムの外に漏らすことはない。スクリーナは、審査対象の個人が警戒リストに現れない限り、該審査対象の個人についての基本的なプライバシーを保証しようとする。特に、スクリーナは、情報プロバイダがスクリーニング要求に基づいて任意の個人を追跡することを不可能にしようとする。スクリーナ及び情報プロバイダは、一致した場合のみ法執行に通知しようとし、他の場合には、情報を漏らすことはない。いずれの当事者も、サービス・プロバイダ又は侵入者に情報を漏洩しないようにすべきである。
【0023】
図1は、本発明の実施形態に係る参加当事者間の概略的な作業の流れを示す。一般に、すべての処理は、以下のスキームによって表される。区別された当事者である依頼者101が、サービス要求110を保護要求処理102に送信する。この要求の処理を司り、契約に基づいて一連の処理ステップを実行する要求処理102は、その契約を判断する。要求処理102は、サービス契約に基づいてデータを当事者103から受信する。個々の処理ステップのアプリケーションは、処理状態のサブセットを入力として用いる。処理ステップの出力は、処理状態を拡張するのに用いられる。入出力の仕様は、契約内に定められる。処理の初期状態は、処理を起動させる要求からの情報で構成される。該当するすべての処理ステップが実行されると、要求処理102は、要求の処理に関わった当事者101、103、及び104のための応答メッセージ111を生成する。当事者のためのメッセージの内容が、契約内に指定される。
【0024】
各々の要求は、異なる依頼者を有することがある。例えば、要求110が図1で処理された後、当事者103は、依頼者の役割を引き受け、自分のサービス要求112を送信することができる。異なる種類のサービス要求が異なる契約を呼び出し、該契約が次に、異なるサービス機能をクライアントに提供する。
【0025】
典型的なアプリケーションにおいては、情報プロバイダ103が、時折、サービス要求112を送信して、サービスに提供する情報を更新することになる。この種の要求を制御する契約は、情報プロバイダからの要求内のデータをどのように用いてサービス内部の情報を変えるかを指定する。他のサービス要求は、その後、更新済みの情報を用いて処理される。
【0026】
システムは、異なる当事者が異なる契約に基づいて同時に対話することを可能にする。例えば、スクリーニングの用途においては、多数の異なるスクリーナである当事者と、多数の異なる情報プロバイダと、多数の異なる法執行エージェンシが存在することになる。システムに送信された各々の要求は、指定された契約に基づいて処理を呼び出す。契約は、どの当事者がこの要求の処理に同時使用されるかを判断する。便宜上、以下にさらに示される複合契約も定められる。
【0027】
処理は契約によって制御され、参加する当事者は契約を制御するので、参加する当事者は、処理と自分のデータが用いられる方法とを完全に制御することになる。保護計算環境において契約を実行することにより、情報が漏洩せず、誰もデータの処理を改ざんできないことが保証される。
【0028】
図2は、本発明の実施形態による契約によって定められ、制御される保護データ処理のためのシステムの全体構造のブロック図を示す。一般に、処理は、サーバ201がネットワーク接続204を通じてサービス要求200を受信したときに開始される。要求200は、要求ハンドラ205と、タスク処理208と、レスポンダ209とから構成される契約エンジン203によって処理される。3つの要素のすべては、処理状態207と連動し、契約206によって制御される。
【0029】
要求ハンドラ205は、まず、送られてくる要求が有効で、処理に受け入れられるかどうかを検査する。要求ハンドラは、要求の内容と該要求を送信した当事者とを、この特定のサービス要求の処理を定め、制御する契約206に定められた情報と照合することによって、この検査を行う。
【0030】
本発明によって説明されるシステムでは、サービス要求の処理は、契約206によって制御される。契約(図6を見よ)は、サービス要求の処理に協力するすべての当事者によって相互に合意される公式仕様である。契約は、サーバが要求を処理する方法と、この処理の際に情報が個々の処理ステップ間で開示され、集約される方法とを正確に定め、制御する。
契約は、
a)要求の処理に協力する当事者、
b)要求メッセージ内に与えられるデータ項目、
c)要求の処理の間に実行されなければならない個々のアクション、
d)アクションを実行した結果として生成されるデータ項目、及び、これらのデータ項目の所有権、
e)個々のアクションのアプリケーションを制御する作業の流れ、
f)データ項目の所有者がどの処理ステップを開示しようとし、どの処理ステップを開示しようとしないかを正確に制御することを可能にする、個々のアクション間の制御されたデータの流れ、
を指定する。
公式データ・モデル、及び契約に関するさらなる詳細が、以下に与えられる。
【0031】
送られてくるサービス要求200の要求ハンドラ205による検査が失敗した場合には、該要求は拒否される。そうではなく、すべてが許容された場合には、処理は、タスク処理208内における要求処理の個々のタスクの処理を続ける。
【0032】
タスク処理208は、2つのデータ構造を用いる。処理の根拠となる契約206、及び、要求処理の過程で個々の処理タスクによって作成されるデータ項目を蓄積する処理状態207である。図3で分かるように、処理状態207は、ItemSet(項目セット)と呼ばれる名前/値ペアの順序付きセットである。
【0033】
当初は、タスク処理208の処理状態207は、入力サービス要求200によって提供されたデータ項目のみからなる。タスク処理208は、契約206を用いて、サービス要求を処理するために実行されるべき一連のタスクを判断する。タスク処理208はまた、処理状態のどの部分が、サービス要求の処理を含む個々のタスクに送られるべきかを契約から判断する。次いで、契約の中にも定められるタスクの結果を用いて、処理状態を拡張し、次のタスクに使用できるようにする。タスク処理は、契約を読み込むのみであるが、処理状態207を読み込んで、修正する。契約が指定するすべてのタスクが指定された順序で処理されると、タスク処理208は終了する。
【0034】
すべてのタスクがタスク処理208によって処理された後、制御は、レスポンダ209に受け渡される。レスポンダは、主に、協力する当事者に送出される応答メッセージ210を生成する。応答は、処理状態から生成される。実際には、レスポンダ209は、タスク処理208と同様のものである。主な違いは、レスポンダ209によって実行されるタスクは、所定の意味体系を有するため、特殊なものであるということである。
【0035】
契約206は、電子的な形式でコンピュータ・プログラムが解釈し、実行することができる。保護計算環境202で実行される場合には、契約が電子的に実行されることによって、すべてのステップが指定された順序で処理されること、及び契約が提示する通りに情報が正確に流れることが保証される。
【0036】
保護計算環境202は、閉鎖されたコンピュータであるため、内部処理は外部から監視することができず、適切な許可なしでは、外部の誰も装置内部の計算又はデータを改変することはできない。こうした装置は、装置を開き、侵入し、又は探ろうとする試みを検出する。改ざんしようとするこれらの試みのいずれかが検出された場合には、保護計算環境は、内部に格納された機密データを破壊し、作動を完全に中止する。こうした保護計算環境の一例は、IBM4758プログラマブル暗号化コプロセッサである。
【0037】
保護計算環境202の保護機能は、コンピュータ・ネットワーク上の通信に拡張することができる。これは、2つの保護計算環境間のネットワーク通信に、標準的な暗号化技術を用いることによって達成することができる。このように保護された、チャネル204としても知られる通信セッションは、チャネルを通じて通信されるデータが攻撃者に読み取られないようにする。通信セッションはまた、攻撃者が、いつメッセージを改変し、自分自身のメッセージを挿入し、又は保護計算環境の1つになりすまそうとしたかを、検出することを可能にする。当然のことながら、ネットワークは信頼されておらず、すべての暗号化技術は、保護計算環境の内部に実装されなければならない。チャネルについてのさらなる詳細については、図5の記述を参照されたい。
【0038】
本発明で説明されるシステムが保護計算環境内に実装されない場合には、様々な攻撃者に対して極めて脆弱となることに注目する必要がある。具体的には、無保護環境では、要求200及び処理状態207が攻撃者からアクセス可能になるので、契約を電子的に実行しても、情報が指定されたタスクにのみ流れ、公開も改変もされないことが保証されない場合がある。
【0039】
図3aは、本発明の実施形態による契約の構造を統一モデリング言語(UML)のクラス図として示す。各々の契約(Contract)307は、その契約をシステム内の他のすべての契約と一意的に区別する契約ID(contractID)を有する。契約307は、サービス要求を満たすことに協力するであろう1つ又はそれ以上の当事者(当事者(parties))を指定する。個々の当事者を記述する当事者(Party)クラス301は、システム内の当事者の固有ID(id)と、サービス要求の処理に応答してサービスがメッセージを送信できるネットワーク・アクセス・ポイントとを含む。サービス・アクセス・ポイントは、例えば、インターネット・アドレス及びポート番号、又は、ユニフォーム・リソース・ロケータ(URL)によって定めることができる。当事者クラスは、当事者の名前を含むこともできる。一実施形態においては、当事者のこの最小定義は、要求の保護処理には必要ないが当事者間の付加的な関係を維持するために必要な場合がある番地(StreetAddress)などの属性によって、さらに増加する場合がある。
【0040】
契約307はさらに、処理されるべきサービス要求の到着である単一のアクション(トリガー(trigger))を指定する。要求到着(RequestArrival)クラス304のオブジェクトは、この契約によって定められ、制御される処理を起動する、送られてくる要求を記述する。
【0041】
契約307はさらにまた、要求の処理の間に実行されるゼロ又はそれ以上の処理ステップ(タスク(tasks))を指定する。タスクは、タスク(Task)オブジェクト305によって作成されるタスク仕様の順序付きリストとして与えられる。さらに契約は、要求の処理後にシステムが協力当事者に対して応答するのに用いるゼロ又はそれ以上の出力メッセージ(応答(responses))を指定する。応答は、応答仕様の順序付きリストとして与えられる。アクション(Action)302は、要求到着304と、タスク305と、応答(Response)306との共通のアブストラクションである。各々のアクションは、名前(名前(name))と、完了後に提供されるデータ項目(項目仕様セット(ItemSpecSet))の順序付きセットの仕様(出力仕様(outputSpec))とを有する。アクションは、単一の当事者(オーナー(owner))によって所有される。
【0042】
実施することができる多数のアクションが存在する。第1のタイプのアクションは、新たなサービス要求の到着、すなわち要求到着304である。この場合、オーナーは、この種の要求を送信することができる依頼者、すなわち当事者を定める。要求到着アクションの出力仕様は、要求内に存在するデータ項目を記述する。各々の要求は、この要求の処理を定め、制御する契約を一意的に特定するのに用いられる契約IDと呼ばれる少なくとも1つの必須項目を有する。
【0043】
第2のタイプのアクションは、機能(Function)303である。機能は、データ項目の順序付きセットを入力(入力仕様(inputSpec))として取得し、データ項目の順序付きセットを出力(outputSpec)として戻す。機能の実行は、ブール式(述部)によって制御される。ブール式は、特殊定数「真」及び「偽」と、ブール演算子「not」、「and」、及び「or」と、関係演算子<、<=、=、/=、>、>=と、任意定数と、図2に示される処理状態における項目名とから構成される式である。機能は、その述部が真を戻した場合のみ、実行される。
【0044】
タスク305は、協力する当事者(そのオーナー)の1つによって定められ、任意の機能を実行することができる機能である。実行されることになる機能は、タスクを実装するコードを参照することによって定められる。
【0045】
応答306は、タスクと同様のものであるが、応答が提供する機能は、事前に定められ、固定される。この機能は、協力当事者が変更することはできない。同様に、応答の出力仕様の項目数は1つに固定される。しかしながら、この戻りコードの名前は、自由に定めることができる。
【0046】
図3bは、本発明の実施形態による項目セット(ItemSet)及び項目仕様セットのUML仕様を示す。項目仕様セット311は、入力仕様及び出力仕様を定めるのに用いられる。項目仕様セットは、項目仕様(ItemSpec)312と呼ばれるデータ項目仕様の順序付きセットを定める。データ項目仕様は、その名前(name)によってデータ項目を特定する。項目(Item)クラス314によって定められるデータ項目は、名前/値のペアである。項目セット313は、データ項目の順序付きセットである。
【0047】
図4Aは、本発明の実施形態に係る、要求ハンドラ、タスク処理、及びレスポンダの処理のフローチャート図を示す。送られてくる要求は、図3で定められる項目セットとすることができる。サーバが新たなサービス要求を受信したときは、要求ハンドラはまず、ステップ400において、要求の要素である項目セットから必須項目の契約Idを取り出す。契約Id項目の値によって、ステップ401で、要求ハンドラが、送られてくるサービス要求の処理を制御する契約を取得することが可能になる。次にステップ402で、要求ハンドラは、この送信者からの要求を受け入れるかどうかを検査する。要求ハンドラは、この検査のために、契約のトリガーを所有する当事者を選択し、その当事者を、チャネルの他端に存在し、該チャネルを通じて要求を受信した当事者と比較する。両方の値が同一の当事者であることを示した場合には、要求がさらに処理されることが考慮され、そうでなければ、処理は、ステップ403においてエラー・ハンドラを用いて終了する。
【0048】
次の検査は、ステップ404において、要求が完全であるかどうか、すなわち、契約が必要とするすべての項目を該要求が提供するかどうかを判断するものである。この検査は、トリガーの出力仕様に定められたすべての名前が、要求の項目セットの中に正確に一度現れ、かつ、それらが定められた値を有することを肯定することによって実施される。項目が現れる順序は問題にはならない。要求が、トリガーの出力仕様に記述されない付加的な項目を有する場合は、エラーとはみなされない。次に続く処理ステップのいずれもこれらの項目にはアクセスできないので、該項目は、要求処理によって無視されるだけであり、損なわれることはない。エラーの場合には、要求処理は、ステップ403で終了する。
【0049】
両方の検査を通った場合には、要求ハンドラは、ステップ405において、タスク処理のために処理状態Sを初期化する。初期の処理状態は、トリガー出力仕様によって名前が指定された項目をそのまま含む。
【0050】
タスク処理は、ステップ410で始まる。契約の順序付きタスク・リストにはより多くのタスクが存在するが、タスク処理は、ステップ411において、順番に次のタスクTを選択する。
【0051】
ステップ412は、処理状態SにわたってTの述部を評価する。タスクの述部は、処理状態のすべての項目にアクセスすることができる。評価されている式は、すべての当事者に対して契約から明らかであるので、当事者は、所与の述部の評価について、処理状態の項目の特定の使用に関してすでに合意したことが明らかである。述部がfalseを与える場合には、タスクTは無視され、処理は、ステップ410において、タスクのリスト内の次のタスクを用いて続く。タスクの述部が真と評価された場合には、ステップ413が、新たな項目セットsを作る。処理は、タスクTの入力仕様の中に項目の名前を発見した場合には、処理状態Sの項目を新たな項目セットsに挿入する。
【0052】
ステップ414は、Tのタスク仕様からタスクの実装を判断し、次いで、唯一のパラメータとして新たな項目セットsを用いて該タスクの実装を呼び出す。この呼び出しの結果は、項目セットrである。ステップ415は、名前がタスクTの出力仕様に現れるすべての項目をrから取り出して、それらを処理状態Sに挿入する。ステップ415は、rからの新たな値を用いてSの既存値をオーバーライドすることはない。同一の名前を持つ項目が既に存在する場合には、その項目も同一の値を持つはずであり、そうでなければ、契約は正当なものではない。しかしながら、タスクの述部又はそれらの実装が、2つのアクティブにされたタスクが同一の項目名について異なる値を生成しないことを保証する場合には、幾つかのタスクは、その出力仕様に同一の項目仕様を指定することができる。
【0053】
タスクのすべてが処理されると、タスク処理ユニットは、制御をレスポンダに渡す。これは、ステップ420に示される。応答の処理は、タスク処理と同じ基本構造に従う。
【0054】
未処理の応答仕様が存在するが、レスポンダは順番にそれらを処理する。ステップ421及び422における応答の取り出し及び応答の述部の評価は、タスク処理のステップ411及び412における処理と同一であり、ステップ423は413と同様である。ステップ423において、処理状態Sと実際の応答Rの入力仕様とから新たな項目セットsを生成した後、ステップ424は、応答仕様の中にRの所有者として定められた当事者Pからネットワーク・アクセス・ポイントを取り出し、それを用いて、sを応答メッセージとしてPに送出する。
【0055】
各々の応答仕様についての出力仕様は、単一の要素を持つセットである。この要素の値は、ブール値であり、応答を当事者Pに配信するのに成功したかどうかを記述するものである。この項目の名前は、自由に定めることができる。項目は、処理状態Sに追加され、したがって、まだ処理されていない他の応答がアクセスすることができる。具体的には、このことによって、別の応答が成功したか失敗したかに応じて応答を送出するか、又は、他のメッセージに以前の応答の戻りコードを含ませることができる。すべての応答が処理されると、全要求処理は、ステップ426で無事に終了する。
【0056】
タスク及び応答の順次処理は、簡単であるという利点があるが、必ずしも極めて効率的な処理を可能にするとは限らない。一実施形態は、アクション間の依存関係を判断することを選択し、アクションの入力仕様に与えられたすべての項目が利用可能であるときには、独立のアクションを同時に実行する。
【0057】
図5は、本発明の実施形態に係る、ネットワークと保護されたデータベースとの統合を示す。保護計算環境506、ネットワーク・ハンドラ503、及び大容量ストレージ・ハンドラ505の1つ又はそれ以上と、同一のホスト・コンピュータ上の1つ又はそれ以上の保護されたローカル・データベース504との集合体は、サービス・セル又は単にセルとも呼ばれる。例えばIBM4758プログラマブル暗号化コプロセッサのような保護計算環境には、データベース又はネットワークに直接アクセスする方法がない場合がある。図5は、保護計算環境506内部のアプリケーション・コードが、安全にデータベース504及びネットワーク502にアクセスすることができる方法を示す。契約と、例えば警戒リストなどのすべてのデータ項目とがデータベース504に格納されるので、ネットワーク502に送信されるすべてのメッセージは、暗号化技術によって保護される。
【0058】
ホスト・コンピュータ501は、保護計算環境506、ネットワーク・ハンドラ503、大容量ストレージ・ハンドラ505、及びデータベース504のホストとなる。ネットワーク・ハンドラ503は、ホスト・コンピュータ501のオペレーティング・システムに対する呼び出しを用いて、ネットワーク502にアクセスし、保護計算環境内部から送られてくるネットワーク要求を処理する。大容量ストレージ・ハンドラ505は、SQLなどの標準的なデータベース・インターフェースを用いて、データベース504にアクセスし、保護計算環境内部から送られてくるデータベース要求を処理する。
【0059】
ネットワーク・ハンドラ503は、ネットワーク502との間でメッセージを送受信する。メッセージは、暗号化技術、すなわち、暗号化、認証、メッセージ要約、及びシーケンス番号を用いて保護される。これにより、監視者が、検出されずにメッセージの内容を解釈することも変更することもできないことが保証される。ネットワーク・ハンドラ503は、暗号化された入力メッセージをネットワーク502から受信し、それを保護計算環境506内部のチャネル・ハンドラ507に与える。チャネル・ハンドラ507は、暗号化チェックサムを検査し、シーケンス番号を取り外し、データを暗号解除する。ここで、保護計算環境506内部の契約エンジン508は、データに自由にアクセスすることができる。
【0060】
契約エンジン508がネットワークを通じてメッセージを送出しようとするときは、該契約エンジンは、該メッセージを暗号化してシーケンス番号及びメッセージ要約を追加するチャネル・ハンドラ507に、該メッセージを送信する。次いで、チャネル・ハンドラ507は、ホスト501上ではあるが保護計算環境506の外部にあるネットワーク・ハンドラ503に暗号化されたメッセージを送信し、該ネットワーク・ハンドラ503は、次に、該メッセージをネットワークに送信する。
【0061】
契約エンジン508がデータベース504にアクセスしようとする場合には、該契約エンジンは、チャネル・ハンドラ507に平文の要求を送信し、該チャネル・ハンドラは、要求内のデータを暗号化して、それをホスト501上ではあるが保護計算環境506の外部にある大容量ストレージ・ハンドラ505に送る。大容量ストレージ・ハンドラは、データベース504に直接アクセスし、該データベースからの結果をカード内部のチャネル・ハンドラ507に戻すことができ、そこで返答は暗号解除され、契約エンジンに戻される。
【0062】
最適化のために、契約エンジン508は、データベース504からのデータの一部を、保護計算環境506内部のキャッシュ510に格納することができる。これによって、チャネル・ハンドラ507と、大容量ストレージ・ハンドラ505と、データベース504とを通り、大容量ストレージ・ハンドラ505と、チャネル・ハンドラ507とを通って戻る、コストのかかる往復を避けることができる。
【0063】
図6は、本発明の実施形態に係る、個人が厳重に警戒リストと照合される用途のための契約例を示す。図6は、個人を犯罪者の警戒リストと照合するのに用いることができる契約601についての例を与えるものである。テーブルに与えられた情報は、図3AのUMLクラス図に定められた変数に対応する。この例では、契約識別番号602は「4711B5」であり、A、B、Cと名前が付けられた関与する当事者603は、申込者を審査しようとする空港603Aと、照合されることになる警戒リストを提供する政府機関603Bと、一致が見出されたときに通知されるべき法執行官庁603Cとである。
【0064】
テーブルの行には、契約に定められたアクションによって作成される個々のデータ項目が記載される。データ項目の各々のブロックについて、第1列には、データ項目を作成するアクションと、このアクションの所有者と、該アクションが実施される条件とが記述される。この列は、各々の処理ステップ及び応答について、どのデータ項目が入力として渡されるかを記述する。
【0065】
行604は、サービス要求を定める。欄605は、当事者Aのみが要求を送信できることを示す。行604の第2列の欄606は、どのデータ項目が要求の中に存在しなければならないかを示す。行607は、この契約の処理タスクを定める。この例では、3つの処理ステップ、すなわち、行608の「1:n照合」、行609の「バイオメトリック照合」、及び行610の「おとり生成」が存在する。行608の第2列の欄611は、タスク「1:n照合」の出力仕様のデータ項目を定める。行609及び610の第2列の欄は、これらのタスクについての単一のデータ項目のみを持つ出力仕様を定める。行612は、この契約の可能な4つの応答を定める。行612の第1列の欄は、応答の名前と、所有者と、述部とを、すなわち、応答がどのように呼ばれるか、応答がどの当事者に送信されるか、及び応答がどの条件の下で送信されるか、を定める。行612の第2列の欄は、応答の出力仕様の中の個々の戻り値を定める。
【0066】
列608は、タスク及び応答についての入力仕様を定める。各々のタスクについての列と、各々の応答についての列が存在する。欄の中のプラス記号(+)は、プラス記号が現れている行によって特定されるデータ項目が、列が属するタスク又は応答の入力仕様の一部であることを示す。行a、列bのスラッシュ(/)は、行aのデータ項目が、列bのタスク又は応答の入力仕様に属さないことを示す。空欄( )は、データ項目が未計算のため、該データ項目がこの入力仕様に含まれるべきか否かを決定する意味がないことを示す。
【0067】
この契約例は以下のように解釈される、すなわち、処理は、契約Idと、名と、姓と、誕生日と、指紋データと、場所と、トランザクション番号とを含む、当事者Aが送信する要求604によって起動される。
【0068】
最初の処理ステップは、XYZという名前の警戒リストとの1:n照合608である。この処理ステップは、当事者Bが所有し、無条件に(述部=真)実行される。「1:n照合」という名前の列は、+記号を用いて、この処理ステップついての入力、すなわち、名と、姓と、誕生日とを定める。列608には、出力、すなわち、照合が成功したかどうかを示す値と、名と、姓と、誕生日と、容疑者クラスと、ファイルからの指紋データと、前科に関する情報と、反応アドバイスとが定められる。
【0069】
次の処理ステップ609は、バイオメトリック照合を用いる。バイオメトリック照合は、当事者Cが所有し、1:n照合が成功した場合にのみ実行される。入力は、実際の指紋データ、及び1:n照合ステップからの指紋データである。出力は、これら2つの指紋の間の相関を示す値である。
【0070】
次に、おとり生成処理ステップ610は、1:n照合が成功しなかった場合に、おとりメッセージを生成する。
【0071】
契約は、行612において、当事者Cに対する3つの代替的な応答と、当事者Aに対する1つの応答と、当事者Bに対する無応答とを定める。すべての応答は、受信者が該応答を確認したか否かを示す単一の出力値を有する。応答1は、1:n照合が成功し、かつ、個人の容疑者クラスが<5の場合に、Cに送信される。この応答は、名と、姓と、誕生日と、場所と、バイオメトリック照合の出力とを含む。応答2は、1:n照合が成功し、かつ、容疑者クラスが>4の場合に、Cに送信される。この応答は、応答1と同じ欄に加えて、反応アドバイスを含む。応答3は、1:n照合が失敗した場合に送信される。この応答は、おとりメッセージのみを含み、検査対象の個人に関するデータは含まない。応答4は、当事者Aに送られる。この応答は、実際の要求と共に到着したトランザクション番号と、サービスが通知当事者Cにおいて成功したかどうかを示す値とを含む。
【0072】
図6から、前科に関する情報は、この契約の下では、いかなる当事者にも開示されないことが明らかである。1:n照合が失敗した場合には、個人に関する情報が送信されないことも明らかである。(おとりメッセージは、実データを含まず、単に、サービスと当事者Cとの間の通信を監視できる攻撃者から一致又は非一致の事実を隠すために送信される。)
【0073】
当事者がサービス要求の処理に協力することができるようになる前に、当事者はまず、この種の要求を処理するに当たって最初に定められ、合意された基本を定め、制御する契約に合意しなければならない。すべての当事者が合意した後にのみ、この契約に基づく処理がサーバ内でアクティブにされる。アクティブにされた契約のセットは、当事者によって動的に拡張されることがある。新たな契約を導入し、アクティブにすることによって、サービスは、新たな種類の要求の処理方法を学習する。
【0074】
契約は、データ構造、すなわち電子文書として表すことができる公式仕様と考えることができる。一実施形態においては、相互合意による契約は、すべての当事者が契約の電子署名付き複製をサーバにアップロードする方法でアクティブにされる。サーバが、すべての当事者からこうした署名付き複製を受信し、電子署名を検証し、すべての複製が実際に同一の契約を指定していることを確認した後、処理は自動的にアクティブにされる。
【0075】
同様に、電子的に提出された契約は、いつでも、又は契約の期限が切れたときに、取り消すこともできる。当事者がそのように合意した場合には、単一の当事者が契約を取り消すことができ、契約の期限が切れた場合には、システムは、この契約が司る要求を受け付けるのを中止する。
【0076】
依頼者が、同時に実行しようとする多数の契約を有する場合には、これらの契約をグループ化し、単一の要求に代えて実行することができる。幾つかの他の契約を束ねた契約は、複合契約と呼ばれる。複合契約の構造は、基本的な契約の構造と極めて類似する。違いは、複合契約は処理ステップ及び応答を定めるのではなく、組み合わされるべき契約のIDを列挙するのが好ましいことである。基本的な契約と同様に、複合契約もトリガーを有する。このトリガーの出力仕様は、この複合契約内で組み合わされるべき基本的な契約の出力仕様の結合を定める。契約エンジンは、受信した要求に関する副契約を呼び出すことによって、複合契約を処理する。
【0077】
例えば、スクリーニングの用途においては、これは、スクリーナが、エージェンシAからの警戒リストと照らし合わせて審査を行うための契約と、エージェンシBからの警戒リストと照らし合わせて審査を行うための別の契約とを有することを可能にする。組み合わされた契約は、システムに対する単一の要求に代えて、両方の検索を呼び出すことになる。他の複合契約は、さらに他の組み合わせとの照合を可能にすることができる。
【0078】
エントリー・ポイントで走査されたバイオメトリック情報は、要求内に入れて、データを処理し、該データを多数のデータベースと照合することができる1つ又はそれ以上のサーバに送信することができる。作業の流れは、審査対象の個人に関するデータをスクリーナに戻す代わりにアラームを法執行エージェンシに送信することを含めて、参加する当事者が全面的に判断する。
【0079】
提案された処理の実装の正確さに関する公式証明は、契約エンジンと、個々の処理ステップについてのコードとの検証を必要とする。このように構築されたすべてのシステムは同一の契約エンジンを用いるため、契約エンジンの検証は、1回限りのタスクである。個々の処理ステップについてのコードは、該コードがシステムに導入されるときに検証されなければならない。個々の処理ステップについてのコードは、異なる契約が再利用することができ、それが、全体の検証作業を最小にする。
【0080】
個々の処理ステップの名前のみを提供するのとは対照的に、個々の処理ステップのコードを契約の一部にすることによって、前述のシステムの動的な特徴をさらに向上させることができる。コードを安全にサービスにダウンロードすることを可能にする技術については、例えば、全体が引用によりここに組み入れられる(200年12月26日に付与されたSmithらの特許文献3)を参照されたい。処理ステップについてのコードを提供することによって、当事者がサービスの機能を動的に拡張することが可能になり、検証処理を局所的に行うことができる。
【0081】
図1を用いて、本発明の実施形態に係る、参加当事者間における作業の流れの具体例を示す。スクリーナ101が、サービス要求110を保護要求処理102に送信する。この要求の処理を司り、契約に基づいて一連の処理ステップを実行する要求処理102は、その契約を判断する。個々の処理ステップのアプリケーションは、処理状態のサブセットを入力として用いる。処理ステップの出力は、処理状態を拡張するのに用いられる。入出力の仕様は、契約内に定められる。処理の初期状態は、処理を起動させる要求からの情報で構成される。該当するすべての処理ステップが実行されたときには、処理状態を用いて、要求の処理に関わった当事者101、103、及び104’のための応答メッセージ111が生成される。どの当事者が通知を受け、該当事者に送信される応答にどんな情報が含まれるかもまた、契約に指定される。
【0082】
図7は、本発明の実施形態に係る可能な分散の一例を示す。本発明のサービスは、相互接続された幾つかのサービス・セルから構成される。1つのセルは、1つ又はそれ以上の保護計算環境と、ネットワーク・ハンドラと、大容量ストレージ・ハンドラと、1つ又はそれ以上の保護されたデータベースとを含むことができる。1つの物理的位置に多数のセルを導入することができるが、図7に示されるように、2つ以上の物理的位置が存在することになる。図7に示されるように、セル801〜806は、異なる場所に存在することができる。クライアントが、利用可能なセルのサブセットに接続されることがある。
【0083】
この構成によって、十分な量のリソースが可能になり、個々の誤作動に対する複合サービスの高度な耐障害性がもたらされる。さらに、この構成は、地理的及び/又は国家的(法律的)な問題に応じて、サービス及びデータを容易に分割することができるという効果がある。
【0084】
本発明は、より小規模なシナリオに実装することができるが、アーキテクチャは、世界規模のサービスに備えたものである。
【0085】
図8は、本発明の実施形態に係る、異なる保護範囲を示す。暗号化コプロセッサ907、910は、サービス内(908、909、911)だけでなく、クライアントA及びBに配置される。コプロセッサ907〜911は、保護ストレージ及び通信セグメント901〜906と共に物理的に配置され、それらすべては、セル外周920〜924の内部に配置される。
【0086】
したがって、すべての機密操作は、保護暗号化コプロセッサ907〜911内部に閉じ込められる。データベースの内容は常に暗号化され、保全性はメッセージ要約によって確保される。セル間の通信は、暗号化され、認証され、改変及びリプレイから保護される。最終的に、セル外周920〜924は、ファイアウォール及びシステムレベルのアクセス制御を用いて保護される。
【0087】
図9は、本発明の実施形態に係るスクリーニング・シナリオを示す。まず最初は、サーバ・セル1103に対するスクリーナ1101からのスクリーニング要求1110で始まる。セル1103は、ネットワーク・ハンドラ1106を通じて要求を受信し、処理のために該要求をコプロセッサ1108に伝える。スクリーニングに用いられるべき警戒リストがこのセル内で利用可能な場合には、コプロセッサ1108は、個人に関する情報についてデータベース1109に問い合わせを行う。次いで、コプロセッサは、ネットワーク・ハンドラを用いて、法執行1107に通知する。この通知は、どんな場合でも送信される。一致しなかった場合には、通知には、法執行においてアラームとして表示されないおとりが含まれる。法執行1107の確認通知が受信された後、スクリーナ1101は、自分の要求が処理されたことの通知を受ける。
【0088】
別のシナリオも同様である。この場合の主な違いは、警戒リストがスクリーナのクライアント・セル1103で局所的に利用できないことである。この場合には、このセルは、必要なテーブルを有するセル1105に要求を転送する。このセル1105も、法執行1107に通知し、転送された要求についての通知を返信し、該通知はスクリーナ1101に返信される。
【0089】
図10は、本発明による一実施形態の一般構造を示す。処理の大部分は図10に示されるコプロセッサ内部で実施されることになるが、PCIバス1210及びシリアル・ポートは、カードがその環境と通信を行う唯一の方法であるため、本発明の一部はホスト1204上に実装することができる。
【0090】
ホスト・アプリケーションは、ネットワーク・アクセス1224及び大容量ストレージ1226を提供しなければならない。ホスト・アプリケーションはまた、カード/ホスト通信のホスト部分1220を実装しなければならない。無保護ホスト1204は、ホスト/カード・インターフェース1220と、ネットワーク・ハンドラ1224と、大容量ストレージ・ハンドラ1226と、データベース1228とを含む。しかしながら、保護計算環境1202は、保護処理の主要部分を取り扱うために、コプロセッサ1206と、他のコプロセッサ1208とを含む。
【0091】
図11は、本発明の実施形態に係る機能モジュール図を示す。図11は、異なるインターフェース及び幾つかのセル1510、1510´などから構成される基本的な要素のアーキテクチャを示す。システムに対する要求は、ユーザ・インターフェースによって生成される。異なるクライアントに対して異なるインターフェースが存在する。サービス・プロバイダは、設定インターフェースSP Config1570と、サービスの請求を制御し、管理する請求インターフェース1571とを有する。スクリーニング当事者もまた、設定インターフェースSC Config1572と、スクリーニング要求を送信するグラフィカル・ユーザ・インターフェースSC GUIとを有する。スクリーニング当事者が、自動的に要求を生成することができるITシステムであるSC Backendをすでに保有している場合がある。この場合には、そのシステムをサービスに接続するために、統合コンポーネントSC BE Integrが必要である。情報プロバイダ当事者もまた、既存システムIP Backendをサービスに接続するために、種々のインターフェース1573、すなわち統合インターフェースIP BE Integrを必要とする。サービス設定のために、専用インターフェースIP Configが存在する。法執行もまた、設定インターフェースLE Config1574と、アラーム・メッセージが表示されるグラフィカル・ユーザ・インターフェースLE Notif.GUIとを有する。状況に応じて、アラーム・メッセージをLE Notif.GUIから法執行バックエンド・システムLE Backendに転送することもできる。
【0092】
各々のセル、すなわちセル1510及び他のセル1510´は、ホスト・アプリケーション1520と、1つ又はそれ以上のコプロセッサ(コプロセッサ1540、他のコプロセッサ)とで構成される。ホスト・アプリケーション1520は、インターフェースが接続されるネットワーク・ハンドラ1523を介して要求を受信する。ネットワーク・ハンドラ1523は、ホスト−カード通信コンポーネント1524を介して、このセル1510内のコプロセッサ1540、1540´の1つに要求を転送する。ホスト・アプリケーションのもう1つのコンポーネントは、ホスト−カード通信コンポーネント1524を介してコプロセッサ1540からデータベースの問い合わせを受信し、それをローカル又は遠隔データベース1521に配信するストレージ・ハンドラ1522である。コプロセッサ1540の内部では、ネットワーク・ハンドラ1523から送られてくる要求は、暗号化/暗号解除と認証とセッションとを実装し、平文の要求を要求ハンドラ1543に転送するネットワーク・チャネル・ハンドラ1541によって、処理される。要求ハンドラ1543は、要求の完全性及び正確性について検査し、次いで、該要求を専門のハンドラの1つに委任する。スクリーニング要求ハンドラ1546はスクリーニング要求を処理し、設定要求ハンドラ1545はサービス内部の制御構造の更新を可能にし、更新要求ハンドラ1544はスクリーニングに用いられる警戒リストの内容を変更することができ、セル間ハンドラ1550は要求を他のセル1510´に転送し、データを他のセルに配布するのに用いられる。セル間ハンドラ1550は、要求ハンドラ1543からネットワークの質に関するフィードバックを得て、ネットワークを通る最適経路に関して動的に学習するグローバル・セル・モデル1549によって制御される。大部分のハンドラは、設定ハンドラ1547によって提供される設定情報にアクセスし、かつ、ホスト上のデータベース1521にアクセスすることが必要であり、後者のアクセスは、次にデータベース・チャネル・ハンドラ1542を用いるバケット・ハンドラ1548によって提供される。データベース・チャネル・ハンドラ1542は、データベース1521との間を行き来するデータのすべての暗号化/暗号解除及び認証を取り扱う。
【0093】
図12A〜図12Cは、本発明の他の実施形態に係る、可能な異なる設計を示す。図12Aから図12Cまでは、単一のセルについての可能な異なる設計を示すものであり、図12Aは単層を、図12Bは2層を、図12Cは複製アプリケーション・サーバを備える2層を示す。単層の環境においては、セルは、ファイアウォール2011と、ホスト・アプリケーション・サーバ2010とを含むことになる。2層の場合には、ファイアウォール2011及び2021が用いられ、データベース・サーバ2040は、ホスト・アプリケーション・サーバ2020から分離される。図12Cに示される構成は、多数のホスト・アプリケーション・サーバ2020を含む。
【0094】
本発明の別の実施形態は、契約の動的な特徴を減少させることもできる。さらに極端な場合には、システムを、1つの契約か又は少数の異なる契約に完全に特化することができる。技術的には、これは、既知の契約を持つ契約エンジンの部分評価と、結果として得られるコードの最適化とによって行うことができる。これは、例えば、全体が引用によりここに組み入れられる(1997年7月22日に付与されたGafterの特許文献4)の手法を用いて行うことができる。結果は、契約が明示的なデータ・オブジェクトではなく、当事者間の合意の履行がプログラム・コードに組み込まれている静的実装と等価である。こうした実施形態においては、契約の取り消し、及び新たな契約の合意には、ソフトウェアの一部を再生成又は再実装し、再インストールし、サービスを再始動することが必要である。
【0095】
提示された実施例は、本発明についての多くの可能な使用方法を網羅するものではないことを理解すべきである。
前述の説明から、当業者であれば、本発明の本質的な特徴を容易に把握することができ、本発明の精神及び範囲から逸脱することなく、本発明を様々に変更及び修正して、様々な利用及び条件に適合させることができる。
本発明は、上述の唯一の実施形態に限定されるものではなく、あらゆる実施形態が添付の特許請求の範囲に包含されることを理解すべきである。
【図面の簡単な説明】
【0096】
【図1】本発明の実施形態に係る参加当事者間の概略的な作業の流れを示す。
【図2】本発明の実施形態による契約によって定められ、制御される保護データ処理のためのシステムの全体構造のブロック図を示す。
【図3A】本発明の実施形態による契約の構造を統一モデリング言語(UML)のクラス図として示す。
【図3B】本発明の実施形態による項目セット及び項目仕様セットのUML仕様を示す。
【図4A】本発明の実施形態に係る、要求ハンドラ、タスク処理、及びレスポンダの処理のフローチャート図を示す。
【図4B】本発明の実施形態に係る、提案から契約までの状態遷移図を示す。
【図4C】本発明の実施形態に係る、アップロードから仕様の取消しまでの状態遷移図を示す。
【図5】本発明の実施形態に係る、ネットワークと保護されたデータベースとの統合を示す。
【図6】本発明の実施形態に係る、個人が厳重に警戒リストと照合されるアプリケーションのための契約例を示す。
【図7】本発明の実施形態に係る可能な分散の一例を示す。
【図8】本発明の実施形態に係る、異なる保護範囲を示す。
【図9】本発明の実施形態に係るスクリーニング・シナリオを示す。
【図10】本発明による一実施形態の一般構造を示す。
【図11】本発明の実施形態に係る機能モジュール図を示す。
【図12A】本発明の他の実施形態に係る、可能な異なる設計を示す。
【図12B】本発明の他の実施形態に係る、可能な異なる設計を示す。
【図12C】本発明の他の実施形態に係る、可能な異なる設計を示す。
【特許請求の範囲】
【請求項1】
多数当事者電子サービスのためのコンピュータ・ベースの方法であって、
サービス・プロバイダと、クライアントと、少なくとも1つの他の当事者との間のサービスを司るための少なくとも1つの契約を、コンピュータ・システムに実装し、
クライアントからの第1の要求を、前記サービス・プロバイダで受信し、
前記サービス・プロバイダから少なくとも1つの他の当事者の1つにデータ要求を送信し、
少なくとも1つの他の当事者の前記1つからのデータ応答を、保護計算環境において前記サービス・プロバイダで受信し、
前記第1の要求と前記データ応答との間に一致が存在するかどうかを、前記契約に従って判断し、
前記判断ステップにより一致する結果が得られた場合には、前記一致の通知を前記少なくとも1つの他の当事者に提供する、
ステップを含む方法。
【請求項2】
前記判断ステップで判断したときに一致が存在しない場合であっても、前記通知を提供するステップをさらに含む、請求項1に記載の方法。
【請求項3】
前記通知を提供する前記ステップが、ダミー・メッセージを前記少なくとも1つの他の当事者に提供するステップを含む、請求項2に記載の方法。
【請求項4】
前記第1の要求が処理されたことを前記クライアントに通知するステップをさらに含む、請求項1に記載の方法。
【請求項5】
前記少なくとも1つの契約を実装する前記ステップが、前記サービス・プロバイダと、前記クライアントと、前記少なくとも1つの他の当事者との間のサービスを司るあらゆる契約に対して契約IDを割り当てるステップを含む、請求項1に記載の方法。
【請求項6】
保護計算環境内の契約エンジンにおいて先のステップを実行するステップをさらに含む、請求項1に記載の方法。
【請求項7】
通信ネットワークに結合された複数の契約エンジンを提供するステップをさらに含む、請求項6に記載の方法。
【請求項8】
前記判断ステップが、暗号化コプロセッサにおいて判断を行うステップからなる、請求項1に記載の方法。
【請求項9】
多数当事者電子サービスのためのコンピュータ・ベースの方法であって、
サービス・プロバイダと、クライアントと、少なくとも1つの他の当事者との間のサービスを司るための少なくとも1つの契約を、コンピュータ・システムに実装し、
前記クライアントからの第1の要求と、少なくとも1つの他の当事者の1つからのデータ応答との間に一致が存在するかどうかを、前記契約に従って判断し、
前記判断ステップにより一致する結果が得られた場合には、前記一致の通知を前記少なくとも1つの他の当事者に提供する、
ステップを含む方法。
【請求項10】
前記判断ステップで判断したときに一致が存在しない場合であっても、前記通知を提供するステップをさらに含む、請求項9に記載の方法。
【請求項11】
前記通知を提供する前記ステップが、ダミー・メッセージを前記少なくとも1つの他の当事者に提供するステップを含む、請求項10に記載の方法。
【請求項12】
前記第1の要求が処理されたことを前記クライアントに通知するステップをさらに含む、請求項9に記載の方法。
【請求項13】
前記少なくとも1つの契約を実装する前記ステップが、前記サービス・プロバイダと、前記クライアントと、前記少なくとも1つの他の当事者との間のサービスを司るあらゆる契約に対して契約IDを割り当てるステップを含む、請求項9に記載の方法。
【請求項14】
照合識別サービスを管理するためのコンピュータ・ベースの方法であって、
サービス・プロバイダと、クライアントと、少なくとも1つの他の当事者との間の照合識別サービスを司るための、契約IDを有する少なくとも1つの契約を、コンピュータ・システムに実装し、前記クライアントからの第1の要求と、少なくとも1つの他の当事者の1つからのデータ応答との間に一致が存在するかどうかを、前記契約IDに従って判断し、
前記判断ステップにより一致する結果が得られた場合には、前記一致の通知を前記少なくとも1つの他の当事者に提供する、
ステップを含む方法。
【請求項15】
前記判断ステップで判断したときに一致が存在しない場合であっても、前記通知を提供するステップをさらに含む、請求項14に記載の方法。
【請求項16】
前記通知を提供する前記ステップが、ダミー・メッセージを前記少なくとも1つの他の当事者に提供するステップを含む、請求項15に記載の方法。
【請求項17】
前記第1の要求が処理されたことを前記クライアントに通知するステップをさらに含む、請求項14に記載の方法。
【請求項18】
多数当事者電子サービスのための装置であって、
サービス・プロバイダと、クライアントと、少なくとも1つの他の当事者との間のサービスを司るための少なくとも1つの契約を保持して履行し、前記クライアントからの第1の要求と、少なくとも1つの他の当事者の1つからのデータ応答との間に一致が存在するかどうかを、前記少なくとも1つの契約に従って判断するように作動する少なくとも1つのホスト・コンピュータを備え、
前記判断により一致する結果が得られた場合には、前記少なくとも1つのホスト・コンピュータが、前記少なくとも1つの他の当事者に通知を提供するようにさらに作動する装置。
【請求項19】
前記少なくとも1つのホスト・コンピュータが、前記判断により一致する結果が得られない場合であっても、前記少なくとも1つの他の当事者に前記通知を提供するようにさらに作動する、請求項18に記載の装置。
【請求項20】
前記少なくとも1つのホスト・コンピュータが、ダミー・メッセージを前記少なくとも1つの他の当事者に提供するようにさらに作動する、請求項19に記載の装置。
【請求項21】
前記少なくとも1つのホスト・コンピュータが、前記第1の要求が処理されたことの通知を前記クライアントに提供するようにさらに作動する、請求項18に記載の装置。
【請求項22】
前記少なくとも1つのホスト・コンピュータが、
機密データを処理するための保護計算環境と、
前記保護計算環境及びネットワークとの間でメッセージを送受信するためのネットワーク・ハンドラと、
前記保護計算環境内部から送られてくるデータベース要求を処理し、保護されたデータベースから前記契約及び個人情報データを含む情報を取得するストレージ・ハンドラと、
を備える、請求項18に記載の装置。
【請求項23】
前記少なくとも1つのホスト・コンピュータが、前記サービス・プロバイダと、前記クライアントと、前記少なくとも1つの他の当事者との間のサービスを司るあらゆる契約に対して契約IDを与えるようにさらに作動する、請求項18に記載の装置。
【請求項24】
照合識別サービスのための装置であって、
サービス・プロバイダと、クライアントと、少なくとも1つの他の当事者との間のサービスを司るための、契約IDを有する少なくとも1つの契約を保持して履行し、前記クライアントからの第1の要求と、少なくとも1つの他の当事者の1つからのデータ応答との間に一致が存在するかどうかを、前記少なくとも1つの契約に従って判断するように作動する少なくとも1つのホスト・コンピュータを備え、
前記判断により一致する結果が得られた場合には、前記少なくとも1つのホスト・コンピュータが、前記少なくとも1つの他の当事者に通知を提供するようにさらに作動する装置。
【請求項25】
前記少なくとも1つのホスト・コンピュータが、
機密データを処理するための保護計算環境と、
前記保護計算環境及びネットワークとの間でメッセージを送受信するためのネットワーク・ハンドラと、
前記保護計算環境内部から送られてくるデータベース要求を処理し、保護されたデータベースから前記契約及び個人情報データを含む情報を取得するストレージ・ハンドラと、
を備える、請求項24に記載の装置。
【請求項26】
前記保護計算環境が、前記第1の要求を処理し、照合タスクを行い、前記通知としての役割を果たす応答を提供するように作動する契約エンジンを備える、請求項25に記載の装置。
【請求項1】
多数当事者電子サービスのためのコンピュータ・ベースの方法であって、
サービス・プロバイダと、クライアントと、少なくとも1つの他の当事者との間のサービスを司るための少なくとも1つの契約を、コンピュータ・システムに実装し、
クライアントからの第1の要求を、前記サービス・プロバイダで受信し、
前記サービス・プロバイダから少なくとも1つの他の当事者の1つにデータ要求を送信し、
少なくとも1つの他の当事者の前記1つからのデータ応答を、保護計算環境において前記サービス・プロバイダで受信し、
前記第1の要求と前記データ応答との間に一致が存在するかどうかを、前記契約に従って判断し、
前記判断ステップにより一致する結果が得られた場合には、前記一致の通知を前記少なくとも1つの他の当事者に提供する、
ステップを含む方法。
【請求項2】
前記判断ステップで判断したときに一致が存在しない場合であっても、前記通知を提供するステップをさらに含む、請求項1に記載の方法。
【請求項3】
前記通知を提供する前記ステップが、ダミー・メッセージを前記少なくとも1つの他の当事者に提供するステップを含む、請求項2に記載の方法。
【請求項4】
前記第1の要求が処理されたことを前記クライアントに通知するステップをさらに含む、請求項1に記載の方法。
【請求項5】
前記少なくとも1つの契約を実装する前記ステップが、前記サービス・プロバイダと、前記クライアントと、前記少なくとも1つの他の当事者との間のサービスを司るあらゆる契約に対して契約IDを割り当てるステップを含む、請求項1に記載の方法。
【請求項6】
保護計算環境内の契約エンジンにおいて先のステップを実行するステップをさらに含む、請求項1に記載の方法。
【請求項7】
通信ネットワークに結合された複数の契約エンジンを提供するステップをさらに含む、請求項6に記載の方法。
【請求項8】
前記判断ステップが、暗号化コプロセッサにおいて判断を行うステップからなる、請求項1に記載の方法。
【請求項9】
多数当事者電子サービスのためのコンピュータ・ベースの方法であって、
サービス・プロバイダと、クライアントと、少なくとも1つの他の当事者との間のサービスを司るための少なくとも1つの契約を、コンピュータ・システムに実装し、
前記クライアントからの第1の要求と、少なくとも1つの他の当事者の1つからのデータ応答との間に一致が存在するかどうかを、前記契約に従って判断し、
前記判断ステップにより一致する結果が得られた場合には、前記一致の通知を前記少なくとも1つの他の当事者に提供する、
ステップを含む方法。
【請求項10】
前記判断ステップで判断したときに一致が存在しない場合であっても、前記通知を提供するステップをさらに含む、請求項9に記載の方法。
【請求項11】
前記通知を提供する前記ステップが、ダミー・メッセージを前記少なくとも1つの他の当事者に提供するステップを含む、請求項10に記載の方法。
【請求項12】
前記第1の要求が処理されたことを前記クライアントに通知するステップをさらに含む、請求項9に記載の方法。
【請求項13】
前記少なくとも1つの契約を実装する前記ステップが、前記サービス・プロバイダと、前記クライアントと、前記少なくとも1つの他の当事者との間のサービスを司るあらゆる契約に対して契約IDを割り当てるステップを含む、請求項9に記載の方法。
【請求項14】
照合識別サービスを管理するためのコンピュータ・ベースの方法であって、
サービス・プロバイダと、クライアントと、少なくとも1つの他の当事者との間の照合識別サービスを司るための、契約IDを有する少なくとも1つの契約を、コンピュータ・システムに実装し、前記クライアントからの第1の要求と、少なくとも1つの他の当事者の1つからのデータ応答との間に一致が存在するかどうかを、前記契約IDに従って判断し、
前記判断ステップにより一致する結果が得られた場合には、前記一致の通知を前記少なくとも1つの他の当事者に提供する、
ステップを含む方法。
【請求項15】
前記判断ステップで判断したときに一致が存在しない場合であっても、前記通知を提供するステップをさらに含む、請求項14に記載の方法。
【請求項16】
前記通知を提供する前記ステップが、ダミー・メッセージを前記少なくとも1つの他の当事者に提供するステップを含む、請求項15に記載の方法。
【請求項17】
前記第1の要求が処理されたことを前記クライアントに通知するステップをさらに含む、請求項14に記載の方法。
【請求項18】
多数当事者電子サービスのための装置であって、
サービス・プロバイダと、クライアントと、少なくとも1つの他の当事者との間のサービスを司るための少なくとも1つの契約を保持して履行し、前記クライアントからの第1の要求と、少なくとも1つの他の当事者の1つからのデータ応答との間に一致が存在するかどうかを、前記少なくとも1つの契約に従って判断するように作動する少なくとも1つのホスト・コンピュータを備え、
前記判断により一致する結果が得られた場合には、前記少なくとも1つのホスト・コンピュータが、前記少なくとも1つの他の当事者に通知を提供するようにさらに作動する装置。
【請求項19】
前記少なくとも1つのホスト・コンピュータが、前記判断により一致する結果が得られない場合であっても、前記少なくとも1つの他の当事者に前記通知を提供するようにさらに作動する、請求項18に記載の装置。
【請求項20】
前記少なくとも1つのホスト・コンピュータが、ダミー・メッセージを前記少なくとも1つの他の当事者に提供するようにさらに作動する、請求項19に記載の装置。
【請求項21】
前記少なくとも1つのホスト・コンピュータが、前記第1の要求が処理されたことの通知を前記クライアントに提供するようにさらに作動する、請求項18に記載の装置。
【請求項22】
前記少なくとも1つのホスト・コンピュータが、
機密データを処理するための保護計算環境と、
前記保護計算環境及びネットワークとの間でメッセージを送受信するためのネットワーク・ハンドラと、
前記保護計算環境内部から送られてくるデータベース要求を処理し、保護されたデータベースから前記契約及び個人情報データを含む情報を取得するストレージ・ハンドラと、
を備える、請求項18に記載の装置。
【請求項23】
前記少なくとも1つのホスト・コンピュータが、前記サービス・プロバイダと、前記クライアントと、前記少なくとも1つの他の当事者との間のサービスを司るあらゆる契約に対して契約IDを与えるようにさらに作動する、請求項18に記載の装置。
【請求項24】
照合識別サービスのための装置であって、
サービス・プロバイダと、クライアントと、少なくとも1つの他の当事者との間のサービスを司るための、契約IDを有する少なくとも1つの契約を保持して履行し、前記クライアントからの第1の要求と、少なくとも1つの他の当事者の1つからのデータ応答との間に一致が存在するかどうかを、前記少なくとも1つの契約に従って判断するように作動する少なくとも1つのホスト・コンピュータを備え、
前記判断により一致する結果が得られた場合には、前記少なくとも1つのホスト・コンピュータが、前記少なくとも1つの他の当事者に通知を提供するようにさらに作動する装置。
【請求項25】
前記少なくとも1つのホスト・コンピュータが、
機密データを処理するための保護計算環境と、
前記保護計算環境及びネットワークとの間でメッセージを送受信するためのネットワーク・ハンドラと、
前記保護計算環境内部から送られてくるデータベース要求を処理し、保護されたデータベースから前記契約及び個人情報データを含む情報を取得するストレージ・ハンドラと、
を備える、請求項24に記載の装置。
【請求項26】
前記保護計算環境が、前記第1の要求を処理し、照合タスクを行い、前記通知としての役割を果たす応答を提供するように作動する契約エンジンを備える、請求項25に記載の装置。
【図1】
【図2】
【図3A】
【図3B】
【図4A】
【図4B】
【図4C】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12A】
【図12B】
【図12C】
【図2】
【図3A】
【図3B】
【図4A】
【図4B】
【図4C】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12A】
【図12B】
【図12C】
【公表番号】特表2006−506749(P2006−506749A)
【公表日】平成18年2月23日(2006.2.23)
【国際特許分類】
【出願番号】特願2004−555286(P2004−555286)
【出願日】平成15年8月18日(2003.8.18)
【国際出願番号】PCT/US2003/025720
【国際公開番号】WO2004/049101
【国際公開日】平成16年6月10日(2004.6.10)
【出願人】(390009531)インターナショナル・ビジネス・マシーンズ・コーポレーション (4,084)
【氏名又は名称原語表記】INTERNATIONAL BUSINESS MASCHINES CORPORATION
【Fターム(参考)】
【公表日】平成18年2月23日(2006.2.23)
【国際特許分類】
【出願日】平成15年8月18日(2003.8.18)
【国際出願番号】PCT/US2003/025720
【国際公開番号】WO2004/049101
【国際公開日】平成16年6月10日(2004.6.10)
【出願人】(390009531)インターナショナル・ビジネス・マシーンズ・コーポレーション (4,084)
【氏名又は名称原語表記】INTERNATIONAL BUSINESS MASCHINES CORPORATION
【Fターム(参考)】
[ Back to top ]