JP2023503234A - 複数のサーバにおいて記憶された情報を制御するための要求の処理 - Google Patents

複数のサーバにおいて記憶された情報を制御するための要求の処理 Download PDF

Info

Publication number
JP2023503234A
JP2023503234A JP2022525404A JP2022525404A JP2023503234A JP 2023503234 A JP2023503234 A JP 2023503234A JP 2022525404 A JP2022525404 A JP 2022525404A JP 2022525404 A JP2022525404 A JP 2022525404A JP 2023503234 A JP2023503234 A JP 2023503234A
Authority
JP
Japan
Prior art keywords
data
client device
server
request
user data
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.)
Pending
Application number
JP2022525404A
Other languages
English (en)
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 JP2023503234A publication Critical patent/JP2023503234A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • 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
    • 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/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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/52Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • 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/604Tools and structures for managing or administering access control systems
    • 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
    • G06F21/645Protecting data integrity, e.g. using checksums, certificates or signatures using a third party
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
    • H04L63/0435Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload wherein the sending and receiving network entities apply symmetric encryption, i.e. same key used for encryption and decryption
    • 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/0823Network architectures or network communication protocols for network security for authentication of entities using certificates
    • 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/0853Network architectures or network communication protocols for network security for authentication of entities using an additional device, e.g. smartcard, SIM or a different communication terminal
    • 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/0876Network architectures or network communication protocols for network security for authentication of entities based on the identity of the terminal or configuration, e.g. MAC address, hardware or software configuration or device fingerprint
    • 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/0884Network architectures or network communication protocols for network security for authentication of entities by delegation of authentication, e.g. a proxy authenticates an entity to be authenticated on behalf of this entity vis-à-vis an authentication entity
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/10Network architectures or network communication protocols for network security for controlling access to devices or network resources
    • H04L63/108Network architectures or network communication protocols for network security for controlling access to devices or network resources when the policy decisions are valid for a limited amount of time
    • 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/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/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • 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/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • H04L9/0869Generation of secret information including derivation or calculation of cryptographic keys or passwords involving random numbers or seeds
    • 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/3234Cryptographic 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 additional secure or trusted devices, e.g. TPM, smartcard, USB or software token
    • 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/3242Cryptographic 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 keyed hash functions, e.g. message authentication codes [MACs], CBC-MAC or HMAC
    • 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
    • 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/3297Cryptographic 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 time stamps, e.g. generation of time stamps

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)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Power Engineering (AREA)
  • General Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • Health & Medical Sciences (AREA)
  • Automation & Control Theory (AREA)
  • Storage Device Security (AREA)
  • Information Transfer Between Computers (AREA)
  • Computer And Data Communications (AREA)

Abstract

複数のコンテンツプラットフォーム/サーバにおいて記憶された情報を制御するための要求を送信/処理するための、コンピュータ記憶媒体上で符号化されたコンピュータプログラムを含む、方法、システム、および装置。一態様では、クライアントデバイスが、デバイスの信頼性を検証するための要求をデバイス信頼性サーバへ送り得る。クライアントデバイスは、デバイス信頼性サーバから、クライアントデバイスが信頼できることを示すデータを受信することができ、それに応答して、クライアントデバイスは、中継サーバへ、複数のサーバにおいて記憶されたユーザデータを制御するための要求を送ることができる。クライアントデバイスは、中継サーバを介して、複数のサーバの各々から応答を受信し得る。応答に基づいて、クライアントデバイスは、ユーザデータを含んでいた、複数のサーバの少なくともサブセットが、ユーザデータを制御するための要求の中で明記されたアクションを実施したと判定し得る。

Description

関連出願の相互参照
本出願は国際出願であり、2020年8月23日に出願されたイスラエル出願第276868号の利益を主張する。上記の出願の開示内容は、参照によりその全体が本明細書に組み込まれている。
本明細書は概して、データ処理、ならびに複数のコンテンツプラットフォーム/サーバにおいて記憶された情報を制御するための要求の、セキュアで効率的な送信および処理に関する。
クライアントデバイスのユーザが、特定のコンテンツプラットフォーム/サーバにおいて記憶された、ユーザの情報に対する制御を要求する場合がある。ユーザデータを制御するためのそのような要求は、たとえば、ユーザの情報の全部または一部を消去するための要求、ユーザデータを修正するための要求、ユーザデータにアクセスするための要求、またはどの他のエンティティへのユーザデータの送信も防止するための要求を含み得る。ユーザの情報は、複数の異なるサーバにおいて記憶され得るので、クライアントデバイスは、別個の要求を生成し、そのような各コンテンツプラットフォーム/サーバへ送信しなければならない。
概して、本明細書に記載する主題の1つの発明的態様は、クライアントデバイスによって、デバイス信頼性サーバへ、クライアントデバイスの信頼性を検証するための要求を送る動作と、クライアントデバイスによって、デバイス信頼性サーバから、クライアントデバイスが信頼できることを示すデータを受信する動作と、クライアントデバイスが信頼できることを示すデータの受信に応答して、クライアントデバイスによって、中継サーバへ、複数のサーバにおいて記憶されたユーザデータを制御するための要求を送る動作であって、中継サーバは、ユーザデータを制御するための要求を複数のサーバの各々へ送信する前に、ユーザデータを制御するための要求を有効にするサーバであり、ユーザデータを制御するための要求は、ユーザデータに関して、サーバによって実施されるべきアクションを明記する、動作と、クライアントデバイスによって、中継サーバを介して、複数のサーバの各々から応答を受信する動作と、クライアントデバイスによって、応答に基づいて、ユーザデータを含んでいた、複数のサーバの少なくともサブセットが、ユーザデータを制御するための要求の中で明記されたアクションを実施したと判定する動作とを含む方法で具現化され得る。この態様の他の実施形態は、対応する方法、装置、およびコンピュータ記憶デバイス上で符号化された、方法のアクションを実施するように構成されたコンピュータプログラムを含む。これらおよび他の実施形態は各々、任意選択で、以下の特徴のうちの1つまたは複数を含み得る。
いくつかの実装形態では、方法は、クライアントデバイスによって、(1)クライアントデバイスのデバイス識別子、(2)第1のデータパラメータであって、デジタルトークンが作成された時間を明記するタイムスタンプである第1のデータパラメータ、(3)複数のサーバにおいて記憶されたユーザデータに関してアクションのタイプを明記する命令、および(4)複数のサーバを識別するデータ、を含むデジタルトークンを生成するステップと、クライアントデバイスによって、対称暗号化アルゴリズムを使って、デジタルトークンを暗号化して、暗号化されたデジタルトークンを取得するステップとをさらに含み得る。
いくつかの実装形態では、クライアントデバイスによって、対称暗号化アルゴリズムを使って、デジタルトークンを暗号化して、暗号化されたデジタルトークンを取得するステップは、暗号論的擬似ランダム関数を使って、現在の日付、第1のデータ列、およびデバイス識別子を含むデータパラメータに基づいて、暗号化鍵を生成するステップと、クライアントデバイスによって、暗号化鍵を使って、デジタルトークンを暗号化して、暗号化されたデジタルトークンを取得するステップとを含み得る。
いくつかの実装形態では、暗号論的擬似ランダム関数を使って、現在の日付、第1のデータ列、およびデバイス識別子を含むデータパラメータに基づいて、暗号化鍵を生成するステップは、(1)現在の日付および第1のデータ列を使って、第1のメッセージ認証コード(MAC)を計算すること、ならびに(2)デバイス識別子および第1のMACを使って、第2のMACを生成することによって、暗号化鍵を生成するステップを含み得る。
いくつかの実装形態では、クライアントデバイスの信頼性を検証するための要求は、(1)クライアントデバイスの信頼性がそこから判定されるデバイス信頼性データと、(2)暗号化されたデジタルトークンおよび第1のデータパラメータを使って生成された第3のMACとを含み得る、データの第1のセットを含み得る。
いくつかの実装形態では、ユーザデータを制御するための要求は、(1)クライアントデバイスが信頼できることを示すデータと、(2)暗号化されたデジタルトークンと、(3)第1のデータパラメータと、(4)複数のサーバを識別するデータと、(5)デバイス識別子、第2のデータパラメータ、および第3のデータパラメータを使って生成された第4のMACとを含むデータの第2のセットを含み得る。
いくつかの実装形態では、第2のデータパラメータは現在の日付を含んでよく、第3のデータパラメータは第2のデータ列を含む。
いくつかの実装形態では、クライアントデバイスによって、デバイス信頼性サーバから、クライアントデバイスが信頼できることを示すデータを受信することは、クライアントデバイスによって、デバイス信頼性サーバから、第3のMACに対する、デバイス信頼性サーバによるデジタル署名を受信することを含み得る。
いくつかの実装形態では、ユーザデータに関して、サーバによって実施されるべきアクションは、サーバにおいて記憶されたユーザデータを消去すること、サーバにおいて記憶されたユーザデータが、どの他のエンティティにも送信もされず、与えられもしないように要求すること、サーバにおいて記憶されたユーザデータへのアクセスを、1つもしくは複数のエンティティに対して可能にすること、収集されたユーザデータの開示を要求すること、または収集されたユーザデータのエクスポートを要求することのうちの1つを含み得る。
本明細書に記載する本主題の特定の実施形態は、以下の利点のうちの1つまたは複数を実現するように実装され得る。
本明細書に記載する技法は、クライアントデバイスのユーザについての情報を記憶するコンテンツプラットフォーム/サーバに対する多数の要求を処理するための、リソース効率的な技法を提供する。概して、多数の要求を生成し、様々なコンテンツプラットフォーム/サーバへ送信することは、クライアントデバイスの計算リソース(たとえば、バッテリー、プロセッサ周期、帯域幅など)を大量に消費し得る。本明細書に記載する技法は、そのような要求を生成し、送信する際に、クライアントデバイスから単一の要求(複数の要求とは反対に)を受信するとともに、複数の要求を生成し、ユーザデータを記憶する複数のコンテンツプラットフォーム/サーバへルーティングする中継サーバを使用することによって、クライアントデバイスの計算リソースに対する影響を大幅に削減することができる。
その上、本明細書に記載する技法は、中継サーバに対する攻撃がネットワークを超えて、中継サーバと通信する様々なコンテンツプラットフォーム/サーバに伝搬されるのを防止するか、または少なくともその見込みを低減するセキュリティ機構を提供する。たとえば、サービス拒否(DoS)攻撃が中継サーバ上で開始される場合があり、この攻撃は、中継サーバと通信する様々なコンテンツプラットフォーム/サーバに伝搬され得る。その結果、中継サーバ上でのDoS攻撃は、中継サーバの動作ならびに中継サーバと通信する様々なコンテンツプラットフォーム/サーバの動作を中断させ得る。そのような攻撃の蔓延/伝搬を防止または削減するために、本出願に記載する技法は、要求側クライアントデバイスの信頼性を検証するとともに、この信頼性指示を中継サーバへ与えるデバイス信頼性サーバを実装し、これは、様々なコンテンツプラットフォーム/サーバへどの要求/メッセージも送る前に、デバイスの信頼性を検証する。その結果、デバイスが信頼できないと思われるとき、またはデバイスの信頼性を検証することができないとき、中継サーバは、悪意のある、または可能性として侵害されたデバイスであり得るようなデバイスからの要求を提出しない。
さらにまた、本明細書に記載する技法は、中継サーバに与えられるどのユーザ/デバイス情報(たとえば、様々なサーバにおいて記憶されたユーザデータを制御するための要求を満たすのに使うことができる識別情報)も遮蔽し、したがって、中継サーバからの/による、そのような情報の、いかなる意図的または意図しない公表/拡散も避ける。いくつかの実装形態では、本明細書に記載する技法は、デバイス識別子(および/または他のデバイス/ユーザ識別情報)を、暗号化されたトークン内に暗号化し、このトークンに他のセキュリティ測度を適用してから、中継サーバへ送信する。このトークンを生成するのに使われる技法(以下で説明する)は、中継サーバが、このトークンを暗号解除/解読し得るのを防止し、それにより、中継サーバが、トークン内に記憶されたデバイスおよび/またはユーザ識別情報にアクセスし得るのを防止する。これらの保護技法は、中継サーバの動作と干渉しない。たとえば、このトークン内のデータがアクセス不可能であることにかかわらず、中継サーバは依然として、ユーザデータを制御するための要求を様々なコンテンツプラットフォーム/サーバへ送信することができる。その結果、本明細書に記載する技法は、ユーザデータに対する制御を要求するプロセス中はユーザ/デバイスプライバシーを維持しながら、様々なサーバにおいてユーザデータを制御するための、デバイスの要求の実施/満足を可能にする。
本明細書において説明される主題の1つまたは複数の実施形態の詳細は、添付の図面および以下の説明に記載される。本主題の他の特徴、態様および利点は、説明、図面および特許請求の範囲から明らかになるであろう。
デジタルコンテンツが、クライアントデバイス上での表示のために配信され、提供される例示的環境のブロック図である。 コンテンツプラットフォーム上に記憶されたユーザ情報に対する制御を行うための、クライアントデバイスの要求が受信され、処理される例示的環境のブロック図である。 オーディオデジタルコンポーネント用に生成されたテンプレートに基づいて、オーディオデジタルコンポーネントの変形体を生成し、配信するための例示的プロセスの流れ図である。 記載する動作を実施するのに使われ得る例示的コンピュータシステムのブロック図である。
本明細書は概して、複数のコンテンツプラットフォーム/サーバにおいて記憶された、ユーザデータとも呼ばれるユーザ情報を制御するための要求の、セキュアで効率的な送信および処理に関する。
以下で要約し、本文書を通してより詳細に記載するように、クライアントデバイスは、様々なサーバにおいて記憶されたユーザ情報を制御するための要求を生成し、送信するように、中継サーバおよびデバイス信頼性サーバとともに動作する。
いくつかの実装形態では、クライアントデバイスは、クライアントデバイスの信頼性を検証するための要求をデバイス信頼性サーバへ送る。この要求は、デバイスの環境から取得された信号のセットを含むデバイス信頼性データであって、クライアントデバイスの信頼性をそこから判定することができるデータを含み得る。
デバイス信頼性サーバは、要求の中に含まれるデバイス信頼性データを、デバイスの信頼性を検証するのに使う。この検証に基づいて、デバイス信頼性サーバは、クライアントデバイスが信頼できるかどうかを示すデータをクライアントデバイスへ送る。
クライアントデバイスが信頼できるかどうかを示すデータをデバイス信頼性サーバから受信すると、クライアントデバイスは、中継サーバへ、様々なサーバにおいて記憶されたユーザ情報を制御するための要求を送る。ユーザ情報を制御するための要求は、ユーザ情報に関してサーバによって実施されるべきアクション(たとえば、ユーザ情報を消去する、ユーザ情報へのアクセス権を修正する、ユーザ情報の拡散を防止する)を明記し、要求されたアクションが実施されるべきであるサーバを明記する。この要求は、クライアントデバイスが信頼できるかどうかを示すデータも含む。
クライアントデバイスから要求を受信すると、中継サーバは、デバイス信頼性サーバから受信されたデータに基づいて、デバイスが信頼できると判定して、この要求を有効にする。有効にされると、中継サーバは、ユーザ情報を制御するための要求を、クライアントデバイスからの要求の中で明記された様々なサーバへ送信する。サーバは、中継サーバから要求を受信すると、要求を有効にし、ユーザ情報に対する制御を果たすための、要求の中で明記された適切なアクションを実施する。
サーバは次いで、サーバが要求を満たしたかどうかを明記する応答を、中継サーバへ送る。中継サーバは、これらの応答をクライアントデバイスへ送り、ユーザ情報を制御するための要求が満たされたかどうかに関する確認を与える。
これらの特徴および追加特徴について、図1~図4を参照して以下でより詳細に、さらに説明する。
本明細書全体にわたる記述に加え、ユーザは、本明細書に記載するシステム、プログラムまたは特徴が、ユーザ情報(たとえば、ユーザのソーシャルネットワーク、社会的行為もしくは活動、職業、ユーザの嗜好、またはユーザの現在の居場所についての情報)の収集を可能にし得るかどうか、およびいつ可能にし得るかと、ユーザがサーバからコンテンツまたは通信を送られるかどうかの両方について選定をユーザが行えるようにする制御を与えられ得る。さらに、特定のデータが、記憶され、または使われる前に、個人を識別できる情報が削除されるように1つまたは複数のやり方で扱われ得る。たとえば、ユーザについて個人を識別できる情報を判定することができないようにユーザのアイデンティティが扱われてよく、またはユーザの地理的ロケーションが、ユーザの具体的なロケーションを判定することができないようにロケーション情報が取得されるように(たとえば、市、郵便番号、または州レベルに)一般化されてよい。したがって、ユーザは、ユーザについてどのような情報が収集されるか、その情報がどのように使われるか、およびどのような情報がユーザに提供されるかに対する制御を有し得る。
図1は、デジタルコンテンツが、クライアントデバイス上での表示のために配信され、提供される例示的環境100のブロック図である。
例示的環境100は、ネットワーク104を含む。ネットワーク104は、ローカルエリアネットワーク(LAN)、ワイドエリアネットワーク(WAN)、インターネット、またはそれらの組合せを含み得る。ネットワーク104はまた、どのタイプのワイヤードおよび/もしくはワイヤレスネットワーク、衛星ネットワーク、ケーブルネットワーク、Wi-Fiネットワーク、モバイル通信ネットワーク(たとえば、3G、4Gなど)、またはそれらのどの組合せも含むことができる。ネットワーク104は、インターネットプロトコル(IP)、送信制御プロトコル(TCP)、ユーザデータグラムプロトコル(UDP)、または他のタイプのプロトコルなど、パケットベースおよび/またはデータグラムベースのプロトコルを含む通信プロトコルを使用することができる。ネットワーク104は、スイッチ、ルータ、ゲートウェイ、アクセスポイント、ファイアウォール、基地局、リピータまたはそれらの組合せなど、ネットワーク通信を容易にし、かつ/またはネットワーク用のハードウェア基盤を形成するいくつかのデバイスをさらに含み得る。
ネットワーク104は、クライアントデバイス102、コンテンツプラットフォーム106、デバイス信頼性サーバ110、および中継サーバ108を接続する。例示的環境100は、多くの異なるコンテンツプラットフォーム106、中継サーバ108、クライアントデバイス102、およびデバイス信頼性サーバ110を含み得る。
コンテンツプラットフォーム106は、コンテンツの配信を可能にするコンピューティングプラットフォーム(たとえば、図4に関して記載するネットワークサーバまたは別のデータ処理装置など)である。例示的コンテンツプラットフォーム106は、検索エンジン、ソーシャルメディアプラットフォーム、新規プラットフォーム、データアグリゲータプラットフォーム、または他のコンテンツ共有プラットフォームを含む。各コンテンツプラットフォーム106は、コンテンツプラットフォームサービスプロバイダによって運営され得る。
コンテンツプラットフォーム106は、それ自体のコンテンツを公開し、利用可能にし得る。たとえば、コンテンツプラットフォーム106は、独自のニュース記事を公開するニュースプラットフォームであってよい。コンテンツプラットフォーム106は、コンテンツプラットフォーム106の一部ではない1つまたは複数のコンテンツプロバイダ108によって提供されるコンテンツを提示する場合もある。上記の例では、ニュースプラットフォームはまた、1つまたは複数のコンテンツプロバイダ108によって提供されるサードパーティコンテンツを提示し得る。別の例として、コンテンツプラットフォーム106は、独自のコンテンツは公開しないが、異なるコンテンツプロバイダ108によって提供されるサードパーティコンテンツを集約し、提示するデータアグリゲータプラットフォームであってよい。
いくつかの実装形態では、コンテンツプラットフォーム106は、クライアントデバイスについての特定の情報(たとえば、デバイス選好情報、コンテンツ消費情報など)を記憶し得る。そのようなユーザ情報は、コンテンツプラットフォームによって、たとえば、クライアントデバイス102に与えられるコンテンツをあつらえるのに、またはクライアントデバイス102によって頻繁にアクセスされる特定のコンテンツへの即時アクセスを可能にするのに使われ得る。いくつかの実装形態では、コンテンツプラットフォーム106は、そのようなデバイス情報をプラットフォーム上に記憶しない場合があるが、コンテンツプラットフォーム106はそれにも関わらず、そのような情報を、(コンテンツプラットフォームとは別個の)特定のサーバ上での記憶のために与え得る。コンテンツプラットフォーム106(本明細書では、コンテンツプラットフォーム/サーバ106または単にサーバとも呼ばれる)はしたがって、そのようなデバイス情報を記憶するコンテンツプラットフォームまたはそのようなデバイス情報を記憶する(コンテンツプラットフォームとは別個の)サーバを指す。
デバイス信頼性サーバ110は、クライアントデバイス102が信頼できるかどうかを判定するサーバ(または図4に関して記載する別のデータ処理装置)である。いくつかの実装形態では、クライアントデバイス102は、本明細書ではデバイス信頼性データと呼ばれる信号のセット(たとえば、使われるデバイスのタイプ、デバイスのオペレーティングシステム、など)を、デバイス信頼性サーバ110へ与える。受信されたデバイス信頼性データに基づいて、デバイス信頼性サーバ110は、クライアントデバイスが信頼できるかどうかを判定する。いくつかの実装形態では(ならびに図2および図3を参照して以下でさらに説明するように)、デバイス信頼性サーバ110は、クライアントデバイス102が信頼できるかどうかに関する指示をクライアントデバイス102に与える。
中継サーバ108は、クライアントデバイス102に関連付けられたユーザについてのユーザ情報を記憶する、クライアントデバイスと様々なコンテンツプラットフォーム/サーバ106との間の中継器にサービスするサーバ(または図4に関して記載する別の適切なデータ処理装置)である。中継サーバ108は、クライアントデバイス102から受信された、ユーザ情報を制御するための要求を有効にしてから、そのような要求を複数のサーバの各々へ送信する(図2および図3を参照して記載するように)。いくつかの実装形態では(ならびに図2および図3を参照して以下でさらに説明するように)、中継サーバは、クライアントデバイス102から、複数のコンテンツプラットフォーム/サーバ106において記憶されたユーザ情報を行使するための単一の要求を受信し、この要求を有効にし、有効にされた場合、この要求を複数のコンテンツプラットフォーム/サーバ106へ送信する。
例示的環境100のこれらの構成要素の追加の構造的および動作態様について、図2を参照して記載する。
図2は、クライアントデバイス102から複数のコンテンツプラットフォーム106への、ユーザ情報を制御するための要求の送信および処理に関する例示的環境200のブロック図である。
図2に示すように、クライアントデバイス102は、オペレーティングシステム204、デバイス信頼性クライアント210、およびアプリケーションA202を含む。オペレーティングシステム204は概して、たとえば、アプリケーションA202など、クライアントデバイス102のハードウェアおよびソフトウェアリソースを管理するのを担当する。いくつかの実装形態では、オペレーティングシステム204は、トークンジェネレータ206およびMACジェネレータ208を含み、これらの各々について、以下で説明する。
トークンジェネレータ206は、複数のコンテンツプラットフォーム/サーバ106において記憶されたユーザ情報を制御するためのデータおよび命令を使って、デジタルトークンを生成する。いくつかの実装形態では、トークンジェネレータ206は、たとえば、クライアントデバイス102の秘密鍵を使って、生成されたデジタルトークンにデジタル署名する。
いくつかの実装形態では、トークンジェネレータ206によって生成された、デジタル署名されたトークンは、証明トークンである。本明細書において使われるように、証明とは、データのセットを含むデジタルトークンであり、データセットは、(1)クライアントデバイス102の一意の識別子、(2)トークンの作成時間を示すタイムスタンプ(要求タイムスタンプとも呼ばれる)、(3)ユーザ情報に対する制御を行うための要求を示すデータを含むペイロード、および(4)任意選択で、デバイス信頼性サーバ110によってあらかじめ生成されたデバイス信頼性トークン(すなわち、デバイス信頼性トークンは、証明トークンに含まれてよいが、含まれる必要はない)というデータ項目のうちの1つまたは複数を含み得る。証明トークンは、クライアントデバイス102の秘密鍵を使って、証明トークンの中に含まれるデータのセットに署名することによってトークンジェネレータ206が生成するデジタル署名も含む。
以下の段落では、証明トークンの中に含まれる、データのセットの中の各データ項目、およびこのデータセットのデジタル署名について記述する。
証明トークンの中に含まれる、クライアントデバイス102の一意の識別子は、クライアントデバイス102の公開鍵であるか、またはそれを含み得る。たとえば、クライアントデバイス102は、デバイス秘密鍵およびデバイス公開鍵を含む1つまたは複数の暗号化鍵ペアを生成および/または維持することができる。デバイス公開鍵は、デバイス秘密鍵に対応し、数学的にリンクされる。秘密鍵を使ってデジタル署名されているデータは、対応する公開鍵を使ってのみ、検証することができる。同様に、公開鍵を使って暗号化されているデータは、対応する秘密鍵を使ってのみ、解読することができる。代替として、デバイスの公開鍵ではなく、たとえば、デバイスのMACアドレスなど、別の適切なデバイス識別子が使われてもよい。
証明トークンの中に含まれるタイムスタンプは、証明トークンが作成された時間を明記する/示す。いくつかの実装形態では、タイムスタンプは、証明トークンが作成された時間(およびいくつかの事例では、日付)を明記する。いくつかの実装形態では、タイムスタンプは、高解像度で(たとえば、作成時間をマイクロ秒もしくはナノ秒もの単位で記録することができるように)または低解像度で(たとえば、記録された作成時間が時間もしくは分の単位であるように)、時間を記録することができる。
証明トークンの中に含まれるペイロードは、1つまたは複数のサーバにおいて記憶されたユーザ情報を制御するための要求を示すデータを含み得る。このデータは、(1)データに関してユーザが要求しているアクションのタイプ(たとえば、データを消去する、データへのアクセスを修正する、データのさらなる送信を防止する)を明記すること、および(2)要求の範囲、すなわち、要求されたアクションを、特定のコンテンツプラットフォーム/サーバ106において、それとも(要求を受信する)中継サーバ108と通信するコンテンツプラットフォーム/サーバにおいて実施するかを明記することができる。要求の範囲が、特定のコンテンツプラットフォーム/サーバ106における、要求されたアクションを明記する場合、ペイロードは、それらのプラットフォーム/サーバ106のドメインアドレスまたは他のタイプの識別子も含む可能性がある。
デバイス信頼性トークンは、証明トークンの中に任意選択で含まれてよく、信頼されるクライアントデバイス102によって証明トークンが送られたかどうかをエンティティが判定することを可能にする。デバイス信頼性トークンは、特定のクライアントデバイスに対応する信号のセットを評価するとともに、評価に基づいて信頼性のレベル(たとえば、スコアの限度内の数値スコア、信頼性のバイナリ判定)をクライアントデバイス102に割り当てるサードパーティデバイス完全性システム(デバイス信頼性サーバ110など)によって発行され得る。
いくつかの実装形態では、クライアントデバイス102向けのデバイス信頼性トークンは、(1)デバイス信頼性トークンが生成された時間における、クライアントデバイス102の信頼性(または完全性)のレベルを示す判断、(2)デバイス信頼性トークンが生成された時間を示すデバイス信頼性トークン作成時間、および(3)クライアントデバイス102についての一意の識別子(たとえば、クライアントデバイスのデバイス公開鍵またはその派生物であってよい)を含み得る。デバイス信頼性トークンは、デバイス信頼性トークンの中に、データのデジタル署名も含み得る。このデジタル署名は、デバイス信頼性サーバ110の秘密鍵を使って生成され得る。
たとえば、デバイス信頼性サーバ110は、その秘密鍵を使ってデータに署名すればよく、鍵は、サーバ110が内密に維持する。デバイス信頼性トークンを受信するエンティティは、デバイス信頼性トークンの署名を検証するのに、デバイス信頼性サーバ110の公開鍵を使えばよい。その上、クライアントデバイス102用のデバイス公開鍵(またはその派生物、たとえば、デジタルダイジェスト)をデバイス信頼性トークンと証明トークンの両方に含めると、これらの2つのトークン同士が結び付く。言い換えると、クライアントデバイス102のデバイス公開鍵(または別の適切なデバイス識別子)をデバイス信頼性トークンの中に含めることによって、証明トークンの受信者は、デバイス信頼性トークンがそのクライアントデバイス102用に生成されたと判定することができる。これにより、たとえば、他の当事者が、信頼されるデバイス用のデバイス信頼性トークンを、エミュレータまたは侵害されたクライアントデバイスからの偽造された要求の中に含めるのを防止する。
証明トークンとともに含まれるデジタル署名は、上で記載した、データ(またはその何らかの変形体)のセットのデジタル署名であってよい。このデジタル署名は、クライアントデバイス102のデバイスの秘密鍵を使って生成され、秘密鍵は、クライアントデバイス102のオペレーティングシステム204によってセキュアに、および内密に維持され得る。いくつかの実装形態では、デジタル署名は、ペイロード、デバイス識別子(たとえば、デバイス公開鍵)、タイムスタンプ、およびデバイス信頼性トークンからなるデジタル署名であってよい。いくつかの実装形態では、オペレーティングシステム204は、楕円曲線デジタル署名アルゴリズム(ECDSA)を使ってデジタル署名を生成するが、RSAなど、他の署名技法が使われてもよい。
いくつかの状況では、別のタイプのデジタル署名されたトークンがトークンジェネレータ206によって生成される場合があり、これはまた、ユーザ情報を制御するための要求およびどの対応するデータの通信もセキュアにするのに使われ得る。たとえば、そのような実装形態では、データは、サードパーティ完全性システム(デバイス信頼性サーバ110など)の秘密鍵を使ってデジタル署名され得る。デジタル署名されたトークンを続いて受信するエンティティは、サードパーティ完全性システムに対して、対応する公開鍵を要求し、次いで、この鍵を、署名および含まれるデータを検証するのに使うことができる。
MACジェネレータ208は、データの異なるセット向けにメッセージ認証コード(MAC)を生成する(以下でさらに、およびさらに図3を参照して説明するように)。いくつかの実装形態では、MACジェネレータ208は、(暗号論的擬似ランダム関数の一タイプである)MACアルゴリズムを、ハッシュベースのメッセージ認証コード(HMAC)を生成するのに使い、HMACは、鍵付きハッシュメッセージ認証コードとも呼ばれる。そのような実装形態では、MACジェネレータ208は、データ/パラメータの異なるセット向けに、HMACを(たとえば、HMAC SHA256アルゴリズムを使って)生成する。いくつかの実装形態では、HMACまたは別のMACアルゴリズムを使うのではなく、MACジェネレータ208は、本明細書全体にわたって記載するように、場合によっては様々なデジタルダイジェストを生成する際にMACジェネレータ208によって使われるパラメータを使う別の適切な暗号論的擬似ランダム関数(PRF)を使う。参照しやすいように、本明細書ではこれ以降、MACジェネレータ208は、MACまたはHMACを生成するものとして記述されるが、本明細書全体にわたって記載する同じ関数/計算が、別の適切な暗号論的PRFを使って代替として実施されてもよいことが諒解されよう。
MACジェネレータ208は、オペレーティングシステム204の秘密暗号化鍵(クライアントデバイス内のセキュアなロケーションに記憶される)を使って、データの特定のセット用のHMACを生成する。図2のシステムによって生成されたMAC/HMACについて、以下でさらに説明する。
クライアントデバイス102は、デバイス信頼性クライアント210も含む。いくつかの実装形態では、デバイス信頼性クライアント210は、オペレーティングシステム204によって呼び出され、単独で、またはオペレーティングシステム204と協力して、クライアントデバイス102の環境から信号を収集する。デバイス信頼性クライアント210によって収集される信号の例は、デバイスのタイプ、デバイスのモデル番号、デバイスがルート化および/または脱獄されている(jailbroken)かどうかの根拠、デバイス上で稼動するオペレーティングシステム、デバイスが最後にアップデートされたとき、などを含むが、それらに限定されない。代替として、デバイス信頼性クライアント210ではなく、オペレーティングシステム204のみがデバイス信頼性データを取得し得る。これらの信号は、まとめてデバイス信頼性データと呼ばれ、デバイス信頼性サーバ110によってクライアントデバイス102の信頼性を判定するのに使われ得る(以下で、および図3を参照してさらに記載する)。
いくつかの実装形態では、クライアントデバイス102は(たとえば、アプリケーションA202を介して)、クライアントデバイス102の信頼性を検証するための要求212を生成する。この要求は、(1)デバイス信頼性クライアント210、オペレーティングシステム204、または両方によって取得された、クライアントデバイスの信頼性がそこから判定されるデバイス信頼性データと、(2)本明細書では「第3のMAC」とも呼ばれる、暗号化された証明トークンおよび要求タイムスタンプからなるデジタルダイジェストとを含み得る。
いくつかの実装形態では、暗号化された証明トークンおよび要求タイムスタンプからなる、このデジタルダイジェストは、以下の動作において記述されるように、単独で、またはオペレーティングシステム204とともに動作するMACジェネレータ208を使って生成される。
最初に、MACジェネレータ208は、現在の日付およびデータ列(たとえば、「encrypt」などのフレーズ)を使ってHMACを生成すること、次いで、現在の日付およびデータ列ならびにクライアントデバイス102の一意の識別子からなるHMAC(たとえば、デバイスの公開鍵)を使って別のHMACを生成することによって、秘密鍵を生成する。この動作は、以下の公式化を使って表され得る。
HMAC(DeviceID,HMAC(current_date,"encrypt")
代替として、上記計算は、秘密鍵を生成するためのこの計算のパラメータ(DeviceID、current_date、"encrypt")のいずれかを交換するように修正されてよい。たとえば、MACジェネレータ208は、DeviceIDおよびデータ列(たとえば、「encrypt」などのフレーズ)を使ってHMACを生成すること、次いで、DeviceIDおよびデータ列ならびにcurrent_dateからなるHMACを使って別のHMACを生成することによって、秘密鍵を生成することができる。別の例として、MACジェネレータ208は、DeviceIDおよびcurrent_dateを使ってHMACを生成すること、次いで、DeviceIDならびにcurrent_dateおよびデータ列(「encrypt」)からなるHMACを使って別のHMACを生成することによって、秘密鍵を生成することができる。
代替として、上記計算ではなく、MACジェネレータ208は、MAC(Device||current_date||"encrypt")のようにMACを計算することによって、秘密鍵を生成することができる。この例示的計算では、||は、複合メッセージを組み立てるための、単純なメッセージ、たとえば、プロトコルバッファ、簡潔なバイナリオブジェクト表現(CBOR)からのどの可逆的方法であってもよい。
別の代替として、3つのパラメータを使う、どの他の暗号論的擬似ランダム関数(MAC/HMAC以外)も、要求216の中に含まれるデータのセットの中のデータ項目(5)を生成するのに使われてよい。
HMAC(およびしたがって、得られる秘密鍵)を生成する際に現在の日付を使うことによって、秘密鍵は短命である。言い換えると、秘密鍵は、現在の日付における証明トークンを解読するのに使うことができるだけである(以下でさらに説明するように)。
第2に、MACジェネレータ208(または概して、オペレーティングシステム204)は、生成された秘密鍵を使って証明トークンを暗号化するのに、対称確率的暗号化アルゴリズムを使う。
第3に、MACジェネレータ208は、暗号化された証明トークンと、証明トークンの作成のタイムスタンプとを使ってHMACを生成して、たとえば、暗号化された証明トークン、および証明トークンが作成されたときを明記する要求タイムスタンプからなるデジタルダイジェスト(第3のMACとも呼ばれる)を取得する。この動作は、以下の公式化を使って表され得る。
HMAC(encrypted_attestation_token,request_timestamp)
上述したように、暗号化された証明トークンおよび要求タイムスタンプからなるデジタルダイジェストは、暗号化された証明トークンおよびrequest_timestampという、2つのパラメータからなるHMACである。いくつかの実装形態では、このデジタルダイジェスト/第3のMACを生成するのではなく、暗号化された証明トークンのみが要求212の中に含まれる場合がある。本明細書ではこれ以降、暗号化された証明トークンおよび要求タイムスタンプからなるデジタルダイジェストが、要求212の中に含まれると想定される。ただし、暗号化された証明トークンが要求212の中に含まれる場合、以下の開示は、等しく適用可能であることが諒解されよう。
HMACアルゴリズムまたは別のPRFアルゴリズム(暗号化された証明トークンおよび要求タイムスタンプに対する)を使用することにより、デバイス信頼性サーバ110は、暗号化された証明トークンを受信もせず、デバイス信頼性サーバ110は、暗号化された証明トークンおよび要求タイムスタンプに対するHMAC(または他のPRF)から証明トークンを推論することもできない。その結果、デバイス信頼性サーバ110は、ユーザ情報を制御するための、クライアントデバイス102の要求の性質(たとえば、デバイスが、すべてのユーザ情報の消去/修正を要求しているかどうか)も、要求の範囲(たとえば、要求が、特定のコンテンツプラットフォーム/サーバ106によって、それともより多数のそのようなサーバ/プラットフォーム106によって実施されるべきであるか)も学習することはできない。
図2に戻ると、クライアントデバイス102は、デバイス信頼性サーバ110へ要求212を送る。要求212を受信すると、デバイス信頼性サーバ110は、要求212の中に含まれるデバイス信頼性データを、デバイスが信頼できるかどうかを判定するのに使う。デバイス信頼性サーバ110が、クライアントデバイス102が信頼できると判定した場合、デバイス信頼性サーバ110は、暗号化された証明トークンおよび要求タイムスタンプからなるデジタルダイジェストに、その秘密鍵でデジタル署名する。一方、デバイス信頼性サーバ110が、クライアントデバイス102が信頼できないと判定した場合、デバイス信頼性サーバは、暗号化された証明トークンおよび要求タイムスタンプからなるデジタルダイジェストにデジタル署名しない。
いくつかの状況では、暗号化された証明トークンおよび要求タイムスタンプからなるデジタルダイジェストにデジタル署名することによって、信頼性を示すのではなく(またはそれに加え)、デバイス信頼性サーバ110は、フラグ(たとえば、0が、信頼できないことを示し、1が、信頼できることを示す、1ビットフラグ)または他のデータ(たとえば、「TRUST」が、デバイスが信頼できることを示し、「DON'T TRUST」が、デバイスが信頼できないことを示すデータメッセージ)を使って、デバイスの信頼性を示すことができる。本明細書ではこれ以降、デバイス信頼性サーバ110は、暗号化された証明トークンおよび要求タイムスタンプからなるデジタルダイジェストにデジタル署名することによって、デバイスの信頼性を示すと想定される。
デバイス信頼性サーバ110は、クライアントデバイス102へ応答214を送る。この応答は、暗号化された証明トークンおよび要求タイムスタンプからなるデジタルダイジェストに対するデジタル署名(デバイス信頼性サーバ110が、クライアントデバイス102が信頼できると判定する場合)またはエラーコード/空の応答(デバイス信頼性サーバ110が、クライアントデバイス102が信頼できないと判定するか、もしくはデバイス信頼性サーバ110が、クライアントデバイス102の信頼性を検証することができないと判定する場合)を含む。
デバイス信頼性サーバ110から応答214を受信すると、クライアントデバイス102は、中継サーバ108へ要求216を送り、複数のコンテンツプラットフォーム/サーバ106において記憶されたユーザ情報に対する制御を要求する。いくつかの実装形態では、クライアントデバイス102(たとえば、オペレーティングシステム204)が中継サーバ108へ要求216を送るとき、この要求216はデータのセットを含む。このデータセットは、(1)暗号化された証明トークン(もしくは他のデジタルトークン)および要求タイムスタンプからなる、デジタル署名された第3のMAC/デジタルダイジェスト、(2)暗号化された証明トークン(もしくは他のデジタルトークン)、(3)証明トークン(もしくは他のデジタルトークン)が作成されたときを示すタイムスタンプ、(4)証明トークンのペイロードの中で明記される(および、上で記載した)、要求の範囲、または(5)デバイスの一意の識別子(たとえば、デバイスの公開鍵)に対するHMAC(もしくは別の適切なPRF)ならびに現在の日付およびデータ列(たとえば、"challenge"などのフレーズ)に対する別のHMACというデータ項目のうちの1つまたは複数を含み得る。データ項目(5)の中のHMACは、以下の公式化を使って表すことができる。
HMAC(DeviceId,HMAC(current_date,"challenge")
代替として、上記計算は、データ項目5の中でHMACを生成するためのこの計算のパラメータ(DeviceID、current_date、"challenge")のいずれかを交換するように修正されてよい。たとえば、MACジェネレータ208は、DeviceIDおよびデータ列("challenge")を使ってHMACを生成すること、次いで、DeviceIDと、データ列ならびにcurrent_dateとからなるHMACを使って別のHMACを生成することによって、このHMACを生成することができる。別の例として、MACジェネレータ208は、DeviceIDおよびcurrent_dateを使ってHMACを生成すること、次いで、DeviceIDならびにcurrent_date、およびデータ列("challenge")からなるHMACを使って別のHMACを生成することによって、HMACを生成することができる。
代替として、上記計算ではなく、MACジェネレータ208は、MAC(Device||current_date||"challenge")のようにMACを計算することによって、秘密鍵を生成することができる。この例示的計算では、||は、複合メッセージを組み立てるための、単純なメッセージ、たとえば、プロトコルバッファ、簡潔なバイナリオブジェクト表現(CBOR)からのどの可逆的方法であってもよい。
別の代替として、3つのパラメータを使う、どの暗号論的擬似ランダム関数も、要求216の中に含まれるデータのセットの中のデータ項目(5)を生成するのに使われてよい。
要求216およびその中に含まれるデータのセットを受信すると、中継サーバ108は、クライアントデバイス102がデバイス信頼性サーバ110によって信頼できると判定されたかどうかを判定する。いくつかの実装形態では、中継サーバ108は、デバイス信頼性サーバ110によって作成されたデジタル署名を検証するのに、デバイス信頼性サーバ110の公開鍵を使う。デジタル署名が検証された場合、中継サーバ108は、クライアントデバイスが信頼できると判定する。一方、デジタル署名が検証されない場合、中継サーバ108は、クライアントデバイス102が信頼できないと判定する。いくつかの実装形態では、中継サーバ108は、要求タイムスタンプによって示される、要求の新しさをさらに検証する(たとえば、要求タイムスタンプによって示される時間の後の一定の閾時間内に受信される要求は、新しい要求であると思われる)。さらに、中継サーバは、暗号化された証明トークンおよび要求タイムスタンプからなるデジタルダイジェストを算出し直すこと、およびデジタルダイジェストを、要求の中で受信されたデジタルダイジェストと突き合わせることによって、要求を有効にする。不一致は、要求が無効であることを示す(このことは、クライアントデバイスが信頼できないことを表し得る)。
中継サーバ108が、クライアントデバイス102が信頼できないか、または要求が無効であると判定した場合、中継サーバ108は、通信相手であるコンテンツプラットフォーム/サーバ106のいずれにも、要求をそれ以上は送信しない。したがって、クライアントデバイス102が、中継サーバ108と通信するコンテンツプラットフォーム/サーバに対して攻撃(たとえば、DoS攻撃)を働くことを試みる、悪意のある、または侵害されたデバイスである限り、中継サーバ108の(およびデバイス信頼性サーバ110の)信頼性判定が、そのような攻撃を防止する。いくつかの実装形態では、コンテンツプラットフォーム/サーバ106へどの要求も送信しないと判定するのに加え、中継サーバ108は、要求216が満たされなかったことを示すメッセージを、クライアントデバイス102へ送ってもよい。
一方、中継サーバ108が、クライアントデバイス102が信頼できると判定した場合、中継サーバ108は、要求216に含まれる、要求の範囲の中で明記されたコンテンツプラットフォーム/サーバ106へ要求218を送信する。たとえば、要求216の中に含まれる、要求の範囲が、特定のコンテンツプラットフォーム/サーバ106に対応する、選ばれた数のドメインのみを明記する場合、中継サーバ108は、それらのコンテンツプラットフォーム/サーバ106の各々へ要求218を送信する。一方、要求218の中に含まれる要求の範囲が、特定のコンテンツプラットフォーム/サーバ106に対応する、選ばれた数のドメインを明記しない場合、中継サーバ108は、要求が大域的であると推論し、したがって、中継サーバ108と通信する様々なコンテンツプラットフォーム/サーバ106へ、要求218を送信する。
いくつかの実装形態において、要求218はデータのセットを含み得る。このデータセットは、要求216(すなわち、クライアントデバイス102から中継サーバ108への要求)から抽出されたデータ項目、すなわち、(1)暗号化された証明トークン(または他のデジタル署名されたトークン)および要求タイムスタンプからなる、デジタル署名されたデジタルダイジェストと、(2)暗号化された証明トークン(または他のデジタルトークン)と、(3)証明トークン(または他のデジタルトークン)が作成されたときを示すタイムスタンプと、(4)デバイスの一意の識別子(たとえば、デバイスの公開鍵)に対するHMACならびに現在の日付およびフレーズ(たとえば、"challenge")に対する別のHMACとのうちの1つまたは複数を含み得る。データ項目(4)のHMAC動作は、以下の公式化を使って表すことができる。
HMAC(DeviceID,HMAC(current_date,"challenge")
要求216の中のデータ項目(5)に関して記述されるように、上記計算は、代替法で計算することもでき、HMAC以外の別の暗号論的擬似ランダム関数を使って計算することができる。
要求218を受信すると、コンテンツプラットフォーム/サーバ106は、暗号化された証明トークンおよび要求タイムスタンプからなるデジタルダイジェストに対する、デバイス信頼性サーバ110のデジタル署名を検証することができる(中継サーバ108が署名を検証するのに関して上述したのと同じやり方で)。
デジタル署名が検証されない場合、コンテンツプラットフォーム/サーバ106は、要求218をそれ以上は処理せず、中継サーバ108および/またはクライアントデバイス102が、誤動作したか、または信頼できないか、もしくは侵害されていると判定する。いくつかの実装形態では、コンテンツプラットフォーム/サーバ106は、要求タイムスタンプによって示される、要求の新しさをさらに検証する。さらに、コンテンツプラットフォーム/サーバは、中継サーバ108が署名を検証するのに関して上述したのと同じやり方で、暗号化された証明トークンおよび要求タイムスタンプからなるデジタルダイジェストを算出し直すこと、ならびにデジタルダイジェストを、要求の中で受信されたデジタルダイジェストと突き合わせることによって、要求を有効にする。不一致は、要求が無効であることを示す。
一方、デジタル署名および要求が(たとえば、上述した同じ検証およびデジタルダイジェスト比較に基づいて)検証された場合、コンテンツプラットフォーム/サーバ106は、クライアントデバイス102が信頼できると判定する。そのような事例では、コンテンツプラットフォーム/サーバ106は、コンテンツプラットフォーム/サーバ106が、クライアントデバイス102の一意のデバイス識別子(たとえば、デバイスの公開鍵)に対応するユーザ情報を含むかどうかを判定する。
中継サーバ108が、暗号化された証明トークンおよび要求タイムスタンプからなるデジタルダイジェストをコンテンツプラットフォーム/サーバ106に与えるだけの実装形態では、コンテンツプラットフォーム/サーバ106は、証明トークン(または別のデジタルトークン)の中に含まれる、デバイスの一意の識別子(たとえば、デバイスの公開鍵)にアクセスすることができないことに留意されたい。そのような実装形態では、コンテンツプラットフォーム/サーバ106は、デバイスの一意の識別子(DeviceID)とHMAC値(または別のPRFを使って生成された他のデジタルダイジェスト値)との間の相関関係を維持するルックアップテーブル(または別の適切なデータ構造)を記憶する記憶デバイスを含み、HMAC値は、デバイスの一意の識別子と、現在の日付およびデータ列フレーズ(たとえば、"challenge"などのフレーズ)に対する別のHMACとに対して計算される(すなわち、要求218に関して上述したのと同じパラメータを使って、および同じ計算に基づいて)。言い換えると、得られるHMAC計算は、上の要求218におけるデータ項目(4)を取得するために実施されたHMAC計算と同様である。
HMAC(DeviceID,HMAC(current_date,"challenge")
上で記載したように、上記計算は、代替法で計算することもでき、HMAC以外の別の暗号論的擬似ランダム関数を使って計算することができる。
「current_date」が、HMAC値を計算する際にパラメータとして使われるので、コンテンツプラットフォーム/サーバ106は、その日の現在の日付を使って、計算されたHMAC値をルックアップテーブル224中で毎日更新する。したがって、中継サーバ108が、現在の日付以外の日付を使って計算される、計算されたHMAC値を送った場合、HMACはルックアップテーブル中で見つからず、コンテンツプラットフォーム/サーバ106は、受信された要求218に対して、それ以上の処理は実施しない。
動作中、コンテンツプラットフォーム/サーバ106は、要求218の中に含まれるデータのセットの中で受信されたHMAC値を、ルックアップテーブルの中に記憶されたHMAC値と比較する。完全一致が見つからない場合、コンテンツプラットフォーム/サーバ106は、ユーザ情報を制御するための要求218を実施することができないと判定する。このシナリオが起こり得るのは、たとえば、コンテンツプラットフォーム/サーバ106が、特定のデバイス識別子についてのユーザ情報を含まない場合、中継サーバ108が、現在の日付以外の日付を使って、正しくないHMACもしくは古くなったHMAC(たとえば、中継サーバ108が誤動作したか、もしくは悪意のあるエンティティによって侵害されたことを示す)を送るか、またはクライアントデバイス102が、古くなった、もしくは正しくないHMAC(たとえば、クライアントデバイス102が誤動作したか、もしくは悪意のあるエンティティによって侵害されたことを示す)を送る場合である。
一方、要求218の中に含まれるデータのセットの中で受信されたHMAC値と、ルックアップテーブル224中に記憶されたHMAC値との間の比較に基づいて完全一致が見つかった場合、コンテンツプラットフォーム/サーバ106は、ルックアップテーブル224のDeviceIDフィールドから、対応するデバイス識別子を取り出す。取り出されたデバイス識別子を使って、コンテンツプラットフォーム/サーバ106は、クライアントデバイスが要求212を発行するのに先立って秘密鍵を生成した(上述したのと)同じやり方で、秘密鍵を生成する。具体的には、コンテンツプラットフォーム/サーバ106は、デバイス識別子と、クライアントデバイスにおいて秘密鍵を生成するのに使われた、現在の日付および同じデータ列(たとえば、フレーズ「encrypt」)からなるHMACとを使って秘密鍵を生成する。コンテンツプラットフォーム/サーバ106による秘密鍵の生成は、以下の動作を使って表すことができる。
HMAC(DeviceID,HMAC(current_date,"encrypt")
上で記載したように、上記計算は、代替法で計算することもでき、HMAC以外の別の暗号論的擬似ランダム関数を使って計算することができる。
このようにして、クライアントデバイス102およびコンテンツプラットフォーム/サーバ106は、証明トークンの暗号化/解読において使われる秘密鍵を交換する必要がない。つまり、各々が同じパラメータ(たとえば、現在の日付、同じデータ列、およびDeviceID)ならびに同じ計算/公式/関数を使う限り、各々が同じ秘密鍵を計算することができる。その上、この秘密鍵は、秘密鍵が現在の日付の間だけ有効であるという点で短命である。この短命な秘密鍵はまた、ただ1つの目的用である。単一目的短命秘密鍵は、クライアントデバイスのものに対応する識別子および/またはデバイスに対応するいかなるデータとしても使われる見込みはない。言い換えると、コンテンツプラットフォーム/サーバ106は、秘密鍵が現在の日付において生成されたのではない場合、現在の日付において、暗号化された証明トークンを解読することができない。このようにして、コンテンツプラットフォーム/サーバ106は、要求218(およびその中に含まれる暗号化された証明トークン)が新しく(現在のものである)、リプレイ攻撃の対象ではないことを保証することができ、そうすることによって、古くなった(ただし有効な)暗号化された証明トークンがコンテンツプラットフォーム/サーバ106に与えられる。
この生成された秘密鍵を使って、コンテンツプラットフォーム/サーバ106は、中継サーバ108からの要求218の中で受信した、暗号化された証明トークンを解読する。その結果、解読された平文の証明トークンが取得される。
コンテンツプラットフォーム/サーバ106は、証明トークンの中に含まれるデジタル署名を検証することによって、証明トークンをさらに有効にすることができる。証明トークンに含まれるデジタル署名を検証するために、コンテンツプラットフォーム/サーバ106は、対応するデータ項目が証明トークンの中に含まれる、証明トークンの内容(たとえば、デバイス識別子、要求タイムスタンプ、要求範囲、およびデバイス信頼性トークン(入手可能なとき))を保護するデジタル署名を有効にするのにデバイスの公開鍵を使う。
デジタル署名が無効である場合、コンテンツプラットフォーム/プロバイダ106は、証明トークンが有効でない(このことは、中継サーバ108および/またはクライアントデバイス102が誤動作したか、または侵害されたことをさらに示し得る)と判定する。このシナリオでは、コンテンツプラットフォーム/サーバ106は、要求218を無視し、それ以上は処理しない。いくつかの実装形態では、コンテンツプラットフォーム/サーバ106は、要求218が満たされなかったことを述べる応答を中継サーバ108へ送る。
一方、デジタル署名が有効である場合、コンテンツプラットフォーム/プロバイダ106は、証明トークンが有効であると判定する。このシナリオでは、コンテンツプラットフォーム/サーバ106は、情報を制御するための要求がコンテンツプラットフォーム/サーバ106によって満たされるべきであることを検証するための、さらなる有効化を実施することができる。この検証を実施するために、コンテンツプラットフォーム/サーバ106は、証明トークン(または他のデジタルトークン)の中に含まれる要求の範囲に対する値を取得する。要求の範囲が特定のコンテンツプラットフォーム/サーバ106を識別する場合、このコンテンツプラットフォーム/サーバ106は、証明トークン(または他のデジタルトークン)の中で明記されるように、情報を制御するための要求を実施しなければならないと判定する。同様に、要求の範囲が、要求が大域的である(すなわち、中継サーバ108と通信するコンテンツプラットフォーム/サーバ106によって実施されなければならない)と述べる場合、特定のコンテンツプラットフォーム/サーバ106は、証明トークン(または他のデジタルトークン)の中で明記されるように、情報を制御するための要求を実施しなければならないと判定する。一方、要求が、特定のコンテンツプラットフォーム/サーバ106を識別せず、大域的でない場合、コンテンツプラットフォーム106は、クライアントデバイス102に対応するユーザ情報を制御するための、要求されたアクションを実施する必要はないと判定する。
コンテンツプラットフォーム/サーバ106が、情報を制御するための要求を実施しなければならないと判定した場合、コンテンツプラットフォーム/サーバ106は、証明トークンのペイロードの中で明記される、実施されるべきアクションのタイプを取得し、クライアントデバイス102に対応するコンテンツプラットフォーム106において記憶されたユーザ情報に対して適切なアクションを実施する。
たとえば、要求が、ユーザ情報の全部または一部を消去することを明記する場合、コンテンツプラットフォーム/サーバ106は、ユーザ情報の全部または一部を消去する。別の例として、要求が、クライアントデバイス102に対してユーザ情報へのアクセスを修正することを明記する場合、コンテンツプラットフォーム/サーバ106は、ユーザ情報についてのアクセス設定を調節し、クライアントデバイス102の要求の中で明記されたエンティティにのみ、アクセスを制限する。別の例として、要求が、クライアントデバイス102のユーザ以外のどのエンティティへのユーザ情報の送信も防止することを明記する場合、コンテンツプラットフォーム/サーバ106は、ユーザ情報についてのアクセス設定を調節し、コンテンツプラットフォーム/サーバ106が、ユーザ以外のどのエンティティへユーザ情報を送信するのも防止する特定の制御命令を、ユーザ情報とともに含む。
コンテンツプラットフォーム/サーバ106は、明記されたアクションを実施した後(またはコンテンツプラットフォーム/サーバ106が、要求を満たす必要がないと判定した後)、要求が満たされたかどうかを述べる応答220を中継サーバ108に与える。
応答220を受信すると、中継サーバ108は、この応答220を、応答222の一部として、クライアントデバイス102へフォワードする。いくつかの実装形態では、中継サーバ108は、様々なコンテンツプラットフォーム/サーバ106からの応答220を統合し、統合された応答222をクライアントデバイス102へ与える。いくつかの実装形態では、中継サーバ108は、様々なコンテンツプラットフォーム/サーバ106からの応答220の各々を、クライアントデバイス102への別個の応答222として、アドホックベースで、すなわち、これらの応答が受信される限り送る。
したがって、上記説明を鑑みると、クライアントデバイス102は、ユーザ情報を制御するための別個の要求を複数のコンテンツプラットフォーム/サーバ106へ送る必要がない。そうではなく、クライアントデバイス102は、中継サーバ108へ単一の要求216を送ればよく、サーバ108は、要求を様々なコンテンツプラットフォーム/サーバ106へ送信する。このようにして、複数のそのような要求(数十万または数百万であり得る)を生成し、送信するときに場合によってはクライアントデバイス102によって消費されることになる計算リソース(たとえば、バッテリー、ネットワーク帯域幅)が節約される。また、デバイスの信頼性を検証すること、および中継サーバ108において受信された要求を有効にすることによって、上で記載した技法は、中継サーバに対する攻撃(たとえばDoS攻撃)が様々なコンテンツプラットフォーム/サーバ106へ伝搬される見込みを防ぐか、または少なくとも低減する。また、上でさらに記載したように、中継サーバ108、デバイス信頼性サーバ110、およびコンテンツプラットフォーム/サーバ106への通信すべてが、これらの通信の中に含まれるデータを遮蔽し、それがしたがって、これらの通信に含まれるデバイス情報のプライバシーを保つ。
図3は、クライアントデバイス102から複数のサーバへのユーザ情報を制御するための要求を送信し、処理するための例示的プロセス300の流れ図である。プロセス300の動作は、図1および図2において記載し、示したシステムの構成要素によって実施されるものとして、以下で説明される。プロセス300の動作が、以下において、例示目的のためにのみ説明される。プロセス300の動作は、どの適切なデバイスまたはシステム、たとえば、どの適切なデータ処理装置によって実施されてもよい。プロセス300の動作は、非一時的であってよいコンピュータ可読媒体上に記憶された命令として実装されてもよい。命令の実行により、1つまたは複数のデータ処理装置が、プロセス300の動作を実施する。
クライアントデバイス102は、クライアントデバイス102の信頼性を検証するための要求をデバイス信頼性サーバ110へ送る(305において)。いくつかの実装形態では(また、図2に関して記載したように)、クライアントデバイスの信頼性を検証するための要求は、(1)クライアントデバイスの信頼性がそこから判定されるデバイス信頼性データと、(2)暗号化されたデジタルトークンおよび第1のデータパラメータを使って生成された第3のMAC、すなわちHMAC(encrypted_digital_token,request_timestamp)とを含むデータの第1のセットを含み、パラメータは、デジタルトークンが作成された時間を示すタイムスタンプであってよい(次の段落において記述される)。
いくつかの実装形態では、クライアントデバイス102は、以下の動作を使って、暗号化されたデジタルトークンを生成する(図2を参照して上述し、以下で要約するように)。最初に、クライアントデバイス102は、デジタルトークンを生成する。図2を参照して上述したように、このデジタルトークンは、(1)クライアントデバイスのデバイス識別子と、(2)デジタルトークンが作成された時間を明記するタイムスタンプであってよい第1のデータパラメータと、(3)複数のサーバにおいて記憶されたユーザ情報に関してとられるべきアクションのタイプ(たとえば、ユーザ情報を消去する、この情報の送信を防止する、この情報に誰がアクセスすることができるかを修正する、収集されたユーザ情報の開示を要求する、収集されたユーザ情報のエクスポートを要求する、またはユーザ情報に関する他の要求)を明記する命令と、(4)複数のサーバを識別するデータ(たとえば、複数のサーバのドメインの特定の識別、または中継サーバ108と通信するサーバへ要求を送るための大域的命令)とを含む証明トークンであってよい。いくつかの実装形態では(また、図2を参照して上述したように)、証明トークンは、デバイス信頼性サーバによってあらかじめ生成され、クライアントデバイス102に与えられたデバイス信頼性トークンも含み得る。
第2に、クライアントデバイス102は、対称暗号化アルゴリズムを使ってデジタルトークンを暗号化するための暗号化鍵を使って、暗号化されたデジタルトークンを取得する。いくつかの実装形態では、対称暗号化アルゴリズムは確率的である。いくつかの実装形態では(また、図2を参照して上述したように)、クライアントデバイス102は、(1)現在の日付および第1のデータ列(たとえば、フレーズ「encrypt」)を使って第1のMACを計算すること、ならびに(2)デバイス識別子および第1のMACを使って第2のMACを生成することによって、暗号化鍵を生成する。対称暗号化鍵を生成するための動作は、以下の公式化を使って表すことができる。
HMAC(DeviceID,HMAC(current_date,"encrypt")
図2を参照して上で記述したように、上記計算は、代替法で計算することもでき、HMAC以外の別の暗号論的擬似ランダム関数を使って計算することができる。
したがって、いくつかの実装形態では、クライアントデバイス102は、クライアントデバイス102の信頼性を検証するための要求をデバイス信頼性サーバ110へ送り、この要求は、上述したように、データの第1のセットを含む。
図2を参照して上述したように、クライアントデバイス102のMACジェネレータ208は、異なるデータセット用のメッセージ認証コード(MAC)を生成する。いくつかの実装形態では、MACジェネレータ208は、(暗号論的擬似ランダム関数の一タイプである)MACアルゴリズムを、ハッシュベースのメッセージ認証コード(HMAC)を生成するのに使い、HMACは、鍵付きハッシュメッセージ認証コードとも呼ばれる。そのような実装形態では、MACジェネレータ208は、データ/パラメータの異なるセット向けに、HMACを(たとえば、HMAC SHA256アルゴリズムを使って)生成する。いくつかの実装形態では、HMACまたは別のMACアルゴリズムを使うのではなく、MACジェネレータ208は、場合によっては、以下に記載する様々なデジタルダイジェストを生成する際にMACジェネレータ208によって使われるパラメータを使う別の適切な暗号論的擬似ランダム関数(PRF)を使う。参照しやすいように、図3の例示的プロセス300の記述の残りでは、クライアントデバイス102のMACジェネレータ208がMACまたはHMACを生成すると想定されるが、以下で説明する同じ関数/計算が、代替として、別の適切な暗号論的PRFを使って実施されてもよいことが諒解されよう。
デバイス信頼性サーバ110は、クライアントデバイス102が信頼できるかどうかを判定する際に、要求の中に含まれるデバイス信頼性データを、デバイスの信頼性を検証するのに使う。デバイス信頼性サーバ110は、クライアントデバイスが信頼できることを示すデータをクライアントデバイス102へ送る。
クライアントデバイス102は、デバイス信頼性サーバから、クライアントデバイスが信頼できることを示すデータを受信する(310において)。いくつかの実装形態では(また、図2を参照して上述したように)、デバイス信頼性サーバ110は、デバイス信頼性サーバ110の秘密鍵と、暗号化されたデジタルトークンを使ってデバイスが生成した第3のMAC値と、第1のデータパラメータとを使ってデジタル署名することによって、クライアントデバイス102が信頼できることを示す。第3のMACはデバイス信頼性サーバ110によってデジタル署名されるので、クライアントデバイス102は、デバイス信頼性サーバ110からの応答を修正することができない。代替として、第3のMACにデジタル署名することによって信頼性を示すのではなく、デバイス信頼性サーバ110は、フラグ(たとえば、0が信頼できないことを示し、1が信頼できることを示す1ビットフラグ)または他のデータ(たとえば、「TRUST」が、デバイスが信頼できることを示し、「DON'T TRUST」が、デバイスが信頼できないことを示すデータメッセージ)を使って、デバイスの信頼性を示すことができる。プロセス300の残りでは、デバイス信頼性サーバ110が、第3のMACにデジタル署名することによってデバイスの信頼性を示したと想定される。
クライアントデバイスが信頼できることを示すデータの受信に応答して、クライアントデバイス102は、中継サーバ108へ、複数のサーバにおいて記憶されたユーザ情報を制御するための要求を送る(315において)。ユーザ情報を制御するための要求は、ユーザ情報に関して、サーバによって実施されるべきアクションを明記する。たとえば、サーバによって実施されるべきアクションは、(1)サーバにおいて記憶されたユーザ情報を消去すること、(2)サーバにおいて記憶されたユーザ情報が、どの他のエンティティにも送信もされず、与えられもしないことを要求すること、(3)サーバにおいて記憶されたユーザ情報へのアクセスを、1つもしくは複数のエンティティに対して可能にすること、または(4)サーバにおいて記憶されたユーザ情報に関してクライアントデバイスによって要求される別の適切なアクションを含み得る。
いくつかの実装形態では、ユーザ情報を制御するための要求は、(1)クライアントデバイスが信頼できることを示すデータ(動作310においてデバイス信頼性サーバ110から受信される)と、(2)クライアントデバイス102によってあらかじめ生成された、暗号化されたデジタルトークンと、(3)デジタルトークンの中に含まれる第1のデータパラメータと、(4)ユーザ情報に関する適切なアクションが実施されるべき複数のサーバを識別するデータと、(5)デバイス識別子、第2のデータパラメータ(たとえば、現在の日付)、およびデータ列(たとえば、フレーズ"challenge")であってよい第3のデータパラメータを使って生成された第4のMACとを含む、データの第2のセットを含む。第4のMACは、以下の公式化を使って表され得る。
HMAC(DeviceID,HMAC(current_date,"challenge")
図2を参照して上で記述したように、上記計算は、代替法で計算することもでき、HMAC以外の別の暗号論的擬似ランダム関数を使って計算することができる。
図2に関して記載したように、クライアントデバイス102から要求を受信すると、中継サーバ108は、この要求を有効にする。クライアントデバイス102からの要求を有効にしたことに応答して、中継サーバ108は、ユーザ情報を制御するための要求を、クライアントデバイス102からの要求の中で明記された様々なサーバへ送信する(図2に関して記載したように)。
図2に関して記載したように、サーバは、中継サーバ108から要求を受信すると、要求を有効にする。サーバが、要求が有効であると判定した場合、サーバは、サーバにおいて記憶されたユーザ情報を制御するための要求の中で明記されたアクションを実施する(図2に関して記載したように)。一方、サーバが、要求が有効でないと判定した場合、サーバは、サーバにおいて記憶されたユーザ情報を制御するための要求の中で明記されたアクションを実施しない(図2に関して記載したように)。サーバは、サーバが要求を満たしたか、それとも要求を満たさなかったかを明記する応答を、中継サーバ108へ送る(図2に関して記載したように)。
クライアントデバイス102は、中継サーバを介して、複数のサーバの各々から応答を受信する(320において)。いくつかの実装形態では、また、図2を参照して上述したように、中継サーバは、様々なサーバから応答を受信すると、これらの応答をクライアントデバイス102へ送信する。クライアントデバイス102は、これらの送信された応答を中継サーバ108から受信する(図2に関して記載したように)。
動作320においてクライアントデバイス102によって受信された応答に基づいて、クライアントデバイス102は、ユーザ情報を含んでいた複数のサーバの少なくともサブセットが、ユーザ情報を制御するための要求の中で明記されたアクションを実施したと判定する(325において)。いくつかの実装形態では、クライアントデバイス102は、受信された応答を処理して、それぞれのサーバが要求を満たしたか、それとも満たさなかったかを判定する。サーバが、要求を満たしたと応答した場合、クライアントデバイス102は、サーバがユーザ情報を記憶したと、および動作315における、ユーザ情報を制御するための、クライアントデバイスの要求の中で明記されたアクションをサーバが実施したと判定する。
したがって、このようにして、複数のサーバにおいて記憶されたユーザ情報を制御するための、クライアントデバイス102の要求が生成され、この情報を記憶する複数のサーバへ送信され、これらのサーバによって処理され、満たされる。
図4は、上述した動作を実施するのに使われ得る例示的コンピュータシステム400のブロック図である。システム400は、プロセッサ410、メモリ420、記憶デバイス430、および入力/出力デバイス440を含む。構成要素410、420、430、および440の各々は、たとえば、システムバス450を使って相互接続され得る。プロセッサ410は、システム400内での実行のための命令を処理することが可能である。いくつかの実装形態では、プロセッサ410は、シングルスレッドのプロセッサである。別の実装形態では、プロセッサ410は、マルチスレッドのプロセッサである。プロセッサ410は、メモリ420中または記憶デバイス430上に記憶された命令を処理することが可能である。
メモリ420は、システム400内に情報を記憶する。一実装形態では、メモリ420は、コンピュータ可読媒体である。いくつかの実装形態では、メモリ420は、揮発性メモリユニットである。別の実装形態では、メモリ420は不揮発性メモリユニットである。
記憶デバイス430は、システム400に大容量記憶を提供することが可能である。いくつかの実装形態では、記憶デバイス430は、コンピュータ可読媒体である。異なる様々な実装形態では、記憶デバイス430は、たとえば、ハードディスクデバイス、光ディスクデバイス、ネットワークを介して複数のコンピューティングデバイスによって共有される記憶デバイス(たとえば、クラウド記憶デバイス)、または何らかの他の大容量記憶デバイスを含み得る。
入力/出力デバイス440は、システム400のための入力/出力動作を提供する。いくつかの実装形態では、入力/出力デバイス440は、ネットワークインターフェースデバイス、たとえば、イーサネットカード、シリアル通信デバイス、たとえば、RS-232ポート、および/またはワイヤレスインターフェースデバイス、たとえば、802.11カードのうちの1つまたは複数を含み得る。別の実装形態では、入力/出力デバイスは、入力データを受信し、周辺デバイス460へ出力データを送るように構成されたドライバデバイス、たとえば、キーボード、プリンタおよびディスプレイデバイスを含み得る。ただし、モバイルコンピューティングデバイス、モバイル通信デバイス、セットトップボックステレビジョンクライアントデバイスなどのような、他の実装形態が使われてもよい。
図4では、例示的処理システムが記述されているが、本明細書に記載する主題および機能的動作の実装形態は、他のタイプのデジタル電子回路構成で、またはコンピュータソフトウェア、ファームウェア、もしくは本明細書において開示した構造およびそれらの構造的等価物を含むハードウェアで、またはそれらのうちの1つもしくは複数からなる組合せで実装することができる。
本明細書に記載する主題および動作の実施形態は、デジタル電子回路構成で、またはコンピュータソフトウェア、ファームウェア、もしくは本明細書において開示した構造およびそれらの構造的等価物を含むハードウェアで、またはそれらのうちの1つもしくは複数からなる組合せで実装することができる。本明細書において説明される主題の実施形態は、1つまたは複数のコンピュータプログラムとして、すなわち、データ処理装置による実行のためか、またはデータ処理装置の動作を制御するための、複数のコンピュータ記憶媒体(または1つのコンピュータ記憶媒体)上に符号化されたコンピュータプログラム命令の1つまたは複数のモジュールとして、実装することができる。代替または追加として、プログラム命令は、データ処理装置による実行のために、適切な受信機装置への送信用の情報を符号化するように生成される、人工的に生成された伝搬信号、たとえば、機械生成された電気、光学、または電磁信号上で符号化されてよい。コンピュータ記憶媒体は、コンピュータ可読記憶デバイス、コンピュータ可読記憶基板、ランダムもしくはシリアルアクセスメモリアレイもしくはデバイス、またはそれらのうちの1つもしくは複数からなる組合せであるか、またはそこに含まれてよい。その上、コンピュータ記憶媒体は伝搬信号ではなく、コンピュータ記憶媒体は、人為的に生成された伝搬信号中で符号化されたコンピュータプログラム命令のソースまたは宛先であってよい。コンピュータ記憶媒体はまた、1つまたは複数の別個の物理構成要素または媒体(たとえば、複数のCD、ディスク、または他の記憶デバイス)であるか、またはそれらに含まれてよい。
本明細書に記載した動作は、1つもしくは複数のコンピュータ可読記憶デバイス上に記憶された、または他のソースから受信されたデータに対して、データ処理装置によって実施される動作として実装されてよい。
「データ処理装置」という用語は、例として、プログラム可能プロセッサ、コンピュータ、システムオンチップ、または上記の複数のもの、もしくは組合せを含む、データを処理するための、あらゆる種類の装置、デバイス、および機械を包含する。装置は、特殊目的論理回路機構、たとえば、FPGA(フィールドプログラム可能ゲートアレイ)またはASIC(特定用途向け集積回路)を含み得る。装置はまた、ハードウェアに加え、当該のコンピュータプログラムのための実行環境を作成するコード、たとえば、プロセッサファームウェア、プロトコルスタック、データベース管理システム、オペレーティングシステム、クロスプラットフォームランタイム環境、仮想マシン、またはそれらのうちの1つもしくは複数からなる組合せを構成するコードを含むことができる。装置および実行環境は、ウェブサービス、分散型コンピューティングおよびグリッドコンピューティングインフラストラクチャなど、異なる様々なコンピューティングモデルインフラストラクチャを実現することができる。
コンピュータプログラム(プログラム、ソフトウェア、ソフトウェアアプリケーション、スクリプト、またはコードとしても知られている)は、コンパイル型またはインタープリタ型言語、宣言型または手続き型言語を含む、どの形のプログラミング言語でも書かれてよく、スタンドアロンプログラムとして、またはモジュール、構成要素、サブルーチン、オブジェクト、もしくはコンピューティング環境における使用に適した他のユニットとして、を含む、どの形でも展開することができる。コンピュータプログラムが、ファイルシステム内のファイルに対応してよいが、そうである必要はない。プログラムは、他のプログラムもしくはデータ(たとえば、マークアップ言語ドキュメントに記憶された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つまたは複数の特徴は、場合によっては、その組合せから削除されることがあり、特許請求される組合せは、部分組合せまたは部分組合せの変形形態を対象とする場合がある。
同様に、動作は、特定の順序で図面に示されるが、これは、望ましい結果を達成するために、そのような動作が図示された特定の順序でもしくは順番に行われること、または例示したすべての動作が行われることを必要とするものと理解されるべきではない。いくつかの状況では、マルチタスキングおよび並列処理が有利な場合がある。その上、上述した実施形態における様々なシステム構成要素の分離は、すべての実施形態においてそのような分離を必要とするものとして理解されるべきではなく、記載したプログラム構成要素およびシステムは概して、単一のソフトウェア製品に一緒に統合されるか、または複数のソフトウェア製品にパッケージングされることが可能であることを理解されたい。
以上、本主題の特定の実施形態について記載した。他の実施形態は、以下の特許請求の範囲内である。いくつかのケースでは、請求項において具陳されるアクションは、異なる順序で実施され、望ましい結果を依然として達成することができる。さらに、添付の図面に示されるプロセスは、望ましい結果を達成するのに、図示される特定の順序、または順番を必ずしも要求しない。いくつかの実装形態では、マルチタスキングおよび並列処理が有利であり得る。
102 クライアントデバイス
104 ネットワーク
106 コンテンツプラットフォーム、サーバ、プロバイダ
108 中継サーバ、コンテンツプロバイダ
110 デバイス信頼性サーバ
202 アプリケーションA
204 オペレーティングシステム
206 トークンジェネレータ
208 MACジェネレータ
210 デバイス信頼性クライアント
224 ルックアップテーブル
400 コンピュータシステム、システム
410 プロセッサ、構成要素
420 メモリ、構成要素
430 記憶デバイス、構成要素
440 入力/出力デバイス、構成要素
450 システムバス
460 周辺デバイス

Claims (21)

  1. コンピュータ実装方法であって、
    クライアントデバイスによって、デバイス信頼性サーバへ、前記クライアントデバイスの信頼性を検証するための要求を送るステップと、
    前記クライアントデバイスによって、前記デバイス信頼性サーバから、前記クライアントデバイスが信頼できることを示すデータを受信するステップと、
    前記クライアントデバイスが信頼できることを示す前記データの受信に応答して、前記クライアントデバイスによって、中継サーバへ、複数のサーバにおいて記憶されたユーザデータを制御するための要求を送るステップであって、
    前記中継サーバは、ユーザデータを制御するための前記要求を前記複数のサーバの各々へ送信する前に、ユーザデータを制御するための前記要求を有効にするサーバであり、
    ユーザデータを制御するための前記要求は、前記ユーザデータに関して、サーバによって実施されるべきアクションを明記する、ステップと、
    前記クライアントデバイスによって、前記中継サーバを介して、前記複数のサーバの各々から応答を受信するステップと、
    前記クライアントデバイスによって、前記応答に基づいて、前記ユーザデータを含んでいた、前記複数のサーバの少なくともサブセットが、前記ユーザデータを制御するための前記要求の中で明記された前記アクションを実施したと判定するステップとを含むコンピュータ実装方法。
  2. 前記クライアントデバイスによって、(1)前記クライアントデバイスのデバイス識別子、(2)第1のデータパラメータであって、前記第1のデータパラメータは、デジタルトークンが作成された時間を明記するタイムスタンプである第1のデータパラメータ、(3)複数のサーバにおいて記憶されたユーザデータに関してアクションのタイプを明記する命令、および(4)前記複数のサーバを識別するデータを含むデジタルトークンを生成するステップと、
    前記クライアントデバイスによって、対称暗号化アルゴリズムを使って、前記デジタルトークンを暗号化して、前記暗号化されたデジタルトークンを取得するステップとをさらに含む、請求項1に記載のコンピュータ実装方法。
  3. 前記クライアントデバイスによって、前記対称暗号化アルゴリズムを使って、前記デジタルトークンを暗号化して、前記暗号化されたデジタルトークンを取得するステップは、
    暗号論的擬似ランダム関数を使って、現在の日付、第1のデータ列、および前記デバイス識別子を含むデータパラメータに基づいて、暗号化鍵を生成するステップと、
    前記クライアントデバイスによって、前記暗号化鍵を使って、前記デジタルトークンを暗号化して、前記暗号化されたデジタルトークンを取得するステップとを含む、請求項2に記載のコンピュータ実装方法。
  4. 前記暗号論的擬似ランダム関数を使って、現在の日付、第1のデータ列、および前記デバイス識別子を含むデータパラメータに基づいて、前記暗号化鍵を生成するステップは、
    (1)前記現在の日付および前記第1のデータ列を使って、第1のメッセージ認証コード(MAC)を計算すること、ならびに(2)前記デバイス識別子および前記第1のMACを使って、第2のMACを生成することによって、前記暗号化鍵を生成するステップを含む、請求項3に記載のコンピュータ実装方法。
  5. 前記クライアントデバイスの信頼性を検証するための前記要求は、(1)前記クライアントデバイスの信頼性がそこから判定されるデバイス信頼性データと、(2)前記暗号化されたデジタルトークンおよび前記第1のデータパラメータを使って生成された第3のMACとを含む、データの第1のセットを含み、
    ユーザデータを制御するための前記要求は、(1)前記クライアントデバイスが信頼できることを示す前記データと、(2)前記暗号化されたデジタルトークンと、(3)前記第1のデータパラメータと、(4)前記複数のサーバを識別するデータと、(5)前記デバイス識別子、第2のデータパラメータ、および第3のデータパラメータを使って生成された第4のMACとを含むデータの第2のセットを含む、請求項2、3、または4に記載のコンピュータ実装方法。
  6. 前記第2のデータパラメータは現在の日付を含み、前記第3のデータパラメータは第2のデータ列を含む、請求項5に記載のコンピュータ実装方法。
  7. 前記クライアントデバイスによって、前記デバイス信頼性サーバから、前記クライアントデバイスが信頼できることを示すデータを受信するステップは、
    前記クライアントデバイスによって、前記デバイス信頼性サーバから、前記第3のMACに対する、前記デバイス信頼性サーバによるデジタル署名を受信するステップを含む、請求項6に記載のコンピュータ実装方法。
  8. 前記ユーザデータに関して、前記サーバによって実施されるべき前記アクションは、
    前記サーバにおいて記憶された前記ユーザデータを消去すること、
    前記サーバにおいて記憶された前記ユーザデータが、どの他のエンティティにも送信もされず、与えられもしないように要求すること、
    前記サーバにおいて記憶された前記ユーザデータへのアクセスを、1つもしくは複数のエンティティに対して可能にすること、
    収集されたユーザデータの開示を要求すること、または
    収集されたユーザデータのエクスポートを要求すること、のうちの1つを含む、請求項1に記載のコンピュータ実装方法。
  9. 命令を記憶する1つまたは複数のメモリデバイスと、
    前記1つまたは複数のメモリデバイスと対話し、前記命令が実行されると、コンピュータ実装方法を含む動作を実施するように構成される1つまたは複数のデータ処理装置とを備えるシステムであって、前記方法は、
    クライアントデバイスによって、デバイス信頼性サーバへ、前記クライアントデバイスの信頼性を検証するための要求を送ることと、
    前記クライアントデバイスによって、前記デバイス信頼性サーバから、前記クライアントデバイスが信頼できることを示すデータを受信することと、
    前記クライアントデバイスが信頼できることを示す前記データの受信に応答して、前記クライアントデバイスによって、中継サーバへ、複数のサーバにおいて記憶されたユーザデータを制御するための要求を送ることであって、
    前記中継サーバは、ユーザデータを制御するための前記要求を前記複数のサーバの各々へ送信する前に、ユーザデータを制御するための前記要求を有効にするサーバであり、
    ユーザデータを制御するための前記要求は、前記ユーザデータに関して、サーバによって実施されるべきアクションを明記する、送ることと、
    前記クライアントデバイスによって、前記中継サーバを介して、前記複数のサーバの各々から応答を受信することと、
    前記クライアントデバイスによって、前記応答に基づいて、前記ユーザデータを含んでいた、前記複数のサーバの少なくともサブセットが、前記ユーザデータを制御するための前記要求の中で明記された前記アクションを実施したと判定することとを含む、システム。
  10. 前記クライアントデバイスによって、(1)前記クライアントデバイスのデバイス識別子、(2)第1のデータパラメータであって、前記第1のデータパラメータは、デジタルトークンが作成された時間を明記するタイムスタンプである第1のデータパラメータ、(3)複数のサーバにおいて記憶されたユーザデータに関してアクションのタイプを明記する命令、および(4)前記複数のサーバを識別するデータを含むデジタルトークンを生成することと、
    前記クライアントデバイスによって、対称暗号化アルゴリズムを使って、前記デジタルトークンを暗号化して、前記暗号化されたデジタルトークンを取得することとをさらに含む、請求項9に記載のシステム。
  11. 前記クライアントデバイスによって、前記対称暗号化アルゴリズムを使って、前記デジタルトークンを暗号化して、前記暗号化されたデジタルトークンを取得することは、
    暗号論的擬似ランダム関数を使って、現在の日付、第1のデータ列、および前記デバイス識別子を含むデータパラメータに基づいて、暗号化鍵を生成することと、
    前記クライアントデバイスによって、前記暗号化鍵を使って、前記デジタルトークンを暗号化して、前記暗号化されたデジタルトークンを取得することとを含む、請求項10に記載のシステム。
  12. 前記暗号論的擬似ランダム関数を使って、現在の日付、第1のデータ列、および前記デバイス識別子を含むデータパラメータに基づいて、前記暗号化鍵を生成することは、
    (1)前記現在の日付および前記第1のデータ列を使って、第1のメッセージ認証コード(MAC)を計算すること、ならびに(2)前記デバイス識別子および前記第1のMACを使って、第2のMACを生成することによって、前記暗号化鍵を生成することを含む、請求項11に記載のシステム。
  13. 前記クライアントデバイスの信頼性を検証するための前記要求は、(1)前記クライアントデバイスの信頼性がそこから判定されるデバイス信頼性データと、(2)前記暗号化されたデジタルトークンおよび前記第1のデータパラメータを使って生成された第3のMACとを含む、データの第1のセットを含み、
    ユーザデータを制御するための前記要求は、(1)前記クライアントデバイスが信頼できることを示す前記データと、(2)前記暗号化されたデジタルトークンと、(3)前記第1のデータパラメータと、(4)前記複数のサーバを識別するデータと、(5)前記デバイス識別子、第2のデータパラメータ、および第3のデータパラメータを使って生成された第4のMACとを含む、データの第2のセットを含む、請求項10、11、または12に記載のシステム。
  14. 前記第2のデータパラメータは現在の日付を含み、前記第3のデータパラメータは第2のデータ列を含む、請求項13に記載のシステム。
  15. 前記クライアントデバイスによって、前記デバイス信頼性サーバから、前記クライアントデバイスが信頼できることを示すデータを受信することは、
    前記クライアントデバイスによって、前記デバイス信頼性サーバから、前記第3のMACに対する、前記デバイス信頼性サーバによるデジタル署名を受信することを含む、請求項14に記載のシステム。
  16. 前記ユーザデータに関して、前記サーバによって実施されるべき前記アクションは、
    前記サーバにおいて記憶された前記ユーザデータを消去すること、
    前記サーバにおいて記憶された前記ユーザデータが、どの他のエンティティにも送信もされず、与えられもしないように要求すること、
    前記サーバにおいて記憶された前記ユーザデータへのアクセスを、1つもしくは複数のエンティティに対して可能にすること、
    収集されたユーザデータの開示を要求すること、または
    収集されたユーザデータのエクスポートを要求すること、のうちの1つを含む、請求項9に記載のシステム。
  17. 1つまたは複数のデータ処理装置によって実行されると、前記1つまたは複数のデータ処理装置に動作を実施させる命令を記憶する非一時的コンピュータ可読媒体であって、前記動作は、
    クライアントデバイスによって、デバイス信頼性サーバへ、前記クライアントデバイスの信頼性を検証するための要求を送ることと、
    前記クライアントデバイスによって、前記デバイス信頼性サーバから、前記クライアントデバイスが信頼できることを示すデータを受信することと、
    前記クライアントデバイスが信頼できることを示す前記データの受信に応答して、前記クライアントデバイスによって、中継サーバへ、複数のサーバにおいて記憶されたユーザデータを制御するための要求を送ることであって、
    前記中継サーバは、ユーザデータを制御するための前記要求を前記複数のサーバの各々へ送信する前に、ユーザデータを制御するための前記要求を有効にするサーバであり、
    ユーザデータを制御するための前記要求は、前記ユーザデータに関して、サーバによって実施されるべきアクションを明記する、送ることと、
    前記クライアントデバイスによって、前記中継サーバを介して、前記複数のサーバの各々から応答を受信することと、
    前記クライアントデバイスによって、前記応答に基づいて、前記ユーザデータを含んでいた、前記複数のサーバの少なくともサブセットが、前記ユーザデータを制御するための前記要求の中で明記された前記アクションを実施したと判定することとを含む、非一時的コンピュータ可読媒体。
  18. 前記命令は、前記1つまたは複数のデータ処理装置に動作を実施させ、前記動作は、
    前記クライアントデバイスによって、(1)前記クライアントデバイスのデバイス識別子、(2)第1のデータパラメータであって、前記第1のデータパラメータは、デジタルトークンが作成された時間を明記するタイムスタンプである第1のデータパラメータ、(3)複数のサーバにおいて記憶されたユーザデータに関してアクションのタイプを明記する命令、および(4)前記複数のサーバを識別するデータを含むデジタルトークンを生成することと、
    前記クライアントデバイスによって、対称暗号化アルゴリズムを使って、前記デジタルトークンを暗号化して、前記暗号化されたデジタルトークンを取得することとを含む、請求項17に記載の非一時的コンピュータ可読媒体。
  19. 前記クライアントデバイスによって、前記対称暗号化アルゴリズムを使って、前記デジタルトークンを暗号化して、前記暗号化されたデジタルトークンを取得することは、
    暗号論的擬似ランダム関数を使って、現在の日付、第1のデータ列、および前記デバイス識別子を含むデータパラメータに基づいて、暗号化鍵を生成することと、
    前記クライアントデバイスによって、前記暗号化鍵を使って、前記デジタルトークンを暗号化して、前記暗号化されたデジタルトークンを取得することとを含む、請求項18に記載の非一時的コンピュータ可読媒体。
  20. 前記暗号論的擬似ランダム関数を使って、現在の日付、第1のデータ列、および前記デバイス識別子を含むデータパラメータに基づいて、前記暗号化鍵を生成することは、
    (1)前記現在の日付および前記第1のデータ列を使って、第1のメッセージ認証コード(MAC)を計算すること、ならびに(2)前記デバイス識別子および前記第1のMACを使って、第2のMACを生成することによって、前記暗号化鍵を生成することを含む、請求項19に記載の非一時的コンピュータ可読媒体。
  21. 前記クライアントデバイスの信頼性を検証するための前記要求は、(1)前記クライアントデバイスの信頼性がそこから判定されるデバイス信頼性データと、(2)前記暗号化されたデジタルトークンおよび前記第1のデータパラメータを使って生成された第3のMACとを含む、データの第1のセットを含み、
    ユーザデータを制御するための前記要求は、(1)前記クライアントデバイスが信頼できることを示す前記データと、(2)前記暗号化されたデジタルトークンと、(3)前記第1のデータパラメータと、(4)前記複数のサーバを識別するデータと、(5)前記デバイス識別子、第2のデータパラメータ、および第3のデータパラメータを使って生成された第4のMACとを含むデータの第2のセットを含む、請求項18、19、または20に記載の非一時的コンピュータ可読媒体。
JP2022525404A 2020-08-23 2020-09-22 複数のサーバにおいて記憶された情報を制御するための要求の処理 Pending JP2023503234A (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
IL276868A IL276868A (en) 2020-08-23 2020-08-23 Processing requests to control information stored on multiple servers
IL276868 2020-08-23
PCT/US2020/051990 WO2022046130A1 (en) 2020-08-23 2020-09-22 Processing of requests to control information stored at multiple servers

Publications (1)

Publication Number Publication Date
JP2023503234A true JP2023503234A (ja) 2023-01-27

Family

ID=80353784

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2022525404A Pending JP2023503234A (ja) 2020-08-23 2020-09-22 複数のサーバにおいて記憶された情報を制御するための要求の処理

Country Status (7)

Country Link
US (1) US20220407701A1 (ja)
EP (1) EP4022475A1 (ja)
JP (1) JP2023503234A (ja)
KR (1) KR20220066114A (ja)
CN (1) CN114616797A (ja)
IL (1) IL276868A (ja)
WO (1) WO2022046130A1 (ja)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11777992B1 (en) 2020-04-08 2023-10-03 Wells Fargo Bank, N.A. Security model utilizing multi-channel data
US12015630B1 (en) 2020-04-08 2024-06-18 Wells Fargo Bank, N.A. Security model utilizing multi-channel data with vulnerability remediation circuitry
US11706241B1 (en) 2020-04-08 2023-07-18 Wells Fargo Bank, N.A. Security model utilizing multi-channel data
US11720686B1 (en) * 2020-04-08 2023-08-08 Wells Fargo Bank, N.A. Security model utilizing multi-channel data with risk-entity facing cybersecurity alert engine and portal
WO2024073422A1 (en) * 2022-09-28 2024-04-04 University Of South Florida Lightweight, resilient, and aggregate symmetric cryptographic tools for internet of things and forensics

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20190199530A1 (en) * 2017-12-22 2019-06-27 Motorola Solutions, Inc Device attestation server and method for attesting to the integrity of a mobile device
JP2019192089A (ja) * 2018-04-27 2019-10-31 株式会社Pfu 情報処理システム、情報処理方法、及びプログラム

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040193919A1 (en) * 2003-03-31 2004-09-30 Dabbish Ezzat A. Method and apparatus for identifying trusted devices
WO2004112312A1 (ja) * 2003-06-12 2004-12-23 Fujitsu Limited ユーザ認証システム
US7721329B2 (en) * 2003-11-18 2010-05-18 Aol Inc. Method and apparatus for trust-based, fine-grained rate limiting of network requests
EP2020797B1 (en) * 2007-08-02 2016-06-15 Apple Inc. Client-server Opaque token passing apparatus and method
US8775810B1 (en) * 2009-09-30 2014-07-08 Amazon Technologies, Inc. Self-validating authentication token
JP6354336B2 (ja) * 2014-05-29 2018-07-11 ブラザー工業株式会社 クライアント装置、サービス実行システム、及びプログラム
US10050955B2 (en) * 2014-10-24 2018-08-14 Netflix, Inc. Efficient start-up for secured connections and related services
GB201508035D0 (en) * 2015-05-12 2015-06-24 Critical Blue Ltd Crowd sourced fingerprinting
US20180069836A1 (en) * 2016-09-02 2018-03-08 Qualcomm Incorporated Tiered attestation for resource-limited devices
KR102426722B1 (ko) * 2017-03-03 2022-07-29 삼성전자주식회사 데이터 전송 방법 및 이를 지원하는 서버 장치
US10505916B2 (en) * 2017-10-19 2019-12-10 T-Mobile Usa, Inc. Authentication token with client key
US11233648B2 (en) * 2018-09-04 2022-01-25 Microsoft Technology Licensing, Llc Identity system for use with blockchain platform
WO2020122095A1 (ja) * 2018-12-11 2020-06-18 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ 制御方法、サーバ、プログラム、および、データ構造
KR102624339B1 (ko) * 2019-02-01 2024-01-15 삼성전자주식회사 개인 정보를 관리하는 전자 장치 및 그 방법
AU2020397926A1 (en) * 2019-12-05 2022-07-21 Murray B. Wilshinsky Method and system for self-aggregation of personal data and control thereof

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20190199530A1 (en) * 2017-12-22 2019-06-27 Motorola Solutions, Inc Device attestation server and method for attesting to the integrity of a mobile device
JP2019192089A (ja) * 2018-04-27 2019-10-31 株式会社Pfu 情報処理システム、情報処理方法、及びプログラム

Also Published As

Publication number Publication date
WO2022046130A1 (en) 2022-03-03
EP4022475A1 (en) 2022-07-06
US20220407701A1 (en) 2022-12-22
KR20220066114A (ko) 2022-05-23
CN114616797A (zh) 2022-06-10
IL276868A (en) 2022-03-01

Similar Documents

Publication Publication Date Title
JP2023503234A (ja) 複数のサーバにおいて記憶された情報を制御するための要求の処理
KR102219277B1 (ko) 인증된 컨텐츠 전달 제어를 위한 시스템 및 방법
JP7319380B2 (ja) ブラウザクッキーを保護する
JP2023096089A (ja) グループ署名による匿名イベント証明
Dey et al. An integrated model to make cloud authentication and multi-tenancy more secure
KR102608325B1 (ko) 클라이언트 장치에서 통신의 무결성 보호
JP2023527709A (ja) 機密情報を保護するためのマルチパーティ計算およびk-匿名性技法の使用
Park et al. An SGX-based key management framework for data centric networking
Huang et al. A method for trusted usage control over digital contents based on cloud computing
KR102639228B1 (ko) 익명 이벤트 증명
JP7410280B2 (ja) 複数受信者セキュア通信
CN116034596A (zh) 具有令牌赎回的匿名认证
Feng et al. Fair Non-repudiation Framework for Cloud Storage: Part I
Li Research on Key Security Detection Method of Cross Domain Information Sharing Based on PKG Trust Gateway
Song et al. Identity‐based storage management and integrity verify protocol for secure outsourcing in multi‐cloud
Tukkoji Secure Data Storage in Cloud Computing Using Code Based McEliece and NTRU Cryptosystems
Hwang et al. A Study on Secure Data Access Scheme Based on CP-ABE in Cloud Environments
CN117413265A (zh) 使用可信执行环境的具有证明的安全多方计算
Sawant et al. A^ sup 3^(Authenticate Auditor & Avail) for Preserving Integrity of Data in Cloud Computing

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20220520

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20220520

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20230522

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20230721

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20231023