JP2023503768A - 複数受信者セキュア通信 - Google Patents

複数受信者セキュア通信 Download PDF

Info

Publication number
JP2023503768A
JP2023503768A JP2022515066A JP2022515066A JP2023503768A JP 2023503768 A JP2023503768 A JP 2023503768A JP 2022515066 A JP2022515066 A JP 2022515066A JP 2022515066 A JP2022515066 A JP 2022515066A JP 2023503768 A JP2023503768 A JP 2023503768A
Authority
JP
Japan
Prior art keywords
recipient
data
token
attachment element
digital signature
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
JP2022515066A
Other languages
English (en)
Other versions
JP7410280B2 (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 JP2023503768A publication Critical patent/JP2023503768A/ja
Application granted granted Critical
Publication of JP7410280B2 publication Critical patent/JP7410280B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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
    • 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/64Protecting data integrity, e.g. using checksums, certificates or signatures
    • 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/126Applying verification of the received information the source of the received data
    • 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
    • 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/3236Cryptographic 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 using cryptographic hash functions
    • 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/3236Cryptographic 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 using cryptographic hash functions
    • H04L9/3239Cryptographic 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 using cryptographic hash functions involving non-keyed hash functions, e.g. modification detection codes [MDCs], MD5, SHA or RIPEMD
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2139Recurrent verification

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)
  • Theoretical Computer Science (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Health & Medical Sciences (AREA)
  • Mobile Radio Communication Systems (AREA)
  • Storage Device Security (AREA)
  • Error Detection And Correction (AREA)

Abstract

Figure 2023503768000001
この開示は、データセキュリティと暗号化とに関する。一態様において、方法は、受信者デバイスによって、クライアントデバイスから、証明トークンと添付要素とを含む通信を受信するステップを含む。証明トークンは、データのセットと、データのセットのデジタル署名とを含む。各添付要素は、通信のそれぞれの受信者に関する受信者データと、添付要素を証明トークンに暗号的にバインドするバインディングとを含む。受信者デバイスは、証明トークンと所与の受信者のための所与の添付要素とを使用して、通信の完全性を検証する。検証は、所与の添付要素のバインディングに基づいて、添付要素が証明トークンにバインドされていることを判定することを含む。証明トークンの完全性を検証することは、データのセットに基づいて、デジタル署名が有効であることを判定することを含む。

Description

本明細書は、データセキュリティおよび暗号化に関する。
クライアントデバイスは、インターネットなどの公衆ネットワークを介して要求および他のデータを送信する。これらの通信は、通信を傍受する関係者および/または通信を受信して他の関係者に転送する仲介者などの、他の関係者によって変更される可能性がある。クライアントデバイスは、ユーザの知らないうちに、またはユーザの許可なしに不正な要求を送信する可能性があるウィルスまたはマルウェアなどの悪意のある攻撃にもさらされる。それに加えて、他の関係者は、クライアントデバイスから発信されたように見えるが、実際には他の関係者のデバイスから発信された要求を送信するために、クライアントデバイスをエミュレートすることができる。
一般に、本明細書において説明されている主題の1つの革新的な態様は、所与の受信者の受信者デバイスによって、クライアントデバイスから、証明トークンと1つまたは複数の添付要素とを含む通信を受信するステップを含む方法において具体化され得る。証明トークンは、データのセットと、データのセットのデジタル署名とを含む。各添付要素は、通信のそれぞれの受信者に関する受信者データと、添付要素を証明トークンに暗号的にバインドするバインディングとを含む。方法は、受信者デバイスによって、証明トークンと所与の受信者のための所与の添付要素とを使用して、通信の完全性を検証するステップであって、所与の添付要素のバインディングに基づいて、添付要素が証明トークンにバインドされていることを判定するステップを含む、受信者デバイスによって、所与の添付要素の完全性を検証するステップと、データのセットに基づいて、デジタル署名が有効であることを判定するステップを含む、受信者デバイスによって、証明トークンの完全性を検証するステップとを含む、ステップを含むことができる。方法は、通信の完全性を検証することに応答して、通信に応答するステップを含むことができる。この態様の他の実装形態は、対応する装置と、システムと、コンピュータ記憶デバイス上に符号化された、方法の態様を実行するように構成されたコンピュータプログラムとを含む。
これらおよび他の実装形態は、各々、以下の特徴のうちの1つまたは複数をオプションで含むことができる。いくつかの態様において、バインディングは、暗号ハッシュ関数と証明トークンのデジタル署名とを使用して計算されたデジタル署名のハッシュ値を含む。所与の添付要素を検証するステップは、暗号ハッシュ関数と証明トークンのデジタル署名とを使用して検証ハッシュ値を計算するステップと、検証ハッシュ値がバインディングのハッシュ値と一致することを判定するステップとを含むことができる。
いくつかの態様において、バインディングは、暗号ハッシュ関数と証明トークンとを使用して計算された証明トークンのハッシュ値を含む。所与の添付要素を検証するステップは、暗号ハッシュ関数と証明トークンとを使用して検証ハッシュ値を計算するステップと、検証ハッシュ値がバインディングのハッシュ値と一致することを判定するステップとを含むことができる。
いくつかの態様において、所与の添付要素は、所与の受信者のためのリソースロケータと、(i)クライアントデバイスの秘密鍵と、(ii)所与の添付要素のバインディング、所与の添付要素の受信者データ、およびリソースロケータの組合せとを使用して生成された添付要素デジタル署名とを含む。
いくつかの態様において、所与の添付要素を検証するステップは、秘密鍵に対応する公開鍵と、所与の添付要素のバインディング、所与の添付要素の受信者データ、およびリソースロケータの組合せとを使用して、添付要素デジタル署名を検証するステップを含む。
いくつかの態様において、各受信者に関する受信者データは、クライアントデバイス上で実行されるアプリケーション内に含まれる受信者のソフトウェア構成要素によって暗号化される。証明トークンは、証明トークンが作成された時刻を示すトークン作成タイムスタンプを含むことができる。証明トークンの完全性を検証するステップは、証明が作成された時刻が、通信が受信された時刻のしきい値期間内にあることを判定するステップを含むことができる。
いくつかの態様において、証明トークンは、クライアントデバイスの公開鍵を含む。デジタル署名は、クライアントデバイスの公開鍵に対応するクライアントデバイスの秘密鍵を使用して生成される。デジタル署名が有効であることを判定するステップは、公開鍵とデータのセットとを使用してデジタル署名を検証するステップを含むことができる。
いくつかの態様において、データのセットは、クライアントデバイスまたはクライアントデバイス上で実行されるアプリケーションが信頼できるかどうかを示す判定を含む完全性トークンを含む。証明トークンを検証するステップは、クライアントデバイスまたはクライアントデバイス上で実行されるアプリケーションが信頼できることを判定が示すことを判定するステップを含むことができる。受信者デバイスは、所与の受信者のための添付要素のみを受信することができる。
本明細書で説明されている主題は、以下の利点のうちの1つまたは複数を実現するように特定の実施形態において実装され得る。クライアントデバイスからデータを送信するために証明トークンを使用することは、クライアントデバイスと受信者のコンピュータまたは他のデバイスとの間にセキュア通信チャネルを提供する。証明トークンとともに、証明トークン内に含まれるデータに基づいて生成されたデジタル署名を含むことは、証明トークンが作成された後、たとえば、クライアントデバイスと受信者との間の送信中に証明トークン内のデータが変更されていないことを受信者が検証することを可能にする。証明トークン内にトークン作成時間を含めることは、受信者がリプレイ攻撃および/または改ざんされたデータ送信を検出することを可能にする。
証明トークンは、証明トークンを送信するクライアントデバイスおよび/または送信を開始したクライアントデバイス上で実行されるアプリケーションが信頼できるかどうかを示す1つまたは複数の完全性トークンを含むこともできる。これは、データが、たとえば、エミュレータまたは侵入されたデバイスからではなく、信頼できるクライアントデバイスから来たことを証明トークンの受信者が検証することを可能にする。完全性トークンは、証明トークンの受信者が、クライアントデバイスが信頼できる分析器によって評価されたことと、完全性トークン内のデータが信頼できる分析器による作成後に変更されなかったこととを検証することができるように、信頼できる分析器(たとえば、第三者の分析器)によって生成およびデジタル署名され得る。
証明トークンは、それぞれ1つまたは複数の受信者のためのものである1つまたは複数の添付要素とともに送信され得、各添付要素は、その受信者のためのデータ、たとえば、暗号化されたデータを含むことができる。添付要素を、各エンティティのデータを証明トークン内に含めるのではなく、証明トークンとともに個別のデータ構造として含めることによって、添付要素は、証明トークンを検証する受信者の能力に影響を与えることなく、メッセージまたは他の電子通信全体から削除され得る。これは、受信者のうちの1つが、証明トークンとすべての添付要素とを受信し、他の各受信者に対して、その受信者のための添付要素のみを証明トークンとともに転送することを可能にする。すべての受信者のためのデータが証明トークン内に含まれる実装形態と比較して、この分離は、各受信者に送信されるデータ量を低減し、これは、帯域幅の消費を低減し、証明トークンを記憶するためのデータストレージ要件を低減し、ネットワークを介して証明トークンを送信する際の待ち時間を低減する。
それに加えて、これは、証明トークンを検証するために必要とされる処理能力と計算リソース(たとえば、CPUサイクル)とを低減する。たとえば、各受信者のためのデータが証明トークン内に含まれていた場合、受信者のデバイスは、証明トークンのデジタル署名を検証するために、証明トークンの他のデータに加えて、このデータのすべてをスキャンする必要がある。各受信者のための添付要素を生成することによって、各受信者のデバイスは、たとえば、受信者ごとにデータをスキャンすることなく、署名を検証するために他の証明データをスキャンするだけでよい。それに加えて、受信者のデータを他の受信者に提供しないことによって、各受信者のデータをより安全にする。データが証明トークンにおいて暗号化されている場合であっても、暗号化されたデータは、データを復号する方法を見つける別のエンティティに対して脆弱になる。
前述の主題の様々な特徴および利点について、図に関して以下に説明される。追加の特徴および利点は、本明細書で説明されている主題および特許請求の範囲から明らかである。
クライアントデバイスと複数の受信者との間の通信のためのセキュアチャネルを提供する環境のブロック図である。 証明トークンと添付要素とを含む通信を生成および送信するための例示的なプロセスを示すフロー図である。 通信の完全性が有効であることと、通信に応答するかどうかとを検証するための例示的なプロセスを示すフロー図である。 証明トークンと添付要素とを使用して通信の完全性を検証するための別の例示的なプロセスを示すフロー図である。 添付要素の完全性を検証するための例示的なプロセスを示すフロー図である。 例示的なコンピュータシステムのブロック図である。
様々な図面における同様の参照番号および名称は、同様の要素を示す。
一般に、この文書において説明されるシステムおよび技法は、クライアントデバイスと複数の受信者との間に電子通信のためのセキュア通信チャネルを提供することができる。クライアントデバイスは、通信の信頼性と完全性とを検証するために通信の受信者によって使用され得る証明トークンを含む通信、たとえば、電子メッセージまたは要求を生成することができる。証明トークンは、データのセットと、データのセットに基づいて生成されたデジタル署名とを含むことができる。このようにして、受信者は、受信されたデータのセットと送信者の公開鍵とを使用してデジタル署名を検証することによって、たとえば、送信中にまたは仲介者によって、データのセットが変更されていないことを検証することができる。
いくつかの通信は、複数の受信者に送信される場合があり、各受信者のためのデータは、異なるおよび/または機密である場合がある。このような場合、証明トークン内に受信者データを含めることは、各受信者に送信される通信のデータサイズを増大させ、受信者データを他の受信者にさらす可能性がある。各受信者のためのデータサイズを低減し、各受信者のデータの強化されたセキュリティを提供するために、受信者固有のデータが、証明トークンに追加されるが、デジタル署名を生成するために使用される証明トークンのデータのセットの一部ではない添付要素の形態において送信され得る。このようにして、受信者を対象としていない添付要素は、デジタル署名を破棄することなく、通信から削除され得る。
図1は、クライアントデバイスと複数の受信者との間の通信のためのセキュリティチャネルを提供する環境100のブロック図である。例示的な環境100は、ローカルエリアネットワーク(LAN)、ワイドエリアネットワーク(WAN)、インターネット、モバイルネットワーク、またはそれらの組合せなどのデータ通信ネットワーク105を含む。ネットワーク105は、クライアントデバイス110、一次受信者デバイス150、二次受信者デバイス170、および完全性システム180を接続する。環境100は、多くのクライアントデバイス110と、一次受信者デバイス150と、二次受信者デバイス170と、完全性システム180とを含むことができる。
受信者デバイス150および170は、クライアントデバイス110によって送信された通信120の受信者のデバイス、たとえば、コンピュータである。この文書において説明されているセキュア通信技法は、多くの異なるユースケースに適用され得るので、受信者のタイプは、様々なユースケースに応じて異なる可能性がある。たとえば、受信者は、クライアントデバイス110のユーザのユーザデータを記憶および/または使用するエンティティであり得る。この例において、クライアントデバイス110は、どのデータが記憶され得るか、およびどのようにデータが使用され得るかを受信者に指示するために、セキュア通信120を一次受信者デバイス150に送信することができる。
別の例において、受信者は、クライアントデバイス110上で実行されるアプリケーションがイベントを報告するエンティティであり得る。たとえば、受信者デバイス150および/または170は、イベントデータを集約し、メトリックス、たとえば、統計を決定し、メトリックスを報告する集約サーバであり得る。
別の例において、受信者は、コンテンツ、たとえば、デジタル構成要素をクライアントデバイス110に配信するエンティティである。この例において、一次受信者デバイス150は、共有側プラットフォーム(SSP)であり得、二次受信者170は、需要側プラットフォーム(DSP)であり得る。一般に、SSPは、リソースおよび/またはアプリケーションのためのデジタル構成要素を取得するプロセスを自動化するハードウェアおよび/またはソフトウェアにおいて実装された技術プラットフォームである。電子リソース(たとえば、ウェブページ)の発行者は、その電子リソースを用いて提示するためのデジタル構成要素を取得するプロセスを管理するために、SSPを使用することができる。一般に、DSPは、リソースおよび/またはアプリケーションを用いて提示するためのデジタル構成要素を配信するプロセスを自動化するハードウェアおよび/またはソフトウェアにおいて実装される技術プラットフォームである。DSPは、複数の異なる発行者のリソースおよび/またはアプリケーションを用いて提示するためのデジタル構成要素を提供するために、デジタル構成要素提供者の代わりに複数の供給側プラットフォームSSPと対話することができる。
この文書全体にわたって使用される場合、「デジタル構成要素」という語句は、デジタルコンテンツまたはデジタル情報(たとえば、ビデオクリップ、オーディオクリップ、マルチメディアクリップ、画像、テキスト、または別のコンテンツの単位)の個別の単位を指す。デジタル構成要素は、単一のファイルまたはファイルの集合体として物理的なメモリデバイス内に電子的に記憶され得、デジタル構成要素は、ビデオファイル、オーディオファイル、マルチメディアファイル、画像ファイル、またはテキストファイルの形態をとることができ、広告がデジタル構成要素の一種であるように、広告情報を含むことができる。たとえば、デジタル構成要素は、アプリケーション112によって提示されるウェブページまたは他のリソースのコンテンツを補足することを意図したコンテンツであり得る。より具体的には、デジタル構成要素は、リソースコンテンツに関連するデジタルコンテンツを含み得る(たとえば、デジタル構成要素は、ウェブページコンテンツと同じトピック、または関連するトピックに関連し得る)。したがって、デジタル構成要素の提供は、ウェブページまたはアプリケーションコンテンツを補足し、一般的に強化することができる。
クライアントデバイス110は、ネットワーク105を介して通信することができる電子デバイスである。例示的なクライアントデバイス110は、パーソナルコンピュータ、モバイル通信デバイス、たとえば、スマートフォン、およびネットワーク105を介してデータを送受信することができる他のデバイスを含む。クライアントデバイスは、マイクロフォンを介してオーディオ入力を受け入れ、スピーカを介してオーディオ出力を出力するデジタルアシスタントデバイスを含むこともできる。デジタルアシスタントは、デジタルアシスタントがオーディオ入力を受け入れるためにマイクロフォンを作動させる「ホットワード」または「ホットフレーズ」を検出したときに、リッスンモード(たとえば、オーディオ入力を受け入れる準備ができている)にされ得る。デジタルアシスタントデバイスは、画像を取り込み、情報を視覚的に提示するために、カメラおよび/またはディスプレイを含むこともできる。デジタルアシスタントは、ウェアラブルデバイス(たとえば、腕時計または眼鏡)、スマートフォン、スピーカデバイス、タブレットデバイス、または別のハードウェアデバイスを含む、様々な形態のハードウェアデバイスにおいて実装され得る。クライアントデバイスは、デジタルメディアデバイス、たとえば、ビデオをテレビにストリーミングするためにテレビまたは他のディスプレイにプラグインするストリーミングデバイスを含むこともできる。
クライアントデバイス110は、典型的には、ネットワーク105を介するデータの送信および受信を容易にするために、ウェブブラウザおよび/またはネイティブアプリケーションなどのアプリケーション112を含む。ネイティブアプリケーションは、特定のプラットフォームまたは特定のデバイス(たとえば、特定のオペレーティングシステムを有するモバイルデバイス)のために開発されたアプリケーションである。発行者は、ネイティブアプリケーションを開発し、クライアントデバイス110に提供し、たとえば、ダウンロードに利用可能にすることができる。ウェブブラウザは、たとえば、クライアントデバイス110のユーザがウェブブラウザのアドレスバー内にリソースのためのリソースアドレスを入力するか、またはリソースアドレスを参照するリンクを選択することに応答して、発行者のウェブサイトをホストするウェブサーバからのリソースを要求することができる。同様に、ネイティブアプリケーションは、発行者のリモートサーバからのアプリケーションコンテンツを要求することができる。
アプリケーション112は、通信を生成し、受信者、たとえば、一次受信者デバイス150に送信することができる。アプリケーション112は、通信120のための証明トークン122および添付要素124を生成するために、信頼できるプログラム111と対話することができる。信頼できるプログラム111は、改ざんすることが困難な信頼できるソースからの信頼できるコードを含むことができる。たとえば、信頼できるプログラム111は、オペレーティングシステム、オペレーティングシステムの一部、ウェブブラウザなどであり得る。一般に、信頼できるプログラム111は、侵入することが困難であり、加害者が信頼できるプログラム111を改ざんするために費やす必要がある時間および労力は、法外に高く、加害者にとって経済的に実行可能ではない。それに加えて、信頼できるプログラム111は、信頼できるソースによって提供および維持されているので、発生するいかなる脆弱性も、ソースによって対処され得る。
信頼できるプログラム111は、クライアントデバイス110に対してローカルであり得る。たとえば、信頼できるプログラム111は、クライアントデバイス110のオペレーティングシステムのデバイスドライバであり得る。いくつかの実装形態において、信頼できるプログラム111は、クライアントデバイス110に対して完全にローカルで動作し、ユーザ情報を送信する必要性を低減する。いくつかの実装形態において、信頼できるプログラム111は、クライアントデバイス110に対してローカルに、ネットワーク105などのネットワークを介して動作することができる。たとえば、信頼できるプログラム111は、クライアントデバイス110上にインストールされ、ネットワーク105を介して情報を送受信するウェブブラウザであり得る。
アプリケーション112は、通信の生成および送信を管理するソフトウェアモジュール、ツール、インターフェース、または他の構成要素を含むことができる。この例において、アプリケーション112は、ソフトウェア開発キット(SDK)114および116を含む。アプリケーションプログラミングインターフェース(API)などの他のソフトウェア構成要素も使用され得る。
アプリケーション112は、一次受信者デバイス150に対応する一次受信者によって開発および配布され得る一次受信者SDK114を含む。たとえば、SSPは、アプリケーション(たとえば、ネイティブアプリケーション、ウェブアプリケーション、ウェブブラウザなど)内に含めるためのSDKを提供することができる。この例において、一次受信者SDK114は、通信120として、一次受信者デバイス150からのデジタル構成要素に対する要求を生成することができる。
アプリケーション112は、二次受信者デバイス170を有する1つまたは複数の二次受信者の各々についてそれぞれの二次受信者SDK116も含む。二次受信者SDK116は、一次受信者SDK114によって一次受信者デバイス150に送信される通信内に含めるための受信者データを取得することができる。以下でより詳細に説明されるように、一次受信者デバイス150は、各受信者に関する受信者データを、対応する二次受信者デバイス170に送信することができる。受信者デバイス150および170への通信を生成および送信するための例示的なプロセスが、図1においてステージ1~5として示されている。
ステージ1において、アプリケーション112またはその一次受信者SDK114が一次受信者デバイス150に送信するための通信120を生成しているとき、一次受信者SDK114は、1つまたは複数の受信者に対応する1つまたは複数の二次受信者SDK116から受信者データを取得する。各受信者に関する受信者データは、受信者に固有のデータであり得、実装形態に基づいて異なり得る。SSPおよびDSPの例において、受信者デバイスに関する受信者データは、デジタル構成要素を選択する際に使用するためのデジタル構成要素選択信号、および/またはクライアントデバイス110が正常なもしくは信頼できるデバイスとして動作しているかどうかを判定するために受信者によって使用され得る不正検出信号を含むことができる。不正検出信号は、クライアントデバイスが侵入されているかどうか、またはクライアントデバイスが正常なクライアントデバイスとして動作しているかもしくはエミュレートされたクライアントデバイスとして動作しているかどうかを判定するために使用され得る、クライアントデバイスの動作特性またはメトリックスを表すデータを含むことができる。特定の動作特性およびメトリックスは、しばしば、エミュレータと比較すると正規のクライアントデバイスでは異なる。いくつかの実装形態において、不正検出信号は、アプリケーション112の動作特性およびメトリックスを含むアプリケーションレベルの不正検出信号を含む。
各二次受信者SDK116は、その受信者データを収集し、受信者データを一次受信者SDK114に提供することができる。いくつかの実装形態において、各二次受信者SDK116は、受信者データを一次受信者SDK114に提供する前に、その受信者データを暗号化する。たとえば、各二次受信者SDK116は、他の受信者、たとえば、一次受信者デバイス150が受信者データのプレーンテキスト値にアクセスすることができないように、暗号化アルゴリズムと公開鍵とを使用してそのデータを暗号化することができる。プレーンテキストは、鍵もしくは他の復号デバイス、または他の復号プロセスを必要とすることなく閲覧または使用され得る形式における、計算的にタグ付けされていない、特別にフォーマットされていない、もしくはコードで書かれていない、またはバイナリファイルを含むデータではないテキストである。他の実装形態において、たとえば、受信者データが機密ではない場合、二次受信者SDK116は、プレーンテキスト受信者データを一次受信者SDK114に送信することができる。いくつかの実装形態において、信頼できるプログラム111または一次受信者SDK114は、各受信者に関する受信者データを暗号化することができる。暗号化されているかどうかにかかわらず、受信者データは、バイト配列の形式であり得る。
ステージ2において、一次受信者SDK114は、通信120のための証明トークン122を生成するために、信頼できるプログラム111に要求を提出する。一次受信者SDK114は、要求とともに、各二次受信者SDK116から受信された受信者データと、受信者ごとに、受信者に関するリソースロケータとを送信することができる。リソースロケータは、受信者データのための鍵として機能することができ、受信者のドメインのeTLD+1の形態であり得る。eTLD+1は、パブリックサフィックスよりも1レベル加えた有効なトップレベルドメイン(eTLD)である。例示的なeTLD+1は、「.com」がトップレベルドメインである「example.com」である。
この要求は、証明トークン122内に含まれるべき任意のペイロードデータ、たとえば、すべての受信者に共通のデータ、受信者への指示などを含むこともできる。一次受信者SDK114は、信頼できるプログラム111に対する1つまたは複数のAPI呼び出しを使用して要求を生成することができる。
ステージ3において、信頼できるプログラム111は、受信者データが受信された各受信者のための証明トークン122と添付要素124とを生成し、証明トークン122と添付要素124とを一次受信者SDK114に提供する。証明トークン122は、データのセット126と、データのセットのデジタル署名128とを含むことができる。
データのセット126は、要求を送信するクライアントデバイス110の公開鍵(たとえば、アプリケーション112の公開鍵)、証明トークン122が作成された時刻を示すトークン作成時刻、ペイロードデータ、および/または1つもしくは複数の完全性システム180によって提供された1つもしくは複数の完全性トークンを含むことができる。このトークン作成時刻は、高解像度のタイムスタンプ(たとえば、秒、ミリ秒、またはマイクロ秒の精度)であり得る。
アプリケーション112は、秘密鍵と、秘密鍵に対応し、秘密鍵に数学的にリンクされた公開鍵とを含む関連する暗号鍵の1つまたは複数の対を生成および維持することができる。いくつかの実装形態において、鍵は、別のアプリケーションまたはデバイスからアプリケーション112に提供される。秘密鍵を使用してデジタル署名されたデータは、対応する公開鍵を使用してのみ検証され得る。同様に、公開鍵を使用して暗号化されたデータは、秘密鍵を使用してのみ復号され得る。暗号化鍵は、公開鍵が特定のクライアントデバイス110、たとえば、クライアントデバイス110の特定のユーザを追跡するために使用されるのを防止するために、要求ごと、アプリケーション112ごとなどに定期的に循環され得る。
信頼できるプログラム111は、データのセット126が信頼できるプログラムによって生成された後に変更されていないことを受信者が検証することができるように、また、要求がクライアントデバイス110において発生したことを証明するために、秘密鍵を使用してデータのセット126のデジタル署名128を生成する。いくつかの実装形態において、信頼できるプログラム111は、デジタル署名を生成するために楕円曲線デジタル署名アルゴリズム(ECDSA(Elliptic Curve Digital Signature Algorithm))を使用するが、他の署名技法(たとえば、RSA)も使用され得る。対応する公開鍵は、証明トークン122の受信者がデータのセット126のデジタル署名128を検証するために公開鍵を使用することができるように、証明トークン122とともに提供される。信頼できるプログラム111は、秘密鍵を使用してデータのセット126に署名することによって、デジタル署名を生成することができる。
完全性トークンは、アプリケーション完全性トークンおよび/またはデバイス完全性トークンを含むことができる。アプリケーション完全性トークンは、アプリケーション112が完全性システム118によって評価され、完全性システム180によって信頼できると見なされたことを示す。同様に、デバイス完全性トークンは、クライアントデバイス110が完全性システム180によって評価され、完全性システム180によって信頼できると見なされたことを示す。完全性システム180は、たとえば、アプリケーション内構成要素によって、クライアントデバイス110および/またはアプリケーション112から取得された不正検出信号に基づいて、アプリケーション112および/またはクライアントデバイス110を評価することができる。
完全性トークンは、完全性トークンが作成された時刻を示すトークン作成時刻、証明トークン122内に含まれる公開鍵(たとえば、クライアントデバイス110のデバイス公開鍵)、判定(たとえば、アプリケーション112またはクライアントデバイス110が信頼できるかどうか)、および/または完全性トークンの残りの部分(たとえば、トークン作成時刻、デバイス公開鍵、および/またはデバイス/アプリケーション判定)のデジタル署名を含むことができる。公開鍵を含むデータのデジタル署名を使用することは、完全性トークンを公開鍵に、したがって、クライアントデバイス110および/またはアプリケーション112にバインドする。
完全性トークンのデジタル署名は、完全性システム180によって所有され、安全に記憶された秘密鍵によって生成され得る。デジタル署名は、完全性システム180によって所有され、安全に記憶された秘密鍵に対応する公開鍵によって公に検証可能である。完全性トークンにデジタル署名し、これらのデジタル署名を検証するための完全性システム180の秘密鍵と公開鍵を、証明トークン122にデジタル署名し、証明トークン122の署名を検証するためのクライアントデバイス110の秘密鍵および公開鍵と組み合わせて使用することは、セキュア通信チャネルを提供し、図1のエンティティ間に信頼チェーンを確立する。
受信者に関する添付要素124は、バインディングと、受信者に関する受信者データと、受信者に関するリソースロケータ(たとえば、上記で説明されているように、受信者に関するeTLD+1)と、他のデータに基づいて、たとえば、バインディングと、受信者データと、リソースロケータとに基づいて生成されたデジタル署名とを含むことができる。バインディングは、添付要素124が検出されることなく他の証明トークン122とともに送信され得ないように、添付要素124を証明トークン122に暗号的にバインドする。
いくつかの実装形態において、バインディングは、証明トークン122のデジタル署名の暗号ハッシュである。たとえば、証明トークン122のためのデジタル署名を生成した後、信頼できるプログラム111は、暗号化関数(たとえば、SHA256)を使用して、デジタル署名の暗号ハッシュを計算することができる。すなわち、信頼できるプログラム111は、証明トークン122のデジタル署名に暗号ハッシュ関数を適用することができる。信頼できるプログラム111は、たとえば、ハッシュを16バイトに切り捨てることによって、通信120のデータサイズをさらに低減するために、暗号ハッシュを切り捨てることもできる。以下に説明されるように、証明トークン122および添付要素124の検証中に、受信者は、証明トークン122のデジタル署名を検証し、受信された証明トークン内に含まれるデジタル署名のハッシュを計算し、そのハッシュをバインディングと比較することができる。デジタル署名が正常に検証され、ハッシュ値が一致しない場合、添付要素124は、その証明トークン122に対して生成されておらず、添付要素124の検証は、失敗する。
いくつかの実装形態において、バインディングは、証明トークン122自体の暗号ハッシュであり得る。しかしながら、証明トークン122は、典型的には、証明トークン122のデジタル署名よりも大きいデータサイズを有するので、これは、デジタル署名の暗号ハッシュを使用することに関連して、信頼できるプログラム111による追加の処理を必要とする可能性がある。
受信者に関する添付要素124のデジタル署名は、証明トークン122のデジタル署名を生成するために使用されるのと同じ秘密鍵を使用して生成され得る。このようにして、受信者は、添付要素124のデジタル署名を検証するために公開鍵を使用することができる。他の実装形態において、添付要素124のためのデジタル署名を生成するために、異なる秘密鍵が使用され得、対応する公開鍵は、証明トークン122内に含まれるか、または他の方法で受信者に提供され得る。
ステージ4において、一次受信者SDK114は、通信120を生成し、ネットワーク105を介して一次受信者デバイス150に送信する。図1に示されているように、通信120は、すべての受信者に対して1つの証明トークン122を含み、個別の受信者ごとに添付要素124を含むことができる。通信120は、任意の数の添付要素、たとえば、ゼロ個以上の添付要素を含むことができる。
ステージ5において、一次受信者デバイス150は、個別通信160を生成し、通信120が意図される各二次受信者デバイス170に送信する。図1には示されていないが、個別通信160はまた、ネットワーク105または別のネットワークを介して送信され得る。一次受信者デバイス150は、受信された通信120の添付要素124にアクセスし、各添付要素124のリソースロケータを識別することができる。これは、添付要素124をどこに送信するかを一次受信者デバイス150に指示する。
通信120の添付要素124ごとに、一次受信者デバイス150は、証明トークン122と添付要素124とを含む個別通信160を生成することができる。たとえば、二次受信者デバイス170-1に対する通信160は、証明トークン122と、添付要素124-1に対応する受信者のための添付要素124-1とを含む。一次受信者デバイス150は、他のすべての受信者のための添付要素を除去することによって、所与の受信者のための個別通信160を生成することができる。
証明トークン122のデジタル署名は、いずれの添付要素124に基づいても生成されないので、各受信者は、他の受信者のための他の添付要素を受信しなくても、証明トークン122のデジタル署名を依然として検証することができる。所与の受信者のためのものではない添付要素124を削除し、証明トークン122と、所与の受信者のための添付要素124のみとを通信160内に含めることによって、通信160のデータサイズは、大幅に低減される。これは、帯域幅の消費を低減し、二次受信者デバイス170のデータストレージを低減し、証明トークン122と添付要素124とを検証するためにより少ない処理を必要とする。
たとえば、通信120がユーザプライバシー設定または制御に関連している場合、受信者は、特定の時間期間の間、証明トークン122を記憶するように要求され得る。証明トークン122が、個々の受信者のための添付要素124を使用するのではなく、複数の受信者のための受信者データを含む場合、データストレージ要件は、はるかにより大きくなるであろう。複数の受信者のための受信者データを含むそのような証明トークンの検証は、デジタル署名を検証するためにすべての受信者データをスキャンするために、実質的により多くの処理を必要とする。受信者ごとに個別の添付要素を使用することによって、二次受信者デバイス170は、証明トークン122の他のデータおよびその受信者のための個別の添付要素124のみをスキャンすることができ、結果として、通信160あたりのCPUサイクルが少なくなる。たとえば、1日あたり、数千または数百万を超える通信を集約すると、計算およびデータストレージの節約は、実質的である。
これは、二次受信者デバイス170が、通信160にはるかにより速く応答することも可能にし、これは、コンテンツ、たとえば、デジタル構成要素、配信に関連する実装形態において重要である。このような場合、典型的には、数ミリ秒以内の応答が必要とされる。検証に必要な処理を低減することによって、二次受信者コンピューティングデバイス170は、通信160の完全性を検証し、依然として時間要件以内に応答を提供することができる。
図2は、証明トークンと添付要素とを含む通信を生成および送信するための例示的なプロセス200を示すフロー図である。プロセス200の動作は、たとえば、図1のクライアントデバイス110によって実施され得る。プロセス200の動作はまた、非一時的であり得る1つまたは複数のコンピュータ可読媒体上に記憶された命令として実装され得、1つまたは複数のデータ処理装置による命令の実行は、1つまたは複数のデータ処理装置にプロセス200の動作を実行させることができる。
受信者データが取得される(202)。クライアントデバイス110上で実行されるアプリケーション112は、アプリケーション112によって生成されている通信の1つまたは複数の受信者ごとに受信者データを取得することができる。たとえば、上記で説明されているように、一次受信者SDK114は、受信者の二次受信者SDK116から受信者に関する受信者データを取得することができる。各受信者に関する受信者データは、他の各受信者に関する受信者データとは異なる可能性がある。各受信者のSDKは、そのデータを収集し、データを一次受信者SDK114に提供することができる。
証明トークンが生成される(204)。クライアントデバイス110の信頼できるプログラム111が、アプリケーション112からの要求に応答して証明トークンを生成することができる。要求は、通信に関するペイロードデータと、各受信者に関する受信者データと、各受信者に関するリソースロケータ(たとえば、eTLD+1)とを含むことができる。上記で説明されているように、証明トークンは、クライアントデバイス110またはアプリケーション112の公開鍵と、トークン作成時刻と、ペイロードデータとを含むデータのセットを含むことができる。証明トークンは、データのセットに基づいて、公開鍵に対応する秘密鍵を使用して生成されたデジタル署名も含むことができる。
添付要素が生成される(206)。信頼できるプログラム111は、要求において受信された受信者に関する受信者データを使用して各受信者のための添付要素を生成することができる。上記で説明されているように、受信者のための添付要素は、バインディングと、受信者に関する受信者データと、受信者に関するリソースロケータとを含むことができる。受信者のための添付要素は、バインディングと、受信者に関する受信者データと、受信者に関するリソースロケータとに基づいて生成されたデジタル署名を含むこともできる。信頼できるプログラム111は、証明トークンに署名するために使用される秘密鍵を使用して、各添付要素のためのデジタル署名を生成することができる。たとえば、信頼できるプログラム111は、秘密鍵を使用してバインディングと、受信者データと、リソースロケータとに署名をすることによって、添付要素のための署名を生成することができる。上記で説明されているように、各添付要素のためのバインディングは、すべての添付要素を証明トークンにバインドするために、証明トークンのデジタル署名の暗号ハッシュであり得る。
通信が送信される(208)。アプリケーション112は、たとえば、ネットワークを介して、証明トークンと添付要素とを含む通信を受信者に送信することができる。上記で説明されているように、一次受信者、たとえば、第1の受信者または仲介者は、通信を受信し、通信の意図された受信者ごとに個別通信を生成することができる。個別通信は、各々、証明トークンと個別通信の受信者のための単一の添付要素とを含むことができる。別の例において、アプリケーション112は、各々が証明トークンと個別通信の受信者のための添付要素とを含む個別通信を生成および送信することができる。
図3は、通信の完全性が有効であることと、通信に応答するかどうかとを検証するための例示的なプロセス300を示すフロー図である。プロセス300の動作は、たとえば、図1の受信者デバイス150または170によって実施され得る。プロセス300の動作はまた、非一時的であり得る1つまたは複数のコンピュータ可読媒体上に記憶された命令として実装され得、1つまたは複数のデータ処理装置による命令の実行は、1つまたは複数のデータ処理装置にプロセス300の動作を実行させることができる。
通信が受信される(302)。通信は、証明トークンと添付要素とを含むことができる。たとえば、受信者デバイスは、クライアントデバイス110または一次受信者デバイス150からの通信を受信することができる。
通信の完全性が検証される(304)。たとえば、受信者デバイスは、通信を検証する試みに基づいて、完全性を有効であるとしてまたは無効であるとして分類することができる。この検証は、証明トークンと添付要素とを検証することを含むことができる。要求の完全性は、証明トークンが作成された時刻の間にデータのセット内の任意のデータが変更された場合、トークン作成時間と要求が受信された時刻との間の持続時間がしきい値を超えた場合、完全性トークンが無効である場合、または添付要素が証明トークンにバインドされていない場合、無効である可能性がある。通信の完全性を検証するための例示的なプロセスが図4に示されており、以下で説明される。
通信の完全性が無効として分類された場合、たとえば、検証が失敗した場合、受信者デバイスは、通信に応答しない(306)。たとえば、受信者デバイスは、通信を無視する、通信を削除する、またはそれ以外に通信の要求されたアクションを行わないことができる。
通信の完全性が有効として分類された場合、たとえば、検証が成功した場合、受信者デバイスは、通信に応答する(308)。たとえば、通信がユーザプライバシー設定を更新するものである場合、受信者デバイスは、通信を正常に検証したことに応答して、ユーザプライバシー設定を更新することができる。通信がデジタル構成要素に対する要求である場合、受信者デバイスは、通信を正常に検証したことに応答して、デジタル構成要素を選択し、デジタル構成要素に関するデータを提供することができる。したがって、応答は、通信の実装およびデータに基づいて変化する可能性がある。
図4は、証明トークンと添付要素とを使用して通信の完全性を検証するための別の例示的なプロセス400を示すフロー図である。プロセス400の動作は、たとえば、図1の受信者デバイス150または170によって実施され得る。プロセス400の動作はまた、非一時的であり得る1つまたは複数のコンピュータ可読媒体上に記憶された命令として実装され得、1つまたは複数のデータ処理装置による命令の実行は、1つまたは複数のデータ処理装置にプロセス400の動作を実行させることができる。
通信の証明トークンおよび添付要素がアクセスされる(402)。受信者デバイスは、通信を受信し、通信内の証明トークンと添付要素とを識別することができる。受信者デバイスは、通信から証明トークンと添付要素とを抽出することができる。
証明トークンが検証される(404)。受信者デバイスは、トークン作成時刻、デジタル署名、および/または証明トークン内に含まれる完全性トークンを使用して証明トークンを検証することができる。この実装形態において、構成要素動作406~410を使用して、3つすべての検証が実行されるが、他の実装形態ではより少ない検証が実行され得る。それに加えて、検証は、異なる順序で、または並行して実行され得る。
証明トークンのトークン作成時刻が検証される(406)。上記で説明されているように、証明トークンは、証明トークンが作成された時刻を示すトークン作成タイムスタンプを含むことができる。トークン作成時刻は、証明トークンを含む通信が新規または最近の要求であるかどうかを判定するために使用され得る。たとえば、受信者デバイスは、トークン作成時刻が通信が受信された時刻のしきい値期間内にあるかどうかを判定するために、トークン作成時刻を現在の時刻または証明トークンが受信された時刻と比較することができる。その場合、トークン作成時刻が検証される。そうでない場合、証明トークンは、古くなったと見なされ、それに応じて、受信者デバイスは、通信の完全性を無効であるとして分類することができる(414)。しきい値期間は、たとえば、1日、3日、1週間、または別の適切な期間であり得る。
トークン作成時刻は、リプレイ攻撃を検出するためにも使用され得る。たとえば、同じトークン作成時刻を含む同じデータのセットを有する複数の要求が受信された場合、受信者は、通信が重複している、および/または要求がリプレイ攻撃の一部であると判定することができる。
トークン作成時刻が正常に検証された場合、デジタル署名が検証される(408)。デジタル署名は、証明トークンが作成されてから証明トークンのデータのセットが変更されていないことを保証するために検証され得る。たとえば、データのセットに対するわずかな変更であっても、デジタル署名の検証が失敗する。受信者デバイスは、受信された証明トークンのデータのセットと、証明トークン内に含まれる公開鍵とを使用して、デジタル署名を検証することを試みることができる。デジタル署名が公開鍵を使用して検証され得ない場合、データのセット内のデータが変更されたと判定がなされ得る。たとえば、そのようなデータは、要求を傍受したエンティティ、または仲介者によって変更された可能性がある。デジタル署名が公開鍵を使用して検証された場合、証明トークンのデータのセット内のデータが変更されていないと判定がなされ得る。デジタル署名が正常に検証されない場合、受信者デバイスは、通信の完全性を無効であるとして分類することができる(414)。
デジタル署名が正常に検証された場合、完全性トークンが検証される(410)。上記で説明されているように、完全性トークンは、完全性トークンが作成された時刻を示すトークン作成時刻、完全性トークンを要求したクライアントデバイス110の公開鍵、判定(たとえば、アプリケーション112またはクライアントデバイス110が信頼できるかどうか)、および/または完全性トークンの残りの部分(たとえば、トークン作成時刻、デバイス公開鍵、および/またはデバイス/アプリケーション判定)のデジタル署名を含むことができる。完全性トークンのデジタル署名は、完全性トークンのデジタル署名は、完全性システム180によって所有され、安全に記憶された秘密鍵によって生成され得る。デジタル署名は、完全性システム180によって所有され、安全に記憶された秘密鍵に対応する公開鍵によって公に検証可能である。
完全性トークンを検証するために、受信者デバイスは、完全性トークンの判定が有効であるかどうかと、完全性トークンの公開鍵が証明トークンの公開鍵と一致しているかどうかと、完全性トークンのトークン作成時刻が、通信が受信された時刻のしきい値期間内であるかどうかとを判定することができる。判定が、クライアントデバイスまたはアプリケーションが信頼できないこと、公開鍵が一致しないこと、または完全性トークンのトークン作成時刻が、通信が受信された時刻のしきい値期間内ではないことを示す場合、完全性トークンが無効であるという判定がなされ、要求の完全性は、無効として分類される(414)。判定が、クライアントデバイスまたはアプリケーションが信頼でき、公開鍵が一致することを示す場合、完全性トークンが有効であるという判定がなされる。
この判定は、完全性トークンのデジタル署名を検証することを含むこともできる。上記で説明されているように、完全性システム180は、完全性システムの秘密鍵を使用して、完全性トークンのデータにデジタル署名することができる。完全性システム180は、完全性システムによって生成された完全性トークンを受信する可能性がある受信者に、この秘密鍵に対応する公開鍵を提供することができる。要求の各受信者は、完全性トークンのデジタル署名を検証するためにこの公開鍵を使用することができ、これは、成功した場合、完全性トークンのデータが作成されてから変更されていないことを示す。この例において、判定が信頼でき、公開鍵が一致し、完全性トークンのデジタル署名が正常に検証された場合、完全性トークンが有効であると判定がなされる。1つまたは複数の検証が失敗した場合、受信者デバイスは、完全性トークンの完全性を無効として分類することができる。
トークン作成時刻、証明トークンのデジタル署名、および完全性トークンがすべて正常に検証された場合、受信者デバイスは、証明トークンの完全性を有効として分類し、添付要素を検証することができる(412)。検証のいずれかが失敗した場合、受信者デバイスは、通信の完全性を無効として分類することができる(414)。
受信者デバイスは、添付要素のデジタル署名を検証し、バインディングを検証し、添付要素のリソースロケータが受信者のリソースロケータと一致することを検証することによって、添付要素を識別することができる。添付要素を検証するための例示的なプロセスが図5に示されており、以下で説明される。
受信者デバイスは、証明トークンと添付要素とを任意の順序で、または並行して検証することができる。両方が正常に検証された場合、受信者デバイスは、通信を有効として分類することができる(416)。次に、受信者デバイスは、上記で説明されているように通信に応答することができる。
図5は、添付要素の完全性を検証するための例示的なプロセス500を示すフロー図である。プロセス500の動作は、たとえば、図1の受信者デバイス150または170によって実施され得る。プロセス500の動作はまた、非一時的であり得る1つまたは複数のコンピュータ可読媒体上に記憶された命令として実装され得、1つまたは複数のデータ処理装置による命令の実行は、1つまたは複数のデータ処理装置にプロセス500の動作を実行させることができる。
添付要素がアクセスされる(502)。たとえば、受信者デバイスは、上記で説明されているように、証明トークンと添付要素とを含む受信された通信から添付要素を抽出することができる。受信者のための添付要素は、バインディングと、受信者に関する受信者データと、受信者のリソースロケータ(たとえば、受信者に関するeTLD+1)と、他のデータに基づいて、たとえば、バインディングと、受信者データと、リソースロケータとに基づいて生成されたデジタル署名とを含むことができる。
受信者デバイスがデジタル署名を検証する(504)。デジタル署名は、添付要素が作成されてから添付要素のデータが変更されていないことを保証するために検証され得る。たとえば、データのセットに対するわずかな変更であっても、デジタル署名の検証が失敗する。受信者デバイスは、受信された添付要素のデータのセットと、証明トークン内に含まれる公開鍵とを使用して、添付要素のデジタル署名を検証することを試みることができる。デジタル署名が公開鍵を使用して検証され得ない場合、データのセット内のデータが変更されたと判定がなされ得る。たとえば、そのようなデータは、要求を傍受したエンティティ、または仲介者によって変更された可能性がある。デジタル署名が公開鍵を使用して検証された場合、添付要素内のデータが変更されていないと判定がなされ得る。デジタル署名が正常に検証されない場合、受信者デバイスは、添付要素を無効であるとして分類することができる(510)。
デジタル署名が正常に検証された場合、受信者デバイスは、バインディングを検証する(506)。添付要素のバインディングは、暗号ハッシュ関数と証明トークンのデジタル署名とを使用して計算された証明トークンのデジタル署名のハッシュ値であり得る。このようにして、添付要素は、この検証が成功するために、添付要素がバインドされた証明トークンを含む通信において受信されなければならない。
バインディングを検証するために、受信者デバイスは、バインディングを生成するために使用されたのと同じ暗号ハッシュ関数と、受信された証明トークン内に含まれるデジタル署名とを使用して検証ハッシュ値を計算することができる。次いで、受信者デバイスは、この検証ハッシュ値をバインディングのハッシュ値と比較することができる。これらの2つのハッシュ値が一致しない場合、受信者デバイスは、受信された証明トークン内のデジタル署名がバインディングを作成するために使用されたデジタル署名ではないと判定することができる。次に、受信者デバイスは、添付要素が証明トークンにバインドされていないと判定し、添付要素を無効として分類することができる(510)。
たとえば、悪意のあるエンティティは、添付要素が作成された証明トークンとは異なる証明トークン内に添付要素を含めようとする可能性がある。この例において、悪意のあるエンティティの証明トークンのデジタル署名は、有効な証明トークンのデジタル署名と一致せず、したがって、バインディングの検証は、失敗する。これは、添付要素がその正しい証明トークンとともにのみ使用されることを保証する。
いくつかの実装形態において、バインディングは、暗号ハッシュ関数と受信された証明トークンとを使用して計算された証明トークンのハッシュ値である。この例において、添付要素を検証することは、暗号ハッシュ関数と証明トークンとを使用して検証ハッシュ値を計算することと、検証ハッシュ値がバインディングのハッシュ値と一致することを判定することとを含むことができる。
いずれの例においても、バインディングのハッシュ値が検証ハッシュ値と一致する場合、受信者デバイスは、添付要素のリソースロケータを検出することができる(508)。受信者デバイスは、添付要素のリソースロケータが受信者のリソースロケータと一致するかどうかを判定することができる。すなわち、受信者デバイスは、添付要素内のリソースロケータに基づいて、添付要素が受信者を対象としたものであることを保証することができる。添付要素内のリソースロケータが受信者のリソースロケータと一致しない場合、受信者デバイスは、添付要素を無効であるとして分類することができる(510)。
添付要素のデジタル署名、添付要素のバインディング、および添付要素のリソースロケータがすべて正常に検証された場合、受信者デバイスは、添付要素の完全性を有効として分類することができる(512)。検証のいずれかが失敗した場合、受信者デバイスは、添付要素の完全性を無効として分類することができる(510)。受信者デバイスは、任意の順序で、または並行して検証を実行することができる。
図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つもしくは複数の組合せであるか、またはそれらの中に含まれ得る。さらに、コンピュータ記憶媒体は、伝播信号ではないが、コンピュータ記憶媒体は、人工的に生成された伝播信号内に符号化されたコンピュータプログラム命令のソースまたは宛先であり得る。コンピュータ記憶媒体はまた、1つまたは複数の別個の物理的構成要素または媒体(たとえば、複数のCD、ディスク、または他の記憶デバイス)であるか、またはそれらの中に含まれ得る。
本明細書で説明されている動作は、1つもしくは複数のコンピュータ可読記憶媒体上に記憶されるか、または他のソースから受信されたデータに対してデータ処理装置によって実行される動作として実施され得る。
「データ処理装置」という用語は、例として、プログラム可能なプロセッサ、コンピュータ、システムオンチップ、または上記の複数のものもしくは組合せを含む、データを処理するためのすべての種類の装置、デバイス、および機械を包含する。装置は、専用論理回路、たとえば、FPGA(フィールドプログラマブルゲートアレイ)またはASIC(特定用途向け集積回路)を含むことができる。装置は、ハードウェアに加えて、問題のコンピュータプログラムのための実行環境を作成するコード、たとえば、プロセッサファームウェア、プロトコルスタック、データベース管理システム、オペレーティングシステム、クロスプラットフォームランタイム環境、仮想マシン、またはそれらのうちの1つもしくは複数の組合せを構成するコードを含むこともできる。装置および実行環境は、ウェブサービスインフラストラクチャ、分散コンピューティングインフラストラクチャ、およびグリッドコンピューティングインフラストラクチャなどの、様々な異なるコンピューティングモデルインフラストラクチャを実現することができる。
コンピュータプログラム(プログラム、ソフトウェア、ソフトウェアアプリケーション、スクリプト、またはコードとしても知られる)は、コンパイル型またはインタプリタ型言語、宣言型言語または手続き型言語を含む任意の形式のプログラミング言語において記述され得、スタンドアロンプログラムとして、またはモジュール、コンポーネント、サブルーチン、オブジェクト、もしくはコンピューティング環境において使用するのに適した他のユニットとしてを含む、任意の形式において展開され得る。コンピュータプログラムは、ファイルシステム内のファイルに対応し得るが、そうである必要はない。プログラムは、他のプログラムもしくはデータを保持するファイルの一部(たとえば、マークアップ言語ドキュメント内に記憶された1つまたは複数のスクリプト)内、問題のプログラム専用の単一のファイル内、または複数の協調ファイル(たとえば、1つまたは複数のモジュール、サブプログラム、またはコードの一部を記憶するファイル)内に記憶され得る。コンピュータプログラムは、1つのコンピュータ上、または1つのサイトにおいて配置されるか、もしくは複数のサイトに分散され、通信ネットワークによって相互接続された複数のコンピュータ上で実行されるように展開され得る。
本明細書で説明されているプロセスおよび論理フローは、入力データに対して動作して出力を生成することによってアクションを実行するために、1つまたは複数のコンピュータプログラムを実行する1つまたは複数のプログラム可能なプロセッサによって実行され得る。プロセスおよび論理フローは、専用論理回路、たとえば、FPGA(フィールドプログラマブルゲートアレイ)またはASIC(特定用途向け集積回路)によっても実行され得、装置は、専用論理回路、たとえば、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 アプリケーション
114 ソフトウェア開発キット(SDK)、一次受信者SDK
116 ソフトウェア開発キット(SDK)、二次受信者SDK
120 通信、セキュア通信
122 証明トークン
124 添付要素
124-1 添付要素
126 データのセット
128 デジタル署名
150 一次受信者デバイス、受信者デバイス
160 個別通信、通信
170 二次受信者デバイス、受信者デバイス、二次受信者、二次受信者コンピューティングデバイス
170-1 二次受信者デバイス
180 完全性システム
600 コンピュータシステム、システム
610 プロセッサ、構成要素
620 メモリ、構成要素
630 記憶デバイス、構成要素
640 入力/出力デバイス、構成要素
650 システムバス
660 外部デバイス

Claims (13)

  1. 所与の受信者の受信者デバイスによって、クライアントデバイスから、証明トークンと1つまたは複数の添付要素とを含む通信を受信するステップであって、
    前記証明トークンが、
    データのセットと、
    前記データのセットのデジタル署名と
    を含み、
    各添付要素が、
    前記通信のそれぞれの受信者に関する受信者データと、
    前記添付要素を前記証明トークンに暗号的にバインドするバインディングと
    を含む、
    ステップと、
    前記受信者デバイスによって、前記証明トークンと前記所与の受信者のための所与の添付要素とを使用して、前記通信の完全性を検証するステップであって、
    前記所与の添付要素の前記バインディングに基づいて、前記添付要素が前記証明トークンにバインドされていることを判定するステップを含む、前記受信者デバイスによって、前記所与の添付要素の完全性を検証するステップと、
    前記データのセットに基づいて、前記デジタル署名が有効であることを判定するステップを含む、前記受信者デバイスによって、前記証明トークンの完全性を検証するステップと
    を含む、ステップと、
    前記通信の完全性を検証することに応答して、前記通信に応答するステップと
    を含む、コンピュータ実装方法。
  2. 前記バインディングが、暗号ハッシュ関数と前記証明トークンの前記デジタル署名とを使用して計算された前記デジタル署名のハッシュ値を含み、
    前記所与の添付要素を検証するステップが、
    前記暗号ハッシュ関数と前記証明トークンの前記デジタル署名とを使用して検証ハッシュ値を計算するステップと、
    前記検証ハッシュ値が前記バインディングの前記ハッシュ値と一致することを判定するステップと
    を含む、
    請求項1に記載のコンピュータ実装方法。
  3. 前記バインディングが、暗号ハッシュ関数と前記証明トークンとを使用して計算された前記証明トークンのハッシュ値を含み、
    前記所与の添付要素を検証するステッが、
    前記暗号ハッシュ関数と前記証明トークンとを使用して検証ハッシュ値を計算するステップと、
    前記検証ハッシュ値が前記バインディングの前記ハッシュ値と一致することを判定するステップと
    を含む、
    請求項1に記載のコンピュータ実装方法。
  4. 前記所与の添付要素が、前記所与の受信者のためのリソースロケータと、(i)前記クライアントデバイスの秘密鍵と、(ii)前記所与の添付要素の前記バインディング、前記所与の添付要素の前記受信者データ、および前記リソースロケータの組合せとを使用して生成された添付要素デジタル署名とをさらに含む、請求項1に記載のコンピュータ実装方法。
  5. 前記所与の添付要素を検証するステップが、前記秘密鍵に対応する公開鍵と、前記所与の添付要素の前記バインディング、前記所与の添付要素の前記受信者データ、および前記リソースロケータの組合せとを使用して、前記添付要素デジタル署名を検証するステップを含む、請求項1から4のいずれか一項に記載のコンピュータ実装方法。
  6. 各受信者に関する前記受信者データが、前記クライアントデバイス上で実行されるアプリケーション内に含まれる前記受信者のソフトウェア構成要素によって暗号化される、請求項1から5のいずれか一項に記載のコンピュータ実装方法。
  7. 前記証明トークンが、前記証明トークンが作成された時刻を示すトークン作成タイムスタンプを含み、
    前記証明トークンの前記完全性を検証するステップが、前記証明が作成された前記時刻が、前記通信が受信された時刻のしきい値期間内にあることを判定するステップを含む、
    請求項1から6のいずれか一項に記載のコンピュータ実装方法。
  8. 前記証明トークンが、前記クライアントデバイスの公開鍵を含み、
    前記デジタル署名が、前記クライアントデバイスの前記公開鍵に対応する前記クライアントデバイスの秘密鍵を使用して生成され、
    前記デジタル署名が有効であることを判定するステップが、前記公開鍵と前記データのセットとを使用して前記デジタル署名を検証するステップを含む、
    請求項1から7のいずれか一項に記載のコンピュータ実装方法。
  9. 前記データのセットが、前記クライアントデバイスまたは前記クライアントデバイス上で実行されるアプリケーションが信頼できるかどうかを示す判定を含む完全性トークンをさらに含み、
    前記証明トークンを検証するステップが、前記クライアントデバイスまたは前記クライアントデバイス上で実行されるアプリケーションが信頼できることを前記判定が示すことを判定するステップをさらに含む、
    請求項1から8のいずれか一項に記載のコンピュータ実装方法。
  10. 前記受信者デバイスが、前記所与の受信者のための前記添付要素のみを受信する、請求項1に記載のコンピュータ実装方法。
  11. 1つまたは複数のプロセッサと、
    前記1つまたは複数のプロセッサによって実行されると、前記1つまたは複数のプロセッサに請求項1から10のいずれか一項に記載の方法を実行させる命令を記憶する1つまたは複数の記憶デバイスと
    を備えるシステム。
  12. 1つまたは複数のプロセッサによって実行されると、前記1つまたは複数のプロセッサに請求項1から10のいずれか一項に記載の方法を実行させる命令を担持するコンピュータ可読記憶媒体。
  13. コンピュータによって実行されると、前記コンピュータに請求項1から10のいずれか一項に記載の方法のステップを実行させる命令を含むコンピュータプログラム製品。
JP2022515066A 2020-10-26 2020-10-26 複数受信者セキュア通信 Active JP7410280B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/US2020/057291 WO2022093164A1 (en) 2020-10-26 2020-10-26 Multi-recipient secure communication

Publications (2)

Publication Number Publication Date
JP2023503768A true JP2023503768A (ja) 2023-02-01
JP7410280B2 JP7410280B2 (ja) 2024-01-09

Family

ID=73544270

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2022515066A Active JP7410280B2 (ja) 2020-10-26 2020-10-26 複数受信者セキュア通信

Country Status (6)

Country Link
US (1) US20220376926A1 (ja)
EP (2) EP4042312B1 (ja)
JP (1) JP7410280B2 (ja)
KR (1) KR102652364B1 (ja)
CN (1) CN114698408B (ja)
WO (1) WO2022093164A1 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
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
JP2001249901A (ja) * 2001-01-10 2001-09-14 Nippon Yunishisu Kk 認証装置およびその方法、並びに、記憶媒体
JP2001345832A (ja) * 2000-05-31 2001-12-14 Hitachi Ltd メールシステム、メールガード装置、操作端末
JP2007006319A (ja) * 2005-06-27 2007-01-11 Dainippon Printing Co Ltd 鍵交換システム、端末装置及びプログラム
JP2007502578A (ja) * 2003-08-12 2007-02-08 インテル・コーポレーション 安全な移動体通信及び高価な取引の実行に対しランタイムパッケージ署名において信頼性の高いハードウェアベースのアイデンティティ信任状を使用する方法
US20170141926A1 (en) * 2015-11-13 2017-05-18 Minghua Xu Methods and systems for pki-based authentication

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8903950B2 (en) * 2000-05-05 2014-12-02 Citrix Systems, Inc. Personalized content delivery using peer-to-peer precaching
US7318235B2 (en) * 2002-12-16 2008-01-08 Intel Corporation Attestation using both fixed token and portable token
CN102713922B (zh) * 2010-01-12 2015-11-25 维萨国际服务协会 用于对验证令牌的任何时候确认的方法
US8910295B2 (en) * 2010-11-30 2014-12-09 Comcast Cable Communications, Llc Secure content access authorization
US20180191503A1 (en) * 2015-07-14 2018-07-05 Fmr Llc Asynchronous Crypto Asset Transfer and Social Aggregating, Fractionally Efficient Transfer Guidance, Conditional Triggered Transaction, Datastructures, Apparatuses, Methods and Systems
US10461939B2 (en) * 2017-02-08 2019-10-29 Ca, Inc. Secure device registration for multi-factor authentication
US10505723B1 (en) * 2017-04-26 2019-12-10 Wells Fargo Bank, N.A. Secret sharing information management and security system
US11436597B1 (en) * 2017-05-01 2022-09-06 Wells Fargo Bank, N.A. Biometrics-based e-signatures for pre-authorization and acceptance transfer
US10505916B2 (en) * 2017-10-19 2019-12-10 T-Mobile Usa, Inc. Authentication token with client key
US20200074552A1 (en) * 2018-08-28 2020-03-05 Novera Capital Inc. Systems and methods for short and long tokens

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001345832A (ja) * 2000-05-31 2001-12-14 Hitachi Ltd メールシステム、メールガード装置、操作端末
JP2001249901A (ja) * 2001-01-10 2001-09-14 Nippon Yunishisu Kk 認証装置およびその方法、並びに、記憶媒体
JP2007502578A (ja) * 2003-08-12 2007-02-08 インテル・コーポレーション 安全な移動体通信及び高価な取引の実行に対しランタイムパッケージ署名において信頼性の高いハードウェアベースのアイデンティティ信任状を使用する方法
JP2007006319A (ja) * 2005-06-27 2007-01-11 Dainippon Printing Co Ltd 鍵交換システム、端末装置及びプログラム
US20170141926A1 (en) * 2015-11-13 2017-05-18 Minghua Xu Methods and systems for pki-based authentication

Also Published As

Publication number Publication date
CN114698408A (zh) 2022-07-01
US20220376926A1 (en) 2022-11-24
KR20220058906A (ko) 2022-05-10
WO2022093164A1 (en) 2022-05-05
KR102652364B1 (ko) 2024-03-29
JP7410280B2 (ja) 2024-01-09
EP4280546A2 (en) 2023-11-22
EP4042312B1 (en) 2023-10-11
EP4042312A1 (en) 2022-08-17
CN114698408B (zh) 2024-05-07
EP4280546A3 (en) 2023-12-13

Similar Documents

Publication Publication Date Title
CN113015974B (zh) 针对隐私保护的可验证同意
US11949688B2 (en) Securing browser cookies
KR20220123695A (ko) 암호화 방식으로 보안 요청 검증
KR102608325B1 (ko) 클라이언트 장치에서 통신의 무결성 보호
JP7410280B2 (ja) 複数受信者セキュア通信
JP2023096089A (ja) グループ署名による匿名イベント証明
US20220417034A1 (en) Anonymous event attestation
CN118043812A (zh) 隐私保护和安全应用程序安装归因
US20240187420A1 (en) Securing browser cookies
US12003649B2 (en) Anonymous event attestation with group signatures
JP2022533874A (ja) 電気通信ネットワーク測定におけるデータ操作の防止およびユーザのプライバシーの保護

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20220502

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20220502

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20230419

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20230605

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20230816

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: 20231127

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20231221

R150 Certificate of patent or registration of utility model

Ref document number: 7410280

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150