JP2022543947A - ブラウザクッキーを保護する - Google Patents

ブラウザクッキーを保護する Download PDF

Info

Publication number
JP2022543947A
JP2022543947A JP2021545903A JP2021545903A JP2022543947A JP 2022543947 A JP2022543947 A JP 2022543947A JP 2021545903 A JP2021545903 A JP 2021545903A JP 2021545903 A JP2021545903 A JP 2021545903A JP 2022543947 A JP2022543947 A JP 2022543947A
Authority
JP
Japan
Prior art keywords
request
data
cookie
recipient
integrity
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2021545903A
Other languages
English (en)
Other versions
JP7319380B2 (ja
Inventor
ガン・ワン
マルセル・エム・モティ・ユン
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Google LLC
Original Assignee
Google LLC
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Google LLC filed Critical Google LLC
Publication of JP2022543947A publication Critical patent/JP2022543947A/ja
Application granted granted Critical
Publication of JP7319380B2 publication Critical patent/JP7319380B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
    • G06F21/6245Protecting personal data, e.g. for financial or medical purposes
    • G06F21/6263Protecting personal data, e.g. for financial or medical purposes during internet communication, e.g. revealing personal data from cookies
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/321Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving a third party or a trusted authority
    • H04L9/3213Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving a third party or a trusted authority using tickets or tokens, e.g. Kerberos
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/12Applying verification of the received information
    • H04L63/123Applying verification of the received information received data contents, e.g. message integrity
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/0807Network architectures or network communication protocols for network security for authentication of entities using tickets, e.g. Kerberos
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3247Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/60Digital content management, e.g. content distribution
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/083Network architectures or network communication protocols for network security for authentication of entities using passwords

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Computing Systems (AREA)
  • Bioethics (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Theoretical Computer Science (AREA)
  • Medical Informatics (AREA)
  • Databases & Information Systems (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Information Transfer Between Computers (AREA)
  • Mobile Radio Communication Systems (AREA)
  • Storage Device Security (AREA)

Abstract

要求の整合性を検証するための装置を含む、方法、システム、および装置。いくつかの態様において、方法は、アプリケーションから、アプリケーションの認証トークンを含む要求を受信するステップを含む。認証トークンは、少なくとも、アプリケーションの公開鍵と、認証トークンが作成された時間を示すトークン作成時間とを含むデータのセットを含む。認証は、データのセットの署名も含む。署名は、公開鍵に対応する秘密鍵を使用して生成される。要求の整合性は、認証トークンを使用して検証される。検証は、トークン作成時間が、要求が受信された時間のしきい値持続時間内にあるという判定と、データのセットが、変更されていないという判定とに基づいて、要求の整合性が有効であると判定することを含む。

Description

関連出願の相互参照
本出願は、国際出願であり、2019年8月13日に出願した米国特許出願第62/886,195号の利益を主張するものである。上記の出願の開示は、参照によりその全体が本明細書に組み込まれる。
ブラウザクッキーは、ウェブブラウザによってユーザデバイス上に記憶される少量のデータである。ブラウザクッキーは、ステートフル情報を記憶すること、閲覧行動を記録すること、およびユーザを認証することを含む多くの目的のために使用することができる。ファーストパーティクッキーおよびサードパーティクッキーを含むいくつかのタイプのクッキーが存在する。ファーストパーティクッキーは、ユーザが直接見るドメイン、すなわち、ブラウザのアドレスバーにおいて見ることができるドメインによって作成されるクッキーである。対照的に、サードパーティクッキーは、アドレスバーにおいて見ることができるドメインとは異なるドメインによって作成および/またはアクセスされるクッキーである。
本明細書は、ブラウザクッキーの認証およびセキュリティに関連する技術について説明する。
一般に、本明細書において説明する主題の1つの革新的な態様は、クライアントデバイスのアプリケーションから、アプリケーションの認証トークンを含む要求を受信するステップであって、認証トークンが、少なくともアプリケーションの公開鍵と、認証トークンが作成された時間を示すトークン作成時間とを含むデータのセットと、データのセットの署名とを含み、署名が、公開鍵に対応する秘密鍵を使用して生成された、ステップと、認証トークンを使用して要求の整合性を検証するステップであって、トークン作成時間が、要求が受信された時間のしきい値持続時間内にあるかどうかを判定するステップと、公開鍵と、秘密鍵を使用して生成されたデータのセットの署名とを使用して、データのセットが、認証トークンが作成された後に変更されたかどうかを判定するステップと、少なくとも、トークン作成時間が、要求が受信された時間のしきい値持続時間内にあるという判定と、データのセットが、認証トークンが作成されてから変更されていないという判定とに基づいて、要求の整合性が有効であると判定するステップとを含む、ステップと、要求の整合性が有効であるとの判定に応答して、要求に応答するステップとを含む方法において具体化することができる。この態様の他の実装形態は、コンピュータ記憶デバイス上に符号化された方法の態様を実行するように構成された対応する装置、システム、およびコンピュータプログラムとを含む。
これらおよび他の実装形態は、各々、以下の特徴のうちの1つまたは複数をオプションで含むことができる。いくつかの態様において、アプリケーションは、ウェブブラウザである。
いくつかの態様において、データのセットは、ウェブブラウザの整合性が有効であるかどうかを指定するブラウザ整合性トークンを含む。要求の整合性が有効であると判定するステップは、ブラウザ整合性トークンがウェブブラウザの整合性が有効であることを指定すると判定するステップを含むことができる。
いくつかの態様において、要求は、アプリケーションに配信するためのコンテンツに対するものである。態様は、要求が有効であるとの判定に応答してコンテンツを提供するステップを含むことができる。データのセットは、要求に固有のデータを含むペイロードを含むことができる。要求は、ユーザデータを削除する要求とすることができ、ペイロードは、ユーザデータを削除する動作を指定するデータを含むことができる。
いくつかの態様において、認証トークンは、要求の複数の受信者の各々について、受信者の公開鍵を使用してクライアントデバイス上に記憶された受信者のクッキーを暗号化した暗号化結果を含むそれぞれの暗号化されたクッキー要素を含む、暗号化されたクッキー要素のグループを含む。各受信者のためのそれぞれの暗号化されたクッキー要素の暗号化結果は、受信者のクッキーとデータのセットの署名との組合せを暗号化した暗号化結果を含む。要求の整合性が有効であると判定するステップは、所与の受信者によって、所与の受信者の秘密鍵を使用して、復号されたクッキー要素を生成するために、所与の暗号化されたクッキー要素を復号するステップと、復号されたクッキー要素がデータのセットの署名と一致する第1の部分を備えると判定するステップと、復号されたクッキー要素が所与の受信者のクッキー識別子と一致する第2の部分を備えると判定するステップとを含むことができる。
いくつかの態様において、各受信者のためのそれぞれの暗号化されたクッキー要素の暗号化結果は、暗号化初期化ベクトルとしてデータのセットの署名を使用して受信者のクッキーを暗号化した暗号化結果を含むことができる。要求の整合性が有効であると判定するステップは、所与の受信者によって、暗号化初期化ベクトルとして所与の受信者の秘密鍵とデータのセットの署名とを使用して、復号されたクッキー要素を生成するために、所与の暗号化されたクッキー要素を復号するステップと、復号されたクッキー要素が所与の受信者のクッキー識別子と一致すると判定するステップとを含むことができる。いくつかの態様は、要求の整合性が無効であると判定がなされた場合は常に要求を無視するステップを含むことができる。
一般に、本明細書で説明する主題の別の革新的な態様は、クライアントデバイスのウェブブラウザにおいて、少なくとも(i)ウェブブラウザの公開鍵と、(ii)認証トークンが作成された時間を示すトークン作成時間と、(iii)データのセットの署名とを含むデータのセットを有する認証トークンを生成するステップであって、署名が、公開鍵に対応する秘密鍵を使用して生成される、ステップと、要求を受信者に送信するステップであって、要求が認証トークンを含む、ステップとを含む方法において具体化することができる。この態様の他の実装形態は、コンピュータ記憶デバイス上に符号化された方法の態様を実行するように構成された対応する装置、システム、およびコンピュータプログラムとを含む。
これらおよび他の実装形態は、各々、以下の特徴のうちの1つまたは複数をオプションで含むことができる。いくつかの態様において、データのセットは、ウェブブラウザの整合性が有効であるかどうかを指定するブラウザ整合性トークンを含む。データのセットは、要求に固有のデータを含むペイロードを含むことができる。
いくつかの態様において、データのセットは、要求に固有のデータを含むペイロードを含み、要求は、ユーザデータを削除する要求を含み、ペイロードは、ユーザデータを削除する動作を指定するデータを含む。認証トークンは、要求の複数の受信者の各々について、受信者の公開鍵を使用してクライアントデバイス上に記憶された受信者のクッキーを暗号化した暗号化結果を含むそれぞれの暗号化されたクッキー要素を含む、暗号化されたクッキー要素のグループを含むことができる。各受信者のためのそれぞれの暗号化されたクッキー要素の暗号化結果は、受信者のクッキーとデータのセットの署名との組合せを暗号化した暗号化結果を含むことができる。各受信者のためのそれぞれの暗号化されたクッキー要素の暗号化結果は、暗号化初期化ベクトルとしてデータのセットの署名を使用して受信者のクッキーを暗号化した暗号化結果を含むことができる。
本明細書で説明する主題は、以下の利点のうちの1つまたは複数を実現するように、特定の実施形態において実装することができる。ブラウザ(または他のアプリケーション)によって発行された要求に含まれる認証トークンは、ウェブブラウザと要求を受信する他のエンティティとの間に安全な通信チャネルを生成するために使用することができる。この安全なチャネルは、ユーザが、他のパーティによって記憶されているユーザのデータを、他者がユーザのデータを不正に管理するリスクなしに管理することを可能にする。認証トークンと一緒に、認証トークン内に含まれるデータのデジタル署名を送信することによって、要求の受信者は、認証トークン内のデータのいずれかが作成後に変更されたかどうかを判定することができる。加えて、認証トークン内へのトークン作成時間の包含は、受信者が、要求が新しいものなのか、またはリプレイ攻撃の一部である可能性があるのかを判定することを可能にする。
認証トークンは、複数の受信者の各々について、その受信者によって復号することができる受信者の暗号化されたクッキーを含む、暗号化されたクッキー要素のグループを含むことができる。これは、受信者が他の受信者のクッキーにアクセスすることを防止しながら、同じ認証トークンが複数の受信者に送信されることを可能にし、それによって、クッキー内のデータのセキュリティを保護する。さらに、認証トークン内に含まれる他のデータに基づいて生成された署名を使用してクッキーを暗号化することによって、暗号化されたクッキー要素は、要求固有であり、クッキーを所有するドメイン以外の任意のドメインによってユーザを追跡するために使用することはできない。
前述の主題の様々な特徴および利点について、図に関して以下に説明する。追加の特徴および利点は、本明細書で説明する主題、および特許請求の範囲から明らかになる。
デジタル構成要素システムがデジタル構成要素を配信する環境のブロック図である。 要求の整合性を検証し、要求に応答するための例示的なプロセスを示すフロー図である。 認証トークンを使用して要求の整合性が有効であるかどうかを判定するための例示的なプロセスを示すフロー図である。 認証トークンを使用して要求の整合性が有効であるかどうかを判定するための別の例示的なプロセスを示すフロー図である。 認証トークンを使用して要求の整合性が有効であるかどうかを判定するための別の例示的なプロセスを示すフロー図である。 例示的なコンピュータシステムのブロック図である。
様々な図面における同様の参照番号および名称は、同様の要素を示す。
一般に、本明細書で説明するシステムおよび技法は、ユーザのウェブブラウザと、デジタル構成要素配信システムによって配信するためのデジタル構成要素を作成および提供するコンテンツ発行者、デジタル構成要素配信システム、およびデジタル構成要素提供者などの他のエンティティとの間の安全な通信チャネルを提供することができる。ウェブブラウザは、要求とともに、要求の整合性を検証するために他のエンティティによって使用される認証トークンを提供することができる。要求は、例えば、ユーザのデータを管理する(例えば、ユーザ関連データを削除する)要求、および/またはデジタル構成要素を他のコンテンツとともに提示するための要求を含むことができる。認証トークンを使用して通信チャネルを保護することは、不正なパーティがユーザデータを変更、削除、もしくは他の方法でアクセスすることができないこと、または、例えば、要求の性質および/もしくはソースに関して、例えば、デジタル構成要素配信システムおよび/もしくは提供者を欺くために要求の内容を変更することができないことを保証する。
図1は、デジタル構成要素システム150がデジタル構成要素129を配信する環境100のブロック図である。例示的な環境100は、ローカルエリアネットワーク(LAN)、ワイドエリアネットワーク(WAN)、インターネット、モバイルネットワーク、またはそれらの組合せなどのデータ通信ネットワーク105を含む。ネットワーク105は、クライアントデバイス110と、発行者130と、ウェブサイト140と、デジタル構成要素配信システム150と、ブラウザ整合性システム170とを接続する。例示的な環境100は、多くの異なるクライアントデバイス110と、発行者130と、ウェブサイト140とを含んでもよい。
ウェブサイト140は、ドメイン名に関連付けられ、1つまたは複数のサーバによってホストされる1つまたは複数のリソース145である。例示的なウェブサイトは、テキストと、画像と、マルチメディアコンテンツと、スクリプトなどのプログラミング要素とを含むことができる、HTMLにおいてフォーマットされたウェブページの集合体である。各ウェブサイト140は、ウェブサイト140を制御、管理、および/または所有するエンティティである発行者130によって維持される。
リソース145は、ネットワーク105を介して提供することができる任意のデータである。リソース145は、リソース145に関連付けられたリソースアドレス、例えば、ユニバーサルリソースロケータ(URL)によって識別される。リソースは、ほんのわずか例を挙げると、HTMLページ、ワード処理文書、ポータブルドキュメントフォーマット(PDF)文書、画像、ビデオ、およびフィードソースを含む。リソースは、埋め込み情報(ハイパーリンク内のメタ情報など)および/または埋め込み命令(スクリプトなど)を含んでもよい、単語、句、画像、および音声などのコンテンツを含むことができる。
クライアントデバイス110は、ネットワーク105を介して通信することができる電子デバイスである。例示的なクライアントデバイス110は、パーソナルコンピュータ、モバイル通信デバイス、例えば、スマートフォン、およびネットワーク105を介してデータを送信および受信することができる他のデバイスを含む。クライアントデバイス110は、典型的には、ネットワーク105を介するデータの送信および受信を容易にするために、ウェブブラウザ111および/またはネイティブアプリケーションなどのアプリケーションを含む。ネイティブアプリケーションは、特定のプラットフォームまたは特定のデバイスのために開発されたアプリケーションである。発行者130は、ネイティブアプリケーションを開発し、クライアントデバイス110に提供することができる。ウェブブラウザ111によって実行される動作および機能についての以下の説明は、ネイティブアプリケーションによって実行されてもよい。
ウェブブラウザ111は、例えば、クライアントデバイス110のユーザがウェブブラウザ111のアドレスバー内にリソース145のためのリソースアドレスを入力すること、またはリソースアドレスを参照するリンクを選択することに応答して、発行者130のウェブサイト140をホストするウェブサーバからのリソース145を要求することができる。ウェブサーバがリソース145をウェブブラウザ111に提供するとき、ウェブサーバは、ウェブブラウザ111がクライアントデバイス110上に記憶する発行者130のクッキー115も提供することができる。クッキー115は、ステートフル情報を記憶すること、閲覧行動を記録すること、およびユーザを認証することを含む多くの目的のために使用することができる少量のデータ、例えば、テキストファイルである。クッキー115は、一意のクッキー識別子と、少量のデータ(クッキー値、属性などを含むことができる)とを含むことができる。このクッキーは、クッキーが、ユーザが直接見るウェブサイト、すなわち、ウェブブラウザ111のアドレスバー内にドメインを見ることができるウェブサイトによって作成されるので、ファーストパーティクッキーと呼ばれる。
ウェブブラウザ111は、ウェブブラウザ111がその後にリソース145にナビゲートしたとき、および/またはリソース145がウェブブラウザ111によって提示されている間に、ウェブサイト140をホストするウェブサーバに発行者のファーストパーティクッキーを送信することができる。ウェブサーバは、例えば、ユーザのためのコンテンツをカスタマイズするために、クッキー115内のデータを使用することができる。
場合によっては、リソース145がウェブブラウザ111内に表示されている間、別のウェブサイトをホストする別のウェブサーバもクッキー115をクライアントデバイス110上に記憶するが、そのウェブサイトのドメインをウェブブラウザ111のアドレスバー内に見ることはできず、ユーザは、ウェブブラウザをそのウェブサイトにナビゲートしていない。このクッキーは、サードパーティクッキーと呼ばれる。サードパーティクッキーは、リソース145が他のウェブサーバからコンテンツの呼び出しを行うときに、クライアントデバイス110上に記憶することができる。
いくつかのリソース145は、リソース145とともにデジタル構成要素を提示するためのデジタル構成要素スロットを含む。この文書全体で使用されているように、「デジタル構成要素」という句は、デジタルコンテンツまたはデジタル情報の個別のユニット(例えば、ビデオクリップ、オーディオクリップ、マルチメディアクリップ、画像、テキスト、または別のコンテンツのユニット)を指す。デジタル構成要素129は、単一のファイルとして、またはファイルの集合体において、物理メモリデバイス内に電子的に記憶することができ、デジタル構成要素は、ビデオファイル、オーディオファイル、マルチメディアファイル、画像ファイル、またはテキストファイルの形式をとることができる。例えば、デジタル構成要素129は、ウェブブラウザ111によって提示されるウェブページまたは他のリソースのコンテンツを補足することを意図したコンテンツであってもよい。より具体的には、デジタル構成要素129は、リソースコンテンツに関連するデジタルコンテンツを含んでもよい(例えば、デジタル構成要素は、ウェブページコンテンツと同じトピック、または関連するトピックに関連してもよい)。したがって、デジタル構成要素配信システム150によるデジタル構成要素の提供は、ウェブページコンテンツを補足し、一般に強化することができる。
ウェブブラウザ111が1つまたは複数のデジタル構成要素スロットを含むリソース145をロードすると、ウェブブラウザ111は、デジタル構成要素配信システム150からの各スロットのためのデジタル構成要素129を要求することができる。デジタル構成要素配信システム150は、次に、デジタル構成要素提供者160からのデジタル構成要素を要求することができる。デジタル構成要素提供者160は、リソース145とともに提示するためのデジタル構成要素を提供するエンティティである。
場合によっては、デジタル構成要素配信システム150は、1つまたは複数のデジタル構成要素パートナー152からのデジタル構成要素を要求することもできる。デジタル構成要素パートナー152は、デジタル構成要素要求に応答して、デジタル構成要素提供者160の代わりにデジタル構成要素を選択するエンティティである。
デジタル構成要素配信システム150は、様々な基準に基づいて、各デジタル構成要素スロットのためのデジタル構成要素を選択することができる。例えば、デジタル構成要素配信システム150は、デジタル構成要素提供者160および/またはデジタル構成要素パートナー152から受信したデジタル構成要素から、リソース145との関連性、デジタル構成要素のパフォーマンス(例えば、ユーザがデジタル構成要素と対話する割合)などに基づいて、デジタル構成要素を選択することができる。デジタル構成要素配信システム150は、次いで、リソース145とともに提示するために、選択されたデジタル構成要素をクライアントデバイス110に提供することができる。
場合によっては、デジタル構成要素が提供されるデジタル構成要素配信システム150、デジタル構成要素パートナー152、および/またはデジタル構成要素提供者160は、クライアントデバイス110上にサードパーティクッキー115を記憶することもできる。ウェブブラウザ111は、サードパーティクッキーをクライアントデバイス110上に記憶したエンティティにサードパーティクッキー115を提供することもできる。このようにして、エンティティは、クライアントデバイス110における提示のためにデジタル構成要素を選択するために、サードパーティクッキー115内に記憶された情報を使用することができる。
デジタル構成要素配信システム150は、クライアントデバイス110上で動作するウェブブラウザ111および/または他のアプリケーション(例えば、特定のプラットフォームのために開発されたネイティブアプリケーション)による提示のために、デジタル構成要素129を1つまたは複数のクライアントデバイス110に送信することができる。
ウェブブラウザ111は、ユーザがファーストパーティクッキーおよびサードパーティクッキー内に収集および記憶されたデータを管理することを可能にするツールを含むことができる。ウェブブラウザ111は、ユーザが、発行者130、デジタル構成要素配信システム150、デジタル構成要素パートナー152、およびデジタル構成要素提供者160を含む他のエンティティによって記憶されたデータを管理することを可能にするツールを含むこともできる。例えば、ウェブブラウザ111は、ユーザが、ユーザのクライアントデバイス110上に記憶されたクッキー115を見ること、各クッキー115が記憶することができる(または記憶することができない)データのタイプを選択すること、他のエンティティによって記憶することができるデータを選択することなどを可能にするメニューを含むことができる。これらのツールは、ユーザがユーザのデータと、したがって、ユーザのプライバシーとを管理することを可能にする。
ウェブブラウザ111がネットワーク105を介して要求120を送信するとき、ウェブブラウザ111は、認証トークン122を生成し、要求とともに送信することができる。例えば、ウェブブラウザ111がデジタル構成要素要求をデジタル構成要素配信システム150に送信する場合、この要求は、認証トークン122を含むことができる。同様に、ウェブブラウザ111が、別のエンティティ(例えば、発行者130、デジタル構成要素配信システム150、デジタル構成要素パートナー152、またはデジタル構成要素提供者160)によって記憶されたデータを管理、例えば、削除するために、そのエンティティに要求を送信する場合、この要求は、認証トークン122を含むことができる。
認証トークン122は、要求の整合性を検証し、要求が改ざんされていないことを保証するために、これらのエンティティによって使用される。例えば、ユーザが他のエンティティによって記憶されたユーザのデータを管理することを可能にすることは、インターネット上の悪意のあるパーティが他のユーザのデータを管理および/または盗難しようとする可能性を開く可能性がある。デジタル構成要素について、一部の悪意のあるエンティティは、例えば、デジタル構成要素が提供される異なるリソースを指定するため、および/またはデジタル構成要素が提示される異なるユーザを指定するために、デジタル構成要素要求のパラメータを偽造しようとする場合がある。
認証トークン122は、ウェブブラウザ111と他のエンティティとの間に安全な通信チャネルを提供する情報および暗号化方式を含む。これは、他者が要求120を変更すること、他のエンティティのクッキーを取得すること、同じ要求を複数回(例えば、リプレイ攻撃の形で)提出することを防止し、および/または要求120が検証済みのウェブブラウザから来たことを保証する。
認証トークン122は、データのセット123と、データのセット123の署名124、例えば、デジタル署名とを含む。データのセット123は、要求を送信するウェブブラウザ111の公開鍵(例えば、公開鍵113)、認証トークン122が作成された時間を示すトークン作成時間、ペイロード、および/またはブラウザ整合性トークンを含むことができる。
ウェブブラウザ111は、秘密鍵112と、秘密鍵112に対応し、数学的にリンクされた公開鍵113とを含む、関連する暗号鍵の1つまたは複数のペアを生成および維持することができる。いくつかの実装形態において、鍵112および113は、別のアプリケーションまたはデバイスからウェブブラウザ111に提供される。秘密鍵112を使用してデジタル署名されたデータは、対応する公開鍵113を使用してのみ検証することができる。同様に、公開鍵113を使用して暗号化されたデータは、秘密鍵112を使用してのみ復号することができる。
ウェブブラウザ111は、データのセット123がウェブブラウザ111によって生成された後に変更されなかったことを検証することによって要求120の整合性を検証する際に使用するために、また、要求がブラウザ111において発信されたことを証明するために、秘密鍵112を使用してデータのセット123のデジタル署名124を生成する。いくつかの実装形態において、ウェブブラウザ111は、デジタル署名を生成するために、楕円曲線デジタル署名アルゴリズム(ECDSA)を使用するが、他の署名技法(例えば、RSA)も使用することができる。対応する公開鍵113は、認証トークン122を受信するエンティティがデータのセット123の署名124を検証するために公開鍵113を使用することができるように、認証トークン122とともに提供される。ウェブブラウザ111は、秘密鍵112を使用してデータのセット123に署名することによってデジタル署名を生成することができる。
いくつかの実装形態において、認証トークン122は、有利には、例えば、発行者130またはデジタル構成要素配信システム150のためのファーストパーティクッキーとして機能してもよく、それによって、記憶、送信、および管理される必要がある個別のクッキーの数を低減する。そのような場合、データ123の一部としての公開鍵113は、ファーストパーティクッキーのためのクッキー識別子として機能することができる。
いくつかの実装形態において、公開鍵113(およびその対応する秘密鍵112)は、制限されたライフサイクルを有する短命な(ephemeral)鍵である。同じ公開鍵113が多くの要求および/または長期間にわたって同じウェブブラウザ113から送信される場合、公開鍵113とともに要求を受信するエンティティは、ウェブブラウザのユーザを追跡することができる。例えば、エンティティは、公開鍵113をユーザのための識別子として使用し、各要求のペイロードデータをその識別子に関連付けることができる。したがって、公開鍵113のライフサイクルを制限することは、この追跡能力を制限し、したがって、ユーザのプライバシーを保護することができる。
公開鍵113のライフサイクルは、ユーザのプライバシーの目標レベルに基づいて構成することができる。最大のプライバシーのために、ライフサイクルは、単一の要求のためのものとすることができる。すなわち、ウェブブラウザ111は、ウェブブラウザ111によって送信された要求120ごとに新しい公開鍵/秘密鍵のペアを生成することができる。このレベルのプライバシーのトレードオフは、公開鍵/秘密鍵のペアを生成するための計算コスト(例えば、処理能力、リソース使用量など)である。以下で説明するようにブラウザ整合性トークンが公開鍵/秘密鍵のペアごとに生成される実装形態において、計算コストは、より高くなる可能性があり、ネットワーク105を介してブラウザ整合性システム170と通信することから生じる追加の待ち時間が存在する可能性がある。
いくつかの実装形態において、公開鍵113のライフサイクルは、単一のページビューのためのものとすることができる。この例では、ウェブブラウザ111は、ウェブブラウザがリソース145をダウンロードして提示するたびに、新しい公開鍵/秘密鍵のペアを生成することができる。ページが提示されている間に複数の要求が同じページビューから送信される場合、各要求は、同じ公開鍵113と、同じ公開鍵113を使用して生成されたデジタル署名とを有する認証トークン122を含むことができる。これは、要求120ごとに新しい公開鍵/秘密鍵のペアを生成することに比べて、計算コストおよび待ち時間コストを低減することができる。
いくつかの実装形態において、公開鍵113のライフサイクルは、所与の発行者ドメインのためのものとすることができる。この例では、ウェブブラウザ111は、ユーザがウェブサイト140を訪問した発行者130ごとに、それぞれの公開鍵/秘密鍵のペアを生成することができる。この例では、所与の発行者のための認証トークン122は、所与の発行者のためのファーストパーティクッキーとして機能することができる。加えて、公開鍵113は、所与の発行者のためのファーストパーティクッキー(例えば、認証トークン122)のためのクッキー識別子として機能することができる。これは、ブラウザが管理するファーストパーティ読み出し専用クッキーを効果的に提供する。この例示的なライフサイクルは、要求120ごとに新しい公開鍵/秘密鍵のペアを生成すること、およびページビューごとに新しい公開鍵/秘密鍵のペアを生成することに比べて、計算コストおよび待ち時間コストをさらに低減することができる。
いくつかの実装形態において、ウェブブラウザ111は、ウェブブラウザ111が、ユーザがウェブサイト140を訪問した発行者130ごとに、それぞれの公開鍵/秘密鍵のペアを生成することができる方法と同様に、デジタル構成要素提供者160ごとに、それぞれの公開鍵/秘密鍵のペアを生成することもできる。これは、ブラウザが管理するサードパーティ読み出し専用クッキーを効果的に提供する。
上記で説明したように、トークン作成時間は、認証トークン122が作成された時間を示す。ウェブブラウザ111は、ウェブブラウザ111が認証トークンを作成するときに作成時間を記録することができる。このトークン作成時間は、高分解能のタイムスタンプ(例えば、秒、ミリ秒、またはマイクロ秒の精度)とすることができる。トークン作成時間は、認証トークン122を含む要求120が新しい要求であるかまたは最近の要求であるかを判定するために使用することができる。例えば、認証トークン122を受信したエンティティは、トークン作成時間を現在の時間、または認証トークンが受信された時間と比較することができる。2つの時間の間の差がしきい値を超えた場合、エンティティは、以下でより詳細に説明するように、要求が新しくない、または無効であると判定することができる。
トークン作成時間は、リプレイ攻撃を検出するために使用することもできる。例えば、同じトークン作成時間を含む、同じデータのセット123を有する複数の要求が受信された場合、要求を受信したエンティティは、要求が重複している、および/または要求がリプレイ攻撃の一部であると判定することができる。
トークン作成時間は、他のデータと組み合わせて、要求120のためのトランザクション識別子として機能することもできる。例えば、トランザクション識別子は、認証トークン122のトークン作成時間、認証トークン122の公開鍵113、および受信者のサードパーティクッキー(例えば、以下で説明する暗号化されたクッキー125のうちの1つ)のうちの2つ以上の組合せとすることができる。トランザクション識別子は、複数のチャネルから受信した同じ要求の複数のバージョンを重複排除するために使用することができる。例えば、デジタル構成要素提供者160-3は、デジタル構成要素配信システム150とデジタル構成要素パートナー152の両方から同じ要求を受信することができる。この例では、トランザクション識別子は、認証トークン122のトークン作成時間、認証トークン122の公開鍵113、およびデジタル構成要素提供者160-3の復号されたサードパーティクッキーに基づくことができる。デジタル構成要素提供者160-3は、要求が重複しているかどうかを判定するために、2つ以上の要求内の3つのデータを比較することができ、それによって、重複した不要な応答の送信を防止することができる。
ペイロードは、個々の要求120のためのデータを含むことができる。例えば、要求120がデジタル構成要素に対するものである場合、ペイロードは、デジタル構成要素を選択するために使用することができるデータを含むことができる。このペイロードは、デジタル構成要素スロット(またはリソース145のためのURL)を有するリソース145、リソース145に関する情報(例えば、リソースのトピック)、デジタル構成要素スロットに関する情報(例えば、スロットの数、スロットのタイプ、スロットのサイズなど)、ユーザがこの機能を有効にしている場合は、クライアントデバイス110に関する情報(例えば、デバイスのタイプ、デバイスのIPアドレス、クライアントデバイス110の地理的位置)、および/または他の適切な情報を含むことができる。
要求120が、発行者130、デジタル構成要素配信システム150、デジタル構成要素パートナー152、デジタル構成要素提供者160、または他のエンティティにおいてユーザのデータを管理することである場合、要求120は、要求された変更を指定するデータを含むことができる。例えば、ユーザがデジタル構成要素提供者160-2からユーザデータのすべてを除去することを選択した場合、ペイロードは、このデータの除去と、デジタル構成要素提供者160-2とを指定するデータ(例えば、デジタル構成要素提供者160-2のための識別子またはネットワークアドレス)を含むことになる。
ブラウザ整合性トークンは、ウェブサイト140とのユーザ対話が本物であるかどうかなど、より多くのクラスの不正の検出を可能にすることによって、認証トークン122の不正検出能力を強化する。ウェブブラウザ111は、ネットワーク105に接続された1つまたは複数のサーバを使用して実装することができるブラウザ整合性システム170と対話するブラウザ内整合性構成要素を含むことができる。ブラウザ内整合性構成要素は、ブラウザ整合性システム170によって分析されるべき不正検出信号を収集することができる。不正信号は、例えば、マウスの移動速度、方向、中断もしくは他のパターン、クリックパターン、および/またはブラウザが侵害されたときを判定するために使用することができる他のデバイスレベルの信号を含むことができる。ブラウザ整合性システム170が、ブラウザ111の整合性が有効であると結論づけた場合、ブラウザ整合性システム170は、ブラウザ整合性トークンをウェブブラウザ111に発行することができる。
ブラウザ整合性トークンは、ブラウザ整合性トークンが作成された時間を示すトークン作成時間、ブラウザ整合性トークンを要求したブラウザ111の公開鍵113、評決(verdict)(例えば、ブラウザが有効であるかどうか)、および/またはブラウザ整合性トークンの残りの部分(例えば、トークン作成時間、公開鍵113、および/または評決)のデジタル署名を含むことができる。公開鍵113を含むデータのデジタル署名を使用することは、ブラウザ整合性トークンを公開鍵113に結びつけ、したがって、クライアントデバイス110およびウェブブラウザ111に結びつける。
ブラウザ整合性トークンのデジタル署名は、ブラウザ整合性システム170によって所有され、安全に記憶された秘密鍵によって生成することができる。デジタル署名は、ブラウザ整合性システム170によって所有され、安全に記憶された秘密鍵に対応する公開鍵によって公的に検証可能である。認証トークン122にデジタル署名し、認証トークン122の署名を検証するためのウェブブラウザ111の秘密鍵と公開鍵と組み合わせて、ブラウザ整合性トークンにデジタル署名し、これらのデジタル署名を検証するためにブラウザ整合性システムの秘密鍵と公開鍵とを使用することは、安全な通信を提供し、図1のエンティティ間に信頼のチェーンを確立する。
例えば、デジタル構成要素配信システム150、デジタル構成要素パートナー152、およびデジタル構成要素提供者160は、ブラウザ整合性システム170を信頼する。ブラウザ整合性システム170を信頼するデジタル構成要素配信システム150、デジタル構成要素パートナー152、およびデジタル構成要素提供者160は、デジタル署名を生成するために使用された秘密鍵に対応し、ブラウザ整合性システム170によって安全に記憶された公開鍵を使用してデジタル署名を検証することによって、ブラウザ整合性トークンが実際にブラウザ整合性システム170によって生成され、送信中に変更されていないことを検証することができる。ブラウザ整合性トークンが、ユーザが信頼できることを示していると仮定すると、デジタル構成要素配信システム150、デジタル構成要素パートナー152、およびデジタル構成要素提供者160は、認証トークン122が実際にブラウザ公開鍵113/秘密鍵112のペアを所有するウェブブラウザ111によって生成され、送信中に変更されていないことを検証するために、ブラウザ整合性トークンおよび認証トークン122(これらは同じである)内に含まれるブラウザ公開鍵113を使用することができる。
いくつかの実装形態において、ウェブブラウザ111およびブラウザ整合性システム170は、バッチプロセスにおいて複数のブラウザ整合性トークンを作成するために対話する。例えば、ウェブブラウザ111は、複数の公開鍵をブラウザ整合性システム170に送信することができる。ウェブブラウザ111は、不正検出信号を収集し、これらの信号をブラウザ整合性システム170に提供することもできる。ブラウザ整合性システム170は、不正検出信号を分析し、不正検出信号に基づいて評決を決定することができる。ブラウザ整合性システム170は、次いで、ウェブブラウザ111から受信した公開鍵ごとにブラウザ整合性トークンを生成することができる。このバッチプロセスは、ウェブブラウザ111によって必要とされるようにブラウザ整合性トークンを一度に1つずつ生成することと比べて、ブラウザ整合トークンを生成するために必要な待ち時間および処理時間/リソースを低減することができる。ウェブブラウザ111は、クライアントデバイス110においてブラウザ整合性トークンを記憶し、公開鍵113のライフサイクル(例えば、要求ごと、ページビューごと、発行者ドメインごとなど)に基づいて公開鍵113ごとに1つのブラウザ整合性トークンを消費することができる。
いくつかの実装形態において、認証トークン122は、暗号化されたクッキー要素125も含む。各暗号化されたクッキー要素125は、クッキー115がクライアントデバイス110上に記憶されたエンティティのための暗号化されたクッキーを含むことができる。例えば、クライアントデバイス110がデジタル構成要素配信システム150のクッキー115を含み、要求120がデジタル構成要素129に対するものである場合、認証トークン122は、デジタル構成要素配信システム150のための暗号化されたクッキー要素125を含むことができる。別の例では、クライアントデバイス110が複数のデジタル構成要素提供者160のクッキー115を含む場合、認証トークン122は、複数のデジタル構成要素提供者160の各々のための暗号化されたクッキー要素125を含むことができる。暗号化されたクッキー要素125は、以下でより詳細に説明するように、要求120の受信者によって構文解析される文字列の形式とすることができる。
クライアントデバイス110上にクッキー115を記憶するエンティティは、エンティティの公開鍵114をクライアントデバイス110に提供することができる。ウェブブラウザ111は、クライアントデバイス110上に記憶されたエンティティのクッキー115のクッキー値を暗号化するために、エンティティの公開鍵114を使用することができる。以下でより詳細に説明するように、認証トークン122を受信する各エンティティは、要求の整合性を検証し、クッキー値を取得するために、暗号化されたクッキー要素115を復号することができる。例えば、発行者130は、ウェブブラウザ111によって提示されるリソース145のコンテンツをカスタマイズするために、そのクッキー値を使用することができる。デジタル構成要素提供者160は、クライアントデバイス110に提供するデジタル構成要素を選択するために、そのクッキー値を使用することができる。
このようにクッキー115を暗号化することによって、認証トークン122(および要求120)は、複数の異なるエンティティのためのクッキー115を安全に担持することができる。これは、仲介者およびハッカーが他のエンティティのクッキーにアクセスするのを防止する。
加えて、仲介者が異なる要求からのデータのセット123および署名124の部分を混合および一致することを防止するために、暗号化されたクッキー要素125は、データのセット123およびデジタル署名124に結びつけることができる。例えば、各暗号化されたクッキー要素125は、エンティティのクッキーを含む第1の部分と、デジタル署名124の暗号ハッシュを含む第2の部分とを含むことができる。すなわち、エンティティのための暗号化されたクッキー要素125は、エンティティのクッキー115とデジタル署名124との組合せの暗号化されたバージョンを含むことができる。組合せは、エンティティの公開鍵114を使用して暗号化することができる。
エンティティが認証トークン122を受信すると、エンティティは、暗号化されたクッキー要素125内に自分のクッキーを見つけようとすることができる。例えば、エンティティは、そのクッキー115を暗号化するために使用される公開鍵114に対応するその秘密鍵を使用して、例えば、一度に1つずつ、または並行して、クッキー要素125を復号することができる。エンティティは、次いで、暗号化されたクッキー要素が、エンティティがユーザデバイス上に記憶したクッキーのクッキー識別子を含むかどうかを判定することができる(例えば、エンティティは、複数のクライアント上にクッキーを記憶することができ、各クッキーは、一意のクッキー識別子を有する)。エンティティは、暗号化されたクッキー要素の一部がデジタル署名124と一致するかどうかを判定することもできる。両方の一致が見つかった場合、エンティティは、暗号化されたクッキー要素が自分のクッキーであり、要求が有効であると判定することができる。部分のうちの1つが一致しない場合、エンティティは、暗号化されたクッキー要素125がエンティティに属していないと判定することができる。暗号化されたクッキー要素125のいずれもがエンティティに属していない場合、エンティティは、要求120を送信したクライアントデバイス110上にクッキーを記憶していないか、または要求120は、偽造されている。
エンティティが自分の暗号化されたクッキー要素125を認証トークン122内で見つけることを容易にするために、ウェブブラウザ111は、暗号化されたクッキー要素125が認証トークン122内に含まれるドメインのリスト、または暗号化されたクッキー要素125をそれらのドメインにマッピングするリストを、認証トークン122内に含めるように構成することができる。しかしながら、クライアントデバイス110上にクッキー115を記憶していないエンティティ、またはブラックリストに載せられたエンティティなどは、個々のユーザを追跡するために、ドメインのリストをフィンガープリント信号として使用することができる。加えて、エンティティは、各ドメインの到達範囲を決定するために、多くの要求120内に含まれるリストを使用することができ、これは、ドメインのプライベートデータである可能性がある。したがって、ドメインのリストを含めることは、ユーザおよびドメインに関するプライバシーおよびセキュリティを低下させる可能性がある。
図2は、要求の整合性を検証し、要求に応答するための例示的なプロセス200を示すフロー図である。プロセス200は、例えば、図1の発行者130、デジタル構成要素配信システム150、デジタル構成要素パートナー152、またはデジタル構成要素提供者160などの要求の受信者によって実装することができる。プロセス200の動作は、非一時的なコンピュータ可読媒体上に記憶された命令として実装することもでき、1つまたは複数のデータ処理装置による命令の実行は、1つまたは複数のデータ処理装置にプロセス200の動作を実行させることができる。
認証トークンを含む要求が受信される(202)。クライアントデバイスのウェブブラウザは、ウェブブラウザとのユーザ対話に応答して要求を送信することができる。例えば、ユーザがリソースを見るためにウェブサイトにナビゲートした場合、ウェブブラウザは、要求をウェブサイトに送信することができる。別の例において、リソースがデジタル構成要素スロットを含む場合、ウェブブラウザは、デジタル構成要素配信システムに、デジタル構成要素に対する要求を送信することができる。さらに別の例において、ユーザがユーザのデータを記憶するための設定、例えば、クッキー内にキャプチャされ、別のエンティティに送信されたユーザデータのストレージを変更する場合、要求は、ユーザのデータを変更する(例えば、削除する)要求とすることができる。
上記で説明したように、要求は、データのセットと、データのセットのデジタル署名と、オプションで1つまたは複数の受信者のための暗号化されたクッキー要素とを含む認証トークンを含むことができる。データのセットは、要求を送信したウェブブラウザの公開鍵、認証トークンがウェブブラウザによって作成された時間を示すトークン作成時間、ペイロード、および/またはブラウザ整合性トークンを含むことができる。ウェブブラウザは、ブラウザの公開鍵を使用して、データのセットのデジタル署名を生成することができる。ウェブブラウザまたは別の信頼できるプログラム、例えば、クライアントデバイスのオペレーティングシステムは、認証トークンを生成することができる。
ウェブブラウザは、要求の1つまたは複数の受信者のための暗号化されたクッキー要素を生成することができる。所与の受信者について、ウェブブラウザは、受信者の公開鍵を使用して、クライアントデバイス上に記憶された受信者のクッキーを暗号化することによって、暗号化されたクッキー要素を生成することができる。別の例において、ウェブブラウザは、暗号化されたクッキー要素を要求に結びつけるために、受信者のクッキーと認証トークンのデジタル署名とを暗号化することによって、所与の受信者のための暗号化されたクッキー要素を生成することができる。
要求の整合性が有効であるかどうかの判定がなされる(204)。認証トークンが作成された時間の間にデータのセット内の任意のデータが変更された場合、トークン作成時間と要求が受信された時間との間の持続時間がしきい値を超えた場合、ブラウザ整合性トークンが無効である場合、または認証トークンが受信者の暗号化されたクッキーを含まない場合、要求の整合性を無効とすることができる。要求の整合性が有効であるかどうかを判定するための例示的なプロセスについて図3に示し、以下で説明する。
要求の整合性が無効であると判定がなされた場合、要求に対する応答が提供されない(206)。すなわち、受信者は、要求を無視してもよい。例えば、要求がリソースに対するものである場合、ウェブサイトは、リソースを提供しなくてもよい。要求がデジタル構成要素に対するものである場合、要求が無効であると判定した受信者は、デジタル構成要素を提供しなくてもよい。例えば、デジタル構成要素提供者は、提供者のクッキーが認証トークン内の暗号化されたクッキー要素内に含まれていないので、要求が有効ではないと判定する場合がある。しかしながら、別のデジタル構成要素提供者は、提供者のクッキーが認証トークン内の暗号化されたクッキー要素内に含まれているので、要求が有効であると判定する場合がある。要求がユーザデータを削除または変更することである場合、受信者は、要求の整合性が無効である場合、要求に応答してユーザデータを削除または変更しなくてもよい。
要求の整合性が有効であると判定がなされた場合、応答が要求に対して提供される(208)。例えば、要求がリソースに対するものである場合、ウェブサイトは、要求に応答してリソースを提供してもよい。要求がデジタル構成要素に対するものである場合、要求が有効であると判定した受信者は、要求に応答してデジタル構成要素を提供してもよい。要求がユーザデータを削除または変更することである場合、受信者は、要求の整合性が有効である場合、要求に応答してユーザデータを削除または変更してもよい。
図3は、認証トークンを使用して要求の整合性が有効であるかどうかを判定するための例示的なプロセス300を示すフロー図である。プロセス300は、例えば、図1の発行者130、デジタル構成要素配信システム150、デジタル構成要素パートナー152、またはデジタル構成要素提供者160などの要求の受信者によって実装することができる。プロセス300の動作は、非一時的なコンピュータ可読媒体上に記憶された命令として実装することもでき、1つまたは複数のデータ処理装置による命令の実行は、1つまたは複数のデータ処理装置にプロセス300の動作を実行させることができる。
認証トークンがアクセスされる(302)。認証トークンは、ウェブブラウザから受信した要求に含めることができる。上記で説明したように、認証トークンは、データのセットと、データのセットのデジタル署名と、オプションで1つまたは複数の受信者のための暗号化されたクッキー要素とを含む。データのセットは、要求を送信したウェブブラウザの公開鍵、認証トークンがウェブブラウザによって作成された時間を示すトークン作成時間、ペイロード、および/またはブラウザ整合性トークンを含むことができる。
トークン作成時間が、要求が受信された時間のしきい値持続時間内、または現在の時間のしきい値持続時間内であるかどうかの判定がなされる(304)。例えば、要求が受信された時間(または現在の時間)とトークン作成時間との間の差で判定を行うことができる。差がしきい値持続時間以下である場合、トークン作成時間は、しきい値持続時間内にある。トークン作成時間がしきい値持続時間内になく、例えば、要求が古いことを意味する場合、要求の整合性は、無効として分類することができる(312)。
トークン作成時間がしきい値持続時間内にあり、例えば、要求が新しいかまたは最近のものであることを意味する場合、認証トークンのデジタル署名が生成された後に認証トークンのデータのセット内のデータが変更されたかどうかの判定がなされる(306)。例えば、認証トークン内に含まれるブラウザの公開鍵は、認証トークンのデジタル署名を検証するために使用することができる。公開鍵を使用して署名を検証することができない場合、データのセット内のデータが変更されたと判定される。例えば、そのようなデータは、要求を傍受したエンティティ、または仲介者によって変更された可能性がある。公開鍵を使用してデジタル署名が検証された場合、認証トークンのデータのセット内のデータが変更されてないと判定される。
データのセット内のデータが変更されたと判定がなされた場合、要求の整合性は、無効であるとして分類される(312)。認証トークンのデータのセット内のデータが変更されていないと判定がなされた場合、ブラウザ整合性トークンが有効であるかどうかの判定がなされる(308)。この判定は、ブラウザ整合性トークンの評決が有効であるかどうかを判定することと、ブラウザ整合性トークンの公開鍵が認証トークンの公開鍵と一致するかどうかを判定することとを含むことができる。評決が無効であるか、または公開鍵が一致しない場合、ブラウザ整合性トークンが無効であると判定され、要求の整合性は、無効として分類される。評決が有効であり、公開鍵が一致する場合、ブラウザ整合性トークンが有効であると判定することができる。
この判定は、ブラウザ整合性トークンのデジタル署名を検証することを含むこともできる。上記で説明したように、ブラウザ整合性システムは、ブラウザ整合性システムの秘密鍵を使用して、ブラウザ整合性トークンのデータにデジタル署名することができる。ブラウザ整合性システムは、ブラウザ整合性システムによって生成されたデバイス整合性トークンを受信する可能性がある受信者に、この秘密鍵に対応する公開鍵を提供することができる。要求の各受信者は、ブラウザ整合性トークンの署名を検証するためにこの公開鍵を使用することができ、これは、成功した場合、ブラウザ整合性トークンのデータが、それが作成されてから変更されてないことを示す。この例では、評決が有効であり、公開鍵が一致し、ブラウザ整合性トークンのデジタル署名が正常に検証された場合、ブラウザ整合性トークンが有効であると判定することができる。
ブラウザ整合性トークンが有効だと判定された場合、認証トークンが受信者のクッキーを含むかどうかの判定がなされる(310)。上記で説明したように、認証トークンは、要求の受信者のうちの1つまたは複数の各々について、暗号化されたクッキー要素を含むことができる。暗号化されたクッキー要素は、受信者の公開鍵を使用して暗号化された受信者のクッキーの暗号化されたバージョンを含むことができる。認証トークンが受信者のクッキーを含むかどうかを判定するための例示的なプロセスについて、図4および図5に示し、以下で説明する。
認証トークンが受信者のクッキーを含む場合、要求の整合性は、有効として分類することができる(314)。そうでない場合、要求の整合性は、無効として分類されるか(312)、または受信者は、受信者が、要求を送信したクライアントデバイスにおいてクッキーを記憶していないと判定することができる。
いくつかの実装形態において、動作310は、除外またはスキップすることができる。そのような実装形態では、動作304~308のすべてに合格した場合、要求は、有効として分類することができる。
図4および図5は、エンティティの暗号化されたクッキー要素を含む要求の整合性を判定するためのプロセスを示す。受信者のための暗号化されたクッキー要素が受信者のクッキーのみを含む場合、暗号化結果は、安定している。要求にアクセスする可能性がある仲介者または他者は、ユーザを追跡するために、安定した識別子として、暗号化されたクッキー要素に依存する可能性がある。そのような追跡を防止するために、所与の受信者および所与のクライアントデバイスのための暗号化要素が各要求に固有になるように、暗号化プロセスにランダム性を導入することができる。プロセス400および500は、そのようなランダム性を導入する2つの例示的な方法である。
図4は、認証トークンを使用して要求の整合性が有効であるかどうかを判定するための別の例示的なプロセス400を示すフロー図である。プロセス400は、例えば、図1の発行者130、デジタル構成要素配信システム150、デジタル構成要素パートナー152、またはデジタル構成要素提供者160などの要求の受信者によって実装することができる。プロセス400の動作は、非一時的なコンピュータ可読媒体上に記憶された命令として実装することもでき、1つまたは複数のデータ処理装置による命令の実行は、1つまたは複数のデータ処理装置にプロセス400の動作を実行させることができる。
この例示的なプロセス400において、要求は、例えば、複数の受信者の各々について1つ、暗号化されたクッキー要素のグループを有する認証トークンを含む。各受信者のための暗号化されたクッキー要素は、クライアントデバイスにおいて記憶された受信者のクッキーと、認証トークン内に含まれるデータのセットのデジタル署名の暗号ハッシュとの組合せの暗号化されたバージョンである。すなわち、要求を送信するウェブブラウザは、受信者のクッキーとデジタル署名の暗号ハッシュとの組合せを暗号化するために、所与の受信者の公開鍵を使用することができる。各受信者のためのデジタル署名の暗号ハッシュは、デジタル署名にわたって暗号ハッシュアルゴリズム、例えば、SHA256を適用することによって計算することができる。この暗号ハッシュは、暗号化されたクッキー要素を各要求に固有のものにするランダム性を導入し、また、暗号化されたクッキー要素を認証トークンの残りの部分に暗号的に結びつける。
要求の認証トークン内のデータのセットのデジタル署名の暗号ハッシュが計算される(402)。デジタル署名の暗号ハッシュは、ブラウザによって採用されている暗号ハッシュアルゴリズムを使用して計算することができる。
暗号化されたクッキー要素のグループ内の第1の暗号化されたクッキー要素がアクセスされる(404)。この例では、各暗号化されたクッキー要素が1つずつアクセスされる。他の実装形態において、例えば、複数のスレッドまたは複数のプロセッサを使用して、複数のクッキー要素に並列にアクセスし、処理することができる。
暗号化されたクッキー要素が復号される(406)。暗号化されたクッキー要素は、そのクッキーを暗号化するために使用された受信者の公開鍵に対応する受信者の秘密鍵を使用して復号することができる。
復号されたクッキー要素が動作402において計算されたデジタル署名の暗号ハッシュと一致する部分を含むかどうかの判定がなされる(408)。例えば、デジタル署名の暗号ハッシュは、暗号ハッシュと復号されたクッキー要素の一部との間に一致があるかどうかを判定するために、復号されたクッキー要素と比較することができる。
一致がない場合、現在アクセスされているクッキー要素がグループ内に含まれる最後の暗号化されたクッキー要素であるかどうかの判定がなされる(410)。現在アクセスされているクッキー要素がグループ内の最後の暗号化されたクッキー要素ではない場合、次の暗号化されたクッキー要素がアクセスされる(412)。次いで、動作406および408がこのクッキー要素に対して実行される。
デジタル署名の暗号ハッシュと一致する部分を含む復号されたクッキー要素ごとに、復号されたクッキー要素が受信者のクッキー識別子と一致する部分を含むかどうかの判定がなされる(416)。例えば、受信者は、複数のクライアントデバイス上にクッキーを記憶した発行者またはデジタル構成要素提供者であってもよい。クッキーの各々は、発行者またはデジタル構成要素提供者によって記憶された一意のクッキー識別子を有することができる。したがって、受信者は、復号されたクッキー要素が受信者の有効なクッキー識別子を含むかどうかを判定するために、そのクッキー識別子を復号されたクッキー要素と比較することができる。そうでない場合、プロセス400は、動作416において一致が見つかるか、またはグループ内のすべての暗号化されたクッキー要素がアクセスされ、処理されるまで、動作410に戻る。
復号されたクッキー要素が受信者の有効なクッキー識別子と一致する部分(および動作408においてデジタル署名の暗号ハッシュと一致する部分)を含む場合、要求は、有効として分類される(418)。復号されたクッキー要素のいずれもが両方の一致する部分を含まない場合、要求は、無効として分類されるか(414)、または受信者は、要求を送信したクライアントデバイス上にクッキーを記憶していないと判定することができる。
図5は、認証トークンを使用して要求の整合性が有効であるかどうかを判定するための別の例示的なプロセス500を示すフロー図である。プロセス500は、例えば、図1の発行者130、デジタル構成要素配信システム150、デジタル構成要素パートナー152、またはデジタル構成要素提供者160などの要求の受信者によって実装することができる。プロセス500の動作は、非一時的なコンピュータ可読媒体上に記憶された命令として実装することもでき、1つまたは複数のデータ処理装置による命令の実行は、1つまたは複数のデータ処理装置にプロセス500の動作を実行させることができる。
この例示的なプロセス500では、要求は、例えば、複数の受信者の各々について1つずつ、暗号化されたクッキー要素のグループを有する認証トークンを含む。各受信者のための暗号化されたクッキー要素は、暗号化初期化ベクトルとして認証トークン内に含まれるデータのセットのデジタル署名を使用する、受信者のクッキーの暗号化されたバージョンである。暗号化初期化ベクトルの使用は、暗号化されたクッキー要素を各要求に固有にするランダム性を導入し、また、暗号化されたクッキー要素を認証トークンの残りの部分に暗号的に結びつける。
要求の認証トークン内のデータのセットのデジタル署名の暗号ハッシュが計算される(502)。デジタル署名の暗号ハッシュは、ブラウザによって採用されているのと同じ暗号ハッシュアルゴリズムを使用して計算することができる。
暗号化されたクッキー要素のグループ内の第1の暗号化されたクッキー要素がアクセスされる(504)。この例では、各暗号化されたクッキー要素が1つずつアクセスされる。他の実装形態において、例えば、複数のスレッドまたは複数のプロセッサを使用して、複数のクッキー要素に並列にアクセスし、処理することができる。
暗号化されたクッキー要素が復号される(506)。暗号化されたクッキー要素は、そのクッキーを暗号化するために使用された受信者の公開鍵に対応する受信者の秘密鍵と、暗号化初期化ベクトルとして認証トークン内に含まれるデジタル署名とを使用して復号することができる。
復号されたクッキー要素が受信者のクッキー識別子と一致するかどうかの判定がなされる(508)。例えば、受信者は、複数のクライアントデバイス上にクッキーを記憶した発行者またはデジタル構成要素提供者であってもよい。クッキーの各々は、発行者またはデジタル構成要素提供者によって記憶された一意のクッキー識別子を有することができる。したがって、受信者は、復号されたクッキー要素が受信者の有効なクッキー識別子を含むかどうかを判定するために、そのクッキー識別子を復号されたクッキー要素と比較することができる。そうでない場合、現在アクセスされているクッキー要素がグループ内に含まれる最後の暗号化されたクッキー要素であるかどうかの判定がなされる(510)。現在アクセスされているクッキー要素がグループ内の最後の暗号化されたクッキー要素ではない場合、次の暗号化されたクッキー要素がアクセスされる(512)。次いで、動作506および508がこのクッキー要素に対して実行される。
復号されたクッキー要素が受信者の有効なクッキー識別子と一致する場合、要求は、有効として分類される(516)。復号されたクッキー要素のいずれもが受信者の有効なクッキー識別子と一致しない場合、要求は、無効として分類されるか(514)、受信者は、要求を送信したクライアントデバイス上にクッキーを記憶していないと判定することができる。
図6は、上記で説明した動作を実行するために使用することができる例示的なコンピュータシステム600のブロック図である。システム600は、プロセッサ610と、メモリ620と、記憶デバイス630と、入力/出力デバイス640とを含む。構成要素610、620、630、および640の各々は、例えば、システムバス650を使用して相互接続することができる。プロセッサ610は、システム600内で実行するための命令を処理することができる。いくつかの実装形態において、プロセッサ610は、シングルスレッドプロセッサである。別の実装形態において、プロセッサ610は、マルチスレッドプロセッサである。プロセッサ610は、メモリ620内または記憶デバイス630上に記憶された命令を処理することができる。
メモリ620は、システム600内の情報を記憶する。一実装形態において、メモリ620は、コンピュータ可読媒体である。いくつかの実装形態において、メモリ620は、揮発性メモリユニットである。別の実装形態において、メモリ620は、不揮発性メモリユニットである。
記憶デバイス630は、システム600のための大容量ストレージを提供することができる。いくつかの実装形態において、記憶デバイス630は、コンピュータ可読媒体である。様々な異なる実装形態において、記憶デバイス630は、例えば、ハードディスクデバイス、光ディスクデバイス、複数のコンピューティングデバイスによってネットワークを介して共有される記憶デバイス(例えば、クラウド記憶デバイス)、またはなにか他の大容量記憶デバイスを含むことができる。
入力/出力デバイス640は、システム600のための入力/出力動作を提供する。いくつかの実装形態において、入力/出力デバイス640は、ネットワークインターフェースデバイス、例えば、イーサネットカード、シリアル通信デバイス、および例えば、RS-232ポート、ならびに/またはワイヤレスインターフェースデバイス、および例えば、802.11カードのうちの1つまたは複数を含むことができる。別の実装形態において、入力/出力デバイスは、入力データを受信し、出力データを外部デバイス660、例えば、キーボード、プリンタ、およびディスプレイデバイスに送信するように構成されたドライバデバイスを含むことができる。しかしながら、モバイルコンピューティングデバイス、モバイル通信デバイス、セットトップボックステレビジョンクライアントデバイスなどの他の実装形態も使用することができる。
例示的な処理システムが図6に記載されているが、本明細書で説明されている主題および機能動作の実装形態は、他のタイプのデジタル電子回路において、または本明細書で開示されている構造とそれらの構造的同等物とを含むコンピュータソフトウェア、ファームウェア、もしくはハードウェアにおいて、またはそれらのうちの1つもしくは複数の組合せにおいて実装することができる。
本明細書で説明されている主題および動作の実施形態は、デジタル電子回路において、または本明細書で開示されている構造とそれらの構造的同等物とを含むコンピュータソフトウェア、ファームウェア、もしくはハードウェアにおいて、またはそれらのうちの1つもしくは複数の組合せにおいて実装することができる。本明細書で説明されている主題の実施形態は、データ処理装置によって実行するため、またはデータ処理装置の動作を制御するために、コンピュータ記憶媒体上に符号化された、1つまたは複数のコンピュータプログラム、すなわち、コンピュータプログラム命令の1つまたは複数のモジュールとして実装することができる。代替的には、または加えて、プログラム命令は、データ処理装置による実行のために適切なレシーバ装置に送信するための情報を符号化するために生成された、人工的に生成された伝搬信号、例えば、機械で生成された電気信号、光信号、または電磁信号上に符号化することができる。コンピュータ記憶媒体は、コンピュータ可読記憶媒体、コンピュータ可読記憶基板、ランダムもしくはシリアルアクセスメモリアレイもしくはデバイス、またはそれらのうちの1つもしくは複数の組合せとするか、またはそれらの中に含めることができる。さらに、コンピュータ記憶媒体は、伝搬信号ではないが、コンピュータ記憶媒体は、人工的に生成された伝搬信号内に符号化されたコンピュータプログラム命令のソースまたは宛先とすることができる。コンピュータ記憶媒体は、1つまたは複数の別個の物理的構成要素または媒体(例えば、複数のCD、ディスク、または他の記憶デバイス)とするか、またはそれらの中に含めることもできる。
本明細書で説明されている動作は、1つもしくは複数のコンピュータ可読記憶デバイス上に記憶された、または他のソースから受信されたデータに対してデータ処理装置によって実行される動作として実装することができる。
「データ処理装置」という用語は、例として、プログラム可能なプロセッサ、コンピュータ、システムオンチップ、または複数の前述のもの、または前述のものの組合せを含む、データを処理するためのすべての種類の装置、デバイス、および機械を包含する。装置は、専用論理回路、例えば、FPGA(フィールドプログラマブルゲートアレイ)またはASIC(特定用途向け集積回路)を含むことができる。装置は、ハードウェアに加えて、問題のコンピュータプログラムのための実行環境を作成するコード、例えば、プロセッサファームウェア、プロトコルスタック、データベース管理システム、オペレーティングシステム、クロスプラットフォームランタイム環境、仮想マシン、またはそれらのうちの1つまたは複数の組合せを構成するコードを含むこともできる。装置および実行環境は、ウェブサーバ、分散コンピューティング、およびグリッドコンピューティングインフラストラクチャなどの、様々な異なるコンピューティングモデルインフラストラクチャを実現することができる。
コンピュータプログラム(プログラム、ソフトウェア、ソフトウェアアプリケーション、スクリプト、またはコードとしても知られる)は、コンパイル型またはインタプリタ型言語、宣言型または手続き型言語を含む任意の形式のプログラミング言語において記述することができ、スタンドアロンプログラムとして、またはモジュール、構成要素、サブルーチン、オブジェクト、もしくはコンピューティング環境において使用するのに適した他のユニットとしてを含む、任意の形式において展開することができる。コンピュータプログラムは、必ずしも必要ではないが、ファイルシステム内のファイルに対応してもよい。プログラムは、他のプログラムもしくはデータ(例えば、マークアップ言語ドキュメント内に記憶された1つまたは複数のスクリプト)を保持するファイルの一部内に、問題のプログラム専用の単一のファイル内に、または複数の調整されたファイル(例えば、1つまたは複数のモジュール、サブプログラム、またはコードの一部を記憶するファイル)内に記憶することができる。コンピュータプログラムは、1つのコンピュータ上で、または単一のサイトに配置された、もしくは複数のサイトにわたって分散されて通信ネットワークによって相互接続された複数のコンピュータ上で実行されるように展開することができる。
本明細書で説明されているプロセスおよび論理フローは、入力データに対して動作し、出力を生成することによってアクションを実行するために1つまたは複数のコンピュータプログラムを実行する1つまたは複数のプログラム可能なプロセッサによって実行することができる。プロセスおよび論理フローは、専用論理回路、例えば、FPGA(フィールドプログラマブルゲートアレイ)またはASIC(特定用途向け集積回路)によって実行することもでき、装置は、それらとして実装することもできる。
コンピュータプログラムの実行に適したプロセッサは、例として、汎用マイクロプロセッサと専用マイクロプロセッサの両方を含む。一般に、プロセッサは、読み取り専用メモリまたはランダムアクセスメモリまたはその両方から命令とデータとを受信する。コンピュータの本質的な要素は、命令に従ってアクションを実行するためのプロセッサと、命令とデータとを記憶するための1つまたは複数のメモリデバイスとである。一般に、コンピュータはまた、データを記憶するための1つまたは複数の大容量記憶デバイス、例えば、磁気ディスク、光磁気ディスク、または光ディスクを含み、またはそれらからデータを受信するか、もしくはそれらにデータを送信するか、もしくはその両方を行うように動作可能に結合される。しかしながら、コンピュータは、そのようなデバイスを有する必要はない。さらに、コンピュータは、別のデバイス、例えば、ほんの数例を挙げると、携帯電話、携帯情報端末(PDA)、モバイルオーディオもしくはビデオプレーヤ、ゲームコンソール、全地球測位システム(GPS)レシーバ、またはポータブル記憶デバイス(例えば、ユニバーサルシリアルバス(USB)フラッシュドライブ)内に組み込むことができる。コンピュータプログラム命令とデータとを記憶するのに適したデバイスは、例として、半導体メモリデバイス、例えば、EPROM、EEPROM、およびフラッシュメモリデバイス、磁気ディスク、例えば、内蔵ハードディスクまたはリムーバブルディスク、光磁気ディスク、ならびにCD-ROMディスクおよびDVD-ROMディスクを含む、すべての形式の不揮発性メモリ、媒体、およびメモリデバイスを含む。プロセッサおよびメモリは、専用論理回路によって補足することができ、またはその中に組み込むことができる。
ユーザとの対話を提供するために、本明細書で説明されている主題の実施形態は、ユーザに情報を表示するためのディスプレイデバイス、例えば、CRT(陰極線管)またはLCD(液晶ディスプレイ)モニタと、ユーザが入力をコンピュータに提供することができるキーボードおよびポインティングデバイス、例えば、マウスまたはトラックボールとを有するコンピュータにおいて実装することができる。同様にユーザとの対話を提供するために他の種類のデバイスを使用することができ、例えば、ユーザに提供されるフィードバックは、任意の形態の感覚フィードバック、例えば、視覚的フィードバック、聴覚的フィードバック、または触覚的フィードバックとすることができ、ユーザからの入力は、音響、音声、または触覚入力を含む任意の形態において受信することができる。加えて、コンピュータは、ユーザによって使用されるデバイスにドキュメントを送信し、そこからドキュメントを受信することによって、例えば、ウェブブラウザから受信した要求に応答してユーザのクライアントデバイス上のウェブブラウザにウェブページを送信することによって、ユーザと対話することができる。
本明細書で説明されている主題の実施形態は、例えば、データサーバとしてバックエンド構成要素を含むか、またはミドルウェア構成要素、例えば、アプリケーションサーバを含むか、またはフロントエンド構成要素、例えば、ユーザが本明細書で説明されている主題の実装形態と対話することができるグラフィカルユーザインターフェースもしくはウェブブラウザを有するクライアントコンピュータを含むか、または1つまたは複数のそのようなバックエンド構成要素、ミドルウェア構成要素、もしくはフロントエンド構成要素の任意の組合せを含むコンピューティングシステムにおいて実装することができる。システムの構成要素は、任意の形式または媒体のデジタルデータ通信、例えば、通信ネットワークによって相互接続することができる。通信ネットワークの例は、ローカルエリアネットワーク(「LAN」)、ワイドエリアネットワーク(「WAN」)、インターネットワーク(例えば、インターネット)、およびピアツーピアネットワーク(例えば、アドホックピアツーピアネットワーク)を含む。
コンピューティングデバイスは、クライアントとサーバとを含むことができる。クライアントおよびサーバは、一般に、互いに離れており、典型的には、通信ネットワークを介して対話する。クライアントおよびサーバの関係は、それぞれのコンピュータ上で実行され、クライアント-サーバ関係を互いに有するコンピュータプログラムによって発生する。いくつかの実装形態において、サーバは、データ(例えば、HTMLページ)を(例えば、クライアントデバイスと対話するユーザにデータを表示し、そのユーザからユーザ入力を受信する目的のために)クライアントデバイスに送信する。クライアントデバイスにおいて生成されたデータ(例えば、ユーザ対話の結果)を、サーバにおいてクライアントデバイスから受信することができる。
本明細書は、多くの特定の実装形態の詳細を含むが、これらは、任意の発明の範囲または特許請求され得るもの範囲に対する制限として解釈されるべきではなく、むしろ、特定の発明の特定の実施形態に固有の特徴の説明として解釈されるべきである。本明細書で別々の実施形態の文脈において説明されている特定の特徴は、単一の実施形態において組み合わせて実装することもできる。逆に、単一の実施形態の文脈において説明されている様々な特徴は、複数の実施形態において別々に、または任意の適切な部分的組合せにおいて実装することもできる。さらに、特徴が、特定の組合せにおいて作用するものとして上記で説明されている場合があり、そのようなものとして当初に特許請求されている場合さえあるが、特許請求された組合せからの1つまたは複数の特徴は、場合によっては、組合せから除外することができ、特許請求された組合せは、部分的組合せまたは部分的組合せのバリエーションに向けられる場合がある。
同様に、動作は、特定の順序において図面中に描かれているが、これは、所望の結果を達成するために、そのような動作が示された特定の順序もしくは連続した順序で実行されること、またはすべての図示された動作が実行されることを必要とするものとして理解されるべきではない。特定の状況において、マルチタスクおよび並列処理が有利な場合がある。さらに、上記で説明した実施形態における様々なシステム構成要素の分離は、すべての実施形態においてそのような分離を必要とするものとして理解されるべきではなく、説明されているプログラム構成要素およびシステムは、一般に、単一のソフトウェア製品に統合することができ、または複数のソフトウェア製品にパッケージ化することができることが理解されるべきである。
したがって、主題の特定の実施形態について説明してきた。他の実施形態は、以下の特許請求の範囲内にある。場合によっては、特許請求の範囲内に記載されているアクションは、異なる順序で実行することができ、依然として所望の結果を達成することができる。加えて、添付の図に示されているプロセスは、所望の結果を達成するために、示された特定の順序、または連続した順序を必ずしも必要としない。特定の実装形態において、マルチタスクおよび並列処理が有利な場合がある。
100 環境
105 データ通信ネットワーク、ネットワーク
110 クライアントデバイス
111 ウェブブラウザ
112 秘密鍵、鍵
113 公開鍵、鍵
114 公開鍵
115 クッキー
120 要求
122 認証トークン
123 データのセット
124 署名、デジタル署名
125 暗号化されたクッキー、暗号化されたクッキー要素
129 デジタル構成要素
130 発行者
140 ウェブサイト
145 リソース
150 デジタル構成要素配信システム
152 デジタル構成要素パートナー
160 デジタル構成要素提供者
160-2 デジタル構成要素提供者
160-3 デジタル構成要素提供者
170 ブラウザ整合性システム
600 コンピュータシステム、システム
610 プロセッサ、構成要素
620 メモリ、構成要素
630 記憶デバイス、構成要素
640 入力/出力デバイス、構成要素
650 システムバス
660 外部デバイス

Claims (21)

  1. コンピュータ実装方法であって、
    クライアントデバイスのアプリケーションから、前記アプリケーションの認証トークンを含む要求を受信するステップであって、前記認証トークンが、
    少なくとも前記アプリケーションの公開鍵と、前記認証トークンが作成された時間を示すトークン作成時間とを含むデータのセットと、
    前記データのセットの署名とを含み、前記署名が、前記公開鍵に対応する秘密鍵を使用して生成された、ステップと、
    前記認証トークンを使用して前記要求の整合性を検証するステップであって、
    前記トークン作成時間が、前記要求が受信された時間のしきい値持続時間内にあるかどうかを判定するステップと、
    前記公開鍵と、前記秘密鍵を使用して生成された前記データのセットの前記署名とを使用して、前記データのセットが、前記認証トークンが作成された後に変更されたかどうかを判定するステップと、
    少なくとも、前記トークン作成時間が、前記要求が受信された前記時間の前記しきい値持続時間内にあるという判定と、前記データのセットが、前記認証トークンが作成されてから変更されていないという判定とに基づいて、前記要求の前記整合性が有効であると判定するステップと
    を含むステップと、
    前記要求の前記整合性が有効であるとの判定に応答して、前記要求に応答するステップと
    を含むコンピュータ実装方法。
  2. 前記アプリケーションがウェブブラウザである、請求項1に記載の方法。
  3. 前記データのセットが、前記ウェブブラウザの整合性が有効であるかどうかを指定するブラウザ整合性トークンをさらに含み、
    前記要求の前記整合性が有効であると判定するステップが、前記ブラウザ整合性トークンが前記ウェブブラウザの前記整合性が有効であることを指定すると判定するステップを含む、
    請求項2に記載の方法。
  4. 前記要求が、アプリケーションに配信するためのコンテンツに対するものであり、前記方法が、前記要求が有効であるとの判定に応答して前記コンテンツを提供するステップをさらに含む、請求項1、2、または3に記載の方法。
  5. 前記データのセットが、前記要求に固有のデータを含むペイロードをさらに含む、請求項1から4のいずれか一項に記載の方法。
  6. 前記データのセットが、前記要求に固有のデータを含むペイロードをさらに含み、前記要求が、ユーザデータを削除する要求を含み、前記ペイロードが、前記ユーザデータを削除する動作を指定するデータを含む、請求項1、2、または3に記載の方法。
  7. 前記認証トークンが、前記要求の複数の受信者の各々について、前記受信者の公開鍵を使用して前記クライアントデバイス上に記憶された前記受信者のクッキーを暗号化した暗号化結果を含むそれぞれの暗号化されたクッキー要素を含む、暗号化されたクッキー要素のグループをさらに含む、請求項1から6のいずれか一項に記載の方法。
  8. 各受信者のための前記それぞれの暗号化されたクッキー要素の前記暗号化結果が、前記受信者の前記クッキーと前記データのセットの前記署名との組合せを暗号化した暗号化結果を含む、請求項7に記載の方法。
  9. 前記要求の前記整合性が有効であると判定するステップが、
    所与の受信者によって、前記所与の受信者の秘密鍵を使用して、復号されたクッキー要素を生成するために、所与の暗号化されたクッキー要素を復号するステップと、
    前記復号されたクッキー要素が前記データのセットの前記署名と一致する第1の部分を備えると判定するステップと、
    前記復号されたクッキー要素が前記所与の受信者のクッキー識別子と一致する第2の部分を備えると判定するステップと
    を含む、請求項8に記載の方法。
  10. 各受信者のための前記それぞれの暗号化されたクッキー要素の前記暗号化結果が、暗号化初期化ベクトルとして前記データのセットの前記署名を使用して前記受信者の前記クッキーを暗号化した暗号化結果を含む、請求項7に記載の方法。
  11. 前記要求の前記整合性が有効であると判定するステップが、
    所与の受信者によって、前記暗号化初期化ベクトルとして前記所与の受信者の秘密鍵と前記データのセットの前記署名とを使用して、復号されたクッキー要素を生成するために、所与の暗号化されたクッキー要素を復号するステップと、
    前記復号されたクッキー要素が前記所与の受信者のクッキー識別子と一致すると判定するステップとを含む、
    請求項10に記載の方法。
  12. 前記要求の前記整合性が無効であると判定がなされた場合は常に前記要求を無視するステップをさらに含む、請求項1に記載の方法。
  13. コンピュータ実装方法であって、
    クライアントデバイスのウェブブラウザにおいて、少なくとも(i)前記ウェブブラウザの公開鍵と、(ii)認証トークンが作成された時間を示すトークン作成時間と、(iii)データのセットの署名とを含む前記データのセットを有する認証トークンを生成するステップであって、前記署名が、前記公開鍵に対応する秘密鍵を使用して生成される、ステップと、
    要求を受信者に送信するステップであって、前記要求が前記認証トークンを含む、ステップと
    を含むコンピュータ実装方法。
  14. 前記データのセットが、前記ウェブブラウザの整合性が有効であるかどうかを指定するブラウザ整合性トークンをさらに含む、請求項13に記載の方法。
  15. 前記データのセットが、前記要求に固有のデータを含むペイロードをさらに含む、請求項13または14に記載の方法。
  16. 前記データのセットが、前記要求に固有のデータを含むペイロードをさらに含み、前記要求が、ユーザデータを削除する要求を含み、前記ペイロードが、前記ユーザデータを削除する動作を指定するデータを含む、請求項13から15のいずれか一項に記載の方法。
  17. 前記認証トークンが、前記要求の複数の受信者の各々について、前記受信者の公開鍵を使用して前記クライアントデバイス上に記憶された前記受信者のクッキーを暗号化した暗号化結果を含むそれぞれの暗号化されたクッキー要素を含む、暗号化されたクッキー要素のグループをさらに含む、請求項13から16のいずれか一項に記載の方法。
  18. 各受信者のための前記それぞれの暗号化されたクッキー要素の前記暗号化結果が、前記受信者の前記クッキーと前記データのセットの前記署名との組合せを暗号化した暗号化結果を含む、請求項17に記載の方法。
  19. 各受信者のための前記それぞれの暗号化されたクッキー要素の前記暗号化結果が、暗号化初期化ベクトルとして前記データのセットの前記署名を使用して前記受信者の前記クッキーを暗号化した暗号化結果を含む、請求項17に記載の方法。
  20. 1つまたは複数のプロセッサと、
    前記1つまたは複数のプロセッサに請求項1から19のいずれか一項に記載の方法を実行させるように構成されたコンピュータ可読命令が記憶された1つまたは複数のメモリと
    を備えるシステム。
  21. 1つまたは複数のコンピュータによる実行時に、前記1つまたは複数のコンピュータに請求項1から19のいずれか一項に記載の方法の動作を実行させる命令を記憶するコンピュータ可読記録媒体。
JP2021545903A 2019-08-13 2020-08-13 ブラウザクッキーを保護する Active JP7319380B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201962886195P 2019-08-13 2019-08-13
US62/886,195 2019-08-13
PCT/US2020/046101 WO2021030545A1 (en) 2019-08-13 2020-08-13 Securing browser cookies

Publications (2)

Publication Number Publication Date
JP2022543947A true JP2022543947A (ja) 2022-10-17
JP7319380B2 JP7319380B2 (ja) 2023-08-01

Family

ID=72235018

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2021545903A Active JP7319380B2 (ja) 2019-08-13 2020-08-13 ブラウザクッキーを保護する

Country Status (6)

Country Link
US (2) US11949688B2 (ja)
EP (1) EP3900300A1 (ja)
JP (1) JP7319380B2 (ja)
KR (1) KR20210112359A (ja)
CN (1) CN113424188A (ja)
WO (1) WO2021030545A1 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7475472B2 (ja) * 2021-03-03 2024-04-26 グーグル エルエルシー プライバシーを守る活動集約メカニズム
US11695772B1 (en) * 2022-05-03 2023-07-04 Capital One Services, Llc System and method for enabling multiple auxiliary use of an access token of a user by another entity to facilitate an action of the user

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060101114A1 (en) * 1998-11-30 2006-05-11 Ravi Sandhu System and apparatus for storage and transfer of secure data on Web
JP2006120148A (ja) * 2004-09-14 2006-05-11 Andrew Sherman デジタル証明書のバインディング満了型の認証
JP2007527059A (ja) * 2004-02-04 2007-09-20 アールエスエー セキュリティ インク. ユーザ、およびコンピュータシステムから受信された通信の認証のための方法および装置
US7478434B1 (en) * 2000-05-31 2009-01-13 International Business Machines Corporation Authentication and authorization protocol for secure web-based access to a protected resource
WO2015122009A1 (ja) * 2014-02-17 2015-08-20 富士通株式会社 サービス提供方法、サービス要求方法、情報処理装置、及び、クライアント装置

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6272538B1 (en) * 1996-07-30 2001-08-07 Micron Technology, Inc. Method and system for establishing a security perimeter in computer networks
US7734911B2 (en) * 2005-05-31 2010-06-08 Tricipher, Inc. Secure login using augmented single factor split key asymmetric cryptography
US8862871B2 (en) * 2011-04-15 2014-10-14 Architecture Technology, Inc. Network with protocol, privacy preserving source attribution and admission control and method
US10505916B2 (en) 2017-10-19 2019-12-10 T-Mobile Usa, Inc. Authentication token with client key
CN108965230B (zh) * 2018-05-09 2021-10-15 深圳市中信网安认证有限公司 一种安全通信方法、系统及终端设备
US10841100B2 (en) * 2018-08-07 2020-11-17 The Toronto-Dominion Bank Dynamically managing exchanges of data using a distributed ledger and homomorphic commitments

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060101114A1 (en) * 1998-11-30 2006-05-11 Ravi Sandhu System and apparatus for storage and transfer of secure data on Web
US7478434B1 (en) * 2000-05-31 2009-01-13 International Business Machines Corporation Authentication and authorization protocol for secure web-based access to a protected resource
JP2007527059A (ja) * 2004-02-04 2007-09-20 アールエスエー セキュリティ インク. ユーザ、およびコンピュータシステムから受信された通信の認証のための方法および装置
JP2006120148A (ja) * 2004-09-14 2006-05-11 Andrew Sherman デジタル証明書のバインディング満了型の認証
WO2015122009A1 (ja) * 2014-02-17 2015-08-20 富士通株式会社 サービス提供方法、サービス要求方法、情報処理装置、及び、クライアント装置

Also Published As

Publication number Publication date
US20240187420A1 (en) 2024-06-06
US11949688B2 (en) 2024-04-02
EP3900300A1 (en) 2021-10-27
CN113424188A (zh) 2021-09-21
US20220166780A1 (en) 2022-05-26
JP7319380B2 (ja) 2023-08-01
WO2021030545A1 (en) 2021-02-18
KR20210112359A (ko) 2021-09-14

Similar Documents

Publication Publication Date Title
CN113015974B (zh) 针对隐私保护的可验证同意
US20240187420A1 (en) Securing browser cookies
JP2023096089A (ja) グループ署名による匿名イベント証明
JP7475492B2 (ja) 機密情報を保護するためのマルチパーティ計算およびk-匿名性技法の使用
KR102608325B1 (ko) 클라이언트 장치에서 통신의 무결성 보호
CN114391242B (zh) 匿名事件证明
JP7410280B2 (ja) 複数受信者セキュア通信
CN116034596A (zh) 具有令牌赎回的匿名认证
JP2023531357A (ja) 情報アクセスを制限するセキュアなネットワーク通信
JP2022533874A (ja) 電気通信ネットワーク測定におけるデータ操作の防止およびユーザのプライバシーの保護
JP2023508631A (ja) オンライン対話における情報へのアクセスの保護

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20211004

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20221031

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20230130

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20230501

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20230626

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20230720

R150 Certificate of patent or registration of utility model

Ref document number: 7319380

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150