(57)【要約】  少なくとも1つの態様は、オンラインアイデンティティのリアルタイム検証のパフォーマンスの向上を対象とする。発行者コンピューティングシステムは、複合トークンを生成するために要求を受信することができ、複合トークンは、特定の検証者がクライアントに関する情報を備えるファーストパーティトークンを認証することを承認するように構成されている。発行者は、暗号鍵を使用して複合トークンを生成し、それをクライアントに分散することができ、クライアントは、それを他のコンテンツアイテムネットワークに分散することができる。検証者は、コンテンツアイテムネットワークから複合トークンを受信し、クライアントデバイスに対応するトークンの真正性を検証するために暗号鍵を使用し、コンテンツアイテム動作をさらに処理するためにトークンを使用することができる。本システムは、複合トークンの生成および検証の前に暗号鍵を分散することができるため、当事者は外部の検証者に連絡することなしに、リアルタイムで複合トークンを検証することができる。
2021516022.tif 000002
【特許請求の範囲】
【請求項１】
署名付きアイデンティティトークンを提供するための方法であって、
当事者によって、発行者のドメインに関連付けられるファーストパーティトークンを生成するステップと、
前記当事者によって前記発行者に、前記発行者の前記ドメインに関連付けられる前記ファーストパーティトークンを送信するステップと、
前記発行者によって、前記発行者の前記ドメインに関連付けられる前記ファーストパーティトークンを受信し、前記ファーストパーティトークンに対応するタイムスタンプを作成するステップと、
デジタル署名付きトークンを作成するために、前記発行者の秘密鍵を使用して、前記発行者によって前記ファーストパーティトークンおよびタイムスタンプを暗号化するステップと、
前記発行者によって、複数のデジタル署名付きトークンを作成するステップであって、前記複数のデジタル署名付きトークンの各々が、それぞれの検証者に対応する、ステップと、
前記それぞれの検証者によって提供された公開鍵を使用して、前記複数のデジタル署名付きトークンの各々を暗号化するステップと、
前記発行者によって、前記複数の暗号化されたデジタル署名付きトークンの各々を備える複合トークンを生成するステップと、
前記発行者によって、前記複合トークンを前記ファーストパーティトークンの生成を担当する前記当事者に提供するステップと
を備える、方法。
【請求項２】
前記当事者によって前記ファーストパーティトークンを生成するステップが、前記当事者に関連付けられるブラウザ情報に部分的に基づく、請求項1に記載の方法。
【請求項３】
前記発行者によって、前記発行者の前記ドメインに関連付けられる前記ファーストパーティトークンおよび前記タイムスタンプを受信するステップが、前記当事者に関連付けられるブラウザ情報を受信するステップを含む、請求項2に記載の方法。
【請求項４】
前記当事者によって前記ファーストパーティトークンを生成するステップが、前記当事者に関連付けられるデバイス情報に部分的に基づく、請求項1に記載の方法。
【請求項５】
前記発行者によって、前記発行者の前記ドメインに関連付けられるファーストパーティトークンの要求を受信するステップが、前記当事者に関連付けられるデバイスを受信するステップを含む、請求項1に記載の方法。
【請求項６】
前記当事者によって前記ファーストパーティトークンを生成するステップが、要求に対応する少なくとも64ビットの高解像度タイムスタンプを生成するステップを含む、請求項1に記載の方法。
【請求項７】
ユーザのアイデンティティを検証するための方法であって、
検証者によって、複合トークンおよびタイムスタンプを受信するステップであって、前記複合トークンが、複数の暗号化されたデジタル署名付きトークンを備える、ステップと、
前記検証者によって、前記複合トークン内の前記複数の暗号化されたデジタル署名付きトークンの各々を列挙するステップと、
前記検証者によって、前記列挙された暗号化されたデジタル署名付きトークンのうちのどれが前記検証者に対応するかを判定するステップと、
署名付きトークンを生成するために、前記検証者によって、前記検証者に属する秘密鍵を使用して、前記検証者に対応する前記暗号化された署名付きトークンの内容を復号するステップと、
有効なファーストパーティトークンを生成するために、前記検証者によって、発行者に対応する公開鍵を使用して、前記署名付きトークンのデジタル署名の有効性を検証するステップと、
前記検証者によって、前記署名付きトークンの前記デジタル署名が有効であることに応答して、前記署名付きトークンから生成された前記有効なファーストパーティトークンを処理するステップと
を備える、方法。
【請求項８】
検証者によって、複合トークンおよびタイムスタンプを受信するステップが、少なくとも64ビットの高解像度タイムスタンプを受信するステップを含む、請求項7に記載の方法。
【請求項９】
有効なファーストパーティトークンを生成するために、前記検証者によって、発行者に対応する公開鍵を使用して、前記署名付きトークンの前記デジタル署名の前記有効性を検証するステップが、有効なファーストパーティデバイストークンを生成するステップを含む、請求項7に記載の方法。
【請求項１０】
有効なファーストパーティトークンを生成するために、前記検証者によって、発行者に対応する公開鍵を使用して、前記署名付きトークンの前記デジタル署名の前記有効性を検証するステップが、有効なファーストパーティブラウザトークンを生成するステップを含む、請求項7に記載の方法。
【請求項１１】
前記検証者によって、前記列挙された暗号化されたデジタル署名付きトークンのうちのどれが前記検証者に対応するかを判定するステップが、前記検証者に対応する前記列挙された暗号化されたデジタル署名付きトークンのいずれにも応答しない前記受信した複合トークンを無視するステップを含む、請求項7に記載の方法。
【請求項１２】
前記署名付きトークンの前記デジタル署名の前記有効性を検証するステップが、前記復号されたトークンおよびタイムスタンプと、前記複合トークンに含まれる暗号化されていないトークンとを比較するステップを含む、請求項7に記載の方法。
【請求項１３】
前記署名付きトークンの前記デジタル署名の前記有効性を検証するステップが、前記複合トークンに含まれるタイムスタンプと、前記署名付きトークンの前記デジタル署名に含まれる前記タイムスタンプとを比較するステップを含む、請求項7に記載の方法。
【請求項１４】
要求に応答する暗号化された署名付きアイデンティティトークンを提供するためのシステムであって、
当事者によって、発行者のドメインに関連付けられるファーストパーティトークンを生成することと、
前記発行者の前記ドメインに関連付けられる前記ファーストパーティトークンおよびタイムスタンプを発行者に送信することと、
前記発行者の前記ドメインに関連付けられる前記ファーストパーティトークンを受信して、タイムスタンプを作成することと、
デジタル署名付きトークンを作成するために、前記発行者の秘密鍵を使用して、前記要求に対応する前記ファーストパーティトークンおよび前記タイムスタンプを暗号化することと、
複数のデジタル署名付きトークンを作成することであって、前記複数のデジタル署名付きトークンの各々が、それぞれの検証者に対応する、作成することと、
前記複数のデジタル署名付きトークンの各々を、前記それぞれの検証者によって提供された公開鍵を使用して暗号化することと、
前記複数の暗号化されたデジタル署名付きトークンの各々を備える複合トークンを生成することと、
前記ファーストパーティトークンの前記要求を開始することを担当する当事者に前記複合トークンを提供することと
を行うように構成された1つまたは複数のプロセッサを備える、システム。
【請求項１５】
前記1つまたは複数のプロセッサが、
前記当事者に関連付けられるブラウザ情報に基づいて、発行者の前記ドメインに関連付けられる前記ファーストパーティトークンおよびタイムスタンプを生成する
ようにさらに構成される、請求項14に記載のシステム。
【請求項１６】
前記1つまたは複数のプロセッサが、
前記発行者の前記ドメインに関連付けられる前記ファーストパーティトークンおよび前記タイムスタンプ、ならび前記当事者に関連付けられる前記ブラウザ情報を受信する
ようにさらに構成される、請求項15に記載のシステム。
【請求項１７】
前記1つまたは複数のプロセッサが、
前記当事者に関連付けられるデバイス情報に基づいて、発行者の前記ドメインに関連付けられる前記ファーストパーティトークンおよびタイムスタンプを生成する
ようにさらに構成される、請求項14に記載のシステム。
【請求項１８】
前記1つまたは複数のプロセッサが、
前記発行者の前記ドメインに関連付けられる前記ファーストパーティトークンおよび前記タイムスタンプ、ならびに前記当事者に関連付けられる前記デバイス情報を受信する
ようにさらに構成される、請求項17に記載のシステム。
【請求項１９】
前記ファーストパーティトークンを用いて生成された前記タイムスタンプが少なくとも64ビットの高解像度タイムスタンプである、請求項14に記載のシステム。
【請求項２０】
ユーザのアイデンティティを検証するためのシステムであって、
複合トークンおよびタイムスタンプを受信することであって、前記複合トークンが、複数の暗号化されたデジタル署名付きトークンを備える、受信することと、
前記複合トークン内の前記複数の暗号化されたデジタル署名付きトークンの各々を列挙することと、
前記列挙された暗号化されたデジタル署名付きトークンのうちのどれが検証者に対応するかを判定することと、
署名付きトークンを生成するために、前記検証者に属する秘密鍵を使用して、前記検証者に対応する前記暗号化された署名付きトークンの内容を復号することと、
有効なファーストパーティトークンを生成するために、発行者に対応する公開鍵を使用して、前記署名付きトークンのデジタル署名の有効性を検証することと、
前記署名付きトークンの前記デジタル署名が有効であることに応答して、前記署名付きトークンから生成された前記有効なファーストパーティトークンを処理することと
を行うように構成された1つまたは複数のプロセッサを備える、システム。
【発明の詳細な説明】
【技術分野】
【０００１】
関連出願の相互参照
本出願は、2019年8月28日に提出された米国特許出願第16/553,599号、および2019年4月29日に提出された米国仮出願第62/840,204号に対する優先権を主張し、その内容を参照により本明細書に組み込む。
【背景技術】
【０００２】
インターネットなどのコンピュータネットワーク環境では、ユーザはサードパーティコンテンツアイテムと対話し得る。これらのサードパーティコンテンツアイテム、たとえば広告は、それぞれのパブリッシャに関連付けられるウェブページ上に表示することができる。これらのユーザは、サードパーティコンテンツアイテムとの対話を示す情報をパブリッシャに提供することができる。
【発明の概要】
【発明が解決しようとする課題】
【０００３】
本開示によって対処される1つの技術的問題は、オンラインユーザのプライバシを守りながらオンラインユーザのアイデンティティを判定する際の困難さである。さらに、サードパーティコンテンツアイテムディストリビュータは、あらかじめ定められた短い時間枠(たとえば、100ミリ秒)内にパブリッシャのウェブページを訪れるユーザのアイデンティティを検証したい場合がある。しかしながら、ユーザのアイデンティティを正確に検証するには、ユーザのアイデンティティの検証を担当する外部ソースへの多くの照会が必要になる。これにより、特定のサードパーティコンテンツアイテムディストリビュータプラットフォームに許容できない遅延が発生する。
【０００４】
本開示において対処される課題は、信頼できるサードパーティコンテンツアイテムディストリビュータのみに対するユーザのプライバシを維持しながら、サードパーティの検証者への照会の数を最小限に抑えながら、オンラインユーザのアイデンティティの分散検証が可能なシステムを提供することに関する。公開鍵は、ユーザのトークンデータをリアルタイムで検証するために、信頼できる発行者によってデジタル署名付きトークンデータを復号することができる、信頼できるサードパーティコンテンツアイテムディストリビュータにのみ発行される。これにより、検証者がトークンデータを検証するために行う必要がある照会の数が最小限に抑えられ、ネットワークのオーバーヘッドと検証時間が削減される。
【０００５】
クッキーベースのアイデンティティサポートは、発行者による認証をサポートしておらず、また、「リプレイ攻撃」とも呼ばれるブラウザセッションのコピーも防止していない。その結果、ブラウザのクッキーは、オンラインユーザの信頼できるアイデンティティではなくラベルである。同様に、接続されたテレビなどのデバイスでは、デバイス識別子は弱い保護層しか提供しない。OEMに代わって他の当事者がデバイスの真正性を検証することはできない。これらの場合、不正なコンテンツアイテムの要求を作成するためにブラウザセッションのコピーが作成されるリプレイ攻撃を検出することができず、また、多くのサードパーティによって必要とされるように、リアルタイムでアイデンティティの検証を行うこともできない。したがって、本明細書で開示されている技術的解決策は、アイデンティティ検証および不正検出の既存の技術に対する著しい改善である。
【課題を解決するための手段】
【０００６】
本開示は、特定のユーザに関連付けられるトークンデータに対応するデジタル署名の認証および生成を担当する、オンラインユーザの正当なアイデンティティを知っている発行者を含むシステムを論じる。発行者は暗号化を通じて、どのサードパーティコンテンツディストリビュータプラットフォーム(サードパーティの検証者)がユーザのトークンデータを処理できるかを制御することができる。本システムは、特定のユーザに関連付けられるトークン情報を検証するために、発行者によって承認された検証者をさらに含む。検証鍵は検証者によってローカルに維持されるため、検証プロセスはリアルタイムで行うことができ、外部の当事者にアクセスする必要はない。これにより、発行者とサードパーティコンテンツアイテム分散プラットフォームの間で分散されるリアルタイムのアイデンティティ検証が可能になる。
【０００７】
少なくとも1つの態様は、署名付きアイデンティティトークンを提供するための方法を対象とする。本方法は、当事者によって、発行者のドメインに関連付けられるファーストパーティトークンを生成するステップを備える。本方法はまた、当事者によって発行者に、発行者のドメインに関連付けられるファーストパーティトークンを送信するステップを備える。本方法は、発行者によって、発行者のドメインに関連付けられるファーストパーティトークンを受信し、ファーストパーティトークンに対応するタイムスタンプを作成するステップをさらに備える。本方法は、デジタル署名付きトークンを作成するために、発行者の秘密鍵を使用して、発行者によってファーストパーティトークンおよびタイムスタンプを暗号化するステップをさらに備える。本方法は、発行者によって、複数のデジタル署名付きトークンを作成するステップであって、複数のデジタル署名付きトークンの各々が、それぞれの検証者に対応する、ステップをさらに備える。本方法は、それぞれの検証者によって提供された公開鍵を使用して、複数のデジタル署名付きトークンの各々を暗号化するステップをさらに備える。本方法はまた、発行者によって、複数の暗号化されたデジタル署名付きトークンの各々を備える複合トークンを生成するステップを備える。本方法は、発行者によって、複合トークンをファーストパーティトークンの生成を担当する当事者に提供するステップをさらに備える。
【０００８】
本開示の別の態様は、ユーザのアイデンティティを検証するための方法を対象とする。本方法は、検証者によって、複合トークンおよびタイムスタンプを受信するステップであって、複合トークンが、複数の暗号化されたデジタル署名付きトークンを備える、ステップを備える。本方法は、検証者によって、複合トークン内の複数の暗号化されたデジタル署名付きトークンの各々を列挙するステップをさらに備える。本方法はまた、検証者によって、列挙された暗号化されたデジタル署名付きトークンのうちのどれが検証者に対応するかを判定するステップを備える。本方法は、署名付きトークンを生成するために、検証者によって、検証者に属する秘密鍵を使用して、検証者に対応する暗号化された署名付きトークンの内容を復号するステップをさらに備える。本方法は、有効なファーストパーティトークンを生成するために、検証者によって、発行者に対応する公開鍵を使用して、署名付きトークンのデジタル署名の有効性を検証するステップをさらに備える。本方法は、検証者によって、署名付きトークンのデジタル署名が有効であることに応答して、署名付きトークンから生成された有効なファーストパーティトークンを処理するステップをさらに備える。
【０００９】
これらおよび他の態様と実装形態については、以下で詳しく説明する。前述の情報および以下の詳細な説明は、様々な態様および実装形態の例示的な例を含み、請求される態様および実装形態の性質および特性を理解するための概要またはフレームワークを提供する。図面は、様々な態様および実装形態の説明およびさらなる理解を提供し、それらは本明細書に組み込まれ、本明細書の一部を構成する。
【００１０】
添付の図面は、一定の縮尺で描かれることを意図していない。様々な図面における同様の参照番号および名称は、同様の要素を示す。明確にするために、すべてのコンポーネントがすべての図面においてラベル付けされているとは限らない。
【図面の簡単な説明】
【００１１】
【図１】オンラインアイデンティティの分散リアルタイム検証のための環境の例示的な実装形態を示すブロック図である。
【図２】例示的な実装形態による、鍵マネージャ130の例示的な実装形態を表すブロック図である。
【図３】例示的な実装形態による、複合トークンを生成するための例示的なプロセスの流れ図である。
【図４】例示的な実装形態による、複合トークンの内容の検証のための例示的なプロセスの流れ図である。
【図５】図2に示されるプロセスによって生成される複合トークンの表現を示す図である。
【図６】本明細書で論じられるコンピュータシステムのうちのいずれかを実装するために採用され得る例示的なコンピュータシステムの一般的なアーキテクチャを示す図である。
【発明を実施するための形態】
【００１２】
以下は、不正耐性コンテンツアイテム動作を管理する方法、装置、およびシステムに関連する様々な概念、およびそれらの実装形態のより詳細な説明である。上述の概念は任意の特定の実装方法に限定されないため、上記で紹介し、以下でより詳細に説明する様々な概念は、多数の方法のいずれでも実装され得る。
【００１３】
図1は、オンラインアイデンティティの分散リアルタイム検証のための環境100の一実装形態を示すブロック図である。環境100は、少なくとも1つのクライアントコンピューティングシステム105を含む。クライアントコンピューティングシステム105は、少なくとも1つのプロセッサ(または、処理回路)およびメモリを含むことができる。メモリは、プロセッサ上で実行されると、プロセッサに、本明細書で説明される動作のうちの1つまたは複数を実行させるプロセッサ実行可能命令を記憶する。プロセッサは、マイクロプロセッサ、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)など、またはそれらの組合せを含むことができる。メモリは、これらに限定されないが、プロセッサにプログラム命令を提供することができる電子的、光学的、磁気的、あるいは任意の他のストレージまたは送信デバイスを含むことができる。メモリは、フロッピーディスク、CD-ROM、DVD、磁気ディスク、メモリチップ、ASIC、FPGA、読取り専用メモリ(ROM)、ランダムアクセスメモリ(RAM)、電気的消去可能ROM(EEPROM)、消去可能-プログラム可能ROM(EPROM)、フラッシュメモリ、光メディア、またはプロセッサが命令を読み取ることができる任意の他の適切なメモリをさらに含むことができる。命令は、任意の適切なコンピュータプログラミング言語からのコードを含むことができる。クライアントコンピューティングシステム105は、様々な機能を実行することができる1つまたは複数のコンピューティングデバイスまたはサーバを含むことができる。
【００１４】
いくつかの実装形態では、クライアントコンピューティングシステム105は、ブラウザトークンを生成するように構成されたウェブブラウザなどのアプリケーションを含むことができる。そのような実施形態では、生成されたブラウザトークンは、発行者コンピューティングシステム115のドメインに関連付けられ、クライアントコンピューティングシステム105によって実行されるウェブブラウザに関する情報を含み得る。いくつかの実装形態では、クライアントコンピューティングシステム105は、デバイストークンを生成するように構成される。そのような実施形態では、生成されたデバイストークンは、発行者コンピューティングシステム115のドメインに関連付けられ得、クライアントコンピューティングシステム105に関するデバイス情報を含み得る。クライアントコンピューティングシステム105は、生成されたトークンを、ネットワーク110を介して発行者コンピューティングシステム115に送信するように構成され得る。いくつかの実装形態では、クライアントコンピューティングシステム105は、コンテンツアイテムネットワーク155を介して広告オークションシステムと通信するように構成される。
【００１５】
ネットワーク110は、インターネット、ローカル、ワイド、メトロまたは他のエリアネットワーク、イントラネット、衛星ネットワーク、音声またはデータモバイル電話通信ネットワークなどの他のコンピュータネットワーク、およびそれらの組合せなどのコンピュータネットワークを含むことができる。いくつかの実装形態では、鍵分散インフラストラクチャ135またはコンテンツアイテムネットワーク155のいずれも、ネットワーク110と同じであってもよく、その一部であってもよい。環境100のクライアントコンピューティングシステム105は、ネットワーク110を介して、たとえば、少なくとも1つの発行者コンピューティングシステム115と通信することができる。ネットワーク110は、クライアントコンピューティングシステム105と発行者コンピューティングシステム115、およびとりわけウェブサーバ、広告サーバなどの1つまたは複数のコンテンツソースとの間で情報を中継する任意の形態のコンピュータネットワークであり得る。たとえば、ネットワーク105は、インターネットおよび/または、ローカルエリアネットワーク(LAN)、ワイドエリアネットワーク(WAN)、セルラーネットワーク、衛星ネットワーク、または他のタイプのデータネットワークなどの他のタイプのデータネットワークを含み得る。ネットワーク110はまた、ネットワーク110内でデータを受信および/または送信するように構成された任意の数のコンピューティングデバイス(たとえば、コンピュータ、サーバ、ルータ、ネットワークスイッチなど)を含むことができる。ネットワーク110は、任意の数のハードワイヤードおよび/またはワイヤレス接続をさらに含むことができる。たとえば、クライアントコンピューティングシステム105は、ネットワーク110内の他のコンピューティングデバイスに(たとえば、光ファイバケーブル、CAT5ケーブルなどを介して)ハードワイヤードされているトランシーバと(たとえば、WiFi、セルラー、無線などを介して)ワイヤレスで通信することができる。
【００１６】
コンテンツアイテムネットワーク155は、インターネット、ローカル、ワイド、メトロまたは他のエリアネットワーク、イントラネット、衛星ネットワーク、音声またはデータモバイル電話通信ネットワークなどの他のコンピュータネットワーク、およびそれらの組合せなどのコンピュータネットワークを含むことができる。いくつかの実装形態では、コンテンツアイテムネットワーク155は、ネットワーク110と同じであってもよく、その一部であってもよい。環境100のクライアントコンピューティングシステム105は、コンテンツアイテムネットワーク155を介して、たとえば、少なくとも1つの検証者コンピューティングシステム140と通信することができる。コンテンツアイテムネットワーク155は、クライアントコンピューティングシステム105と少なくとも1つの検証者コンピューティングシステム140、およびとりわけウェブサーバ、広告サーバなどの1つまたは複数のコンテンツソースとの間で情報を中継する任意の形態のコンピュータネットワークであり得る。たとえば、コンテンツアイテムネットワーク155は、インターネットおよび/または、ローカルエリアネットワーク(LAN)、ワイドエリアネットワーク(WAN)、セルラーネットワーク、衛星ネットワーク、または他のタイプのデータネットワークなどの他のタイプのデータネットワークを含み得る。コンテンツアイテムネットワーク155はまた、コンテンツアイテムネットワーク155内でデータを受信および/または送信するように構成された任意の数のコンピューティングデバイス(たとえば、コンピュータ、サーバ、ルータ、ネットワークスイッチなど)を含むことができる。コンテンツアイテムネットワーク155は、任意の数のハードワイヤードおよび/またはワイヤレス接続をさらに含むことができる。たとえば、検証者コンピューティングシステム140は、コンテンツアイテムネットワーク155内の他のコンピューティングデバイスに(たとえば、光ファイバケーブル、CAT5ケーブルなどを介して)ハードワイヤードされているトランシーバと(たとえば、WiFi、セルラー、無線などを介して)ワイヤレスで通信することができる。
【００１７】
鍵分散インフラストラクチャネットワーク135は、インターネット、ローカル、ワイド、メトロまたは他のエリアネットワーク、イントラネット、衛星ネットワーク、音声またはデータモバイル電話通信ネットワークなどの他のコンピュータネットワーク、およびそれらの組合せなどのコンピュータネットワークを含むことができる。いくつかの実装形態では、鍵分散インフラストラクチャネットワーク135は、ネットワーク110と同じであってもよく、その一部であってもよい。環境100の鍵マネージャコンピューティングシステム130は、たとえば、少なくとも1つの発行者コンピューティングシステム115および/または少なくとも1つの検証者コンピューティングシステム140と、鍵分散インフラストラクチャネットワーク135を介して通信することができる。鍵分散インフラストラクチャネットワーク135は、鍵マネージャコンピューティングシステム130と少なくとも1つの検証者コンピューティングシステム140または少なくとも1つの発行者コンピューティングシステム115、およびとりわけウェブサーバ、広告サーバなどの1つまたは複数のコンテンツソースとの間で情報を中継する任意の形態のコンピュータネットワークであり得る。たとえば、鍵分散インフラストラクチャネットワーク135は、インターネットおよび/または、ローカルエリアネットワーク(LAN)、ワイドエリアネットワーク(WAN)、セルラーネットワーク、衛星ネットワーク、または他のタイプのデータネットワークなどの他のタイプのデータネットワークを含み得る。鍵分散インフラストラクチャネットワーク135はまた、鍵分散インフラストラクチャネットワーク135内でデータを受信および/または送信するように構成された任意の数のコンピューティングデバイス(たとえば、コンピュータ、サーバ、ルータ、ネットワークスイッチなど)を含むことができる。鍵分散インフラストラクチャネットワーク135は、任意の数のハードワイヤードおよび/またはワイヤレス接続をさらに含むことができる。たとえば、鍵マネージャコンピューティングシステム130は、鍵分散インフラストラクチャネットワーク135内の他のコンピューティングデバイスに(たとえば、光ファイバケーブル、CAT5ケーブルなどを介して)ハードワイヤードされているトランシーバと(たと
えば、WiFi、セルラー、無線などを介して)ワイヤレスで通信することができる。
【００１８】
発行者コンピューティングシステム115は、クライアントコンピューティングシステム105から受信したブラウザまたはデバイストークンなどのトークン情報を認証および/またはデジタル署名するために発行者エンティティによって動作されるサーバまたは他のコンピューティングデバイスを含むことができる。発行者コンピューティングデバイス115は、トークン署名者コンポーネント120および1つまたは複数の暗号鍵コンポーネント125を含むことができる。いくつかの実装形態では、発行者コンピューティングシステム115は、プライマリコンテンツを含むウェブサイトまたはウェブページなどの情報リソース上に表示するためのサードパーティコンテンツアイテムまたはクリエイティブ(たとえば、広告)を提供することができる。発行者コンピューティングシステム115はまた、プライマリコンテンツを含むウェブページなどの情報リソースを提供することができる。発行者コンピューティングシステム115は、クライアントコンピューティングシステム105に関連付けられる情報に対応するトークンに基づいてデジタル署名を生成するための命令または計算回路を含むことができる。発行者コンピューティングシステム115は、クライアントコンピューティングシステム105に関連付けられる情報に対応するデジタル署名付きトークンを暗号化するための命令または計算回路を含むことができる。発行者コンピューティングシステム115は、1つまたは複数の暗号鍵コンポーネント125、およびトークン署名者コンポーネント120によって生成されたデジタル署名に基づいて複合トークンを生成し得る。発行者コンピューティングシステム115は、暗号化されたデジタル署名付きトークンの各々を単一のデータ構造に一緒に連結することによって複合トークンを生成し得る。発行者コンピューティングシステム115は、生成された複合トークンを、ネットワーク110を介してクライアントコンピューティングシステム105に提供することができる。発行者コンピューティングシステム115は、鍵分散インフラストラクチャ135を介して、鍵マネージャ130からトークン署名者コンポーネント125および/または暗号鍵コンポーネント125の両方を受信、要求、受け入れ、または照会することができる。いくつかの実装形態では、鍵マネージャ130は、
トークン署名者コンポーネント120および/あるいは1つまたは複数の暗号鍵コンポーネント125を、鍵分散インフラストラクチャ135を介して発行者コンピューティングシステム115に自動的に送信し得る。
【００１９】
検証者コンピューティングシステム140は、コンテンツアイテムネットワーク155を通じてクライアントコンピューティングシステム105から受信した署名付きトークンの真正性の検証を提供するためにコンテンツプロバイダエンティティによって動作されるサーバまたは他のコンピューティングデバイスを含むことができる。いくつかの実装形態では、コンテンツアイテムネットワーク155から受信された署名付きトークンは、複合トークンであり得る。検証者コンピューティングシステム140は、トークン検証者コンポーネント145および復号鍵コンポーネント150を含み得る。検証者コンピューティングシステム140は、コンテンツアイテムネットワーク155を介してプライマリコンテンツを含むウェブサイトまたはウェブページなどの情報リソース上に表示するためのサードパーティコンテンツアイテムまたはクリエイティブ(たとえば、広告)を提供し得る。検証者コンピューティングシステム140は、復号鍵コンポーネント150およびトークン検証者コンポーネント145を使用してクライアント105に関連付けられるトークンを検証することに応答してコンテンツアイテムのみを提供し得る。1つまたは複数の検証者コンピューティングシステム140は、コンテンツアイテムネットワーク155を介してクライアントコンピューティングシステム105に対応する複合トークンを受信することができる。コンテンツアイテムネットワーク155から受信された複合トークンは、1つまたは複数の暗号化されたデジタル署名を含み得、その1つは検証者コンピュータシステム140のうちの1つに対応し得る。複合トークンを受信した検証者コンピューティングシステム140の各々は、複数の暗号化されたデジタル署名付きトークンを列挙するために、複合トークンを解析することができる。検証者コンピューティングシステム140の各々は、検証者コンピューティングシステム140に対応する暗号化されたデジタル署名付きトークンを復号するために、復号鍵コンポーネント150を使用し得る。暗号化されたデジタル署名付きトークンは、暗号化されたデジタル署名付きトークン内の復号されたデジタル署名がトークン検証者コンポーネント145を使用して検証できる場合、検証者コンピューティングシステム140に対応すると判定され得る。トークン検証者コン
ポーネント145は、復号されたデジタル署名を検証するために、発行者コンピューティングシステム115によって維持される秘密鍵に対応する公開鍵を使用することができる。いくつかの実施形態では、検証者コンピューティングシステム140は、鍵分散インフラストラクチャ135を介して、鍵マネージャコンピューティングシステム130からトークン検証者および1つまたは複数の復号鍵の両方を受信、要求、受け入れ、または照会することができる。いくつかの実装形態では、鍵マネージャコンポーネントシステム130は、検証者コンポーネント145および/または復号鍵コンポーネント150を、鍵分散インフラストラクチャ135を介して検証者コンピューティングシステム140に自動的に送信し得る。
【００２０】
クライアントコンピューティングシステム105、発行者コンピューティングシステム115、検証者コンピューティングシステム140、および鍵マネージャコンピューティングシステム130は、プロセッサおよびメモリ、すなわち処理回路を含むことができる。メモリは、プロセッサ上で実行されると、プロセッサに、本明細書で説明される動作のうちの1つまたは複数を実行させる機械命令を記憶する。プロセッサは、マイクロプロセッサ、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)など、またはそれらの組合せを含むことができる。メモリは、これらに限定されないが、プロセッサにプログラム命令を提供することができる電子的、光学的、磁気的、あるいは任意の他のストレージまたは送信デバイスを含むことができる。メモリは、フロッピーディスク、CD-ROM、DVD、磁気ディスク、メモリチップ、ASIC、FPGA、読取り専用メモリ(ROM)、ランダムアクセスメモリ(RAM)、電気的消去可能ROM(EEPROM)、消去可能-プログラム可能ROM(EPROM)、フラッシュメモリ、光メディア、またはプロセッサが命令を読み取ることができる任意の他の適切なメモリをさらに含み得る。命令は、任意の適切なコンピュータプログラミング言語からのコードを含むことができる。
【００２１】
クライアントコンピューティングシステム105、発行者コンピューティングシステム115、検証者コンピューティングシステム140、および鍵マネージャコンピューティングシステム130はまた、1つまたは複数のユーザインターフェースデバイスを含むことができる。一般に、ユーザインターフェースデバイスとは、一般に、ユーザインターフェースデバイスとは、感覚情報(たとえば、ディスプレイ上の視覚化、1つまたは複数のサウンドなど)を生成することによってデータをユーザに伝える、および/または、ユーザから受信した感覚情報を電子信号に変換する任意の電子デバイス(たとえば、キーボード、マウス、ポインティングデバイス、タッチスクリーンディスプレイ、マイクなど)を指す。様々な実装形態によれば、1つまたは複数のユーザインターフェースデバイスは、クライアントコンピューティングシステム105、発行者コンピューティングシステム115、検証者コンピューティングシステム140、および鍵マネージャシステム130(たとえば、内蔵ディスプレイ、マイクなど)の筐体の内部にあってもよく、クライアントコンピューティングシステム105、発行者コンピューティングシステム115、検証者コンピューティングシステム140、および鍵マネージャコンピューティングシステム130の筐体の外部にあってもよい(たとえば、クライアントコンピューティングシステム105に接続されたモニタ、クライアントコンピューティングシステム105に接続されたスピーカなど)。たとえば、クライアントコンピューティングシステム105、発行者コンピューティングシステム115、検証者コンピューティングシステム140、および鍵マネージャコンピューティングシステム130は、ネットワーク110、コンテンツアイテムネットワーク155、または鍵分散インフラストラクチャ135を介して1つまたは複数のコンテンツソースから受信したウェブページデータを使用してウェブページを視覚的に表示する電子ディスプレイを含むことができる。
【００２２】
発行者コンピューティングシステム115は、少なくとも1つのサーバを含むことができる。たとえば、発行者コンピューティングシステム115は、少なくとも1つのデータセンタまたはサーバファームに配置された複数のサーバを含むことができる。いくつかの実装形態では、発行者コンピューティングシステム115は、クライアントコンピュータシステム105に関する情報を含むことができる。発行者コンピューティングシステム115は、少なくとも1つのトークン署名者コンポーネント120、および少なくとも1つの暗号鍵コンポーネント125を含むことができる。トークン署名者コンポーネント120および暗号鍵コンポーネント125はそれぞれ、少なくとも1つの処理ユニット、サーバ、仮想サーバ、回路、エンジン、エージェント、アプライアンス、あるいはネットワーク110および/または鍵分散インフラストラクチャ135を介して他のコンピューティングデバイス(たとえば、クライアントコンピューティングシステム105、または鍵マネージャコンピューティングシステム130)と通信するように構成されたプログラマブル論理アレイなどの他の論理デバイスを含むことができる。
【００２３】
トークン署名者コンポーネント120および暗号鍵コンポーネント125は、少なくとも1つのコンピュータプログラムまたは少なくとも1つのスクリプトを含むか、実行することができる。トークン署名者コンポーネント120および暗号鍵コンポーネント125は、別個のコンポーネント、単一のコンポーネント、または発行者コンピューティングシステム115の一部であり得る。トークン署名者コンポーネント120および暗号鍵コンポーネント125は、1つまたは複数のスクリプトを実行するように構成された1つまたは複数のプロセッサなどのソフトウェアおよびハードウェアの組合せを含むことができる。
【００２４】
トークン署名者コンポーネント120は、ネットワーク110を介してクライアントコンピューティングシステム105からファーストパーティトークンを受け取ることができる。いくつかの実施形態では、ファーストパーティトークンは、発行者コンピューティングシステム115のドメインに関連付けられ得る。いくつかの実施形態では、ファーストパーティトークンは、クライアントコンピューティングシステム105上で実行されるブラウザによって生成され得る。いくつかの他の実施形態では、ファーストパーティトークンは、クライアントコンピューティングシステム105によって生成されたデバイストークンであり得る。いくつかの実施形態では、トークン署名者コンポーネント120は、ファーストパーティトークンを生成するために、ネットワーク110を介してクライアントコンピューティングシステム105から要求を受信することができる。ファーストパーティトークンの要求は、クライアントコンピューティングシステム105で実行されているブラウザに対応するブラウザ情報を含むことができる。ファーストパーティトークンの要求は、クライアントコンピューティングシステム105に対応するデバイス情報を含むことができる。いくつかの実施形態では、トークン署名者コンポーネント120は、クライアントコンピューティングシステム105からの要求に応答してファーストパーティトークンを生成することができる。ファーストパーティトークンは、発行者コンピューティングシステム115のドメインに対応することができる。トークン署名者コンポーネント120は、ネットワーク110を介してクライアントコンピューティングシステム105から複合トークンの要求を受信し得る。いくつかの実施形態では、トークン署名者コンポーネント120は、ネットワーク110を介してクライアントコンピューティングシステム105からデジタル署名付きトークンの要求を受信し得る。トークン署名者コンポーネント120は、クライアントコンピューティングシステム105からのファーストパーティトークンの受信に対応するタイムスタンプを生成することができる。タイムスタンプは、発行者コンピューティングシステム115によって維持される現在時刻に基づいて生成され得る。トークン署名者コンポーネント120は、発行者コンピューティングシステム1
15に対応する1つまたは複数の秘密鍵を維持することができる。いくつかの実施形態では、1つまたは複数の秘密鍵は、鍵分散インフラストラクチャ135を介して鍵マネージャコンピューティングシステム130から受信される。トークン署名者コンポーネント120は、1つまたは複数の秘密鍵を使用して、デジタル署名付きファーストパーティトークンを生成することができる。トークン署名者コンポーネント120は、1つまたは複数の暗号化されたデジタル署名付きトークンを生成するために、デジタル署名付きファーストパーティトークンを暗号鍵コンポーネント125に提供することができる。トークン署名者コンポーネント120は、1つまたは複数の暗号化されたデジタル署名付きトークンを備える複合トークンを生成するために、デジタル署名付きファーストパーティトークンを暗号鍵コンポーネント125に提供することができる。
【００２５】
暗号鍵コンポーネント125は、デジタル署名付きファーストパーティトークンをトークン署名者コンポーネント120から受信することができる。いくつかの実施形態では、暗号鍵コンポーネント125は、ネットワーク110を介してクライアントコンピューティングシステム105から複合トークンの要求を受信することができる。いくつかの実施形態では、暗号鍵コンポーネント125は、ネットワーク110を介してクライアントコンピューティングシステム105から暗号化されたデジタル署名付きトークンの要求を受信することができる。暗号鍵コンポーネント125は、1つまたは複数の暗号鍵を維持することができる。いくつかの実施形態では、1つまたは複数の暗号鍵の各々は、検証者コンピューティングシステム140に対応する公開鍵である。そのような実施形態では、検証者コンピューティングシステム140は、発行者コンピューティングシステム115によって維持される対応する公開鍵に関連付けられる秘密鍵を維持することができる。1つまたは複数の暗号鍵は、鍵分散インフラストラクチャ135を介して鍵マネージャコンピューティングシステム130から受信することができる。いくつかの実施形態では、暗号鍵コンポーネント125は、1つまたは複数の暗号化されたデジタル署名付きファーストパーティトークンを生成するために、トークン署名者コンポーネント120から要求を受信することができる。そのような実施形態では、暗号鍵コンポーネント125は、暗号鍵コンポーネント125によって維持される1つまたは複数の暗号鍵の各々について、暗号化されたデジタル署名付きトークンを生成し得る。暗号鍵コンポーネント125は、1つまたは複数の暗号化されたデジタル署名付きトークンを備える複合トークンを生成し得る。そのような実施形態では、暗号鍵コンポーネント125は、1つまたは複数の暗号化されたデジタル署名付きトークンの各々を単一のデータ構造に連結することによって、複合トークンを生成することができる。暗号鍵コンポーネントは、複合トークンをクライアントコンピューティングシステム105に提供することができる。いくつかの実施形態では、暗号鍵コンポーネントは、1つまたは複数の暗号化されたデジタル署名付きトークンをクライアントコンピューティングシステム105に提供することができる。
【００２６】
検証者コンピューティングシステム140は、少なくとも1つのサーバを含むことができる。たとえば、検証者コンピューティングシステム140は、少なくとも1つのデータセンタまたはサーバファームに配置された複数のサーバを含むことができる。いくつかの実装形態では、検証者コンピューティングシステム140は、クライアントコンピュータシステム105に関する情報を含むことができる。検証者コンピューティングシステム140は、少なくとも1つのトークン検証者コンポーネント145、および少なくとも1つの復号鍵コンポーネント150を含むことができる。トークン検証者コンポーネント145および復号鍵コンポーネント150はそれぞれ、少なくとも1つの処理ユニット、サーバ、仮想サーバ、回路、エンジン、エージェント、アプライアンス、あるいはコンテンツアイテムネットワーク155および/または鍵分散インフラストラクチャ135を介して他のコンピューティングデバイス(たとえば、クライアントコンピューティングシステム105、または鍵マネージャコンピューティングシステム130)と通信するように構成されたプログラマブル論理アレイなどの他の論理デバイスを含むことができる。
【００２７】
トークン検証者コンポーネント145および復号鍵コンポーネント150は、少なくとも1つのコンピュータプログラムまたは少なくとも1つのスクリプトを含むか、実行することができる。トークン検証者コンポーネント145および復号鍵コンポーネント150は、別個のコンポーネント、単一のコンポーネント、または検証者コンピューティングシステム140の一部であり得る。トークン検証者コンポーネント145および復号鍵コンポーネント150は、1つまたは複数のスクリプトを実行するように構成された1つまたは複数のプロセッサなどのソフトウェアおよびハードウェアの組合せを含むことができる。
【００２８】
復号鍵コンポーネント150は、コンテンツアイテムネットワーク155を介してクライアントコンピューティングシステム105に対応する複合トークンを受信することができる。複合トークンは、1つまたは複数の暗号化されたデジタル署名付きトークンを含むことができる。いくつかの実施形態では、複合トークンは、ファーストパーティトークンおよびタイムスタンプを含み得、ファーストパーティトークンは、複合トークンの暗号化されたデジタル署名付き部分を生成するために使用される。そのような実施形態では、復号鍵コンポーネント150は、複合トークンがリプレイ攻撃の一部として送信されたかどうかを判定するために、複合トークンの受信されたタイムスタンプが最近のものであるかどうかをチェックすることができる。複合トークンがリプレイ攻撃の一部であると判定された場合、復号鍵コンポーネントは複合トークンを無視して、検証者コンピューティングシステム140による複合トークンのさらなる処理を停止することができる。復号鍵コンポーネント150は、複合トークンの真正性を検証するためにコンテンツアイテムネットワーク155から要求を受信することができる。復号鍵コンポーネント150は、1つまたは複数の暗号化されたデジタル署名付きトークンを検証するために、コンテンツアイテムネットワーク155から要求を受信することができる。復号鍵コンポーネント150は、復号鍵を維持することができる。いくつかの実施形態では、復号鍵は、検証者コンピューティングシステム140に対応する秘密鍵である。そのような実施形態では、発行者コンピューティングシステム115は、検証者コンピューティングシステム140によって維持される対応する秘密鍵に関連付けられる公開鍵を維持する。
【００２９】
復号鍵は、鍵分散インフラストラクチャ135を介して鍵マネージャコンピューティングシステム130から受信することができる。復号鍵コンポーネント150は、コンテンツアイテムネットワーク155から受信した複合トークン内の暗号化されたデジタル署名付きトークンの各々を列挙することができる。復号鍵コンポーネント150は、コンテンツアイテムネットワーク155から受信した暗号化されたデジタル署名付きトークンの各々を列挙することができる。復号鍵コンポーネント150は、それぞれの暗号化されたデジタル署名付きトークンに対応するデジタル署名付きトークンを生成するために、復号鍵コンポーネント150によって維持される秘密鍵を使用して、列挙された暗号化されたデジタル署名付きトークンの各々を復号することを試みることができる。いくつかの実施形態では、復号鍵コンポーネント150は、列挙されたデジタル署名付きトークンのうちのどれが検証者コンピューティングシステム140に対応するかを判定し得る。そのような実施形態では、復号鍵コンポーネント150は、デジタル署名付きトークンを生成するために、秘密鍵を使用して検証者コンピューティングシステム150に対応する暗号化されたデジタル署名付きトークンを復号することができる。復号鍵コンポーネント150は、生成された1つまたは複数のデジタル署名付きトークンをトークン検証者コンポーネント145に提供することができる。
【００３０】
トークン検証者コンポーネント145は、復号鍵コンポーネント150によって提供される1つまたは複数のデジタル署名付きトークンを受信することができる。トークン検証者コンポーネントは、ファーストパーティトークンおよびタイムスタンプを受信することができる。トークン検証者コンポーネント145は、発行者コンピューティングシステム115によって維持される秘密鍵に対応する公開鍵を維持することができる。いくつかの実施形態では、トークン検証者コンポーネントは、鍵分散インフラストラクチャ135を介して、鍵マネージャコンピューティングシステム130から公開鍵を受信することができる。トークン検証者コンポーネント145は、公開鍵を使用してデジタル署名付きトークンのうちの少なくとも1つを検証することによって、ファーストパーティトークンを検証することができる。たとえば、トークン検証者コンポーネント145は、1つまたは複数の復号されたトークンとタイムスタンプのペアを生成するために、復号鍵コンポーネント150から受信したデジタル署名付きトークンの各々を復号するために公開鍵を使用することができ、復号されたトークンとタイムスタンプのペアの各々は、それぞれのデジタル署名付きトークンに対応する。次いで、トークン検証者コンポーネント145は、トークンとタイムスタンプのペアの各々を、複合トークンの一部として検証者コンピューティングシステム140によって受信されたファーストパーティトークンおよびタイムスタンプと比較することができる。トークンとタイムスタンプのペアのいずれかが、複合トークンの一部として受信されたファーストパーティトークンおよびタイムスタンプに一致する場合、ファーストパーティトークンは検証済みと見なされる。暗号化されたデジタル署名付きトークンの各々が、ファーストパーティトークンの真正性を検証するために発行者コンピューティングシステム115によって承認された検証者コンピューティングシステム140に対応するため、複合トークンは複数の暗号化されたデジタル署名付きトークンを含み得る。ファーストパーティトークンおよびタイムスタンプの真正性を検証するために、デジタル署名付きトークンをデジタル署名として使用することができる。いくつかの実施形態では、検証者コンピューティングシステム140は、ファーストパーティトークンの真正性の検証に応答してファーストパーティトークンを処理することができる。
【００３１】
図2は、鍵マネージャコンピューティングシステム130の例示的な実装形態を表すブロック図である。鍵マネージャコンピューティングシステム130は、鍵管理サービス205、トークン署名者バイナリ210、トークン検証者バイナリ215、検証者暗号鍵220、および検証者復号鍵225を含むことができる。いくつかの実装形態では、鍵管理サービス205は、鍵マネージャコンピューティングシステム130のオペレーティングシステムによって実行することができる。
【００３２】
いくつかの実装形態では、鍵管理サービス205は、発行者コンピューティングシステム115および検証者コンピューティングシステム140がトークン署名者データおよびトークン検証者データを要求するためにインターフェースできるオペレーティングシステムによって提供されるアプリケーションプログラミングインターフェースであり得る。いくつかの実装形態では、発行者コンピューティングシステム115は、鍵管理サービス205とインターフェースすることによって、各検証者コンピューティングシステム140への復号鍵を承認し得る。いくつかの実装形態では、鍵管理サービスは、トークン署名者バイナリ210を使用して、トークン署名者コンポーネント120の秘密鍵を発行者コンピューティングシステム115に提供し得る。そのような実装形態では、秘密鍵は、鍵分散インフラストラクチャ135を介して発行者コンピューティングシステム115に提供され得る。いくつかの実装形態では、鍵管理サービスは、トークン検証者バイナリ215を使用して、トークン検証者コンポーネント145の公開鍵を検証者コンピューティングシステム140に提供し得る。そのような実装形態では、秘密鍵は、鍵分散インフラストラクチャ135を介して発行者コンピューティングシステム115に提供され得る。鍵管理サービス205は、特定の検証者暗号鍵220および検証者復号鍵225を生成することによって、特定の検証者コンピューティングシステム140を承認することができる。たとえば、鍵管理サービス205は、発行者コンピューティングシステム115から特定の検証者コンピューティングシステム140のみを承認する要求を受信することができる。次いで、鍵管理サービス205は、検証者暗号鍵(たとえば、公開鍵)と検証者復号鍵(たとえば、秘密鍵)を生成することができ、公開鍵/秘密鍵ペアの各々は、発行者コンピューティングシステム115によって承認された検証者コンピューティングシステム140に対応する。鍵管理サービス205は、すべての公開(暗号)鍵を、鍵分散インフラストラクチャ135を介して、発行者コンピューティングシステム115の暗号鍵コンポーネント125に提供することができる。鍵管理サービス205は、秘密(復号)鍵の各々を、それぞれの承認検証者コンピューティングシステム140に分散することができる
。
【００３３】
図3は、暗号化された複合トークンを生成するための例示的なプロセス300の流れ図である。プロセス300は、ファーストパーティトークンを生成するステップ(302)と、ファーストパーティトークンを発行者に送信するステップ(304)と、秘密鍵を使用してファーストパーティトークンにデジタル署名するステップ(306)と、i番目の検証者暗号鍵を選択するステップ(308)と、i番目の検証者暗号鍵を使用して暗号化されたデジタル署名付きトークンを作成するステップ(310)と、iが検証者暗号鍵の数と等しいかどうかを判定するステップ(312)と、レジスタiを増分するステップ(314)と、暗号化されたデジタル署名付きトークンから複合トークンを生成するステップ(316)と、ファーストパーティトークンの生成を担当する当事者に複合トークンを提供するステップ(318)とを含む。
【００３４】
ステップ302のさらなる詳細では、当事者は、ファーストパーティトークンを生成する。いくつかの実装形態では、ファーストパーティトークンは、発行者のドメインに関連付けられ得る。いくつかの実装形態では、ファーストパーティトークンは、アプリケーション(たとえば、ウェブブラウザ)からのデータを含み得る。いくつかの実装形態では、ファーストパーティトークンを生成することは、プロセス300を実行するデバイスまたはシステムからのデバイス情報を含む。ファーストパーティトークンを生成することは、発行当事者からの暗号化されたデジタル署名付きトークンの要求を生成することを含み得る。発行当事者は、発行者とも呼ばれ得る。ファーストパーティトークンを生成することは、発行者からの複合トークンの要求を生成することを含み得る。いくつかの実装形態では、ファーストパーティトークンを生成することは、タイムスタンプを生成することを含み得る。そのような実装形態では、タイムスタンプは、高解像度(たとえば、ミリ秒またはマイクロ秒の解像度など)のタイムスタンプであり得る。
【００３５】
ステップ304のさらなる詳細では、当事者は、ファーストパーティトークンを発行者に送信する。ファーストパーティトークンを発行者に送信することは、当事者によって生成されたタイムスタンプを送信することを含むことができる。いくつかの実装形態では、ファーストパーティトークンを送信することは、暗号化されたデジタル署名付きトークンの要求を発行者に送信することを含むことができる。いくつかの実施形態では、ファーストパーティトークンを送信することは、発行者に複合トークンの要求を送信することを含むことができ、複合トークンは、少なくとも1つまたは複数の暗号化されたデジタル署名付きトークンを備える。ファーストパーティトークンを送信することは、発行者からのデジタル署名付きトークンの要求を送信することを含むことができる。
【００３６】
ステップ306のさらなる詳細では、発行者は、秘密鍵を使用して、ステップ304において送信されたファーストパーティトークンにデジタル署名する。いくつかの実施形態では、ステップ306は、ステップ302において当事者によって生成されたデジタル署名付きトークンを、発行者によって、受信することを含むことができる。いくつかの実施形態では、発行者によって、デジタル署名付きトークンを受信することは、ステップ302またはステップ304において生成されたタイムスタンプを受信することを含むことができる。いくつかの実施形態では、プロセスのステップ306は、ファーストパーティトークンおよびタイムスタンプを、トークンとタイムスタンプのペアに連結することができる。ステップ306において、発行者は、デジタル署名アルゴリズム(たとえば、DSA、RSAなど)を使用してファーストパーティトークンにデジタル署名することができる。いくつかの実施形態では、発行者は、トークンとタイムスタンプのペアに対してデジタル署名アルゴリズムを使用することによって、デジタル署名付きトークンを生成することができる。いくつかの実施形態では、ハッシュ関数(たとえば、SHA-1、SHA-256、MD5など)は、ハッシュトークンを生成するために、ファーストパーティトークンを入力として使用して実行することができる。いくつかの実施形態では、ハッシュ関数は、ハッシュされたトークンとタイムスタンプのペアを生成するために、トークンとタイムスタンプのペアを入力として使用して実行することができる。プロセス300の発行者は、ハッシュされたトークンに対してデジタル署名アルゴリズムを使用してデジタル署名付きトークンを生成することができる。いくつかの実施形態では、プロセス300の発行者は、ハッシュされたトークンとタイムスタンプのペアに対してデジタル署名アルゴリズムを使用して、署名付きトークンを生成することができる。
【００３７】
プロセス300は、i番目の検証者暗号鍵を選択するステップ(308)を含む。このプロセス段階は、たとえば、暗号鍵コンポーネント125によって維持されるすべての暗号鍵のデジタル署名付きトークンを暗号化するために、発行者コンピューティングシステム115によって実行することができる。いくつかの実施形態では、ステップ308は、検証者にそれぞれ対応する1つまたは複数の暗号鍵を受信することを含むことができ、ここで、nは暗号鍵の数に等しい。いくつかの実施形態では、暗号鍵は、鍵マネージャ、たとえば鍵マネージャコンピューティングシステム130から受信され得る。いくつかの実施形態では、暗号鍵は、それぞれの検証者に対応する公開鍵である。プロセス300によって作成されたループの第1の反復では、ステップ308は、第1の暗号鍵(i番目、i=1)を選択することができる。1つまたは複数の暗号鍵は任意の順序で選択できることを理解されたい。
【００３８】
ステップ310のさらなる詳細では、プロセス300は、i番目の検証者暗号鍵を使用して、暗号化されたデジタル署名付きトークンを作成することができる。いくつかの実施形態では、プロセス300は非対称暗号化アルゴリズムを使用し、暗号鍵は公開鍵であり、秘密鍵は検証者に属する。プロセス300は、ステップ306において生成されたデジタル署名付きトークンを、ステップ308において選択されたi番目の暗号鍵で暗号化することによって、暗号化されたデジタル署名付きトークンを作成することができる。いくつかの実施形態では、暗号鍵は、公開鍵/秘密鍵のペアの秘密鍵であり得、公開鍵は、検証者によって維持される。いくつかの実施形態では、ステップ310は、ステップ306において生成されたデジタル署名付きトークンを暗号化せず、単にデジタル署名付きトークンを返す。
【００３９】
プロセス300は、発行者によって維持されるすべての暗号鍵に対応する暗号化されたデジタル署名付きトークンを作成することを含む。たとえば、発行者コンピューティングシステム115の暗号鍵コンポーネント125は、現在作成されている暗号化されたデジタル署名付きトークンがn番目の暗号化されたデジタル署名付きトークンであるかどうかを判定することができ、nは、暗号鍵コンポーネント125によって維持される暗号鍵の数に対応する。n番目の暗号化されたデジタル署名付きトークンではない場合、暗号鍵コンポーネント125は、カウンタi 312を増分し、暗号鍵コンポーネント125によって維持されている暗号鍵から次の暗号鍵を選択することができる。このようにして、発行者コンピューティングシステム115は、n個の暗号化されたデジタル署名付きトークンを作成することができ、n個の暗号化されたデジタル署名付きトークンの各々は、検証者、たとえば、検証者コンピューティングシステム140に対応する。
【００４０】
ステップ316のさらなる詳細では、プロセス300は、暗号化されたデジタル署名付きトークンから複合トークンを生成することができる。複合トークンは、暗号化されたデジタル署名付きトークンの各々を単一のデータ構造に連結することによって生成することができる。この連結の例が図5に示されている。この例示的な実施形態では、506a〜nは、ステップ310において作成された暗号化されたデジタル署名付きトークンの各々を表し、n個のデジタル署名付きトークンの各々は、たとえば、検証者コンピューティングシステム140のうちの1つなどの検証者に対応する。いくつかの実施形態では、複合トークンは、暗号化されたデジタル署名付きトークンの各々と元のファーストパーティトークンおよびタイムスタンプを単一のデータ構造に連結することによって生成することができる。この連結の結果の実施形態が図5に示されており、502は元のファーストパーティトークンであり、504は元のファーストパーティトークンに対応するタイムスタンプであり、506a〜nはn個の暗号化されたデジタル署名付きトークンの各々である。図5はファーストパーティトークン、タイムスタンプ、および暗号化されたデジタル署名付きトークンを特定の順序で示しているが、いずれのコンポーネントも複合トークンから除外される場合があり、これらの要素のうちのいずれかが複合トークンに任意の順序で出現する場合があることを理解されたい。
【００４１】
ステップ318をさらに詳細に説明すると、プロセス300は、ファーストパーティトークンの生成を担当する当事者に複合トークンを提供する。プロセス300は、ステップ316において生成された複合トークンを、ステップ302においてファーストパーティトークンを生成した当事者に提供することができる。たとえば、発行者コンピューティングシステム115は、暗号鍵コンポーネント125によって生成された複合トークンを、ネットワーク110を介してクライアントコンピューティングシステム105に送信することができる。いくつかの実施形態では、発行者は、ウェブインターフェースを通じてファーストパーティトークンの生成を担当する当事者に複合トークンを提供することができる。たとえば、発行者コンピューティングシステム115は、生成された複合トークンを、ウェブインターフェースを介して送信することができ、クライアントコンピューティングシステム105は、ブラウザセッションの一部として複合トークンを受信することができる。
【００４２】
図4は、例示的な実装形態による、複合トークンの内容の検証のための例示的なプロセス400の流れ図である。プロセス400は、複合トークンを受信するステップ(402)と、複合トークン内の暗号化されたデジタル署名付きトークンの各々を列挙するステップ(404)と、i番目の暗号化されたデジタル署名付きトークンを選択するステップ(408)と、デジタル署名付きトークンを生成するために、暗号化されたデジタル署名付きトークンを復号するステップ(410)と、デジタル署名付きトークンの有効性を検証して、ファーストパーティトークンを生成するステップ(412)と、暗号化されたトークンが検証者に対応するかどうかを判定するステップ(414)と、iが複合トークンn内の暗号化されたデジタル署名付きトークンの数と等しいかどうかを判定するステップ(416)と、レジスタiを増分するステップ(418)と、複合トークンを無視するステップ(420)と、有効なファーストパーティトークンを処理するステップ(422)とを含む。
【００４３】
ステップ402のさらなる詳細では、プロセス400は、1つまたは複数の暗号化されたデジタル署名付きトークンを備える複合トークンを受信することができる。たとえば、検証者コンピューティングシステム140のうちの1つは、コンテンツアイテムネットワーク155から複合トークンを受信することができる。複合トークンは、1つまたは複数の暗号化されたデジタル署名付きトークンを含むことができる。複合トークンはまた、ファーストパーティトークンおよびタイムスタンプを含むことができる。複合トークンの例示的な概略図が図5に示されている。プロセス400は、ファーストパーティトークンの真正性を検証する必要がある当事者によって実行することができる。いくつかの実施形態では、複合トークンは、単一のデータ構造として受信され得る。いくつかの他の実施形態では、複合トークンは、一連のデータ構造として受信され得る。たとえば、プロセス400を実行する検証者は、暗号化されたデジタル署名付きトークンを一度に1つ受信し、複合トークンを作成するためにそれらを使用し得る。いくつかの実施形態では、ファーストパーティトークンは、ファーストパーティトークンの作成に対応するタイムスタンプを含み得る。そのような実施形態では、ファーストパーティトークンおよびタイムスタンプを複合トークンに含めることができる。
【００４４】
ステップ404のさらなる詳細では、プロセス400は、ステップ402において受信された複合トークン内の暗号化されたデジタル署名付きトークンの各々を列挙する。いくつかの実施形態では、暗号化されたデジタル署名付きトークンの各々を列挙することは、各暗号化されたデジタル署名付きトークンを抽出することを含む。そのような実施形態では、ファーストパーティトークンおよびタイムスタンプも複合トークンから抽出され得る。そのような実施形態では、プロセス400を実行する検証者は、複合トークン内のタイムスタンプをあらかじめ定められた値と比較することができる。プロセス400を実行する検証者は、複合トークンが最近のものであるかどうかをチェックするためにタイムスタンプを比較し、潜在的なリプレイ攻撃から防御することができる。いくつかの実施形態では、複合トークンは、プロセス400を実行する検証者に知られているあらかじめ定められたデータ構造であり得る。そのような実施形態では、検証者は、データ構造内の知られているオフセットに基づいて、暗号化されたデジタル署名付きトークンの各々を抽出して列挙し得る。いくつかの実施形態では、暗号化されたデジタル署名付きトークンの各々を列挙することは、暗号化されたデジタル署名付きトークンの各々に対応する数値を割り当てることを含み得る。たとえば、図5を参照すると、暗号化されたデジタル署名付きトークン506a〜nの各々に、複合トークン内のその順序に対応する数値を割り当てることができる。さらにこの例では、506aに1の値を割り当て、506bに2の値を割り当て、506cに3の値を割り当てることができ、以下同様である。いくつかの実施形態では、ステップ404を実行する検証者は、ステップ402において受信された複合トークンに含まれる暗号化されたデジタル署名付きトークンの数nを判定することができる。
【００４５】
プロセス400は、i番目の暗号化されたデジタル署名付きトークンを選択するステップ(408)を含む。このプロセス段階は、複合トークンを備える暗号化されたデジタル署名付きトークンの各々を復号するために、たとえば、検証者コンピューティングシステム115によって実行することができる。いくつかの実施形態では、ステップ308は、プロセス400を実行する検証者に対応する受信された復号鍵を含むことができる。いくつかの実施形態では、復号鍵は、鍵マネージャ、たとえば、鍵マネージャコンピューティングシステム130から受信され得る。いくつかの実施形態では、復号鍵は、プロセス400を実行する検証者に対応する秘密鍵である。そのような実施形態では、対応する公開鍵は、複合トークンの生成を担当する発行者によって維持される。プロセス400によって作成されたループの第1の反復では、ステップ408は、第1の暗号化されたデジタル署名付きトークン(i番目、i=1)を選択することができる。1つまたは複数の暗号鍵は任意の順序で選択することができることを理解されたい。
【００４６】
ステップ410のさらなる詳細では、プロセス400は、デジタル署名付きトークンを生成するために、選択された暗号化されたデジタル署名付きトークンを復号する。検証者は、ステップ408において選択された暗号化されたデジタル署名付きトークンを復号し、デジタル署名付きトークンを生成することができる。たとえば、検証者コンピューティングシステム140のうちの1つは、復号鍵コンポーネント150を使用してプロセス400のステップ410を実行することができる。例をさらに進めるために、プロセス400を実行する検証者コンピューティングシステム140の復号鍵コンポーネント150は、鍵分散インフラストラクチャ135を介して鍵マネージャコンピューティングシステム130から復号鍵を受信することができる。いくつかの実施形態では、プロセス400のステップ410は、鍵マネージャから復号鍵を受信することを含むことができる。いくつかの他の実施形態では、復号鍵は、プロセス400の実行前にプロセス400を実行する検証者によって維持または受信され得る。いくつかの実施形態では、暗号化されたデジタル署名付きトークンの復号は、復号アルゴリズム(たとえば、楕円曲線、RSAなど)を使用して実行される。
【００４７】
ステップ412のさらなる詳細では、デジタル署名付きトークンは、ファーストパーティトークンを生成するために検証される。いくつかの実施形態では、デジタル署名付きトークンは、ファーストパーティトークンのハッシュを生成するために検証される。プロセス400を実行する検証者は、ステップ410において生成されたデジタル署名付きトークンのコンテンツを復号するために、デジタル署名アルゴリズム(たとえば、楕円曲線、DSA、RSAなど)を使用することができ、デジタル署名付きトークンの復号されたコンテンツは、プロセス400のステップ402において、複合トークンにおいて受信されたファーストパーティトークンの有効性を検証するために使用することができるファーストパーティトークンおよびタイムスタンプである。いくつかの実施形態では、デジタル署名付きトークンの復号されたコンテンツは、ファーストパーティトークンおよびタイムスタンプのハッシュである。いくつかの実施形態では、デジタル署名アルゴリズムは、デジタル署名付きトークンのコンテンツを復号するために、発行者の公開鍵を使用する。たとえば、鍵マネージャコンピューティングシステム130は、秘密鍵を発行者コンピューティングシステム115に分散し、対応する公開鍵を検証者コンピューティングシステム140に分散することができる。発行者コンピューティングシステム115は、クライアントコンピューティングシステム105に提供される複合鍵を生成するために、プロセス300を使用することができる。クライアントコンピューティングシステム105は、複合トークンをコンテンツアイテムネットワーク155に提供することができ、コンテンツアイテムネットワーク155は、複合トークンを1つまたは複数の検証者コンピューティングシステム140に提供することができる。検証者コンピューティングシステムは、複合トークンに含まれているファーストパーティトークンの処理を試みるために、プロセス400を使用することができる。この例では、検証者コンピューティングシステム140は、ファーストパーティトークンおよびタイムスタンプを生成するために、またはいくつかの実施形態では、ファーストパーティトークンとタイムスタンプのハッシュを生成するために、ステップ412においてデジタル署名付きトークンを復号するために、発行者コン
ピューティングシステム115によって維持されている秘密鍵に対応する公開鍵を使用することができる。
【００４８】
ステップ414のさらなる詳細では、プロセス400は、デジタル署名付きトークンの復号されたコンテンツがプロセス400を実行する検証者に対応するかどうかを判定する。たとえば、複合トークンは、複数の暗号化されたデジタル署名付きトークンを含むことができる。暗号化された各デジタル署名付きトークンは、承認された検証者のみによって復号することができる。この例では、承認は復号鍵の分散によって制御される。各復号鍵は、複合トークンに含まれる暗号化されたデジタル署名付きトークンのうちの1つまでのコンテンツのみを正常に復号することができる。検証者は、デジタル署名(すなわち、ステップ410において生成されたデジタル署名付きトークン)がステップ402において受信された複合トークンに含まれるファーストパーティトークンおよびタイムスタンプと一致するかどうかをチェックすることによって、暗号化されたデジタル署名付きトークンがプロセス400を実行する検証者に対応するかどうかを判定することができる。検証者は、ステップ412において生成されたファーストパーティトークンおよびタイムスタンプが、複合トークンの一部として受信されたファーストパーティトークンおよびタイムスタンプと一致するかどうかをチェックすることができる。いくつかの実施形態では、ステップ412は、ファーストパーティトークンおよびタイムスタンプのハッシュを返すことができる。そのような実施形態では、ステップ414は、暗号ハッシュ関数(たとえば、SHA-1、SHA-256、MD5など)を使用して複合トークンの一部として受信されたファーストパーティトークンおよびタイムスタンプのハッシュを計算し、ステップ412において、デジタル署名付きトークンの復号から返された値と比較する。2つの値が一致する場合、暗号化されたデジタル署名付きトークンは検証者に対応し、ステップ422において、ファーストパーティトークンを検証者によって処理することができる。2つの値が一致しない場合、プロセス400を実行する検証者は、現在の暗号化されたデジタル署名付きトークンがn番目の暗号化されたデジタル署名付きトークンであるかどうかを判定することができる(416)。デジタル署名付きトークンではない場合、プロセス400を実行する検証者は、カウンタi 418を増分し、次の暗号化されたデジタル署名
付きトークンを選択することができる(408)。現在の暗号化されたデジタル署名付きトークンがn番目の暗号化されたデジタル署名付きトークンである場合、複合トークン内の暗号化されたデジタル署名付きトークンのいずれも、プロセス400を実行する検証者に対応せず、複合トークンは無視される(420)。
【００４９】
ステップ422のさらなる詳細では、プロセス400を実行する検証者は、検証されたファーストパーティトークンを処理することができる。いくつかの実施形態では、検証プロセス400は、外部のサーバまたはデータベースにアクセスすることなくリアルタイムで実行することができる。いくつかの実施形態では、ファーストパーティトークンを処理することは、トークンのデータコンテンツを消費することを含む。たとえば、トークンはブラウザ情報を含み得る。ファーストパーティトークンの真正性を検証することによって、検証者は、ファーストパーティトークンに含まれるブラウザ情報を、ファーストパーティトークンの生成を担当する当事者、たとえばクライアントコンピューティングシステム105に関連付けることができる。検証プロセス400は、非常に低遅延のトークン認証を必要とする可能性のある検証者に、あらかじめ定められた時間、たとえば100ミリ秒の下でファーストパーティトークンの真正性を検証する方法を可能にする。
【００５０】
図6は、いくつかの実装形態による、本明細書で論じられるコンピュータシステムのうちのいずれかを実装するために採用され得る例示的なコンピュータシステム600(クライアントコンピューティングシステム105、発行者コンピューティングシステム115ならびにトークン署名者コンポーネント120および暗号鍵コンポーネント125などの、そのコンポーネント、検証者コンピューティングシステム140ならびにトークン検証者コンポーネント145および復号鍵コンポーネント150などの、そのコンポーネント、ならびに鍵マネージャコンピューティングシステムおよびそのコンポーネントを含む)の一般的なアーキテクチャを示す図である。ネットワーク110、コンテンツアイテムネットワーク155、または表示するための鍵分散インフラストラクチャ135を介して情報を提供するために、コンピュータシステム600を使用することができる。図6のコンピュータシステム600は、メモリ625に通信可能に結合された1つまたは複数のプロセッサ620、1つまたは複数の通信インターフェース605、ならびに1つまたは複数の出力デバイス610(たとえば、1つまたは複数のディスプレイユニット)および1つまたは複数の入力デバイス615を備える。プロセッサ620は、クライアントコンピューティングシステム115に含めることができる。プロセッサ620は、発行者コンピューティングシステム115、またはトークン署名者コンポーネント120および暗号鍵コンポーネント125などの発行者コンピューティングシステム115の他のコンポーネントに含めることができる。プロセッサ620は、検証者コンピューティングシステム140、またはトークン検証者コンポーネント145および復号鍵コンポーネント150などの検証者コンピューティングシステム140の他のコンポーネントに含めることができる。プロセッサ620は、鍵マネージャコンピューティングシステム130、または鍵管理サービス205などの鍵マネージャコンピューティングシステム130の他のコンポーネントに含めることができる。
【００５１】
図6のコンピュータシステム600において、メモリ625は、任意のコンピュータ可読ストレージ媒体を備え得、それぞれのシステムについて本明細書に記載される様々な機能を実装するためのプロセッサ実行可能命令などのコンピュータ命令、ならびにそれによって生成される、または通信インターフェースまたは入力デバイス(存在する場合)を介して受信されるそれに関連する任意のデータを記憶し得る。図2の鍵マネージャコンピューティングシステム130を参照すると、鍵マネージャコンピューティングシステム130は、とりわけ、検証者暗号鍵220および検証者復号鍵225に関連する情報を記憶するためのメモリ625を含むことができる。図6に示されるプロセッサ620は、メモリ625に記憶された命令を実行するために使用され、その際、命令の実行に従って処理および/または生成された様々な情報をメモリから読み取りまたはメモリに書き込むこともできる。
【００５２】
図6に示されるコンピュータシステム600のプロセッサ620はまた、命令の実行に従って様々な情報を送信または受信するために、通信インターフェース605に通信可能に結合されてもよく、通信インターフェース605を制御してもよい。たとえば、通信インターフェース605は、ワイヤードまたはワイヤレスネットワーク、バス、または他の通信手段に結合され得、したがって、コンピュータシステム600が他のデバイス(たとえば、他のコンピュータシステム)に情報を送信すること、またはそこから情報を受信することを可能にする。図6のシステムには明示的に示されていないが、1つまたは複数の通信インターフェースが、システム600のコンポーネント間の情報フローを容易にする。いくつかの実装形態では、通信インターフェースは、コンピュータシステム600の少なくともいくつかの態様へのアクセスポータルとしてウェブサイトを提供するように(たとえば、様々なハードウェアコンポーネントまたはソフトウェアコンポーネントを介して)構成され得る。通信インターフェース605の例には、ユーザがデータ処理システム600と通信することができるユーザインターフェース(たとえば、ウェブページ)が含まれる。
【００５３】
図6に示されるコンピュータシステム600の出力デバイス610は、たとえば、命令の実行に関連して様々な情報を閲覧または他の方法で知覚することを可能にするために提供され得る。入力デバイス615は、たとえば、ユーザが手動調整を行い、選択を行い、データを入力し、または命令の実行中にプロセッサと様々な方法のいずれかで対話することを可能にするために提供され得る。本明細書で論じられる様々なシステムに使用され得る一般的なコンピュータシステムアーキテクチャに関する追加の情報は、本明細書でさらに提供される。
【００５４】
本明細書で説明する主題および動作の実装形態は、デジタル電子回路、または本明細書に開示された構造およびそれらの構造的等価物を含む有形の媒体、ファームウェア、またはハードウェア上に具体化されたコンピュータソフトウェア、あるいはそれらの1つまたは複数の組合せにおいて実装することができる。本明細書で説明する主題の実装形態は、データ処理装置による実行のために、またはデータ処理装置の動作を制御するためにコンピュータストレージ媒体に符号化される、1つまたは複数のコンピュータプログラム、すなわちコンピュータプログラム命令の1つまたは複数のコンポーネントとして実装することができる。プログラム命令は、人工的に生成された伝播信号、たとえば、データ処理装置による実行のために適切な受信装置への送信のための情報を符号化するために生成される機械生成電気信号、光学信号、または電磁信号に符号化することができる。コンピュータストレージ媒体は、コンピュータ可読ストレージデバイス、コンピュータ可読ストレージ基板、ランダムまたはシリアルアクセスメモリアレイまたはデバイス、あるいはそれらの1つまたは複数の組合せであり得るか、またはそれらに含まれ得る。さらに、コンピュータストレージ媒体は伝播信号ではないが、コンピュータストレージ媒体は、人工的に生成された伝播信号において符号化されたコンピュータプログラム命令のソースまたは宛先を含むことができる。コンピュータストレージ媒体はまた、1つまたは複数の別個の物理的コンポーネントまたは媒体(たとえば、複数のCD、ディスク、または他のストレージデバイス)であり得るか、あるいはそれらに含まれ得る。
【００５５】
本明細書で開示される機能は、スマートテレビモジュール(または、接続されたテレビモジュール、ハイブリッドテレビモジュールなど)上で実装することができ、インターネット接続をより伝統的なテレビ番組ソース(たとえば、ケーブル、衛星、無線、または他の信号を介して受信される)と統合するように構成された処理モジュールを含み得る。スマートテレビモジュールは、物理的にテレビに組み込まれてもよく、セットトップボックス、ブルーレイまたは他のデジタルメディアプレーヤ、ゲーム機、ホテルのテレビシステム、および他のコンパニオンデバイスなどの別個のデバイスを含んでもよい。スマートテレビモジュールは、視聴者が、ウェブ、ローカルケーブルテレビチャンネル、衛星テレビチャンネル、またはローカルハードドライブに記憶されたビデオ、映画、写真、および他のコンテンツを検索および発見できるように構成され得る。セットトップボックス(STB)またはセットトップユニット(STU)は、チューナを含み、テレビセットおよび外部信号源に接続し得、信号をコンテンツに変換し、次いでそのコンテンツがテレビ画面または他のディスプレイデバイスに表示される情報機器デバイスを含み得る。スマートテレビモジュールは、ウェブブラウザおよび複数のストリーミングメディアサービス、接続されたケーブルまたは衛星メディアソース、他のウェブ「チャンネル」などの、複数の異なるアプリケーションのアイコンを含むホーム画面またはトップレベル画面を提供するように構成され得る。スマートテレビモジュールは、ユーザに電子番組ガイドを提供するようにさらに構成され得る。スマートテレビモジュールへのコンパニオンアプリケーションは、利用可能なプログラムに関する追加情報をユーザに提供し、ユーザがスマートテレビモジュールを制御できるようにするなどのために、モバイルコンピューティングデバイス上で動作可能である。代替の実装形態では、この機能は、ラップトップコンピュータまたは他のパーソナルコンピュータ、スマートフォン、他のモバイル電話、ハンドヘルドコンピュータ、タブレットPC、または他のコンピューティングデバイス上で実装され得る。
【００５６】
本明細書に記載されている動作は、1つまたは複数のコンピュータ可読ストレージデバイスに記憶された、または他のソースから受信されたデータに対してデータ処理装置によって実行される動作として実装することができる。
【００５７】
「データ処理装置」、「データ処理システム」、「ユーザデバイス」または「コンピューティングデバイス」という用語は、一例として、前述のプログラム可能なプロセッサ、コンピュータ、チップ上のシステム、または複数のプロセッサ、あるいはそれらの組合せを含む、データを処理するためのあらゆる種類の装置、デバイス、および機械を包含する。装置は、たとえば、FPGA(フィールドプログラマブルゲートアレイ)またはASIC(特定用途向け集積回路)などの専用論理回路を含むことができる。装置はまた、ハードウェアに加えて、該当のコンピュータプログラムの実行環境を作成するコード、たとえば、プロセッサファームウェア、プロトコルスタック、データベース管理システム、オペレーティングシステム、クロスプラットフォームランタイム環境、仮想マシン、あるいはそれらの1つまたは複数の組合せを構成するコードを含むことができる。装置および実行環境は、ウェブサービス、分散コンピューティングおよびグリッドコンピューティングインフラストラクチャなどの、様々な異なるコンピューティングモデルインフラストラクチャを実現することができる。コンテンツ要求コンポーネント、コンテンツ選択コンポーネント、および属性コンポーネントは、1つまたは複数のデータ処理装置、コンピューティングデバイス、またはプロセッサを含むか、共有することができる。
【００５８】
コンピュータプログラム(プログラム、ソフトウェア、ソフトウェアアプリケーション、スクリプト、またはコードとしても知られる)は、コンパイラ型言語またはインタープリタ型言語、宣言型言語または手続き型言語を含む任意の形態のプログラミング言語で記述することができ、スタンドアロンプログラムとして、あるいはモジュール、コンポーネント、サブルーチン、オブジェクト、またはコンピューティング環境における使用に適した他のユニットとしてなど、任意の形態で展開することができる。コンピュータプログラムは、必ずしもそうである必要はないが、ファイルシステム内のファイルに対応し得る。プログラムは、他のプログラムまたはデータを保持するファイルの一部(たとえば、マークアップ言語ドキュメントに記憶された1つまたは複数のスクリプト)、該当のプログラム専用の単一ファイル、または複数の調整ファイル(たとえば、1つまたは複数のモジュール、サブプログラム、またはコードの一部を記憶するファイル)に記憶することができる。コンピュータプログラムは、1つのコンピュータ、または1つのサイトに配置されているか、複数のサイトに分散され、通信ネットワークによって相互接続されている複数のコンピュータ上で実行されるように展開することができる。
【００５９】
本明細書で説明するプロセスおよび論理フローは、入力データを動作して出力を生成することによってアクションを実行するために1つまたは複数のコンピュータプログラムを実行する1つまたは複数のプログラム可能なプロセッサによって実行することができる。プロセスおよび論理フローはまた、FPGA(フィールドプログラマブルゲートアレイ)またはASIC(特定用途向け集積回路)などの専用論理回路によって実行することもでき、それらとして装置を実装することもできる。
【００６０】
コンピュータプログラムの実行に適したプロセッサは、例として、汎用および専用の両方のマイクロプロセッサ、ならびに任意の種類のデジタルコンピュータの任意の1つまたは複数のプロセッサを含む。一般に、プロセッサは、読取り専用メモリまたはランダムアクセスメモリ、あるいはその両方から命令とデータを受信する。コンピュータの必須要素は、命令に従ってアクションを実行するためのプロセッサと、命令とデータを記憶するための1つまたは複数のメモリデバイスである。一般に、コンピュータはまた、たとえば、磁気、光磁気ディスク、または光ディスクなどの、データを記憶するための1つまたは複数の大容量ストレージデバイスを含むか、またはそれらからデータを受信する、またはそれらにデータを転送する、あるいはその両方のために動作可能に結合される。しかしながら、コンピュータはそのようなデバイスを有する必要はない。さらに、コンピュータは別のデバイス、たとえばモバイル電話、携帯情報端末(PDA)、モバイルオーディオまたはビデオプレーヤ、ゲーム機、全地球測位システム(GPS)受信機、またはポータブルストレージデバイス(たとえば、ユニバーサルシリアルバス(USB)フラッシュドライブ)に組み込むことができる。コンピュータプログラム命令およびデータを記憶するために適したデバイスは、たとえば、EPROM、EEPROM、およびフラッシュメモリデバイスなどの半導体メモリデバイス、内蔵ハードディスクまたはリムーバブルディスクなどの磁気ディスク、光磁気ディスク、ならびにCD-ROMおよびDVD-ROMディスクを含む、あらゆる形態の不揮発性メモリ、媒体、およびメモリデバイスを含む。プロセッサとメモリは、専用論理回路によって補完または組み込むことができる。
【００６１】
ユーザとの対話を提供するために、本明細書で説明される主題の実装形態は、ユーザに情報を表示するためのディスプレイデバイス、たとえば、CRT(陰極線管)、プラズマ、またはLCD(液晶ディスプレイ)モニタ、ならびにユーザがコンピュータに入力を提供できるキーボード、およびマウスまたはトラックボールなどのポインティングデバイスを有するコンピュータ上で実装することができる。ユーザとの対話を提供するために他の種類のデバイスを使用することができ、たとえば、ユーザに提供されるフィードバックは、たとえば視覚的フィードバック、聴覚的フィードバック、または触覚的フィードバックなどのあらゆる形態の感覚的フィードバックを含むことができ、ユーザからの入力は、音響、音声、または触覚入力を含む任意の形態で受け取ることができる。さらに、コンピュータは、ユーザによって使用されるデバイスとの間でドキュメントを送受信することによって、たとえば、ウェブブラウザから受信した要求に応答して、ユーザのクライアントデバイスのウェブブラウザにウェブページを送信することによってユーザと対話することができる。
【００６２】
本明細書で説明される主題の実装形態は、たとえばデータサーバとしてのバックエンドコンポーネントを含む、またはアプリケーションサーバなどのミドルウェアコンポーネントを含む、あるいはフロントエンドコンポーネント、たとえば、ユーザが本明細書で説明される主題の実装形態と対話することができるグラフィカルユーザインターフェースまたはウェブブラウザを備えたクライアントコンピュータを含むコンピューティングシステム、あるいは1つまたは複数のそのようなバックエンド、ミドルウェア、またはフロントエンドコンポーネントの任意の組合せにおいて実装することができる。システムのコンポーネントは、任意の形態または媒体のデジタルデータ通信、たとえば通信ネットワークによって相互接続することができる。通信ネットワークの例は、ローカルエリアネットワーク(「LAN」)およびワイドエリアネットワーク(「WAN」)、インターネットワーク(たとえば、インターネット)、およびピアツーピアネットワーク(たとえば、アドホックピアツーピアネットワーク)を含む。
【００６３】
発行者コンピューティングシステム115、検証者コンピューティングシステム140、クライアントコンピューティングシステム105、および鍵マネージャコンピューティングシステム130などのコンピューティングシステムは、クライアントおよびサーバを含むことができる。たとえば、発行者コンピューティングシステム115、検証者コンピューティングシステム140、クライアントコンピューティングシステム105、および鍵マネージャコンピューティングシステム130は、1つまたは複数のデータセンタまたはサーバファームにおいて1つまたは複数のサーバを含むことができる。クライアントおよびサーバは、通常、互いにリモートにあり、通常、通信ネットワークを通じて対話する。クライアントとサーバの関係は、それぞれのコンピュータ上で実行され、互いにクライアント-サーバ関係を有するコンピュータプログラムによって生じる。いくつかの実装形態では、サーバは、データ(たとえば、HTMLページ)をクライアントデバイスに送信する(たとえば、データを表示し、クライアントデバイスと対話するユーザからユーザ入力を受信する目的で)。クライアントデバイスにおいて生成されたデータ(たとえば、ユーザ対話の結果)は、サーバにおいてクライアントデバイスから受信することができる。
【００６４】
本明細書は多くの具体的な実装形態の詳細を含むが、これらは発明の範囲または請求され得るものの範囲の制限として解釈されるべきではなく、本明細書で説明されているシステムおよび方法の特定の実装形態に固有の機能の説明として解釈されるべきである。本明細書で個別の実装形態のコンテキストにおいて説明されている特定の機能は、単一の実装形態に組み合わせて実装することもできる。逆に、単一の実装形態のコンテキストにおいて説明されている様々な機能は、複数の実装形態において個別に実装することも、任意の適切なサブコンビネーションにおいて実装することもできる。さらに、機能は特定の組合せにおいて動作するものとして上記で説明され、最初にそのように主張されている場合でも、主張された組合せからの1つまたは複数の機能は、場合によっては組合せから削除され、主張された組合せはサブコンビネーションまたはサブコンビネーションのバリエーションを対象とする場合がある。
【００６５】
同様に、動作は図面において特定の順序で示されているが、望ましい結果を達成するために、そのような動作が特定の順序で、または連続した順序で実行されること、あるいはすべての図示された動作が実行されることを必要とするものとして理解されるべきではない。場合によっては、特許請求の範囲に記載されているアクションを異なる順序で実行しても、依然として望ましい結果を得ることができる。さらに、添付の図面において示されているプロセスは、望ましい結果を達成するために、示されている特定の順序または連続した順序を必ずしも必要としない。
【００６６】
特定の状況では、マルチタスクと並列処理が有利な場合がある。さらに、上述の実装形態における様々なシステムコンポーネントの分離は、すべての実装形態においてそのような分離が必要とするものと理解されるべきではなく、説明されたプログラムコンポーネントおよびシステムは、一般に単一のソフトウェア製品に統合されるか、または複数のソフトウェア製品にパッケージ化できることを理解されたい。たとえば、トークン署名者コンポーネント120および暗号鍵コンポーネント125は、発行者コンピューティングシステム115の一部、単一のモジュール、1つまたは複数の処理モジュールを有する論理デバイス、1つまたは複数のサーバ、または検索エンジンの一部であり得る。
【００６７】
ここで、いくつかの例示的な実装形態および実装形態について説明したが、前述は限定ではなく例示であり、例として提示されたことが明らかである。特に、本明細書に提示される例の多くは、方法の行為またはシステム要素の特定の組合せを伴うが、それらの行為およびそれらの要素は、同じ目的を達成するために他の方法で組み合わせることができる。1つの実装形態に関連してのみ説明されている行為、要素、および機能は、他の実装形態または実装形態における同様の役割から除外されることが意図されるものではない。
【００６８】
本明細書で使用される語法および用語は、説明を目的とするものであり、限定するものと見なされるべきではない。本明細書における「含む(including)」、「備える(comprising)」、「有する(having)」、「含む(containing)」、「含む(involving)」、「によって特徴付けられる(characterized by)」、「の点で特徴付けられる(characterized in that)」およびその変形は、その後列挙される項目、その均等物、および追加の項目、ならびにその後独占的に列挙される項目からなる代替実装形態を包含することを意味する。一実装形態では、本明細書で説明されるシステムおよび方法は、説明される要素、行為、またはコンポーネントの1つ、2つ以上の各組合せ、またはすべてからなる。
【００６９】
本明細書において単数形で言及されているシステムおよび方法の実装形態または要素または行為への参照は、これらの複数の要素を含む実装形態も含むことができ、本明細書における任意の実装形態または要素または行為への複数形の参照はまた、単一の要素のみを含む実装形態を包含し得る。単数形または複数形での参照は、現在開示されているシステムまたは方法、それらのコンポーネント、行為、または要素を単一または複数の構成に限定することを意図していない。情報、行為、または要素に基づく行為または要素への言及は、行為または要素が少なくとも部分的に、情報、行為、または要素に基づく実装形態を含み得る。
【００７０】
本明細書で開示される実装形態は他の実装形態と組み合わせることができ、「実装形態(an implementation)」、「いくつかの実装形態(some implementation)」、「代替実装形態(an alternate implementation)」、「様々な実装形態(various implementation)」、「一実装形態(one implementation)」などへの言及は必ずしも相互に排他的ではなく、実装形態に関連して説明された特定の機能、構造、または特性が少なくとも1つの実装形態に含まれ得ることを示すことが意図される。本明細書で使用されるそのような用語は、必ずしもすべてが同じ実装形態を指すとは限らない。本明細書に開示される態様および実装形態と一致する任意の方法で、いずれの実装形態も、包括的または排他的に、任意の他の実装形態と組み合わせることができる。
【００７１】
「または(or)」への言及は、「または(or)」を使用して説明される任意の用語が、説明される用語の単一、複数、およびすべてのいずれかを示し得るように、包括的であると解釈され得る。
【００７２】
図面、詳細な説明、または任意の請求項における技術的特徴の後に参照記号が付いている場合、参照記号は、図面、詳細な説明、および請求項の明瞭性を高めることのみを目的として含まれている。したがって、参照記号もその欠如も、請求項の要素の範囲に限定的な影響を与えることはない。
【００７３】
本明細書で説明されるシステムおよび方法は、その特性から逸脱することなしに、他の特定の形態で実施され得る。本明細書で提供される例は、情報リソースのコンテンツの表示を制御することに関するが、本明細書で説明されるシステムおよび方法は、他の環境に適用されることを含むことができる。前述の実装形態は、説明されたシステムおよび方法を限定するものではなく、例示である。したがって、本明細書で説明されるシステムおよび方法の範囲は、前述の説明ではなく、添付の特許請求の範囲によって示され、特許請求の範囲の意味および同等の範囲内に入る変更がその中に含まれる。
【符号の説明】
【００７４】
100  環境
105  クライアントコンピューティングシステム
110  ネットワーク
115  発行者コンピューティングシステム
120  トークン署名者コンポーネント
125  暗号鍵コンポーネント
130  鍵マネージャ
130  鍵マネージャコンピューティングシステム
135  鍵分散インフラストラクチャ
135  鍵分散インフラストラクチャネットワーク
140  検証者コンピューティングシステム
145  トークン検証者コンポーネント
150  復号鍵コンポーネント
155  コンテンツアイテムネットワーク
205  鍵管理サービス
210  トークン署名者バイナリ
215  トークン検証者バイナリ
220  検証者暗号鍵
225  検証者復号鍵
300  プロセス
400  プロセス
600  コンピュータシステム
600  データ処理システム
605  通信インターフェース
610  出力デバイス
615  入力デバイス
620  プロセッサ
625  メモリ
【図１】
2021516022.tif 000003
【図２】
2021516022.tif 000004
【図３】
2021516022.tif 000005
【図４】
2021516022.tif 000006
【図５】
2021516022.tif 000007
【図６】
2021516022.tif 000008
【国際調査報告】
2021516022.tif 000009
2021516022.tif 000010