(57)【要約】情報の保護を必要とする所定の使用法を具備する前記情報を保存するシステムを提供する。情報はトランザクションを完了するために使用されるクレジットカードの詳細事項を含む。システムは、（ａ）情報の符号化されたバージョンと識別子を保存するクライアントシステムを含む。符号化されたバージョンは情報の第１データと情報の第２データの符号化されたバージョンから生成される。情報は第１データと第２データとから生成できると共に、第１データ及び第２データのいずれか１つのみによっては所定の使用法を実現できない。システムは、（ｂ）識別子から生成された符号化された識別子と共に第２データを保存するリモートサーバを含む。クライアントシステム、すなわちリモートサーバは、第１データと第２データから情報を生成できる。したがって、保護されるべき一部の情報のみが、クライアントシステム上に局所的に保存され、一方、他の部分はリモートサーバ上に保存され、クライアントシステムもリモートサーバも何れも全情報のレコードをもたない。
2005522775.tif 000002
【特許請求の範囲】
【請求項１】
情報の保護を必要とする所定の使用法を具備する前記情報を保存する情報保存システムであって、
第１データ及び第２データから前記情報を生成可能であると共に、前記第１データ及び前記第２データのいずれか１つのみによっては前記所定の使用法を実現不可能であるように、前記情報から前記第１データ及び前記第２データを生成し、前記第１データと共に識別子を保存するクライアントシステムと、
前記識別子から生成された符号化された識別子と共に前記第２データを保存するリモートサーバと、
を含むことを特徴とする情報保存システム。
【請求項２】
前記リモートサーバは、前記第２データの符号化されたバージョンを前記クライアントシステムに送信するべく適合されており、前記クライアントシステムは、前記第１データ及び前記符号化された第２データから前記情報の符号化されたバージョンを生成し、かつ前記符号化された情報を前記識別子と共に保存するべく適合されている請求項１記載のシステム。
【請求項３】
前記符号化された第２データを生成するリモートハッシュサーバを含む請求項２記載のシステム。
【請求項４】
情報の保護を必要とする所定の使用法を具備する前記情報を保存する情報保存システムであって、
前記情報の符号化されたバージョンと識別子を保存するクライアントシステムであって、前記符号化された情報は、前記情報の第１データと、前記情報の第２データの符号化されたバージョンから生成されており、前記情報は、前記第１データ及び前記第２データから生成可能であると共に、前記所定の使用法は、前記第１データ及び前記第２データのいずれか１つのみによっては実現不可能である、クライアントシステムと、
前記第２データと、前記識別子から生成された符号化された識別子を保存するリモートサーバと、
を含み、
前記クライアントシステムは、少なくとも前記第２データの前記符号化されたバージョンを前記リモートサーバに送信するべく適合されていることを特徴とする情報保存システム。
【請求項５】
複数の前記リモートサーバと、前記リモートサーバの少なくとも１つを選択して前記クライアントシステムから受信したデータを前記選択した少なくとも１つのリモートサーバに転送するゲートウェイと、を含む請求項４記載のシステム。
【請求項６】
情報の保護を必要とする所定の使用法を具備する前記情報を保存する情報保存プロセスであって、
第１データ及び第２データから前記情報を生成可能であると共に、前記第１データ及び前記第２データのいずれか１つのみを使用しては前記所定の使用法を実行できないように、前記情報から前記第１データ及び前記第２データを生成する段階を含むことを特徴とする情報保存プロセス。
【請求項７】
前記情報から符号化されたデータを生成する段階を含み、前記第１データ及び第２データは、前記符号化されたデータから生成される請求項６記載のプロセス。
【請求項８】
前記符号化されたデータの量は、前記情報の量よりも実質的に大きい請求項７記載のプロセス。
【請求項９】
前記生成段階は、前記情報を暗号化する段階を含む請求項７記載のプロセス。
【請求項１０】
前記第１データ及び前記第２データは、互いに物理的に離れた個別の場所に保存される請求項６記載のプロセス。
【請求項１１】
前記プロセスは、クライアントシステムによって実行され、
前記プロセスは、
保存するべく前記第１データと識別子をリモートサーバに送信する段階と、
前記第２データと前記識別子を保存する段階と、
を含む請求項６記載のプロセス。
【請求項１２】
前記識別子から生成される符号化された識別子は、前記第１データと共に保存される請求項１１記載のプロセス。
【請求項１３】
前記符号化された識別子は、前記識別子の暗号ハッシュを含んでいる請求項１２記載のプロセス。
【請求項１４】
前記ハッシュは、前記クライアントシステムにとって未知であると共に前記リモードサーバにとっても未知であるハッシュ関数を使用して遠隔地において生成される請求項１３記載のプロセス。
【請求項１５】
前記リモートサーバから前記第１データの符号化されたバージョンを受信する受信段階と、
前記符号化された第１データと、前記第２データから前記情報の符号化されたバージョンを生成する生成段階であって、前記保存段階は、前記符号化された情報と前記識別子を保存する段階を含んでいる、生成段階と、
を含む請求項１１記載のプロセス。
【請求項１６】
情報の保護を必要とする所定の使用法を具備する前記情報を保存する情報保存プロセスであって、
第２データを具備するクライアントシステムから識別子と第１データを受信する受信段階であって、前記第１データ及び前記第２データは、前記第１データ及び前記第２データから前記情報を生成可能であると共に、前記第１データ及び前記第２データのいずれか１つのみを使用しては前記所定の使用法を実行できないようになっている、受信段階と、
前記識別子を保存することなしに、前記識別子から生成された符号化された識別子と共に前記第１データを保存する保存段階と、
を含むことを特徴とする情報保存プロセス。
【請求項１７】
前記第１データから、符号化された第１データを生成する段階と、
前記第２データ及び前記識別子と共に保存するべく、前記符号化された第１データを前記クライアントシステムに送信する段階と、
を含む請求項１６記載のプロセス。
【請求項１８】
情報の保護を必要とする所定の使用法を具備する前記情報を生成する情報生成プロセスであって、
識別子に基づいて、前記情報の第１データを判定する判定段階と、
リモートサーバから前記情報の第２データを受信する受信段階と、
前記第１データ及び前記第２データから前記情報を生成する生成段階であって、前記所定の使用法は、前記第１データ及び前記第２データのいずれか１つのみによって実現不可能である、生成段階と、
を含むことを特徴とする情報生成プロセス。
【請求項１９】
前記識別子を前記リモートサーバに送信する段階を含み、前記受信段階は、前記リモートサーバから、前記識別子から生成された符号化された識別子に基づいて判定された前記第２データを受信する段階を含む請求項１８記載の情報生成プロセス。
【請求項２０】
前記所定の使用法に前記情報を使用する段階と、次いで前記情報を廃棄する段階と、を含む請求項１８記載の情報生成プロセス。
【請求項２１】
前記情報は、クレジットカード番号を含み、前記所定の使用法は、前記クレジットカード番号に基づいて会計トランザクションを処理する段階を含む請求項２０記載の情報生成プロセス。
【請求項２２】
情報の保護を必要とする所定の使用法を具備する前記情報を生成する情報生成プロセスであって、
識別子を受信する受信段階と、
前記識別子に基づいて前記情報の第１データを判定する判定段階と、
前記第１データをクライアントシステムに送信し、前記情報を前記情報の前記第１データ及び第２データから生成することを可能にする情報生成段階であって、前記所定の使用法は、前記第１データ及び前記第２データのいずれか１つのみによっては実現不可能である、情報生成段階と、
を含むことを特徴とする情報生成プロセス。
【請求項２３】
情報の保護を必要とする所定の使用法を具備する前記情報を生成する情報生成プロセスであって、
識別子に基づいて、前記情報の符号化されたバージョンを判定する判定段階であって、前記符号化された情報は、前記情報の第１データと、前記情報の第２データの符号化されたバージョンから生成される、判定段階と、
前記第１データ及び前記第２データから前記情報を生成するべく、前記識別子と前記符号化された情報をリモートサーバに送信する送信段階であって、前記所定の使用法は、前記第１データ及び前記第２データのいずれか１つによっては実現不可能である、送信段階と、
を含むことを特徴とする情報生成プロセス。
【請求項２４】
情報の保護を必要とする所定の使用法を具備する前記情報を生成する情報生成プロセスであって、
識別子と前記情報の符号化されたバージョンを受信する受信段階と、
前記識別子に基づいて前記情報の第１データを判定する判定段階と、
前記符号化された情報の前記第１データ及び第２データから前記情報を生成する生成段階であって、前記所定の使用法は、前記第１データ及び前記第２データのいずれか１つのみによっては実現不可能である、生成段階と、
前記情報を前記所定の使用法に使用する使用段階と、
前記情報を廃棄する廃棄段階と、
を含むことを特徴とする情報生成プロセス。
【請求項２５】
請求項６〜２４の中のいずれか一項記載の段階を実行するコンポーネントを具備する情報保存システム。
【請求項２６】
請求項６〜２４の中のいずれか一項記載の段階を実行するプログラムコードを保存するコンピュータ可読保存媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報保存システムに関し、更に詳しくは、情報の保護を必要とする所定の使用法を具備する情報を保存するプロセス及びシステムに関するものである。
【背景技術】
【０００２】
電子情報の安全な保存は、多くの組織にとって主要な関心事の１つである。特に、顧客情報を保存する場合には、プライバシーの侵害と潜在的に有用な情報の盗難のリスクが生じることになる。例えば、多くの組織は、顧客のクレジットカード情報を保存している。顧客のクレジットカード情報を保存しておけば、同じクレジットカードの番号、有効期限、及びカード名をクレジットカードのトランザクションを処理するたびに顧客が再入力する必要がなくなる。このような不便をなくし、トランザクションを迅速に処理する能力を有する組織は、顧客にとって、より魅力的な存在となり得る。例えば、クレジットカード情報を保存することにより、米国特許第５，９６０，４１１号に記述されているように、インターネットを介した所謂「ワンクリック」購買を使用できるようになり、この結果、オンライン購買の完了率が向上する。又、クレジットカード番号などの機密情報を保存しておけば、潜在的に安全ではない通信ネットワークを介した情報の再送が不要となり、例えば、伝送の際の伝送監視による盗難に対する脆弱性を強化することができる。
【発明の開示】
【発明が解決しようとする課題】
【０００３】
しかしながら、このような情報の保存を絶対的且つ完全に安全なものにすることは困難であり、保存されている情報は、常に、ハッカー、悪意を有するスタッフ、請負業者、クリーナ掃業者、ＩＴサービス供給者などによる盗難に対して、少なくとも潜在的に脆弱である。そして、このリスクは、この種の情報を記録するあらゆる組織に常に存在するものである。この種の情報の消失は、厄介な問題であり、組織が払う犠牲は、潜在的に極めて大きなものになる。従って、このような問題点を軽減するか、或いは、少なくとも有用な選択肢を提供するプロセス及びシステムを提供することが望ましい。
【課題を解決するための手段】
【０００４】
本発明によれば、情報の保護を必要とする所定の使用法を具備する情報を保存するシステムが提供され、このシステムは、第１データ及び第２データから情報を生成可能であると共に、第１データ及び第２データのいずれか１つのみによっては所定の使用法を実現不可能であるように、情報から第１データと第２データを生成し、第１データと共に識別子を保存するクライアントシステムと；識別子から生成した符号化された識別子と共に前記第２データを保存するリモートサーバと、を含むことを特徴とする。
【０００５】
又、本発明によれば、情報の保護を必要とする所定の使用法を具備する情報を保存するシステムが提供され、このシステムは、情報の符号化されたバージョンと、識別子を保存するクライアントシステムであって、この符号化された情報は、情報の第１データと、情報の第２データの符号化されたバージョンから生成されており、第１データ及び第２データから情報を生成可能であると共に、第１データ及び第２データのいずれか１つのみによっては所定の使用法を実現不可能である、クライアントシステムと；第２データと、識別子から生成した符号化された識別子を保存するリモートサーバと；を含み、クライアントシステムは、少なくとも第２データの符号化されたバージョンを前記リモートサーバに送信するべく適合されていることを特徴とする。
【０００６】
又、本発明によれば、情報の保護を必要とする所定の使用法を具備する情報を保存するプロセスが提供され、このプロセスは、第１及び第２データから情報を生成可能であると共に、第１データ及び第２データのいずれか１つのみを使用しては所定の使用法を実行できないように、情報から第１データ及び第２データを生成する段階を含むことを特徴とする。
【０００７】
又、本発明によれば、情報の保護を必要とする所定の使用法を具備する情報を保存するプロセスが提供され、このプロセスは、第２データを具備するクライアントシステムから識別子と第１データを受信する段階であって、第１データ及び第２データは、第１データ及び第２データから情報を生成可能であると共に、第１データ及び第２データのいずれか１つのみを使用しては所定の使用法を実行できないようになっている、段階と；識別子を保存することなしに、識別子から生成された符号化された識別子と共に第１データを保存する段階と；を含むことを特徴とする。
【０００８】
又、本発明によれば、情報の保護を必要とする所定の使用法を具備する情報を生成するプロセスが提供され、このプロセスは、識別子に基づいて情報の第１データを判定する段階と；リモートサーバから情報の第２データを受信する段階と；第１及び第２データから情報を生成する段階であって、第１データ及び第２データのいずれか１つのみによっては所定の使用法を実現不可能である、段階と；を含むことを特徴とする。
【０００９】
又、本発明によれば、情報の保護を必要とする所定の使用法を具備する情報を生成するプロセスが提供され、このプロセスは、識別子を受信する段階と；識別子に基づいて情報の第１データを判定する段階と；クライアントシステムに第１データを送信し、情報の第１データ及び第２データから情報を生成することを可能にする段階であって、第１データ及び第２データのいずれか１つのみによっては所定の使用法を実現不可能である、段階と；を含むことを特徴とする。
【００１０】
又、本発明によれば、情報の保護を必要とする所定の使用法を具備する情報を生成するプロセスが提供され、このプロセスは、識別子に基づいて情報の符号化されたバージョンを判定する段階であって、この符号化された情報は、情報の第１データと、情報の第２データの符号化されたバージョンから生成されている、段階と；第１データ及び第２データから情報を生成するべく、識別子と符号化された情報をリモードサーバに送信する段階であって、第１データ及び第２データのいずれか１つのみによっては所定の使用法を実現不可能である、段階と；を含むことを特徴する。
【００１１】
又、本発明によれば、情報の保護を必要とする所定の使用法を具備する情報を生成するプロセスが提供され、このプロセスは、識別子と、情報の符号化されたバージョンを受信する段階と；識別子に基づいて情報の第１データを判定する段階と；符号化された情報の第１データ及び第２データから情報を生成する段階であって、第１及び及び第２データのいずれか１つのみによっては所定の使用法を実現不可能である、段階と；情報を所定の使用法に使用する段階と；情報を破棄する段階と；を含むことを特徴する。
【００１２】
本発明の好適な実施例によれば、組織が、顧客のクレジットカード番号の一部のみをクライアントシステム上に局所的に保存し、その他の部分を遠隔地に位置するサーバに送信して安全に保持できるようにするプロセスが提供される。この結果、クライアントシステムとサーバのいずれもが番号全体のレコードを保持していないため、クレジットカード番号の盗難のリスクが減少する。又、クライアントシステムとサーバ間における単一の伝送において、番号の全体が伝送されることが絶対にない。そして、このようなカードに対して課金が必要な場合には、２つの部分が、それぞれのシステムから抽出され、トランザクションをバンキングシステムに送信することを唯一の目的として、短期間だけ結合された後に、この完全な番号のレコードは再度破壊される。従って、クレジットカード番号の盗難のリスクが大幅に減少することになる。
【発明を実施するための最良の形態】
【００１３】
以下、一例として、添付図面を参照し、本発明の好適な実施例について説明する。
【００１４】
図１に示されているように、情報保存システムは、情報サーバ１０２、クライアントシステム１０４、セキュアハッシュサーバ１０６、及び、第２実施例の場合には、トランザクションサーバ１０８を含んでいる。そして、これらのサーバは、インターネットなどの通信ネットワーク１１０によって相互接続されている。尚、クライアントシステム１０４とサーバ１０２、１０６、１０８は、Ｍｉｃｒｏｓｏｆｔ  Ｗｉｎｄｏｗｓ（登録商標）オペレーティングシステムが稼働するＩｎｔｅｌ（登録商標）ｘ８６ベースのパーソナルコンピュータシステムなどの標準的なコンピュータシステムである。但し、この代わりに、情報保存システムの性能を向上させるべく、サーバ１０２、１０６、１０８を、Ｓｕｎ  Ｍｉｃｒｏｓｙｓｔｅｍｓ，  Ｉｎｃ．（登録商標）が販売するＳｕｎ  Ｆｉｒｅ（登録商標）サーバなどの高性能ネットワークサーバにすることも可能である。図２に示されているように、クライアントシステム１０４は、クライアントモジュール２０２、顧客データベース２０４、及び新しい顧客データ２０６を含んでいる。又、このクライアントシステム１０４には、任意選択により、後述するように、トランザクション処理モジュール２０８も含まれる。そして、図３に示されているように、情報サーバ１０２は、サーバモジュール３０２と情報レジストリ３０４を含んでいる。又、情報サーバ１０２には、トランザクション処理モジュール２０８を含むことも可能である。
【００１５】
この情報保存システムのコンポーネント１０２〜１０８は、情報を少なくとも２つの構成要素に分割することによってクレジットカード番号などの機密又は有用情報を安全に保存する情報保存プロセスを実行し、この結果、これらの構成要素は、個別的な有用性や使用価値を具備することがなく、これらの構成要素から再アセンブルされた場合にのみ、情報は、その正常な機密又は有用な使用法を獲得できるようになる。これらの構成要素は、物理的に異なる場所に別個に保存され、所定の使用法に必要とされた場合にのみ、再アセンブルされる。そして、この再アセンブルされた情報は、その使用が完了次第、破壊される。クレジットカード番号の場合には、番号を２つの部分に分割する段階と、これらの部分を別個に保存する段階と、これらを再アセンブルしてクレジットカードトランザクションを処理する段階と、を有している。そして、当該トランザクションを完了させるためのトランザクションの詳細事項の取得機関への送信が完了次第、即座に、この再アセンブルされた番号は破壊されることになる。クレジットカード番号のいずれの部分を使用しても、もう一方の部分がなければ、会計トランザクションを処理できないため、番号のいずれかの部分を含むデータベースが盗難に遭った場合にも、補完部分が同様に取得されない限り、ほとんど影響はない。又、両方のデータベースが盗難に遭った場合にも、後述するように、これらの構成要素がなんらのデータベースキーをも共有していないため、クレジットカード番号の構成要素をマッチングさせることができない。又、当該窃盗犯は、その構成要素の各部分からクレジットカード番号を生成する方法についても知らなければならない。
【００１６】
これら各部分のネットワーク１１０を介した通信の際には、いかなる場合にも、デジタル署名を施すと共に、１２８ビット暗号化を使用して暗合化し、通信の盗聴により、いずれの部分をも取得できないようにする。尚、この例示の実施例においては、情報の保存及びトランザクションプロセスは、システムコンポーネント１０２〜１０８によって実行されるソフトウェアモジュールとして実装されている。しかしながら、このシステムのモジュールは、様々な場所に分散可能であり、モジュールの少なくとも一部をＡＳＩＣ（Ａｐｐｌｉｃａｔｉｏｎ−Ｓｐｅｃｉｆｉｃ  Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ）などの１つ又は複数の専用ハードウェアコンポーネントによって実装することも可能であることは明らかであろう。
【００１７】
クライアントシステム１０４は、自らの顧客に関する情報の保持を所望し、特に、自らの顧客のクレジットカード情報の保存を所望する組織によって所有され、操作されるものであってよい。顧客情報は、通常、クライアントシステム１０４のハードディスク記憶装置上に保存されている顧客データベース２０４などの顧客データベース内に保持される。組織は、情報を保存するデータベースキーとして一意の顧客番号を使用し、この情報をデータベース２０４内に保存する。この情報は、例えば、次の表に示されているように、顧客の名前、住所、クレジットカード情報、及び取引残高などの口座データを含むことができる。
【００１８】
【表１】
2005522775.tif 000003
【００１９】
しかしながら、この顧客データは、盗難に対して脆弱であり、顧客側と、データを保存する組織の両方に大きなリスクが生じることになる。このリスクに対抗するべく、本情報保存システムは、機密情報を少なくとも２つの構成要素に分割する。クレジットカード情報の場合には、クレジットカード番号を２つの部分に分割する。そして、後述するように、クライアントシステム１０４によって実行されるクライアントモジュール２０２のクライアント保存プロセスと、情報サーバ１０２によって実行されるサーバモジュール３０２の保存プロセスから構成される情報保存プロセスを使用し、このクレジットカード番号を保存する。
【００２０】
組織が受け取った新しい顧客情報は、クライアントシステム１０４が受け付け、新しい顧客データ２０６として保存する。新しい顧客の場合には、この情報には、通常、名前、住所、及びクレジットカード情報を含む顧客の個人的な詳細事項が含まれている。一方、組織の既存の顧客の場合には、新しい顧客データには、顧客が組織との会計トランザクションを実行する際に使用することを所望する新しいクレジットカードのクレジットカード情報が含まれるている。このクレジットカード情報は、標準的な検証法を使用して検証されることになるが、これには、信用調査所にコンタクトし、当該顧客が不良クレジットリスクを有していないことを確認する段階が含まれる。
【００２１】
クレジットカードの詳細事項の検証が完了した後に、クライアントシステム１０４は、図４に示されているように、クライアント情報保存プロセスを実行する。このプロセスは、段階４０２において、クレジットカード番号を２つの部分に分割する段階によって開始される。この例示の実施例においては、１６桁のクレジットカード番号を、番号の中央の８桁から構成される第１部分と、最初の４桁と最後の４桁によって構成される第２部分という２つの部分に分割する。但し、後述するように、使用する分割法が判明している限り、多くの方法によってこの番号を分割可能であることは明らかである。次いで、段階４０４において、この顧客に割り当てられた一意の顧客番号を含む要求メッセージを作成する。この最初の部分は、次に示すとおりである。
【００２２】
【表２】
2005522775.tif 000004
【００２３】
段階４０６において、このメッセージにデジタル署名を施す。即ち、このメッセージに署名するべく、メッセージコンテンツからハッシュ値を生成し、この結果生成されたハッシュ値をクライアントシステム１０４のプライベート暗号化キーによって暗号化するのである。尚、すべての暗号化は、ｈｔｔｐ：／／ｗｗｗ．ｒｓａ．ｃｏｍに記述さている標準的なＲＳＡパブリックキー暗号化方式に基づくものであるが、この代わりに、その他の暗号化方式を使用可能であることは明らかである。そして、クライアントシステム１０４の署名であるこの暗号化されたハッシュを、次のようにメッセージに付加する。
【００２４】
【表３】
2005522775.tif 000005
【００２５】
段階４０８において、このメッセージの全体を情報サーバ１０２のパブリック暗号化キーを使用して暗号化する。この結果、このメッセージを暗号解読できるのは、情報サーバ１０２のみとなる。そして、段階４１０において、この暗号化したメッセージを、ＴＣＰ／ＩＰなどの適切な通信プロトコルを使用して情報サーバ１０２に送信する。そして、本プロセスは、段階４１２において、情報サーバ１０２から回答を受信するべく待機することになる。
【００２６】
クライアントシステム１０４が回答を待っている間に、情報サーバ１０２は、図５に示されているように、情報保存サーバプロセスを実行する。即ち、段階５０２において、情報サーバ１０２は、クライアント１０４から送信された暗号化されたメッセージを受信する。段階５０４において、このメッセージを情報サーバのプライベートキーを使用して暗号解読する。そして、暗号解読が完了すると、段階５０６において、メッセージの内容をクライアントシステム１０４のデジタル署名を使用して検証する。これには、署名を暗号解読して、メッセージ内に含まれているハッシュ値を取得する段階が含まれている。尚、この暗号解読プロセスにおいては、クライアントシステムのパブリックキーを使用するが、クライアントシステム１０４にセキュリティ侵害が発生していないとすれば、これにより、そのメッセージがクライアントシステム１０４からのものであることが確認される。次いで、メッセージコンテンツからハッシュ値を生成し（この場合に、デジタル署名自体は無視される）、クライアントシステム１０４から受信したハッシュ値と比較する。そして、２つのハッシュ値が同一であれば、それは、そのメッセージが損傷しておらず、伝送中に変更されたり、壊れたりしていないことを示している。この段階で、情報サーバ１０２は、メッセージの検証を完了し、次に示すように、顧客番号と、クレジットカード番号の中央の８桁を具備している。
【００２７】
【表４】
2005522775.tif 000006
【００２８】
段階５０８において、セキュアハッシュサーバ１０６を使用して顧客番号をハッシュする。即ち、ＴＣＰ／ＩＰを使用し、インターネット１１０を介して顧客番号をセキュアハッシュサーバ１０６に送信するのである。尚、この情報サーバ１０２とセキュアハッシュサーバ１０６間におけるすべての通信の際には、前述のように、デジタル署名を施すと共に暗号化することにより、セキュリティを強化している。セキュアハッシュサーバ１０６は、セキュアハッシュサーバ１０６にのみ判明している堅牢な一方向の暗号ハッシュ関数を使用して顧客番号からハッシュ値を生成する。例えば、セキュアハッシュサーバ１０６は、顧客番号と、対応するハッシュ値間における次のような一方向の変換を提供することができよう。
【００２９】
【表５】
2005522775.tif 000007
【００３０】
尚、使用可能なハッシュ関数には、ｗｗｗ．ｒｓａ．ｃｏｍにおいてＲＳＡから提供されているＭＤ５などの標準的なハッシュ関数が含まれるが、クライアントシステム１０４と情報サーバ１０２の両方にセキュリティ侵害が発生した場合にも、依然として、第三者が顧客データベース２０４とレジストリ３０４のレコードをマッチングすることができないように、ハッシュ関数を非標準の開示されていないハッシュ関数にすることが好ましい。尚、このような好適なハッシュ関数は、標準的なハッシュ関数の変更に基づいたものであってよい。例えば、まず顧客番号の中の選択した桁を交換した後に、これをＭＤ５ハッシュ関数への入力として使用するハッシュ関数を使用することができよう。
【００３１】
次いで、この結果生成されたハッシュ値が、セキュアハッシュサーバ１０６から情報サーバ１０２に送信され、段階５１０において、これをデータベースキーとして使用し、顧客のクレジットカード番号の中央の８桁を保存することになる。即ち、ハッシュされた顧客番号によってインデックス付けされた状態で、この部分的なクレジットカード番号をレジストリ３０４内に、次のように保存するのである。
【００３２】
【表６】
2005522775.tif 000008
【００３３】
ハッシュ関数を、部分的なクレジットカードの保存から物理的に分離することによって向上したセキュリティを提供するべく、情報サーバ１０２上に保存されているハッシュ関数ではなく、セキュアハッシュサーバ１０６を使用している。
【００３４】
次いで、段階５１４において、セキュアハッシュサーバ１０６を使用し、このクレジットカードの桁を、例えば、次のようにハッシュする。
【００３５】
【表７】
2005522775.tif 000009
【００３６】
そして、段階５１６において、このハッシュしたクレジットカードの桁を顧客番号と共に回答メッセージ内に格納する。そして、段階５１８において、この回答メッセージにデジタル署名を施す。これには、顧客番号及びハッシュされたクレジットカードの桁のハッシュ値を生成する段階と、この結果生成されたハッシュ値を情報サーバ（ＩＳ）１０２のプライベートキーを使用して暗号化する段階と、が含まれる。この結果、このメッセージは、つぎのようなものになる。
【００３７】
【表８】
2005522775.tif 000010
【００３８】
段階５２０において、このメッセージをクライアントシステムのパブリックキーによって暗号化し、この暗号化した回答を段階５２２においてクライアントシステム１０４に送信する。
【００３９】
図４を再度参照すれば、受信したこの暗号化された回答を、段階４１４において、クライアントシステムのプライベートキーを使用して暗号解読し、段階４１６において、前述のように、この回答を検証する。そして、段階４１８において、この回答に含まれている暗号化されたクレジットカードの桁をクレジットカード番号の第２部分と組み合わせることにより、暗号化されており、恐らくは、無効な顧客のクレジットカード番号を形成する。そして、段階４２０において、データベースキーとして顧客番号によってインデックス付けされた状態で、この符号化されたクレジットカード番号を次のように顧客データベース２０４内に保存する。
【００４０】
【表９】
2005522775.tif 000011
【００４１】
従って、顧客データベース２０４が盗難に遭ったとしても、有効なクレジットカード番号が漏洩することにはならない。
【００４２】
同様に、情報サーバ１０２上に保存されているレジストリ３０４は、次のようになっている。
【００４３】
【表１０】
2005522775.tif 000012
【００４４】
このレジストリ３０４内に保存されているのは、クレジットカード番号の第１部分のみであるため、レジストリ３０４が盗難に遭った場合にも、クレジットカード番号が漏洩することにはならない。更には、レジストリ３０４は、ハッシュされた顧客番号によってインデックス付けされているため、レジストリ３０４内に保存されているクレジットカード部分と顧客データベース２０４内に保存されているその補完部分間には、明白且つ直接的なリンクが存在していない。従って、クレジットカード番号を再構築するには、窃盗犯は、顧客データベース２０４、レジストリ３０４、及びセキュアハッシュサーバ１０６によって使用されたハッシュ関数にアクセスする必要があると共に、２つの部分を組み合わせる方法について知る必要があるのである。
【００４５】
尚、この例示の実施例においては、中央の８桁を抽出するという比較的簡単な方法によってクレジットカード番号を分割する段階が含まれているが、この代わりに、例えば、すべて１つ飛ばしで桁を抽出するなどの更に複雑な方法によってクレジットカード番号を分割することも可能であろう。又、顧客情報のその他の属性によって変化させるなど、分割シーケンスを基本的にそれぞれの顧客ごとに固有のものにすることにより、これを更に複雑なものにすることも可能であろう。例えば、顧客の誕生日や、顧客名のハッシュなどのその他の属性から導出された桁の擬似ランダムサンプルを取得することにより、クレジットカード番号を分割することができよう。多くの複雑な分割法を使用することにより、両方のデータベースにアクセス可能な者がシーケンス生成プロセスコードにアクセスすることなしにクレジットカード番号を再構築する可能性を極めて低いものにできることは明らかである。この結果、本情報保存システムによれば、従来技術による保存システムと比べて、格段に向上したセキュリティレベルが提供されることになる。
【００４６】
情報サーバ１０２は、クライアントシステム１０４を所有及び操作する組織と同一の組織が所有し操作することも可能であるが、この代わりに、クライアント組織に対して有償で情報保存サービスを提供する第２組織が所有することも可能である。尚、クライアント組織が顧客のクレジットカード番号を利用するには、当然のことながら、クレジットカードのトランザクションを処理するべく、いずれかの時点においてクレジットカード番号を再アセンブルしなければならない。このトランザクション処理は、クライアントシステム１０４によって実行されるクライアントモジュール２０２のクライアントトランザクションプロセスと、情報サーバ１０２によって実行されるサーバモジュール３０２のトランザクションサーバプロセスから構成されるトランザクションプロセスを使用して実行される。このトランザクションプロセスの２つの好適な実施例は、以下のとおりである。
【００４７】
まず、トランザクションプロセスの第１の好適な実施例においては、クライアントシステム１０４は、図６に示されているように、クライアントトランザクションプロセスを実行する。即ち、例えば、クライアント組織の製品及び／又はサービスを発注することにより、組織の顧客に対して、料金が課金されることになる。これは、演算装置上で稼働するウェブブラウザアプリケーションを顧客が使用し、例えば、インターネット１１０を介してクライアントシステム１０４のウェブサーバ及びトランザクションエンジン（図示されてはいない）にアクセスすることによって（或いは、なんらかのその他の標準的な方法によって）実現することができよう。この顧客のトランザクションは、当初、少なくとも当該顧客の識別番号とトランザクションの金額によって識別される。そして、このクライアントトランザクションは、段階６０２において、顧客の符号化されたクレジットカード番号を顧客データベース２０４から取得した際に始まることになる。段階６０４において、この符号化されたクレジットカード番号を、前述のように符号化された部分と符号化されていない部分という２つの部分に分割する。そして、段階６０６において、顧客番号、顧客のクレジットカード番号の符号化された（ハッシュされた）部分、及びそのトランザクションに割り当てられた一意のトランザクション番号を含む要求メッセージを次のように生成する。
【００４８】
【表１１】
2005522775.tif 000013
【００４９】
次いで、それぞれ段階６０８〜段階６１２において、このメッセージにデジタル署名を施し、情報サーバ１０２のパブリックキーによって暗号化した後に、情報サーバ１０２に送信する。そして、段階６１４において、本プロセスは、情報サーバ１２０から回答を受信するべく待機する。この間に、情報サーバ１０２は、図７に示されているように、サーバトランザクションプロセスを実行する。即ち、この暗号化されたメッセージを段階７０２において受信した後に、段階７０４において、このメッセージを情報サーバ１０２のプライベートキーによって暗号解読し、段階７０６において、この暗号解読したメッセージをクライアントシステム１０４のデジタル署名を使用して検証する。段階７０８において、顧客番号をハッシュして、レジストリ３０４用のデータベースキーを生成する。そして、段階７１０において、このキーを使用して、レジストリ３０４から顧客のクレジットカード番号の第１部分を取得する。段階７１２において、この取得した部分的なクレジットカード番号をハッシュし、段階７１４において、このハッシュした部分的なクレジットカード番号をメッセージ内のハッシュされている値と比較する。そして、これら２つの値が等しくない場合には、段階７１８において、当該顧客データが有効ではなかったことを示すエラーコードを含む回答メッセージを生成する。一方、値が等しい場合には、段階７２０において、次のように、部分的なクレジットカード番号と一意のトランザクション番号を含む回答を生成する。
【００５０】
【表１２】
2005522775.tif 000014
【００５１】
いずれの場合にも、それぞれ段階７２２〜段階７２６において、回答にデジタル署名を施し、この署名した回答をクライアントシステム１０４のパブリックキーを使用して暗合化し、この暗合化した信号回答をクライアントシステム１０４に送信することになる。
【００５２】
図６を再度参照すれば、段階６１６において、この回答をクライアントシステム１０４のプライベートキーを使用して暗号解読し、次いで、段階６１８において、この回答を検証する。そして、段階６２０において、この回答がエラーを通知していると判定された場合には、段階６２２において、当該トランザクションを拒否し、エラーを処理した後に、クライアントトランザクションは終了することになる。一方、回答がエラーを通知するものではない場合には、段階６２３において、回答内のトランザクション番号をオリジナルメッセージ内のトランザクション番号と比較し、それらが同一であることを確認する。そして、同一でない場合には、段階６２２において、当該トランザクションを再度拒否し、エラーを処理することになる。一方、そうでない場合には、段階６２４において、その回答によって返されたトランザクション番号を使用し、対応する要求メッセージを判定する（尚、この図６のクライアントトランザクションプロセスは、単一のプロセスとして示されているが、システムの様々なコンポーネントの待ち時間に鑑み、要求メッセージの生成及び送信と、回答の処理を別個のプロセスとして実行することも可能である）。
【００５３】
段階６２６において、情報サーバ１０２から受信した回答内に含まれている第１部分と、顧客データベース２０４から取得した第２部分から顧客の完全なクレジットカード番号を再構築する。そして、段階６２８において、クライアントシステム１０４のトランザクションモジュール２０８を使用し、このトランザクションを処理する。これには、銀行などのトランザクション取得者が所有及び操作するトランザクションサーバ１０８に対する完全なクレジットカード番号の伝送が必要となる。この完全なクレジットカード番号の通信は、情報保存システムが完全なクレジットカード番号を伝送するときにのみに行われる。この伝送の際には、クライアントシステム１０４のデジタル署名を格納すると共に、トランザクションサーバ１０８のパブリックキーによってメッセージを暗号化することにより、保護することが好ましいが、この代わりに、トランザクション取得者が使用しているその他の方法によって保護することも可能である。又、セキュリティを更に向上させるべく、インターネット１１０などの公衆通信ネットワークではなく、プライベートなネットワークを介して、この完全なクレジットカード番号を送信することも可能である。
【００５４】
トランザクション取得者に対するトランザクションの詳細事項の伝送が完了すると、段階６３０において、このクレジットカード番号を破壊し、クライアントトランザクションプロセスは終了する。
【００５５】
次に、トランザクションプロセスの第２の好適な実施例においては、クライアントシステム１０４ではなく、情報サーバ１０２がトランザクション処理を実行する。この実施例においては、図８に示されているように、クライアントシステム１０４がクライアントトランザクションプロセスを実行する。即ち、段階８０２において、顧客の符号化されたクレジットカード番号を顧客データベース２０４から取得する。そして、段階８０４において、次のように、符号化されたクレジットカード番号、顧客番号、及びトランザクション番号を含む要求メッセージを構築する。
【００５６】
【表１３】
2005522775.tif 000015
【００５７】
次いで、段階８０６〜段階８１０において、この要求メッセージに署名し、これを暗号化した後に、情報サーバ１０２に送信する。そして、段階８１２においてクライアントシステム１０４が情報サーバ１０２から回答を受信するべく待機している間に、情報サーバ１０２は、図９に示されているように、サーバトランザクションプロセスを実行する。即ち、第１の好適な実施例におけると同様に、段階９０２〜段階９０６において、このメッセージを、受信し、暗号解読し、検証し、段階９０８において、顧客番号をセキュアハッシュサーバ１０６を使用してハッシュする。そして、段階９１０において、この結果生成されるハッシュ値をデータベースキーとして使用し、次のように、レジストリ３０４から顧客のクレジットカード番号の中央の８桁を受信するのである。
【００５８】
【表１４】
2005522775.tif 000016
【００５９】
【表１５】
2005522775.tif 000017
【００６０】
次いで、段階９１２において、これらの中央の８桁をセキュアハッシュサーバ１０６を使用してハッシュし、段階９１４において、このハッシュ値を、クライアントシステム１０４から受信したメッセージ内に含まれている符号化されたクレジットカード番号の中央の８桁によるハッシュ値と比較する。そして、これらのハッシュ値が等しくなければ、段階９１８において、当該顧客データが有効ではなかったことを通知するエラーコードを含む回答メッセージを生成する。一方、これらの値が等しい場合には、段階９２０において、顧客の完全なクレジットカード番号を再構築する。そして、段階９２１において、情報サーバ１０２のトランザクションモジュール２０８を使用し、インターネット１１０を介して、この完全なクレジットカード番号を含むトランザクションの詳細項目を最終的な処理のためにトランザクションサーバ１０８に送信する。次いで、段階９２２において、使用済みの再構築されたクレジットカード番号を破壊し、段階９２３において、トランザクション結果をインターネット１１０を介してトランザクションサーバ１０８から受信する。或いは、この代わりに、トランザクションサーバ１０８を所有及び操作する組織と同一の組織が情報サーバ１０２を所有し操作している場合には、顧客のクレジットカード番号の通信は、組織の安全な内部ネットワーク内において、そのすべてを実行可能である。そして、トランザクションが完了した後に、段階９２４において、次のように、トランザクション結果と一意のトランザクション番号を含む回答メッセージを作成する。
【００６１】
【表１６】
2005522775.tif 000018
【００６２】
次いで、段階９２６〜段階９３０において、この回答にデジタル署名を施し、これをクライアントシステムのパブリックキーを使用して暗号化した後に、クライアントシステム１０４に送信する。
【００６３】
図８を再度参照すれば、段階８１２において、この暗号化及び署名された回答メッセージを受信し、段階８１４において、暗号解読し、段階８１６において、その内容を検証する。段階８１８において、前述のように、回答に含まれているトランザクション番号を使用して、対応する要求を識別する。そして、段階８２０において、トランザクション結果を必要に応じて処理する。尚、トランザクションデータは、一意のトランザクション番号によってキー付け可能である。又、この回答メッセージ内における又はこの回答メッセージ自体の盗聴によって得られる情報は、第三者にとって有用となるには不十分なものである。又、クライアントシステム１０４が、完全なクレジットカード番号に対してアクセスすることは絶対にない。
【００６４】
例えば、顧客がクライアント組織における自分の口座を取り消す場合などのように、しばしば、顧客のクレジットカード情報を情報保存システムから削除することが必要になる。これは、クライアントコンピュータ１０４によって実行されるクライアント削除プロセスと、情報サーバ１０２によって実行されるサーバ削除プロセスから構成される情報削除プロセスによって実現される。顧客のクレジットカード情報を削除するべく、クライアントシステム１０４は、図１０に示されているように、クライアント削除プロセスを実行する。即ち、顧客のクレジットカード情報を削除するために、このプロセスに対して顧客番号が提供されると、段階１００２において、顧客の符号化されたクレジットカード番号を顧客データベースから取得する。次いで、段階１００４において、顧客番号と、顧客のクレジットカード番号の符号化された桁を含む削除要求メッセージを生成する。そして、段階１００６において、前述のように、このメッセージに署名し、これを暗号化した後に、情報サーバ１０２に送信する。情報サーバ１０２は、図１１に示されているように、サーバ削除プロセスを実行する。即ち、情報サーバ１０２は、段階１１０２において、この削除要求メッセージを受信する。段階１１０４において、このメッセージを暗号解読し、検証する。そして、段階１１０６において、メッセージ内に含まれている顧客番号をセキュアハッシュサーバ１０６を使用してハッシュし、段階１１０８において、このハッシュ値をデータベースキーとして使用して、レジストリ３０４から顧客のクレジットカードの桁を取得する。段階１１１０において、これらの桁をハッシュし、このハッシュ値を削除要求メッセージ内に含まれているハッシュ値と比較する。そして、段階１１１２において、これらの値が等しいということが検出されない場合には、段階１１１４において、エラー回答メッセージを生成する。一方、そうでない場合には、段階１１１６において、当該顧客のクレジットカードの桁を含むレジストリ３０４内のレコードを削除し、段階１１１８において、次のように、顧客データの削除に成功したことを通知すると共に、その顧客番号を示す回答メッセージを生成する。
【００６５】
【表１７】
2005522775.tif 000019
【００６６】
いずれの場合にも、前述のように、段階１１２０において、この回答メッセージに署名し、暗号化する。そして、段階１１２２において、この暗号化及び署名したメッセージをクライアントシステム１０４に送信することになる。図１０を再度参照すれば、段階１００８において、この回答メッセージをサーバ１０２から受信する。そして、段階１０１０において、このメッセージの暗号解読及び検証を行う。そして、段階１０１２において、情報サーバ１０２上においてエラーが発生したことをこのメッセージが通知している場合には、段階１０１４において、適切なエラー処理を実行し、本プロセスは終了することになる。さもなければ、段階１０１６において、顧客のクレジットカード情報を顧客データベース２０４から除去し、本プロセスは終了する。
【００６７】
この削除プロセスにおいては、いずれの時点においても、クライアントサーバ１０４及び情報サーバ１０２が、いずれも、完全なクレジットカード番号にアクセスしていないことが重要である。又、クライアントシステム１０４と情報サーバ１０２間のメッセージを直接的に盗聴することにより、顧客のクレジットカード番号を取得することも不可能である。
【００６８】
この情報保存システムは、いくつかの利点を提供しており、以上は、その中のいくつかについて説明したものである。例えば、情報サーバ１０２又はクライアントシステム１０４のコンプロマイズ（セキュリティ侵害）により、そのセキュリティ侵害の期間中に課金された（情報サーバ１０２のセキュリティ侵害の場合）、又は初めて入力された（クライアントシステム１０４のセキュリティ侵害の場合）顧客のクレジットカードの口座にセキュリティ侵害が発生する可能性はあるものの、いずれの時点においてもクレジットカード情報の全部がコンプロマイズされる（危険に晒される）ことがないため、この場合にも、その他の顧客のクレジットカード口座が危険に晒されることはない。又、顧客データベース２０４とレジストリ３０４の両方にセキュリティ侵害が発生した場合にも、顧客データベース２０４及びレジストリ３０４内のデータレコードを関連付けるには、セキュアハッシュサーバ１０６が必要であるため、クレジットカード番号が危険に晒されることはない。但し、レジストリ３０４が消失すると、トランザクションの処理が不可能になるであろう。このため、レジストリ３０４の安全なリモートミラーリングが好ましい。同様に、セキュアハッシュサーバ１０６が消失した場合にも、トランザクションの処理が不可能になるであろう。しかしながら、セキュアハッシュサーバ１０６をバックアップすることにより、この問題も解決されよう。
【００６９】
本システムにおいては、送信者の認証とメッセージの完全性及びプライバシーを提供するべく、パブリックキー暗号化法を使用して、クライアントシステム１０４とサーバ１０２、１０６、１０８間におけるリンクを保護している。これらのセーフガードは、２つのデータベースを物理的に分離することが望ましいこと、及び通信のセキュリティ侵害に付随するリスクを理由して使用されているものである。
【００７０】
以上、クレジットカード番号の保存の観点から、好適な実施例について説明したが、いくつかの基準を満足するあらゆる種類の情報に本システムを適用可能であることは明らかであろう。これらの基準は、まず第１には、情報を複数の部分に分割できるというものであり、且つ、これらの部分は、そのいずれもが、その他の１つ或いは複数の部分が欠けた場合に、その価値がなくなるものでなければならない。一例として、本システムを使用し、リストを２つに分割することによってクレジットカード番号のリストを保護することは不可能であり、この理由は、リストのそれぞれの部分が、完全なリストでない場合にも、その他の部分の消失とは無関係に、価値を保持するからである。そして、第２の基準として、情報は、消失部分の再生成を不可能にするべく、分割可能でなければならない。この再生成が困難であればあるほど、その保護は良好なものになる。
【００７１】
例えば、８つの消失桁を有するクレジットカードは、すべての可能な組み合わせを一巡することにより、試行錯誤によって再生成することは可能であるものの、１つの試行当たりに１秒かかるとすれば、これには３年を要することになる。一方、クレジットカード番号は、チェックデジットシステムを使用して生成されており、単一の消失桁であれば、その他の１５桁から再生成可能であるため、単一の桁を分離することによっては、クレジットカード番号を保護することはできない。別の例として、本システムを使用してクレジットカードの有効期限を保護したとしても、それは極めて脆弱なものにしかならないであろう。即ち、第１桁には、１ビットの情報のみ(常に、０又は１）を、第４桁には、最大２ビットしか有していない（この理由は、クレジットカードが、通常、将来最大３年以内に失効するように発行されているためである）４桁の量として（例：０３／０２）、存在し得るものは、非常に限られており、最初の２つの桁を分割した場合に、後半の２つに関して存在し得るものは、最大で４つであり、第１及び第４を分割したとしても、存在し得るものは、６つでしかない。従って、この４桁の量の場合には、まず、事前処理を施さない限り、本情報保存システムを使用して十分に保護することはできない。
【００７２】
このような事前処理は、多くの方法で実行可能であり、その一例は、０〜９の桁のランダムシーケンス（例：「４９６０５８２７１３」）と、必要な桁のオフセットを付与するキー（この場合には、「４９４７」）を生成する方法である。この例においては、オフセットは、シーケンスの第４、第９、第４、及び第７桁を指定しており、これにより、「０３０２」が得られる。従って、ランダムシーケンスとキーの組み合わせとして、４桁の量を符号化することができる。即ち、なんらかの方法で４桁のキーをランダムシーケンスと組み合わせることが可能であり（例えば、４桁のキーをプレフィックス又はサフィックスとして使用したりランダムシーケンスの中間位置に挿入することにより、１４桁の番号を形成できよう）、この結果生成された番号を、前述のように、第１部分と第２部分に分割することができる。この方法を使用して、例えば、３２ビットのランダム数と、対象のビットを表すオフセットを生成することにより、単一の二進の桁又はビット（０又は１）と同じくらい少ない情報の内容を有するデータを保護することができる。
【００７３】
この情報保存システムを使用すれば、多くの種類の有用な情報を保護することができる。例えば、これを使用することにより、店舗の口座番号（例：銀行の口座番号）、会計数値（例：口座残高）、名前（例：カード所有者情報、患者名）などを安全に保存することができる。更には、このシステムを使用することにより、１つのアプリケーション内において、複数種類の情報を保護することができる。例えば、クレジットカードの例の場合には、クレジットカード番号に加えて、カード所有者の詳細事項を保護することができる。
【００７４】
その外観上の任意の配列性から、数値情報（クレジットカードや口座番号など）は、分割と分離保存に非常に適している。一方、これとは対照的に、テキストや特定のその他の種類の情報の場合には、その分割方法に応じて、それぞれの構成要素が、ある程度の「可読性」を有することになるため、一般的には、分割に十分に適してはいない。但し、情報を事前にスクランブルしたり、適切な復号段階なしには理解できないようにするなんらかの方法によって符号化することにより、このシステムを使用して符号化情報を効果的に分割し保存することが可能である。更には、大部分の符号化法は、符号化情報が完全であって損傷していないことを、その復号の要件としている。特に、暗号化された文書などの暗号化された情報アイテムは、暗号化された文書が完全でない場合には、暗号解読することができない。従って、前述のように、文書を暗号化した後に、複数の部分に分割し、それらを別途に保存することができよう。
【００７５】
これにより、任意のコンテンツを有する文書を安全に保存することができる。尚、このプロセスは、テキスト文書に限定されるものではなく、これを使用することにより、電子的に表現可能なあらゆるタイプの情報又はデータを安全に保存可能であることが明らかであろう。
【００７６】
最後に、２つの構成要素に分割する方法は、単純であり、且つ、大部分のケースにおいて十分なものである。しかしながら、このシステムを拡張し、２つを上回る数の構成要素に情報を分割することにより、共謀によるセキュリティ侵害のリスクを更に軽減可能であることは明らかであろう。但し、更なる分割を使用する必要性がないことも明らかであろう。入力情報から複数の構成要素（これらから入力情報を再生成可能であり、これらの構成要素は、（場合に応じて、）それ自体が有用であったり、価値を有していたり、理解可能であったりしない）を生成するものであれば、どのような方法でも使用可能である。
【００７７】
作動中のサーバ（例：情報サーバ１０２又はセキュアハッシュサーバ１０６）にアクセスできないことによってシステムが一時的な障害に陥る可能性は、複数の同期したサーバを使用することにより、軽減することができる。但し、この結果、システムの全体的な利用性は向上する一方で、複数のサーバへの接続とそれらの同期の管理における複雑性は増すことになるが、複数のサーバを同期化する技法については、周知であり、既に確立されている。
【００７８】
例えば、このような複雑性を管理するには、複数のサーバとのやり取り（及びそれらの同期）の処理をクライアント機能のその他の部分から分離するべく、クライアントシステム１０４の機能を分割し、３ティア（段）アーキテクチャ（クライアント、ゲートウェイ、及びサーバ）を生成することができる。
【００７９】
このような複数のサーバとの通信においては、例えば、インターネットを使用してアクセスする潜在的に非常に遠隔地のサーバが関係する場合がある。この種の通信には、しばしば、かなりの待ち時間が伴うことになり、このような状況においては、１つのグループとして処理するべく、トランザクションのバッチを１つにグループ化することが有利であろう。このようにすることにより、実行対象の一連のトランザクションが１つのバッチとして１つ又は複数のサーバに送信され、そこで、それらが処理された後に、それぞれのトランザクションの結果が束となって、一緒にクライアントに返されることになる。サーバ上におけるトランザクション処理時間と比べて、通信の待ち時間がが大きい場合には、この方法により、結果的に格段に向上した性能を得ることができる。
【００８０】
前述のように、顧客データベース２０４単独のセキュリティ侵害の場合には、影響はなく（即ち、このデータベース単独では、機密情報を含んでいない）、同一の理由により、サーバレジストリ３０４単独の（或いは、セキュアハッシュサーバ１０６に対するアクセスを伴わない顧客データベース２０４及びサーバレジストリ３０４の）セキュリティ侵害の場合にも、影響はない。しかしながら、この情報保存システムは、クライアントシステム１０４のセキュリティ侵害に対しては脆弱であって、この場合には、この種のセキュリティ侵害によってブルートフォースアタック（総当たり攻撃）が可能となることから、この種のセキュリティ侵害は、顧客データベース２０４へのアクセスを可能にすると共に情報サーバ１０２に対する認可されたアクセスを提供するほどの十分な広がりを有している。即ち、不正なアクセスを得た者が、顧客データベース２０４をレコードごとに処理し、次いで、それぞれのレコードを完成させるべく、情報サーバ１０２に問合せることが可能であって、この結果、本情報保存システムが提供する保護を無効にする可能性があるのである。
【００８１】
このようなセキュリティ侵害を無効にする（又は、制限する）のに使用可能な方法には、いくつかのものが存在する。まず第１に、顧客データベース２０４の所有者のビジネスに適した規則によってクライアントのアクセスを制限することができる。このような規則には、時刻、曜日、ソースＩＰアドレス、トランザクション頻度又は速度（特定の期間内におけるトランザクションの数）のそれぞれ単独又はこれらの組み合わせによる制限を含むことができる。そして、侵害の試み（又は、実際の侵害）の結果としては、アクセスの拒否、アクセスの低速化、又はアラームの起動、或いはこれらの組み合わせが含まれる。又、トランザクションスロットリング（トランザクション間に最小限の時間を強制的に確保する）などの方法により、この種のブルートフォースアプローチ（総当たり攻撃）法を無効化することも可能であり、これにより、アラームの起動やセキュリティ侵害検出の有効化を含む前述の結果を得ることができる。
【００８２】
このシステムを使用している組織の顧客が、彼又は彼女の新しいクレジットカード番号を組織に通知した場合などのように、情報サーバ１０２上のデータを更新する場合には、以前有効であったデータを削除する必要はない。クライアントシステム１１４からトランスペアレントに、情報サーバ１０２は、毎回更新される情報によって上書きするのではなく、バージョン又はタイムスタンプにより、データの古いバージョンをいくつでも記録しておくことができる。この情報サーバ１０２におけるデータの「バージョン化」により、トランザクションのロールバックなどの機能に対するアクセスをクライアントシステム１０４に対して非常に容易に付与することができる。又、この結果、時間又はバージョンによるデータベースのチェックポイント設定も容易に実装可能でることも重要である。
【００８３】
セキュアハッシュサーバ１０６が生成する出力（ハッシュダイジェスト）のすべての情報を使用する必要はなく、セキュアハッシュサーバ１０６の出力サイズ（ビット数）は、偶然の一致が生じないようにするのに必要なレベルであってよいことが容易にわかる。この目的には、大部分のケースにおいて、例えば、６４ビットの使用で十分であり、一般的なハッシュ関数は、その出力ダイジェストにおいて、１６０〜１０２４ビットを生成している。
【００８４】
変換関数（最初の６４ビットのみを使用するものなどの単純なサブセット関数であるか、或いは、更に複雑なもの）を介在させることにより、データベース全体を即時且つ効果的に再キー付け可能なメカニズムを提供することができる（これは、クライアントデータベースにおけるセキュリティ侵害イベントにおいて、よく必要とされるものであろう）。この再キー付けは、それぞれのレコードと共にダイジェスト全体を保存することによって実行可能であり、変換関数の出力に対してのみ比較を実行することになる。変換関数を変更するだけで、基本的に任意サイズのデータベースの再キー付けを効果的且つ即時に実現することができる。
【００８５】
以上、添付図面を参照して説明したので、当業者には、本発明の範囲を逸脱することなしに、多くの変更が明らかであろう。
【図面の簡単な説明】
【００８６】
【図１】情報保存システムの好適な実施例の概略図である。
【図２】情報保存システムのクライアントシステムのブロック図である。
【図３】情報保存システムの情報サーバのブロック図である。
【図４】クライアントシステムによって実行される情報保存クライアントプロセスのフローチャートである。
【図５】情報サーバによって実行される情報保存サーバプロセスのフローチャートである。
【図６】クライアントシステムによって実行されるトランザクションクライアントプロセスの第１の好適な実施例のフローチャートである。
【図７】情報サーバによって実行されるトランザクションサーバプロセスの第１の好適な実施例のフローチャートである。
【図８】クライアントシステムによって実行されるトランザクションクライアントプロセスの第２の好適な実施例のフローチャートである。
【図９】情報サーバによって実行されるトランザクションサーバプロセスの第２の好適な実施例のフローチャートである。
【図１０】クライアントシステムによって実行される情報削除クライアントプロセスのフローチャートである。
【図１１】情報サーバによって実行される情報削除サーバプロセスのフローチャートである。
【図１】
2005522775.tif 000020
【図２】
2005522775.tif 000021
【図３】
2005522775.tif 000022
【図４】
2005522775.tif 000023
【図５】
2005522775.tif 000024
【図６】
2005522775.tif 000025
【図７】
2005522775.tif 000026
【図８】
2005522775.tif 000027
【図９】
2005522775.tif 000028
【図１０】
2005522775.tif 000029
【図１１】
2005522775.tif 000030
【国際調査報告】
2005522775.tif 000031
2005522775.tif 000032