JP7077425B2 - クライアントデバイスにおけるサードパーティコンテンツの表示の確認 - Google Patents

クライアントデバイスにおけるサードパーティコンテンツの表示の確認 Download PDF

Info

Publication number
JP7077425B2
JP7077425B2 JP2020566224A JP2020566224A JP7077425B2 JP 7077425 B2 JP7077425 B2 JP 7077425B2 JP 2020566224 A JP2020566224 A JP 2020566224A JP 2020566224 A JP2020566224 A JP 2020566224A JP 7077425 B2 JP7077425 B2 JP 7077425B2
Authority
JP
Japan
Prior art keywords
content item
data
digitally signed
token
display
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.)
Active
Application number
JP2020566224A
Other languages
English (en)
Other versions
JP2022522315A (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 JP2022522315A publication Critical patent/JP2022522315A/ja
Application granted granted Critical
Publication of JP7077425B2 publication Critical patent/JP7077425B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/238Interfacing the downstream path of the transmission network, e.g. adapting the transmission rate of a video stream to network bandwidth; Processing of multiplex streams
    • H04N21/2389Multiplex stream processing, e.g. multiplex stream encrypting
    • H04N21/23892Multiplex stream processing, e.g. multiplex stream encrypting involving embedding information at multiplex stream level, e.g. embedding a watermark at packet level
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • G06F21/16Program or content traceability, e.g. by watermarking
    • 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
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/435Processing of additional data, e.g. decrypting of additional data, reconstructing software from modules extracted from the transport stream
    • H04N21/4353Processing of additional data, e.g. decrypting of additional data, reconstructing software from modules extracted from the transport stream involving decryption of additional data
    • 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/606Protecting data by securing the transmission between two devices or processes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/0021Image watermarking
    • 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/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0819Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
    • H04L9/0825Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) using asymmetric-key encryption or public key infrastructure [PKI], e.g. key signature or public key certificates
    • 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/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
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/235Processing of additional data, e.g. scrambling of additional data or processing content descriptors
    • H04N21/2355Processing of additional data, e.g. scrambling of additional data or processing content descriptors involving reformatting operations of additional data, e.g. HTML pages
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/80Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
    • H04N21/81Monomedia components thereof
    • H04N21/8166Monomedia components thereof involving executable data, e.g. software
    • H04N21/8173End-user applications, e.g. Web browser, game
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/80Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
    • H04N21/83Generation or processing of protective or descriptive data associated with content; Content structuring
    • H04N21/835Generation of protective data, e.g. certificates
    • H04N21/8358Generation of protective data, e.g. certificates involving watermark
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/60Digital content management, e.g. content distribution
    • H04L2209/608Watermarking

Landscapes

  • Engineering & Computer Science (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Multimedia (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Computer Hardware Design (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Technology Law (AREA)
  • Editing Of Facsimile Originals (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
  • Storage Device Security (AREA)
  • Information Transfer Between Computers (AREA)

Description

本明細書は、一般に、サードパーティコンテンツ提示において起こり得るエラーを検出すること、およびコンテンツプラットフォーム上での表示のためにコンテンツプロバイダによって提供されたサードパーティコンテンツが、コンテンツプラットフォームがクライアントデバイス上でアクセスされるときに実際に表示されるのを確認することに関する。
クライアントデバイスは、コンテンツプラットフォーム(たとえば、検索プラットフォーム、ソーシャルメディアプラットフォーム、またはコンテンツをホストする別のプラットフォーム)にアクセスするためにアプリケーション(たとえば、ウェブブラウザ、ネイティブアプリケーション)を使用することができる。コンテンツプラットフォームは、1つまたは複数のサードパーティコンテンツプロバイダによって提供され得るコンテンツを、クライアントデバイス上で起動されたアプリケーション内で表示することができる。いくつかの事例では、コンテンツプロバイダによって表示のために提供されるコンテンツは、実際にはアプリケーション内で表示されないことがある(または、表示のために提供され得るが実際にはユーザデバイスのユーザに認識可能でない)。このことは、表示のためにコンテンツプラットフォームがその中で提供されるアプリケーションにおけるエラー、コンテンツプラットフォームによって提供される特定のコンテンツページにおけるエラー、一般にコンテンツプラットフォームにおけるエラー、またはコンテンツプラットフォームにコンテンツを提供する1つもしくは複数のコンテンツプロバイダにおけるエラーなどの、任意の数の理由に起因し得る。
概して、本明細書で説明する主題の1つの発明的態様は、アプリケーション内のコンテンツページ上に提供され、クライアントデバイスのディスプレイの特定の部分において表示される特定のコンテンツアイテムが、コンテンツプロバイダによって提供されたサードパーティコンテンツアイテムであるかどうかを検証するために使用される、デジタル署名付きトークンを生成するための要求を、クライアントデバイス上で実行するアプリケーションから受信することであって、要求が、ディスプレイの特定の部分を識別することと、ディスプレイの特定の部分において表示される特定のコンテンツアイテムの中にデジタルウォーターマークが埋め込まれているかどうかを判定することと、特定のコンテンツアイテムの中にデジタルウォーターマークが埋め込まれているという決定に応答して、デジタルウォーターマーク内に符号化された複数の属性に対するデータを取得するためにデジタルウォーターマークを復号することであって、複数の属性が、特定のコンテンツアイテムを記述することと、複数の属性に対するデータをデジタル署名付きトークンのペイロードの中に含めるデジタル署名付きトークンを生成することと、生成されたデジタル署名付きトークンをアプリケーションに提供することとを行う動作を含む方法で具現され得る。この態様の他の実施形態は、方法のアクションを実行するように構成された、対応するシステム、デバイス、装置、およびコンピュータプログラムを含む。コンピュータプログラム(たとえば、命令)は、コンピュータ記憶デバイス上で符号化され得る。これらおよび他の実施形態は各々、以下の特徴のうちの1つまたは複数を随意に含むことができる。
いくつかの実装形態では、方法は、アプリケーション内のコンテンツページ上に提供され、クライアントデバイスのディスプレイの特定の部分において表示される特定のコンテンツアイテムが、コンテンツプロバイダによって提供されたサードパーティコンテンツアイテムであるかどうかを、デジタル署名付きトークンを使用して検証する動作を含むことができ、検証することは、デジタル署名付きトークンの中に含まれるデジタル署名が有効であるのを確認することであって、デジタル署名付きトークンの中に含まれるデジタル署名以外のデータを使用してデジタル署名を生成することを含む、確認することと、サードパーティコンテンツアイテム用の複数の属性に対するデータをコンテンツプロバイダから取得することと、デジタルウォーターマークの中で符号化された複数の属性に対するデータが、サードパーティコンテンツアイテムのために取得された対応する複数の属性に対するデータと同一であることを決定し、それに応答して、特定のコンテンツアイテムがサードパーティコンテンツアイテムであることを示すメッセージを生成することとを含む。
いくつかの実装形態では、方法は、特定のコンテンツアイテムの中にデジタルウォーターマークが埋め込まれていないという決定に応答して、サードパーティコンテンツアイテムがクライアントデバイスのディスプレイの特定の部分の中で認識可能でないことを示すメッセージをデジタル署名付きトークンのペイロードの中に含めるデジタル署名付きトークンを生成することと、生成されたデジタル署名付きトークンをアプリケーションに提供することとを行う動作を含むことができる。
いくつかの実装形態では、方法は、ディスプレイの特定の部分において表示されている特定のコンテンツアイテムのスクリーンショットを、ディスプレイの特定の部分を使用して取得する動作を含むことができる。
いくつかの実装形態では、特定のコンテンツアイテムの中に埋め込まれているデジタルウォーターマークを取得することは、ディスプレイの特定の部分において表示されている特定のコンテンツアイテムの取得されたスクリーンショットからデジタルウォーターマークを取得することを含む。
いくつかの実装形態では、取得されたデジタルウォーターマークは、以下の属性、すなわち、サードパーティコンテンツアイテムのコンテンツタイプ、サードパーティコンテンツアイテムの中で提供されるコンテンツの記述、サードパーティコンテンツプロバイダの識別情報、サードパーティコンテンツアイテムに対する一意の識別子、サードパーティコンテンツアイテムのサイズパラメータ、デジタルウォーターマークが作成された時間を示すタイムスタンプ、およびサードパーティコンテンツプロバイダのデジタル署名、のうちの2つ以上についてのデータを符号化することができる。
いくつかの実装形態では、デジタル署名付きトークンは、(1)クライアントデバイスのデバイス公開鍵と、(2)複数の属性に対するデータを含むペイロードと、(3)クライアントデバイスの信用性を識別するデバイス完全性トークンであって、信頼されるデバイス完全性システムによって署名されたデバイス完全性トークンと、(4)デバイス公開鍵、ペイロード、およびデバイス完全性トークンの、デジタル署名とを含む、証明トークンであり得、デジタル署名は、デバイス公開鍵に対応しデバイス公開鍵と数学的に関連がある、クライアントデバイス用のデバイス秘密鍵を使用して生成される。
概して、本明細書で説明する主題の別の発明的態様は、アプリケーション内のコンテンツページ上に提供され、クライアントデバイスのディスプレイの特定の部分において表示される特定のコンテンツアイテムが、コンテンツプロバイダによって提供されたサードパーティコンテンツアイテムであるかどうかを検証するために使用される、デジタル署名付きトークンを生成するための要求を、クライアントデバイス上で実行するアプリケーションから受信することであって、要求が、クライアントデバイスのオペレーティングシステムから取得された初期証明データを含み、初期証明データが、(1)ディスプレイの特定の部分において表示される特定のコンテンツアイテムの中に埋め込まれているデジタルウォーターマーク内に符号化された複数の属性に対する復号データであって、複数の属性が特定のコンテンツアイテムを記述する、復号データと、(2)ディスプレイの特定の部分を識別するデータと、(3)復号データ、およびディスプレイの特定の部分を識別するデータを使用して生成される、第1のデータアイテムとを含むことと、第1のデータアイテムが第2のデータアイテムに整合するかどうかを特定する指示を、オペレーティングシステムから取得することであって、第2のデータアイテムが、要求に含まれる、復号データ、およびディスプレイの特定の部分を識別するデータを使用して、オペレーティングシステムによって生成されることと、第1のデータアイテムが第2のデータアイテムに整合することを特定する指示の取得に応答して、複数の属性に対するデータをデジタル署名付きトークンのペイロードの中に含めるデジタル署名付きトークンを生成することと、生成されたデジタル署名付きトークンをアプリケーションに提供することとを行う動作を含む方法で具現され得る。この態様の他の実施形態は、方法のアクションを実行するように構成された、対応するシステム、デバイス、装置、およびコンピュータプログラムを含む。コンピュータプログラム(たとえば、命令)は、コンピュータ記憶デバイス上で符号化され得る。これらおよび他の実施形態は各々、少なくとも以下の特徴を随意に含むことができる。
いくつかの実装形態では、第1のデータアイテムおよび第2のデータアイテムの各々は、ハッシュ化メッセージ認証コードであり得る。
本明細書で説明する主題の特定の実施形態は、以下の利点のうちの1つまたは複数を実現するために実施され得る。本明細書で説明する技法は、たとえば、コンテンツプラットフォームによって提供されるコンテンツページにおける、コンテンツプラットフォームにおける、またはコンテンツプラットフォームのコンテンツページにアクセスするために使用されるアプリケーションにおける、(たとえば、悪意のあるエンティティによって犯されている不正の事例も含むことができる)ソフトウェアエラーおよびバグなどのエラーを識別することができる。たとえば、アプリケーション内、特定のコンテンツページ内、またはコンテンツプラットフォームの中の、ソフトウェアエラーは、コンテンツプロバイダによって提供されたサードパーティコンテンツが表示されるのを妨げることがあり、あるいはコンテンツプラットフォーム上で表示され得るサードパーティコンテンツを他のコンテンツが覆うかまたは見えなくする結果となることがある。いくつかの事例では、そのようなソフトウェアエラーは、アプリケーション、特定のコンテンツページ、またはコンテンツプラットフォームを脅かしていることがある、悪意のあるエンティティによって引き起こされることがある。本明細書で説明する技法は、コンテンツプロバイダによって提供されたサードパーティコンテンツが、コンテンツプラットフォームがクライアントデバイス上でアクセスされるときに実際に認識可能であるのを確認することができる。クライアントデバイス上で表示されるものと予想される、コンテンツプロバイダによって提供された特定のサードパーティコンテンツが、クライアントデバイスのユーザに認識可能でないとき、そのことは、(1)クライアントデバイス上で表示されるコンテンツページ、(2)コンテンツプラットフォーム、(3)アプリケーション、および/または(4)コンテンツプラットフォームにコンテンツを提供する1つもしくは複数のコンテンツプロバイダにおける、ソフトウェアエラーの存在を示唆する。
本明細書で説明する技法はまた、コンテンツプロバイダによって提供されたサードパーティコンテンツが、実際にクライアントデバイス上で表示されデバイスのユーザに認識可能であるかどうかの、独立した確認を行う。言い換えれば、本明細書で説明するサードパーティコンテンツ確認技法は、(従来の解決策において起こったように)それがアプリケーション内で表示するコンテンツに関するコンテンツプラットフォームによって行われる表現(たとえば、それによってサブミットされるデータ)に単に依拠するわけではない。むしろ、本明細書で説明する技法は、そのような確認を実行するために、たとえば、オペレーティングシステムの処理は、単独で、またはクライアントデバイス上で実行する別個のアプリケーションと協働して、クライアントデバイスによる独立した処理に依拠する。本明細書で説明する技法は、コンテンツプラットフォーム上に提供されクライアントデバイス上で表示されるコンテンツを分析し、このコンテンツが実際にコンテンツプロバイダによって提供されユーザデバイスのユーザに認識可能であるかどうかを確認するために使用され得るトークンを生成する。
それに関連して、本明細書で説明する技法は、コンテンツがクライアントデバイス上で表示されユーザに認識可能であるのを確認するためにコンテンツプロバイダ(または、別のコンテンツ確認エンティティ)によって使用され得る情報を、クライアントデバイスからコンテンツプロバイダ(または、別のコンテンツ確認エンティティ)へとセキュアに伝送することを可能にする。悪意のあるアプリケーションまたはエンティティは、クライアントデバイスによってコンテンツプロバイダ(または、別のコンテンツ確認エンティティ)に提供される情報を改ざんまたは偽造することを試みる場合があり、そのことは、コンテンツを誤って確認させることがある。このことを回避するために、本明細書で説明する技法は、クライアントデバイスからコンテンツプロバイダへの情報の伝送をセキュアにするためのいくつかの暗号化技法を利用する。その結果、本明細書で説明するコンテンツ確認プロセスは、コンテンツ確認プロセス中にコンテンツプロバイダ(または、別の適切な確認システム)を欺くように設計された、悪意があるかまたは不正なアクションに屈服する可能性が低い。
本明細書で説明する主題の1つまたは複数の実施形態の詳細は、添付図面および以下の説明において記載される。本主題の他の特徴、態様、および利点は、説明、図面、および特許請求の範囲から明らかとなろう。
クライアントデバイス上のアプリケーション内でアクセスされるコンテンツプラットフォーム内での表示のためにコンテンツが提供される、例示的な環境のブロック図である。 エラーを検出すること、およびコンテンツプラットフォーム上に提供されるとともにクライアントデバイス上で表示され、かつデバイスのユーザに認識可能である特定のコンテンツアイテムが、コンテンツプロバイダによって提供されるのを確認することのための、例示的なプロセスを示すスイムレーン図である。 エラーを検出するため、およびコンテンツプラットフォーム上に提供されるとともにクライアントデバイス上で表示され、かつデバイスのユーザに認識可能である特定のコンテンツアイテムが、コンテンツプロバイダによって提供されるのを確認するための、別の例示的なプロセスを示すスイムレーン図である。 例示的なコンピュータシステムのブロック図である。
様々な図面における同様の参照番号および指定は、同様の要素を示す。
本開示は、サードパーティコンテンツ提示において起こり得るエラーを検出すること、およびコンテンツプラットフォーム上での表示のためにコンテンツプロバイダによって提供されたサードパーティコンテンツが、コンテンツプラットフォームがクライアントデバイス上でアクセスされるときに実際に表示されユーザに認識可能であるのを確認することのための、コンピュータ実装方法およびシステムに関する。
コンテンツプラットフォームは、そのプラットフォーム上で提供されるいくつかのコンテンツが、クライアントデバイス上で実行するアプリケーション(たとえば、ブラウザ、ネイティブアプリケーション)内でコンテンツプラットフォームがアクセスされるときに実際にクライアントデバイス上で表示されユーザに認識可能であるのを確認したい場合がある。コンテンツプロバイダはまた、コンテンツプロバイダがコンテンツプラットフォームに提供するサードパーティコンテンツが、コンテンツプラットフォームがクライアントデバイス上でアクセスされるときに実際にクライアントデバイス上で表示されユーザに認識可能であることを確認したい場合がある。本明細書で説明する技法は、以下で要約するように、また本明細書全体にわたる追加の詳細において説明するように、コンテンツプロバイダ(または、別の適切なコンテンツ確認システム)と協働して動作するクライアントデバイス上で実行する信頼されるソフトウェアプロセス(たとえば、オペレーティングシステムのセキュアな/特権的なコード、信頼されるシステムアプリケーション)に依拠することによって、そのようなコンテンツ確認を可能にする。
本明細書全体にわたって説明するように、オペレーティングシステム(または、クライアントデバイス上もしくはウェブブラウザ上の信頼される別のアプリケーション)は、部分的または完全に暗号化され得るデジタル署名付きトークンを生成するための要求を、クライアントデバイス上で実行するアプリケーションから受信する。このデジタル署名付きトークンは、アプリケーション内のコンテンツページ上に提供され、クライアントデバイスのディスプレイの特定の部分において表示され、かつユーザに認識可能である、特定のコンテンツアイテムが、コンテンツプロバイダによって提供されたサードパーティコンテンツアイテムであるのを確認するために使用され得る。
クライアントデバイスのオペレーティングシステム(または、クライアントデバイス上もしくはウェブブラウザ上の信頼される別のアプリケーション)は、ディスプレイの特定の部分、たとえば、モバイルデバイス用のタッチスクリーンおよびデスクトップコンピュータ用のLCD/LEDディスプレイにおいて表示される特定のコンテンツアイテムの中に、デジタルウォーターマークが埋め込まれているかどうかを判定する。本明細書で使用するとき、信頼されるアプリケーションとは、デバイス上のセキュアな環境内で動作し、かつ(オペレーティングシステム内の特権的コードによって実行されるデバイスサービスと類似の)いくつかのコアデバイスサービスを実行する、アプリケーションである。オペレーティングシステム(または、ウェブブラウザ)は、コンテンツの中のデジタルウォーターマークを識別しない場合、そのようなウォーターマークを含むことになる、コンテンツプロバイダによって提供されたサードパーティコンテンツアイテムが、クライアントデバイス上で認識可能でないことを結論付ける。このことは、コンテンツページ、コンテンツプラットフォーム、アプリケーション、またはコンテンツプロバイダにおける、エラーを示してよい。一方、オペレーティングシステム(または、ウェブブラウザ)は、特定のコンテンツアイテムの中のデジタルウォーターマークを識別する場合、特定のコンテンツアイテムを記述する複数の属性(たとえば、コンテンツアイテム識別子、コンテンツタイプ、コンテンツ記述、コンテンツ作成者など)に対するデータを取得するために、デジタルウォーターマークを復号する。
この復号データを使用して、オペレーティングシステム(または、クライアントデバイス上もしくはウェブブラウザ上の信頼される別のアプリケーション)は、複数の属性に対するデータをデジタル署名付きトークンのペイロードの中に含めるデジタル署名付きトークンを生成する。いくつかの実装形態では、デジタル署名付きトークンは、(1)クライアントデバイスの一意の識別子(たとえば、デバイスの公開鍵)、(2)ペイロード、(3)クライアントデバイスの信用性を評価するために使用され得るデバイス完全性トークン、ならびに/または(4)クライアントデバイス用のデバイス識別子、ペイロード、およびデバイス完全性トークンの、クライアントデバイスの秘密鍵を使用して生成されるデジタル署名を含む、証明トークンである。デジタル署名付きトークン、および特に証明トークンは、デジタル署名付きトークンの受信者が、(図2を参照しながらさらに説明するように)トークンのペイロードの中に(または、それ以外に)含まれるデータのうちのいずれかが、改ざんまたは偽造されているかどうかを識別できることを確実にする。ウェブブラウザがデジタル署名付きトークンを生成する場合には、ブラウザのネイティブコードがトークンを生成する。ブラウザネイティブコードは、ブラウザによってレンダリングされるウェブページ上で動作するスクリプトが有しない特権を有する。Javaスクリプトがブラウザネイティブコードに侵入することは、一般に極めて困難である。
オペレーティングシステム(または、クライアントデバイス上もしくはウェブブラウザ上の信頼される別のアプリケーション)は、デジタル署名付きトークンをコンテンツプロバイダ(または、別の適切なコンテンツ確認システム)へ送る。コンテンツプロバイダは、デジタル署名を確認することによって、デジタル署名付きトークンが本物であるかどうかを最初に検証する。本物でない場合、コンテンツプロバイダは、そのサードパーティコンテンツアイテムがクライアントデバイス上で表示されない場合があること、およびコンテンツページ、コンテンツプラットフォーム、またはアプリケーションにおいてエラーがあり得ることを結論付ける。コンテンツプロバイダは、デジタル署名付きトークンが本物であることを決定する場合、次に、ペイロードの中に含まれる属性に対するデータが、コンテンツプロバイダによって提供されたサードパーティコンテンツアイテムの属性に対するデータに整合するかどうかを判定する。属性に対するデータが整合することをコンテンツプロバイダが決定する場合、コンテンツプロバイダは、表示のために提供されデバイスのディスプレイの特定の部分の中でユーザに認識可能な特定のコンテンツアイテムが、確かにコンテンツプロバイダによって提供されることを結論付ける。そうでない場合、コンテンツプロバイダは、そのサードパーティコンテンツアイテムが実際にはクライアントデバイス上で表示されないこと、およびコンテンツページ、コンテンツプラットフォーム、アプリケーション、またはコンテンツプロバイダにおいてエラーがあり得ることを結論付ける。
上記で説明した特徴および追加の特徴が、以下でより詳細に説明される。
図1は、クライアントデバイス上のアプリケーション内でアクセスされるコンテンツプラットフォーム内での表示のためにコンテンツが提供される、例示的な環境100である。例示的な環境100は、ローカルエリアネットワーク(LAN)、ワイドエリアネットワーク(WAN)、インターネット、またはそれらの組合せなどの、ネットワーク150を含む。ネットワーク150は、クライアントデバイス102、コンテンツプラットフォーム140、およびコンテンツプロバイダ130を接続する。例示的な環境100は、多くの異なるコンテンツプロバイダ130、コンテンツプラットフォーム140、およびクライアントデバイス102を含んでよい。
クライアントデバイス102は、ネットワーク150を介してコンテンツを要求および受信することが可能な電子デバイスである。例示的なクライアントデバイス102は、パーソナルコンピュータ、モバイル通信デバイス、デジタルアシスタントデバイス、およびネットワーク150を介してデータを送ることおよび受信することができる他のデバイスを含む。クライアントデバイス102は、通常、ネットワーク150を介してデータを送ることおよび受信することを容易にするために、ウェブブラウザなどのユーザアプリケーションを含むが、クライアントデバイス102によって実行されるネイティブアプリケーションも、ネットワーク150を介してコンテンツを送ることおよび受信することを容易にすることができる。クライアントデバイス102において提示されるコンテンツの例は、ウェブページ、ワードプロセッシング文書、ポータブルドキュメントフォーマット(PDF)文書、画像、ビデオ、および検索結果ページを含む。
コンテンツプラットフォーム140は、コンテンツの配信を可能にする(たとえば、図4を参照しながら説明するようなデータ処理装置などの)コンピューティングプラットフォームである。例示的なコンテンツプラットフォーム140は、検索エンジン、ソーシャルメディアプラットフォーム、ニュースプラットフォーム、データアグリゲータプラットフォーム(data aggregator platform)、または他のコンテンツ共有プラットフォームを含む。各コンテンツプラットフォーム140は、コンテンツプラットフォームサービスプロバイダによって動作させられてよい。
コンテンツプラットフォーム140は、それ自体のコンテンツを発行することができ、それを利用可能にすることができる。たとえば、コンテンツプラットフォーム140は、それ自体のニュース記事を発行するニュースプラットフォームであってよい。コンテンツプラットフォーム140はまた、コンテンツプラットフォーム140の一部でない1つまたは複数のコンテンツプロバイダ130によって提供されたコンテンツを提示してよい。上記の例では、ニュースプラットフォームはまた、1つまたは複数のコンテンツプロバイダ130によって提供されたサードパーティコンテンツを提示してよい。別の例として、コンテンツプラットフォーム140は、それ自体のコンテンツのうちのいずれも発行しないが、様々なコンテンツプロバイダ130によって提供されたサードパーティコンテンツを集約および提示する、データアグリゲータプラットフォームであってよい。
本明細書で使用するとき、コンテンツプロバイダ130は、(図4を参照しながら説明するような)データ処理装置であり得、1つまたは複数のエンティティからのコンテンツを求める要求に応答して、コンテンツプラットフォーム140および/またはクライアントデバイス102にコンテンツを提供する、これらのエンティティによって生成および/または発行されたコンテンツを記憶する、サーバ、リポジトリ、または他の記憶デバイスを含むことができる。
クライアントデバイス102が、アプリケーション、すなわち、(ブラウザまたはネイティブアプリケーションなどの)アプリケーションA104内で、コンテンツプラットフォーム140によって提供されたコンテンツページにアクセスするとき、コンテンツページ上のスクリプト(または、アプリケーションAの中のネイティブコード)は、コンテンツプラットフォーム140の一部でない1つまたは複数のコンテンツプロバイダ130にコンテンツを要求する。コンテンツを求めるこの要求に応答して、コンテンツプロバイダ130は、アプリケーション内でコンテンツアイテム(たとえば、コンテンツアイテムCI1 106またはコンテンツアイテムCI2 108)として提示され得るサードパーティコンテンツを提供する。
クライアントデバイス102は、アプリケーションの中で提供されクライアントデバイス上で表示される(CI1 106などの)特定のコンテンツアイテムが、コンテンツプロバイダ130によって提供されユーザに認識可能であるであるかどうかを確認するために、コンテンツプロバイダ130と協働して動作することができる。クライアントデバイス102およびコンテンツプロバイダ130がそれによってこの確認を協働的に実行する技法は、以下に要約され、図2および図3を参照しながら追加の詳細において説明される。
最初に、コンテンツプロバイダ130は、アプリケーション内での表示のためにコンテンツプロバイダ130がコンテンツプラットフォームに提供するコンテンツアイテムの中に、デジタルウォーターマークを含める。本明細書で使用するとき、デジタルウォーターマークは、視覚的に区別できない方式でコンテンツ内に情報を埋め込む。いくつかの実装形態では、コンテンツプロバイダ130は、コンテンツアイテムのメタデータ内ではなく、コンテンツアイテムのコンテンツの中に、デジタルウォーターマークを埋め込む。コンテンツアイテムのコンテンツ内にデジタルウォーターマークを埋め込むことにより、(コンテンツアイテムのコンテンツのみを提供し、コンテンツアイテムのメタデータを提供しない)コンテンツアイテムのスクリーンショットのみを使用して、コンテンツアイテムからウォーターマークを復号または抽出することが可能になる。
その上、コンテンツアイテムの中に埋め込まれるデジタルウォーターマークは、コンテンツアイテムを記述する1つまたは複数の属性を符号化する。そのような属性の例は、特に、(1)(たとえば、コンテンツがビデオであるのか、オーディオであるのか、それともテキストであるのかを指定できる)コンテンツアイテムのコンテンツタイプ、(2)コンテンツアイテムのコンテンツの記述、(3)コンテンツプロバイダの識別情報(たとえば、コンテンツアイテムを提供した特定のコンテンツプロバイダ130を一意に識別し得る、数字識別子、英数字識別子、または他の識別子)、(4)コンテンツアイテムの識別情報(たとえば、コンテンツアイテムを一意に識別し得る、数字識別子、英数字識別子、または他の識別子)、(5)コンテンツアイテムの作成者の識別情報(たとえば、コンテンツプロバイダ130と同じであっても異なってもよいコンテンツアイテムの作成者を一意に識別し得る、数字識別子、英数字識別子、または他の識別子)、(6)コンテンツアイテムのサイズパラメータ(たとえば、コンテンツアイテムが提供されることをコンテンツプロバイダ130が予想するコンテンツブロックの予想サイズを指定するパラメータ)、(7)デジタルウォーターマークが作成された時間(たとえば、ウォーターマークが作成された時刻および/または日付)を示すタイムスタンプ、および(8)コンテンツプロバイダ130のデジタル署名(たとえば、デジタル署名は、デジタルウォーターマークの中で符号化された属性にわたって署名され得る)を含む。これらの属性は、特定のコンテンツがコンテンツプロバイダによって提供されておりユーザに認識可能であるかどうかを検証する際に、コンテンツプロバイダ130によって後で使用される。
いくつかの実装形態では、コンテンツプロバイダ130は、コンテンツアイテムを構成する異なるピクセルのピクセル値への(すなわち、色合いを調整することによる)調整/修正を指定することによって、コンテンツアイテムのコンテンツの中にデジタルウォーターマークを埋め込む。調整は、コンテンツの色を修正することがあるが、視覚的に知覚できない方法で、すなわち、完全に色を変化させる(たとえば、ピクセルを赤色などの特定の色から青色などの完全に異なる色に変化させる)ことなく、コンテンツの色に微調整を加える(たとえば、ピクセルを特定の色からその特定の色のもっと明るい陰影に変化させる)ことによって、そのようにする。
コンテンツプロバイダ130がアプリケーション104にコンテンツアイテムを提供すると、アプリケーション104はコンテンツアイテムをレンダリングする。すなわち、アプリケーション104は、アプリケーション104内での表示のためにコンテンツアイテムを提供することができる。
アプリケーション104がコンテンツページ上で1つまたは複数のコンテンツアイテムを表示のためにレンダリングまたは提供した後、アプリケーション104(または、スクリプトの助けを介してコンテンツアイテム自体)は、アプリケーション内で表示される特定のコンテンツアイテム、たとえば、CI1 106が、確かにコンテンツプロバイダ130によって提供されておりユーザに認識可能であるという確認を得ようとすることができる。
(図2を参照しながら説明するような)いくつかの実装形態では、アプリケーションは、アプリケーション104内のコンテンツページ上に提供され、クライアントデバイスのディスプレイの特定の部分においてユーザに表示されるとともに認識可能である、コンテンツアイテムCI1 106が、コンテンツプロバイダ130によって提供されたコンテンツアイテムであるかどうかを検証するために使用される、デジタル署名付きトークンを生成するように、クライアントデバイス102のオペレーティングシステム118に要求する。デバイスディスプレイドライバ110、ウォーターマークデコーダ112、トークン生成器114、およびMAC生成器116などの、ソフトウェア構成要素を含む、オペレーティングシステム118内の特権的コードまたは信頼されるコードは、デジタルウォーターマークを復号し、デジタル署名付きトークンを生成し、かつアプリケーション104にデジタル署名付きトークンを提供する際に、使用される。アプリケーション104は、このデジタル署名付きトークンをコンテンツプロバイダ130に提供し、コンテンツプロバイダ130は、コンテンツ確認を実行する際にこのデジタル署名付きトークンを使用する。特権的コードまたは信頼されるコードは、カーネルモードのみで動作するコード(すなわち、いかなる他のユーザ、アプリケーション、またはエンティティにもよらず、オペレーティングシステムのみによって実行され得るコード/命令)である。その結果、特権的コードまたは信頼されるコードは、他のアプリケーション/エンティティによる侵入に対して脆弱である可能性が低い。
(図3を参照しながら説明するような)いくつかの実装形態では、オペレーティングシステム118はデジタルウォーターマークを復号し、別のアプリケーション(すなわち、アプリケーション104とは別個であるアプリケーション104)は、デジタル署名付きトークンを生成する際に、復号されたデジタルウォーターマークから取得される情報を使用する。
図1の上記で参照した構成要素の各々の構造および/または動作が、図2および図3を参照しながら追加の詳細において説明される。
図2は、エラーを検出すること、およびクライアントデバイス上で表示される特定のコンテンツアイテムがコンテンツプロバイダによって提供されユーザに認識可能であるのを確認することのための、例示的なプロセス200を示すスイムレーン図である。プロセス200の動作は、図1において説明および図示したシステムの構成要素によって実行されるものとして以下で説明されるが、そのような説明は例示のためのものにすぎない。プロセス200の動作は、任意の適切なデバイスまたはシステム、たとえば、図4を参照しながら説明する任意の適切なデータ処理装置によって実行され得る。プロセス200の動作はまた、非一時的コンピュータ可読媒体上に記憶される命令として実施され得る。
アプリケーションA104は、コンテンツページをレンダリングし(202において)、そのことは、アプリケーション104内でコンテンツアイテムCI1 106およびCI2 108を提供することを含む。図1を参照しながら説明したように、これらのコンテンツアイテムのうちの1つまたは複数は、コンテンツプロバイダ130から取得されるサードパーティコンテンツアイテムであり得る。
アプリケーションA104は、アプリケーション104内のコンテンツページ上に提供され、クライアントデバイス102のディスプレイの特定の部分において表示され、かつクライアントデバイス102のユーザに認識可能である、特定のコンテンツアイテムCI1 106が、コンテンツプロバイダ130によって提供されたサードパーティコンテンツアイテムであるかどうかを確認するために使用される、デジタル署名付きトークンを生成するための要求をオペレーティングシステム118へ送る(204において)。デジタル署名付きトークンの生成に関する詳細は、動作210を参照しながら説明される。いくつかの実装形態では、デジタル署名付きトークンを生成するための要求は、コンテンツがこのアプリケーション内で表示されるのを確認するためのアプリケーションAによる要求の一部として含められる。アプリケーション104によって送られオペレーティングシステム118によって受信されるこの要求はまた、特定のコンテンツアイテムCI1 106が表示される、クライアントデバイスのディスプレイの特定の部分を識別する。
いくつかの実装形態では、ネイティブアプリケーションであり得るアプリケーション104は、アプリケーション104に要求を生成させ、かつその要求とともに、特定のコンテンツアイテムが表示される、ディスプレイの特定の部分を分画するディスプレイの座標を提供させる(または、代替として、デバイスのディスプレイ上でのピクセルの範囲を指定する)、ソフトウェア開発キット(SDK)またはアプリケーションプログラミングインターフェース(API)を含むことができる。アプリケーション104がウェブブラウザである実装形態では、ページ上で実行するスクリプトが、要求を生成することができ、その要求とともに、特定のコンテンツアイテムが表示される、ディスプレイの特定の部分を分画するディスプレイの座標を提供することができる(または、代替として、デバイスのディスプレイ上でのピクセルの範囲を指定する)。そのような実装形態では、オペレーティングシステムがデジタル署名付きトークンを生成する場合、スクリプトはオペレーティングシステム118へ要求を送る。しかしながら、ウェブブラウザがデジタル署名付きトークンを生成する場合、スクリプトはウェブブラウザのネイティブな特権的コードへ要求を送る。
オペレーティングシステム118(または、ウェブ用のブラウザ)は、ディスプレイの特定の部分のスクリーンショットを取得する(206において)。いくつかの実装形態では、デバイスディスプレイドライバ110は、ディスプレイの特定の部分の中での表示のために提供される特定のコンテンツアイテムCI1 106のスクリーンショットを位置特定および生成するために、要求の中に含められたディスプレイの特定の部分の識別情報(たとえば、座標またはピクセル範囲)を使用する。いくつかの実装形態では、デバイスディスプレイドライバ110は、ディスプレイの特定の部分のスクリーンショットをウォーターマークデコーダ112に提供する。いくつかの実装形態では、オペレーティングシステムのデバイスドライバは、デバイスドライバが全体的なビットマップをメモリの中に構築することを可能にし、かつ全体的なビットマップをスクリーンに示す、メモリバッファを有する。そのような実装形態では、スクリーンショットを取得することは、メモリの中の全体的なビットマップにアクセスすることと、ディスプレイの特定の部分に対応する、ビットマップの部分を識別することとを単に含む。
デバイスディスプレイドライバ110から取得されたスクリーンショットを使用して、(オペレーティングシステム118の中に、またはウェブブラウザの一部として、実装され得る)ウォーターマークデコーダ112は、スクリーンショットの中にデジタルウォーターマークが存在するかどうかを判定し、そうである場合、デジタルウォーターマークを復号する(208において)。ウォーターマークデコーダ112は、デジタルウォーターマークとしてコンテンツアイテムの中に符号化されたデータを取得するために、特定のコンテンツの中でデータがどのように(たとえば、ピクセル値調整の異なるパターンを使用して)符号化され得るのかを指定する規則を記憶する、規則ベースエンジンとして実装され得る。代替として、ウォーターマークデコーダ112は、機械学習モデル(たとえば、教師あり機械学習モデル)などの統計モデルとして実装され得る。そのようなモデルは、入力コンテンツアイテムのスクリーンショットからデジタルウォーターマーク(すなわち、コンテンツアイテム内に符号化されたデータ)を取得することができ、埋め込まれたデジタルウォーターマークを有するコンテンツアイテムのスクリーンショットのセット、およびコンテンツアイテム内に符号化されたデータを含むラベルの対応するセットを使用して、トレーニングされる。代替として、ウォーターマークデコーダ112は、フーリエ変換またはウェーブレット変換を含むアルゴリズムを使用して最初に画像を周波数領域に変換し、次いで、結果の低周波成分を検査することによって、実施され得る。
いくつかの実装形態では、ウォーターマークデコーダ112は、ディスプレイの特定の部分において表示される特定のコンテンツアイテムの中にデジタルウォーターマークが埋め込まれているかどうかを最初に決定する。このことは、デジタルウォーターマークとして特定のコンテンツアイテムの中に任意のデータが埋め込まれているかどうかを判定するために、特定のコンテンツアイテムのスクリーンショットを分析することを含む。たとえば、デジタルウォーターマークとしてコンテンツアイテム内に符号化され得るデータを識別するために、特定のコンテンツの(すなわち、特定のコンテンツアイテムに対応する、ディスプレイの特定の部分のスクリーンショットの)ピクセル値が、規則ベースエンジンを使用して(または、機械学習モデルなどの別の統計モデルによって)分析される。この分析が、特定のコンテンツアイテムの中に存在するそのようないかなる符号化データも識別しない場合、ウォーターマークデコーダ112は、特定のコンテンツアイテムの中にデジタルウォーターマークが含まれていないことを決定する。この決定に基づいて、オペレーティングシステム118(または、ウェブブラウザがデジタル署名付きトークンを生成する場合はウェブブラウザ)は、コンテンツプロバイダ130によって提供されたサードパーティコンテンツアイテムがアプリケーション104の中で表示されないか、またはそれが表示される場合、アプリケーション104内で表示される他のコンテンツによって隠されている/覆われているかのいずれかであることを、結論付けることができる。そのような事例では、オペレーティングシステム118(または、ウェブブラウザがデジタル署名付きトークンを生成する場合はウェブブラウザ)は、コンテンツプロバイダ130によって提供されたサードパーティコンテンツアイテムがクライアントデバイスのディスプレイの特定の部分の中で認識可能でないことを示すメッセージを生成する。
一方、分析が、データがコンテンツアイテム内に符号化されていることを明らかにする場合、ウォーターマークデコーダ112は、特定のコンテンツアイテムの中にデジタルウォーターマークが含まれることを決定する。この事例では、ウォーターマークデコーダ112は、規則ベースエンジンまたは別の適切な統計モデル(たとえば、機械学習モデル)を使用して、デジタルウォーターマーク内に符号化された1つまたは複数の属性に対するデータを取得するためにデジタルウォーターマークを復号する。図1を参照しながら説明したように、これらの属性に対するデータは、特定のコンテンツアイテムを記述し、(以下でさらに説明するように)コンテンツプロバイダ130がこのコンテンツを提供したかどうかを検証する際にコンテンツプロバイダ130によって使用され得る。ウォーターマークデコーダ112は、特定のコンテンツアイテム106を記述する1つまたは複数の属性に対するデータを含む復号済みのデジタルウォーターマークを、トークン生成器114に提供する。
(オペレーティングシステム118の一部であるか、またはウェブブラウザがデジタル署名付きトークンを生成する場合はウェブブラウザの一部であってよい)トークン生成器114は、特定のコンテンツアイテムを記述する1つまたは複数の属性に対するデータを含む、デジタルウォーターマークを復号することから取得されたデータを使用して、デジタル署名付きトークンを生成する(210において)。
いくつかの実装形態では、デジタル署名付きトークンは、少なくともユーザ識別子およびペイロードを、またいくつかの事例ではデバイス完全性トークンも含む、データのセットを含む証明トークンである(言い換えれば、デバイス完全性トークンは証明トークンの中に含められ得るが、含められることは必須ではない)。証明トークンはまた、データのこのセットのデジタル署名を含む。以下の段落は、データのセットの中の各データアイテム、およびデータのこのセットのデジタル署名を説明する。
証明トークンの中に含まれ得るユーザ識別子は、クライアントデバイス102の公開鍵を含む。たとえば、クライアントデバイス102は、デバイス秘密鍵およびデバイス公開鍵を含む、暗号鍵の1つまたは複数のペアを生成および/または保持することができる。デバイス公開鍵は、デバイス秘密鍵に対応し、デバイス公開鍵と数学的に関連がある。秘密鍵を使用してデジタル署名されているデータは、対応する公開鍵のみを使用して確認され得る。同様に、公開鍵を使用して暗号化されているデータは、対応する秘密鍵のみを使用して解読され得る。
証明トークンの中に含まれ得るペイロードは、特定のコンテンツアイテムを記述する1つまたは複数の属性に対するデータを含む、デジタルウォーターマークを復号することから取得されたデータを含む。属性のうちの1つまたは複数に対するデータは、アレイの各位置が別個の属性に対するデータを含んで、アレイ(または、別のデータ構造)としてペイロードの中に含められ得る。いくつかの実装形態では、アレイは、コンテンツアイテム内に符号化され得るN個の可能な属性に対応するN個の位置を有することができるが、データは、復号されたウォーターマークに基づいて、データがそれに対して利用可能な属性に対応する、それらのアレイ位置のみにおいて記憶され得る。コンテンツアイテムがデジタルウォーターマークを含まないことをウォーターマークデコーダが決定する事例では、トークン生成器114は、コンテンツプロバイダ130によって提供されたサードパーティコンテンツアイテムがクライアントデバイスのディスプレイの特定の部分の中で認識可能でないことを示す、オペレーティングシステム118によって生成されるメッセージを含めることができる。
証明トークンの中に含まれ得る完全性トークンは、信頼されるクライアントデバイス110によって要求が送られたかどうかをエンティティが決定することを可能にする、デバイス完全性トークンを含む。デバイス完全性トークンは、クライアントデバイスの不正信号を評価し、かつ評価に基づいて信用性のレベルをクライアントデバイスに割り当てる、サードパーティデバイス完全性システムによって発行され得る。クライアントデバイス102用のデバイス完全性トークンは、(1)デバイス完全性トークンが生成された時間におけるクライアントデバイス102の信用性(または、完全性)のレベルを示す評決、(2)デバイス完全性トークンが生成された時間を示すデバイス完全性トークン作成時間、および(3)(たとえば、クライアントデバイスのデバイス公開鍵、またはその派生物であり得る)クライアントデバイス102用の一意の識別子を含むことができる。デバイス完全性トークンはまた、データのデジタル署名をデバイス完全性トークンの中に含めることができる。このデジタル署名は、デバイス完全性システムの秘密鍵を使用して生成され得る。
たとえば、デバイス完全性システムは、システムが内密に保持するその秘密鍵を使用してデータに署名することができる。デバイス完全性トークンを受信するエンティティは、デバイス完全性トークンの署名を確認するためにデバイス完全性システムの公開鍵を使用することができる。デバイス完全性トークンと証明トークンの両方の中にクライアントデバイス102用のデバイス公開鍵を含めることは、これらの2つのトークンを一緒に結合する。言い換えれば、デバイス完全性トークンの中にクライアントデバイス102のデバイス公開鍵を含めることによって、証明トークンの受領者は、そのクライアントデバイス102に対してデバイス完全性トークンが生成されたことを決定することができる。このことは、他の当事者が、エミュレータまたは障害を受けたクライアントデバイスからの要求の中に信頼されるデバイス用のデバイス完全性トークンを含めることが可能であることを防止する。
証明トークンに含まれ得るデジタル署名は、データの上記で説明したセットのデジタル署名(または、それらのいくつかの変形態)であり得る。このデジタル署名は、クライアントデバイス102のオペレーティングシステムによってセキュアかつ内密に保持され得るデバイス秘密鍵を使用して生成される。ウェブブラウザがデジタル署名付きトークンを生成するとき、ブラウザはセキュアかつ内密に秘密鍵を保持することができる。たとえば、デジタル署名は、ペイロード、ユーザ識別子(たとえば、デバイス公開鍵)、およびデバイス完全性トークンの、デジタル署名であり得る。いくつかの実装形態では、オペレーティングシステム118は、楕円曲線デジタル署名アルゴリズム(ECDSA:Elliptic Curve Digital Signature Algorithm)を使用してデジタル署名を生成するが、RSAなどの他の署名技法も使用され得る。
いくつかの実装形態では、証明トークンではなく別のタイプのデジタル署名付きトークンが、トークン生成器116によって生成され得、デジタルウォーターマークを復号することによって取得された属性データの通信をセキュアにするためにも使用され得る。たとえば、属性データは、サードパーティ完全性システムの秘密鍵を使用してデジタル署名され得る。コンテンツプロバイダ130などの、デバイス完全性トークンを後で受信するエンティティは、サードパーティ完全性システムに、対応する公開鍵を要求することができ、次いで、署名および属性データを確認するためにこの鍵を使用することができる。
プロセス200に戻ると、オペレーティングシステム118(または、ウェブブラウザがデジタル署名付きトークンを生成する場合はウェブブラウザ)は、生成されたデバイス完全性トークンをアプリケーション104に提供する(212において)。
アプリケーション104は、デジタル署名付きトークンをコンテンツプロバイダ130へ送り(214において)、コンテンツプロバイダ130は、特定のコンテンツアイテムCI1 106が、コンテンツプロバイダ130によって提供されたサードパーティコンテンツアイテムであるかどうかを検証するために、このトークンを使用する(216において)。いくつかの実装形態では、デジタルウォーターマークの中で符号化される属性値は暗号化されてよい。検証の一部として、コンテンツプロバイダ130は、デジタルウォーターマークの中で符号化された(かつ、トークンのペイロードの中に含められた)複数の属性に対するデータを取得するために、デジタル署名付きトークンの暗号化された部分を解読する。証明トークンがデジタル署名付きトークンとして使用される実装形態では、コンテンツプロバイダ130は、トークンの中に含まれるデジタル署名を確認するために、証明トークンの中に含まれるデバイス公開鍵を使用する。
コンテンツプロバイダ130は、次いで、デジタル署名付きトークンの中に含まれるデジタル署名を確認する。いくつかの実装形態では、コンテンツプロバイダ130は、デバイスの秘密鍵を使用して、解読されたペイロードの中に含まれるデータアイテム、デバイス公開鍵、および暗号化済みのデバイス完全性トークンを使用してデジタル署名を生成し、生成されたこのデジタル署名を証明トークンの中に含まれるデジタル署名と比較する。その比較が同一のデジタル署名を明らかにしない場合、コンテンツプロバイダ130は、ディスプレイの特定の部分内での表示のために提供されたコンテンツアイテム(CI1 106)が、コンテンツプロバイダ130が提供したサードパーティコンテンツアイテムでないことを結論付ける。いくつかの実装形態では、コンテンツプロバイダ130は、コンテンツプラットフォーム140、アプリケーション104、コンテンツがその上で表示される特定のコンテンツページ、またはコンテンツプロバイダにおいてエラーがあり得ることを示すメッセージを、アプリケーション104へ送ることができる。一方、その比較が同一の署名を明らかにする場合、コンテンツプロバイダ130は、証明トークンのペイロードの中に含まれる1つまたは複数の属性に対するデータを取得し、コンテンツ検証を継続する。
いくつかの実装形態では、証明トークンが署名付きのデバイス完全性トークンを含む場合、コンテンツプロバイダ130は、(上記で説明したように)システム用の公開鍵を取得するためにデバイス完全性システムと相互作用することができる。このコンテンツプロバイダ130は、デバイス完全性トークンの中のデジタル署名を確認することによって、デバイス完全性トークンが確かにデバイス完全性システムによって作成されており作成の後に修正されなかったことを確認するために、この公開鍵を使用する。デバイス完全性トークンの中のデジタル署名が、取得された公開鍵を使用して首尾よく確認される場合、また確認されたデバイス完全性トークンの中に存在するデバイス完全性データが、デバイスが信用すべきであることを示す場合、コンテンツプロバイダ130はそのコンテンツ検証を継続する。しかしながら、デバイス完全性トークンが、取得された公開鍵を使用して確認され得ない場合、またトークンを確認する時に取得されたデバイス完全性データが、デバイスが信用すべきでないことを示す場合、コンテンツプロバイダ130はこれ以上のコンテンツ検証を中止することができる。そのような事例では、コンテンツプロバイダ130はまた、コンテンツ検証のために使用されるべきデジタル署名付きトークンを送ったクライアントデバイス102においてエラーがあり得ることを示すメッセージを、アプリケーション104へ送ることができる。
コンテンツ検証の一部として、コンテンツプロバイダ130は、コンテンツプロバイダ130が以前にコンテンツプラットフォーム140に提供したサードパーティコンテンツアイテム用の1つまたは複数の属性に対するデータを取得する。いくつかの実装形態では、コンテンツプロバイダ130は、(1)コンテンツプロバイダ130によって提供されているコンテンツアイテム、(2)コンテンツアイテムが提供している先のコンテンツプラットフォーム140、および(3)コンテンツプラットフォームにアクセスするために使用されるアプリケーション内での表示のためにコンテンツアイテムが提供されているクライアントデバイス102についてのデータを記憶する、そのリポジトリから、このデータを求めて検索することができる。そのような実装形態では、コンテンツプロバイダ130は、コンテンツアイテムのセット、およびこれらのコンテンツアイテム用の1つまたは複数の属性に対する対応するデータを識別するために、特定のクライアントデバイス102用のデバイス識別子(たとえば、デバイス公開鍵)、およびアクセスされた特定のコンテンツプラットフォーム140(たとえば、コンテンツプラットフォーム識別子)を使用する。この実装形態では、コンテンツプロバイダ130は、コンテンツアイテムのセット、およびクライアントデバイス102に提供されていてよい関連する属性データを識別する。代替または追加の実装形態では、コンテンツプロバイダ130は、識別されるデータセットをさらに狭めるために、トークンのペイロードの中に含まれる1つまたは複数の属性に対するデータを使用することができる。たとえば、トークンのペイロードが、(コンテンツプロバイダ130によってコンテンツアイテムが提供された時間を示す)タイムスタンプおよびコンテンツアイテム識別子を含む場合、コンテンツプロバイダ130は、以前に提供された単一のコンテンツアイテムおよびその関連する属性データをさらに限定するとともにできる限り分離するために、このデータを使用することができる。
コンテンツプロバイダ130は、(先行する段落において説明したように)デジタルウォーターマークの中で符号化された(かつ、デジタル署名付きトークンのペイロードから取得された)1つまたは複数の属性に対するデータを、コンテンツプロバイダ130によって識別される単一のコンテンツアイテム用またはコンテンツアイテムのセット用の1つまたは複数の属性に対するデータと比較する。デジタルウォーターマークの中で符号化された1つまたは複数の属性に対するデータが、コンテンツプロバイダ130がそのリポジトリから識別したコンテンツアイテムのうちのいずれかのための対応する属性に対するデータと同一でないことを、コンテンツプロバイダ130が決定する場合、コンテンツプロバイダ130は、クライアントデバイス102上で表示される特定のコンテンツアイテムCI1 106が、コンテンツプロバイダ130によって提供されなかったことを結論付ける。そのような事例では、コンテンツプロバイダ130は、コンテンツプラットフォーム140、アプリケーション104、またはコンテンツがその上で表示される特定のコンテンツページにおいてエラーがあり得ることを示すメッセージを、アプリケーション104へ送ることができる。一方、デジタルウォーターマークの中で符号化された1つまたは複数の属性に対するデータが、コンテンツプロバイダ130がそのリポジトリから識別したコンテンツアイテムのうちのいずれかに対して取得された対応する属性に対するデータと同一であることを、コンテンツプロバイダ130が決定する場合、コンテンツプロバイダ130は、特定のコンテンツアイテムCI1 106が、コンテンツプロバイダ130によって提供されたサードパーティコンテンツアイテムでありユーザに認識可能であることを示すメッセージを生成する。
上記で説明したプロセスフローおよびシステム実装形態では、オペレーティングシステム118は、コンテンツアイテムの中に含まれるデジタルウォーターマークを復号し、デバイス公開鍵/秘密鍵ペア、およびトークン作成時間を含む、オペレーティングシステムによって知られているかまたは確認できる情報と一緒に、デジタルウォーターマークを復号する時に取得されたデータに基づいて暗号化トークンを生成した。代替として、アプリケーション104がウェブブラウザであるいくつかの実装形態では、オペレーティングシステム118ではなくブラウザが、デジタルウォーターマークを復号するとともにデジタル署名付きトークンを生成するために使用され得る。代替として、いくつかの実装形態では、オペレーティングシステム118はやはりデジタルウォーターマークを復号し得るが、別個のエンティティ(たとえば、デジタル署名付きトークンを要求するアプリケーション以外のアプリケーション)が、デジタル署名付きトークンを生成することができる。この実装形態および対応するプロセスフローは、以下の図3を参照しながら説明される。
図3は、エラーを検出すること、および/またはコンテンツプロバイダによってコンテンツプラットフォームに提供されたサードパーティコンテンツが、コンテンツプラットフォームがクライアントデバイス上でアクセスされるときに実際に表示され、かつユーザに認識可能であるのを確認することのための、例示的なプロセス300を示すスイムレーン図である。プロセス300の動作は、図1において説明および図示したシステムの構成要素によって実行されるものとして以下で説明される。プロセス300の動作は、単に例示のために以下で説明される。プロセス300の動作はまた、任意の適切なデバイスまたはシステム、たとえば、図4を参照しながら説明するような任意の適切なデータ処理装置によって実行され得る。プロセス300の動作はまた、非一時的コンピュータ可読媒体上に記憶される命令として実施され得る。
アプリケーションA104は、コンテンツページをレンダリングし(302において)、そのことは、アプリケーション104内でコンテンツアイテムCI1 106およびCI2 108を提供することを含む。図1および図2を参照しながら説明したように、これらのコンテンツアイテムのうちの1つまたは複数は、コンテンツプロバイダ130から取得されるサードパーティコンテンツアイテムであり得る。
アプリケーションA104は、アプリケーション104内のコンテンツページ上に提供されクライアントデバイス102のディスプレイの特定の部分において表示される特定のコンテンツアイテムCI1 106が、コンテンツプロバイダ130によって提供されたサードパーティコンテンツアイテムであるかどうかを確認するために少なくとも部分的に使用される、初期証明データを生成するための要求を、オペレーティングシステム118へ送る(304において)。アプリケーション104によって送られオペレーティングシステム118によって受信される要求はまた、特定のコンテンツアイテムCI1 106が表示される、クライアントデバイスのディスプレイの特定の部分を識別する。アプリケーションAによって要求される初期証明データは、以下のもの、すなわち、(1)(たとえば、特定のコンテンツアイテムの中に含まれるデジタルウォーターマークを復号する時に)特定のコンテンツアイテムから取得された1つまたは複数の属性に対する復号データ、または特定のコンテンツアイテムの分析に基づいてオペレーティングシステムによって識別される他のデータ(たとえば、特定のコンテンツアイテムの中にウォーターマークが含められなかったことを示すデータ)、(2)クライアントデバイスのディスプレイの特定の部分を識別するデータ、ならびに(3)たとえば、復号データ(または、オペレーティングシステムによって識別される他のデータ)を使用して生成されたメッセージ認証コードであり得る第1のデータアイテム、およびディスプレイの特定の部分を識別するデータを含む。いくつかの実装形態では、初期証明データはまた、復号データがいつ取得されるのか(すなわち、動作308においてさらに説明するように、1つまたは複数の属性に対するデータを取得するために、ウォーターマークデコーダ112がデジタルウォーターマークを復号する時間)を示すタイムスタンプなどのメタデータを含むことができる。そのような実装形態では、第1のデータアイテムは、復号データ(または、オペレーティングシステムによって識別される他のデータ)と、ディスプレイの特定の部分を識別するデータと、メタデータとのメッセージ認証コードであり得る。
いくつかの実装形態では、ネイティブアプリケーションであり得るアプリケーション104は、アプリケーション104に要求を生成させ、かつその要求とともに、特定のコンテンツアイテムが表示される、ディスプレイの特定の部分を分画するディスプレイの座標を提供させる(または、代替として、デバイスのディスプレイ上でのピクセルの範囲を指定する)、ソフトウェア開発キット(SDK)またはアプリケーションプログラミングインターフェース(API)を含むことができる。アプリケーション104がウェブブラウザである実装形態では、ページ上で実行するスクリプトが、要求を生成することができ、その要求とともに、特定のコンテンツアイテムが表示される、ディスプレイの特定の部分を分画するディスプレイの座標を提供することができる(または、代替として、デバイスのディスプレイ上でのピクセルの範囲を指定する)。
いくつかの実装形態では、初期証明データを求める要求は、クライアントデバイスのディスプレイの特定の部分内での表示のために提供される特定のコンテンツアイテムの確認のための、アプリケーションによるもっと広範な要求の一部である。
オペレーティングシステム118は、ディスプレイの特定の部分のスクリーンショットを取得する(306において)。図2を参照しながら説明したように、デバイスディスプレイドライバ110は、ディスプレイの特定の部分の中での表示のために提供される特定のコンテンツアイテムCI1 106のスクリーンショットを位置特定および生成するために、要求の中に含められたディスプレイの特定の部分の識別情報(たとえば、座標またはピクセル範囲)を使用する。
デバイスディスプレイドライバ110から取得されたスクリーンショットを使用して、ウォーターマークデコーダ112は、スクリーンショットの中にデジタルウォーターマークが存在するかどうかを判定し、そうである場合、デジタルウォーターマークを復号する(308において)。この動作は、図2を参照しながら説明した類似の動作(動作206)と実質的に同様に実行される。図2を参照しながら説明したように、ディスプレイの特定の部分のスクリーンショットがデジタルウォーターマークを含む場合、ウォーターマークデコーダ112は、特定のコンテンツアイテム106用の1つまたは複数の属性に対するデータを取得するためにデジタルウォーターマークを復号する。一方、ディスプレイの特定の部分のスクリーンショットがデジタルウォーターマークを含まないことをウォーターマークデコーダ112が決定する場合、オペレーティングシステム118は、コンテンツプロバイダ130によって提供されたサードパーティコンテンツアイテムが、アプリケーション104の中で表示されないか、またはそれが表示される場合、アプリケーション104内で表示される他のコンテンツによって隠されている/覆われているかのいずれかであることを結論付けることができる。そのような事例では、オペレーティングシステム118は、コンテンツプロバイダ130によって提供されたサードパーティコンテンツアイテムがクライアントデバイスのディスプレイの特定の部分の中で認識可能でないことを示すメッセージを生成する。
MAC生成器116は、復号データ(または、オペレーティングシステムによって識別される他のデータ)と、ディスプレイの特定の部分を識別するデータと、メタデータとのメッセージ認証コード(MAC:message authentication code)を生成する(310において)。いくつかの実装形態では、MACは、鍵付きハッシュメッセージ認証コードとも呼ばれるハッシュベースメッセージ認証コード(HMAC:hash-based message authentication code)であり得る。MAC生成器116は、(クライアントデバイス内のセキュアなロケーションの中に記憶されている)オペレーティングシステム118の秘密暗号鍵を使用して、復号データ(または、オペレーティングシステムによって識別される他のデータ)と、ディスプレイの特定の部分を識別するデータと、(適用可能な場合に)メタデータとのHMACを生成する。いくつかの実装形態では、オペレーティングシステム118は、復号データ(または、オペレーティングシステムによって識別される他のデータ)と、ディスプレイの特定の部分を識別するデータと、メタデータとを伴うHMACを、データ構造の中に含める。このデータ構造の中に含められるデータは、初期証明データと呼ばれる。いくつかの実装形態では、オペレーティングシステム118は、これらのデータアイテムを単一のデータ構造内に含めないが、これらの個々のデータアイテムの集合は、やはり初期証明データと呼ばれる。
オペレーティングシステム118が初期証明データを送り、アプリケーション104が初期証明データを受信する(312、314において)。
初期証明データを受信すると、アプリケーション104はアプリケーションB160に証明トークンを要求する(316において)。初期証明データを求める要求がもっと広範なコンテンツ確認要求の一部である実装形態では、証明トークンを求める要求は、初期証明データを受信するとアプリケーションによって自動的に実行され得る。いくつかの実装形態では、初期証明データが受信される時と証明トークンを求める要求が生成される時との間に、時間的に遅延があり得る。そのような実装形態では、オペレーティングシステム118と協働するアプリケーション104は、アプリケーション104内で提示される複数のコンテンツアイテムに関連する初期証明データを生成することができるが、コンテンツプロバイダ130(または、別のコンテンツ確認システム)が特定のコンテンツアイテムCI1 106のコンテンツ確認を要求するまで、証明トークンを要求するのを待つことができる。
アプリケーション160がデジタル署名付きトークンを生成する前に、アプリケーション160は、初期証明データの中で提供されるデータの確認を要求する。このことは、実際の証明データを偽のデータ、または異なるコンテンツアイテムに関連する初期証明データの中で提供されるデータと置き換えることによってコンテンツ確認システムを欺くための、悪意のあるエンティティ/アプリケーションの任意の試行を妨害するための取組みである。したがって、アプリケーション160は、初期証明データを検証するための要求をオペレーティングシステム118へ送る(318において)。いくつかの実装形態では、この要求は、オペレーティングシステム118によって検証されるべき初期証明データを含む。
オペレーティングシステム118は、初期証明データを確認する(320において)。いくつかの実装形態では、オペレーティングシステム118は、2つのステップにおいて初期証明データを確認する。最初に、オペレーティングシステム118は、いずれも初期証明データの中に含まれる、復号データ(または、オペレーティングシステムによって識別される他のデータ)のその秘密暗号鍵と、ディスプレイの特定の部分を識別するデータと、(適用可能な場合に)メタデータとを使用して、HMACを生成する。得られる値は、本明細書において第2のデータアイテムと呼ばれる。
オペレーティングシステムは、この第2のデータアイテムを、動作310において生成され初期証明データ内に含まれるHMACを参照する第1のデータアイテムと比較する(322において)。その比較に基づいて、第1のデータアイテムが第2のデータアイテムに整合する場合、オペレーティングシステム118は、第1のデータアイテムが第2のデータアイテムに整合した(または言い換えれば、HMACが確認された/有効であった)ことを示すメッセージを生成する。一方、第1のデータアイテムが第2のデータアイテムに整合しない場合、オペレーティングシステム118は、第1のデータアイテムが第2のデータアイテムに整合しなかった(または言い換えれば、HMACが確認されなかった/有効でなかった)ことを示すメッセージを生成する。オペレーティングシステム118は、生成されたメッセージをアプリケーション160(すなわち、図3の中のアプリB)へ送る。
このメッセージを受信すると、アプリケーション160(すなわち、図3の中のアプリB)は暗号化トークンを生成する(324において)。いくつかの実装形態では、アプリケーション160(すなわち、図3の中のアプリB)は、HMACの結果にかかわらず暗号化トークンを生成し、他の実装形態では、アプリケーション160は、動作322においてHMACが有効であるものと決定されるときのみ、暗号化トークンを生成する。
アプリケーション160(すなわち、図3の中のアプリB)は、初期証明データに含まれるデータ、すなわち、(たとえば、特定のコンテンツアイテムの中に含まれるデジタルウォーターマークを復号する時に)特定のコンテンツアイテムから取得された1つもしくは複数の属性に対する復号データ、または特定のコンテンツアイテムの分析に基づいてオペレーティングシステムによって識別される他のデータ(たとえば、特定のコンテンツアイテムの中にウォーターマークが含められなかったことを示すデータ)を使用して、デジタル署名付きトークンを生成する。アプリケーション160は、図2における動作210を参照しながら説明したのと実質的に同じ方法で、デジタル署名付きトークンを生成する。
アプリケーション160は、生成されたデジタル署名付きトークンをアプリケーション104へ送り、アプリケーション104は、デジタル署名付きトークンをコンテンツプロバイダ130(または、別の適切なコンテンツ確認システム)へ送る。
コンテンツプロバイダ130は、図2における動作216を参照しながら説明したのと実質的に同じ方法でデジタル署名付きトークンを検証する(326において)。
図3の上記で説明したプロセスフローでは、アプリケーション160(すなわち、図1に示すアプリケーションB)は、オペレーティングシステムとは別個である。しかしながら、他の代替実装形態では、アプリケーション160はオペレーティングシステム118の一部であってよい。そのような実装形態では、(動作310~314および318~322において説明するように)HMACを生成および検証することは必要でない。なぜかと言うと、図3の上記の説明とは異なり、初期証明データを生成するエンティティ(すなわち、オペレーティングシステム118)が、証明トークンを生成するエンティティ(すなわち、この代替実装形態ではオペレーティングシステム118の一部であるアプリケーションB160)と同じだからである。この代替実装形態が以下で説明される。
この代替実装形態では、要求304は、(上記で説明した動作304と同じである)初期証明データを求める要求であり得るか、または(図2を参照しながら説明した動作204と類似の)デジタル署名付きトークンを求める要求であり得る。オペレーティングシステム118は、やはりスクリーンショットを撮りデジタルウォーターマークを復号する動作(すなわち、動作306および308)を実行する。オペレーティングシステム118は、動作310において説明したようにHMACを生成しない。代わりに、オペレーティングシステム118の関連する構成要素(すなわち、構成要素110~112)が、要求304の中に含まれるデータをオペレーティングシステム118の一部でもあるアプリケーションB160に、動作306および308において取得/生成されるデータと一緒に提供する。
アプリケーション104からの初期要求が、初期証明データを求める要求であった場合、オペレーティングシステム118は、初期証明データが収集されていることをアプリケーション104に示す。しかしながら、オペレーティングシステム118は、この実装形態ではデータをアプリケーション104に提供する必要がない。いくつかの実装形態では、オペレーティングシステムは、このデータをアプリケーション104へ送ることができる。アプリケーション104は、次いで、デジタル署名付きトークンを求める別個の第2の要求を、今やオペレーティングシステム118の一部であるアプリケーションBへ送る。この要求は、オペレーティングシステム118によってアプリケーション104に提供されるデータを含む。オペレーティングシステムは、オペレーティングシステムが以前にアプリケーションB160に提供したデータが、第2の要求の中でアプリケーション104から受信されたデータと同じであるかどうかを、最初に検証する。データが整合する場合、アプリケーションBは、デジタル署名付きトークンの生成に進み、そうでない場合、アプリケーションBは、エラーがあることを結論付ける。この処理は、図3を参照しながら上記で説明した動作318~322を置き換える。
代替として、アプリケーション104からの初期要求が、デジタル署名付きトークンを求める要求であった場合、オペレーティングシステム118は、いかなる応答もアプリケーション104へ送らず、アプリケーション104も、いかなる追加の要求もオペレーティングシステム118へ送らない。
アプリケーションBは、要求304の中に含まれるデータ、および/または上記の動作324を参照しながら説明したのと実質的に同じ方法で動作306および308において生成された、取得されるデータを使用して、デジタル署名付きトークンを生成する。
コンテンツプロバイダ130は、動作326に関して上記で説明したのと実質的に同じ方式で、デジタル署名付きトークンを検証する。
図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つまたは複数のプログラマブルプロセッサによって実行され得る。プロセスおよび論理フローはまた、専用論理回路構成、たとえば、FPGA(フィールドプログラマブルゲートアレイ)またはASIC(特定用途向け集積回路)によって実行され得、装置もそれらとして実装され得る。
コンピュータプログラムの実行に適したプロセッサは、例として、汎用マイクロプロセッサと専用マイクロプロセッサの両方を含む。一般に、プロセッサは、読取り専用メモリもしくはランダムアクセスメモリまたはその両方から命令およびデータを受信する。コンピュータの必須要素は、命令に従ってアクションを実行するためのプロセッサ、ならびに命令およびデータを記憶するための1つまたは複数のメモリデバイスである。一般に、コンピュータはまた、データを記憶するための1つまたは複数の大容量記憶デバイス、たとえば、磁気ディスク、光磁気ディスク、または光ディスクを含むか、あるいはそれらからデータを受信すること、もしくはそれらにデータを転送すること、またはその両方を行うように動作可能に結合される。しかしながら、コンピュータはそのようなデバイスを有することは必須でない。その上、コンピュータは、別のデバイス、たとえば、ほんのいくつかの例を挙げれば、携帯電話、携帯情報端末(PDA)、モバイルオーディオもしくはビデオプレーヤ、ゲーム機、全地球測位システム(GPS)レシーバ、またはポータブル記憶デバイス(たとえば、ユニバーサルシリアルバス(USB)フラッシュドライブ)の中に組み込まれ得る。コンピュータプログラム命令およびデータを記憶するのに適したデバイスは、すべての形態の、例として、半導体メモリデバイス、たとえば、EPROM、EEPROM、およびフラッシュメモリデバイスを含む、不揮発性メモリ、不揮発性媒体、および不揮発性メモリデバイス、磁気ディスク、たとえば、内部ハードディスクまたはリムーバブルディスク、光磁気ディスク、ならびにCD-ROMおよびDVD-ROMディスクを含む。プロセッサおよびメモリは、専用論理回路構成によって増補され得るか、またはその中に組み込まれ得る。
ユーザとの相互作用を提供するために、本明細書で説明する主題の実施形態は、ユーザに情報を表示するためのディスプレイデバイス、たとえば、CRT(陰極線管)またはLCD(液晶ディスプレイ)モニタ、ならびにユーザがそれによってコンピュータに入力を提供できるキーボードおよびポインティングデバイス、たとえば、マウスまたはトラックボールを有する、コンピュータ上で実施され得る。ユーザとの相互作用を提供するために、他の種類のデバイスも使用され得、たとえば、ユーザに提供されるフィードバックは、任意の形態の知覚フィードバック、たとえば、視覚フィードバック、聴覚フィードバック、または触覚フィードバックであり得、ユーザからの入力は、音響入力、音声入力、または触覚入力を含む、任意の形態で受け取ることができる。加えて、コンピュータは、ユーザによって使用されるデバイスへ文書を送ること、およびそうしたデバイスから文書を受信することによって、たとえば、ユーザのクライアントデバイス上のウェブブラウザから受信された要求に応答して、そのウェブブラウザへウェブページを送ることによって、ユーザと相互作用することができる。
本明細書で説明する主題の実施形態は、バックエンド構成要素、たとえば、データサーバを含むか、またはミドルウェア構成要素、たとえば、アプリケーションサーバを含むか、またはフロントエンド構成要素、たとえば、ユーザがそれを通じて、本明細書で説明する主題の実装形態と相互作用できる、グラフィカルユーザインターフェースまたはウェブブラウザを有するクライアントコンピュータ、あるいは1つまたは複数のそのようなバックエンド構成要素、ミドルウェア構成要素、またはフロントエンド構成要素の任意の組合せを含む、コンピューティングシステムにおいて実施され得る。システムの構成要素は、任意の形態または媒体のデジタルデータ通信、たとえば、通信ネットワークによって相互接続され得る。通信ネットワークの例は、ローカルエリアネットワーク(「LAN」)およびワイドエリアネットワーク(「WAN」)、インターネットワーク(たとえば、インターネット)、ならびにピアツーピアネットワーク(たとえば、アドホックピアツーピアネットワーク)を含む。
コンピューティングシステムは、クライアントおよびサーバを含むことができる。クライアントおよびサーバは、一般に互いに遠隔にあり、通常は通信ネットワークを通じて相互作用する。クライアントとサーバとの関係は、コンピュータプログラムがそれぞれのコンピュータ上で動作すること、および互いにクライアントサーバ関係を有することによって生じる。いくつかの実施形態では、サーバは、(たとえば、クライアントデバイスと相互作用するユーザにデータを表示し、そうしたユーザからユーザ入力を受け取るために)クライアントデバイスへデータ(たとえば、HTMLページ)を送信する。クライアントデバイスにおいて生成されるデータ(たとえば、ユーザ相互作用の結果)は、サーバにおいてクライアントデバイスから受信され得る。
本明細書は多くの特定の実装詳細を含むが、これらは、任意の発明または特許請求され得るものの範囲に対する限定として解釈されるべきでなく、むしろ特定の発明の特定の実施形態に特有の特徴の説明として解釈されるべきである。別個の実施形態のコンテキストにおいて本明細書で説明されるいくつかの特徴はまた、単一の実施形態の中で組み合わせられて実施され得る。反対に、単一の実施形態のコンテキストにおいて説明される様々な特徴はまた、複数の実施形態の中で別個に、または任意の好適な部分組合せで実施され得る。その上、特徴は、いくつかの組合せで作用するように上記で説明されることがあり、さらには当初はそのように特許請求されることがあるが、特許請求される組合せからの1つまたは複数の特徴は、場合によってはその組合せから削除され得、特許請求される組合せは、部分組合せまたは部分組合せの変形を対象としてよい。
同様に、動作は特定の順序で図面の中で示されるが、このことは、望ましい結果を達成するために、そのような動作が図示の特定の順序もしくは連続的な順序で実行されること、またはすべての図示した動作が実行されることを必要とするものとして理解されるべきでない。いくつかの環境では、マルチタスキングおよび並列処理が有利な場合がある。その上、上記で説明した実施形態における様々なシステム構成要素の分離は、すべての実施形態においてそのような分離を必要とするものとして理解されるべきでなく、説明するプログラム構成要素およびシステムが、一般に、単一のソフトウェア製品の中で一緒に統合され得るか、または複数のソフトウェア製品の中にパッケージ化され得ることを理解されたい。
したがって、本主題の特定の実施形態が説明されている。他の実施形態が以下の特許請求の範囲内に入る。場合によっては、特許請求の範囲の中に記載されるアクションは、異なる順序で実行され得、やはり望ましい結果を達成し得る。加えて、添付の図の中に示すプロセスは、望ましい結果を達成するために、図示の特定の順序、または連続的な順序を必ずしも必要とするとは限らない。いくつかの実装形態では、マルチタスキングおよび並列処理が有利な場合がある。
100 環境
102 クライアントデバイス
104 アプリケーションA
106 コンテンツアイテムCI1
108 コンテンツアイテムCI2
110 デバイスディスプレイドライバ
112 ウォーターマークデコーダ
114 トークン生成器
116 MAC生成器
118 オペレーティングシステム
130 コンテンツプロバイダ
140 コンテンツプラットフォーム
150 ネットワーク
160 アプリケーションB
400 コンピュータシステム
410 プロセッサ
420 メモリ
430 記憶デバイス
440 入力/出力デバイス
450 システムバス
460 ディスプレイデバイス

Claims (20)

  1. アプリケーション内のコンテンツページ上に提供され、クライアントデバイスのディスプレイの特定の部分において表示される特定のコンテンツアイテムが、コンテンツプロバイダによって提供されたサードパーティコンテンツアイテムであるかどうかを検証するために使用される、デジタル署名付きトークンを生成するための要求を、前記クライアントデバイス上で実行する前記アプリケーションから受信するステップであって、前記要求が、前記ディスプレイの前記特定の部分を識別する、ステップと、
    前記ディスプレイの前記特定の部分において表示される前記特定のコンテンツアイテムの中にデジタルウォーターマークが埋め込まれているかどうかを判定するステップと、
    前記特定のコンテンツアイテムの中にデジタルウォーターマークが埋め込まれているという決定に応答して、
    前記デジタルウォーターマーク内に符号化された複数の属性に対するデータを取得するために前記デジタルウォーターマークを復号するステップであって、前記複数の属性が、前記特定のコンテンツアイテムを記述する、ステップと、
    前記複数の属性に対する前記データを前記デジタル署名付きトークンのペイロードの中に含める前記デジタル署名付きトークンを生成するステップと、
    前記生成されたデジタル署名付きトークンを前記アプリケーションに提供するステップと
    を備えるコンピュータ実装方法。
  2. 前記アプリケーション内の前記コンテンツページ上に提供され、前記クライアントデバイスの前記ディスプレイの前記特定の部分において表示される前記特定のコンテンツアイテムが、前記コンテンツプロバイダによって提供された前記サードパーティコンテンツアイテムであるかどうかを、前記デジタル署名付きトークンを使用して検証するステップをさらに備え、検証する前記ステップが、
    前記デジタル署名付きトークンの中に含まれるデジタル署名が有効であるのを確認するステップであって、前記デジタル署名付きトークンの中に含まれる前記デジタル署名以外のデータを使用してデジタル署名を生成することを含む、確認するステップと、
    前記サードパーティコンテンツアイテム用の前記複数の属性に対するデータを前記コンテンツプロバイダから取得するステップと、
    前記デジタルウォーターマークの中に符号化された前記複数の属性に対する前記データが、前記サードパーティコンテンツアイテムのために取得された対応する複数の属性に対する前記データと同一であることを決定し、それに応答して、前記特定のコンテンツアイテムが前記サードパーティコンテンツアイテムであることを示すメッセージを生成するステップとを含む、
    請求項1に記載の方法。
  3. 前記特定のコンテンツアイテムの中にデジタルウォーターマークが埋め込まれていないという決定に応答して、前記サードパーティコンテンツアイテムが前記クライアントデバイスの前記ディスプレイの前記特定の部分の中で認識可能でないことを示すメッセージを前記デジタル署名付きトークンの前記ペイロードの中に含めるデジタル署名付きトークンを生成するステップと、
    前記生成されたデジタル署名付きトークンを前記アプリケーションに提供するステップと
    をさらに備える、請求項1に記載のコンピュータ実装方法。
  4. 前記ディスプレイの前記特定の部分において表示されている前記特定のコンテンツアイテムのスクリーンショットを、前記ディスプレイの前記特定の部分を使用して取得するステップをさらに備え、
    前記特定のコンテンツアイテムの中に埋め込まれている前記デジタルウォーターマークを取得するステップが、前記ディスプレイの前記特定の部分において表示されている前記特定のコンテンツアイテムの前記取得されたスクリーンショットから前記デジタルウォーターマークを取得するステップを含む、
    請求項1に記載のコンピュータ実装方法。
  5. 前記取得されたデジタルウォーターマークが、以下の属性、すなわち、
    前記サードパーティコンテンツアイテムのコンテンツタイプ、
    前記サードパーティコンテンツアイテムの中で提供されるコンテンツの記述、
    サードパーティコンテンツプロバイダの識別情報、
    前記サードパーティコンテンツアイテムに対する一意の識別子、
    前記サードパーティコンテンツアイテムのサイズパラメータ、
    前記デジタルウォーターマークが作成された時間を示すタイムスタンプ、
    前記サードパーティコンテンツプロバイダのデジタル署名、
    のうちの2つ以上についてのデータを符号化する、
    請求項1に記載のコンピュータ実装方法。
  6. 前記デジタル署名付きトークンが、(1)前記クライアントデバイスのデバイス公開鍵と、(2)前記複数の属性に対する前記データを含むペイロードと、(3)前記クライアントデバイスの信用性を識別するデバイス完全性トークンであって、信頼されるデバイス完全性システムによって署名されたデバイス完全性トークンと、(4)前記デバイス公開鍵、前記ペイロード、および前記デバイス完全性トークンの、デジタル署名とを含む、証明トークンであり、前記デジタル署名が、前記デバイス公開鍵に対応し前記デバイス公開鍵と数学的に関連がある、前記クライアントデバイス用のデバイス秘密鍵を使用して生成される、請求項1に記載のコンピュータ実装方法。
  7. アプリケーション内のコンテンツページ上に提供されクライアントデバイスのディスプレイの特定の部分において表示される特定のコンテンツアイテムが、コンテンツプロバイダによって提供されたサードパーティコンテンツアイテムであるかどうかを検証するために使用される、デジタル署名付きトークンを生成するための要求を、前記クライアントデバイス上で実行する前記アプリケーションから受信するステップであって、
    前記要求が、前記クライアントデバイスのオペレーティングシステムから取得された初期証明データを含み、前記初期証明データが、(1)前記ディスプレイの前記特定の部分において表示される前記特定のコンテンツアイテムの中に埋め込まれているデジタルウォーターマーク内に符号化された複数の属性に対する復号データであって、前記複数の属性が前記特定のコンテンツアイテムを記述する、復号データと、(2)前記ディスプレイの前記特定の部分を識別するデータと、(3)前記復号データ、および前記ディスプレイの前記特定の部分を識別する前記データを使用して生成される、第1のデータアイテムとを含む、ステップと、
    前記第1のデータアイテムが第2のデータアイテムに整合するかどうかを特定する指示を、前記オペレーティングシステムから取得するステップであって、前記第2のデータアイテムが、前記要求に含まれる、前記復号データ、および前記ディスプレイの前記特定の部分を識別する前記データを使用して、前記オペレーティングシステムによって生成される、ステップと、
    前記第1のデータアイテムが前記第2のデータアイテムに整合することを特定する前記指示の取得に応答して、
    前記複数の属性に対する前記データを前記デジタル署名付きトークンのペイロードの中に含めるデジタル署名付きトークンを生成するステップと、
    前記生成されたデジタル署名付きトークンを前記アプリケーションに提供するステップと
    を備えるコンピュータ実装方法。
  8. 前記第1のデータアイテムおよび前記第2のデータアイテムの各々が、ハッシュ化メッセージ認証コードである、請求項7に記載の方法。
  9. 命令を記憶する1つまたは複数のメモリデバイスと、
    前記1つまたは複数のメモリデバイスと相互作用するとともに、前記命令の実行時に動作を実行するように構成された、1つまたは複数のデータ処理装置とを備え、前記動作が、
    アプリケーション内のコンテンツページ上に提供され、クライアントデバイスのディスプレイの特定の部分において表示される特定のコンテンツアイテムが、コンテンツプロバイダによって提供されたサードパーティコンテンツアイテムであるかどうかを検証するために使用される、デジタル署名付きトークンを生成するための要求を、前記クライアントデバイス上で実行する前記アプリケーションから受信することであって、前記要求が、前記ディスプレイの前記特定の部分を識別することと、
    前記ディスプレイの前記特定の部分において表示される前記特定のコンテンツアイテムの中にデジタルウォーターマークが埋め込まれているかどうかを判定することと、
    前記特定のコンテンツアイテムの中にデジタルウォーターマークが埋め込まれているという決定に応答して、
    前記デジタルウォーターマーク内に符号化された複数の属性に対するデータを取得するために前記デジタルウォーターマークを復号することであって、前記複数の属性が、前記特定のコンテンツアイテムを記述することと、
    前記複数の属性に対する前記データを前記デジタル署名付きトークンのペイロードの中に含める前記デジタル署名付きトークンを生成することと、
    前記生成されたデジタル署名付きトークンを前記アプリケーションに提供することとを含む、
    システム。
  10. 前記1つまたは複数のデータ処理装置が、
    前記アプリケーション内の前記コンテンツページ上に提供され前記クライアントデバイスの前記ディスプレイの前記特定の部分において表示される前記特定のコンテンツアイテムが、前記コンテンツプロバイダによって提供された前記サードパーティコンテンツアイテムであるかどうかを、前記デジタル署名付きトークンを使用して検証することをさらに備える動作を実行するように構成され、前記検証することが、
    前記デジタル署名付きトークンの中に含まれるデジタル署名が有効であるのを確認することであって、前記デジタル署名付きトークンの中に含まれる前記デジタル署名以外のデータを使用してデジタル署名を生成することを含む、確認することと、
    前記サードパーティコンテンツアイテム用の前記複数の属性に対するデータを前記コンテンツプロバイダから取得することと、
    前記デジタルウォーターマークの中に符号化された前記複数の属性に対する前記データが、前記サードパーティコンテンツアイテムのために取得された対応する複数の属性に対する前記データと同一であることを決定し、それに応答して、前記特定のコンテンツアイテムが前記サードパーティコンテンツアイテムであることを示すメッセージを生成することとを含む、
    請求項9に記載のシステム。
  11. 前記1つまたは複数のデータ処理装置が、
    前記特定のコンテンツアイテムの中にデジタルウォーターマークが埋め込まれていないという決定に応答して、前記サードパーティコンテンツアイテムが前記クライアントデバイスの前記ディスプレイの前記特定の部分の中で認識可能でないことを示すメッセージを前記デジタル署名付きトークンの前記ペイロードの中に含めるデジタル署名付きトークンを生成することと、
    前記生成されたデジタル署名付きトークンを前記アプリケーションに提供することとをさらに備える動作を実行するように構成される、
    請求項9に記載のシステム。
  12. 前記1つまたは複数のデータ処理装置が、前記ディスプレイの前記特定の部分において表示されている前記特定のコンテンツアイテムのスクリーンショットを、前記ディスプレイの前記特定の部分を使用して取得することをさらに備える動作を実行するように構成され、
    前記特定のコンテンツアイテムの中に埋め込まれている前記デジタルウォーターマークを取得することが、前記ディスプレイの前記特定の部分において表示されている前記特定のコンテンツアイテムの前記取得されたスクリーンショットから前記デジタルウォーターマークを取得することを含む、
    請求項9に記載のシステム。
  13. 前記取得されたデジタルウォーターマークが、以下の属性、すなわち、
    前記サードパーティコンテンツアイテムのコンテンツタイプ、
    前記サードパーティコンテンツアイテムの中で提供されるコンテンツの記述、
    サードパーティコンテンツプロバイダの識別情報、
    前記サードパーティコンテンツアイテムに対する一意の識別子、
    前記サードパーティコンテンツアイテムのサイズパラメータ、
    前記デジタルウォーターマークが作成された時間を示すタイムスタンプ、
    前記サードパーティコンテンツプロバイダのデジタル署名、
    のうちの2つ以上についてのデータを符号化する、
    請求項9に記載のシステム。
  14. 前記デジタル署名付きトークンが、(1)前記クライアントデバイスのデバイス公開鍵と、(2)前記複数の属性に対する前記データを含むペイロードと、(3)前記クライアントデバイスの信用性を識別するデバイス完全性トークンであって、信頼されるデバイス完全性システムによって署名されているデバイス完全性トークンと、(4)前記デバイス公開鍵、前記ペイロード、および前記デバイス完全性トークンの、デジタル署名とを含む、証明トークンであり、前記デジタル署名が、前記デバイス公開鍵に対応し前記デバイス公開鍵と数学的に関連がある、前記クライアントデバイス用のデバイス秘密鍵を使用して生成される、請求項9に記載のシステム。
  15. コンピュータプログラム命令を記憶するコンピュータ可読記憶媒体であって、実行時に前記命令が1つまたは複数のデータ処理装置に動作を実行させ、前記動作が、
    アプリケーション内のコンテンツページ上に提供されクライアントデバイスのディスプレイの特定の部分において表示される特定のコンテンツアイテムが、コンテンツプロバイダによって提供されたサードパーティコンテンツアイテムであるかどうかを検証するために使用される、デジタル署名付きトークンを生成するための要求を、前記クライアントデバイス上で実行する前記アプリケーションから受信することであって、前記要求が、前記ディスプレイの前記特定の部分を識別することと、
    前記ディスプレイの前記特定の部分において表示される前記特定のコンテンツアイテムの中にデジタルウォーターマークが埋め込まれているかどうかを判定することと、
    前記特定のコンテンツアイテムの中にデジタルウォーターマークが埋め込まれているという決定に応答して、
    前記デジタルウォーターマーク内に符号化された複数の属性に対するデータを取得するために前記デジタルウォーターマークを復号することであって、前記複数の属性が、前記特定のコンテンツアイテムを記述することと、
    前記複数の属性に対する前記データを前記デジタル署名付きトークンのペイロードの中に含める前記デジタル署名付きトークンを生成することと、
    前記生成されたデジタル署名付きトークンを前記アプリケーションに提供することとを含む、
    コンピュータ可読記憶媒体
  16. 前記命令が、前記1つまたは複数のデータ処理装置に、
    前記アプリケーション内の前記コンテンツページ上に提供され前記クライアントデバイスの前記ディスプレイの前記特定の部分において表示される前記特定のコンテンツアイテムが、前記コンテンツプロバイダによって提供された前記サードパーティコンテンツアイテムであるかどうかを、前記デジタル署名付きトークンを使用して検証することを備える動作を実行させ、前記検証することが、
    前記デジタル署名付きトークンの中に含まれるデジタル署名が有効であるのを確認することであって、前記デジタル署名付きトークンの中に含まれる前記デジタル署名以外のデータを使用してデジタル署名を生成することを含む、確認することと、
    前記サードパーティコンテンツアイテム用の前記複数の属性に対するデータを前記コンテンツプロバイダから取得することと、
    前記デジタルウォーターマークの中で符号化された前記複数の属性に対する前記データが、前記サードパーティコンテンツアイテムのために取得された対応する複数の属性に対する前記データと同一であることを決定し、それに応答して、前記特定のコンテンツアイテムが前記サードパーティコンテンツアイテムであることを示すメッセージを生成することとを含む、
    請求項15に記載のコンピュータ可読記憶媒体
  17. 前記命令が、前記1つまたは複数のデータ処理装置に、
    前記特定のコンテンツアイテムの中にデジタルウォーターマークが埋め込まれていないという決定に応答して、前記サードパーティコンテンツアイテムが前記クライアントデバイスの前記ディスプレイの前記特定の部分の中で認識可能でないことを示すメッセージを前記デジタル署名付きトークンの前記ペイロードの中に含めるデジタル署名付きトークンを生成することと、
    前記生成されたデジタル署名付きトークンを前記アプリケーションに提供することとを備える動作を実行させる、
    請求項15に記載のコンピュータ可読記憶媒体
  18. 前記命令が、前記1つまたは複数のデータ処理装置に、前記ディスプレイの前記特定の部分において表示されている前記特定のコンテンツアイテムのスクリーンショットを、前記ディスプレイの前記特定の部分を使用して取得することをさらに備える動作を実行させ、
    前記特定のコンテンツアイテムの中に埋め込まれている前記デジタルウォーターマークを取得することが、前記ディスプレイの前記特定の部分において表示されている前記特定のコンテンツアイテムの前記取得されたスクリーンショットから前記デジタルウォーターマークを取得することを含む、
    請求項15に記載のコンピュータ可読記憶媒体
  19. 前記取得されたデジタルウォーターマークが、以下の属性、すなわち、
    前記サードパーティコンテンツアイテムのコンテンツタイプ、
    前記サードパーティコンテンツアイテムの中で提供されるコンテンツの記述、
    サードパーティコンテンツプロバイダの識別情報、
    前記サードパーティコンテンツアイテムに対する一意の識別子、
    前記サードパーティコンテンツアイテムのサイズパラメータ、
    前記デジタルウォーターマークが作成された時間を示すタイムスタンプ、
    前記サードパーティコンテンツプロバイダのデジタル署名、
    のうちの2つ以上についてのデータを符号化する、
    請求項15に記載のコンピュータ可読記憶媒体
  20. 前記デジタル署名付きトークンが、(1)前記クライアントデバイスのデバイス公開鍵と、(2)前記複数の属性に対する前記データを含むペイロードと、(3)前記クライアントデバイスの信用性を識別するデバイス完全性トークンであって、信頼されるデバイス完全性システムによって署名されたデバイス完全性トークンと、(4)前記デバイス公開鍵、前記ペイロード、および前記デバイス完全性トークンの、デジタル署名とを含む、証明トークンであり、前記デジタル署名が、前記デバイス公開鍵に対応し前記デバイス公開鍵と数学的に関連がある、前記クライアントデバイス用のデバイス秘密鍵を使用して生成される、請求項15に記載のコンピュータ可読記憶媒体
JP2020566224A 2020-02-06 2020-02-06 クライアントデバイスにおけるサードパーティコンテンツの表示の確認 Active JP7077425B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/US2020/017027 WO2021158229A1 (en) 2020-02-06 2020-02-06 Verifying display of third party content at a client device

Publications (2)

Publication Number Publication Date
JP2022522315A JP2022522315A (ja) 2022-04-18
JP7077425B2 true JP7077425B2 (ja) 2022-05-30

Family

ID=69771153

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2020566224A Active JP7077425B2 (ja) 2020-02-06 2020-02-06 クライアントデバイスにおけるサードパーティコンテンツの表示の確認

Country Status (9)

Country Link
US (1) US11882327B2 (ja)
EP (1) EP3881202B1 (ja)
JP (1) JP7077425B2 (ja)
KR (1) KR102445873B1 (ja)
CN (1) CN113498514A (ja)
AU (1) AU2020260456B2 (ja)
BR (1) BR112020022501A2 (ja)
CA (1) CA3100347C (ja)
WO (1) WO2021158229A1 (ja)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11809531B2 (en) * 2020-02-03 2023-11-07 Nxp B.V. Method for watermarking a machine learning model
US11809532B2 (en) * 2020-10-14 2023-11-07 Irdeto B.V. Detection of modification of an item of content
US11699208B2 (en) 2021-03-12 2023-07-11 Nxp B.V. Method for watermarking a machine learning model
IL285887B1 (en) * 2021-08-26 2024-03-01 Google Llc Secure attribution using anonymous signals

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100312653A1 (en) 2009-06-05 2010-12-09 Microsoft Corporation Verifiable advertisement presentation
US20110123062A1 (en) 2009-11-24 2011-05-26 Mordehay Hilu Device, software application, system and method for proof of display
US20110161145A1 (en) 2009-12-26 2011-06-30 Mahajan Ayeshwarya B Method and device for securely displaying digital content on a computing device

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6611607B1 (en) * 1993-11-18 2003-08-26 Digimarc Corporation Integrating digital watermarks in multimedia content
JP3103061B2 (ja) 1997-09-12 2000-10-23 インターナショナル・ビジネス・マシーンズ・コーポレ−ション トークン作成装置および該トークンを用いたデータ制御システム
JP4185363B2 (ja) 2001-02-22 2008-11-26 ビーイーエイ システムズ, インコーポレイテッド トランザクション処理システムにおけるメッセージ暗号化及び署名のためのシステム及び方法
JP3935879B2 (ja) 2001-11-06 2007-06-27 インターナショナル・ビジネス・マシーンズ・コーポレーション データ供給のためのシステム
US20050278235A1 (en) 2004-06-10 2005-12-15 International Business Machines Corporation Method and system for a contract option
US20050278253A1 (en) 2004-06-15 2005-12-15 Microsoft Corporation Verifying human interaction to a computer entity by way of a trusted component on a computing device or the like
CN101106455B (zh) 2007-08-20 2010-10-13 北京飞天诚信科技有限公司 身份认证的方法和智能密钥装置
US20090292924A1 (en) 2008-05-23 2009-11-26 Johnson Erik J Mechanism for detecting human presence using authenticated input activity
JP5432999B2 (ja) 2009-06-23 2014-03-05 パナソニック株式会社 暗号鍵配布システム
WO2014138430A2 (en) 2013-03-06 2014-09-12 Marvell World Trade Ltd. Secure simple enrollment
US20140282696A1 (en) * 2013-03-15 2014-09-18 Qualcomm Incorporated Advertising download verification
US20150150109A1 (en) 2013-11-27 2015-05-28 Adobe Systems Incorporated Authenticated access to a protected resource using an encoded and signed token
US9860241B2 (en) 2014-04-15 2018-01-02 Level 3 Communications, Llc Device registration, authentication, and authorization system and method
US10362007B2 (en) * 2015-11-12 2019-07-23 Facebook, Inc. Systems and methods for user account recovery
WO2017117551A1 (en) * 2015-12-30 2017-07-06 Verimatrix, Inc. Systems and method for retroactive assignment of personally identifiable information in distribution of digital content
JP6861292B2 (ja) 2017-03-01 2021-04-21 アップル インコーポレイテッドApple Inc. モバイルデバイスを使用したシステムアクセス
US11611808B2 (en) * 2017-05-09 2023-03-21 Verimatrix, Inc. Systems and methods of preparing multiple video streams for assembly with digital watermarking
CN107342998A (zh) 2017-07-04 2017-11-10 四川云物益邦科技有限公司 通过移动存储设备实现的个人信息提取方法
US10932129B2 (en) 2017-07-24 2021-02-23 Cisco Technology, Inc. Network access control

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100312653A1 (en) 2009-06-05 2010-12-09 Microsoft Corporation Verifiable advertisement presentation
US20110123062A1 (en) 2009-11-24 2011-05-26 Mordehay Hilu Device, software application, system and method for proof of display
US20110161145A1 (en) 2009-12-26 2011-06-30 Mahajan Ayeshwarya B Method and device for securely displaying digital content on a computing device

Also Published As

Publication number Publication date
CN113498514A (zh) 2021-10-12
AU2020260456A1 (en) 2021-08-26
CA3100347A1 (en) 2021-08-06
EP3881202A1 (en) 2021-09-22
KR20210102058A (ko) 2021-08-19
CA3100347C (en) 2023-02-14
US11882327B2 (en) 2024-01-23
BR112020022501A2 (pt) 2022-09-06
WO2021158229A1 (en) 2021-08-12
JP2022522315A (ja) 2022-04-18
EP3881202B1 (en) 2022-01-26
KR102445873B1 (ko) 2022-09-21
US20220124393A1 (en) 2022-04-21
AU2020260456B2 (en) 2021-12-23

Similar Documents

Publication Publication Date Title
JP7077425B2 (ja) クライアントデバイスにおけるサードパーティコンテンツの表示の確認
US9251282B2 (en) Systems and methods for determining compliance of references in a website
WO2015179286A1 (en) Polymorphic treatment of data entered at clients
CA3100322C (en) Verifying user interactions on a content platform
Suarez-Tangil et al. Stegomalware: Playing hide and seek with malicious components in smartphone apps
CN111163094B (zh) 网络攻击检测方法、网络攻击检测装置、电子设备和介质
US11356433B2 (en) System and method for detecting unauthorized activity at an electronic device
Gurulian et al. You can’t touch this: Consumer-centric android application repackaging detection
US20110225634A1 (en) CAPTCHA (Completely Automated Public Test to Tell Computers and Humans Apart) Data Generation Methods and Related Data Management Systems and Computer Program Products Thereof
CN108900472B (zh) 信息的传输方法和装置
US7360092B1 (en) Marking and identifying web-based authentication forms
JP7041282B2 (ja) 信頼できるコード証明トークンによるデータの完全性の向上
KR102199967B1 (ko) 위변조 데이터가 네트워크에 저장되는 것을 방지하는 방법 및 상기 방법을 수행하는 시스템
CN114301713A (zh) 风险访问检测模型的训练方法、风险访问检测方法及装置
CN111783119B (zh) 表单数据安全控制方法、装置、电子设备及存储介质
JP7135210B2 (ja) プライバシー保持アプリケーションおよびデバイスエラー検出
US20230344639A1 (en) Identifying deep fake content via smart devices
JP7438383B2 (ja) ウェブアプリケーションの信頼性の検証
KR102672181B1 (ko) 프라이버시 보호 애플리케이션 및 장치 오류 검출
US20230385811A1 (en) Secure and decentralized payment for digital media content via certificates with wallet information
US11218551B1 (en) Method and system for user identification based on user environment
Gurulian et al. Reprint of “You can’t touch this: Consumer-centric android application repackaging detection”
CN111783119A (zh) 表单数据安全控制方法、装置、电子设备及存储介质
Emmadi et al. Steganography

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20210105

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20210105

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20220518

R150 Certificate of patent or registration of utility model

Ref document number: 7077425

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150