(57)【要約】  ユーザ識別子をリンクするための方法。本方法は、リンク付けサーバによって会社サーバから、エントリを含む第1のデータ構造を受信するステップを含む。各エントリは、ユーザタグ、第1のハッシュされたユーザ情報、および第2のハッシュされたユーザ情報を含む。本方法は、リンク付けサーバによってパートナーサーバから、エントリを含む第2のデータ構造を受信するステップを含む。各エントリは、ブリッジタグ、第1のハッシュされたブリッジ情報、および第2のハッシュされたブリッジ情報を含む。本方法は、リンク付けサーバによって第1のデータ構造から、エントリのうちの第1のエントリを取り出すステップと、リンク付けサーバによって第2のデータ構造から、エントリのうちの第1のエントリを取り出すステップとを含む。本方法は、第1のリンケージを生成するために、第1のデータ構造の第1のエントリのユーザタグを第2のデータ構造の第1のエントリのブリッジタグにリンクするステップを含む。
2020507826.tif 000002
【特許請求の範囲】
【請求項１】
ユーザ識別子をリンクするための方法であって、
リンク付けサーバによって会社サーバから、エントリを含む第1のデータ構造を受信するステップであって、各エントリは、ユーザタグ、第1のハッシュされたユーザ情報、および第2のハッシュされたユーザ情報を含み、各エントリは、クライアントデバイスに関連付けられる、ステップと、
前記リンク付けサーバによってパートナーサーバから、エントリを含む第2のデータ構造を受信するステップであって、各エントリは、ブリッジタグ、第1のハッシュされたブリッジ情報、および第2のハッシュされたブリッジ情報を含み、各エントリは、クライアントデバイスに関連付けられる、ステップと、
前記リンク付けサーバによって前記第1のデータ構造から、前記第1のデータ構造の前記エントリのうちの第1のエントリを取り出すステップと、
前記リンク付けサーバによって前記第2のデータ構造から、前記第2のデータ構造の前記エントリのうちの第1のエントリを取り出すステップと、
前記リンク付けサーバによって、前記第1のデータ構造の前記第1のエントリの前記第1のハッシュされたユーザ情報を前記第2のデータ構造の前記第1のエントリの前記第1のハッシュされたブリッジ情報と比較するステップと、
前記リンク付けサーバによって一致の決定に応答して、第1のリンケージを生成するために、前記第1のデータ構造の前記第1のエントリの前記ユーザタグを前記第2のデータ構造の前記第1のエントリの前記ブリッジタグにリンクするステップと
を含む方法。
【請求項２】
比較するステップは、
前記リンク付けサーバによって、前記第1のデータ構造の前記第1のエントリの前記第1のハッシュされたユーザ情報を文字の第1のセットにパースするステップと、
前記リンク付けサーバによって、前記第2のデータ構造の前記第1のエントリの前記第1のハッシュされたブリッジ情報を文字の第2のセットにパースするステップと、
前記リンク付けサーバによって、文字の前記第1のセットからの文字を文字の前記第2のセットからの文字と比較するステップと
を含む、請求項1に記載の方法。
【請求項３】
前記リンク付けサーバによって前記会社サーバに、前記第1のリンケージを提供するステップをさらに含む、請求項1または2に記載の方法。
【請求項４】
前記リンク付けサーバは、クリーンルーム環境の内部に存在し、
前記会社サーバは、前記クリーンルーム環境の外部に存在し、
前記パートナーサーバは、前記クリーンルーム環境の外部に存在する、請求項1、2または3に記載の方法。
【請求項５】
前記リンク付けサーバによって、前記第1のデータ構造の前記第1のエントリおよび前記第2のデータ構造の前記第1のエントリを除去するステップ
をさらに含む、請求項1から4のいずれか一項に記載の方法。
【請求項６】
前記リンク付けサーバによって前記第1のデータ構造から、前記第1のデータ構造の前記エントリのうちの第2のエントリを取り出すステップと、
前記リンク付けサーバによって前記第2のデータ構造から、前記第2のデータ構造の前記エントリのうちの第2のエントリを取り出すステップと、
前記リンク付けサーバによって、前記第1のデータ構造の前記第2のエントリの前記第1のハッシュされたユーザ情報を前記第2のデータ構造の前記第2のエントリの前記第1のハッシュされたブリッジ情報と比較するステップと
をさらに含む、請求項1から5のいずれか一項に記載の方法。
【請求項７】
前記リンク付けサーバによって、前記第1のデータ構造の前記第2のエントリの前記第1のハッシュされたユーザ情報と前記第2のデータ構造の前記第2のエントリの前記第1のハッシュされたブリッジ情報との間の不一致を決定するステップと、
前記リンク付けサーバによって、前記第1のデータ構造の前記第2のエントリの前記第2のハッシュされたユーザ情報を前記第2のデータ構造の前記第2のエントリの前記第2のハッシュされたブリッジ情報と比較するステップと
をさらに含む、請求項6に記載の方法。
【請求項８】
前記リンク付けサーバによって、前記第1のデータ構造の前記第1のエントリの前記第1のハッシュされたユーザ情報と前記第2のデータ構造の前記第1のエントリの前記第1のハッシュされたブリッジ情報との間の不一致を決定するステップと、
前記リンク付けサーバによって前記第2のデータ構造から、前記エントリのうちの第2のエントリを取り出すステップと、
前記リンク付けサーバによって、前記第1のデータ構造の前記第1のエントリの前記第1のハッシュされたユーザ情報を前記第2のデータ構造の前記第2のエントリの前記第1のハッシュされたブリッジ情報と比較するステップと
をさらに含む、請求項1から5のいずれか一項に記載の方法。
【請求項９】
前記リンク付けサーバによって、前記第1のデータ構造の前記第1のエントリの前記第2のハッシュされたユーザ情報を前記第2のデータ構造の前記第2のエントリの前記第2のハッシュされたブリッジ情報と比較するステップと、
前記リンク付けサーバによって一致の決定に応答して、第1のリンケージを生成するために、前記第1のデータ構造の前記第1のエントリの前記ユーザタグを前記第2のデータ構造の前記第1のエントリの前記ブリッジタグにリンクするステップと、
前記リンク付けサーバによって前記会社サーバに、前記第1のリンケージを提供するステップと
をさらに含む、請求項8に記載の方法。
【請求項１０】
ユーザ識別子をリンクするためのシステムであって、
会社サーバから、エントリを含む第1のデータ構造を受信することであって、各エントリは、ユーザタグ、第1のハッシュされたユーザ情報、および第2のハッシュされたユーザ情報を含み、各エントリは、クライアントデバイスのユーザに関連付けられる、受信することと、
パートナーサーバから、エントリを含む第2のデータ構造を受信することであって、各エントリは、ブリッジタグ、第1のハッシュされたブリッジ情報、および第2のハッシュされたブリッジ情報を含み、各エントリは、クライアントデバイスのユーザに関連付けられる、受信することと、
前記第1のデータ構造から、前記第1のデータ構造の前記エントリのうちの第1のエントリを取り出すことと、
前記第2のデータ構造から、前記第2のデータ構造の前記エントリのうちの第1のエントリを取り出すことと、
前記第1のデータ構造の前記第1のエントリの前記第1のハッシュされたユーザ情報を前記第2のデータ構造の前記第1のエントリの前記第1のハッシュされたブリッジ情報と比較することと、
一致の決定に応答して、第1のリンケージを生成するために、前記第1のデータ構造の前記第1のエントリの前記ユーザタグを前記第2のデータ構造の前記第1のエントリの前記ブリッジタグにリンクすることと
を行うように構成されたリンク付けサーバを含むシステム。
【請求項１１】
前記リンク付けサーバは、
前記第1のデータ構造の前記第1のエントリの前記第1のハッシュされたユーザ情報を文字の第1のセットにパースすることと、
前記第2のデータ構造の前記第1のエントリの前記第1のハッシュされたブリッジ情報を文字の第2のセットにパースすることと、
文字の前記第1のセットからの文字を文字の前記第2のセットからの文字と比較することと
を行うようにさらに構成された、請求項10に記載のシステム。
【請求項１２】
前記リンク付けサーバは、
前記会社サーバに、前記第1のリンケージを提供する
ようにさらに構成された、請求項10または11に記載のシステム。
【請求項１３】
前記リンク付けサーバは、クリーンルーム環境の内部に存在し、
前記会社サーバは、前記クリーンルーム環境の外部に存在し、
前記パートナーサーバは、前記クリーンルーム環境の外部に存在する、請求項10、11または12に記載のシステム。
【請求項１４】
前記リンク付けサーバは、
前記第1のデータ構造の前記第1のエントリおよび前記第2のデータ構造の前記第1のエントリを除去する
ようにさらに構成された、請求項10、11、12または13に記載のシステム。
【請求項１５】
前記リンク付けサーバは、
前記第1のデータ構造から、前記エントリのうちの第2のエントリを取り出すことと、
前記第2のデータ構造から、前記エントリのうちの第2のエントリを取り出すことと、
前記第1のデータ構造の前記第2のエントリの前記第1のハッシュされたユーザ情報を前記第2のデータ構造の前記第2のエントリの前記第1のハッシュされたブリッジ情報と比較することと
を行うようにさらに構成された、請求項10から14のいずれか一項に記載のシステム。
【請求項１６】
前記リンク付けサーバは、
前記第1のデータ構造の前記第2のエントリの前記第1のハッシュされたユーザ情報と前記第2のデータ構造の前記第2のエントリの前記第1のハッシュされたブリッジ情報との間の不一致を決定することと、
前記第1のデータ構造の前記第2のエントリの前記第2のハッシュされたユーザ情報を前記第2のデータ構造の前記第2のエントリの前記第2のハッシュされたブリッジ情報と比較することと
を行うようにさらに構成された、請求項15に記載のシステム。
【請求項１７】
前記リンク付けサーバは、
前記第1のデータ構造の前記第1のエントリの前記第1のハッシュされたユーザ情報と前記第2のデータ構造の前記第1のエントリの前記第1のハッシュされたブリッジ情報との間の不一致を決定することと、
前記第2のデータ構造から、前記第2のデータ構造の前記エントリのうちの第2のエントリを取り出すことと、
前記第1のデータ構造の前記第1のエントリの前記第1のハッシュされたユーザ情報を前記第2のデータ構造の前記第2のエントリの前記第1のハッシュされたブリッジ情報と比較することと
を行うようにさらに構成された、請求項10から14のいずれか一項に記載のシステム。
【請求項１８】
前記リンク付けサーバは、
前記第1のデータ構造の前記第1のエントリの前記第2のハッシュされたユーザ情報を前記第2のデータ構造の前記第2のエントリの前記第2のハッシュされたブリッジ情報と比較することと、
一致の決定に応答して、第1のリンケージを生成するために、前記第1のデータ構造の前記第1のエントリの前記ユーザタグを前記第2のデータ構造の前記第1のエントリの前記ブリッジタグにリンクすることと、
前記会社サーバに、前記第1のリンケージを提供することと
を行うようにさらに構成された、請求項17に記載のシステム。
【請求項１９】
ユーザ識別子をリンクするための方法であって、
リンク付けサーバによって会社サーバから、エントリを含む第1のデータ構造を受信するステップであって、各エントリは、ユーザタグ、第1のハッシュされたユーザ情報、および第2のハッシュされたユーザ情報を含み、各エントリは、クライアントデバイスのユーザに関連付けられる、ステップと、
前記リンク付けサーバによってパートナーサーバから、エントリを含む第2のデータ構造を受信するステップであって、各エントリは、ブリッジタグ、第1のハッシュされたブリッジ情報、および第2のハッシュされたブリッジ情報を含み、各エントリは、クライアントデバイスのユーザに関連付けられる、ステップと、
前記リンク付けサーバによって、前記第1のデータ構造および前記第2のデータ構造に基づいて第3のデータ構造を生成するステップと、
前記リンク付けサーバによって前記会社サーバに、前記第3のデータ構造を提供するステップと
を含む方法。
【請求項２０】
前記第1のデータ構造は、クライアントデバイスに関連する第1の電子メールアドレスおよび前記クライアントデバイスに関連する第1の電話番号を含み、前記第2のデータ構造は、前記クライアントデバイスに関連する第2の電子メールアドレスおよび前記クライアントデバイスに関連する第2の電話番号を含む、請求項19に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
関連出願
本出願は、全体が参照により本明細書に組み込まれる、2017年1月30日に出願された「Annotation of Videos Using Aggregated User Session Data」と題する米国特許出願第15/419,726号の優先権を主張する。
【背景技術】
【０００２】
多くの企業または他の団体は、ユーザのログインおよびパスワードの詳細、個人識別可能情報(単独で、または他の情報と組み合わせて、状況における個人を識別するために使用され得る情報であり、「機密性の高い個人情報(sensitive personal information)」とも呼ばれる)、医療記録などの秘密情報を保持している。インターネット関連のサービスおよび商品を提供する団体は、クライアントコンピューティングデバイスから収集されたウェブデータを捕捉、編成、および分析し得る。ウェブデータは、保護されているデータベースに企業が記憶するユーザ識別可能情報を含み得る。
【発明の概要】
【課題を解決するための手段】
【０００３】
本開示の態様は、一般に、団体間の特定の識別情報のマッピングに関する。
【０００４】
本明細書で開示する一実装形態は、ユーザ識別子をリンクするための方法である。本方法は、リンク付けサーバによって会社サーバから、エントリを含む第1のデータ構造を受信するステップを含む。各エントリは、ユーザタグ、第1のハッシュされたユーザ情報、および第2のハッシュされたユーザ情報を含み、各エントリは、対応するクライアントデバイスに関連付けられる。本方法は、リンク付けサーバによってパートナーサーバから、エントリを含む第2のデータ構造を受信するステップを含み、各エントリは、ブリッジタグ、第1のハッシュされたブリッジ情報、および第2のハッシュされたブリッジ情報を含み、各エントリは、対応するクライアントデバイスに関連付けられる。本方法はまた、リンク付けサーバによって第1のデータ構造から、第1のデータ構造のエントリのうちの第1のエントリを取り出すステップを含む。本方法は、リンク付けサーバによって第2のデータ構造から、第2のデータ構造のエントリのうちの第1のエントリを取り出すステップを含む。本方法は、リンク付けサーバによって、第1のデータ構造の第1のエントリの第1のハッシュされたユーザ情報を第2のデータ構造の第1のエントリの第1のハッシュされたブリッジ情報と比較するステップを含む。本方法は、リンク付けサーバによって一致の決定に応答して、第1のリンケージを生成するために、第1のデータ構造の第1のエントリのユーザタグを第2のデータ構造の第1のエントリのブリッジタグにリンクするステップを含む。
【０００５】
いくつかの実装形態では、比較するステップは、リンク付けサーバによって、第1のデータ構造の第1のエントリの第1のハッシュされたユーザ情報を文字の第1のセットにパースするステップを含む。いくつかの実装形態では、本方法は、リンク付けサーバによって、第2のデータ構造の第1のエントリの第1のハッシュされたブリッジ情報を文字の第2のセットにパースするステップを含む。いくつかの実装形態では、本方法は、リンク付けサーバによって、文字の第1のセットからの文字を文字の第2のセットからの文字と比較するステップを含む。
【０００６】
いくつかの実装形態では、本方法は、リンク付けサーバによって会社サーバに、第1のリンケージを提供するステップを含む。いくつかの実装形態では、リンク付けサーバはクリーンルーム環境の内部に存在し、会社サーバはクリーンルーム環境の外部に存在し、パートナーサーバはクリーンルーム環境の外部に存在する。
【０００７】
いくつかの実装形態では、本方法は、リンク付けサーバによって、第1のデータ構造の第1のエントリおよび第2のデータ構造の第1のエントリを除去するステップを含む。いくつかの実装形態では、本方法は、リンク付けサーバによって第1のデータ構造から、エントリのうちの第2のエントリを取り出すステップと、リンク付けサーバによって第2のデータ構造から、エントリのうちの第2のエントリを取り出すステップと、リンク付けサーバによって、第1のデータ構造の第2のエントリの第1のハッシュされたユーザ情報を第2のデータ構造の第2のエントリの第1のハッシュされたブリッジ情報と比較するステップとを含む。
【０００８】
いくつかの実装形態では、本方法は、リンク付けサーバによって、第1のデータ構造の第2のエントリの第1のハッシュされたユーザ情報と第2のデータ構造の第2のエントリの第1のハッシュされたブリッジ情報との間の不一致を決定するステップと、リンク付けサーバによって、第1のデータ構造の第2のエントリの第2のハッシュされたユーザ情報を第2のデータ構造の第2のエントリの第2のハッシュされたブリッジ情報と比較するステップとを含む。
【０００９】
いくつかの実装形態では、本方法は、リンク付けサーバによって、第1のデータ構造の第1のエントリの第1のハッシュされたユーザ情報と第2のデータ構造の第1のエントリの第1のハッシュされたブリッジ情報との間の不一致を決定するステップを含む。いくつかの実装形態では、本方法は、リンク付けサーバによって第2のデータ構造から、エントリのうちの第2のエントリを取り出すステップを含む。いくつかの実装形態では、本方法は、リンク付けサーバによって、第1のデータ構造の第1のエントリの第1のハッシュされたユーザ情報を第2のデータ構造の第2のエントリの第1のハッシュされたブリッジ情報と比較するステップを含む。
【００１０】
いくつかの実装形態では、本方法は、リンク付けサーバによって、第1のデータ構造の第1のエントリの第2のハッシュされたユーザ情報を第2のデータ構造の第2のエントリの第2のハッシュされたブリッジ情報と比較するステップを含む。いくつかの実装形態では、本方法は、リンク付けサーバによって一致の決定に応答して、第1のリンケージを生成するために、第1のデータ構造の第1のエントリのユーザタグを第2のデータ構造の第1のエントリのブリッジタグにリンクするステップを含む。いくつかの実装形態では、本方法は、リンク付けサーバによって会社サーバに、第1のリンケージを提供するステップを含む。
【００１１】
別の態様では、本開示は、ユーザ識別子をリンクするためのシステムを対象とする。本システムは、会社サーバから、エントリを含む第1のデータ構造を受信するように構成されたリンク付けサーバを含む。各エントリは、ユーザタグ、第1のハッシュされたユーザ情報、および第2のハッシュされたユーザ情報を含む。各エントリは、クライアントデバイスのユーザに関連付けられる。
【００１２】
いくつかの実装形態では、本システムは、パートナーサーバから、エントリを含む第2のデータ構造を受信するように構成されたリンク付けサーバを含む。各エントリは、ブリッジタグ、第1のハッシュされたブリッジ情報、および第2のハッシュされたブリッジ情報を含む。各エントリは、クライアントデバイスのユーザに関連付けられる。
【００１３】
いくつかの実装形態では、本システムは、第1のデータ構造から、第1のデータ構造のエントリのうちの第1のエントリを取り出すように構成されたリンク付けサーバを含む。いくつかの実装形態では、本システムは、第2のデータ構造から、第2のデータ構造のエントリのうちの第1のエントリを取り出すように構成されたリンク付けサーバを含む。いくつかの実装形態では、本システムは、第1のデータ構造の第1のエントリの第1のハッシュされたユーザ情報を第2のデータ構造の第1のエントリの第1のハッシュされたブリッジ情報と比較するように構成されたリンク付けサーバを含む。いくつかの実装形態では、本システムは、一致の決定に応答して、第1のリンケージを生成するために、第1のデータ構造の第1のエントリのユーザタグを第2のデータ構造の第1のエントリのブリッジタグにリンクするように構成されたリンク付けサーバを含む。
【００１４】
いくつかの実装形態では、本システムは、第1のデータ構造の第1のエントリの第1のハッシュされたユーザ情報を文字の第1のセットにパースするように構成されたリンク付けサーバを含む。いくつかの実装形態では、本システムは、第2のデータ構造の第1のエントリの第1のハッシュされたブリッジ情報を文字の第2のセットにパースするように構成されたリンク付けサーバを含む。いくつかの実装形態では、本システムは、文字の第1のセットからの文字を文字の第2のセットからの文字と比較するように構成されたリンク付けサーバを含む。
【００１５】
いくつかの実装形態では、本システムは、会社サーバに、第1のリンケージを提供するように構成されたリンク付けサーバを含む。いくつかの実装形態では、リンク付けサーバは、クリーンルーム環境の内部に存在する。いくつかの実装形態では、会社サーバは、クリーンルーム環境の外部に存在する。いくつかの実装形態では、パートナーサーバは、クリーンルーム環境の外部に存在する。
【００１６】
いくつかの実装形態では、本システムは、第1のデータ構造の第1のエントリおよび第2のデータ構造の第1のエントリを除去するように構成されたリンク付けサーバを含む。いくつかの実装形態では、本システムは、第1のデータ構造から、エントリのうちの第2のエントリを取り出すように構成されたリンク付けサーバを含む。いくつかの実装形態では、本システムは、第2のデータ構造から、エントリのうちの第2のエントリを取り出すように構成されたリンク付けサーバを含む。いくつかの実装形態では、本システムは、第1のデータ構造の第2のエントリの第1のハッシュされたユーザ情報を第2のデータ構造の第2のエントリの第1のハッシュされたブリッジ情報と比較するように構成されたリンク付けサーバを含む。
【００１７】
いくつかの実装形態では、本システムは、第1のデータ構造の第2のエントリの第1のハッシュされたユーザ情報と第2のデータ構造の第2のエントリの第1のハッシュされたブリッジ情報との間の不一致を決定するように構成されたリンク付けサーバを含む。いくつかの実装形態では、本システムは、第1のデータ構造の第2のエントリの第2のハッシュされたユーザ情報を第2のデータ構造の第2のエントリの第2のハッシュされたブリッジ情報と比較するように構成されたリンク付けサーバを含む。いくつかの実装形態では、本システムは、第1のデータ構造の第1のエントリの第1のハッシュされたユーザ情報と第2のデータ構造の第1のエントリの第1のハッシュされたブリッジ情報との間の不一致を決定するように構成されたリンク付けサーバを含む。いくつかの実装形態では、本システムは、第2のデータ構造から、第2のデータ構造のエントリのうちの第2のエントリを取り出すように構成されたリンク付けサーバを含む。いくつかの実装形態では、本システムは、第1のデータ構造の第1のエントリの第1のハッシュされたユーザ情報を第2のデータ構造の第2のエントリの第1のハッシュされたブリッジ情報と比較するように構成されたリンク付けサーバを含む。
【００１８】
いくつかの実装形態では、本システムは、第1のデータ構造の第1のエントリの第2のハッシュされたユーザ情報を第2のデータ構造の第2のエントリの第2のハッシュされたブリッジ情報と比較するように構成されたリンク付けサーバを含む。いくつかの実装形態では、本システムは、一致の決定に応答して、第1のリンケージを生成するために、第1のデータ構造の第1のエントリのユーザタグを第2のデータ構造の第1のエントリのブリッジタグにリンクするように構成されたリンク付けサーバを含む。いくつかの実装形態では、本システムは、会社サーバに、第1のリンケージを提供するように構成されたリンク付けサーバを含む。
【００１９】
別の態様では、本開示は、ユーザ識別子をリンクするための方法を対象とする。本方法は、リンク付けサーバによって会社サーバから、エントリを含む第1のデータ構造を受信するステップを含む。各エントリは、ユーザタグ、第1のハッシュされたユーザ情報、および第2のハッシュされたユーザ情報を含み、各エントリは、クライアントデバイスのユーザに関連付けられる。
【００２０】
いくつかの実装形態では、本方法は、リンク付けサーバによってパートナーサーバから、エントリを含む第2のデータ構造を受信するステップを含む。各エントリは、ブリッジタグ、第1のハッシュされたブリッジ情報、および第2のハッシュされたブリッジ情報を含む。各エントリは、クライアントデバイスのユーザに関連付けられる。
【００２１】
いくつかの実装形態では、本方法は、リンク付けサーバによって、第1のデータ構造および第2のデータ構造に基づいて第3のデータ構造を生成するステップを含む。いくつかの実装形態では、本方法は、リンク付けサーバによって会社サーバに、第3のデータ構造を提供するステップを含む。
【００２２】
いくつかの実装形態では、第1のデータ構造は、クライアントデバイスに関連する第1の電子メールアドレスおよびクライアントデバイスに関連する第1の電話番号を含む。いくつかの実装形態では、第2のデータ構造は、クライアントデバイスに関連する第2の電子メールアドレスおよびクライアントデバイスに関連する第2の電話番号を含む。
【００２３】
別の態様では、本開示は、ユーザ識別子をリンクするためのシステムを対象とする。本システムは、会社サーバから、エントリを含む第1のデータ構造を受信することであって、各エントリは、ユーザタグ、第1のハッシュされたユーザ情報、および第2のハッシュされたユーザ情報を含み、各エントリは、クライアントデバイスのユーザに関連付けられる、受信することと、パートナーサーバから、エントリを含む第2のデータ構造を受信することであって、各エントリは、ブリッジタグ、第1のハッシュされたブリッジ情報、および第2のハッシュされたブリッジ情報を含み、各エントリは、クライアントデバイスのユーザに関連付けられる、受信することと、第1のデータ構造および第2のデータ構造に基づいて第3のデータ構造を生成することと、会社サーバに、第3のデータ構造を提供することとを行うように構成されたリンク付けサーバを含む。
【００２４】
一実装形態では、第1のデータ構造は、クライアントデバイスに関連する第1の電子メールアドレスおよびクライアントデバイスに関連する第1の電話番号を含み、第2のデータ構造は、クライアントデバイスに関連する第2の電子メールアドレスおよびクライアントデバイスに関連する第2の電話番号を含む。
【００２５】
別の態様では、本開示は、データパートナーサーバによって実行される方法を対象とする。データパートナーサーバは、PII要素を暗号化するためにデータパートナー暗号化鍵(X)を使用し、会社サーバにデータペアを送る。データペアは、ブリッジタグおよび対応する暗号化されたPII要素のペアである。データパートナーサーバが会社サーバに送ったブリッジタグを暗号化するために第1の会社暗号化鍵を使用することによって、またデータパートナーサーバが会社サーバに送った暗号化されたPII要素を暗号化するために第2の異なる会社暗号化鍵を使用することによって会社サーバが生成した二重暗号化されたデータの第1のセットを、データパートナーサーバは会社サーバから受信する。データパートナーサーバはまた、会社サーバから、会社サーバが第1および第2の会社暗号化鍵(またはそれから導出された鍵)を使用して暗号化した会社サーバのPII要素を受信し、たとえば、会社サーバは、第1の会社暗号化鍵またはそれから導出された鍵を使用して内部ユーザタグを暗号化していることがあり、第2の会社暗号化鍵またはそれから導出された鍵を使用して会社PII要素を暗号化していることがある。データパートナーサーバは次いで、二重暗号化されたデータの第2のセットを与えるために、データサーバ暗号化鍵を使用して、暗号化された会社PII要素を暗号化する。データパートナーサーバは次いで、一致する暗号化されたPII要素に関連付けられる暗号化されたブリッジタグおよび暗号化されたユーザタグのペアを識別するために、二重暗号化されたデータの第1のセットおよび第2のセットを比較し得る。ブリッジタグおよびユーザタグがいずれも会社サーバの暗号化鍵によって暗号化されていることで、データパートナーサーバは、元のブリッジタグまたはデータタグを回復することができず、そのため、PII要素に関連する個人を識別することができない。一実装形態では、データパートナーサーバは、一致する暗号化されたPII要素に関連付けられる暗号化されたブリッジタグおよび暗号化されたユーザタグの詳細を会社サーバに送り得る。この態様の変更形態では、会社サーバおよびデータパートナーサーバの役割は交換されてよい、すなわち、会社サーバは、会社要素のみを暗号化すること、ならびに暗号化されていないユーザタグおよび暗号化されたPII要素のペアをデータパートナーサーバに送ることなどができる。
【００２６】
別の態様では、本開示は、1つまたは複数のプロセッサによって実行されると、本明細書で説明する任意の態様または実装形態による方法を1つまたは複数のプロセッサに実行させる命令を含むコンピュータ可読媒体(非一時的コンピュータ可読媒体であり得るが、この態様はこれを必要としない)を対象とする。
【００２７】
1つまたは複数の実装形態の詳細を、添付の図面および以下の説明で示す。本開示の他の特徴、態様、および利点は、以下の説明、図面、および特許請求の範囲から明らかになろう。
【図面の簡単な説明】
【００２８】
【図１】データクリーンルームを使用して2つの当事者のユーザID間のリンクを確立するための環境の一実装形態のブロック図である。
【図２】当事者がクライアントデバイスから個人識別可能情報(PII)データを収集する環境の一実装形態のブロック図である。
【図３Ａ】一実装形態によるクライアントデバイスのブロック図である。
【図３Ｂ】一実装形態によるPIIサーバのブロック図である。
【図３Ｃ】一実装形態によるリンク付けサーバのブロック図である。
【図４】PIIデータを収集するためのプロセスのいくつかの実装形態におけるPIIサーバおよびクライアントデバイスによって行われる動作の流れ図である。
【図５】ユーザタグおよびブリッジタグをリンクするためのプロセスのいくつかの実装形態におけるリンク付けサーバおよびPIIサーバによって行われる動作の流れ図である。
【図６】ユーザタグおよびブリッジタグをリンクするためのプロセスのいくつかの実装形態におけるリンク付けサーバおよびPIIサーバによって行われる動作の流れ図である。
【図７】クリーンルーム環境を使用することなくユーザタグおよびブリッジタグをリンクするためのプロセスのいくつかの実装形態におけるPIIサーバによって行われる動作の流れ図である。
【発明を実施するための形態】
【００２９】
様々な図面における同じ参照番号および記号は、同じ要素を示す。
【００３０】
本開示の実施形態について、たとえば、コンテンツを見るため、または取引を行うために企業のウェブサイトを訪れるユーザによって共有される個人識別可能情報(PII)を企業が記憶する例を参照しながら説明する。企業はこの情報を、ユーザを他のユーザから区別するユーザ識別子にマッピングする。場合によっては、企業は、同じユーザに関する別の企業のPIIデータにアクセスできることもある。たとえば、自動車メーカー(「会社」)は、その親会社のウェブサイト上で自動車を宣伝し、その子会社のウェブサイト上でトラックを宣伝することがある。親会社のウェブサイトを訪れているユーザは、PIIデータ(たとえば、電子メールアドレス、電話番号など)をウェブサイトと共有することがあり、ウェブサイトはPIIデータを、本明細書で「ユーザタグ」と呼ばれるユーザ識別子に割り当てる。この同じユーザは、トラックを宣伝するサードパーティ会社(「データパートナー」)のウェブサイトを訪れることもある。同様に、データパートナーは、ユーザのPIIデータを受信し、本明細書で「ブリッジタグ」と呼ばれるユーザ識別子に割り当てる。会社のユーザタグとデータパートナーのブリッジタグとの間のリンケージを確立することが望まれ得る。ただし、本開示は、特にPIIデータに限定されることはなく、他のタイプの秘密情報に適用されてよい。たとえば、2つの組織が個人の同じグループについての医療データを保持している場合、一方の組織によって保持されるデータと他方の組織によって保持されるデータとの間のリンクを確立することが望まれ得る。
【００３１】
リンケージを確立する1つの手法は、データパートナーが会社に、ハッシュされたPIIデータとペアにされたブリッジタグを提供することを伴う。暗号ハッシング関数を含む多くのハッシング関数は、ハッシュされたデータの保有が必ずしも対応する入力データの保有につながるわけではないように、実際には不可逆(すなわち、非可逆)となるように設計されている。ハッシュされたPIIデータは、PIIデータにハッシング関数を適用することによる出力であり、PIIデータ自体を明らかにすることなくPIIデータ要素の比較が可能になる。いくつかの実装形態では、データパートナーは、ユーザを識別するブリッジタグおよびユーザの電子メールアドレスのハッシュされた値を提供し得る。次いで会社は、ユーザタグとブリッジタグとの間のリンクを確立するために、データパートナーのハッシュされたPIIデータを会社のハッシュされたPIIデータと比較する。この手法は、ユーザの電子メールアドレスにのみ基づいてユーザタグおよびブリッジタグをマッチングするときなど、単一のPIIデータ要素のみを使用するときにうまくいく。
【００３２】
だが、複数のPIIデータ要素(たとえば、ユーザの電子メールおよび電話番号)でマッチングするためには、データパートナーは会社に、ハッシュされた電子メールとハッシュされた電話番号の両方とペアにされたブリッジタグを提供しなければならない。結果的に、これは会社に内部データリンケージを明らかにする。すなわち、それは、データパートナーのユーザに関するデータパートナーの電子メールと電話番号とのリンケージを明らかにする。このようにして複数のPIIデータでマッチングするために会社とデータパートナーとの間で情報を共有する場合、PIIデータにリンクされた特定のユーザの識別情報を明らかにするのに十分な情報を提供し得る。
【００３３】
したがって、本開示は、一方当事者のPIIデータマップを他方当事者に明かすことなく2つの当事者のユーザID間のリンクを確立する(たとえば、会社のユーザタグとデータパートナーのブリッジタグとの間のリンケージを確立する)ためのシステムおよび方法を対象とする。本システムおよび方法は、PIIデータが複数のPIIデータ要素を含む場合、ならびにPIIデータが単一のPIIデータ要素を含む場合に適用され得る。いくつかの実装形態では、説明するシステムおよび方法は、独立した、または中立的な中間物、たとえば、クリーンルームまたはクリーンルーム環境において動作する1つまたは複数のサーバを使用する。いくつかの実装形態では、説明するシステムおよび方法は、必ずしもクリーンルームを通じてルーティングされるわけではない、暗号化されたピアツーピア通信などの、暗号化された直接通信を使用する。
【００３４】
図1は、データクリーンルームを使用して2つの当事者のユーザ識別記号(ID)間のリンクを確立するための環境100の一実装形態のブロック図である。一般に、本明細書で論じるシステムおよび方法は、2つの当事者(たとえば、会社およびデータパートナー)がそれぞれのユーザID-PIIデータマップを、「クリーンルーム」環境と呼ばれるデータ環境で独立して動作しているサーバと共有することを可能にする。(当事者のいずれとも関係がない)許可された個人のみが当事者から受け取った機密性の高いデータまたは情報を扱うことができるように、クリーンルーム環境は、当事者の活動から隔離された別個の物理的でセキュアなロケーションにある。各ユーザの識別情報をさらに保護するために、本実装形態では当事者は、ユーザID-PIIマップをデータクリーンルーム環境と共有する前に、各ユーザに関連するそれらのPIIデータをハッシュする。クリーンルームにおけるサードパーティサーバは、共通のユーザを識別するために会社のユーザタグとデータパートナーのブリッジタグとの間のリンクを確立するために、会社のユーザのハッシュされたPIIデータをデータパートナーのユーザのハッシュされたPIIデータとマッチングする。クリーンルーム環境が当事者の活動から隔離されているので、クリーンルームにおけるサードパーティサーバは、その制御および動作の点でデータパートナーおよび会社から独立している(また、データパートナーサーバおよび会社サーバから独立している)。一実装形態では、会社は、コンテンツを見るために、または会社の商品を購入するために会社のウェブサイトを訪れるユーザに関連する電子メールアドレスおよび電話番号を収集し得る。同様に、データパートナーも、同様の理由でそのウェブサイトを訪れるユーザに関連する電子メールアドレスおよび電話番号を収集し得る。各当事者は次いで、その収集されたPIIデータをデータクリーンルームに送り、データクリーンルームでは、サードパーティサーバが、たとえば、ウォーターフォール手法に基づいて、共通のユーザを識別し、共有のユーザごとに会社のユーザID(「ユーザタグ」)をデータパートナーのユーザID(「ブリッジタグ」)とリンクし、会社にデータパートナーのPIIリンケージ(たとえば、特定の電話番号と特定の電子メールアドレスの関連)を明らかにす
ることなく、会社にリンケージを提供する。いくつかの実装形態では、リンケージは、会社とデータパートナーの両方に提供される。いくつかの実装形態では、リンケージは、クリーンルームにおいて記憶され、当事者は、リンケージを取り出すためにクリーンルームを物理的に訪れなければならない。
【００３５】
より詳細には、環境100は、会社116、データパートナー132、およびクリーンルーム102を含む。会社116は、クリーンルーム102におけるシステム(たとえば、リンク付けサーバ104)にユーザタグ(UT)PIIマッピング122を配信するためのPIIサーバ118a(「会社サーバ」とも呼ばれる)を含む。会社116はまた、UT PIIマッピング122を記憶するためのUT PIIマッピングストレージ120を含む。データパートナー132は、クリーンルーム102におけるシステム(たとえば、リンク付けサーバ104)にブリッジタグ(BT)PIIマッピング144を配信するためのPIIサーバ118b(「パートナーサーバ」とも呼ばれる)、およびBT PIIマッピング144を記憶するためのBT PIIマッピングストレージ134を含む。
【００３６】
クリーンルーム102は、(1)UT PIIマッピング122およびBT PIIマッピング144に基づいてリンケージ124を生成し、(2)会社116にリンケージ124を提供するためのリンク付けサーバ104を含む。クリーンルーム102はまた、UT PIIマッピング122とBT PIIマッピング144の両方を記憶するためのPIIマッピングストレージ106を含む。クリーンルーム102はまた、リンケージ124を記憶するためのリンケージストレージ108を含む。環境100は、1つまたは複数のPIIサーバ118aを有する複数の会社116、1つまたは複数のPIIサーバ118bを有する複数のデータパートナー132、および1つまたは複数のリンク付けサーバ104を有する複数のクリーンルーム102を含み得る。図示されていないが、いくつかの実装形態では、会社116およびデータパートナー132は、ネットワークゲートウェイ、ネットワークルータ、ネットワークファイアウォール、ネットワークスイッチ、ネットワークアクセラレータ、Wi-Fiアクセスポイントもしくはホットスポット、または他のデバイスによってクリーンルーム102と通信する。
【００３７】
PIIサーバ118a、118bは、1つまたは複数のクライアントデバイスのユーザに関連する個人識別可能情報(PII)を収集し得る。一実装形態では、PIIデータは、ユーザの名前、電子メールアドレス、電話番号、課金情報、所在地住所、市民権、バイオメトリクス、金融情報、運転免許証および他の政府識別番号、生年月日、出生地、雇用履歴、家族歴、病歴、ジオロケーション履歴、社会保障番号、納税者識別番号、医療識別番号、ならびにデバイス情報(たとえば、図3に示す収集エージェント312によってインターセプトされ得る媒体アクセス制御(MAC)アドレス、デバイスID314、セッションID316、および任意の他の情報)から選択された、2つ以上のPIIデータ要素(または原則として1つのPIIデータ要素)を含み得る。PIIサーバ118a、118bは、クライアントデバイスの識別された各ユーザにユーザ識別子を割り当て得る。一実装形態では、PIIサーバ118aは、会社116によって所有、運営されるか、または会社116と関係があるコンピューティングデバイス、サーバ、ディスクドライブ、またはウェブページに接続または通信するクライアントデバイスの各ユーザに「ユーザタグ」を割り当てる。同様に、PIIサーバ118bは、データパートナー132によって所有、運営されるか、またはデータパートナー132と関係があるコンピューティングデバイス、サーバ、ディスクドライブ、またはウェブページに接続または通信するクライアントデバイスの各ユーザに「ブリッジタグ」を割り当てる。
【００３８】
いくつかの実装形態では、ユーザID(たとえば、ユーザタグまたはブリッジタグ)に割り当てられたユーザは、2つ以上のクライアントデバイスに関連付けられ得る。いくつかの実装形態では、ユーザIDに割り当てられたユーザは、単一のクライアントデバイスのみに関連付けられ得る。PIIサーバ118a、118bは、クライアントデバイスの不活動または活動低下に基づいて、クライアントデバイスのユーザからユーザタグおよびブリッジタグを割当て解除すべきかどうかを判断するために、ユーザタグおよびブリッジタグを周期的に検討し得る。一実装形態では、PIIサーバ118aは、所定の時間量よりも長い間PIIサーバ118aと通信していないクライアントデバイスからユーザタグを割当て解除し得る。
【００３９】
PIIサーバ118aは、ユーザごとの収集されたPIIデータおよび対応するユーザタグを、データ構造126によって示されているようなデータ構造フォーマットでユーザタグ(UT)PIIマッピングストレージ120に記憶する。データ構造126は、PIIデータへのユーザタグのマッピングを示す。各エントリ127、128、129、130、131は、1つまたは複数のクライアントデバイスに関する異なるユーザを表す。「マッピング#」と題する列は、各エントリを番号付けし、「ユーザタグ」と題する列は、PIIサーバ118aがその特定のユーザに割り当てたユーザタグを示し、「電子メールアドレス」と題する列は、その特定のユーザの電子メールアドレスを示し、「電話#」と題する列は、その特定のユーザの電話番号を示す。2つのPIIデータ列(たとえば、電子メールアドレスおよび電話#)ならびに5つのエントリ(すなわち、5人のユーザを表す)のみで示されているが、データ構造126は、任意の数のPIIデータ列および任意の数のエントリを含んでよい。
【００４０】
PIIサーバ118bは、ユーザごとの収集されたPIIデータおよび対応するブリッジタグを、データ構造136によって示されているようなデータ構造フォーマットでブリッジタグ(BT)PIIマッピングストレージ134に記憶する。データ構造136は、PIIデータへのブリッジタグのマッピングを示す。各エントリ138、139、140、141、142は、1つまたは複数のクライアントデバイスに関する異なるユーザを表す。「マッピング#」と題する列は、各エントリを番号付けし、「ブリッジタグ」と題する列は、PIIサーバ118bがその特定のユーザに割り当てたブリッジタグを示し、「電子メールアドレス」と題する列は、その特定のユーザの電子メールアドレスを示し、「電話#」と題する列は、その特定のユーザの電話番号を示す。2つのPII列(たとえば、電子メールアドレスおよび電話#)ならびに5つのエントリ(すなわち、5人のユーザを表す)のみで示されているが、データ構造136は、任意の数のPIIデータ列および任意の数のユーザを含んでよい。さらに、データ構造126およびデータ構造136は、互いに同じデータ要素を有するものとして示されているが、これらのデータ構造が共通する1つまたは複数の要素を有する限り、データ構造136は、データ構造126と同じデータ構造を有する必要がない。
【００４１】
PIIサーバ118a、118bは、会社116のユーザおよびデータパートナー132のユーザのプライバシーを保護するための措置を講じ得る。いくつかの実装形態では、PIIサーバ118a、118bはそれぞれ、それぞれのユーザに関連する収集されたPIIデータに暗号ハッシング関数を適用する。一実装形態では、PIIサーバ118aは、データ構造126のエントリ127にマッピングされた電子メールアドレスを(たとえば、UT PIIマッピングストレージ120から)取り出し、取り出された値をハッシュし、記憶された電子メールアドレスにそのハッシュ値相当で上書きし得る。PIIサーバ118aは次いで、データ構造126のエントリ127にマッピングされた電話番号を(たとえば、UT PIIマッピングストレージ120から)取り出し、取り出された値をハッシュし、記憶された電話番号にそのハッシュ値相当で上書きし得る。PIIサーバ118aは、UT PIIマッピングストレージ120におけるエントリごとに、このプロセスを繰り返し得る。PIIサーバ118bは、BT PIIマッピングストレージ134に記憶されたデータに対して同じハッシングルーチンを実行し得る。いくつかの実装形態では、PIIサーバ118a、118bは暗号ハッシング関数をサポートする。いくつかの実装形態では、PIIサーバ118a、118bは、たとえば、HMAC、SHA-1、SHA-2、SHA-3、MD2、MD4、およびMD5を含む、様々なハッシュ関数アルゴリズムをサポートする。リンク付けサーバ104が共通のユーザを識別し得るようにするために、会社116およびデータパートナー132は、それぞれのデータの各々をハッシュするために同じハッシング関数を使用する。いくつかの実装形態では、当事者は、当業界において一般的に受け入れられているデフォルトハッシング関数を使用する。いくつかの実装形態では、当事者(たとえば、会社116およびデータパートナー132)は、それらのデータをリンク付けサーバ104と共有する前に、使用すべき特定のハッシング関数に合意するために互いに通信する。
【００４２】
PIIサーバ118aは、クリーンルーム102におけるシステム(たとえば、リンク付けサーバ104)から、収集されたPIIデータおよび対応するユーザタグを会社116からクリーンルーム102に配信するよう求める要求を受信し得る。要求に応答して、PIIサーバ118aは、UT PIIマッピングストレージ120からデータ構造126を取り出し、取り出されたデータ(たとえば、UT PIIマッピング122)をリンク付けサーバ104に送信する。いくつかの実装形態では、PIIサーバ118aは、UT PIIマッピング122をPIIマッピングストレージ106に配信し得る。いくつかの実装形態では、PIIサーバ118aは、リンク付けサーバ104から要求を受信することなく、UT PIIマッピング122をリンク付けサーバ104に周期的に(たとえば、毎分、毎時、毎日、毎週、毎月、またはそれらの任意の組合せで)送る。
【００４３】
PIIサーバ118bは、クリーンルーム102におけるシステム(たとえば、リンク付けサーバ104)から、収集されたPIIデータおよび対応するブリッジタグをデータパートナー132からクリーンルーム102に配信するよう求める要求を受信し得る。要求に応答して、PIIサーバ118bは、BT PIIマッピングストレージ134からデータ構造136を取り出し、取り出されたデータ(たとえば、BT PIIマッピング144)をリンク付けサーバ104に送信する。いくつかの実装形態では、PIIサーバ118bは、BT PIIマッピング144をPIIマッピングストレージ106に配信し得る。いくつかの実装形態では、PIIサーバ118bは、リンク付けサーバ104から要求を受信することなく、BT PIIマッピング144をリンク付けサーバ104に周期的に(たとえば、毎分、毎時、毎日、毎週、毎月、またはそれらの任意の組合せで)送る。
【００４４】
リンク付けサーバ104は、ウォーターフォール手法を使用することによってユーザタグとブリッジタグとの間のリンクを確立する。ウォーターフォール手法は最初に、UT PIIマッピング122における各ユーザに関連する第1のタイプ(たとえば、電子メールアドレス)のハッシュされたPIIデータを、BT PIIマッピング144における各ユーザに関連する同じタイプ(たとえば、電子メールアドレス)のハッシュされたPIIデータと比較する。リンク付けサーバ104は、一致するPIIデータに関連するユーザタグおよびブリッジタグを、ユーザタグおよびブリッジタグをデータベース(たとえば、リンケージストレージ108)に記憶することによってリンクする。一致の識別に応答して、リンク付けサーバ104は、ユーザタグおよびすべてのその関連PIIデータならびにブリッジタグおよびすべてのその関連PIIデータを(PIIマッピングストレージ106から)除去する。リンク付けサーバ104が特定のタイプ(たとえば、電子メールアドレス)のすべてのハッシュされたPIIデータを比較した後、リンク付けサーバ104は、UT PIIマッピング122における各ユーザに関連する第2のタイプ(たとえば、電話番号)のハッシュされたPIIデータを、BT PIIマッピング144における各ユーザに関連する同じタイプ(たとえば、電話番号)のハッシュされたPIIデータと比較する。リンク付けサーバ104は、すべてのPIIタイプが比較されるまで、比較プロセスおよび除去プロセスを継続する。ウォーターフォール手法は、任意のタイプのPIIデータを任意の順序で比較し得る。一実装形態では、リンク付けサーバ104は、ハッシュされた電子メールアドレスを比較し、次いでハッシュされた電話番号を比較し、次いでハッシュされた社会保障番号を比較し得る。一実装形態では、リンク付けサーバ104は、ハッシュされた電話番号を比較し、次いでハッシュされた社会保障番号を比較し、次いでハッシュされた電子メールアドレスを比較し得る。いくつかの実装形態では、ウォーターフォール手法は、未加工のハッシュされていないPIIデータを比較し得る。いくつかの実装形態では、ウォーターフォール手法は、暗号化されたPIIデータを比較し得る。PIIデータは、たとえば、トリプルData Encryption Standard(DES)、RSA、ブローフィッシュ、トゥーフィッシュ、またはAdvanced Encryption Standard(AES)などの暗号化アルゴリズムのバージョンを使用して暗号化され得る。
【００４５】
ウォーターフォール手法は、図1のデータ構造110、126、136を参照することによってより詳細に説明され得る。一実装形態では、リンク付けサーバ104は、ハッシュされた電子メールアドレス(たとえば、cat@email.com)を、データ構造126における第1のユーザに対応するエントリ127から取り出し、ハッシュされた電子メールアドレス(たとえば、snake@email.com)を、データ構造136における第1のユーザに対応するエントリ138から取り出す。リンク付けサーバ104は、取り出されたハッシュされた各値を、取り出された値が一致するかどうかを判断するために比較する。cat@email.comはsnake@email.comと一致しないので、リンク付けサーバ104は、ハッシュされた電子メールアドレス(たとえば、bird@email.com)を、データ構造136における第2のユーザに対応するエントリ139から取り出す。取り出された値を比較することによって、リンク付けサーバ104は、cat@email.comがbird@email.comと一致しないと判断する。不一致に応答して、リンク付けサーバ104は、ハッシュされた電子メールアドレス(たとえば、cat@email.com)を、データ構造136における第3のユーザに対応するエントリ140から取り出す。リンク付けサーバ104は、2つの値を比較し、一致を決定し、一致に応答して、リンク付けサーバ104は、データ構造126における第1のユーザに対応するエントリ127におけるユーザタグ(たとえば、9288)とデータ構造136における第3のユーザに対応するエントリ140におけるブリッジタグ(たとえば、4263)との間のリンクを確立する。リンク付けサーバ104は、データ構造110を生成すること、およびデータ構造110をリンケージストレージ108に記憶することによって、リンクを確立する。
【００４６】
リンク付けサーバ104がハッシュされた電子メールアドレスに基づいてデータ構造136とデータ構造126におけるすべてのエントリを比較する(そしてマッチングすることを試みる)と、リンク付けサーバは、ハッシュされた電話番号などの別のデータ要素を使用して比較/マッチングプロセスを繰り返す。一実装形態では、リンク付けサーバ104は、ハッシュされた電話番号(たとえば、555-0140)を、データ構造126における第2のユーザに対応するエントリ128から取り出し、ハッシュされた電話番号(たとえば、555-9106)を、データ構造136における第1のユーザに対応するエントリ138から取り出す。リンク付けサーバ104は、取り出されたハッシュされた各値を、取り出された値が一致するかどうかを判断するために比較する。「555-0140」は「555-9106」と一致しないので、リンク付けサーバ104は、次のハッシュされた電話番号(たとえば、555-8136)を、データ構造136のエントリ139から取り出す。最終的には、リンク付けサーバは、データ構造126における第2のユーザに対応するエントリ128とデータ構造136における第5のユーザに対応するエントリ142との間の一致を発見する。各ユーザに関連する複数のPIIデータを比較することによって、リンク付けサーバ104は、すべての共通のユーザを正常に識別する。一実装形態では、リンク付けサーバ104は、データ構造126における第2のユーザおよびデータ構造136における第5のユーザが実際には同じユーザであることを、このユーザが2つの異なる電子メールアドレス(たとえば、dog1@email.comおよびdog2@email.com)を有するように見えるので、発見できなかった。だが、リンク付けサーバ104は、ユーザごとに複数のPIIデータ(電子メールアドレスおよび電話番号)を比較したときに一致に成功した。
【００４７】
リンク付けサーバ104は、リンケージ124をデータ構造フォーマット(たとえば、データ構造110)で生成すること、およびリンケージストレージ108に記憶することによって、会社116およびデータパートナー132のユーザ識別記号をリンクする。一実装形態では、データ構造110は、会社116のユーザタグおよびデータパートナー132のブリッジタグのマッピングを示す。各エントリ111、112、113、114、115は、1つまたは複数のクライアントデバイスに関する異なるユーザを表す。「リンケージ#」と題する列は、各エントリを番号付けし、「ユーザタグ」と題する列は、PIIサーバ118aがその特定のユーザに割り当てたユーザタグを示し、「ブリッジタグ」と題する列は、PIIサーバ118bがその特定のユーザに割り当てたブリッジタグを示す。2つのユーザ識別記号列(たとえば、ユーザタグおよびブリッジタグ)ならびに5つのエントリ(すなわち、5人のユーザ)のみで示されているが、データ構造110は、任意の数のユーザ識別記号列(すなわち、複数のデータパートナー132および複数の会社116からのユーザ識別記号の一致を表す)ならびに任意の数のエントリを含んでよい。
【００４８】
リンク付けサーバ104は、会社116にリンケージ124を送る。リンケージ124は、ブリッジタグとユーザタグの一致を明らかにするが、それらは、会社116にデータパートナーのPIIリンケージ(たとえば、電子メールアドレスと電話番号、電子メールアドレスと納税者ID、電話番号と社会保障番号)を明らかにしない。いくつかの実装形態では、会社116は、データパートナー132のPIIリンケージを明らかにするためにリンケージ124を暗号化解除し得る。いくつかの実装形態では、リンク付けサーバ104は、リンケージ124を会社116とデータパートナー132の両方に送る。いくつかの実装形態では、リンク付けサーバ104は、リンケージストレージ108にリンケージ124を記憶するだけである。いくつかの実装形態では、リンク付けサーバ104が該当する当事者(たとえば、会社116、データパートナー122、または両方)にリンケージ124を送った後、リンク付けサーバ104は、リンケージストレージ108およびPIIマッピングストレージ106からすべてのコンテンツを消去する。
【００４９】
いくつかの実装形態では、PIIサーバ118a、118bおよびリンク付けサーバ104は、アレイ、リンクリスト、レコード、共用体、タグ付き共用体、クラス、ツリー、およびキューなど、代替のデータ構造タイプを使用して、それぞれのデータ構造110、126、136を生成する。したがって、リンク付けサーバ104は、これらのデータ構造タイプのいずれかを使用して、会社118のユーザタグとデータパートナー132のブリッジタグとの間のリンクを確立し得る。
【００５０】
図2は、当事者がクライアントデバイスからPIIデータを収集する環境200の一実装形態のブロック図である。環境200は、クライアントデバイス204を会社116およびデータパートナー132と接続するネットワーク202、たとえば、ローカルエリアネットワーク(LAN)、ワイドエリアネットワーク(WAN)、インターネット、ブルートゥース（登録商標）ネットワーク、またはこれらもしくは他のネットワークの組合せを含み得る。いくつかの実装形態では、ネットワーク202を通じてソースノードから宛先ノードにデータパケットのフローとして、たとえば、開放型システム間相互接続(「OSI」)レイヤに従ってデータパケットの形式でデータが流れる。パケットのフローは、たとえば、インターネットプロトコル(「IP」)、たとえば、IPv4またはIPv6などのOSIレイヤ-3ネットワークプロトコルで階層化されたネットワーク202を介して送信される、ユーザデータグラムプロトコル(「UDP」)、伝送制御プロトコル(「TCP」)、またはストリーム制御伝送プロトコル(Stream Control Transmission Protocol)(「SCTP」)などのOSIレイヤ-4トランスポートプロトコルを使用し得る。環境200は、たとえば、クライアントデバイス204、会社116、およびデータパートナー132を含む何千ものノードを含み得る。図示されていないが、多くの実装形態では、ネットワーク202は、ゲートウェイ、ルータ、ファイアウォール、スイッチ、ネットワークアクセラレータ、Wi-Fiアクセスポイントもしくはホットスポット、または他のデバイスを含む、1つまたは複数の中間デバイスを含み得る。
【００５１】
クライアントデバイス204は、ユーザの制御下にあり、個人識別可能情報(PII)を求める要求を受信すること、およびネットワーク202でPIIデータを送信することが可能である電子デバイスである。クライアントデバイス204は、限定はしないが、パーソナルコンピュータ、ラップトップコンピュータ、デスクトップコンピュータ、モバイルコンピュータ、タブレットコンピュータ、スマートフォン、デジタルビデオレコーダ、テレビ用セットトップボックス、ビデオゲームコンソール、または任意の他のタイプおよび形式のコンピューティングデバイスもしくはデバイスの組合せを含む、ネットワーク202を介して通信するように適合された任意の数の異なるタイプのユーザ電子デバイスであり得る。いくつかの実装形態では、クライアントデバイス204のタイプは、モバイルデバイス、デスクトップデバイス、固定されたままであることが意図されたデバイス、主にローカルエリアネットワーク(たとえば、ネットワーク202)を介してネットワークにアクセスするように適合されたデバイス、またはメディア消費デバイスのような別のカテゴリーの電子デバイスとしてカテゴリー化され得る。クライアントデバイス204は、ネットワーク202でのデータの送受信を容易にするためのユーザアプリケーション、たとえば、ウェブブラウザを含む。
【００５２】
図3Aは、クライアントのクライアントデバイス204の一実装形態のブロック図である。クライアントデバイス204は、プロセッサ306およびメモリ302を含む。メモリ302は、プロセッサ306によって実行されると、本明細書で説明する動作のうちの1つまたは複数をプロセッサ306に実行させる機械命令を記憶し得る。プロセッサ306は、マイクロプロセッサ、ASIC、FPGAなど、またはそれらの組合せを含み得る。多くの実装形態では、プロセッサ306は、マルチコアプロセッサまたはプロセッサのアレイであり得る。メモリ302は、限定はしないが、プロセッサ306にプログラム命令を提供することが可能な電子記憶デバイス、光記憶デバイス、磁気記憶デバイス、または任意の他の記憶デバイスを含み得る。メモリ302は、プロセッサ306が命令を読み取ることができるフロッピー（登録商標）ディスク、CD-ROM、DVD、磁気ディスク、メモリチップ、ROM、RAM、EEPROM、EPROM、フラッシュメモリ、光媒体、または任意の他の適切なメモリを含み得る。命令は、限定はしないが、C、C++、C#、Java（登録商標）、JavaScript（登録商標）、Perl、HTML、XML、PythonおよびVisual Basicなど、任意の適切なコンピュータプログラミング言語を含み得る。
【００５３】
クライアントデバイス204は、1つまたは複数のネットワークインターフェース308を含み得る。ネットワークインターフェース308は、10 Base T、100 Base Tもしくは1000 Base T(「ギガビット」)を含むイーサネット（登録商標）、802.11a、802.11b、802.11g、802.11nもしくは802.11acなどの様々な802.11ワイヤレスのいずれか、CDMA、LTE、3Gもしくは4Gセルラーなどのセルラー、ブルートゥース（登録商標）もしくは他の短距離ワイヤレス接続、またはネットワークもしくは他のコンピューティングデバイスと通信するためのこれらもしくは他のインターフェースの任意の組合せを含む、任意のタイプおよび形式のインターフェースを含み得る。多くの実装形態では、クライアントデバイス204は、異なるサブネットワークを介した、ローカルエリアネットワークまたはインターネットを含むワイドエリアネットワークなどの様々なネットワークへの接続を可能にする、異なるタイプの複数のネットワークインターフェース308を含み得る。
【００５４】
クライアントデバイス204は、1つまたは複数のユーザインターフェース304を含み得る。ユーザインターフェース304は、知覚情報(たとえば、ディスプレイ上での視覚化、1つもしくは複数の音、触覚フィードバックなど)を生成することによってユーザにデータを伝達し、かつ/またはユーザから受信された知覚情報を電子信号に変換する任意の電子デバイス(たとえば、キーボード、マウス、ポインティングデバイス、タッチスクリーンディスプレイ、マイクロフォンなど)であり得る。1つまたは複数のユーザインターフェースは、様々な実装形態によれば、内蔵ディスプレイ、タッチスクリーン、マイクロフォンなどのように、クライアントデバイス204の筐体の内部にあるか、またはクライアントデバイス204に接続されたモニタ、クライアントデバイス204に接続されたスピーカーなどのように、クライアントデバイス204の筐体の外部にあり得る。
【００５５】
クライアントデバイス204は、メモリ302にアプリケーション310を含んでよく、またはプロセッサ306とともにアプリケーション310を実行してよい。アプリケーション310は、コンテンツを受信し、応答、コマンドまたは他のデータを送信するためのアプリケーション、アプレット、スクリプト、サービス、デーモン、ルーチン、または他の実行可能論理であり得る。一実装形態では、アプリケーション310はウェブブラウザであり得る一方、別の実装形態では、アプリケーション310はメディアプレゼンテーションアプリケーションであり得る。アプリケーション310は、ネットワークインターフェース308を介して受信され、かつ/またはプロセッサ306によってローカルに生成されたコンテンツを表示するための、またウェブサイトに関する要求、調査回答オプションの選択、入力テキスト列など、ユーザインターフェース304を介して受信された対話を送信するための機能を含み得る。
【００５６】
いくつかの実装形態では、アプリケーション310は、収集エージェント312を含み得る。収集エージェント312は、アプリケーション310によって処理されたデータを収集し、かつ/またはユーザインターフェース304とのユーザの対話を監視するためのアプリケーションプラグイン、アプリケーション拡張、サブルーチン、ブラウザのツールバー、デーモン、または他の実行可能論理を含み得る。いくつかの実装形態では、収集エージェント312は、スクリーンスクレーパー、パケットインターセプター、アプリケーションプログラミングインターフェース(API)フッキングプロセス、または他のそのようなアプリケーションなど、アプリケーション310とは別個であるが、アプリケーション310によって処理されたデータをインターセプトおよび/または収集するように適合された別個のアプリケーション、サービス、デーモン、ルーチン、または他の実行可能論理であり得る。収集エージェント312は、マウスのクリック、スクロールホイールの動き、スワイプ、ピンチもしくはタッチなどのジェスチャー、または任意の他のそのような対話を含む、ユーザインターフェース304を介して入力されたデータ、ならびにキーボードのキー打ちを含むアプリケーション310によって受信され処理されたデータをインターセプトまたは受信するように適合され得る。
【００５７】
クライアントデバイス204は、(デバイスID314として図3Aに示す)デバイス識別子314を含むか、またはデバイス識別子314により識別され得る。デバイス識別子314は、限定はしないが、媒体アクセス制御(MAC)アドレス、テキストおよび/もしくは数値データ列、ユーザ名、暗号公開鍵、クッキー、デバイスシリアル番号、ユーザプロファイルデータ、ネットワークアドレス、またはクライアントデバイス204を他のクライアントデバイス204から区別するために使用され得る任意の他のそのような識別子を含む、任意のタイプおよび形式の識別情報を含み得る。いくつかの実装形態では、デバイス識別子314は、1つまたは複数の他のデバイス識別子314(たとえば、モバイルデバイスに関するデバイス識別子、ホームコンピュータに関するデバイス識別子など)に関連付けられ得る。多くの実装形態では、プライバシーを保持するために、デバイス識別子314は、暗号学的に生成され、暗号化され、または場合によっては難読化され得る。いくつかの実装形態では、クライアントデバイス204は、デバイス識別子314と同様であるが、毎時、毎日、アプリケーション310がアクティブになったとき、または任意の他のそのような期間など、より頻繁に生成され得る(セッションID316として図3Aに示す)セッション識別子316を含み得る。セッション識別子316は、クライアントデバイス204によって生成されるか、またはサーバもしくは他のデバイスから受信され得る。セッション識別子316は、匿名性を高めるためにデバイス識別子314の代わりに使用されてよく、またはあるセッションの対話を別のセッションの対話から区別するためにデバイス識別子314とともに使用されてよい。
【００５８】
クライアントデバイス204は、デバイス識別子314、セッション識別子316、および収集エージェント312によって収集された任意の他のPIIデータをサーバ(たとえば、PIIサーバ118a、PIIサーバ118b、リンク付けサーバ104)などのコンピューティングデバイスに配信するよう求める要求を受信するように適合され得る。一実装形態では、クライアントデバイス204はPIIサーバ118aから、クライアントデバイス204に関連するPIIデータの1つまたは複数の項目を配信するよう求める要求を受信し得る。要求に応答して、収集エージェント312は、すべてのPIIデータを求めてクライアントデバイス204のすべてのソフトウェア(たとえば、ブラウザによって記憶されたクッキー)およびハードウェア構成要素(たとえば、ネットワークインターフェース308に接続されたデバイス、ユーザインターフェース304に接続されたデバイス、プロセッサ306のキャッシュエリア、およびメモリ302)を探索する。いくつかの実装形態では、収集エージェント312は、クライアントデバイス204上にまだ記憶されていない新しいPIIデータについてアプリケーション310に照会し得る。一実装形態では、収集エージェント312は、インターネットブラウザに要求を送り、追加のユーザ情報を要求するポップアップウィンドウでクライアントデバイス204のユーザに指示し得る。クライアントデバイス204のユーザは、収集エージェント312がPIIを収集できるように、要求された情報をポップアップウィンドウに入力することによって応答し得る。クライアントデバイス204は、識別子314、セッション識別子316、および収集エージェント312によって収集された任意の他のPIIデータを要求側サーバ(たとえば、PIIサーバ118a、PIIサーバ118b、リンク付けサーバ104)に提供する。いくつかの実装形態では、クライアントデバイス204は、収集されたPIIデータを、要求側サーバに送信する前に圧縮する(たとえば、.bz2、.F、.gz、.lz、.lzma、.lzo、.rz、.sfark、.sz、.xz、.z、.Z)。いくつかの実装形態では、クライアントデバイス204は、PIIデータをアーカイブファイルにパッケージ化する(たとえば、.7z、.apk、.b1、.ba、.cab、.cfs、.ear、.jar、.zip)。いくつかの実装形態では、クライアントデバイス204は、要求を受信する必要なしにサーバにPIIデータを周期的に送信する。
【００５９】
図3Bは、図1の個人識別可能情報(PII)サーバ118a、118b(PIIサーバ118と総称される)など、一実装形態によるPIIサーバ118のブロック図である。クライアントデバイス204と同様に、PIIサーバ118は、1つまたは複数のプロセッサ306、メモリ302、ネットワークインターフェース308、およびユーザインターフェース304を含み得る。ヘッドレスサーバと呼ばれるいくつかの実装形態では、PIIサーバ118は、ユーザインターフェース304を含まないことがあり、ネットワークを介してユーザインターフェース304を有するクライアントデバイス204と通信することがある。メモリ302は、クライアントデバイス204から受信されたPIIデータを、PIIサーバ118がPIIデータをユーザタグまたはブリッジタグにマッピングする前に記憶するためのPIIデータストレージ326を含み得る。いくつかの実装形態では、メモリ302は、ファイル転送プロトコル(FTP)サーバ、ウェブサーバ、メールサーバ、ファイル共有サーバ、ピアツーピアサーバ、またはクライアントデバイス204からクライアントPIIデータストレージ320に記憶されたPIIデータを受信し、PIIデータ(たとえば、UT PIIマッピング122、BT PIIマッピング144)を配信し、リンケージ124を受信するための他のそのようなアプリケーションを含む、PIIサーバ118のプロセッサ306によって実行する1つまたは複数のアプリケーション310(図示せず)を記憶し得る。
【００６０】
PIIサーバ118は、PII収集エンジン324を含み得る。PII収集エンジン324は、図4に示すプロセス400を実行することによって1つまたは複数のクライアントデバイス204からPIIデータを収集するためのアプリケーション、サービス、ルーチン、サーバ、デーモン、または他の実行可能論理を含み得る。いくつかの実装形態では、アプリケーション、サービス、ルーチン、サーバ、デーモン、または他の実行可能論理は、データ(たとえば、UT PIIマッピング122、BT PIIマッピング144)を準備し、リンク付けサーバ104に配信し、リンク付けサーバ104からデータ(たとえば、リンケージ124)を受信するために、図5に示すプロセス500を実行する。いくつかの実装形態では、アプリケーション、サービス、ルーチン、サーバ、デーモン、または他の実行可能論理は、データ(たとえば、UT PIIマッピング122、BT PIIマッピング144)を準備し、リンク付けサーバ104に配信し、リンク付けサーバ104からデータ(たとえば、リンケージ124)を受信するために、図6に示すプロセス600を実行する。
【００６１】
図3Cは、図1のリンク付けサーバ104など、一実装形態によるユーザ識別記号(UI)リンク付けサーバのブロック図である。クライアントデバイス204と同様に、リンク付けサーバ104は、1つまたは複数のプロセッサ306、メモリ302、ネットワークインターフェース308、およびユーザインターフェース304を含み得る。ヘッドレスサーバと呼ばれるいくつかの実装形態では、リンク付けサーバ104は、ユーザインターフェース304を含まないことがあり、ネットワークを介してユーザインターフェース304を有するクライアントデバイス204と通信することがある。メモリ302は、外部ストレージに記憶することと比較してより高速な読取りおよび書込みアクセスのためのPIIマッピングデータ(たとえば、UT PIIマッピング122、BT PIIマッピング144)を記憶するためのPIIマッピングデータストレージ352を含み得る。いくつかの実装形態では、メモリ302は、ファイル転送プロトコル(FTP)サーバ、ウェブサーバ、メールサーバ、ファイル共有サーバ、ピアツーピアサーバ、またはPIIサーバ118からPIIマッピングデータ(たとえば、UT PIIマッピング118、BT PIIマッピング124)を受信し、PIIサーバ118にリンケージ124を配信するための他のそのようなアプリケーションを含む、リンク付けサーバ104のプロセッサ306によって実行する1つまたは複数のアプリケーション310(図示せず)を記憶し得る。
【００６２】
リンク付けサーバ104は、リンク付けエンジン350を含み得る。リンク付けエンジン350は、図5に示すプロセス500を実行することによってユーザID(たとえば、ユーザタグ、ブリッジタグ)間のリンクを確立するためのアプリケーション、サービス、ルーチン、サーバ、デーモン、または他の実行可能論理を含み得る。いくつかの実装形態では、アプリケーション、サービス、ルーチン、サーバ、デーモン、または他の実行可能論理は、図6に示すプロセス600を実行することによってユーザID(たとえば、ユーザタグ、ブリッジタグ)間のリンクを確立する。
【００６３】
図4は、PIIデータを収集するためのプロセス400のいくつかの実装形態におけるPIIサーバおよびクライアントデバイスによって行われる動作の流れ図である。いくつかの実装形態では、プロセス400は、図1のPIIサーバ118a、118bおよび図2の1つまたは複数のクライアントデバイス204によって実行され得る。特に、リンク付けサーバ104は、動作402、412、414、416、418、420、および422を実行し、PIIサーバ118a、118bは、動作404、408、および410を実行する。各動作は、並べ替えられ、追加され、または除去されてよい。
【００６４】
プロセス400は、動作402で始まり、PIIサーバ118a、118bのうちの1つ(以下「要求側サーバ」)がPIIデータを求める要求をクライアントデバイス204に送る。動作404において、クライアントデバイス204は、PIIデータを求める要求を受信する。動作408において、クライアントデバイス204は、クライアントデバイス204に位置するPIIデータを収集する。一実装形態では、クライアントデバイス204は、すべてのPIIデータを求めてクライアントデバイス204のすべてのソフトウェア(たとえば、ブラウザによって記憶されたクッキー)およびハードウェア構成要素(たとえば、ネットワークインターフェース308に接続されたデバイス、ユーザインターフェース304に接続されたデバイス、プロセッサのキャッシュエリア、およびメモリ302)を探索するよう収集エージェント312をトリガする。いくつかの実装形態では、収集エージェント312は、クライアントデバイス204上にまだ記憶されていない新しいPIIデータについてアプリケーション310に照会し得る。一実装形態では、収集エージェント312は、インターネットブラウザに要求を送り、追加のユーザ情報を要求するポップアップウィンドウでクライアントデバイス204のユーザに指示し得る。クライアントデバイス204のユーザは、収集エージェント312がPIIを収集できるように、要求された情報をポップアップウィンドウに入力することによって応答し得る。クライアントデバイス204に関連するPIIデータの全部または一部分を収集した後、クライアントデバイス204は、PIIデータを要求側サーバ(たとえば、PIIサーバ118a、PIIサーバ118b)に配信する。
【００６５】
動作412において、要求側サーバは、配信されたPIIデータを受信する。動作414において、要求側サーバは、クライアントデバイスに関連するユーザ識別記号(たとえば、ユーザタグまたはブリッジタグ)にPIIデータをマッピングする。一実装形態では、(会社116に位置する)PIIサーバ118aが情報を要求する場合、PIIサーバ118aは、会社116と関係がある任意のコンピューティングデバイスと通信し、クライアントデバイスのユーザに関する受信されたPIIデータに「ユーザタグ」を割り当てる(デバイスID314に基づく)クライアントデバイスの各ユーザを識別する。同様に、(データパートナー132に位置する)PIIサーバ118bが情報を要求する場合、PIIサーバ118bは、データパートナー132と関係がある任意のコンピューティングデバイスと通信し、クライアントデバイスのユーザに関する受信されたPIIデータに「ブリッジタグ」を割り当てる(デバイスID314に基づく)クライアントデバイスの各ユーザを識別する。
【００６６】
動作416において、要求側サーバは、割り当てられたユーザタグをデータ構造フォーマット(たとえば、データ構造126、データ構造136)に編成し、データ構造をデータベース(たとえば、UT PIIマッピングストレージ120、BT PIIマッピングストレージ134)に記憶する。いくつかの実装形態では、要求側サーバは、割り当てられたユーザタグおよびPIIデータをアレイ、リンクリスト、レコード、共用体、タグ付き共用体、クラス、ツリー、キュー、またはフラットファイルに編成する。要求側サーバは、カンマ、セミコロン、タブ、スペース、下線、またはハイフンなどの特殊文字を使用することによって、フラットファイルにおける表データを分離し得る。一実装形態では、要求側サーバは、たとえば、次のように、カンマで分離されたテキストファイルにデータ構造126のコンテンツを記憶し得る。
1, 9288, cat@mail.com, 555-0100
2, 5002, dog1@email.com, 555-0140
3, 4263, mouse@email.com, 555-2105
4, 1284, snake@email.com, 555-9106
5, 0301, bird@email.com, 555-8136
【００６７】
動作418において、要求側サーバは、追加のクライアントが要求側サーバと関係があるかどうかを判断する。追加のクライアントがある場合、動作420において、要求側サーバは、次のクライアントデバイス204にPIIデータ要求を送り、動作404に進んでプロセス400を繰り返す。要求がすべてのクライアントデバイスに送られると、プロセスは動作422において終了する。
【００６８】
図5は、ユーザタグおよびブリッジタグをリンクするためのプロセス500のいくつかの実装形態におけるリンク付けサーバおよびPIIサーバによって行われる動作の流れ図である。いくつかの実装形態では、プロセス500は、図1のリンク付けサーバ104およびPIIサーバ118a、118bによって実行され得る。プロセス500は、ウォーターフォール手法を使用するリンク付けフェーズを表す。各動作は、並べ替えられ、追加され、または除去されてよい。
【００６９】
動作502から動作512まで、リンク付けサーバ104は、会社116からデータの第1のセットを収集する。一実装形態では、動作502において、リンク付けサーバ104は、会社116によって維持されるユーザタグ-PIIマッピング(たとえば、UT PIIマッピング122)を求める要求をPIIサーバ118aに送る。動作504において、PIIサーバ118aは要求を受信し、要求の受信に応答して、PIIサーバ118aは動作506において、ストレージ(たとえば、UT PIIマッピングストレージ120)からユーザタグ-PIIマッピング(たとえば、UT PIIマッピング122)を取り出す。動作508において、PIIサーバ118aは、各ユーザタグに関連するPIIデータをハッシュする。一実装形態では、PIIサーバ118aは、データ構造126のエントリ127に関連する電子メールアドレスをUT PIIマッピング122(またはUT PIIマッピングストレージ120)から取り出し、取り出された値をハッシュし、記憶された電子メールアドレスにそのハッシュ値相当で上書きする。PIIサーバ118aは次いで、データ構造126のエントリ127に関連する電話番号をUT PIIマッピング122(またはUT PIIマッピングストレージ120)から取り出し、取り出された値をハッシュし、記憶された電話番号にそのハッシュ値相当で上書きする。PIIサーバ118aは、UT PIIマッピングストレージ120におけるエントリごとに、このプロセスを繰り返し得る。いくつかの実装形態では、PIIサーバ118aは、たとえば、トリプルData Encryption Standard(DES)、RSA、ブローフィッシュ、トゥーフィッシュ、またはAdvanced Encryption Standard(AES)を使用して、PIIデータを(ハッシュする代わりに)暗号化することができる。いくつかの実装形態では、PIIサーバ118aは、未加工のハッシュされていないPIIデータを使用し、動作508を省略して動作510に進むことができる。いくつかの実装形態では、各PIIサーバ118は、それぞれのストレージ(たとえば、UT PIIマッピングストレージ120、BT PIIマッピングストレージ134)のコンテンツを、ストレージコンテンツをハッシュしストレージコンテンツに上書きする前に、二次ストレージ(図示せず)にバックアップし得る。
【００７０】
動作510において、PIIサーバ118aは、ハッシュされたPIIマッピング(たとえば、UT PIIマッピング122)をデータストレージ(たとえば、UT PIIマッピングストレージ120)から取り出し、ハッシュされたPIIマッピング(たとえば、UT PIIマッピング122)をリンク付けサーバ104に配信する。動作512において、リンク付けサーバ104は、PIIサーバ118aからUT PIIマッピング122を受信し、UT PIIマッピング122をデータストレージ(たとえば、PIIマッピングストレージ106)に記憶する。
【００７１】
動作514から動作524まで、リンク付けサーバ104は、データパートナー132からデータの第2のセットを収集する。一実装形態では、動作516において、リンク付けサーバ104は、データパートナー132によって維持されるブリッジタグ-PIIマッピング(たとえば、BT PIIマッピング144)を求める要求をPIIサーバ118bに送る。動作516において、PIIサーバ118bは要求を受信し、要求の受信に応答して、PIIサーバ118bは動作518において、ストレージ(たとえば、BT PIIマッピングストレージ134)からブリッジタグ-PIIマッピング(たとえば、BT PIIマッピング144)を取り出す。動作520において、PIIサーバ118bは、各ブリッジタグに関連するPIIデータをハッシュする。いくつかの実装形態では、PIIサーバ118bは、たとえば、トリプルData Encryption Standard(DES)、RSA、ブローフィッシュ、トゥーフィッシュ、またはAdvanced Encryption Standard(AES)を使用して、PIIデータを(ハッシュする代わりに)暗号化することができる。いくつかの実装形態では、PIIサーバ118bは、未加工のハッシュされていないPIIデータを使用し、動作520を省略して動作522に進むことができる。動作520において、PIIサーバ118bは、ハッシュされたPIIマッピング(たとえば、BT PIIマッピング144)をデータストレージ(たとえば、BT PIIマッピングストレージ134)から取り出し、ハッシュされたPIIマッピング(たとえば、BT PIIマッピング144)をリンク付けサーバ104に配信する。動作524において、リンク付けサーバ104は、PIIサーバ118bからBT PIIマッピング144を受信し、BT PIIマッピング144をデータストレージ(たとえば、PIIマッピングストレージ106)に記憶する。
【００７２】
いくつかの実装形態では、PIIサーバ118a、118bは、所定の日時に(たとえば、特定の日、曜日、毎日、日付、たとえば、「月曜日の午後7時に」もしくは「午後7時すぎに毎日」)、PIIサーバがクライアントデバイスから新しいPIIデータを受信するたびに、またはクライアントデバイスがPIIサーバに接続するたびに、などのトリガイベントの実現に応答して、それぞれのPIIデータをハッシュする。
【００７３】
引き続き図5を参照すると、動作526において、リンク付けサーバ104は、ウォーターフォールマッチタイプ(たとえば、電子メールアドレス、電話番号、社会保障番号)をセットすることによってユーザタグをブリッジタグにリンクするウォーターフォール手法を始める。一実装形態では、リンク付けサーバ104は、ユーザごとの電子メールアドレスとなるようにウォーターフォールマッチタイプを選択し得る。したがって、動作528〜560は、各ユーザの電子メールアドレスに基づいて、ユーザタグをブリッジタグにリンクする。一実装形態では、リンク付けサーバ104は、ユーザごとの電話番号となるようにウォーターフォールマッチタイプを選択し得る。したがって、動作528〜560は、各ユーザの電話番号に基づいて、ユーザタグをブリッジタグにリンクする。マッチタイプは、本明細書で説明するように、任意のPIIデータ値として適合され得る。
【００７４】
動作528において、リンク付けサーバ104は、動作526からの選択されたPIIマッチタイプに基づいて、データベース(たとえば、PIIマッピングストレージ106)からユーザタグ-PIIマッピングエントリを取り出す。一実装形態では、データ構造126は、リンク付けサーバ104によって受信されたUT PIIマッピング122に関するデータ構造を示す。リンク付けサーバ104は、PIIマッピングストレージ106にUT PIIマッピング122を記憶するときに、この同じデータ構造を維持する。リンク付けサーバ104が(すなわち、動作526において)マッチタイプとして「電子メールアドレス」を選択した場合、リンク付けサーバ104は、ハッシュされた電子メールアドレス(たとえば、cat@email.com)を、データ構造126における第1のユーザに対応するエントリ127から取り出す。
【００７５】
動作532において、リンク付けサーバ104は、動作526からの選択されたPIIマッチタイプに基づいて、データベース(たとえば、PIIマッピングストレージ106)からブリッジタグ-PIIマッピングエントリを取り出す。一実装形態では、データ構造136は、リンク付けサーバ104によって受信されたBT PIIマッピング144に関するデータ構造を示す。リンク付けサーバ104は、PIIマッピングストレージ106にBT PIIマッピング144を記憶するときに、この同じデータ構造を維持する。その後、リンク付けサーバ104は、ハッシュされた電子メールアドレス(たとえば、snake@email.com)を、データ構造136における第1のユーザに対応するエントリ138から取り出す。
【００７６】
動作536において、リンク付けサーバ104は、取り出された値が一致するかどうかを判断する(動作538)ために、取り出されたユーザタグ-PIIマッピングエントリおよび取り出されたブリッジタグ-PIIマッピングエントリを比較する。一致が発見されなかった場合、リンク付けサーバ104は、ポインタ(たとえば、メモリポインタ、データベースポインタ、スタックポインタ)を次のブリッジタグ-PIIマッピングエントリに増分し、動作532に戻る。いくつかの実装形態では、リンク付けサーバ104は、ポインタをデータ構造136のエントリ139(たとえば、bird@email.com)に移動する。一方、一致が発見された場合、リンク付けサーバ104は動作542に進む。
【００７７】
リンク付けサーバ104は、力任せアルゴリズム、決定性有限オートマンアルゴリズム、カープ-ラビンアルゴリズム、Shift Orアルゴリズム、モリス-プラットアルゴリズム、クヌース-モリス-プラットアルゴリズム、サイモンアルゴリズム、Colussiアルゴリズム、Galil-Giancarloアルゴリズム、Apostolico-Crochemoreアルゴリズム、Not So Naiveアルゴリズム、ボイヤー-ムーアアルゴリズム、Turbo BMアルゴリズム、Apostolico-Giancarloアルゴリズム、Reverse Colussiアルゴリズム、Horspoolアルゴリズム、Quick Searchアルゴリズム、Tunedボイヤー-ムーアアルゴリズム、Zhu-Takaokaアルゴリズム、Berry-Ravindranアルゴリズム、Smithアルゴリズム、Raitaアルゴリズム、Reverse Factorアルゴリズム、Turbo Reverse Factorアルゴリズム、Forward Dawg Matchingアルゴリズム、Backward Nondeterministic Dawg Matchingアルゴリズム、Backward Oracle Matchingアルゴリズム、Galil-Seiferasアルゴリズム、Two Wayアルゴリズム、String Matching on Ordered Alphabetsアルゴリズム、Optimal Mismatchアルゴリズム、Maximal Shiftアルゴリズム、Skip Searchアルゴリズム、クヌース-モリス-プラット(KMP)Skip Searchアルゴリズム、およびAlpha Skip Searchアルゴリズムなどの文字列比較アルゴリズムを使用して値を比較し得る。いくつかの実装形態では、力任せアルゴリズムを使用して、リンク付けサーバ104は、cat@email.comとsnake@email.comの両方を個別文字の第1のセットおよび個別文字の代2のセットにパースする。リンク付けサーバ104は次いで、個別文字の第1のセットの第1の文字(たとえば、cat@email.comからの「c」)を個別文字の第2のセットの第1の文字(たとえば、snake@email.comからの「s」)と比較する。一致がある場合、リンク付けサーバ104は、個別文字の第1のセットの第2の文字(たとえば、cat@email.comからの「a」)を個別文字の第2のセットの第2の文字(たとえば、snake@email.comからの「n」)と比較する。リンク付けサーバ104は、個別文字の第1のセット(たとえば、cat@email.com)におけるすべての文字が個別文字の第2のセット(たとえば、snake@email.com)におけるすべての文字と一致することを確認するために、文字間比較を継続する。
【００７８】
動作542において、リンク付けサーバ104は、取り出されたユーザタグと取り出されたブリッジタグとの間のリンクを確立する。一実装形態では、リンク付けサーバ104は、データ構造110を生成することによってリンクを確立し得る。データ構造110の各エントリは、(ユーザタグにより表される)会社116と(ブリッジタグにより表される)データパートナー132の両方に共通するユーザを表し得る。
【００７９】
動作544において、リンク付けサーバ104は、生成されたデータ構造110をリンケージストレージ108に記憶する。動作536および538において識別される一致ごとに、リンク付けサーバ104は、対応するユーザタグおよびブリッジタグを付加する。いくつかの実装形態では、リンク付けサーバ104は、データ構造110の第1のエントリに書き込み、すべての他のエントリを1つ押し下げる。
【００８０】
動作546において、リンク付けサーバは、取り出されたユーザタグおよびすべての関連PIIデータをPIIマッピングストレージ106から除去または削除する。同様に、動作548において、リンク付けサーバ104は、取り出されたブリッジタグおよびすべての関連PIIデータをPIIマッピングストレージ106から除去または削除する。いくつかの実装形態では、リンク付けサーバ104は、情報を削除する代わりに、(@、‘、'、#、$、%、^、&、*、/、\、_のうちの1つなどの)特殊文字、数列(たとえば、999)、またはそれらの任意の組合せと情報を連結し得る。たとえば、リンク付けサーバ104は、データ構造136のエントリ138におけるブリッジタグ「0301」を「#0301#」に置き換え得る。いくつかの実装形態では、特殊文字は、処理中にエントリをまたぐか、または他のカスタマイズされた動作を実行するようリンク付けサーバ104に命令し得る。
【００８１】
動作550において、リンク付けサーバ104は、追加のユーザタグ-PIIマッピングエントリ(たとえば、エントリ127、128、129、130、131)がデータ構造126に存在するかどうかをチェックする。yesの場合、リンク付けサーバ104は、動作556に進んで、ポインタを次のユーザタグ-PIIマッピングエントリに増分し、動作558に進んで、ブリッジタグ-PIIマッピングポインタをデータ構造136の第1のエントリ(たとえば、エントリ138)にリセットし、動作528に戻って、新しい取り出された値を使用してプロセスを繰り返す。noの場合、リンク付けサーバ104は、動作552に進んで、追加のマッチタイプがマッチタイプシーケンスに存在するかどうかをチェックする。追加のマッチタイプ(たとえば、電子メールアドレス、電話番号)がある場合、リンク付けサーバ104は、動作560に進んで、ポインタを次のマッチタイプに増分し、次いで動作526に進んで、次のマッチタイプを使用するようにウォーターフォールマッチングプロセスをセットする。一方、動作552において追加のマッチタイプがないとリンク付けサーバ104が判断した場合、リンク付けサーバ104は動作554に進む。動作554において、リンク付けサーバ104は、会社116にリンケージ124を配信する。
【００８２】
次いで会社116は、受信されたリンケージを利用し得る。1つの可能な使用は、記憶されたユーザID-PIIマッピングデータを調べることによって、顧客へのインターネット関連のサービスおよび商品の配信を改善することである。たとえば、親会社のウェブサイト上で自動車を宣伝し、子会社のウェブサイト上でトラックを宣伝する自動車メーカー(「会社」)の上記の例では、会社のユーザタグとデータパートナーのブリッジタグとの間のリンケージを確立することによって、会社は、親会社の自動車ウェブサイトを訪れているユーザがトラックの購入にも関心を持っていることを発見し得る。したがって、会社は、親会社の自動車ウェブサイトのルックアンドフィールを、特にそのユーザ向けに、子会社のトラックウェブサイト上で購入可能なトラックの画像も含むようにカスタマイズし得る。これにより、トラックを提供するウェブサイトを発見するためにユーザが検索を実行する必要がなくなることで、ネットワークトラフィックおよび必要な帯域幅が減るので、よりリソース効率の高いプロセスがもたらされ得る。
【００８３】
図6は、ユーザタグおよびブリッジタグをリンクするためのプロセス600のいくつかの実装形態におけるユーザ識別記号(ID)リンク付けサーバおよびPIIサーバによって行われる動作の流れ図である。いくつかの実装形態では、プロセス600は、図1のリンク付けサーバ104およびPIIサーバ118a、118bによって実行され得る。詳細には、クリーンルーム102の各動作はリンク付けサーバ104によって実行され、会社116の各動作はPIIサーバ118aによって実行され、データパートナー132の各動作はPIIサーバ118bによって実行される。プロセス600は、ユーザID(たとえば、ユーザタグ、ブリッジタグ)のリンク付けのために各当事者がそれらのデータをクリーンルーム102に配信する前に、データパートナー132がデータを会社116と共有することを含む代替のリンク付けフェーズを表す。各動作は、並べ替えられ、追加され、または除去されてよい。
【００８４】
プロセス600の場合、PIIサーバ118b(すなわち、データパートナー132)は、各ユーザを識別するためにユーザ-レベルID(「ブリッジタグ」と呼ばれる)を記憶し、ユーザにリンクされた各PIIデータ(たとえば、電子メールアドレス、電話番号)を識別するために複数のPII-レベルID(「PIIタグ-1」、「PIIタグ-2」、「PIIタグ-3」...「PIIタグ-n」)を記憶する。ユーザ-レベルIDおよびその関連PII-レベルIDの各々のリンク付けは、以下のマッピング式により示され得る。
(1)ブリッジタグ<>電子メール(PIIタグ-1)<>電話番号(PIIタグ-2)
マッピング式(1)では、特定のユーザに割り当てられたブリッジタグは、ユーザの電子メールアドレスを表す第1のPII-レベルID(たとえば、PIIタグ-1)に関連付けられ(<>)、ユーザの電話番号を表す第2のPII-レベルID(たとえば、PIIタグ-2)に関連付けられる(<>)。すなわち、ユーザの実際の電子メールアドレスおよび実際の電話番号は、この式に示されていない。代わりに、ユーザの個人識別可能情報がPII-レベルIDによって表される。プロセス600の動作を表すために同じ命名法(nomenclature)が使用される。
【００８５】
動作602において、PIIサーバ118bは、データパートナー132と関係がある各ユーザに関連する各PIIデータをハッシュする。図5のプロセス500において説明したハッシング手順および利用可能なハッシングアルゴリズムは、プロセス600にも適用される。いくつかの実装形態では、PIIサーバ118bは、たとえば、トリプルData Encryption Standard(DES)、RSA、ブローフィッシュ、トゥーフィッシュ、またはAdvanced Encryption Standard(AES)を使用して、各PIIデータを(ハッシュする代わりに)暗号化することができる。
【００８６】
動作604において、PIIサーバ118bは、そのユーザの各々に関する複数のPII-レベルID<>ハッシュされたPIIマッピングを、会社116におけるPIIサーバ118aに提供する。一実装形態では、PIIサーバ118bはPIIサーバ118aに、電話番号のハッシュされた値(たとえば、ハッシュされた(555-0100))に関連する(<>)第1のユーザの電話番号に関するPII-レベルID(たとえば、PIIタグ-2)に関連する(<>)電子メールアドレスのハッシュされた値(たとえば、ハッシュされた(cat@email.com))に関連付する(<>)第1のユーザの電子メールアドレスに関するPII-レベルID(たとえば、PIIタグ-1)を送る。したがって、PIIサーバ118bは、第1のユーザに関する以下のマッピングをPIIサーバ118aに送る。
(2)PIIタグ-1<>ハッシュされた(cat@email.com)<>PIIタグ-2<>ハッシュされた(555-0100)
さらに、PIIサーバ118bはPIIサーバ118aに、電話番号のハッシュされた値(たとえば、ハッシュされた(555-0140))に関連する(<>)第2のユーザの電話番号に関するPII-レベルID(たとえば、PIIタグ-4)に関連する(<>)電子メールアドレスのハッシュされた値(たとえば、ハッシュされた(dog1@email.com))に関連付する(<>)第2のユーザの電子メールアドレスに関するPII-レベルID(たとえば、PIIタグ-3)を送る。したがって、PIIサーバ118bは、第2のユーザに関する以下のマッピングをPIIサーバ118aに送る。
(3)PIIタグ-3<>ハッシュされた(dog1@email.com)<>PIIタグ-4<>ハッシュされた(555-0140)
【００８７】
動作606において、PIIサーバ118aは、PII-レベルID<>ハッシュされたPIIマッピングをPIIサーバ118bから受信し、受信されたデータをローカルストレージ(たとえば、UT PIIマッピングストレージ120)または外部ストレージ(たとえば、クラウドデータベース、リモートストレージ)に記憶する。
【００８８】
動作608において、PIIサーバ118aは、会社116と関係がある各ユーザに関連する各PIIデータをハッシュする。図5のプロセス500において説明したハッシング手順および利用可能なハッシングアルゴリズムは、プロセス600にも適用される。いくつかの実装形態では、PIIサーバ118aは、たとえば、トリプルData Encryption Standard(DES)、RSA、ブローフィッシュ、トゥーフィッシュ、またはAdvanced Encryption Standard(AES)を使用して、各PIIデータを(ハッシュする代わりに)暗号化することができる。ユーザタグおよびブリッジタグの正常なリンク付けを確実にするために、PIIサーバ118aおよびPIIサーバ118bは、それぞれのデータの各々をハッシュするために同じハッシング関数を使用する。いくつかの実装形態では、当事者は、当業界において一般的に受け入れられているデフォルトハッシング関数を使用する。いくつかの実装形態では、当事者(会社116およびデータパートナー132)は、特定のハッシング関数に合意するために互いに通信する。
【００８９】
動作610において、PIIサーバ118aは、会社116のユーザID(「ユーザタグ」)とPIIサーバ118bから受信された複数のPII-レベルIDとの間のリンクを確立する。リンクを確立するために、PIIサーバ118aは、本明細書で説明する文字列比較アルゴリズム(たとえば、力任せアルゴリズム、決定性有限オートマンアルゴリズム、カープ-ラビンアルゴリズムなど)のいずれかを使用して、そのハッシュされたPIIデータをデータパートナー132のハッシュされたPIIデータと比較する。PIIサーバ118aが会社116のハッシュされたPIIデータとデータパートナー132のハッシュされたPIIデータとの間の一致を決定した場合、PIIサーバ118aは、会社116のユーザタグを、そのユーザに関連するデータパートナー132の複数のPII-レベルIDにリンクする(==)。一実装形態では、データパートナー132は、第1のユーザに関する以下のマッピングを会社116に提供する。
(4)PIIタグ-1<>ハッシュされた(cat@email.com)<>PIIタグ-2<>ハッシュされた(555-0100)
ここで、PIIタグ-1は、cat@email.comの電子メールアドレスに関するPII-レベルIDであり、PIIタグ-2は、555-0100の電話番号に関するPII-レベルIDである。
PIIサーバ118aは、ストレージ(たとえば、UT PIIマッピングストレージ120、クラウドストレージ)から以下のマッピングを取り出す。
(5)ユーザタグ-1<>ハッシュされた(cat@email.com)<>ハッシュされた(555-0100)
ここで、ユーザタグ-1は、同じ「第1の」ユーザに関するユーザIDであり、cat@email.comは、第1のユーザに関連する第1のPIIデータであり、555-0100は、第1のユーザに関連する第2のPIIデータである。
PIIサーバ118aは、マッピング(4)のハッシュされたPIIデータとマッピング(5)のハッシュされたPIIデータとの間の文字列比較を実行する。いくつかの実装形態では、PIIサーバ118aは、以下の順序で文字列比較を実行する。
マッピング(4)の第1のPIIデータとマッピング(5)の第1のPIIデータとの比較
マッピング(4)の第2のPIIデータとマッピング(5)の第2のPIIデータとの比較
マッピング(4)の第1のPIIデータとマッピング(5)の第2のPIIデータとの比較
マッピング(4)の第2のPIIデータとマッピング(5)の第1のPIIデータとの比較
一実装形態では、PIIサーバ118aは、一致を決定するために、マッピング(4)からのハッシュされた(cat@email.com)をマッピング(5)からのハッシュされた(cat2@email.com)と比較する。したがって、PIIサーバ118aは次のように、「第1のユーザ」に割り当てられた会社116におけるユーザID(たとえば、ユーザタグ-1)を、第1のハッシュされたPIIデータに関するPII-レベルID(たとえば、PIIタグ-1)および第2のハッシュされたPIIデータに関するPII-レベルID(たとえば、PIIタグ-2)にリンク(==)する。
(6)ユーザタグ-1==PIIタグ-1、PIIタグ-2
PIIサーバ118aは、一致するユーザごとにストレージ(たとえば、UT PIIマッピングストレージ120)にユーザタグ-ユーザ-レベルIDリンケージを保存する。
【００９０】
動作612において、PIIサーバ118aは、ストレージ(たとえば、UT PIIマッピングストレージ120)からすべての不一致データを除去する。一実装形態では、PIIサーバ118aは、一致しない会社116のユーザタグおよび関連PIIデータのすべて、ならびにすべてのデータパートナー132のPII-レベルID<>ハッシュされたPIIデータを除去する。
【００９１】
動作614において、PIIサーバ118aは、ストレージ(たとえば、UT PIIマッピングストレージ120)からユーザタグ-ユーザ-レベルIDリンケージを取り出し、クリーンルーム102におけるリンク付けサーバ104にそれを提供する。動作616において、リンク付けサーバ104は、PIIサーバ118aから提供されたデータを受信し、それをデータストレージ(たとえば、PIIマッピングストレージ106)に記憶する。動作618において、PIIサーバ118bは、ストレージ(たとえば、BT PIIマッピングストレージ134)からブリッジタグ-ユーザ-レベルIDリンケージを取り出し、クリーンルーム102におけるリンク付けサーバ104にそれを提供する。動作620において、リンク付けサーバ104は、PIIサーバ118bから提供されたデータを受信し、データストレージ(たとえば、PIIマッピングストレージ106)にそれを記憶する。
【００９２】
動作622において、リンク付けサーバ104は、PIIサーバ118a(すなわち、会社116)からのPII-レベルIDおよびPIIサーバ118b(すなわち、データパートナー132)からのPII-レベルIDを比較およびマッチングすることによって、各ユーザタグと各ブリッジタグとの間のリンクを確立する。リンクを確立するために、リンク付けサーバ104は、本明細書で説明する動作610の同じ文字列比較技法を適用する。
【００９３】
動作624において、リンク付けサーバ104は、PIIサーバ118a(すなわち、会社116)にユーザタグ-ブリッジタグリンケージを提供する。動作626において、PIIサーバ118aはリンケージ124を受信する。動作628において、PIIサーバ118aは、プロセス600が追加のデータセットに対して繰り返される必要があるかどうかを判断するために、会社116におけるストレージ(たとえば、UT PIIマッピングストレージ120)をチェックする。noの場合、プロセス600は動作630において終了する。yesの場合、プロセス600は、動作632に進んで次のデータセットを選択し、次いで動作602に進んでプロセス600を繰り返す。
【００９４】
多くの暗号化規格は、値を2回、2つの異なる鍵の各々により1回暗号化することで、どちらの鍵が最初に使用されるかに関係なく同じ暗号化された値が生じるような、可換特性を有する。すなわち、可換暗号化関数Encrypt()の場合、Encrypt(Key1, Encrypt( Key2, message))の結果は、Encrypt(Key2, Encrypt( Key1, message))の結果に等しい。したがって、図5および図6を参照して、上記で説明した比較は、二重暗号化されているデータに対して行われ得る。いくつかの実装形態では、以下でより詳細に説明するように、2つの当事者は、それぞれの秘密鍵で暗号化されたデータを交換し、交換されたデータを、それをそれぞれの秘密鍵の他方でさらに暗号化することによって比較し得る。各当事者は、どちらの秘密鍵が最初に使用されたかに関係なく、また秘密鍵を共有することなく(比較に適した)同じ結果を有する。図7に示すプロセス700は、クリーンルーム環境を使用することなく、また内部PIIマッピングを共有することなく、ユーザタグとデータパートナーのブリッジタグとの間のリンケージを確立するために、この可換暗号化の特徴を使用する。
【００９５】
図7は、クリーンルーム環境を使用することなくユーザタグおよびブリッジタグをリンクするためのプロセス700のいくつかの実装形態におけるPIIサーバによって行われる動作の流れ図である。いくつかの実装形態では、プロセス700は、図1のPIIサーバ118a、118bによって実行され得る。詳細には、会社116の各動作はPIIサーバ118aによって実行され、データパートナー132の各動作はPIIサーバ118bによって実行される。プロセス700は、PIIマッピングを明かすことなく、比較のために1つの場所に暗号化されたPIIデータをまとめるための代替のプロセスを表す。いくつかの実装形態では、PIIサーバ118bが暗号化されたデータを有すると、PIIデータは、前に説明した同じウォーターフォール方式で比較される。各動作は、並べ替えられ、追加され、または除去されてよい。
【００９６】
プロセス700の場合、会社116のPIIサーバ118aは、ユーザを識別するためのユーザ-レベルID(「ユーザタグ」と呼ばれる)を記憶し、データパートナーのPIIサーバ118abは、ユーザを識別するためのユーザ-レベルID(「ブリッジタグ」と呼ばれる)を記憶し、PIIサーバ118a、118bの各々は、ユーザにリンクされた様々なPIIデータ(たとえば、電子メールアドレス、電話番号)に対応する複数のPIIデータ要素を記憶する。PIIサーバ118bは、ブリッジタグ(たとえば、「BT1」、「BT2」など)および暗号化された個別のPIIデータ要素(たとえば、「PII1.1」、「PII1.2」、「PII2.1」などであり、暗号化されたデータおよび使用された暗号化鍵を示すために、暗号化された形式で「E(Key,PII#)」と呼ばれる)のデータペアを生成する。PIIデータ要素を暗号化するために使用される暗号化アルゴリズムは、決定性可換暗号化アルゴリズム(たとえば、大きな素数を法とするべき剰余)である。会社116のPIIサーバ118aはさらに、ユーザタグおよびブリッジタグを暗号化する。ユーザタグおよびブリッジタグを暗号化するために会社116のPIIサーバ118aによって使用されるアルゴリズムは、決定性暗号化アルゴリズムであるが、可換である必要はなく、いくつかの実装形態では、PIIデータを暗号化するために使用されるアルゴリズムとは異なるアルゴリズムである。(暗号化と復号の両方に単一の鍵を使用する)対称暗号化アルゴリズムまたは(鍵のペアを、一方を暗号化に、他方を逆の復号に使用する)非対称暗号化アルゴリズムが使用され得る。以下の説明は、対称(単一の鍵)アルゴリズムが暗号化アクションごとに使用されると仮定しており、したがって、暗号化鍵のみについて説明する。ただし、いくつかの実装形態では、1つまたは複数の非対称暗号化アルゴリズムが使用され得る。
【００９７】
以下でより詳細に説明するように、プロセス700において、PIIサーバ118a、118bの各々は、データパートナー132のPIIサーバ118bが暗号化されたユーザタグに関連する二重暗号化されたPIIデータのセットおよび暗号化されたブリッジタグに関連する二重暗号化されたPIIデータのセットを取得するように、PIIデータを暗号化する。次いで、データパートナー132のPIIサーバ118bは、暗号化されたユーザタグとブリッジタグとの間の相関を識別するために、二重暗号化されたPIIデータを比較する。データパートナー132のPIIサーバ118bは、会社116のPIIサーバ118aに相関を戻し、次いで会社116のPIIサーバ118aは、タグデータを復号し、所望のタグリンケージデータを有するが、いずれも内部PIIまたはPIIマッピングを明らかにしていない。
【００９８】
動作710において、データパートナー132のPIIサーバ118bは、暗号化鍵Xを生成する。いくつかの実装形態では、PIIサーバ118bは常に、同じ鍵Xを使用する。いくつかの実装形態では、PIIサーバ118bは、プロセス700を呼び出すたびに、新しい鍵Xを生成する。暗号化鍵Xは、データパートナー132によって秘密に保持され、プロセス700の完了後に処分され得る。
【００９９】
動作710の前であるか、後であるか、または動作710と並行であり得る動作715において、会社116側のPIIサーバ118aは、2つの無関係な暗号化鍵GおよびZを生成する。鍵Gは、ユーザタグおよびブリッジタグを暗号化する際に使用するものである。いくつかの実装形態では、鍵Gおよび鍵Zは、異なる暗号化アルゴリズムのためにPIIサーバ118aによって生成される。いくつかの実装形態では、ユーザタグおよびブリッジタグを暗号化するために使用される暗号化アルゴリズムは、非可換である。暗号化鍵GおよびZは、会社116によって秘密に保持され、プロセス700の完了後に一方または両方が処分され得る。
【０１００】
動作718において、データパートナー132のPIIサーバ118bは、個別に各PIIデータ要素を暗号化するために暗号化鍵Xを使用する。PIIサーバ118bは、ユーザのブリッジタグおよびユーザのブリッジタグに関連する各PIIデータ要素のデータペアを生成し、各PIIデータ要素は、鍵Xを使用して暗号化される。したがって、データパートナー132がブリッジタグを電子メールアドレスおよび電話番号にマッピングし得る場合、PIIサーバ118bは、ブリッジタグおよび暗号化された電子メールアドレスの第1のデータペアを生成するために電子メールアドレスを暗号化し、PIIサーバ118bは、ブリッジタグおよび暗号化された電話番号の第2のデータペアを生成するために電話番号を暗号化する。
【０１０１】
動作720において、データパートナー132のPIIサーバ118bは、会社116のPIIサーバ118aに{ブリッジタグ、暗号化されたPII}のデータペアを送る。いくつかの実装形態では、データパートナー132のPIIサーバ118bは、データリンクを介して会社116のPIIサーバ118aに、たとえば、TCP、SCTP、または任意の他のOSIレイヤ-4トランスポートプロトコルを介してデータを送る。いくつかの実装形態では、データリンクは、たとえば、エンドツーエンド暗号化の追加のレイヤを使用する、セキュアなネットワークリンクである。いくつかの実装形態では、データパートナー132のPIIサーバ118bは、ピアツーピアリンクを介して会社116のPIIサーバ118aにデータを送る。動作725において、会社116のPIIサーバ118aは、データパートナー132のPIIサーバ118bからデータペアを受信する。
【０１０２】
動作720においてデータパートナー132のPIIサーバ118bによって送られるデータの一例は、一連のデータペア{BT1, E(X, PII1.1)}、{BT1, E(X, PII1.2)}、{BT2, E(X, PII2.1)}などである。この例では、「BT1」および「BT2」は、例示的なブリッジタグであり、各々は、暗号化されたPIIデータ要素PII1.1、PII1.2、PII2.1などとペアにされる。会社116のPIIサーバ118aは、動作725においてこのデータを受信し、次いで、暗号化されたデータとそれぞれペアにされたブリッジタグのセットを保有する。したがって、PIIデータは難読化され、保護される。個人情報は一切共有されない。
【０１０３】
動作733において、会社116のPIIサーバ118aは、各ブリッジタグを暗号化するためにGを使用し、すでに暗号化されたパートナーPIIデータを二重暗号化するためにZを使用して、パートナーデータを暗号化するために暗号化鍵を使用する。この動作の結果として、受信されたブリッジタグおよび暗号化されたPIIデータ要素ペアが、暗号化されたブリッジタグおよび二重暗号化されたPIIデータ要素ペアになる、すなわち、{BT, E(X, PII)}が{E(G, BT), E(Z, E(X, PII))}になる。
【０１０４】
動作735において、会社116のPIIサーバ118aは、データパートナー132のPIIサーバ118bに二重暗号化されたデータペアを送る。いくつかの実装形態では、会社116のPIIサーバ118aは、データリンクを介してデータパートナー132のPIIサーバ118bに、たとえば、TCP、SCTP、または任意の他のOSIレイヤ-4トランスポートプロトコルを介してデータを送る。いくつかの実装形態では、データリンクは、たとえば、エンドツーエンド暗号化の追加のレイヤを使用する、セキュアなネットワークリンクである。いくつかの実装形態では、会社116のPIIサーバ118aは、ピアツーピアリンクを介してデータパートナー132のPIIサーバ118bにデータを送る。いくつかの実装形態では、会社116のPIIサーバ118aは、動作720において使用された同じリンクを使用してデータを送る。いくつかの実装形態では、二重暗号化されたデータペアを送る前に(または送っている間に)、会社116のPIIサーバ118aは、データペアの順序を(各ペアをそのままに維持して)シャッフルする。シャフリングにより、第1の順序付けで動作725において会社116のPIIサーバ118aによって受信されたデータペアのセットが並べ替えられ、その結果、二重暗号化されたデータペアが、動作735においてデータパートナー132のPIIサーバ118bに戻されるときに、それらは、第1の順序付けとは異なる第2の順序付けで戻される。このシャフリングはさらに、暗号化されたデータとデータの元のソースとの間の関係を難読化する。データパートナー132のPIIサーバ118bは、動作738において、暗号化された(またいくつかの実装形態では、シャッフルされた)データを受信する。
【０１０５】
動作735において会社116のPIIサーバ118aによって送られるデータの例は、動作733において二重暗号化されシャッフルされた前述の例に基づく、一連のデータペアである。この例では、暗号化およびシャフリングは、一連の{E(G, BT1), E(Z, E(X, PII1.1))}、{E(G,BT2), E(Z,E(X, PII2.1))}、{E(G, BT1), E(Z, E(X, PII1.2))}などをもたらす。データパートナー132のPIIサーバ118bは、動作738においてこのデータを受信し、次いで、二重暗号化されたデータとそれぞれペアにされた暗号化されたブリッジタグのセットを保有する。したがって、PIIデータは依然として難読化され、保護される。個人情報は一切共有されない。
【０１０６】
動作725、733、および735の前であるか、後であるか、または動作725、733、および735と並行であり得る動作743において、会社116側のPIIサーバ118aは、会社116のPIIデータを暗号化するために暗号化鍵G、Zを使用する。PIIサーバ118aは、鍵Gで内部ユーザタグを暗号化する。いくつかの実装形態では、PIIサーバ118aは、代替鍵G'で内部ユーザタグを暗号化する。いくつかの実装形態では、PIIサーバ118aは、局所的に一意のランダム値への内部ユーザタグのワンタイムマッピングを生成し、(このプロセスを後に逆転させる際に使用するためにマッピングを保持して)対応するユーザタグの代わりにランダム値を用いる。PIIサーバ118aは、対応する関連PIIデータ要素と暗号化された(または代用)ユーザタグのデータペアを生成する。各データペアリングにおいて、PIIサーバ118aは、鍵Zを使用してPIIデータ要素を暗号化する。いくつかの実装形態では、PIIサーバ118aはさらに、偽ユーザタグおよび/または偽PIIデータ要素を含む偽データペアを生成する。この追加の偽データは、真のデータを難読化するのを助け、暗号化プロセスを逆転させようとする不正な試みを混乱させることができる。
【０１０７】
動作745において、会社116のPIIサーバ118aは、データパートナー132のPIIサーバ118bに暗号化された会社データを送る。いくつかの実装形態では、会社116のPIIサーバ118aは、データリンクを介してデータパートナー132のPIIサーバ118bに、たとえば、TCP、SCTP、または任意の他のOSIレイヤ-4トランスポートプロトコルを介してデータを送る。いくつかの実装形態では、データリンクは、たとえば、エンドツーエンド暗号化の追加のレイヤを使用する、セキュアなネットワークリンクである。いくつかの実装形態では、会社116のPIIサーバ118aは、ピアツーピアリンクを介してデータパートナー132のPIIサーバ118bにデータを送る。いくつかの実装形態では、会社116のPIIサーバ118aは、動作720および/または動作735において使用された同じリンクを使用してデータを送る。動作748において、データパートナー132のPIIサーバ118bは、会社116のPIIサーバ118aから暗号化された会社データペアを受信する。
【０１０８】
動作745において会社116のPIIサーバ118aによって送られるデータの一例は、一連のデータペア{E(G,UT1), E(Z, PII1.1)}、{E(G,UT3), E(Z, PII3.1)}、{E(G,UT5), E(Z, PII5.1)}などである。この例では、「UT1」、「UT3」、および「UT5」は、例示的なユーザタグであり、各々は、暗号化されたPIIデータ要素PII1.1、PII3.1、PII5.1などとペアにされる。データパートナー132のPIIサーバ118bは、動作748においてこのデータを受信し、次いで、暗号化されたPIIデータとそれぞれペアにされた暗号化されたユーザタグのセットを保有する。したがって、PIIデータは保護される。個人情報は一切共有されない。
【０１０９】
動作756において、データパートナー132のPIIサーバ118bは、動作745において会社116のPIIサーバ118aによって送られたデータにおける個別に各PIIデータ要素を二重暗号化するために暗号化鍵Xを使用する。たとえば、動作748において、PIIサーバ118bは、会社116のPIIサーバ118aがE(Z, PII1.1)として暗号化したPIIデータ要素「PII1.1」に関連するユーザタグ「UT1」に関するデータペアを受信していることがある。データペアは、{E(G,UT1), E(Z, PII1.1)}として表され得る。動作756において、データパートナー132のPIIサーバ118bは、PII要素を二重暗号化するために暗号化鍵Xを使用し、データペア{E(G,UT1), E(X, E(Z, PII1.1))}が生じる。
【０１１０】
いくつかの実装形態では、動作748において受信されたデータを二重暗号化するのではなく、データパートナー132のPIIサーバ118bは代わりに、動作738において受信された二重暗号化されたデータに復号プロセスを適用する。復号プロセスでは、データパートナー132のPIIサーバ118bは、動作718において適用された元の暗号化を除去するために鍵X(または鍵Xに対応する復号鍵)を使用する。この復号プロセスは、動作733において会社116のPIIサーバ118aによって適用された暗号化を除去せず、鍵Zによって暗号化された単一の暗号化された値をもたらす。すなわち、Decrypt(X', Encrypt(Z, Encrypt(X, message)))=Encrypt(Z, message)となる。その場合、データパートナー132のPIIサーバ118bが動作748において単一の暗号化されたデータを受信するとき、動作760における比較が動作756なしに行われ得る。いくつかの実装形態では、この代替は、動作748において受信されたデータのセットが動作720において送られたデータよりも少なくともしきい値量だけ大きい場合のみ呼び出される。
【０１１１】
動作760において、データパートナー132のPIIサーバ118bは、動作738および756からの二重暗号化されたデータセットを比較する。PIIを暗号化するために使用される暗号化アルゴリズムは可換であるので、E(X, E(Z, PII1.1))はE(Z, E(X, PII1.1))に等しい。結果として、データパートナー132のPIIサーバ118bは、動作756において生成されたE(X, E(Z, PII1.1))値を動作738において受信された値と比較し、E(Z, E(X, PII1.1))などの一致を識別することができる。動作760における比較は暗号化されたデータに対するものであるので、個人識別データは一切明らかにされない。さらに、異なるタイプのPIIデータの間のリンケージは明らかにされない。
【０１１２】
動作766において、データパートナー132のPIIサーバ118bは、ユーザタグとブリッジタグとの間の関連のブリッジリンケージを識別する。暗号化されたユーザタグおよび暗号化されたブリッジタグがいずれも同じ二重暗号化されたPIIデータ要素に関連付けられる場合に、関連が存在する。いくつかの実装形態では、動作766において、データパートナー132のPIIサーバ118bは、一致する二重暗号化されたPII要素に基づいて、暗号化されたブリッジタグにリンクされた暗号化されたユーザタグのマップを生成する。いくつかの実装形態では、暗号化されたユーザタグと暗号化されたブリッジタグとの間の多くの相関が存在することになり、いくつかのそのような実装形態では、データパートナー132のPIIサーバ118bは、冗長な相関をフィルタ除去する。いくつかの実装形態では、複数のタグが同じPIIに対応することになる。たとえば、複数のユーザが、同じアドレス、同じ電話番号、同じ都市、同じ年齢層などを有することがある。いくつかの実装形態では、データパートナー132のPIIサーバ118bは、たとえば、(他のタグと比較して)最大数の一致するPII要素を有することに基づいて、暗号化されたユーザタグと暗号化されたブリッジタグとの間の最強の相関を識別する。いくつかの実装形態では、データパートナー132のPIIサーバ118bは、2つ以上の暗号化されたユーザタグを特定の暗号化されたブリッジタグにマッピングすることにつながる関連をすべてフィルタ除去する。いくつかの実装形態では、データパートナー132のPIIサーバ118bは、追加のフィルタを適用する。いくつかの実装形態では、集合体データを分析のために会社116のPIIサーバ118aに提供し、いくつかのそのような実装形態では、集合体データは、データパートナー132のPIIサーバ118bがフィルタを一切適用することなく提供される。
【０１１３】
動作770において、データパートナー132のPIIサーバ118bは、会社116のPIIサーバ118aにブリッジリンケージデータを送る。いくつかの実装形態では、データパートナー132のPIIサーバ118bは、データリンクを介して会社116のPIIサーバ118aに、たとえば、TCP、SCTP、または任意の他のOSIレイヤ-4トランスポートプロトコルを介してデータを送る。いくつかの実装形態では、データリンクは、たとえば、エンドツーエンド暗号化の追加のレイヤを使用する、セキュアなネットワークリンクである。いくつかの実装形態では、データパートナー132のPIIサーバ118bは、ピアツーピアリンクを介して会社116のPIIサーバ118aにデータを送る。いくつかの実装形態では、会社116のPIIサーバ118aは、動作720において使用された同じリンクを使用してデータを送る。いくつかの実装形態では、データパートナー132のPIIサーバ118bは、動作765において生成されたマップを会社116のPIIサーバ118aに送信する。いくつかの実装形態では、データパートナー132のPIIサーバ118bは、暗号化されたユーザタグおよび暗号化されたブリッジタグのセットとしてリンケージペア、たとえば、{E(G, UT1), E(G, BT1)}を送る。
【０１１４】
動作775において、会社116のPIIサーバ118aは、データパートナー132のPIIサーバ118bからデータペアを受信する。会社116のPIIサーバ118aは次いで、鍵G(または鍵Gに対応する復号鍵)を使用してリンケージを復号することができる。第3の暗号化鍵Gの使用は、データ交換のセキュリティを改善し、さらに、内部リンケージデータが明かされることを防ぐ。
【０１１５】
多くの実装形態では、ユーザについて収集されたデータは、プライバシーを保護するために匿名化されるか、または曖昧性が除去され得る。クライアントデバイスのユーザについての個人情報が測定のために収集されるか、またはサードパーティのコンテンツを選択するために使用され得る多くの実装形態では、ユーザは、個人情報(たとえば、ユーザのソーシャルネットワーク、社会的行為もしくは活動、ユーザの好み、もしくはユーザの現在のロケーションについての情報)を収集し得るプログラムまたは特徴がそうするかどうかを制御する機会、または測定データをPIIサーバ(たとえば、PIIサーバ118a、118b)に送信するかどうか、もしくはどのように送信するかを制御する機会を提供され得る。加えて、あるPIIデータは、パラメータ(たとえば、人口統計パラメータ)を生成するときに個人識別可能情報が除去されるように、PIIサーバまたはリンク付けサーバによって記憶または使用される前に1つまたは複数の方法で処理され得る。ユーザの識別情報が、個人識別可能情報がユーザに関して特定できないように匿名化され得、またはユーザの地理的ロケーションが、ユーザの特定のロケーションが特定できないように、(たとえば、都市、郵便番号、もしくは州のレベルに)ロケーション情報が取得される場合に一般化され得る。したがって、ユーザは、情報が自身について収集され、PIIサーバおよびリンク付けサーバによって使用される方法を制御することができる。
【０１１６】
本明細書で説明する主題および動作の実装形態は、デジタル電子回路において、または本明細書で開示する構造およびそれらの構造の同等物を含む、コンピュータソフトウェア、ファームウェアもしくはハードウェアにおいて、またはそれらのうちの1つもしくは複数の組合せで実装され得る。本明細書で説明する主題の実装形態は、データ処理装置による実行のために、またはデータ処理装置の動作を制御するために、1つまたは複数のコンピュータ記憶媒体上に符号化された、1つまたは複数のコンピュータプログラム、すなわち、コンピュータプログラム命令の1つまたは複数のモジュールとして実装され得る。代替的にまたは追加として、プログラム命令は、データ処理装置による実行のために適切な受信機装置に送信する情報を符号化するために生成される、人工生成の伝搬信号、たとえば、機械生成の電気信号、光信号または電磁信号上に符号化され得る。コンピュータ記憶媒体は、コンピュータ可読記憶デバイス、コンピュータ可読記憶基板、ランダムもしくは順次アクセスメモリアレイもしくはデバイス、またはそれらのうちの1つもしくは複数の組合せであること、あるいはこれらに含まれることがある。さらに、コンピュータ記憶媒体は伝搬信号ではないが、コンピュータ記憶媒体は、人工生成の伝搬信号に符号化されたコンピュータプログラム命令のソースまたは宛先であり得る。コンピュータ記憶媒体はまた、1つもしくは複数の別個の構成要素もしくは媒体(たとえば、複数のCD、ディスク、もしくは他の記憶デバイス)であること、またはこれらに含まれることがある。したがって、コンピュータ記憶媒体は有形であり得る。
【０１１７】
本明細書で説明する動作は、1つもしくは複数のコンピュータ可読記憶デバイスに記憶されているか、または他のソースから受信されたデータに対してデータ処理装置によって実行される動作として実施され得る。
【０１１８】
「クライアント」または「サーバ」という用語は、プログラマブルプロセッサ、コンピュータ、システムオンチップ、または前記の複数もしくは組合せを含む、データを処理するためのあらゆる種類の装置、デバイス、および機械を含む。装置は、専用論理回路、たとえばFPGA(フィールドプログラマブルゲートアレイ)またはASIC(特定用途向け集積回路)を含むことができる。この装置はまた、ハードウェアに加えて、問題のコンピュータプログラムの実行環境を作るコード、たとえば、プロセッサファームウェア、プロトコルスタック、データベース管理システム、オペレーティングシステム、クロスプラットフォーム実行時環境、仮想機械、またはそれらのうちの1つもしくは複数の組合せを構成するコードを含むことができる。装置および実行環境は、ウェブサービス、分散コンピューティング、グリッドコンピューティングインフラストラクチャなど、様々な異なるコンピューティングモデルインフラストラクチャを実現することができる。
【０１１９】
(プログラム、ソフトウェア、ソフトウェアアプリケーション、スクリプトまたはコードとしても知られている)コンピュータプログラムは、コンパイルまたは翻訳された言語、宣言形または手続き形の言語を含む任意の形式のプログラミング言語で書かれてよく、独立プログラムとしての形式、またはモジュール、構成要素、サブルーチン、オブジェクトもしくはコンピューティング環境での使用に適した他のユニットとしての形式など、任意の形式で展開されてよい。コンピュータプログラムは、ファイルシステム内のファイルに対応し得るが、対応する必要はない。プログラムは、他のプログラムもしくはデータ(たとえば、マーク付け言語文書に記憶される1つもしくは複数のスクリプト)を保持するファイルの一部分、問題のプログラム専用の単一のファイル、または複数の調整されたファイル(たとえば、1つもしくは複数のモジュール、サブプログラム、もしくはコードの部分を記憶するファイル)に記憶され得る。コンピュータプログラムは、1つのコンピュータ上、または1つの場所に位置するか、もしくは複数の場所に分散し、通信ネットワークによって相互接続された複数のコンピュータ上で実行されるように展開され得る。
【０１２０】
本明細書で説明するプロセスおよび論理フローは、入力データに対し演算すること、および出力を生成することによってアクションを実行するように1つまたは複数のコンピュータプログラムを実行する1つまたは複数のプログラマブルプロセッサによって実行され得る。プロセスおよび論理フローはまた、専用論理回路、たとえば、システムオンチップ(SOC)、フィールドプログラマブルゲートアレイ(FPGA)、または特定用途向け集積回路(ASIC)によって実行可能であり、装置はまた、そのようなものとして実装可能である。
【０１２１】
コンピュータプログラムの実行に適したプロセッサは、汎用マイクロプロセッサと専用マイクロプロセッサの両方、および任意の種類のデジタルコンピュータの任意の1つまたは複数のプロセッサを含む。一般に、プロセッサは、読取り専用メモリもしくはランダムアクセスメモリまたは両方から命令およびデータを受信する。コンピュータの基本的要素は、命令に従いアクションを実行するためのプロセッサ、ならびに命令およびデータを記憶するための1つまたは複数のメモリデバイスである。一般に、コンピュータはまた、データを記憶するための1つもしくは複数の大容量記憶デバイス、たとえば、磁気ディスク、光磁気ディスクもしくは光ディスクを含み、またはかかる大容量記憶デバイスからデータを受信すること、もしくはかかる大容量記憶デバイスにデータを転送すること、もしくはその両方を行うように動作可能に結合される。ただし、コンピュータがそのようなデバイスを有する必要はない。さらに、コンピュータは、別のデバイス、たとえば、いくつか挙げると、モバイル電話、携帯情報端末(PDA)、モバイルオーディオもしくはビデオプレーヤ、ゲームコンソール、全地球測位システム(GPS)受信機、またはポータブル記憶デバイス(たとえば、ユニバーサルシリアルバス(USB)フラッシュドライブ)などに埋め込まれ得る。コンピュータプログラム命令およびデータを記憶するのに適したデバイスは、半導体メモリデバイス、たとえば、EPROM、EEPROM、およびフラッシュメモリデバイス、磁気ディスク、たとえば、内部ハードディスクまたは取り外し可能ディスク、光磁気ディスク、ならびにCD-ROMおよびDVD-ROMディスクを含む、あらゆる形式の不揮発性メモリ、媒体およびメモリデバイスを含む。プロセッサおよびメモリは専用論理回路によって補完され、または専用論理回路に組み込まれてよい。
【０１２２】
ユーザとの対話を実現するために、本明細書で説明する主題の実装形態は、ユーザに情報を表示するためのディスプレイデバイス、たとえば、陰極線管(CRT)、液晶ディスプレイ(LCD)、有機発光ダイオード(OLED)、薄膜トランジスタ(TFT)、プラズマ、他の柔軟な構成、または任意の他のモニタ、およびユーザがコンピュータに入力を提供することができるキーボード、ポインティングデバイス、たとえば、マウス、トラックボールなど、またはタッチスクリーン、タッチパッドなどを有するコンピュータ上で実装され得る。ユーザとの対話を実現するために他の種類のデバイスが使用されてもよく、ユーザに提供されるフィードバックは、任意の形式の知覚フィードバック、たとえば、視覚フィードバック、聴覚フィードバックまたは触覚フィードバックであってよく、ユーザからの入力は、音響、音声または触覚入力を含む任意の形式で受信され得る。また、コンピュータは、ユーザによって使用されているデバイスに文書を送ること、およびかかるデバイスから文書を受信することによって、たとえば、ユーザのクライアントデバイス上のウェブブラウザに、ウェブブラウザから受信されたリクエストに応答してウェブページを送ることによって、ユーザと対話することができる。
【０１２３】
本明細書で説明する主題の実装形態は、たとえば、データサーバとしての後置構成要素を含む、またはミドルウェア構成要素、たとえば、アプリケーションサーバを含む、または前置構成要素、たとえば、本明細書で説明する主題の実装形態とユーザが対話できるグラフィカルユーザインターフェースもしくはウェブブラウザを有するクライアントコンピュータを含む、または1つもしくは複数のそのような後置、ミドルウェアもしくは前置構成要素の任意の組合せを含むコンピューティングシステムで実装され得る。システムの構成要素は、デジタルデータ通信の任意の形式または媒体、たとえば、通信ネットワークによって相互接続できる。通信ネットワークは、ローカルエリアネットワーク(「LAN」)、ワイドエリアネットワーク(「WAN」)、インターネットワーク(たとえば、インターネット)、およびピアツーピアネットワーク(たとえば、アドホックピアツーピアネットワーク)の様々な組合せを含むことができる。
【０１２４】
本明細書は多くの特定の実装詳細を含んでいるが、これらは、いずれかの発明または特許請求され得る内容の範囲の限定と解釈されるべきではなく、特定の発明の特定の実装形態に固有の特徴の説明と解釈されるべきである。個別の実装形態の文脈で本明細書において説明するいくつかの特徴は、単一の実装形態において組合せで実装されてもよい。反対に、単一の実装形態の文脈で説明する様々な特徴は、複数の実装形態で個別に、または任意の適切な副組合せで実装されてもよい。さらに、特徴はいくつかの組合せで機能するものとして上述され、当初はそういうものとして特許請求されることもあるが、特許請求される組合せによる1つまたは複数の特徴は、場合によっては、当該組合せにより実施可能であり、特許請求される組合せは副組合せまたは副組合せの変形を対象にし得る。
【０１２５】
同様に、動作は特定の順序で図面に示されているが、これは、所望の結果を達成するために、そのような動作が示された特定の順序でもしくは順次に実行されること、またはすべての示された動作が実行されることを要求するものとして理解されるべきではない。状況によっては、マルチタスク処理および並列処理が有利なことがある。また、上述の実装形態における様々なシステム構成要素の分離は、すべての実装形態でそのような分離を要求するものとして理解されるべきではなく、説明するプログラム構成要素およびシステムは一般に単一のソフトウェア製品への統合、または複数のソフトウェア製品へのパッケージ化が可能であると理解されるべきである。
【０１２６】
以上、主題の特定の実装形態について説明してきた。他の実装形態も、以下の特許請求の範囲内に入る。1つの態様または実装形態を参照しながら説明する特徴は、任意の他の態様または実装形態において提供され得る。場合によっては、特許請求の範囲で列挙されるアクションは、異なる順序で実行可能であり、その場合でも所望の結果を達成できる。また、添付の図に記載のプロセスは、所望の結果を達成するために、必ずしも示された特定の順序または順次であることを要求しているわけではない。いくつかの実装形態では、マルチタスク処理または並列処理が利用され得る。
【符号の説明】
【０１２７】
100  環境
102  クリーンルーム
104  リンク付けサーバ
106  PIIマッピングストレージ
108  リンケージストレージ
110  データ構造
111  エントリ
112  エントリ
113  エントリ
114  エントリ
115  エントリ
116  会社
118  PIIサーバ
118a  PIIサーバ
118b  PIIサーバ
120  ユーザタグ(UT)PIIマッピングストレージ
122  ユーザタグ(UT)PIIマッピング
124  リンケージ
126  データ構造
127  エントリ
128  エントリ
129  エントリ
130  エントリ
131  エントリ
132  データパートナー
134  ブリッジタグ(BT)PIIマッピングストレージ
136  データ構造
138  エントリ
139  エントリ
140  エントリ
141  エントリ
142  エントリ
144  ブリッジタグ(BT)PIIマッピング
200  環境
202  ネットワーク
204  クライアントデバイス
302  メモリ
304  ユーザインターフェース
306  プロセッサ
308  ネットワークインターフェース
310  アプリケーション
312  収集エージェント
314  デバイス識別子、デバイスID
316  セッション識別子、セッションID
320  クライアントPIIデータストレージ
324  PII収集エンジン
326  PIIデータストレージ
350  リンク付けエンジン
352  PIIマッピングデータストレージ
400  プロセス
500  プロセス
600  プロセス
700  プロセス
【図１】
2020507826.tif 000003
【図２】
2020507826.tif 000004
【図３Ａ】
2020507826.tif 000005
【図３Ｂ】
2020507826.tif 000006
【図３Ｃ】
2020507826.tif 000007
【図４】
2020507826.tif 000008
【図５】
2020507826.tif 000009
【図６】
2020507826.tif 000010
【図７】
2020507826.tif 000011
【国際調査報告】
2020507826.tif 000012
2020507826.tif 000013