(57)【特許請求の範囲】
【請求項１】
ユーザデータの開示を解析および制御するためのクロークサーバであって、
少なくとも１つのメモリ装置に記憶されたアプリケーションによって、次の各ステップを実行するように適合されたプロセッサを有し、
・ユーザ、該ユーザに関連付けられる第１のクライアント、第１のソースおよびシンクの少なくとも１つを認証するステップ、
・前記第１のクライアントおよび前記第１のソースの少なくとも１つから伝送されるユーザデータを受け取るステップ、
・受け取ったユーザデータを前記ユーザに関連付けるステップ、
・受け取ったユーザデータを前記少なくとも１つのメモリ装置に記憶するステップ、
・記憶したユーザデータにおける演算を実行することによりその演算結果を生成するステップ、
・生成した演算結果を、前記第１のクライアント、前記第１のソースおよび前記シンクの少なくとも１つに伝送するステップ、
前記クロークサーバは、記憶したユーザデータを前記クロークサーバの外部および前記少なくとも１つのメモリ装置から読み出せないように堅牢化されており、
前記クロークサーバは、記憶したユーザデータのシーリングとアンシーリングを行うことを特徴とするクロークサーバ。
【請求項２】
請求項１記載のクロークサーバにおいて、
前記演算結果は、前記ユーザの少なくとも１つにより前記クロークサーバに供給された第１の承認インジケータ、前記第１のクライアント、前記第１のソース、前記シンク、ならびに認証および権限を与えられた第三者の少なくとも一部に基づいて生成されるクロークサーバ。
【請求項３】
請求項２記載のクロークサーバにおいて、
前記第１の承認インジケータは、前記演算に使用される前記ユーザデータおよび前記演算の少なくとも１つを示すものであるクロークサーバ。
【請求項４】
請求項１記載のクロークサーバにおいて、
前記演算結果は、前記ユーザの少なくとも１つにより前記クロークサーバに供給された第２の承認インジケータ、前記第１のクライアント、並びに、前記第１のソースおよび認証を与えられた第三者の少なくとも一部に基づいて伝送されるクロークサーバ。
【請求項５】
請求項４記載のクロークサーバにおいて、
前記第２の承認インジケータは、前記シンクを示すものであるクロークサーバ。
【請求項６】
請求項１記載のクロークサーバにおいて、
前記第１のクライアントは、前記ユーザと明確な情報のやりとりをすること、および、前記ユーザの通常の働きに基づいて前記ユーザから前記ユーザデータを自動的に収集することの少なくとも１つにより、前記ユーザデータを集めるクロークサーバ。
【請求項７】
請求項１記載のクロークサーバにおいて、
前記クロークサーバは、第２のクライアントおよび第２のソースの少なくとも１つからユーザデータを受け取り、
前記クロークサーバは、前記第１のクライアントおよび前記第１のソースの少なくとも１つから受け取ったユーザデータ、ならびに、前記第２のクライアントおよび前記第２のソースの少なくとも１つから受け取ったユーザデータを、ユーザ認証情報、クライアント認証情報、ユーザ特有データおよびユーザ特有識別子の少なくとも一部に基づくユーザと関連付けるクロークサーバ。
【請求項８】
請求項１記載のクロークサーバにおいて、
前記クロークサーバは、匿名化された外部データに関する演算を実行するクロークサーバ。
【請求項９】
ユーザデータの開示を解析および制御するための方法であって、
クロークサーバにおいて、ユーザ、該ユーザに関連付けられる第１のクライアント、第１のソースおよびシンクの少なくとも１つを認証するステップと、
前記クロークサーバにおいて、前記第１のクライアントおよび前記第１のソースの少なくとも１つから伝送されるユーザデータを受け取るステップと、
前記クロークサーバにおいて、受け取ったユーザデータを前記ユーザに関連付けるステップと、
前記クロークサーバにおいて、受け取ったユーザデータを少なくとも１つのメモリ装置に記憶するステップと、
前記クロークサーバにおいて、記憶したユーザデータにおける演算を実行することによりその演算結果を生成するステップと、
前記クロークサーバにより、生成した演算結果を、前記第１のクライアント、前記第１のソースおよび前記シンクの少なくとも１つに伝送するステップと、
を有し、
前記クロークサーバは、記憶したユーザデータを前記クロークサーバの外部および前記少なくとも１つのメモリ装置から読み出せないように堅牢化されており、
前記クロークサーバにおいて、記憶したユーザデータをシーリングするステップと、
前記クロークサーバにおいて、記憶したユーザデータをアンシーリングするステップと、
をさらに有することを特徴とする方法。
【請求項１０】
請求項９記載の方法において、
前記演算結果は、前記ユーザの少なくとも１つにより前記クロークサーバに供給された第１の承認インジケータ、前記第１のクライアント、前記第１のソース、前記シンク、ならびに認証および権限を与えられた第三者の少なくとも一部に基づいて生成される方法。
【請求項１１】
請求項１０記載の方法において、
前記第１の承認インジケータは、前記演算に使用される前記ユーザデータおよび前記演算の少なくとも１つを示すものである方法。
【請求項１２】
請求項９記載の方法において、
前記演算結果は、前記ユーザの少なくとも１つにより前記クロークサーバに供給された第２の承認インジケータ、前記第１のクライアント、並びに、前記第１のソースおよび認証を与えられた第三者の少なくとも一部に基づいて伝送される方法。
【請求項１３】
請求項１２記載の方法において、
前記第２の承認インジケータは、前記シンクを示すものである方法。
【請求項１４】
請求項９記載の方法において、
前記第１のクライアントは、前記ユーザと明確な情報のやりとりをすること、および、前記ユーザの通常の働きに基づいて前記ユーザから前記ユーザデータを自動的に収集することの少なくとも１つにより、前記ユーザデータを集める方法。
【請求項１５】
請求項９記載の方法において、
第２のクライアントおよび第２のソースの少なくとも１つからユーザデータを受け取るステップをさらに有し、
前記関連付けるステップでは、前記クロークサーバにおいて、前記第１のクライアントおよび前記第１のソースの少なくとも１つから受け取ったユーザデータ、ならびに、前記第２のクライアントおよび前記第２のソースの少なくとも１つから受け取ったユーザデータを、ユーザ認証情報、クライアント認証情報、ユーザ特有データおよびユーザ特有識別子の少なくとも一部に基づくユーザと関連付ける方法。
【請求項１６】
請求項９記載の方法において、
前記演算は、匿名化された外部データに関して実行される方法。
【請求項１７】
ユーザデータの開示を解析および制御するための方法であって、
ソースおよびシンクの少なくとも１つによって、少なくとも１つのメモリ装置を含むクロークサーバを認証するステップと、
前記ソースおよび前記シンクの少なくとも１つにおいて、前記クロークサーバから伝送された、前記クロークサーバにおいて前記少なくとも１つのメモリ装置が記憶したユーザデータにおける演算を実行することにより生成された演算結果を受け取るステップと、
を有し、
前記クロークサーバは、記憶したユーザデータを前記クロークサーバの外部および前記少なくとも１つのメモリ装置から読み出せないように堅牢化されており、
前記クロークサーバは、記憶したユーザデータのシーリングとアンシーリングを行うことを特徴とする方法。
【請求項１８】
請求項１７記載の方法において、
前記演算結果は、ユーザの少なくとも１つにより前記クロークサーバに供給された第１の承認インジケータ、クライアント、前記ソース、前記シンク、ならびに認証および権限を与えられた第三者の少なくとも一部に基づいて生成される方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本出願は、２０１４年７月２８日に出願された米国仮出願第６２／０２９７９０号に基づく優先権の利益を主張するものであり、当該仮出願の全体が参照として含められている。
【０００２】
本発明は、人（ユーザ）に関連付けられた人または物についての検索要求に基づくデータ解析（query-based analytics of data）に関する。特定の実施形態は、個々のユーザデータが流出したり想定された以外の目的に使用されたりするリスクを軽減するように個々のユーザデータの開示を制御しながら、検索要求を可能にすることに関する。
【背景技術】
【０００３】
多くの解析システムは、ユーザに関するデータを記憶し、このデータに関する演算を実行し、この演算に基づく個々のユーザに特有の回答を提供する。例えば、推薦システムは、多くのユーザに関するデータを記憶および解析し、個々のユーザのために推薦を行う。他の例では、不正検出システムは、多くのユーザに関するデータを記憶および解析して、ユーザが不正を行っている可能性を推定する。推薦システムの場合、システムの出力は、通常、ユーザ自身に提供される。不正検出システムの場合、システムの出力は、異なる受取者（例えばサービスプロバイダ）に提供される。
【０００４】
このような解析システムは非常に有用であるが、現状のシステムは、ユーザのプライバシーが侵害されるリスクおよびビジネスに経済的な損失をもたらすリスクを有するものである。前者のリスクには複数の類型が考えられる。例えば、運営組織の個々の労働者が、記憶されたデータにアクセスして、個人的な利益を得るために特定の個人の情報を知ることがある。また、ある運営組織が、ユーザの了承を得ることなく、他の運営組織に対して生データを売却することがある。また、運営組織が、ユーザが想定した以外の目的でデータを使用することがある。例えば、ユーザに対して推薦を行う目的でユーザデータを集めた組織が、これらのユーザデータを不正検出のために使用する、個々のユーザに損害を与えるために使用することがある。また、解析システムを運営する組織が、ハッカーがデータを得ることができるような不適切なデータ保護を行うことがある。
【０００５】
これらのリスクはビジネスに直結する。例えば、多くのビジネスがシステム解析を改善するためにユーザデータを混ぜ込むことを望んでいる。このような目的で、複数のビジネス（業界）が互いのデータをやりとりしている。しかし、あるビジネスで適切なデータ保護が行われていたとしても、他のビジネスで不適切なデータ保護が行われていることがある。各ビジネスは、他のビジネスでデータを不当に利用して利益を得ていないかどうか注意を払っている。
【０００６】
このような技術課題を受けて、個々のユーザデータに基づく制御された回答の開示を可能にし、且つ、ユーザデータが流出したり想定された以外の目的に使用されたりするリスクを軽減することができる解析システムが要求されている。
【発明の概要】
【発明が解決しようとする課題】
【０００７】
本発明の一態様によれば、ターゲットとなる検索要求に対応するユーザ情報／ユーザデータの開示を制御するための方法が提供される。この方法は、クロークシステム（cloaked system）において動作するステップ、ターゲットとなる検索要求のソースを認証するステップおよび応答を形成するために使用されるユーザ情報を制御するステップを含んでいる。これら各ステップは、ユーザ情報を供給するユーザもしくはソースにより、または権限を与えられた第三者により確立することができる。
【０００８】
本発明の一態様によれば、ユーザ情報に基づいてターゲットとなる検索要求に対して応答できるように構成された装置が提供される。この装置は、応答を演算するための匿名化凝集データにより、検索要求を認証し且つユーザデータの開示を制御するクロークを含んでいる。
【０００９】
本発明のこれらの又は他の目的、特徴及び利点は、添付図面を参照した以下の詳細な説明によって明らかになる。
【図面の簡単な説明】
【００１０】
【図１】本発明の一実施形態による解析システムを示す概略図である。
【図２】図１の解析システムのクローク要素を示す概略図である。
【図３】図２のクロークにおいてユーザが自身の記録データにアクセスするための処理を示す概略図である。
【図４】図２のクロークにおいてクライアントがユーザの記録データとの接続を受け入れるための処理を示す概略図である。
【図５】複数のクライアントのアクセスによってアップデートおよび認証されたユーザの記録データを示す概略図である。
【図６】図２のクロークにおいてユーザ識別データを使用して同じユーザによる複数のクライアントを見つけるための処理を示す概念図である。
【図７】複数のクライアントのアクセスによってアップデートおよび認証されたユーザ識別データを含むユーザの記録データを示す概略図である。
【図８】複数のデータソース／シンクのアクセスによってアップデートおよび認証されたユーザの記録データを示す概略図である。
【図９】複数のデータシンクのアクセスによって権限が与えられたユーザの記録データを示す概略図である。
【図１０】第三者の権限に関する情報および個々のユーザに対応して認証された第三者のリストを記憶したシステムを示す概略図である。
【発明を実施するための形態】
【００１１】
図１、図２は、本実施形態による解析システム１０を示している。解析システム１０は、クローク１２、クライアント１４、ソース１６およびシンク１８を有している。クローク１２は、ユーザデータ２４を保持しており、このユーザデータ２４を演算部（computations）２８が演算した結果をクライアント１４およびシンク１８に伝送する。ユーザデータ２４は、ユーザに関するデータ（例えば、年齢、性別、心拍数など）およびユーザに関連付けられた装置に関するデータ（例えば、車の位置、スマートウォッチの動作など）である。クライアント１４（ユーザ２０の装置）は、ユーザデータ２４を保持しており、このユーザデータ２４をクローク１２に伝送する。クライアント１４は、自身のユーザデータ２４に基づく演算結果３０を受け取ることができる。ユーザ２０ａは複数のクライアント１４と関連付けられており、各クライアント１４は順番にユーザ２０ａと情報のやりとりを行うことができる。ソース１６は、ユーザデータ２４を保持するシステムであり、ユーザ２０ａ以外の者（図示せず）によって制御される。参照符号２２により示されるように、ソース１６とシンク１８は同一ブロックで構成することができ、これらは、ユーザ２０ａのデータ２４に基づく演算結果３０を受け取るとともに、ユーザ２０ａ以外の者（図示せず）によって制御される。シンク１８はソース１６と同一ブロックとすることができるが、シンク１８がソース１６を有する（含む）ことはない。第三者２１は、クローク１２にアクセスし且つ／又は権限を与えることができる。
【００１２】
クローク１２は、演算部２８および伝送部（transmission）を経由する場合を除いて、クローク１２に記憶されたユーザデータ２４をクローク１２の外部から読み出せないように堅牢化されたシステム／サーバである。クローク１２内のディスクに記憶されたユーザデータ２４が暗号化されている場合、その暗号化キーはシーリングされている。このシーリング機能は信頼できるコンピューティング（trusted computing、Trusted Computing Group TPM specifications）によって定義されている。ディスク暗号化キーは、信頼できる承認者がクローク１２のソフトウェアを承認しない限り、アンシーリングすることができない。加えて、クローク１２は、自身のソフトウェアの起源および内容を証明するための遠隔認証を提供する。クライアント１４とクローク１２の間のデータ伝送およびクローク１２間のデータ伝送は、いずれも暗号化されている。本発明の一実施形態では、堅牢化、シーリング、認証、及び／又は、暗号化は、例えば、本願と同一の出願人による同時係属の米国特許出願第１４／２８３３８３号および米国特許出願第６１／８８２３２１号に従って実行することができる。これら両出願は、その全体が参照として本願に含められている。しかし、堅牢化、シーリング、認証、暗号化は、等価な又は代替のモードを使用しても同様に実行することができる。
【００１３】
ユーザデータ２４は、クライアント１４またはソース１６からクローク１２に到達する。クローク１２は、演算部２８への入力データとして、ユーザ２０ａのデータ２４の一部または全部を使用する。演算部２８には、その他の入力データが入力する。一例では、その他の入力データは、外部システム（図示せず）から受け取った、個々のユーザ２０ａに関連付けられていない入力データ３４（例えば、包括的なデータ、総計的なデータ、分類的なデータなど）とすることができる。他の例では、その他の入力データは、クローク１２または外部システム（図示せず）から受け取った、他の個々のユーザ２０ｂに関連付けられた入力データとすることができる。クローク内または離間して相互接続されたクローク内で入力データを受け取ったとき、他の個々のユーザ２０ｂに関連付けられた入力データは、匿名化機能部３１を介してのみ利用可能となる。
【００１４】
演算部２８は演算結果３０を生成する。この演算結果３０は、ユーザデータ２４の少なくとも一部およびその他の情報を含んでいる。この演算結果３０は、クライアント１４またはシンク１８に伝送される。
【００１５】
例えば、システム１０が動画の推薦を行うとき、ユーザデータ２４は、ユーザ２０ａが取得した動画およびユーザ２０ａに与えられた評価とすることができる。他のユーザ２０ｂのデータベース３２も同様のデータとすることができる。外部データ３４は、演算部２８によって使用されるパラメータとすることができる。出力／結果３０は、ユーザ２０ａに推薦された動画のリストとすることができる。
【００１６】
他のユーザ２０ｂのデータ３２にアクセスするために、演算部２８は、上述したクローク解析システム１２に対して検索要求を行う。このクローク解析システム１２は、演算部２８が動作している装置と異なっていても同一であってもよい。演算部２８は、サンドボックス３８内で動作することができる。このサンドボックス３８は、演算部２８が単一のユーザ２０のデータ２４に直接的にアクセスするのを制限する。サンドボックス３８は、第１の承認インジケータ３６の要求に従って、ユーザデータ２４の集合へのアクセスを制限する。第１の承認インジケータ３６は、演算部２８がユーザデータ２４の演算を実行するか否かを示すものである。一実施形態では、第１の承認インジケータ３６は、単一の認証（承認）情報または複数の認証（承認）情報の集合とすることができる。サンドボックス３８は、演算部２８による演算結果３０が正しいクライアント１４にだけ到達すること、または、演算部２８による演算結果３０が第２の承認インジケータ３７の要求に従って承認されたシンク１８にだけ到達すること、を保証することができる。第２の承認インジケータ３７は、単一の認証（承認）情報または複数の認証（承認）情報の集合とすることができる。サンドボックス３８は、承認のために測定されたコードベースの一部をなす必要があり、演算部２８は、当該測定されたコードベースの一部をなす必要がない。演算部２８は、外部システム（図示せず）から取り込まれたものとし、サンドボックス３８の制御の下で動作することができる。
【００１７】
一実施形態では、図１−図３に示すように、ブロック４０において、ユーザ装置／クライアント１４を介して、ユーザ２０ａがクローク１２で動作するサービスを利用することができる。ユーザ２０ａは、該ユーザ２０ａが使用している装置１４で動作しているアプリケーション（図示せず）を利用することができる。このようなアプリケーション（図示せず）の一例はブラウザである。このような状況において、ユーザ２０ａがクローク１２にアクセスしたとき、クローク１２がユーザ２０ａを認証する（この処理はブロック４２で行われる）。この認証の後、ユーザ２０ａの装置１４から受け取ったデータ２４は、ユーザ２０ａに関連付けられた記録部７０に蓄積される（この処理はブロック４４とブロック４８で行われる）。ブロック５０とブロック５２に示すように、ユーザ２０ａのデータ２４ならびにその他のデータ３２および３４についての演算部２８の演算結果は、ユーザ２０ａが認証した経路を介してのみ伝送される。
【００１８】
クローク１２は、標準的なユーザの名前／パスワード／認証情報（図３−図５の符号８３）を用いた方法を通じて、ユーザ２０ａを認証する。別の実施形態では、クローク１２は、予め構築され且つユーザ記録データ７０に蓄積された通信チャンネル（図示せず）を通じて、ユーザ２０ａにワンタイムパスワード（大きな乱数）を伝送することにより、ユーザ２０ａを認証する。このような通信チャンネル（図示せず）の一例として、ＳＭＳナンバーやＥメールアドレスが挙げられる。ユーザ２０ａは、装置１４内でワンタイムパスワードを入力することによって認証を受ける。あるいは、他の公知のユーザ認証方法を使用することができる。
【００１９】
ユーザ２０ａは、アプリケーション（図示せず）を通じて、クローク１２にデータを入力する。別の実施形態では、アプリケーション（図示せず）が、ユーザ２０ａの装置１４からのデータ２４を自動的に収集してこれをクローク１２に伝送する。加えて、ブロック５０に示すように、ユーザ２０ａまたはアプリケーション（図示せず）は、第１の承認インジケータ３６をクローク１２に伝送する。これにより、演算部２８がユーザデータ２４に関する演算を実行するか否かが決定される。
【００２０】
図１、図２、図４に示す一実施形態では、クローク１２が、単一のクライアント１４からのユーザデータ２４を受け取り、このユーザデータ２４に基づいた演算部２８による演算結果３０を当該単一のクライアント１４に送り返す。このような状況は、例えば、クライアント１４が、スマートフォンやラップトップコンピュータのような、権限を持つユーザ２０ａによってのみアクセス可能な装置である場合に使用される。この場合、クライアント１４からクローク１２に送られて同じクライアント１４だけに戻される伝送データ２４と演算結果３０は、ユーザ２０ａにとってプライバシーを侵害されるリスクが無いものとなる。ユーザ２０ａは、クライアント１４がクローク１２と情報のやりとりを行うのを把握できる場合と把握できない場合がある。この動作のために、クローク１２は、クライアント１４がデータ２４を受け取ること及び演算結果３０を送ることの認証を与えなければならない。これにより、単一のユーザ２０ａのデータ２４が、異なるクライアント１４における他のユーザ２０ｂに漏洩するのを防止することができる。これを実現するために、クローク１２において、以下の各ステップが実行される。
【００２１】
ブロック５４とブロック５８に示すように、クライアント１４とソース１６がクロークサーバ１２に接続されると、クロークサーバ１２は、クライアント１４とソース１６に対し、認証情報（図５、図７、図８の符号８４）を持っているか否かを問い合わせる。
【００２２】
ブロック６０とブロック６２に示すように、クライアント１４が認証情報（図５、図７、図８の符号８４）を持っていないとき、クローク１２は、クライアント１４のために、認証情報（図５、図７、図８の符号８４）と記録データ（図３、図５、図７−図１０の符号７０）を生成する。またクローク１２は、記録データ（図３、図５、図７−図１０の符号７０）の内部に、認証情報（図５、図７、図８の符号８４）を蓄積する。別の実施形態は、クローク１２は、クライアント１４に対して、独自の認証情報（図５、図７、図８の符号８４）を生成すること、および、生成した独自の認証情報（図５、図７、図８の符号８４）をクローク１２に伝送することを要求することができる。
【００２３】
ブロック７２とブロック７４とブロック７８に示すように、クライアント１４が認証情報（図５、図７、図８の符号８４）を既に持っているとき、クローク１２は、認証情報（図５、図７、図８の符号８４）を取得し、ユーザ２０ａの記録データ（図３、図５、図７−図１０の符号７０）を読み出し、取得した認証情報（図５、図７、図８の符号８４）を使用してクライアント１４を認証する。
【００２４】
ブロック６４とブロック６８に示すように、クライアント１４がデータ２４を送ると、クローク１２は、このデータ２４を記録データ（図３、図５、図７−図１０の符号７０）の内部に蓄積する。クローク１２は、必要に応じて演算部２８による演算を実行し、演算結果３０（又はその時点までに蓄積した演算結果３０）をクライアント１４に伝送する。
【００２５】
ここで、認証を実行するための方法は幾つも公知である。例えば、一実施形態では、システムキー、キー識別子（ＩＤ）、公開キー、パスワード、クライアントＩＤ、ワンタイムパスワードなどを認証の実行に使用することができる。
【００２６】
ブロック８０で算出／演算された演算部２８による出力は、ユーザ２０ａによって要求される。この要求はユーザ２０ａが関与することなくクライアント１４によって行われてもよい。いずれにしてもクローク１２が契機（triggered）となって要求が行われる。加えて、ユーザ２０ａまたはクライアント１４は、第１の承認インジケータ３６を伝送する。第１の承認インジケータ３６は、演算部２８によるユーザデータ２４の演算を実行するか否かを示すものである。
【００２７】
図１、図２、図５に示すように、ユーザ２０ａは、複数の装置／クライアント１４（例えば、スマートフォン、タブレット、ラップトップ等）を使用することができる。これらの装置１４のいずれかから受け取られたデータ２４は、クローク１２において同一のユーザ２０ａに関連付けられる。演算部２８によるデータ２４の演算結果３０は、ユーザ２０ａの装置１４へのアクセスを制御しつつ、且つ、ユーザ２０ａのプライバシーを侵害することなく、装置１４のいずれかに伝送される。加えて、ユーザ２０ａまたはクライアント１４は、第１の承認インジケータ３６を伝送する。第１の承認インジケータ３６は、演算部２８によるユーザデータ２４の演算を実行するか否かを示すものである。
【００２８】
ユーザ２０ａに関連付けられた各装置１４のために、クローク１２は、上述した認証情報８４を維持するとともに、装置１４と認証情報８４を照合する。認証情報８４は、各装置１４によって異なり得る。各認証情報８４は、ユーザ記録データ７０に関連付けられている。
【００２９】
ユーザ２０と装置１４がどのように関連付けられているのかを知るために、クローク１２は、上述したユーザ認証情報８３を使用することができる。この場合、クローク１２は、ユーザ認証情報８３（例えば、ユーザの名前やパスワード）をユーザ記録７０に関連付ける。クローク１２においてユーザ２０ａが認証を行ったとき、クローク１２は、装置１４の認証情報８４を取得し、この認証情報８４を対応するユーザ記録７０に関連付ける。
【００３０】
幾つかの状況では、ユーザ２０ａは、クローク１２を認証せず、装置１４とクローク１２の情報のやりとりを知ることがない。この場合、クローク１２は、ユーザ２０ａのアシストを受けることなく、ユーザ２０ａを装置１４に関連付ける。
【００３１】
図１、図２、図６を参照すると、ブロック８８とブロック８９とブロック９１とブロック９２に示すように、ユーザ２０とクライアント１４をマッチさせる方法の１つは、クライアント１４からクローク１２に幾つかのデータ９０を供給することにより実現される。この幾つかのデータ９０は、１）ユーザ２０ａに特有のデータ、および、２）複数のクライアント１４に共通するデータを含むことができる。クライアント１４は、このユーザ特有データ９０またはその一方向ハッシュをクローク１２に送る。ブロック９２に示すように、クローク１２は、ユーザ特有データ９０またはそのデータハッシュを、クライアント１４に関連付けられた記録領域に蓄積する。クローク１２は、異なるクライアントから同一のユーザ特有データ９０またはそのデータハッシュを受け取ると、これらのデータに関連性を持たせる。
【００３２】
別の実施形態では、図１、図２、図７に示すように、クローク１２は、ユーザ特有データ９０またはそのデータハッシュを共有する２つの記録データ７０に基づいて、統合された記録領域９４を生成する。クローク１２は、この統合された記録領域９４でも、クライアント１４から受け取ったデータの記録を継続する。クローク１２は、クライアント１４間の関連付けがなされる前に、ユーザ特有データ９０のマッチングピースまたは幾つかのマッチングハッシュを装置１４の各々から受け取ることを要求する。これにより高確率で同一のユーザ２０ａによって装置１４が使用されることが保証される。しかし、クローク１２は、ユーザ特有データ９０またはそのデータハッシュが全てのクライアント１４に存在することまでは要求しない。
【００３３】
複数の装置１４に存在するユーザ特有データ９０のソースには多くの態様（可能性）がある。１つのソースは、ユーザログイン名、パスワード、サービス名の組み合わせである。ここでサービス名は、例えば、ウェブサイト名またはログインウェブページに伝送されたサービス名とすることができる。ユーザログイン名、パスワード、サービス名の組み合わせは特有なものである。ログイン名とパスワードを検出する方法には多くのものが存在する。例えば、ウェブフォームが暗号化される前におけるキーロギング、ＵＲＬ（例えば、ＨＴＴＰ  ＧＥＴ）やウェブフォーム（例えば、ＨＴＴＰ  ＰＵＴやＰＯＳＴ）におけるログイン情報のモニタリングが含まれる。あるいは、ユーザログイン名とパスワードだけを使用することもできる。ユーザログイン名とパスワードの組み合わせは、高確率で、ユーザにとって特有のものである。他のユーザ特有データ９０は、例えば、クレジットカード番号、クレジットカード番号に所有者の名前とセキュリティコードを組み合わせたもの、ユーザ２０ａの名前と住所を組み合わせたもの、ユーザ２０ａのＥメールアドレス、ウェブサイトから受け取ってブラウザに記憶されるクッキー（クッキーソース名と組み合わされるウェブサイト名）、ウェブページ上でウェブサイトからユーザに伝送される何らかの文字列を含むことができる。これらの他のユーザ特有データ９０は、ウェブサイト名やサービス名において特有なもの又は特有な組み合わせである。後者の例は、アカウント番号や商品購入番号を含んでいる。
【００３４】
ユーザ２０の地理的データは、ユーザ特有データ９０の別の態様となり得る。地理的データは、異なる装置（例えば、スマートフォン、ＧＰＳ搭載車両など）から取得することができる。あるいは、地理的データは、同一の装置であって異なるソースから取得することもできる。例えば、無線ＬＡＮを利用した地理的システムがユーザの位置を記憶するとともに、移動サービス（携帯電話サービス）が基地局からのユーザの位置を記憶することができる。地理的な情報のサンプル（位置や時間）は比較的少ないものであるため、特有のユーザを他のユーザと明確に区別することができる。クローク１２は、地理的なデータを２つのユーザ記録データ７０と比較して、これらが一致する場合には、これらが同一のユーザ２０ａに関するものであると判定する。
【００３５】
ウェブサイトまたはサービスからクライアント１４に伝送されたユーザ特有データ９０を取得するために、クライアント１４は、これらの情報がユーザ２０ａとウェブサイトまたはサービスの間でやりとりされるようになるまで待機する。あるいは、クライアント１４は、自発的に、ユーザ２０ａから独立して、このようなユーザ特有データ９０の伝送を開始することができる。このユーザ特有データ９０の伝送の開始は、ユーザ２０ａがサービスにログインした後、サービスアカウントセットアップページやこれまでに購入した商品のリストを要求することにより実行される。
【００３６】
ウェブサイトまたはサービスにより伝送されるユーザ特有データ９０の信頼性を保証するために、クライアント１４は、まず、ウェブサイトまたはサービスの認証が適切に行われていることを確認する。そのための１つの方法として、ブラウザがウェブサイトまたはサービスの認証を確認することができる。他の方法として、クライアント１４が証明書における署名を照合することができる。
【００３７】
図１、図２、図８に示すように、ソース／シンク２２が複数のユーザ２０のデータ２４を集めてこれをクローク１２に伝送するという状況下において、データ２４、３２、３４がクローク１２内に保持される。ソース／シンク２２が伝送するユーザ記録データ７０の各々は、当該ユーザ２０を他のユーザ２０と識別するための識別子９６を有している。この識別子９６は、ユーザデータ２４に関連付けられていないソース１８により生成された数字または文字列から構成することができる。あるいは、この識別子９６は、ユーザデータ２４に関連付けられた数字もしくは文字列（例えば、名前、住所、アカウント番号等）またはそのデータハッシュから構成することができる。ユーザ２０のデータ２４は、識別子９６を通じて、ユーザ２０に関連付けられたユーザ記録データ７０に蓄積される。ユーザ記録データ７０は、例えば、ソース／シンク２２に関連付けられた認証情報８４を記憶（蓄積）することにより、ソース／シンク２２に関連付けられている。
【００３８】
クローク１２は、データ２４を受け取る前に、ソース／シンク２２を認証する。ソース／シンク２２から受け取った演算部２８によるデータ２４の演算結果３０は、認証情報８４によって決定された通り、同じソース／シンク２２にのみ伝送することができる。認証は、名前／パスワードやＳＳＬで認証された公開キー等の公知の方法によって実行することができる。
【００３９】
クローク１２は、複数のソース／シンク２２から、同じユーザ２０ａに対応するデータ２４を受け取る。クローク１２は、同じユーザ２０ａが所有するデータ２４を認識する。これは、各ソース／シンク２２が同じユーザ２０ａに対して同じ識別子９６を使用しているためである。クローク１２は、同じユーザ２０ａに関連付けられたユーザ記録データ７０に、受け取ったデータ２４の全てを記憶（蓄積）する。クローク１２は、受け取ったデータ２４の各々をソース／シンク２２に関連付ける。受け取ったデータ２４は、ソース特有の識別子９７に関連付けられる。クローク１２は、ソース／シンク２２に送られた演算部２８による演算結果３０がソース／シンク２２からのデータ２４だけに関連付けて使用されることを保証する。加えてソース／シンク２２は、第１の承認インジケータ３６をクローク１２に伝送する。第１の承認インジケータ３６は、各ユーザ２０のために演算部２８によるユーザ２０のデータ２４の演算を実行するか否かを示すものである。
【００４０】
図１、図２、図９に示すように、データ生成部（ソース１６、ユーザ２０、クライアント１４）は、クローク１２に対してユーザデータ２４を伝送する。またクローク１２は、ユーザ２０ａについての演算部２８による演算結果３０を、データ生成部（１４、１６、２０）とは異なるシンク１８に伝送する。データ生成部（１４、１６、２０）は、第２の承認インジケータ３７をクローク１２に伝送する。第２の承認インジケータ３７は、シンク１８が演算部２８による演算結果３０を受け取ることを示す承認シンクインジケータ９９を含むことができる。例えば、シンク１８、承認シンクインジケータ９９の名前を供給すること、または、シンク１８の認証情報（図８の符号８４）を供給することが可能である。データ生成部（１４、１６、２０）が複数のユーザ２０のためにデータ２４を伝送するソース１６である場合、承認シンクインジケータ９９に全てのユーザ２０の情報が供給され、または、承認シンクインジケータ９９に個々のユーザ２０の情報が供給される。加えて、データ生成部（１４、１６、２０）は、クローク１２に対して、第１の承認インジケータ３６を伝送する。第１の承認インジケータ３６は、各ユーザ２０のための承認された演算１０１の集合であって、演算部２８によるユーザ２０のデータ２４の演算を実行するか否かを示すものである。
【００４１】
クローク１２は、データ２４を受け取る前に、データ生成部（１４、１６、２０）を認証する。クローク１２は、シンク１８、承認シンクインジケータ９９をユーザ記録データ７０に関連付ける。クローク１２は、演算部２８による演算結果３０を伝送する前に、シンク１８、承認シンクインジケータ９９を認証する。クローク１２は、ユーザ２０のデータ２４のデータ生成部（１４、１６、２０）によってクローク１２に伝送された第２の承認インジケータ３７に示されたシンク１８、承認シンクインジケータ９９だけが、ユーザ２０のデータ３０に基づいて、演算部２８による演算結果３０を受け取ることを保証する。
【００４２】
別の状況では、データ生成部（ソース１６、ユーザ２０、クライアント１４）が、ユーザデータ２４をクローク１２に伝送し、クローク１２が、ユーザ２０ａについての演算部２８による演算結果３０を、データ生成部（１４、１６、２０）とは異なるシンク１８に伝送する。しかし、データ生成部（１４、１６、２０）は、シンク１８を示しているわけではない。第三者２１は、第１の承認インジケータ３６及び／又は第２の承認インジケータ３７をクローク１２に伝送する。これにより、ユーザ２０、演算部２８、シンク１８を識別することが可能になる。これは、例えば、ユーザ２０ａのデータ２４が法律で保護されるような使用状況に適している。
【００４３】
図１、図２、図１０に示す一実施形態によれば、上述した状況に対してより有用なデータ構造が提供される。すなわちクローク１２は、第三者２１のための認証情報９８を記憶（蓄積）する。またクローク１２は、ユーザ２０に対してどの第三者の認証が要求または許容されているかを示す規則（図示せず）の集合を記憶（蓄積）する。各ユーザ２０のための第２の規則の集合１０２は、ユーザ２０のデータ２４においてどのような動作が許容されているのかを示すものである。総合的に、これらの規則は、ユーザ２０および認証された第三者２１の組み合わせのために、可能な演算の集合（例えば空集合）を規定することができる。
【００４４】
第三者２１は、ユーザ２０ａ、シンク１８および演算部２８の識別子を含むドキュメント（第１の承認インジケータ３６、第２の承認インジケータ３７を含む）を出力することができる。別の実施形態では、一部の第三者２１ａがそのようなドキュメント（第１の承認インジケータ３６、第２の承認インジケータ３７を含む）を出力し、残りの第三者２１ｂが、そのドキュメントの参照、例えばドキュメントに特有の識別子やそのハッシュ（いずれも図示せず）を出力することができる。クローク１２は、公知の技術（例えば、名前／パスワード又はＳＳＬにより認証された公開キー）を使用して、第三者２１の各々を認証する。認証が成功すると、クローク１２は、演算部２８によるユーザ２０のデータ２４の演算を実行して、その演算結果３０をシンク１８に伝送する。
【００４５】
一実施形態では、上記規則が、４つの独立した組織がそれぞれ演算結果３０を出力することを要求する。例えば、４つの独立した組織は、１）演算結果３０を参照するための代理要求を行う組織、２）要求に権限を付与する組織、３）権限の付与が正当であるか否かを照合する組織、４）クローク１２の動作組織とすることができる。
【００４６】
図１、図２、図５、図７に示す一実施形態では、データ記録構造７０を使用して、ソース１６が、複数のユーザ２０についてのデータ２４を集めて、このデータ２４をクローク１２に伝送する。クローク１２は演算結果３０を各々のユーザ２０ａに伝送する。適切なユーザ２０ａが演算結果３０を受け取れるように、ソース１６は、クローク１２に対して、第２の承認インジケータ３７を伝送する。第２の承認インジケータ３７は、各ユーザ２０のためのユーザ認証情報８３をクローク１２に供給するためのものである。クローク１２は、演算結果３０をユーザ２０ａに送る前に、ユーザ認証情報８３を使用してユーザ２０ａを認証する。
【００４７】
１つの方法は、ユーザ名、パスワードまたはパスワードハッシュをソース１６からクローク１２に伝送することである。ユーザ２０ａがクローク１２の幾つかのサービスにアクセスしたとき、クローク１２は、この方法を用いてユーザ２０ａの認証を実行する。あるいは、ソース１６は、ユーザ２０ａへの通信チャンネル（図示せず）、例えばＳＭＳナンバーやＥメールアドレスを規定する。クローク１２は、この通信チャンネル（図示せず）を通じてワンタイムパスワードを伝送し、認証時にクライアント１４がこのワンタイムパスワードを入力することを要求する。
【００４８】
別の実施形態では、ソース１６は、第三者の認証サービスに関連付けられたユーザ識別子（例えば標準化されたオープンＩＤ）を供給する。この場合、クローク１２とユーザ２０ａが協働して、第三者の認証サービスのプロトコル（認証が成功したか否かをクローク１２に知らせるためのものである）を作動させる。
【００４９】
別の実施形態では、クローク１２は、ユーザ認証の結果をソース１６に送る。この場合、クローク１２は、ソース１６との間で認証された通信チャンネル（図示せず）を設ける。ユーザ２０ａとソース１６の間の認証交換は、クローク１２を介して伝送される。クローク１２は、認証交換の詳細を記録および公開することはない。認証交換の最終段階では、認証が成功したか否かがソース１６からクローク１２に報知される。
【００５０】
以上、詳細な実施形態を参照して本発明を説明した。しかし当業者であれば、本発明の思想および範囲から逸脱することなく、様々な設計変更を行うこと、等価な発明構成要素に置換することによって、本発明を実施可能であることが明らかである。加えて、本発明の基本的な思想から逸脱することなく、様々な状況や材料に適合させるための変更を行って、本発明を実施することができる。したがって、本発明の技術的範囲は、これまで詳細に開示した特定の実施形態に限定されるべきものと解釈してはならない。
【図１】
0006054457.tif 000002
【図２】
0006054457.tif 000003
【図３】
0006054457.tif 000004
【図４】
0006054457.tif 000005
【図５】
0006054457.tif 000006
【図６】
0006054457.tif 000007
【図７】
0006054457.tif 000008
【図８】
0006054457.tif 000009
【図９】
0006054457.tif 000010
【図１０】
0006054457.tif 000011