(57)【要約】  クライアントは、情報項目とのユーザ相互作用の通知を受信し、この相互作用を記述するレコードを生成する。クライアントは、サーバに関連する暗号鍵を使用してレコードを暗号化する。暗号化されたレコードは、少なくとも１つのプロキシに通信される。次に、少なくとも１つのプロキシは、暗号化されたレコードをサーバに転送する。プロキシから暗号化されたレコードを受信すると、サーバは、解読鍵を使用してレコードを解読し、解読されたレコードを分析し、ユーザ相互作用の種類及び情報項目を識別する。この情報は、ユーザの関心をトラッキングするため、広告主若しくは情報項目提供者に課金するため、及び／又はユーザから匿名の情報を収集するために個々に又は合わせて使用されてもよい。【特許請求の範囲】
【請求項１】
情報項目とのユーザの相互作用をサーバコンピュータに示す方法であって、
情報項目及び関連する識別子をクライアントコンピュータのメモリに格納するステップと、
前記情報項目のうち第１の情報項目とのユーザ相互作用に応じて、前記相互作用のレコードを生成するステップであり、前記レコードは、前記第１の情報項目に関連する発行元識別子を有するステップと、
前記サーバコンピュータの暗号鍵を使用して前記レコードを暗号化するステップと、
前記クライアントコンピュータのネットワークアドレスを隠すように適合されたプロキシコンピュータを介して、前記暗号化されたレコードを前記サーバコンピュータに送信するステップと
を有する方法。
【請求項２】
前記プロキシコンピュータは、前記クライアントコンピュータ及び前記サーバコンピュータと異なる、請求項１に記載の方法。
【請求項３】
前記レコードは、広告イベント種別を含む、請求項１に記載の方法。
【請求項４】
前記レコードは、前記相互作用の広告空間提供者識別子を含む、請求項１に記載の方法。
【請求項５】
前記レコードは、前記相互作用の情報項目識別子を含む、請求項１に記載の方法。
【請求項６】
前記レコードは、疑似乱数的に生成されたナンスを有する、請求項１に記載の方法。
【請求項７】
前記レコードの内容と前記暗号鍵とナンスのシードとを前記ユーザに提供するステップを有する、請求項４に記載の方法。
【請求項８】
前記メモリに格納された前記情報項目の少なくとも一部は、ユーザプロファイルに基づく、請求項１に記載の方法。
【請求項９】
前記ユーザプロファイルは、前記クライアントコンピュータの前記メモリに格納される、請求項８に記載の方法。
【請求項１０】
前記情報項目は、広告を含む、請求項１に記載の方法。
【請求項１１】
前記情報項目の少なくとも一部は、クライアントアプリケーション内で提示されるように適合される、請求項１に記載の方法。
【請求項１２】
前記クライアントアプリケーションは、ウェブブラウザを含む、請求項１１に記載の方法。
【請求項１３】
前記クライアントアプリケーションは、ビデオゲームを含む、請求項１１に記載の方法。
【請求項１４】
情報項目及び関連する識別子を前記クライアントコンピュータの前記メモリに格納するステップは、
少なくとも１つの情報項目カテゴリを選択するステップと、
前記サーバコンピュータの前記暗号鍵でクライアント暗号鍵及び情報項目カテゴリを暗号化し、暗号化された要求を生成するステップと、
前記プロキシコンピュータを介して前記暗号化された要求を前記サーバコンピュータに送信するステップと、
前記プロキシコンピュータを介して前記サーバコンピュータから暗号化された応答を受信するステップであり、前記暗号化された応答は、前記情報項目を有するステップと、
クライアント解読鍵で前記暗号化された応答を解読し、前記情報項目へのアクセスを許可するステップと、
前記解読された応答に含まれる前記情報項目を前記メモリに格納するステップと
を有する、請求項１に記載の方法。
【請求項１５】
前記クライアントは、第２のプロキシの公開鍵を使用して前記レコードを更に２回暗号化し、第１のプロキシに続いて前記第２のプロキシを介して前記レコードを前記サーバに送信する、請求項１に記載の方法。
【請求項１６】
請求項１に記載の方法をコンピュータに実行させるように適合された命令を有するコンピュータ可読媒体。
【請求項１７】
クライアントコンピュータでの情報項目とのユーザの相互作用をトラッキングする方法であって、
情報項目及び関連する識別子をクライアントに配信するステップと、
プロキシコンピュータを介してクライアントコンピュータから暗号化されたレコードを受信するステップであり、前記暗号化されたレコードは、前記情報項目のうち第１の情報項目に関連する前記識別子のうち第１の識別子を有するステップと、
サーバコンピュータの解読鍵で前記レコードを解読するステップと、
前記レコードをサーバコンピュータのメモリに格納するステップと
を有する方法。
【請求項１８】
前記プロキシコンピュータは、前記クライアントコンピュータ及び前記サーバコンピュータと異なる、請求項１７に記載の方法。
【請求項１９】
前記情報項目のうち第１の部分は、第１のクライアントコンピュータに配信され、前記情報項目のうち第２の部分は、第２のクライアントコンピュータに配信され、それぞれが第３の同一の部分を含む、請求項１７に記載の方法。
【請求項２０】
前記第３の部分は、前記情報項目のうち前記第１の情報項目に関連する前記識別子のうち前記第１の識別子を前提として前記第１のクライアントコンピュータを識別する確率を無視できるほどにするように選択される、請求項１９に記載の方法。
【請求項２１】
前記情報項目に関連する少なくとも１つのカテゴリに基づいて前記情報項目を配信するステップを有する、請求項１７に記載の方法。
【請求項２２】
情報項目識別子を発行元に提供するステップを更に有する、請求項１７に記載の方法。
【請求項２３】
広告空間提供者について受信した情報項目識別子のカウントを維持管理するステップと、
前記カウントを前記広告空間提供者に伝達するステップと
を更に有する、請求項１７に記載の方法。
【請求項２４】
情報項目を匿名クライアントに配信する方法であって、
プロキシコンピュータを介してクライアントコンピュータから暗号化された要求を受信するステップと、
解読鍵を使用して前記暗号化された要求を解読するステップと、
前記解読された要求からクライアント暗号鍵及びカテゴリを読み取るステップと、
前記カテゴリに関連する少なくとも１つの情報項目を選択するステップと、
前記クライアント暗号鍵で前記情報項目を暗号化し、暗号化された応答を形成するステップと、
前記プロキシコンピュータを介して前記暗号化された応答を前記クライアントコンピュータに送信するステップと
を有する方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、概してコンピュータネットワークでの情報配信の分野に関し、特に、ユーザのプライバシーを保護しつつ、個々にターゲティングされた広告をユーザに効率的に提供するシステム及び方法に関する。
【背景技術】
【０００２】
広告システム（インターネット広告が含まれる）の主な目的は、広告をユーザに正確にターゲティングすることである。広告をユーザのグループにターゲティングするテレビ及びラジオのような放送媒体とは異なり、インターネット広告は、個々のユーザにターゲティング可能である。これは、広告に関心のないユーザに広告を提示する際にあまり金銭を浪費しないため、広告主にとって好適であり、ユーザが関心のない広告で煩わされないため、ユーザにとって好適である。
【発明の概要】
【発明が解決しようとする課題】
【０００３】
しかし、個々に区別されたユーザのターゲティングはまた、プライバシーを失うことをもたらし得る。まず、広告のようなパーソナライズ化された情報を配信可能にするために、ユーザについての情報が収集されて格納されなければならない。第２に、どの広告をユーザが見て相互作用（インタラクション）したか（例えば、クリックしたか）についての情報と、どのウェブサイトに広告が埋め込まれていたかについての情報とが収集されなければならない。これは、広告が配信されたことについて広告主が支払うことができるようにするため、また、ウェブサイトが広告を示す機会を提供することについて支払われ得るようにするため、必要である。これはまた、広告主が広告の有効性（例えば、クリックされたか無視されたか）を測定することができるようにするためにも必要である。どのウェブサイトをユーザが訪問したかを明らかにすることは、プライバシーを失うことになる。どの広告をユーザが示されたかを明らかにすることはまた、プライバシーを失うことになる。この理由は、ユーザの人口統計及び関心が、ユーザにターゲティングされた広告から推論可能であるからである。
【０００４】
従来のシステムは、広告主がネットワークのどこかからの特定のユーザのインターネット活動を監視することを可能にする。例えば、従来の広告配信システムは、識別されたユーザがシステムにより所有されているウェブサイト又はシステムにより提供された広告を含むウェブサイトを訪問した場合に通知され、これにより、このユーザの特有のプロファイルを生成することを可能にし得る。他の例では、ソーシャルネットワーキングのウェブサイトは、ユーザにより明示的に提供された情報を収集する。
【０００５】
他の従来のシステムは、ユーザのブラウザ活動を監視し、この情報を広告配信システムに送信することを可能にするソフトウェアをインターネットサービスプロバイダ（ISP：Internet  Service  Provider）に提供する。広告配信システムは、ユーザプロファイルを生成し、ユーザプロファイルは、広告をユーザにターゲティングするために使用される。
【０００６】
全てのこれらの従来のシステムは、ユーザのプライバシーを侵害することについて批判されている。更に、これらの従来のシステムは、実質的な処理及び記憶リソースを必要とするため、運用するのが高価になる。
【０００７】
他の従来のシステムは、クライアントコンピュータに格納されたデータ及び／又はユーザの活動をローカルに監視してユーザに表示される広告を選択するためにユーザのコンピュータで実行されるソフトウェアエージェントを使用して、ユーザ情報を収集する。或る従来のシステムでは、ユーザプロファイルは、広告配信システムに送信されるため、プライバシーを侵害する。他の従来のシステムでは、エージェントは、プロファイルをローカルにプライベートに保持するが、広告配信システムから広告を要求する。この場合であっても、ユーザのプライバシーは弱められる。この理由は、広告配信システムは、どの広告をユーザエージェントが要求しているかを見ることができ、従って、ユーザについての特定の個人情報を推論することができるからである。更に他の従来のシステムでは、複数の広告が事前にエージェントに送信される。エージェントは、どれを示すかをプライベートに選択する。しかし、これらの従来のシステムでは、エージェントは、どの広告が示されたか及びどのウェブサイトで現れたかを広告配信システムに報告を返信する。これにより、システムは、広告主に請求を行い、これに従ってウェブサイトのオペレータに支払う。従って、ユーザのプライバシーはまた、同様の理由で弱められる。他の従来のシステムでは、エージェントは広告配信システムに報告を返信しない。これらのシステムはプライベートであるが、実際には広告ビジネスでは使用できない。この理由は、これらは、広告ビジネスを運営するため（広告主に請求を行い、ウェブサイトのオペレータに支払うため又は広告主が広告キャンペーンを管理することを可能にするため）に必要な情報を提供しないからである。
【０００８】
真にプライベートであり、ユーザに十分にターゲティングし、広告ビジネスを運営するために必要な情報を提供し、運用するのに高価でない個々にターゲティングされた情報を配信する方法及びシステムを提供するための対処されていないニーズが存在する。
【課題を解決するための手段】
【０００９】
本発明の実施例によれば、クライアントは、情報項目とのユーザ相互作用（ユーザインタラクション）の通知を受信し、この相互作用を記述するレコードを生成する。クライアントは、サーバに関連する暗号鍵を使用してレコードを暗号化する。暗号化されたレコードは、少なくとも１つのプロキシに通信される。次に、少なくとも１つのプロキシは、暗号化されたレコードをサーバに転送する。プロキシから暗号化されたレコードを受信すると、サーバの実施例は、解読鍵を使用してレコードを解読する。サーバは、解読されたレコードを分析し、ユーザ相互作用の種類及び情報項目を識別する。この情報は、ユーザの関心をトラッキングするため、広告主若しくは情報項目提供者に課金するため、及び／又はユーザから匿名の情報を収集するために個々に又は合わせて使用されてもよい。
【００１０】
本発明のこの実施例では、プロキシもサーバも、ユーザのプライバシーを侵害するのに十分な情報を取得しなくてもよい。暗号化されたレコードは、特定のユーザを識別する情報を含まないため、サーバは、クライアントを識別できる情報を受信しない。プロキシは、クライアントのネットワークアドレスを認識するが、レコードを解読できないため、プロキシは、何らかの相互作用が行われたという事実以外にクライアントについて何も習得しない。サーバ及びプロキシのオペレータが共謀しない限り、どちらもどの相互作用が行われたかを習得できない。
【００１１】
本発明の実施例によれば、相互作用は、異なる種類（例えば、情報項目の表示、情報項目でのクリック、マウスオーバーイベント、アンケートの記入等）でもよい。相互作用は、当業者に既知の手段（例えば、マウスイベントの受領（listener）、Javascriptモジュール等）により検出されて記録されてもよい。情報項目は、画像、ビデオ、テキスト、オーディオ又は何らかの組み合わせでもよい。情報項目は、ドキュメント又は広告でもよい。情報項目は、例えばローカルに格納されたユーザプロファイルにより判定された通りにユーザの関心に対して調整されているという意味でユーザ特有である。従って、どの情報項目とユーザが相互作用したかを認識するいずれかのエンティティに、ユーザのプライベートの性質を明らかにする。情報項目は、ユーザプロファイルに格納されたユーザの好みのカテゴリに一致し得るカテゴリに関連付けられてもよい。情報項目に関連する識別子は、文字列又は数字でもよい。これは情報項目、情報項目の発行元（publisher）又は双方を一意に識別してもよい。発行元は、広告主（advertiser）（例えば、その製品又はサービスを広告する会社）でもよい。レコードは、ネットワークで送信されて他のコンピュータにより解釈され得るデータ構造でもよい。クライアントは、サーバに知られず、プロキシのみに知られることが必要である。識別情報を隠すことは、クライアントコンピュータから受信したレコードからネットワークアドレスを削除することを有してもよい。
【図面の簡単な説明】
【００１２】
【図１】本発明の第１の実施例によるシステムの図
【図２】本発明の実施例に従って情報項目とのユーザ相互作用の匿名の指示を提供する方法
【図３】本発明の実施例による匿名クライアントからのイベントレコードの例示的な内容
【図４】本発明の実施例に従って情報項目をクライアントに配信し、これらの情報項目とのユーザ相互作用をトラッキングする方法
【図５】本発明の実施例に従って情報項目を匿名で取得する方法
【図６】本発明の実施例に従って情報項目を複数のクライアントに配信する方法
【図７Ａ】本発明の実施例による情報項目の要求の例示的な内容
【図７Ｂ】本発明の実施例による情報項目の応答の例示的な内容
【図８】本発明の実施例を実装するのに適した例示的なコンピュータシステム
【発明を実施するための形態】
【００１３】
本発明の前述の態様及び利点並びに更なる態様及び利点は、添付図面と共に以下の説明を参照することにより、より理解できる。
【００１４】
情報項目とのユーザ相互作用をトラッキングする方法及びシステムは、１つ以上のローカルエリアネットワーク又は広域ネットワーク（インターネット等）に接続された汎用コンピュータに実装されてもよい。より具体的には、汎用コンピュータは、複数のクライアントコンピュータを有してもよく、各クライアントコンピュータは、１人以上のユーザと、１つ以上のプロキシコンピュータと、１つ以上のサーバコンピュータとを有してもよい。各クライアントコンピュータは、ネットワークを介して少なくとも１つのプロキシコンピュータにアクセス又はアドレス指定してもよい。各サーバコンピュータは、少なくとも１つのプロキシコンピュータによりアクセス可能又はアドレス指定可能でもよい。更に、汎用コンピュータは、情報項目提供者のコンピュータを更に有してもよい。
【００１５】
本発明の実施例は、デスクトップ又はポータブルパーソナルコンピュータ、モバイル通信デバイス（移動電話を含む）、テレビに接続するように適合されたネットワーク接続デバイス（セットトップボックス及びゲームコンソールを含む）、及び有線及び／又は無線ネットワークインタフェースを介して電子通信ネットワーク（ローカルエリアネットワーク及び広域ネットワーク（インターネット、セルラデータネットワーク、ケーブルテレビデータネットワーク、一方向又は双方向衛星データネットワーク等）を含む）と通信可能な他の電子デバイスの形式のクライアントコンピュータを含んでもよい。
【００１６】
本発明の実施例は、情報項目とのユーザ相互作用をトラッキングするために使用されてもよい。情報項目は、テキスト、画像、ビデオ、アニメーション、音声、オーディオ、３次元コンピュータグラフィックデータ及びハイパーテキストのグラフィカルユーザインタフェースウィジェット又はコントロールから処理された画像又はアニメーション、ゲームのようなインタラクティブコンテンツ、並びにプログラム又はスクリプトの形式のコンピュータ実行ロジックを含む。情報項目は、広告又は他の目的（ユーザへの情報の提供又はユーザフィードバックの要求等）に使用されてもよい。情報項目の例は、ポップアップ及びバナー広告と、アプリケーションのユーザインタフェース又はディスプレイ内に現れる広告とを含んでもよい。
【００１７】
ユーザ相互作用は、情報項目がユーザに見えるように、聞こえるように又は認識できるように情報項目をユーザに提示し、情報項目に応じてユーザから入力（マウス相互作用、キーボード入力、タッチパッド又はタッチスクリーン入力、ジョイスティック又はゲームコントローラ入力、及び音声コマンド等）を受信し、情報項目を介して電子的に商品又はサービスを購入することを含んでもよい。ユーザ相互作用は、ユーザが情報項目内のグラフィカルユーザインタフェースボタンを選択することのように、情報項目の特定の部分に関してユーザ入力を受信することを含んでもよい。
【００１８】
図１は、本発明の第１の実施例によるシステム100の図である。システム100の実施例は、クライアント103（クライアント103a、103b及び103cを含む）を有する。クライアント103は、情報項目記憶装置105（情報項目記憶装置105a、105b及び105cを含む）をそれぞれ含む。各情報項目記憶装置105は、情報項目と、関連する情報項目識別子と、１つ又は複数のサーバ120の公開秘密サーバ鍵の対からの１つ以上の公開鍵とを格納するように適合される。実施例では、情報項目記憶装置105は、データベース又は他のデータ構造（配列等）として実装される。
【００１９】
システム100の実施例は、１つ以上のプロキシ110を含む。実施例では、プロキシ110は、クライアント103及びサーバ120とは異なる。クライアント103及びサーバ120は、１つ以上のネットワークを介してプロキシと通信するように適合される。各プロキシ110は、１つ以上のクライアント103から１つ以上のサーバ120にネットワークトラヒックを転送するように適合される。更に、各プロキシ110は、１つ以上のサーバ120から１つ以上のクライアント103にネットワークトラヒックを転送するように適合される。実施例では、各プロキシ110は、クライアント103及びサーバ120を照合するためのデータベース又は他のデータ構造115（配列等）を含み、少なくとも１つのサーバ120に関連付けられる。プロキシを介してクライアントとサーバとの間で送信されるメッセージを伝達するために使用されるトランスポートプロトコルがHTTPである場合、プロキシは、標準的なHTTPプロキシでもよい。クライアントは、様々な一般的に知られた手段を通じてプロキシを発見してもよい。例えば、クライアントは、複数のプロキシのIPアドレスを用いて予め設定されてもよい。或いは、クライアントは、プロキシのDNS（Domain  Name  System）名を用いて予め設定されており、プロキシのIPアドレスを発見するためにDNSを使用してもよい。或いは、クライアントは、サーバを発見し、サーバからプロキシのIPアドレスを習得してもよい。
【００２０】
システム100の実施例は、クライアント103とプロキシ110とサーバ120とを接続するために様々なネットワークトポロジを使用してもよい。例えば、クライアント103aはプロキシ110aに関連付けられてもよく、次に、プロキシ110aは単一のサーバ120aに関連付けられる。他の例では、複数のクライアント103（クライアント103b及び103c）は単一のプロキシ110bに関連付けられてもよく、次に、単一のプロキシ110bは複数のサーバ120a及び120bに関連付けられてもよい。他の実施例では、クライアントは、複数のプロキシに関連付けられてもよい。
【００２１】
前述のように、システム100の実施例は、１つ以上のサーバ120を含む。システム100では、各サーバ120は、情報項目とのクライアント相互作用をトラッキングするように適合される。更なる実施例では、サーバ120はまた、情報項目をクライアント103に配信するように適合される。更なる実施例では、サーバ120は、広告主システムと通信し、個々の及び集計のクライアント相互作用データを提供し、広告主に課金するように適合される。サーバ120の実施例は、情報項目とのユーザ相互作用をトラッキングし、少なくとも１つの公開秘密サーバ鍵の対から少なくとも秘密鍵を格納するデータベース又は他のデータ構造125をそれぞれ含む。これらの秘密鍵は、クライアント103に知られている公開鍵に対応する。
【００２２】
図２は、本発明の実施例に従って情報項目とのユーザ相互作用の匿名の指示を提供する方法200を示している。ステップ205は、項目の相互作用の通知を受信する。項目の相互作用の通知は、１つ以上の情報項目とのユーザ相互作用に応じて、クライアントアプリケーション（ウェブブラウザ又はゲームアプリケーション等）により生成されてもよい。ステップ205の実施例は、アプリケーションプログラミングインタフェース、イベント通知システム又は他の種類のアプリケーション間若しくはアプリケーション内通信技術を介してこの通知を受信してもよい。
【００２３】
ステップ210は、情報項目に関連する識別子を取得する。実施例では、各情報項目は、固有の識別子に関連付けられる。実施例では、ステップ210は、クライアントにアクセス可能なデータベース又は他のデータ構造（図１に示す情報項目記憶装置105のうち１つ等）から、情報項目に関連する識別子を取得する。
【００２４】
ステップ230は、サーバとの通信についての情報項目の相互作用のレコードを生成する。
【００２５】
ステップ240は、サーバコンピュータの公開暗号鍵を使用してレコードを暗号化する。本発明の実施例は、Diffie-Hellman、DSS及び楕円曲線非対称鍵技術を含み、当該技術において知られている如何なる種類の公開鍵暗号化技術を使用してもよい。クライアントは、如何なる数の周知の手段を通じて公開鍵又は鍵を習得してもよい。例えば、クライアントソフトウェアに予め設定されてもよい。或いは、公開鍵インフラストラクチャ（PKI：Public  Key  Infrastructure）を通じて取得されてもよい。
【００２６】
ステップ250は、１つ以上のネットワークを介して暗号化されたレコードをプロキシに送信する。プロキシは、暗号化されたレコードを受信し、これを適切なサーバに転送するように適合される。サーバはクライアントから直接ではなく、プロキシから暗号化されたレコードを受信するため、クライアントの識別情報はサーバには知られない。更に、レコードはサーバに関連する公開鍵を使用して暗号化されるため、プロキシは、暗号化されたレコードの内容を読み取ることはできない。従って、プロキシはクライアントの識別情報を知っているが、クライアントのユーザ相互作用について何も知らない。プロキシは、如何なる数の一般的に知られた手段を使用して適切なサーバを選択してもよい。例えば、プロキシは、複数のサーバのIPアドレスを用いて予め設定されてもよい。或いは、プロキシは、サーバのDNS（Domain  Name  System）名を用いて予め設定され、プロキシのIPアドレスを発見するためにDNSを使用してもよい。
【００２７】
図３は、本発明の実施例による匿名クライアントからのイベントレコードの例示的な内容を示している。メッセージ330は、メッセージをプロキシに向けて送り、最終的にサーバに向けて送るように適合された暗号化されていない部分を含む。実施例では、メッセージ300のこの暗号化されていない部分はまた、メッセージを送信するクライアントのネットワークアドレスに対応する送信元ネットワークアドレス305を含む。メッセージは、インターネットでメッセージを送信するために一般的に必要な他の暗号化されていないフィールド（IP、TCP、UDP、HTTP、XML又は他の種類のヘッダ）を含んでもよい。
【００２８】
メッセージ300はまた、暗号化されたレコード310を含む。暗号化されたレコードは、情報項目とのユーザ相互作用に関連する１つ以上のデータフィールドを含む。これらのデータフィールドは、情報項目の種類、相互作用の種類、情報の提示の位置又は種類及び他の要因に基づいて、広告主又は他の情報項目提供者に課金することを可能にする。これらのデータフィールドはまた、発行元又は他の情報項目提供者が情報項目の使用をトラッキングすることを可能にする。
【００２９】
暗号化されたレコード310の例は、情報項目に関連する発行元識別子315を含んでもよい。発行元識別子315は、発行元又は情報項目提供者を識別する。
【００３０】
発行元は、同時に複数の異なる情報項目を提供しており、異なる情報項目に対して異なる金額を支払ってもよい。従って、暗号化されたレコード310はまた、全ての情報項目の中からではなくても、少なくとも発行元の情報項目の全ての中から情報項目を一意に識別する情報項目識別子320を含んでもよい。代替実施例では、発行元識別子315及び情報項目識別子320は、単一の組み合わせられた識別子を使用して識別されてもよい。
【００３１】
発行元は、異なる種類の広告イベント（閲覧、クリック、購入等）に対して異なる金額を支払ってもよい。発行元はまた、広告キャンペーンの管理を支援するために、広告イベントの種類を知りたいと思うことがある。例えば、広告主は、閲覧当たりのクリック数に基づいて広告がどのくらいうまく機能しているかを知りたいことがある。これを支援するために、暗号化されたレコード310は、広告イベント種別330を含んでもよい。広告イベント種別330は、情報項目とのユーザ相互作用の種類（マウスクリック、キーボード入力、ユーザへの閲覧若しくは提示、又は情報項目との相互作用を介したユーザの購入等）を指定する。
【００３２】
ユーザが情報項目と相互作用するために、その情報項目はユーザに提示されなければならない。これを行う１つの方法は、ウェブページ内にあり、広告空間は、広告を配置するためにウェブページ内で利用可能にされている。他の方法は、アプリケーションのグラフィカルユーザインタフェース（GUI：Graphical  User  Interface）に空間を提供することである。更に他の方法は、例えばプロダクトプレイスメント（product  placement）又は掲示板を通じて、ゲーム内に広告を配置することである。これらの場合の全てにおいて、広告空間提供者（ユーザが情報項目と相互作用する機会を提供するウェブサイト、アプリケーション開発者又はゲーム開発者）が存在する。広告空間提供者は、機会を提供することに対して支払われてもよい。これを支援するために、暗号化されたレコードの実施例は、広告空間提供者識別子325を含む。広告空間提供者識別子325は、情報項目をユーザに提示する提供者を識別し、サーバが広告空間提供者に支払う必要のある情報を格納して表にすることを可能にする。レコードは、情報項目に関連する入札金額についての情報のような他の情報を更に含んでもよい。
【００３３】
更なる実施例では、暗号化されたレコード310のセキュリティは、ナンス（nonce）335又は１回使用される数を含めることにより拡張される。ナンスは、暗号化されたレコード310への辞書攻撃を実行不可能にするために、暗号化の前にレコードに追加される大きい乱数又は疑似乱数である。
【００３４】
図４は、本発明の実施例に従って情報項目とのユーザ相互作用をトラッキングする方法400を示している。方法400のステップ420は、プロキシからメッセージを受信する。プロキシからのメッセージは、クライアントからの暗号化されたレコードを含む。メッセージはプロキシを介して通信されるため、受信したメッセージの送信元ネットワークアドレスは、暗号化されたレコードを生成したクライアントのものではなく、プロキシのものになる。このため、サーバは、暗号化されたレコードを生成したクライアントの識別情報を知らない。
【００３５】
ステップ430は、暗号化されたレコードを解読する。実施例では、暗号化されたレコードは、公開秘密サーバ鍵の対の公開鍵を使用して暗号化される。ステップ430は、公開秘密サーバ鍵の対の秘密鍵を使用し、暗号化されたレコードを解読する。解読ステップ430は、サーバ自体で行われてもよく、他のシステムに負荷分散されてもよい。例えば、解読は、専門の解読ハードウェアを使用した専用システムにより行われてもよい。或いは、解読は、他のクライアントにより行われてもよい。この場合、クライアントは、公開秘密鍵の対を生成し、公開鍵を他のクライアントに伝達してもよい。他のクライアントは、公開鍵を使用し、メッセージを暗号化し、プロキシを介して暗号化されたメッセージをサーバに送信する。プロキシは、暗号化されたメッセージを鍵の対を生成したクライアントに転送する。このクライアントは、メッセージを解読し、解読されたメッセージをサーバに返信する。
【００３６】
ステップ440は、受信したメッセージと暗号化されたレコードの解読された内容とに基づいて、１つ以上のレコードを出力又は格納する。実施例では、ステップ440は、暗号化されたレコードに含まれる識別子（発行元識別子、情報項目識別子、広告空間提供者識別子、及び／又はイベント種別識別子等）のうち１つ以上を含むレコードを格納する。任意選択で、ステップ440の実施例は、課金、ユーザ活動の監視又は情報項目若しくは広告空間の有効性のトラッキングの目的で、識別子のうち１つ以上に基づいてレコードを発行元、広告空間提供者又は他の第三者に出力してもよい。レコードは、広告イベント又は受信したメッセージ毎に出力されてもよく、広告イベントのグループについて集計のレコードが出力されてもよい。
【００３７】
実施例では、複数の情報項目は、ユーザへの提示の前にクライアントに配信される。クライアントは、これらの情報項目のうちどれが所与の時間にユーザに提示されるべきかを判定する。実際に、全ての情報項目を全てのクライアントに配信することは高価になりすぎる可能性がある。これは、クライアントにおいて多すぎる帯域幅及び記憶容量を占めるからである。従って、本発明の実施例は、クライアントの識別情報を明らかにすることなく、ユーザに関心のある可能性のある情報項目のみをクライアントに配信する。
【００３８】
実施例では、サーバは、情報項目をクライアントに配信する。これらの情報項目は、如何なる数の周知の機構を通じてクライアントに配信されてもよい。例えば、プロキシを経由することなく、サーバから直接クライアントに送信されてもよい。或いは、Akamaiのようなコンテンツ配信ネットワークを通じて配信されてもよい。また、BitTorrent等のようなピア・ツー・ピア技術又は前述の機構のいずれかの組み合わせを介して配信されてもよい。これらの場合の全てにおいて、どのクライアントがどの情報項目を受信したかを知ることが一般的に可能である。従って、これらの場合に、クライアントが後に情報項目との相互作用を報告したときにクライアントの識別情報が推論できないほど十分なクライアントに同じ情報項目を与えることが重要である。
【００３９】
図５は、本発明の実施例に従って情報項目を匿名で取得する方法500を示している。ステップ510は、１つ以上の情報項目カテゴリを選択する。情報項目カテゴリは、ユーザの関心、ユーザの人口統計又はユーザの関心と人口統計との組み合わせに関連付けられてもよい。クライアントは、クライアントにより生成されたユーザプロファイルを通じてユーザを特定のカテゴリに関連付けてもよい。ユーザプロファイルは、複数の一般的に知られた手段により生成されてもよい。ユーザのオンライン活動（例えば、ユーザが訪問したウェブサイト、ユーザがショッピングした製品、ユーザが送受信した電子メール、ユーザが訪問したチャットルーム等）を監視してもよい。更に、ユーザデータ（例えば、ユーザのコンピュータに格納された電子メール、ユーザのコンピュータに格納されたドキュメント及び記事、コンピュータに格納された曲及び映画、ユーザがソーシャルネットワーキングサイトに入力したプロファイル等）をスキャンしてもよい。また、ユーザが使用する機器の種類（ゲーム、金融ソフトウェア等）を監視してもよい。ユーザの気分を推測するために、ユーザ活動（例えば、ユーザがタイピングする速度、ユーザの入力の内容、又はユーザが見たり聞いたりしている音楽若しくは映画）を使用してもよい。
【００４０】
ステップ520は、カテゴリとクライアント暗号鍵とを含む要求メッセージを生成する。実施例では、クライアント暗号鍵は、データを暗号化及び解読することができる対称鍵である。代替実施例では、クライアント暗号鍵は、公開秘密クライアント鍵の対の公開鍵である。更なる実施例では、ステップ520は、複数のカテゴリへのユーザの関心を示すために複数の要求メッセージを生成する。各カテゴリは、別々の要求メッセージに含まれる。更に別の実施例では、複数の要求メッセージのそれぞれは、異なるクライアント暗号鍵を含む。
【００４１】
要求メッセージの生成に続いて、ステップ520は、サーバ公開鍵を使用して少なくともカテゴリ及びクライアント暗号鍵を暗号化する。
【００４２】
ステップ530は、少なくとも１つのプロキシを介して暗号化された要求をサーバに通信する。暗号化された要求メッセージは、送信元ネットワークアドレスとしてクライアントのネットワークアドレスを含む。この送信元ネットワークアドレスは、暗号化された要求がプロキシからサーバに転送されるときに省略される。これにより、クライアントをサーバにとって匿名にする。
【００４３】
実施例では、サーバは、クライアントから暗号化された要求メッセージを受信して処理し、少なくとも１つのプロキシを介して１つ以上の暗号化された応答メッセージをクライアントに送信する。これは、図６を参照して以下に詳細に説明する。ステップ540は、プロキシを介してサーバから暗号化された応答を受信する。暗号化された応答は、要求メッセージに含まれる少なくとも１つのカテゴリに関連する１つ以上の情報項目を含む。
【００４４】
ステップ550は、クライアント解読鍵で暗号化された応答を解読する。実施例では、クライアント解読鍵は、要求メッセージに含まれるクライアント暗号鍵と同じでもよい。他の実施例では、クライアント解読鍵は、公開秘密クライアント鍵の対の秘密鍵でもよい。ステップ560は、ユーザへの次の提示のために、解読された応答の情報項目をデータ構造又はメモリに格納する。
【００４５】
図６は、本発明の実施例に従って情報項目を複数のクライアントに配信する方法600を示している。ステップ610は、プロキシを介してクライアントから情報項目の暗号化された要求を受信する。実施例では、要求は、公開秘密サーバ鍵の対の公開鍵を使用してクライアントにより暗号化される。
【００４６】
ステップ620は、要求を暗号化するために使用された公開鍵に関連する秘密鍵を使用して、暗号化された要求を解読する。実施例では、ステップ620は、秘密公開サーバ鍵の対の秘密鍵を使用して、暗号化された要求を解読する。
【００４７】
ステップ630は、解読された要求からクライアント暗号鍵及びカテゴリにアクセスし、後の使用のために、クライアント暗号鍵及びカテゴリをコンピュータ可読メモリに格納する。
【００４８】
ステップ650は、カテゴリに関連する１つ以上の情報項目を選択する。実施例では、発行元又は情報項目提供者は、情報項目のそれぞれを１つ以上のカテゴリに関連付ける。
【００４９】
ステップ660は、選択された情報項目を含む応答メッセージを生成する。実施例では、ステップ660は、要求メッセージで提供されたクライアント暗号鍵で応答メッセージを暗号化し、暗号化された応答を形成する。ステップ660の実施例は、各応答において異なる情報項目で複数の応答を生成してもよい。ステップ660の実施例はまた、更なる情報項目が発行元又は情報項目提供者から後に受信された場合及び／又は要求においてクライアントにより提供されたカテゴリに関連付けられた場合、後の時点に更なる応答を生成してもよい。
【００５０】
ステップ670は、暗号化された応答をプロキシに送信する。次に、プロキシは、暗号化された応答を直接的に又は１つ以上の更なるプロキシを介してクライアントに送信する。どのクライアントが応答を送信したかを知るために、プロキシは、元の要求を後の応答に関連付ける何らかの方法を有さなければならない。これは、サーバ及びクライアントとの伝送制御プロトコル（TCP：Transmission  Control  Protocol）接続を維持し、２つのTCP接続を相互に関連付けることにより行われてもよい。これはまた、固有の要求識別子を生成し、その識別子をクライアントに関連付けることにより行われてもよい。サーバは、応答で要求識別子を返信することにより、プロキシが応答とクライアントとを関連付けることを可能にしてもよい。
【００５１】
図７Ａ〜７Ｂは、本発明の実施例による情報項目の要求及び情報項目の応答の例示的な内容を示している。
【００５２】
図７Ａは、例示的な要求メッセージを示している。例示的な要求メッセージ700は、メッセージをプロキシに向けて送り、最終的にサーバに向けて送るように適合された暗号化されていない部分を含む。実施例では、メッセージ700のこの暗号化されていない部分はまた、メッセージを送信するクライアントのネットワークアドレスに対応する送信元ネットワークアドレス705を含む。この要求メッセージ700がプロキシにより他のプロキシ又はサーバに転送されるとき、この送信元ネットワークアドレス705は、送信するプロキシのネットワークアドレスと置換される。
【００５３】
要求メッセージ700はまた、暗号化されたレコード710を含む。暗号化されたレコードは、サーバ公開鍵で少なくとも１回暗号化される。暗号化されたレコード710は、サーバから情報項目を要求するために使用される１つ以上のデータフィールドを含む。これらのデータフィールドの例は、クライアントによりユーザに提示するのに適した情報項目の種類を識別する１つ以上のカテゴリ715を含む。代替実施例では、サーバ又は他の第三者が要求されたカテゴリの組み合わせからクライアントを識別することを妨げるために、各要求メッセージ700は、単一のカテゴリのみを含む。
【００５４】
これらのデータフィールドの他の例は、クライアント暗号鍵720を含む。クライアント暗号鍵は、対称鍵でもよく、公開秘密クライアント鍵の対の公開鍵でもよい。更なる実施例では、サーバ又は他の第三者がクライアント暗号鍵720によりクライアントを識別することを妨げるために、クライアント暗号鍵720は、クライアントにより要求されたカテゴリ毎に固有のものでもよい。
【００５５】
実施例では、暗号化されたレコード710はまた、辞書攻撃を防ぐためにナンス735を含む。
【００５６】
図７Ｂは、例示的な応答メッセージ750を示している。例示的な応答メッセージは、メッセージをプロキシに向けて送り、最終的にクライアントに向けて送るように適合された暗号化されていない部分を含む。
【００５７】
応答メッセージ750はまた、暗号化されたレコード760を含む。暗号化されたレコード760は、要求メッセージ700で提供されたクライアント暗号鍵720で暗号化される。暗号化されたレコード760は、１つ以上の情報項目（情報項目765、770及び775等）を含む。実施例では、暗号化されたレコード760はまた、辞書攻撃を防ぐためにナンス780を含む。
【００５８】
ユーザがクライアントソフトウェアを信頼する理由はないため、個人情報又は個人的に識別する情報がクライアントを離れる送信の暗号化された部分で明らかにされないことをユーザが確認する方法を有することが重要である。メッセージ310、710及び760の情報は、個人情報を明らかにしない。カテゴリが合理的に広いことを仮定すると、数千ものクライアントは、いずれかの所与のカテゴリ又は広告を選択又は閲覧し得る。この前提で、ユーザは、個人情報が漏らされないことを確認するために、メッセージの内容がその中にあると想定されるものに限定されることを確認しさえすればよい。
【００５９】
実施例では、クライアントにより送信された暗号化されたレコード310及び710毎に、クライアントは、暗号化されていないメッセージ内容をユーザに利用可能にする。ユーザは、クライアントから直接取得することにより、又はウェブサイトでの発行のような何らかの発行手段を通じて、若しくはPKIを介して、サーバ公開鍵を取得する。ユーザ（又はユーザの代わりに動作する信頼を受けたソフトウェア）は、サーバ公開鍵を使用してメッセージ内容を暗号化し、暗号化されたメッセージを生成する。この暗号化されたメッセージがクライアントにより送信された暗号化されたメッセージと同じである場合、ユーザは、メッセージ内容のみが暗号化されたレコードで伝達されることを確信することができる。或いは、ユーザの代わりに動作する信頼を受けたソフトウェアは、暗号化自体を実行してもよい。この場合、クライアントは、暗号化されていないメッセージ内容を信頼を受けたソフトウェアに提供し、信頼を受けたソフトウェア自体が、内容が個人情報を明らかにしないことを検査し、内容を暗号化し、暗号化されたレコードをクライアントに提供する。そして、クライアントは、プロキシを介してそれをサーバに送信する。
【００６０】
プロキシが暗号化されたメッセージの内容を習得できないことが重要である。習得できる場合、個々のユーザについての個人情報（どのウェブサイトをユーザが訪問したか、どの広告とユーザが相互作用したか、及びどのカテゴリをユーザが要求したか）を習得できる。
【００６１】
例えば、悪意のあるプロキシ又は信頼できなくなったプロキシが暗号化されたメッセージ（レコード、要求又は応答）の内容を推測できる場合、サーバ公開鍵でその推測を暗号化し、レコード内のものに対して結果の暗号化されたレコードを照合することができる。一致する場合、プロキシは、暗号化されたメッセージの内容を知る。メッセージに限られた量の予測可能な情報が存在する場合、プロキシは、正しいものを推測するまで、それぞれの可能なメッセージ内容を合理的に試行してもよい。これは辞書攻撃として知られる。
【００６２】
本発明の実施例は、暗号化されたメッセージにナンス又は１回使用される数（number-used-once）を含めることにより、辞書攻撃を妨げる。ナンスは、推測することを極めて高コストにする大きい乱数又は表面上の疑似乱数であり、辞書攻撃を実行不可能にする。
【００６３】
しかし、ナンスは、大きい乱数にみえる数であるため、悪意のあるクライアント又は信頼できなくなったクライアントが、サーバ又は他の第三者と個人ユーザ情報を通信するための隠れチャネル（covert  channel）としてナンスを使用することが考えられる。例えば、悪意のあるクライアント又は信頼できなくなったクライアントは、クライアントのネットワークアドレスをナンスに隠してもよい。ナンスが隠れチャネルではないというユーザの確信を提供するために、ナンスは、疑似乱数生成器により生成されてもよい。ユーザは、疑似乱数生成器へのシードを与えられてもよく、自分で生成することを許可されてもよい。いずれにしても、ナンスの系列は、後に決定論的であるため、隠れ情報を伝達できない。ユーザは、同じ疑似乱数生成器を並行して動作させ、数がクライアントにより生成されたものと一致することを検査することにより、ナンスの系列が正確であることを確認してもよい。
【００６４】
サーバ及びプロキシが共謀した場合、個人ユーザ情報を明らかにすることができる。例えば、プロキシは、レコード及び応答と共にクライアントのネットワークアドレスをサーバに送信してもよい。この共謀を検出する１つの方法は、独立した仲介者がプロキシに出入りする全ての通信を監視することである。或いは、サーバ及びプロキシは、共にレコードのログを維持管理してもよい。ログを比較することにより、サーバは、各レコードに関連するネットワークアドレスを習得してもよい。この共謀を検出する１つの方法は、独立した仲介者がプロキシの内部動作を監査し、ログが格納されていないことを保証することである。
【００６５】
これらの手段が適切でないと考えられる場合、本発明の更なる実施例は、第１のプロキシとサーバとの間の共謀を無効にする第２のプロキシを含めてもよい。この実施例では、メッセージは、クライアントから第１のプロキシに進み、次に第２のプロキシに進み、次にサーバに進む。
【００６６】
この実施例では、クライアントは、レコードを２回暗号化してもよい。１回目はサーバ公開鍵で暗号化し、次に第２のプロキシの公開鍵で暗号化する。この２回暗号化されたレコードは、第１のプロキシに送信され、第１のプロキシはそれを第２のプロキシに転送する。これにより、クライアントの識別情報を第２のプロキシから隠す。第２のプロキシは、その秘密鍵を使用してレコードを解読し、１回暗号化されたレコードをサーバに渡す。サーバで、それがサーバ秘密鍵で解読されてもよい。この実施例では、いずれか２つの構成要素の間の共謀は、個人情報を明らかにできない。２つのプロキシの間の共謀は、どちらもメッセージの内容を見ることができないため、有用ではない。サーバと第２のプロキシとの間の共謀は、第２のプロキシがクライアントのネットワークアドレスを知らないため、有用ではない。最後に、サーバと第１のプロキシとの間の共謀は、サーバが受信したメッセージと第１のプロキシが送信したメッセージとが異なるため、これらを関連付けることができないため、有用ではない。必要に応じて、第２のプロキシは、その送信と第１のプロキシの送信との間の何らかの時間相関を除去するために、そのメッセージの送信を遅延させてもよい。
【００６７】
本発明の更なる実施例では、コンテンツサーバは、情報項目を配信してこのような項目とのユーザの相互作用をトラッキングする処理に更に関与してもよい。
【００６８】
図８は、本発明の実施例を実装するのに適した例示的なコンピュータシステム2000を示している。図８は、コンピュータシステム2000（パーソナルコンピュータ、サーバコンピュータ、ビデオゲームコンソール、パーソナルデジタルアシスタント又は本発明の実施例を実施するのに適した他のデジタルデバイス等）のブロック図である。コンピュータシステム2000は、ソフトウェアアプリケーション及び任意選択でオペレーティングシステムを動作させる中央処理装置（CPU：central  processing  unit）2005を含む。CPU2005は、１つ以上の処理コアで構成されてもよい。メモリ2010は、CPU2005により使用されるアプリケーション及びデータを格納する。記憶装置2015は、アプリケーション及びデータのための不揮発性記憶装置を提供し、固定又は取り外し可能ハードディスクドライブ、フラッシュメモリデバイス、及びCD-ROM、DVD-ROM、ブルーレイ、HD-DVD又は他の磁気、光学若しくは固体記憶デバイスを含んでもよい。
【００６９】
ユーザ入力デバイス2020は、１人以上のユーザからのユーザ入力をコンピュータシステム2000に通信する。この例は、キーボード、マウス、ジョイスティック、デジタイザタブレット、タッチパッド、単一若しくはマルチタッチのタッチスクリーン、静止画カメラ若しくはビデオカメラ、及び／又はマイクロフォンを含んでもよい。ネットワークインタフェース2025は、コンピュータシステム2000が電子通信ネットワークを介して他のコンピュータシステムと通信することを可能にし、ローカルエリアネットワーク及び広域ネットワーク（インターネット等）での有線又は無線通信を含んでもよい。任意選択のオーディオプロセッサ2055は、CPU2005、メモリ2010及び／又は記憶装置2015により提供された命令及び／又はデータから、アナログ又はデジタルオーディオ出力を生成するように適合される。CPU2005、メモリ2010、データ記憶装置2015、ユーザ入力デバイス2020、ネットワークインタフェース2025及びオーディオプロセッサ2055を含むコンピュータシステム2000の構成要素は、１つ以上のデータバス2060を介して接続される。
【００７０】
グラフィックインタフェース2030は、データバス2060及びコンピュータシステム2000の構成要素に更に接続される。グラフィックインタフェース2030は、ディスプレイデバイス2050に表示される画像の画素データを出力するように適合される。ディスプレイデバイス2050は、CRT、LCD、プラズマ、OLED及びSEDディスプレイを含み、コンピュータシステム2000からの信号に応じて視覚情報を表示可能な如何なるデバイスでもよい。コンピュータシステム2000は、アナログ又はデジタル信号をディスプレイデバイス2050に提供してもよい。
【００７１】
本発明の実施例では、CPU2005は、１つ以上の同種又は異種の処理コアを有する１つ以上の汎用マイクロプロセッサである。コンピュータシステム2000は、本発明の実施例の全て又は一部を実行するために、１つ以上の仮想機械を更に実装してもよい。
【００７２】
添付された文献を読んだ後に、更なる実施例が当業者に明らかになる。他の実施例では、前述の本発明の組み合わせ又は部分的な組み合わせが有利に行われてもよい。アーキテクチャ及びフローチャートのブロック図は、理解を容易にするためにグループ化されている。しかし、ブロックの組み合わせ、新たなブロックの追加、ブロックの再配置等が、本発明の代替実施例で考えられることが分かる。
【００７３】
従って、明細書及び図面は、限定的な意味ではなく、例示的に考えられるべきである。しかし、請求項に記載の本発明の広い要旨及び範囲を逸脱することなく、様々な変更及び変形が行われることが明らかである。
【図１】
2013504123.tif 000002
【図２】
2013504123.tif 000003
【図３】
2013504123.tif 000004
【図４】
2013504123.tif 000005
【図５】
2013504123.tif 000006
【図６】
2013504123.tif 000007
【図７Ａ】
2013504123.tif 000008
【図７Ｂ】
2013504123.tif 000009
【図８】
2013504123.tif 000010
【国際調査報告】
2013504123.tif 000011