JP2018509692A - 選択的なブロックベースの完全性保護技法 - Google Patents

選択的なブロックベースの完全性保護技法 Download PDF

Info

Publication number
JP2018509692A
JP2018509692A JP2017539399A JP2017539399A JP2018509692A JP 2018509692 A JP2018509692 A JP 2018509692A JP 2017539399 A JP2017539399 A JP 2017539399A JP 2017539399 A JP2017539399 A JP 2017539399A JP 2018509692 A JP2018509692 A JP 2018509692A
Authority
JP
Japan
Prior art keywords
content item
integrity check
response
content
request
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
JP2017539399A
Other languages
English (en)
Inventor
シタル・メフタ
スレシュ・ボラプラガダ
ボラプラガダ・ヴイ・ジェイ・マノハール
Original Assignee
クアルコム,インコーポレイテッド
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 クアルコム,インコーポレイテッド filed Critical クアルコム,インコーポレイテッド
Publication of JP2018509692A publication Critical patent/JP2018509692A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0793Remedial or corrective actions
    • 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
    • G06F21/575Secure boot
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2113Multi-level security, e.g. mandatory access control

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Quality & Reliability (AREA)
  • Information Transfer Between Computers (AREA)
  • Storage Device Security (AREA)

Abstract

コンピュータデバイスのコンテンツを保護するための技法が提供される。これらの技法はセキュリティレベル情報を保護されるべき複数のコンテンツ項目の各々に関連付けるステップを含み、セキュリティレベル情報は、各それぞれのコンテンツ項目に関して実行されるべき完全性検査動作および結果的挙動を含む。セキュリティレベル情報は、保護されるべきコンテンツ項目を含むイメージ内に構築可能であり、イメージはコンピューティングデバイス上にインストールされ得る。これらの技法は、コンテンツに関する動作の実行要求に応じて、コンテンツ項目に関連付けられたセキュリティレベル情報にアクセスするステップと、コンテンツ項目に関連付けられた完全性検査動作を実行するステップと、完全性検査動作が要求された動作を実行することができないことを指示することに応じて、コンテンツ項目に関連付けられた結果的挙動を実行するステップとを含む。

Description

製造モバイルデバイス上のハイレベルオペレーティングシステム(HLOS: High-Level Operating System)システムイメージは、システムイメージの完全性を保護するための手段を必要とする。システムイメージは、改変されたか、または破損した場合、デバイスを誤作動させるか、または意図しない/無許可の動作を実行させる可能性がある、システムライブラリとHLOSによって使用される他のファイルとを含む。HLOSシステムイメージは、一般に、製造モバイルデバイス上で約5GBであり、これらのイメージを保護するための手段は、システムイメージ保護方式を実装するとき、メモリリソース、電力リソース、およびハードウェアリソースなど、モバイルデバイスのリソース制約を考慮に入れる必要がある。
従来のソリューションは、保護される必要があり得るシステムイメージ内に含まれる様々なタイプのコンテンツに対処するレベルのコンフィギュアビリティおよびフレキシビリティ、ならびに様々なタイプのコンテンツの変更が識別されたときに適切なレベルの応答を構成する能力を提供しない。たとえば、Androidデバイス上で提供される1つの従来のソリューションは、モバイルデバイスの記憶デバイス上に記憶されたシステムイメージ内に含まれるすべてのコンテンツに対してブロックベースの保護を提供する「dm-verity」である。dm-verityアプリケーションは、システムイメージのブロックのすべてのハッシュ木を構築し、それらのブロックがアクセスされるにつれて、ブロックを検査して、そのハッシュ化コンテンツをハッシュ木のコンテンツと比較することによって、それらのブロックが変化したかどうかを決定する。データの特定のブロックが変化したときに例外が生じ得る。しかしながら、システムイメージは、改変された場合、破局的エラーをもたらすべきでない、リングトーンまたは他の媒体コンテンツなどの非クリティカルファイルを含む可能性があるため、この手法はオーバーキルであることが多い。さらに、ハッシュ木を生成することはかなりのリソースを必要とする。完全性管理アーキテクチャ(IMA: Integrity Management Architecture)など、他の従来のソリューションは、ファイルのinode属性内にファイルのハッシュを記憶することによって、ファイルコンテンツのリモート認証およびファイルコンテンツのローカル認証を実現するファイルベースの保護を提供する。しかしながら、この情報をinode内に記憶することは、ファイルに関する動作を可能にする前に、セキュリティに敏感な拡張属性を検証するLinux(登録商標)拡張検証モジュール(EVM: Extended Verification Module)などのソリューションをやはり必要とする。
これらの従来のソリューションは、すべてのタイプのコンテンツに関する完全性検査と同じレベルの保護および結果的挙動(resultant behavior)を提供するという点で、これらのソリューションはやはり制限される。
本開示による、コンピューティングデバイスのコンテンツを保護するための例示的な方法は、イメージ内に含まれたコンテンツ項目に関連付けられた動作の実行要求を受信するステップと、コンテンツ項目に関連付けられたセキュリティレベル情報にアクセスするステップであって、セキュリティレベル情報が、コンテンツ項目に関連付けられた完全性検査動作および結果的挙動を含み、結果的挙動が、完全性検査動作が要求された動作を実行することができないことを指示すること応じて実行される、アクセスするステップと、コンテンツ項目に関連付けられた完全性検査動作を実行するステップと、完全性検査動作が要求された動作を実行することができないことを指示することに応じて、コンテンツ項目に関連付けられた結果的挙動を実行するステップとを含む。
そのような方法の実装形態は、次の特徴の1つまたは複数を含むことができる。結果的挙動は、破局的エラー処理応答、入出力(I/O)エラー応答、信頼できるエンティティに対する報告応答、およびロールバックエラー応答を含む、複数の結果的挙動から選択される。完全性検査動作は、完全性検査要求動作、完全性検査非要求動作、ロールバック保護動作、およびデバイス固有の検査動作を含む、複数の完全性検査動作から選択される。コンテンツ項目に関連付けられた完全性検査動作が完全性検査要求動作であることに応じて、コンテンツ項目に関連付けられた完全性検査動作を実行するステップは、コンテンツ項目に関連付けられたブロックを識別するためにブロックリストにアクセスするステップと、コンテンツ項目に関連付けられたブロックのハッシュを実行するステップと、コンテンツ項目に関連付けられたブロックのハッシュをイメージ内に含まれたコンテンツ項目のハッシュと比較するステップとを含む。コンテンツ項目に関連付けられた完全性検査動作がロールバック保護動作であることに応じて、コンテンツに関連付けられた完全性検査動作を実行するステップは、コンテンツ項目に対する更新がコンテンツ項目をそのコンテンツ項目の前のバージョンに置き換えることになるかどうかを決定するステップを含み、完全性検査動作が要求された動作を実行することができないことを指示することに応じて、コンテンツ項目に関連付けられた結果的挙動を実行するステップは、コンテンツ項目がそのコンテンツ項目の前のバージョンに置き換えられるのを防止するステップを含む。動作の実行要求はコンテンツ項目の修正要求を含み、完全性検査動作は、信頼できるエンティティに要求を報告するステップを含み、結果的挙動を実行するステップは、コンテンツ項目を修正することができるかどうかを指示する応答を信頼できるエンティティから受信するステップと、応答がコンテンツ項目を修正することができることを指示することに応じて、コンテンツ項目を修正するステップと、応答がコンテンツ項目を修正することができないことを指示することに応じて、コンテンツ項目を修正することができないという指示を表示するステップとを含む。
本開示による、コンピューティングデバイスのコンテンツを保護するための例示的な装置は、イメージ内に含まれたコンテンツ項目に関連付けられた動作の実行要求を受信するための手段と、コンテンツ項目に関連付けられたセキュリティレベル情報にアクセスするための手段であって、セキュリティレベル情報が、コンテンツ項目に関連付けられた完全性検査動作および結果的挙動を含み、結果的挙動が、完全性検査動作が要求された動作を実行することができないことを指示することに応じて実行される、アクセスするための手段と、コンテンツ項目に関連付けられた完全性検査動作を実行するための手段と、完全性検査動作が要求された動作を実行することができないことを指示すること応じて、コンテンツ項目に関連付けられた結果的挙動を実行するための手段とを含む。
そのような装置の実装形態は、以下の特徴のうちの1つまたは複数を含み得る。結果的挙動は、破局的エラー処理応答、入出力(I/O)エラー応答、信頼できるエンティティに対する報告応答、およびロールバックエラー応答を含む、複数の結果的挙動から選択される。完全性検査動作は、完全性検査要求動作、完全性検査非要求動作、ロールバック保護動作、およびデバイス固有の検査動作を含む、複数の完全性検査動作から選択される。コンテンツ項目に関連付けられた完全性検査動作は完全性検査要求動作を含み、コンテンツ項目に関連付けられた完全性検査動作を実行するための手段は、コンテンツ項目に関連付けられたブロックを識別するためにブロックリストにアクセスするための手段と、コンテンツ項目に関連付けられたブロックのハッシュを実行するための手段と、コンテンツ項目に関連付けられたブロックのハッシュをイメージ内に含まれたコンテンツ項目のハッシュと比較するための手段とを含む。コンテンツ項目に関連付けられた完全性検査動作がロールバック保護動作であり、コンテンツに関連付けられた完全性検査動作を実行するための手段は、コンテンツ項目に対する更新がコンテンツ項目をそのコンテンツ項目の前のバージョンに置き換えることになるかどうかを決定するための手段を含み、完全性検査動作が要求された動作を実行することができないことを指示することに応じて、コンテンツ項目に関連付けられた結果的挙動を実行するための手段は、コンテンツ項目がそのコンテンツ項目の前のバージョンに置き換えられるのを防止するための手段を含む。動作の実行要求はコンテンツ項目の修正要求を含み、完全性検査動作は、信頼できるエンティティに要求を報告することを含み、結果的挙動を実行するための手段は、コンテンツ項目を修正することができるかどうかを指示する応答を信頼できるエンティティから受信するための手段と、応答がコンテンツ項目を修正することができることを指示することに応じて、コンテンツ項目を修正するための手段と、応答がコンテンツ項目を修正することができないことを指示することに応じて、コンテンツ項目を修正することができないという指示を表示するための手段とを含む。
コンピューティングデバイスのコンテンツを保護するための例示的な装置は、イメージ内に含まれたコンテンツ項目に関連付けられた動作の実行要求を受信することと、コンテンツ項目に関連付けられたセキュリティレベル情報にアクセスすることであって、セキュリティレベル情報が、コンテンツ項目に関連付けられた完全性検査動作および結果的挙動を含み、結果的挙動が、完全性検査動作が要求された動作を実行することができないことを指示することに応じて実行される、アクセスすることと、コンテンツ項目に関連付けられた完全性検査動作を実行することと、完全性検査動作が要求された動作を実行することができないことを指示することに応じて、コンテンツ項目に関連付けられた結果的挙動を実行することとを行うように構成されたプロセッサを含む。
そのような装置の実装形態は、以下の特徴のうちの1つまたは複数を含み得る。結果的挙動は、破局的エラー処理応答、入出力(I/O)エラー応答、信頼できるエンティティに対する報告応答、およびロールバックエラー応答を含む、複数の結果的挙動から選択される。完全性検査動作は、完全性検査要求動作、完全性検査非要求動作、ロールバック保護動作、およびデバイス固有の検査動作を含む、複数の完全性検査動作から選択される。コンテンツ項目に関連付けられた完全性検査動作は完全性検査要求動作を含み、コンテンツ項目に関連付けられた完全性検査動作を実行するように構成されたプロセッサは、コンテンツ項目に関連付けられたブロックを識別するためにブロックリストにアクセスし、コンテンツ項目に関連付けられたブロックのハッシュを実行し、コンテンツ項目に関連付けられたブロックのハッシュをイメージ内に含まれたコンテンツ項目のハッシュと比較するように構成される。コンテンツ項目に関連付けられた完全性検査動作はロールバック保護動作を含み、コンテンツ項目に関連付けられた完全性検査動作を実行するように構成されたプロセッサは、コンテンツ項目に対する更新がコンテンツ項目をそのコンテンツ項目の前のバージョンに置き換えることになるかどうかを決定するようにさらに構成され、完全性検査動作が要求された動作を実行することができないことを指示することに応じて、コンテンツ項目に関連付けられた結果的挙動を実行するように構成されたプロセッサは、コンテンツ項目がそのコンテンツ項目の前のバージョンに置き換えられるのを防止するようにさらに構成される。動作の実行要求はコンテンツ項目の修正要求を含み、完全性検査動作を実行するように構成されたプロセッサは、信頼できるエンティティに要求を報告するようにさらに構成され、結果的挙動を実行することは、コンテンツ項目を修正することができるかどうかを指示する応答を信頼できるエンティティから受信することと、応答がコンテンツ項目を修正することができることを指示することに応じて、コンテンツ項目を修正することと、応答がコンテンツ項目を修正することができないことを指示することに応じて、コンテンツ項目を修正することができないという指示を表示することとを含む。
本開示による、コンピューティングデバイスのコンテンツを保護するためのコンピュータ可読命令を記憶している例示的な非一時的コンピュータ可読媒体は、コンピュータに、イメージ内に含まれたコンテンツ項目に関連付けられた動作の実行要求を受信することと、コンテンツ項目に関連付けられたセキュリティレベル情報にアクセスすることであって、セキュリティレベル情報が、コンテンツ項目に関連付けられた完全性検査動作および結果的挙動を含み、完全性検査動作が、結果的挙動が要求された動作を実行することができないことを指示することに応じて実行される、アクセスすることと、コンテンツ項目に関連付けられた完全性検査動作を実行することと、完全性検査動作が要求された動作を実行することができないことを指示することに応じて、コンテンツ項目に関連付けられた結果的挙動を実行することとを行わせるように構成された命令を含む。
そのような非一時的コンピュータ可読媒体の実装形態は、次の特徴のうちの1つまたは複数を含み得る。結果的挙動は、破局的エラー処理応答、入出力(I/O)エラー応答、信頼できるエンティティに対する報告応答、およびロールバックエラー応答を含む、複数の結果的挙動から選択される。完全性検査動作は、完全性検査要求動作、完全性検査非要求動作、ロールバック保護動作、およびデバイス固有の検査動作を含む、複数の完全性検査動作から選択される。コンテンツ項目に関連付けられた完全性検査動作は完全性検査要求動作を含み、コンピュータにコンテンツ項目に関連付けられた完全性検査動作を実行させるように構成された命令は、コンピュータに、コンテンツ項目に関連付けられたブロックを識別するためにブロックリストにアクセスさせ、コンテンツ項目に関連付けられたブロックのハッシュを実行させ、コンテンツ項目に関連付けられたブロックのハッシュをイメージ内に含まれたコンテンツ項目のハッシュと比較させるように構成された命令をさらに含む。コンテンツ項目に関連付けられた完全性検査動作はロールバック保護動作を含み、コンピュータにコンテンツ項目に関連付けられた完全性検査動作を実行させるように構成された命令は、コンピュータにコンテンツ項目に対する更新がコンテンツ項目をそのコンテンツ項目の前のバージョンに置き換えることになるかどうかを決定させるように構成された命令を含み、完全性検査動作が要求された動作を実行することができないことを指示することに応じて、コンピュータにコンテンツ項目に関連付けられた結果的挙動を実行させるように構成された命令は、コンピュータにコンテンツ項目がそのコンテンツ項目の前のバージョンに置き換えられるのを防止させるように構成された命令を含む。動作の実行要求はコンテンツ項目の修正要求を含み、コンピュータに完全性検査動作を実行させるように構成された命令は、コンピュータに信頼できるエンティティに要求を報告させるように構成された命令を含み、コンピュータに結果的挙動を実行させるように構成された命令は、コンピュータに、コンテンツ項目を修正することができるかどうかを指示する応答を信頼できるエンティティから受信させ、応答がコンテンツ項目を修正することができることを指示することに応じて、コンテンツ項目を修正させ、応答がコンテンツ項目を修正することができないことを指示することに応じて、コンテンツ項目を修正することができないという指示を表示させるように構成された命令を含む。
本明細書で論じる技法を実装するのに好適であり得る例示的なネットワークアーキテクチャまたはコンピュータ環境のブロック図である。 図1に示した構築システムを実装するために使用され得るコンピューティングデバイスのブロック図である。 図1〜図2に示した構築システムの機能モジュールを示す、図1〜図2に示した構築システムの機能ブロック図である。 図1に示したターゲットを実装するために使用され得るコンピューティングデバイスのブロック図である。 図1および図4に示した構築システムの機能モジュールを示す、図1および図4に示したターゲットデバイスの機能ブロック図である。 本明細書で論じる技法による、イメージを構築し、そのイメージ内のコンテンツ項目をセキュリティレベルに関連付けるためのプロセスの流れ図である。 本明細書で論じる技法による、コンテンツ項目に関連付けられた動作の実行要求に応じて、イメージ内のコンテンツ項目に関する完全性検査を実行するためのプロセスの流れ図である。 本明細書で論じる技法による、セキュリティレベル情報を含むイメージを構築するためのプロセスの流れ図である。 本明細書で論じる技法による、コンテンツ項目に関する完全性検査を実行するためのプロセスの流れ図である。 本明細書で論じる技法による、前のバージョンへのコンテンツ項目のロールバックが要求されているかどうかを決定するためのプロセスの流れ図である。 本明細書で論じる技法による、ロールバック動作を実行するためのプロセスの流れ図である。 本明細書で論じる技法による、信頼できるエンティティに連絡することによってコンテンツ項目が更新され得るかどうかを決定するためのプロセスの流れ図である。 本明細書で論じる技法による、ロールバック動作を実行するためのプロセスの流れ図である。 本明細書で論じる技法による、結果的動作を実行するためのプロセスの流れ図である。
コンピュータデバイスのコンテンツを保護するための技法が本明細書で開示される。コンピューティングデバイスのコンテンツは1つまたは複数のイメージであり得る。イメージは、ソフトウェアライブラリ、オペレーティングシステムファイル、アプリケーションコンテンツ、オーディオビジュアルコンテンツ(たとえば、イメージ、ビデオコンテンツ、および/またはオーディオコンテンツ)、構成ファイル、および/またはそれに関してイメージが作成され得るターゲットコンピューティングデバイスによって使用され得る他のコンテンツを含み得る。コンピューティングデバイスは複数の異なるタイプのイメージを含み得る。たとえば、コンピューティングデバイスは、コンピューティングデバイスのオペレーティングシステムに関するシステムライブラリを含むシステムイメージと、ベンダー固有のアプリケーションコンテンツおよび/または他のベンダー固有のコンテンツを含み得るベンダー固有のイメージと、コンピューティングデバイスのユーザに関するユーザ関連コンテンツを含むユーザコンテンツとを含み得る。コンピューティングデバイスは、多数のコンテンツ項目を含む2つ以上のイメージを含むことができ、その中に含まれる各イメージおよびコンテンツ項目は異なるレベルの保護に関連付けられ得る。たとえば、オペレーティングシステムファイルを含むシステムイメージは、オペレーティングシステムの動作にとって重要なシステムライブラリを含み得る。
コンピューティングデバイスは、ラップトップコンピュータシステムもしくは他のパーソナルコンピュータシステム、タブレットコンピュータ、モバイルフォン、ゲームコンソール、装着型デバイス(たとえば、スマートウォッチ)、ならびに/またはソフトウェア構成要素、構成ファイル、および/もしくは無許可の方法で潜在的に破損しているか、または修正されている可能性があり得る他のタイプのコンテンツ項目を利用するように構成された他のタイプのコンピューティングデバイスを含むが、これらに限定されない、様々なタイプのコンピューティングデバイスであり得る。たとえば、オペレーティングシステムの重要なライブラリが破損した場合、またはさもなければ、修正された場合、コンピュータデバイスはクラッシュし得るか、または他の望ましくない挙動を示し得る。しかしながら、システムイメージはまた、修正された場合、オペレーティングシステムに誤動作させないか、またはそのような変化が、何らかの悪意のある修正がコンピューティングデバイスに行われていることを指示しない、他のタイプのファイルを含み得る。たとえば、システムイメージは、オペレーティングシステムの通常の機能の一部として周期的に更新され得るログファイルを含み得る。システムイメージは、デスクトップ用の背景またはコンピューティングデバイスの他のスクリーンとして働くことができるイメージコンテンツを含み得る。そのようなイメージファイルが修正されたか、またはコンピューティングデバイスから除去された場合、オペレーティングシステムの完全性は悪影響を受けない。
本明細書で開示する技法は、イメージ内に含まれる様々なタイプのコンテンツ項目が識別されて、セキュリティレベル情報に関連付けられることを可能にする。セキュリティレベル情報は、コンテンツ項目に関連付けられた完全性検査動作および結果的挙動を含み得る。完全性検査情報は、コンテンツ項目が変更されているかどうか、かつ/またはコンテンツ項目が変更されることが許可されるかどうかを検証するために実行され得る1つまたは複数の動作を指示し得る。コンテンツ項目に関連付けられた結果的挙動は、完全性検査動作に従って結果的挙動が実行されるべきであるとの決定に応じて実行され得る1つまたは複数の動作を指示し得る。イメージは複数のコンテンツ項目を含み得る。各コンテンツ項目は、そのコンテンツ項目またはそのタイプのコンテンツ項目にとって望ましい保護レベルに適したセキュリティレベル情報に関連付けられ得る。
例示的なネットワーク/コンピューティング環境
図1は、本明細書で論じる技法を実装するのに好適であり得る例示的なネットワーク環境のブロック図である。本明細書に示す特定の構成は、本明細書で開示する技法が使用され得る1つのコンピューティング環境の単なる一例である。さらに、そのようなコンピューティング環境の実装形態は、本明細書に示されず、明快のために省略されている追加の要素を含み得る。
構築システム125は、ユーザが、構築されるソフトウェアイメージ内に含まれるべきコンテンツを識別し、セキュリティレベル情報を各コンテンツ項目に関連付けることを可能にするユーザインターフェースを提供するように構成され得る。セキュリティレベル情報は、コンテンツ項目に関して行われる何らかの動作に対する要求に応じて実行される完全性検査動作と、要求された動作をセキュリティの理由から実行することができないことに応じて実行される結果的挙動とを含み得る。構築システム125は、少なくとも図6および図8に示すプロセスを実装するための手段を提供し得る。構築システム125を実装するために使用され得るコンピューティングデバイスの例を、以下で詳細に説明する図2および図3に示す。
本明細書で論じる例は、ターゲットデバイス175上で利用されることになる1つまたは複数のイメージを生成するために単一の構築システム125を利用するが、ターゲットデバイス175は、複数の構築システム125からイメージを受信するように構成され得る。さらに、ターゲットデバイス175および構築システム125は、直接的に、またはワイヤード接続またはワイヤレス接続を介して間接的のいずれかで互いに接続することができ、構築システム125とターゲットデバイス175との間に1つまたは複数の介在システムまたはネットワークが存在し得る。たとえば、構築システム125によって生成されるイメージは、構築システム125とターゲットデバイス175との間に配設され得るコンテンツサーバ(図示せず)からダウンロードするために使用可能にされ得る。たとえば、オペレーティングシステム開発者は、ターゲットデバイス175に適合する1つまたは複数の構築イメージを提供することができ、ターゲットデバイス175の製造業者または流通業者は、オペレーティングシステムに関連付けられた1つまたは複数のイメージをターゲットデバイス175にダウンロードすることができる。
構築システム125は、ターゲットデバイス175の製造業者、ターゲットデバイス175のネットワークサービスプロバイダ、ターゲットデバイス175の再販売業者、ターゲットデバイス175上で使用され得るアプリケーションのアプリケーションコンテンツプロバイダ、オーディオビジュアルプロバイダによって、かつ/またはターゲットデバイス175上で利用され得るオペレーティングシステムを提供するオペレーティングシステムプロバイダによって操作され得る。ターゲットデバイス175の製造業者または再販売業者は、ターゲットデバイス175によって使用可能であり、かつ製造業者または再販売業者がこれらのイメージに行う修正を制限することを望む、1つまたは複数のイメージを含めることができる。したがって、製造業者または再販売業者は、コンテンツ項目がどのように修正され得るかを制御するために、1つまたは複数のイメージ内に含まれたコンテンツ項目に関するセキュリティレベル情報を定義することができる。アプリケーションコンテンツプロバイダまたはオペレーティングシステムプロバイダは、その中に含まれたコンテンツ項目がアプリケーションコンテンツプロバイダまたはオペレーティングシステムプロバイダが許可しない方法で修正されるのを防止するように、イメージ内に含まれたコンテンツ項目に関連付けられたセキュリティレベルを構成することができる。たとえば、アプリケーションコンテンツプロバイダまたはオペレーティングシステムプロバイダは、コンテンツ項目がより新しいバージョンに更新されることは許可するが、コンテンツ項目が前のバージョンにロールバックするのを防止するように、コンテンツ項目に関連付けられたセキュリティレベルを構成することができる。アプリケーションコンテンツプロバイダまたはオペレーティングシステムプロバイダは、ユーザがコンテンツ項目を修正または削除するのを防止するように、コンテンツ項目に関連付けられたセキュリティレベル情報を構成することができる。たとえば、コンテンツ項目に関連付けられたセキュリティレベルは、コンテンツ項目が修正され、アプリケーションまたはオペレーティングシステムによって使用される構成ファイルが修正され、結果的に、アプリケーションまたはオペレーティングシステムの誤作動をもたらすことを潜在的に可能にするか、またはユーザが、そのユーザがアクセスする資格を有さないコンテンツまたは機能にアクセスすることを潜在的に可能にし得るのを防止することができる。ネットワークサービスプロバイダは、デバイスが誤設定されること、またはデバイスのユーザが、そのユーザがアクセスする資格を有さないネットワークサービスにアクセスすることを可能にするのを防止するために、修正することができない1つまたは複数の構成ファイルをモバイルデバイス上に含めることができる。
ターゲットデバイス175は、ターゲットデバイス175の永続的メモリ内に記憶されたソフトウェアコンテンツを実行するように構成されるコンピュータシステムである。ターゲットデバイス175は、1つの構築システム125から、かつ/または複数の構築システム125から1つまたは複数のイメージを受信するように構成され得る。ターゲットデバイス175は、モバイルフォン、タブレットコンピュータ、ラップトップコンピュータ、携帯ゲームデバイス、またはイメージ内に含まれたソフトウェアコンテンツを実行するためのプロセッサを含む他のそのようなデバイスなど、モバイルデバイスを含み得る。ターゲットデバイス175はまた、デスクトップコンピュータシステム、コンピュータサーバ、セットトップボックス、デジタルビデオレコーダ(DVR)、ゲームコンソール、またはモバイルデバイスのように容易に移動可能でない他のそのようなデバイスなど、非モバイルデバイスを含み得る。ターゲットデバイス175は、ターゲットデバイス175上のイメージの特定のコンテンツ項目に関する何らかの動作の実行要求に応じて、そのコンテンツ項目に関連付けられたセキュリティ情報を検査するように構成され得る。ターゲットデバイス175は、コンテンツ項目に関連付けられた完全性検査動作を実行し、要求された動作を(完全性検査動作によって決定された)セキュリティの理由により実行することができないことに応じて、コンテンツ項目に関連付けられた結果的挙動を実行するように構成され得る。構築システム125は、少なくとも図7および図9〜図13に示すプロセスを実装するための手段を提供し得る。
信頼できるエンティティ190は、ターゲットデバイス175上にインストールされた構築イメージ内に含まれたコンテンツ項目に関して特定の動作を行うことができるかどうかを確認するために利用され得るオプションのエンティティである。ターゲットデバイス175は、ネットワーク接続を介して信頼できるエンティティ190と通信するように構成され得る。たとえば、信頼できるエンティティ190は、インターネットの一部であり得る1つまたは複数のネットワーク上でターゲットデバイス175によってアクセス可能なインターフェースを提供するように構成され得る。信頼できるエンティティ190は、イメージ内に含まれた1つまたは複数のコンテンツ項目のバージョンが公式バージョンであるかまたは特定のバージョンであるかを認証するように構成され得る。たとえば、アプリケーション開発者またはオペレーティングシステム開発者は、アプリケーションまたはオペレーティングシステム構成要素の1つまたは複数の公式バージョンに関連付けられたバージョン情報および/またはコンテンツ情報を信頼できるエンティティに提供することができ、ターゲットデバイス175は、それらの項目に関連付けられたコンテンツ項目に関して特定の動作を実行する前に信頼できるエンティティに連絡するように構成され得る。たとえば、ターゲットデバイス175は、コンテンツ項目に対するアップデートをダウンロードする前に、またはコンテンツ項目の前のバージョンに対するロールバックを実行する前に、信頼できるエンティティに連絡するように構成され得る。
図1に示した例示的なネットワーク構成またはコンピューティング環境は、本明細書で開示する技法が実装され得る1つの可能な構成の単なる一例である。他の構成は、図1に示していない追加の要素を含むことができ、様々な構成要素は図1に示した構成以外の構成で相互接続可能である。
例示的なハードウェア
図2は、図1に示した構築システム125を実装するために使用され得るコンピューティングシステムのブロック図である。構築システム125は、少なくとも部分的に、図6および図8に示すプロセスを実装するために使用され得る。
構築システム125は、バス201によって相互に接続された汎用プロセッサ210と、非一時的メモリ260と、ネットワークインターフェース265とを含むコンピュータシステムを含む。構築システム125の他の実装形態は、図2の例示的な実装形態には示されていない追加の要素を含むことができ、かつ/または図2に示す例示的な実施形態に示された要素のすべてを含んでいるとは限らない場合がある。
プロセッサ210は、インテリジェントデバイス、たとえば、Intel(登録商標) CorporationまたはAMD(登録商標)によって作られたものなどのパーソナルコンピュータ中央処理装置(CPU)、マイクロコントローラ、特定用途向け集積回路(ASIC)などであり得る。メモリ260は、ランダムアクセスメモリ(RAM)、読取り専用メモリ(ROM)、またはそれらの組合せを含むことができる非一時的記憶デバイスである。メモリ260は、本明細書で説明する機能を実行するようにプロセッサ210を制御するための命令を含むプロセッサ可読でプロセッサ実行可能なソフトウェアコードを記憶することができる(ただし、説明ではソフトウェアが機能を実行すると述べる場合がある)。ソフトウェアは、ネットワーク接続を介してダウンロードされること、ディスクからアップロードされることなどによってメモリ260にロードされ得る。さらに、ソフトウェアは、たとえば、実行前にコンパイルが必要など、直接的に実行可能ではない場合がある。
ネットワークインターフェース265は、1つまたは複数のネットワークに対するワイヤード接続性および/またはワイヤレス接続性を提供するための手段を提供することができる。ネットワークインターフェース265は、構築システム125が、ターゲットデバイス175、信頼できるエンティティ190、および/またはアプリケーションコンテンツまたはオペレーティングシステムコンテンツなど、実行可能プログラムコンテンツをターゲットデバイス175に配信するように構成されたアプリケーションサービスプロバイダなど、ネットワークに接続された他のエンティティと通信することを可能にし得る。
メモリ260内のソフトウェアは、プロセッサ210が、イメージ内に含まれるべきコンテンツ項目を識別するためのユーザインターフェースを提供すること、コンテンツ項目に関するセキュリティレベル情報を構成すること、イメージを構築すること、およびターゲットデバイス175にまたはコンテンツサーバにイメージを展開することを実装することを含む、様々な動作を実行することを可能にするように構成される。
図3は、図2に示したメモリ260の機能モジュールを示す、図2に示された構築システム125の機能ブロック図である。たとえば、構築システム125は、コンテンツ構成モジュール362と、イメージ構築モジュール364と、データアクセスモジュール366とを含むことができる。構築システム125は、また、構築システム125に他の機能を提供する1つまたは複数の追加の機能モジュールを含むことができる。図3に示す機能モジュールは、図3に示すようにソフトウェアとして実装可能であり、またはハードウェアで、もしくはハードウェアとソフトウェアの組合せで実装可能である。図2および図3に示す構築システム125は、図6および図8に示すプロセスに関連付けられた構築システム125を実装するために使用され得る。プロセッサ210は、本明細書で論じる構築システム125の様々なモジュールを実装するための手段を提供することも可能であり、ファームウェアで実装される1つまたは複数のモジュールと連携して動作し得る。
コンテンツ構成モジュール362は、イメージ内に含まれるべきコンテンツを選択するための手段を提供することができる。コンテンツ構成モジュール362は、イメージ内に含めるためにコンテンツを選択するためのユーザインターフェースを構築システム125のユーザに提供し、イメージ内に含まれたコンテンツ項目に関連付けられたセキュリティレベル情報を定義するための手段を提供することができる。コンテンツ構成モジュール362は、複数のタイプのターゲットデバイスに対するイメージを作成するための手段を提供することができる。
イメージ構築モジュール364は、1つまたは複数のコンテンツ項目とセキュリティレベル情報とを含むイメージを構築するための手段と、構築イメージを1つまたは複数のターゲットデバイス175に提供するための手段と、配信のためにコンテンツサーバに、かつ/またはターゲットデバイス175上のイメージのコンテンツ項目の完全性を検証するために構築イメージを使用することができる、信頼できるエンティティ190に構築イメージをアップロードするための手段とを提供することができる。
データアクセスモジュール366は、メモリ260および/または構築システム125に関連付けられた他のデータ記憶デバイス内にデータを記憶するように構成され得る。データアクセスモジュール366はまた、メモリ260および/または構築システム125に関連付けられた他のデータ記憶デバイス内のデータにアクセスするように構成され得る。データアクセスモジュール366は、構築システム125の他のモジュールおよび/または構成要素から要求を受信し、メモリ260および/または構築システム125に関連付けられた他のデータ記憶デバイス内に記憶されているデータを記憶し、かつ/またはそのデータにアクセスするように構成され得る。
図4は、図1に示したターゲットデバイス175を実装するために使用され得るコンピューティングシステムのブロック図である。ターゲットデバイスは、少なくとも部分的に、図7および図9〜図14に示すプロセスを実装するために使用され得る。
ターゲットデバイス175は、バス401で相互に接続された、汎用プロセッサ410と、デジタル信号プロセッサ(DSP)420と、ワイヤレスインターフェース425と、GNSSインターフェース465と、非一時的メモリ460とを含むコンピュータシステムを含む。ターゲットデバイス175の他の実装形態は、図4の例示的な実装形態には示されていない追加の要素を含むことができ、かつ/または図4に示す例示的な実施形態に示す要素のすべてを含んでいるとは限らない場合がある。たとえば、ターゲットデバイス175のいくつかの実装形態は、GNSSインターフェース465、DSP420、および/またはワイヤレスインターフェース425を含まなくてよい。
ワイヤレスインターフェース425は、ワイヤレス受信機、送信機、トランシーバ、および/またはターゲットデバイス175が、WWAN、WLAN、および/または他のワイヤレス通信プロトコルを使用してデータを送信および/または受信することを可能にする他の要素を含むことができる。ワイヤレスインターフェース425は、複数のワイヤレス通信標準を使用して、ワイヤレス信号を送信および受信することができる1つまたは複数のマルチモードモデムを含むことができる。ワイヤレスインターフェース425は、ワイヤレス通信プロトコルを使用して通信するように構成されたワイヤレスデバイスへの/そこからの通信を送受信するために、回線432によってアンテナ434に接続される。図4に示すターゲットデバイス175は、単一のワイヤレスインターフェース425および単一のアンテナ434を含むが、ターゲットデバイス175の他の実装形態は、複数のワイヤレスインターフェース425および/または複数のアンテナ434を含むことができる。
I/Oインターフェース470は、データ入力および/またはデータ出力をターゲットデバイス175に提供することができる1つまたは複数のポートおよび/または他のインターフェースを提供することができる。たとえば、I/Oインターフェース470は、ユニバーサルシリアルバス(USB)ポートおよび/または外部デバイスをモバイルデバイスに接続するために使用され得る他のタイプのポートなど、1つまたは複数のポートを含み得る。I/Oインターフェース470はまた、ボタン、スイッチ、キーパッド、タッチスクリーン、および/またはユーザから入力を受信するための手段など、1つまたは複数の入力デバイスを含み得る。I/Oインターフェース470はまた、スクリーン、スピーカ、ヘッドフォンポート、および/またはオーディオコンテンツおよび/または視覚的コンテンツを出力するための他の手段など、そのようなコンテンツを出力するための1つまたは複数の手段を含み得る。
GNSSインターフェース465は、ターゲットデバイス175が1つまたは複数のGNSSシステムに関連付けられた送信機から信号を受信することを可能にするワイヤレス受信機および/または他の要素を含むことができる。GNSSインターフェース465は、GNSS送信機から信号を受信するために回線472によってアンテナ474に接続される。ターゲットデバイス175は、ターゲットデバイス175の位置を決定するために、GNSSシステムに関連付けられた衛星および他の送信機に関連付けられた衛星から受信された信号を使用するように構成され得る。ターゲットデバイス175は、また、他のワイヤレスデバイスから受信された信号とともにGNSSシステムに関連付けられた衛星および他の送信機から受信された信号を使用するように構成され得る。
DSP420は、ワイヤレスインターフェース425および/またはGNSSインターフェース465から受信された信号を処理するように構成可能であり、メモリ460内に記憶されたプロセッサ可読でプロセッサ実行可能なソフトウェアコードとして実装された1つまたは複数のモジュールに対して、もしくはそれと連携して信号を処理するように構成可能であり、かつ/またはプロセッサ410と連携して信号を処理するように構成され得る。
プロセッサ410は、インテリジェントデバイス、たとえば、Intel(登録商標) CorporationまたはAMD(登録商標)によって作られたものなどのパーソナルコンピュータ中央処理装置(CPU)、マイクロコントローラ、特定用途向け集積回路(ASIC)などであり得る。メモリ460は、ランダムアクセスメモリ(RAM)、読取り専用メモリ(ROM)、またはそれらの組合せを含むことができる非一時的記憶デバイスである。メモリ460は、本明細書で説明する機能を実行するようにプロセッサ410を制御するための命令を含むプロセッサ可読でプロセッサ実行可能なソフトウェアコードを記憶することができる(ただし、説明ではソフトウェアが機能を実行すると述べる場合がある)。ソフトウェアは、ネットワーク接続を介してダウンロードされること、ディスクからアップロードされることなどによってメモリ460にロードされ得る。さらに、ソフトウェアは、たとえば、実行前にコンパイルが必要など、直接的に実行可能ではない場合がある。
メモリ460内のソフトウェアは、プロセッサ410が、ワイヤレス通信するように構成されたデバイスとの間でデータを送り、かつ/または受信することを実装することを含む、様々な動作を実行することを可能にするように構成される。
図5は、図4に示したメモリ460の機能モジュールを示す、図4に示したターゲットデバイス175の機能ブロック図である。たとえば、ターゲットデバイス175は、コンテンツ完全性モジュール462とデータアクセスモジュール466とを含み得る。ターゲットデバイス175はまた、ターゲットデバイス175に他の機能を提供する1つまたは複数の追加の機能モジュールを含むことができる。図5に示す機能モジュールは、図5に示すようにソフトウェアとして実装可能であり、またはハードウェアで、もしくはハードウェアとソフトウェアの組合せで実装可能である。図4および図5に示すターゲットデバイス175は、図7および図9〜図14に示すプロセスに関連付けられたターゲットデバイス175を実装するために使用され得る。プロセッサ410は、本明細書で論じるターゲットデバイス175の様々なモジュールを実装するための手段を提供することも可能であり、ファームウェアで実装される1つまたは複数のモジュールと連携して動作し得る。
コンテンツ完全性モジュール462は、ターゲットデバイス175上のイメージ内に含まれたコンテンツ項目に関連付けられたセキュリティレベル情報にアクセスするための手段と、コンテンツ項目に関連付けられたセキュリティレベル情報内に含まれた1つまたは複数の完全性検査動作および1つまたは複数の結果的挙動を実行するための手段とを提供することができる。コンテンツ完全性モジュール462は、別段に規定されていない限り、図7、および図9〜図14に示すプロセスに関連する様々な動作を実行するための手段を提供するように構成され得る。
データアクセスモジュール466は、メモリ460および/またはターゲットデバイス175に関連付けられた他のデータ記憶デバイス内にデータを記憶するように構成され得る。データアクセスモジュール466は、また、メモリ460および/またはターゲットデバイス175に関連付けられた他のデータ記憶デバイス内のデータにアクセスするように構成され得る。データアクセスモジュール466は、ターゲットデバイス175の他のモジュールおよび/または構成要素から要求を受信し、メモリ460および/またはターゲットデバイス175に関連付けられた他のデータ記憶デバイス内に記憶されているデータを記憶し、かつ/またはそのデータにアクセスするように構成され得る。
例示的な実装形態
図6は、本明細書で論じる技法による、イメージを構築し、そのイメージ内のコンテンツ項目をセキュリティレベルに関連付けるためのプロセスの流れ図である。図6に示すプロセスは、構築システム125を使用して実装され得る。構築システム125のコンテンツ構成モジュール362および/またはイメージ構築モジュール364は、別段に規定されていない限り、図6に示したプロセス内に含まれる様々な段階を実行するための手段を提供することができる。
イメージの一部として保護されるべきコンテンツ項目のリストを識別することができる(段階605)。リストは、イメージ内に含まれるべきコンテンツ項目のリストを含み得る。コンテンツ項目は、保護されるべき1つまたは複数のタイプのコンテンツを含み得る。たとえば、コンテンツ項目は、ソフトウェアライブラリ、オペレーティングシステムファイル、アプリケーションコンテンツ、オーディオビジュアルコンテンツ、構成ファイル、および/またはターゲットコンピューティングデバイスによって使用され得る他のコンテンツのうちの1つまたは複数を含み得る。イメージ内に含まれるべきコンテンツ項目は、作成されているイメージのタイプおよび/またはそれに関してイメージが作成されているターゲットデバイスのタイプに左右され得る。構築システム125のコンテンツ構成モジュール362は、ユーザがイメージ内に含まれるべきコンテンツを選択することを可能にするユーザインターフェースを提供するように構成され得る。ユーザインターフェースは、ユーザが、複数のタイプのターゲットデバイス、複数のオペレーションシステム、ならびに/または複数の様々なソフトウェアバージョンおよび/もしくはオペレーティングシステムバージョンに関するイメージを構成することを可能にするインターフェースを提供することもできる。たとえば、タブレットコンピュータ、モバイルフォン、およびラップトップコンピュータシステムまたはデスクトップコンピュータシステムなど、様々なタイプのターゲットデバイス上で特定のアプリケーションを展開することができる。特定のアプリケーションはまた、アプリケーションコンテンツに関連付けられた様々なライブラリおよび/または構成ファイルを必要とする様々なオペレーティングシステムに関して構成可能であり得る。アプリケーションはまた、標準バージョンおよび異なるコンテンツを含む専門バージョンなど、様々なバージョンで提供され得る。構築システム125のコンテンツ構成モジュール362によって提供されるユーザインターフェースは、ユーザが、限定されないが、本明細書で論じる例など、様々なバージョンのイメージに関連付けられたコンテンツ項目を選択することを可能にし得る。
次いで、セキュリティレベル情報をコンテンツ項目の各々と関連付けることができる(段階610)。セキュリティレベル情報は、各それぞれのコンテンツ項目に関する完全性検査動作および結果的挙動を含み得る。完全性検査動作は、完全性検査動作に関連付けられたコンテンツ項目がその完全性検査動作に従って許可されない方法で改変されているかどうかを決定するために実行され得る1つまたは複数のステップを定義することができる。コンテンツ項目がその完全性検査動作に従って許可されない方法で改変されている場合、コンテンツ項目に関連付けられた結果的挙動を実行することができる。完全性検査動作は、ターゲットデバイス175、信頼できるエンティティ190、および/またはコンテンツプロバイダに提供されるイメージの完全性を検証するために構築システム125によって実行され得る。ターゲットデバイス175も、コンテンツ項目に関連付けられた完全性検査動作を実行するように構成され得る。たとえば、ターゲットデバイス175は、ターゲットデバイス175がブートアップされたこと、またはパワーアップされたことに応じて、コンテンツ項目に関して完全性検査動作を実行するように構成され得る。ターゲットデバイス175はまた、ターゲットデバイス175上で実行されている何らかのプロセスによって、完全性検査動作に関連付けられたコンテンツ項目が要求され、アクセスされ、かつ/または修正されていることに応じて、完全性検査動作を実行するように構成され得る。たとえば、ターゲットデバイス175は、ターゲットデバイス175上で実行しているアプリケーションがコンテンツ項目にアクセスしたことに応じて、コンテンツ項目に関して完全性検査動作を実行するように構成され得る。
完全性検査動作は、完全性検査動作のセットから選択され得る。たとえば、完全性検査動作のセットは、完全性検査要求動作、完全性検査非要求動作、ロールバック保護動作、およびデバイス固有の検査動作を含み得る。完全性検査要求動作は、コンテンツ項目の完全性検査が必要とされることを指示するために、コンテンツ項目に関連付けられ得る。完全性検査の特定の実装形態は、実装形態によって異なり得る。そのような完全性検査の例を図9、図10、および図12に示す。完全性検査必要動作に関連付けられたコンテンツ項目は、そのタイプのコンテンツが保護されるために適切である結果的挙動に関連付けられ得る。そのような結果的挙動のいくつかの例が下記で詳細に論じられる。完全性検査非要求動作は、コンテンツ項目の完全性検査が何も必要とされないことを指示するために、コンテンツ項目に関連付けられ得る。完全性検査非要求動作は、オーディオビジュアルコンテンツ、またはログファイルなど、イメージが作成された後で周期的に更新されることが予想される、ファイルなど、ターゲットデバイス175の動作に重要でないコンテンツ項目を識別するために使用され得る。完全性検査非要求動作に関連付けられたコンテンツ項目はまた、何の動作も実行しないか、または、コンテンツ項目が修正された場合、ユーザにターゲットデバイス175および/またはコンテンツプロバイダについて通知する結果的挙動に関連付けられ得る。ロールバック保護動作は、コンテンツ項目の前のバージョンに置き換えることが許可されないコンテンツ項目に関連付けられ得る。たとえば、アプリケーションコンテンツプロバイダは、ターゲットデバイス175のユーザがアプリケーションコンテンツを、もはやサポートされていな可能性があるか、またはターゲットデバイス175上に存在する他のソフトウェアと適切に作動しない可能性がある前のバージョンにロールバックすることを防止するために、ロールバック保護動作をアプリケーションがターゲットデバイス175上で動作するために必要とされるコンテンツ項目に関連付けることができる。別の例では、オペレーティングシステム開発者は、ロールバック保護動作をオペレーティングシステムがターゲットデバイス175上で適切に動作するために必要とされる機能を含むコンテンツ項目に関連付けることができる。
本明細書で論じる例示的な完全性検査動作は、特定の実装形態に含まれ得るタイプの完全性検査動作のいくつかの例を説明するためである。上記で論じた例で論じたタイプの動作に加えて、またはそれらの代わりに、他のタイプの動作を他の実装形態に含めることもできる。コンテンツ項目は、複数の完全性検査動作および結果的挙動に関連付けられてもよい。たとえば、コンテンツ項目は、第1の完全性検査動作と、第1の完全性検査動作がその完全性検査に関連付けられた結果的挙動が実行されるべきであることを指示することに応じて実行される、関連付けられた第1の結果的挙動とに関連付けられてよく、また第2の完全性検査動作と、第2の完全性検査動作がその完全性検査動作に関連付けられた結果的挙動が実行されるべきであることを指示することに応じて実行される、関連付けられた第2の結果的挙動とに関連付けられてもよい。
結果的挙動は、結果的挙動のセットから選択され得る。たとえば、結果的挙動のセットは、破局的エラー処理応答、入出力(I/O)エラー応答、信頼できるエンティティに対する報告応答、およびロールバックエラー応答を含み得る。破局的エラー処理応答は、改変された場合、ターゲットデバイス175の動作に悪影響を及ぼし得る、かつ/またはターゲットデバイス175および/またはその上に記憶されたデータを潜在的に損傷し得るコンテンツ項目に関連付けられ得る。たとえば、破局的エラー処理応答は、オペレーティングシステムライブラリおよび/またはターゲットデバイス175の動作にとって重要なイメージ内に含まれた他のそのようなコンテンツに関連付けられ得る。入出力(I/O)エラー応答は、改変された場合、アプリケーションまたはターゲットデバイス175の動作にとって重要でないターゲットデバイス175上の他の特徴の動作に悪影響を及ぼし得るコンテンツ項目に関連付けられ得る。たとえば、イメージ内に含まれた特定のアプリケーションのオペレーションに関連付けられたコンテンツ項目は、コンテンツ項目がそのコンテンツ項目に関連付けられた完全性検査動作によって許可されない方法で改変された場合、アプリケーションの動作を終了させるために使用され得る入出力(I/O)エラー応答結果的挙動に関連付けられ得る。ターゲットデバイス175の動作は、改変されたコンテンツ項目による影響を受けるべきではなく、コンテンツ項目に関連付けられたアプリケーションが終了されると継続し続けることが可能である。信頼できるエンティティに対する報告応答は、改変された場合、コンテンツ項目が改変されていることを信頼できるエンティティに通知すべきコンテンツ項目に関連付けられ得る。たとえば、信頼できるエンティティに対する報告応答は、ターゲットデバイス175に関連付けられた鍵または他の資格に関連付けられ得る。たとえば、ターゲットデバイス175はモバイルデバイスであり得、信頼できるエンティティに対する報告応答は、改変された場合、モバイルデバイス誤作動を引き起こし得る、かつ/またはモバイルデバイスが盗まれた可能性があること、もしくはさもなければ、無許可な形で使用されていることを指示し得る、1つまたは複数の構成ファイルに関連付けられ得る。コンテンツ項目が改変されていると決定された場合、ターゲットデバイス175は、コンテンツ項目が改変されていることを指示するメッセージを信頼できるエンティティに送るように構成され得る。
本明細書で論じる例示的な結果的挙動は、特定の実装形態に含まれ得るタイプの結果的挙動のいくつかの例を説明するためである。上記で論じた例で論じたタイプの挙動に加えて、またはそれらの代わりに、他のタイプの挙動を他の実装形態に含めることもできる。
次いで、イメージ内の保護されるべきコンテンツ項目のリストとセキュリティレベル情報とを使用してイメージを構築することができる(段階615)。構築システム125のイメージ構築モジュール364は、イメージがそのイメージ内に含まれたコンテンツ項目に関連付けられたセキュリティレベル情報を含むように、ターゲットデバイス175に関するイメージを生成することができる。セキュリティレベル情報は、ファイルインデックスノード(「inode」)属性、またはイメージ内に含まれたコンテンツ項目に関するメタデータ情報を記憶するために使用され得る他のデータ構造内に含まれ得る。コンテンツ項目に関するメタデータ情報は、データのどのブロックがコンテンツ項目に関連付けられるかを識別する情報を記憶するために使用され得る。メタデータ情報は、コンテンツ項目に関するセキュリティレベル情報も同様に記憶するために使用され得る。メタデータ情報は、コンテンツ項目に関連する1つまたは複数の完全性検査動作および結果的挙動を含み得る。いくつかの実装形態では、完全性検査動作および結果的挙動は、イメージとともに含まれたセキュリティレベル情報コンテンツ内で定義可能であり、各コンテンツ項目に関連付けられたセキュリティレベル情報は、セキュリティレベル情報コンテンツ項目内に含まれた完全性検査動作および結果的挙動情報を参照するように構成され得る。コンテンツ項目に関連付けられたセキュリティレベル情報を記憶するために使用される特定のデータ構造は、イメージが対象とするターゲットデバイス175の構成に応じて異なってよく、構築システム125は、複数の異なるターゲットデバイス構成に関する複数のイメージを構築するように構成され得る。
図7は、本明細祖で論じる技法による、コンテンツ項目に関連付けられた動作の実行要求に応じて、イメージ内のコンテンツ項目に関する完全性検査を実行するためのプロセスの流れ図である。図7に示すプロセスは、ターゲットデバイス175を使用して実装され得る。ターゲットデバイス175のコンテンツ完全性モジュール462は、別段に規定されていない限り、図7に示したプロセス内に含まれる様々な段階を実行するための手段を提供することができる。
イメージ内に含まれたコンテンツ項目に関連付けられた動作の実行要求を受信する(段階705)。構築システム125のコンテンツ完全性モジュール462は、ターゲットデバイス175上にインストールされたイメージ内に含まれたコンテンツ項目に関連付けられた動作の実行要求を受信するように構成され得る。ターゲットデバイス175のプロセッサ410は、イメージ内に含まれたコンテンツ項目に関する動作の実行要求をコンテンツ完全性モジュール462に転送するように構成され得る。たとえば、ターゲットデバイス175のプロセッサ410によって実行されているアプリケーションは、ターゲットデバイス175のメモリ内にインストールされたイメージ内に含まれているコンテンツ項目に関する動作の実行要求をプロセッサ110に送ることができる。いくつかの実装形態では、プロセッサ410は、ターゲットデバイス175のメモリ内に記憶されたコンテンツ項目を更新すること、削除すること、またはさもなければ、修正することを試みる動作のすべての実行要求をコンテンツ完全性モジュール462に送るように構成可能であり、コンテンツ完全性モジュール462は、コンテンツ項目がモバイルデバイス上に記憶されたセキュアなイメージに関連付けられるかどうかを決定するように構成され得る。
コンテンツ項目に関して実行されるべき要求動作は、コンテンツ項目を読み取ることもしくはコンテンツ項目にアクセスすることであり得るか、またはコンテンツ項目を修正することであり得る。セキュリティレベル情報はまた、コンテンツ項目が修正され得るかどうかを特定し得る。コンテンツ項目に関連付けられたセキュリティレベル情報は、コンテンツ項目の読取り専用アクセスを実行する前ですら、コンテンツ項目の完全性が検証されることを要求し得る。たとえば、コンテンツ項目は、ターゲットデバイス175のプロセッサ410がアクセスし、実行することができる実行可能プログラムライブラリを含み得る。実行可能プログラムライブラリが改変されていないことを確実にするために、コンテンツ項目は、コンテンツ項目のデータの1つまたは複数のブロックに関するハッシュを実行し、それらを構築システム125によって実行された同じブロックのハッシュと比較することによって、コンテンツ項目が構築されてからそのコンテンツ項目が修正されていないことを検証する完全性検査動作を含み得る。
コンテンツ項目に関連付けられたセキュリティレベル情報にアクセスすることができる(段階710)。コンテンツ完全性モジュール462は、イメージ内に記憶されたセキュリティレベル情報にアクセスして、コンテンツ項目に関連付けられたセキュリティレベルを決定するように構成され得る。セキュリティレベル情報は、コンテンツ項目に関連付けられた完全性検査動作および結果的挙動を含み得る。上記で論じたように、セキュリティレベル情報は、inodeまたはコンテンツ項目に関連付けられた他のデータ構造内のメタデータとして記憶され得る。いくつかの実装形態では、メタデータ内に記憶されたセキュリティレベル情報は、完全性検査動作および/または結果的挙動に関して実行される動作を識別するセキュリティレベル情報コンテンツ項目のコンテンツを参照することができる。他の実装形態では、コンテンツ完全性モジュール462は、イメージとともに含まれたセキュリティレベル情報内に含まれた完全性検査動作または結果的挙動に関してどのステップが実行されるべきかを決定するために使用され得る、メモリ460からのセキュリティレベル情報を含み得るか、またはその情報にアクセスすることができる。
コンテンツ項目に関連付けられた完全性検査動作を実行することができる(段階715)。コンテンツ完全性モジュール462は、コンテンツ項目に関連付けられた完全性検査動作を実行するように構成され得る。完全性検査動作は、完全性検査動作に関連付けられたコンテンツ項目がその完全性検査動作に従って許可されない方法で改変されているかどうかを決定するために実行され得る、1つまたは複数のステップを定義することができる。コンテンツ完全性モジュール462は、コンテンツ項目の1つまたは複数のブロックに関連付けられた情報をコンテンツ項目の1つまたは複数のブロックの予想されるコンテンツを反映する基準情報と比較して、コンテンツ項目が改変されているかどうかを決定するように構成され得る。たとえば、コンテンツ完全性モジュール462は、コンテンツ項目の1つまたは複数のブロックに関するハッシュ値を決定し、各ブロックに関連付けられたハッシュ値を基準ハッシュ値と比較して、コンテンツ項目が改変されているかどうかを決定するように構成され得る。コンテンツ完全性モジュール462は、信頼できるエンティティ190を使用して、コンテンツ項目が許可されない方法で改変されているかどうかを決定するように構成され得る。たとえば、コンテンツ完全性モジュール462は、信頼できるエンティティ190に対するコンテンツ項目の1つまたは複数のブロックに関連付けられたハッシュ値を決定して、コンテンツ項目がそのコンテンツ項目に関連付けられたセキュリティレベルに応じて許可されない方法で改変されているかどうかを決定するように構成され得る。
図9、図10、および図12は、コンテンツ項目に関する完全性検査動作を実行するために使用され得る例示的なプロセスを示す。コンテンツ完全性モジュール462は、他の実装形態で完全性検査を実行するための他のプロセスを実行するように構成可能であり、図9、図10、および図12に示す例示的なプロセスに限定されない。
完全性検査動作が要求された動作を実行できないことを指示することに応じて、コンテンツ項目に関連付けられた結果的挙動を実行することができる(段階720)。コンテンツ項目がその完全性検査動作に従って許可されない方法で改変されている場合、コンテンツ項目に関連付けられた結果的挙動を実行することができる。コンテンツ完全性モジュール462は、様々なタイプの結果的挙動を実行するように構成され得る。結果的挙動は、破局的エラー処理応答、入出力(I/O)エラー応答、信頼できるエンティティに対する報告応答、およびロールバックエラー応答など、結果的な挙動のセットから選択され得る。実行される結果的挙動のタイプは、コンテンツ項目に関連付けられたセキュリティレベル情報によって定義され得る。結果的挙動は、コンテンツ項目がターゲットデバイス175の機能および/またはターゲットデバイス175の1つまたは複数のアプリケーションまたは構成要素にとってどの程度重要であるかに基づいて選択され得る。コンテンツ完全性モジュール462は、ターゲットデバイス175のアプリケーションまたはモジュールの実行を終了するように、ターゲットデバイス175のオペレーティングシステムまたはオペレーティングシステム構成要素の動作を終了するように、ターゲットデバイス175の動作を終了するように、かつ/またはコンテンツ項目が容認できない方法で改変されているという通知を信頼できるエンティティまたは他の第三者に送るように構成され得る。いくつかの実装形態では、コンテンツ完全性モジュール462は、コンテンツ完全性モジュール462が、コンテンツ項目が改変されていると決定することに応じて、信頼できるエンティティからコンテンツ項目の差し替えコピーを取得するように構成され得る。たとえば、ネットワークサービスプロバイダは、ターゲットデバイス175上に記憶されたイメージ内に1つまたは複数のアプリケーションおよび/または構成データを含めることができ、コンテンツ完全性モジュール462は、これらのコンテンツ項目が改変されていると決定することに応じて、これらのコンテンツ項目の差し替えコピーを取得するように構成され得る。
図11、図13、および図14は、コンテンツ項目に関する結果的挙動を実行するために使用され得る例示的なプロセスを示す。コンテンツ完全性モジュール462は、他の実装形態で結果的挙動を実行するための他のプロセスを実行するように構成可能であり、図11、図13、および図14に示す例示的なプロセスに限定されない。
図8は、本明細書で論じる技法による、セキュリティレベル情報を含むイメージを構築するためのプロセスの流れ図である。図8に示すプロセスは、構築システム125を使用して実装され得る。構築システム125のコンテンツ構成モジュール362および/またはイメージ構築モジュール364は、別段に規定されていない限り、図8に示すプロセス内に含まれる様々な段階を実行するための手段を提供することができる。図8に示すプロセスは、図6に示したプロセスの段階615を実施するために使用され得る。
ブロックリストを生成するために、保護されるべきコンテンツ項目のリストの各それぞれのコンテンツ項目に関連付けられたブロックを識別することができる(段階805)。段階805において識別されたターゲットに関連付けられたコンテンツ項目を、イメージを含むデータの1つまたは複数のブロックに分解することができる。イメージ内に含まれたコンテンツ項目の各々に関連付けられたデータのブロックをブロックリストに追加することができる。後で、ブロックリストを使用して、どのブロックが特定のコンテンツ項目に関連付けられるか、および(もしあれば)どのセキュリティレベルが特定のコンテンツ項目に関連付けられるかを決定することができる。
ブロックリストを更新して、各それぞれのコンテンツ項目に関連付けられた完全性検査動作および結果的挙動を含めることができる(段階810)。段階810において、イメージ内に含まれるコンテンツ項目の各々に関連付けられたセキュリティレベル情報は、それぞれのコンテンツ項目に関連付けられた完全性保護動作および結果的挙動がそのコンテンツ項目のブロックの各々に関連付けられるように、コンテンツ項目のそれぞれのブロックの各々に関連付けられ得る。
各それぞれのコンテンツ項目に関連付けられたブロックおよびリストにハッシュ関数を適用して、ハッシュコンテンツを生成することができる(段階815)。ハッシュ関数を各コンテンツ項目に関連付けられたブロックの各々に適用することができ、各ブロックに関連付けられたハッシュ値をイメージに関連付けられたブロックリスト情報に追加することができる。後で、ハッシュ関数を使用して、コンテンツ項目のコンテンツの特定のブロックが修正されているかどうかを決定することができる。
ハッシュコンテンツに署名するために、モバイルデバイスに関連付けられた鍵を適用することができる(段階820)。構築システム125は、ターゲットデバイス175に関連付けられた鍵を使用してブロックリストに署名するように構成され得る。たとえば、鍵は、構築システム125およびターゲットデバイス175がアクセスを有するが、場合によっては、知られない状態または利用不可能な状態に維持されるべき、ターゲットデバイス175に関連付けられた秘密暗号鍵を含み得る。ターゲットデバイス175は、鍵を使用して、署名されたブロックリストが改変されていないか、または破損していないことを決定することができる。イメージのコンテンツを改変するためにブロックリストの修正を試み得る悪意のある当事者またはソフトウェアがターゲットデバイス175に関連付けられた鍵にアクセスせずにブロックリストを改変することが可能である可能性は非常に少ない。鍵は、その鍵が無許可の第三者によって取得され得る可能性を最小限に抑えるために、ターゲットデバイス175上の無許可のアプリケーションに実質的にアクセス不可能であるターゲットデバイス175のメモリ内に記憶され得る。ハッシュ値は、inodeまたはコンテンツ項目に関連付けられた他のデータ構造内に含まれたメタデータ情報内に記憶され得る。コンテンツ項目に関連付けられたメタデータ情報は、それらのコンテンツ項目に関連付けられたセキュリティレベル情報の妨害を試みる際にイメージコンテンツの操作を防止するために、ひとたび構築されると、修正することができない読取り専用コンテンツとして記憶され得る。
図9は、本明細書で論じる技法による、コンテンツ項目に関する完全性検査を実行するためのプロセスの流れ図である。図9に示すプロセスは、ターゲットデバイス175を使用して実装され得る。ターゲットデバイス175のコンテンツ完全性モジュール462は、別段に規定されていない限り、図9に示すプロセス内に含まれる様々な段階を実行するための手段を提供することができる。図9に示すプロセスは、図7に示したプロセスの段階715を実施するために使用され得る。
ブロックリストにアクセスして、コンテンツ項目に関連付けられたブロックを識別することができる(段階905)。データの1つまたは複数のブロックをイメージのコンテンツ項目の各々に関連付けるブロックリストにアクセスすることができる。ブロックリストは、イメージのコンテンツの一部とともに、またはその一部として記憶可能であり、コンテンツ完全性モジュール462によってアクセスされ得る。いくつかの実装形態では、inodeまたはコンテンツ項目に関連付けられた他のデータ構造内に記憶されたメタデータは、各コンテンツ項目に関連付けられたブロックのリストを含み得る。オペレーティングシステム、またはイメージ構築モジュール364など、構築システム125の他の構成要素は、inodeまたは他のそのようなデータ構造内にこの情報を記憶するように構成され得る。他の実装形態では、コンテンツ項目に関連付けられたブロックは、イメージとともに含まれたファイルまたは他のコンテンツ項目内に記憶可能であり、コンテンツ完全性モジュール462は、ファイルまたは他のコンテンツ項目にアクセスし、その中に記憶されたコンテンツ項目に関連付けられたブロック情報にアクセスするように構成され得る。
コンテンツ項目に関連付けられたブロックに関するハッシュを実行することができる(段階910)。コンテンツ完全性モジュール462は、ハッシュアルゴリズムをコンテンツ項目に関連付けられたブロックのうちの1つまたは複数に適用するように構成され得る。コンテンツ完全性モジュール462は、イメージを構築するとき、構築システム125によって適用されたのと同じハッシュアルゴリズムを使用するように構成され得る。コンテンツ完全性モジュール462は、ハッシュアルゴリズムを、コンテンツ項目を含むブロックのサブセット、またはコンテンツ項目を含むブロックのすべてに適用するように構成され得る。構築システム125は、ハッシュアルゴリズムをコンテンツ項目のブロックの各々に適用し、ハッシュ値の読取り可能コピーをイメージ内に記憶することができる。
コンテンツ項目に関連付けられたブロックに関するハッシュをイメージ内に含まれたコンテンツ項目のハッシュと比較することができる(段階915)。コンテンツ完全性モジュール462は、コンテンツ完全性モジュール462によって決定されたコンテンツ項目のブロックの各々のハッシュをイメージ内に記憶されたコンテンツ項目のこれらのそれぞれのブロックの各々のハッシュと比較して、コンテンツ項目が修正されているかどうかを決定するように構成され得る。コンテンツ項目が修正されている場合、図7に示したプロセスの段階720において、そのコンテンツ項目に関連付けられた結果的挙動を実行することができる。
図10は、本明細書で論じる技法による、前のバージョンへのコンテンツ項目のロールバックが要求されているかどうかを決定するためのプロセスの流れ図である。図10に示すプロセスは、ターゲットデバイス175を使用して実装され得る。ターゲットデバイス175のコンテンツ完全性モジュール462は、別段に規定されていない限り、図10に示すプロセス内に含まれる様々な段階を実行するための手段を提供することができる。図10に示すプロセスは、図7に示したプロセスの段階715を実施するために使用され得る。ロールバックは、ターゲットデバイス175上のアプリケーションによって、かつ/または特定の1つまたは複数のコンテンツ項目のロールバックに対するユーザ要求に応じてトリガされ得る。ロールバックプロセスは、特定のアプリケーション、オペレーティングシステム、またはターゲットデバイス175上の他のコンテンツに関連付けられた複数のコンテンツ項目に関して、図10に示すプロセスを実行するステップを含み得る。コンテンツ完全性モジュール462は、そのコンテンツ項目に関連付けられたロールバック保護完全性検査動作を有するコンテンツ項目が修正または削除を試みられたときはいつでも、その修正がそのコンテンツ項目を許容可能なコンテンツ項目のバージョンに置き換える試みであるかどうかを決定するために使用され得る、図10に示したロールバックプロセスを実行するように構成され得る。
ターゲットデバイス上に現在あるコンテンツ項目のバージョンを決定することができる(段階1005)。コンテンツ完全性モジュール462は、ターゲットデバイス175上に現在記憶されているコンテンツ項目のバージョンを決定するように構成され得る。コンテンツ項目に関連付けられたセキュリティ情報は、コンテンツ完全性モジュール462がコンテンツ項目の現在のバージョンを決定するために使用することができるバージョン情報を含み得る。コンテンツ完全性モジュール462はまた、コンテンツ項目のハッシュに基づいてコンテンツ項目のバージョンを決定するように、かつ/またはコンテンツ項目のハッシュおよび/もしくはコンテンツ項目を信頼できるエンティティ190に送信して、コンテンツ項目のバージョンを決定するように構成することができる。
ターゲットデバイス上に現在あるバージョンを置き換えるためのコンテンツ項目のバージョンを決定する(段階1010)。コンテンツ完全性モジュール462は、ターゲットデバイス175上に現在あるコンテンツ項目のバージョンを置き換えるためのコンテンツ項目に関連付けられたバージョンを決定するように構成され得る。段階715で受信されたコンテンツ項目に関する動作の実行要求は、ターゲットデバイス175上のバージョンを置き換えるためのコンテンツ項目のバージョン情報を含み得る。たとえば、ユーザは、ターゲットデバイス175上にすでに見出されるバージョンとは異なり得るコンテンツ項目のバージョンを含むコンテンツをターゲットデバイス175上にダウンロードおよび/またはインストールすることを試みた可能性がある。コンテンツ完全性モジュール462は、デバイスにインストールおよび/またはダウンロードされるコンテンツ内に存在するコンテンツ項目のバージョンを決定するように構成され得る。ダウンロードされることになるコンテンツ項目のバージョンは、ターゲットデバイス175にインストールおよび/またはダウンロードされるコンテンツに関連付けられたセキュリティ情報内に記憶され得る。コンテンツ完全性モジュール462がコンテンツ項目に関するバージョン情報を検証できない場合、コンテンツ完全性モジュール462はコンテンツ項目のダウンロードおよび/またはインストールを防止するように構成され得る。たとえば、ターゲットデバイス175上にすでにあるコンテンツ項目を置き換えるためのコンテンツ項目に関連付けられたセキュリティレベル情報が欠落している、および/または破損している場合、コンテンツ完全性モジュール462は、ターゲットデバイス175上のコンテンツ項目がそのコンテンツ項目によって置き換えられるのを防止するように構成され得る。
コンテンツ項目に対する更新が、結果的に、コンテンツ項目をそのコンテンツ項目の前のバージョンと置き換えさせることになるかどうかを決定することができる(段階1015)。コンテンツ完全性モジュール462は、ターゲットデバイス上に記憶されたコンテンツ項目のバージョンをコンテンツ項目が更新されるべきコンテンツ項目のバージョンと比較して、コンテンツ項目の置き換えバージョンが、ターゲットデバイス175上に現在記憶されているコンテンツのより早いバージョンであるかどうかを決定するように構成され得る。ターゲットデバイス175上に現在あるバージョンを置き換えるためのコンテンツ項目のバージョンに関する何のバージョン情報も決定できない場合、コンテンツ完全性モジュール462は、コンテンツ項目の他のバージョンがターゲットデバイス175上にすでにあるコンテンツのバージョンを置き換えるのを防止するように構成され得る。
コンテンツ項目に関連付けられたセキュリティレベル情報に基づいて、コンテンツ項目に対する更新が許容可能であるかどうかを決定することができる(段階1020)。そのコンテンツ項目に関するセキュリティレベル情報に関連付けられた完全性動作がそのバージョンのロールバックが許可されないことを指示する場合、コンテンツ完全性モジュール462は、コンテンツ項目がそのコンテンツ項目の前のバージョンに置き換えられるのを防止するように構成され得る。ターゲットデバイス175上のコンテンツ項目またはターゲットデバイス175上のコンテンツ項目を置き換えるためのコンテンツ項目のバージョンを決定することができない場合、コンテンツ完全性モジュール462は、コンテンツ項目の置き換えを防止するように構成されることも可能である。コンテンツ完全性モジュール462はまた、コンテンツ項目がコンテンツ項目の異なるバージョンに置き換えられるのを防止するように構成され得る。たとえば、アプリケーションプロバイダ、ネットワークサービスプロバイダ、オペレーティングシステムプロバイダ、または他のコンテンツプロバイダは、コンテンツ項目のバージョンを変更することはできないが、コンテンツ項目の同じバージョンをターゲットデバイス175上に再度ダウンロードおよび/またはインストールすることができるように、コンテンツ項目に関連付けられたセキュリティレベルを設定することができる。
図11は、本明細書で論じる技法による、ロールバック動作を実行するためのプロセスの流れ図である。図11に示すプロセスは、ターゲットデバイス175を使用して実装され得る。ターゲットデバイス175のコンテンツ完全性モジュール462は、別段に規定されていない限り、図11に示すプロセス内に含まれる様々な段階を実行するための手段を提供することができる。図11に示すプロセスは、図7に示したプロセスの段階720を実施するために使用され得る。図11に示すプロセスは、コンテンツ項目に対する更新が許容可能でないという、図10に示したプロセスの段階1020における決定に応じて実行され得る結果的動作として実装され得る。
ターゲットデバイス上のコンテンツ項目の置き換えを防止することができる(段階1105)。コンテンツ完全性モジュール462はまた、コンテンツ項目がコンテンツ項目の別のバージョンに置き換えられるのを防止するように構成され得る。コンテンツ完全性モジュール462は、コンテンツ項目に関連付けられたセキュリティレベル情報に関連付けられた完全性検査動作に従って、コンテンツ項目の前のバージョンへのロールバックが許可されないとき、そのようなロールバックを防止するように構成され得る。ターゲットデバイス175上に現在あるバージョンを置き換えるコンテンツ項目のバージョンを決定することができない場合、コンテンツ完全性モジュール462は、コンテンツ項目がそのコンテンツ項目の別のバージョンに置き換られるのを防止するように構成されることも可能である。コンテンツ完全性モジュール462は、ターゲットデバイス175上で現在利用可能なバージョンを置き換えるためであったコンテンツ項目のバージョンのダウンロードおよび/またはインストールを停止させるように構成され得る。
コンテンツ項目のバージョンのロールバックが可能でなかったという通知を生成することができる(段階1110)。コンテンツ完全性モジュール462は、ターゲットデバイス175上のコンテンツの置き換えが許可されなかったという通知を生成するように構成され得る。コンテンツ完全性モジュール462は、コンテンツ項目を置き換えることができなかったことをターゲットデバイス175のユーザに通知することができるメッセージまたは別の通知をターゲットデバイス175のディスプレイ上に生成するように構成され得る。メッセージまたは他の通知は、コンテンツ項目に関連付けられたセキュリティレベル情報により、前のバージョンへのロールバックを実行することができなかったかどうかを指示する情報を含み得る。コンテンツ完全性モジュール462は、ターゲットデバイス175上のコンテンツ項目の新しいバージョンのダウンロードおよび/またはインストールを試みた、ターゲットデバイス175上で実行されているプロセスまたはアプリケーションに通知を送るように構成され得る。コンテンツ完全性モジュール462は、コンテンツ項目を識別する情報、ターゲットデバイス175上のコンテンツ項目のバージョン、ターゲットデバイス175上でダウンロードおよび/またはインストールが試みられたコンテンツ項目に対する置き換えのためのバージョン情報、イベントがいつ発生したかを指示するタイムスタンプ情報、および/または他の情報を含むログエントリをターゲットデバイス175上に生成するように構成され得る。ログエントリは、ターゲットデバイス175上で実行された完全性検査動作および結果的挙動の履歴を提供することができる、コンテンツ完全性モジュール462によって生成されたセキュリティログ内に含まれ得る。
図12は、本明細書で論じる技法による、信頼できるエンティティ190に連絡することによってコンテンツ項目が更新され得るかどうかを決定するためのプロセスの流れ図である。図12に示すプロセスは、ターゲットデバイス175を使用して実装され得る。ターゲットデバイス175のコンテンツ完全性モジュール462は、別段に規定されていない限り、図12に示すプロセス内に含まれる様々な段階を実行するための手段を提供することができる。図12に示すプロセスは、図7に示したプロセスの段階715を実施するために使用され得る。信頼できるエンティティ190は、アプリケーションコンテンツプロバイダ、オペレーティングシステムプロバイダ、ターゲットデバイス175に関連付けられたネットワークサービスプロバイダ、および/またはコンテンツ項目が修正され得るかどうかを検証することができる別のエンティティに関連付けられ得る。
コンテンツ項目を修正することができるかどうかを指示する要求を信頼できるエンティティに送る(段階1205)。コンテンツ完全性モジュール462は、ワイヤードおよび/またはワイヤレスのネットワーク接続を介して、要求を信頼できるエンティティ190に送るように構成され得る。この要求は、インターネットを含み得る1つまたは複数のネットワークを介して信頼できるエンティティ190にルーティングされ得る。この要求は、修正されるべきコンテンツ項目を識別する情報を含み得る。この要求は、ターゲットデバイス175を識別する情報および/またはターゲットデバイス175の構成を識別する情報を含んでもよい。たとえば、構成情報は、ターゲットデバイス175のハードウェア構成要素および/またはソフトウェア構成要素を識別する情報を含み得る。ターゲットデバイス175のソフトウェア構成要素を識別する情報は、ターゲットデバイス175上に含まれた1つまたは複数のオペレーティングシステムのバージョンを識別する情報を含み得る。この要求は、修正されるべきコンテンツ項目のバージョンを識別するバージョン情報を含み得る。要求がコンテンツ項目の異なるバージョンとのコンテンツ項目の置き換えまたはロールバックに関する場合、この要求はコンテンツ項目を置き換えるためのコンテンツ項目のバージョン情報を含み得る。
コンテンツ項目を修正することができるかどうかを指示する応答を信頼できるエンティティから受信する(段階1210)。この応答は、コンテンツ項目を修正することができるかどうかの指示を含むことができ、信頼できるエンティティ190がコンテンツ項目を修正することができないと決定した場合、コンテンツ項目をなぜ修正することができないかを指示する情報を含むことができる。コンテンツ完全性モジュール462は、応答内に含まれた情報を使用して、コンテンツ項目を修正することができるかどうかを決定し、適切な結果的動作を実行するように構成され得る。図11は、コンテンツ完全性モジュール462が、信頼できるエンティティ190から受信された応答のコンテンツに基づいて、結果的動作を実行することができるプロセスを示す。
図13は、本明細書で論じる技法による、ロールバック動作を実行するためのプロセスの流れ図である。図13に示すプロセスは、ターゲットデバイス175を使用して実装され得る。ターゲットデバイス175のコンテンツ完全性モジュール462は、別段に規定されていない限り、図13に示すプロセス内に含まれる様々な段階を実行するための手段を提供することができる。図13に示すプロセスは、図7に示したプロセスの段階720を実施するために使用され得る。
応答がコンテンツ項目を修正することができることを指示することに応じて、要求されたコンテンツを修正することができる(段階1305)。コンテンツ完全性モジュール462は、信頼できるエンティティから受信された応答内に含まれた指示がコンテンツ項目を修正することができることを指示するのに応じて、コンテンツ項目が修正されることを可能にするように構成され得る。
応答がコンテンツ項目を修正することができないことを指示することに応じて、コンテンツ項目を修正することができないという通知を生成することができる(段階1310)。コンテンツ完全性モジュール462は、信頼できるエンティティから受信された応答内に含まれた指示がコンテンツ項目を修正することができないことを指示するのに応じて、コンテンツ項目が修正されるのを防止するように構成され得る。
コンテンツ完全性モジュール462は、コンテンツ項目を修正することができるかどうか、セキュリティイベントがいつ発生したかを識別するタイムスタンプを指示し、信頼できるエンティティ190がコンテンツ項目を修正することができないと決定した場合、コンテンツ項目をなぜ修正することができないかを指示する情報を含み得るログエントリをセキュリティログ内に生成するように構成され得る。コンテンツ完全性モジュール462は、信頼できるエンティティからの応答が、要求が送られてから所定の時間期間内に受信されていないことに応じて、かつ/または信頼できるエンティティに対する要求を送ることができないことに応じて、コンテンツ項目が修正されるのを防止するように構成され得る。たとえば、ネットワーク輻輳またはネットワーク接続の欠如は、ターゲットデバイス175が信頼できるエンティティ190と通信するのを防止することができ、コンテンツ完全性モジュール462は、ターゲットデバイス175が信頼できるエンティティ190と通信することが可能になるまで、保護されたコンテンツが修正されるのを防止するように構成され得る。
図14は、本明細書で論じる技法による、結果的動作を実行するためのプロセスの流れ図である。図14に示すプロセスは、ターゲットデバイス175を使用して実装され得る。ターゲットデバイス175のコンテンツ完全性モジュール462は、別段に規定されていない限り、図14に示すプロセス内に含まれる様々な段階を実行するための手段を提供することができる。図14に示すプロセスは、図7で示したプロセスの段階720を実装するために使用可能であり、コンテンツ項目が修正されていると決定する、図9に示したプロセスに応じて結果的動作を実行するために使用され得る。
コンテンツ項目に関して要求された動作の実行を防止することができる(段階1405)。コンテンツ完全性モジュール462は、図7に示したプロセスの段階705において要求された動作が、コンテンツ項目が修正されていることに応じて、コンテンツ項目に関して実行されるのを防止するように構成され得る。コンテンツ完全性モジュール462は、コンテンツ項目に関して要求された動作の実行を防止することをターゲットデバイス175のプロセッサ410に命令するように構成され得る。
コンテンツ項目に関して要求された動作を実行することができないという通知を生成することができる(段階1410)。コンテンツ完全性モジュール462は、信頼できるエンティティから受信された応答内に含まれた指示がコンテンツ項目を修正することができないことを指示するのに応じて、コンテンツ項目に関して要求された動作が実行されるのを防止するように構成され得る。コンテンツ完全性モジュール462は、要求された動作を実行することができるかどうか、セキュリティイベントがいつ発生したかを識別するタイムスタンプを指示し、コンテンツ項目に関して要求された動作をなぜ実行することができないかを指示する情報を含み得るログエントリをセキュリティログ内に生成するように構成され得る。
本明細書で説明した方法は、用途に応じて様々な手段によって実装され得る。たとえば、これらの方法は、ハードウェア、ファームウェア、ソフトウェア、またはそれらの任意の組合せにおいて実装されてよい。ハードウェア実装形態の場合、処理ユニットは、本明細書で説明された機能を実行するように設計された、1つもしくは複数の特定用途向け集積回路(ASIC)、デジタル信号プロセッサ(DSP)、デジタル信号処理デバイス(DSPD)、プログラマブル論理デバイス(PLD)、フィールドプログラマブルゲートアレイ(FPGA)、プロセッサ、コントローラ、マイクロコントローラ、マイクロプロセッサ、電子デバイス、他の電子ユニット、またはそれらの組合せにおいて実装されてよい。
ファームウェアおよび/またはソフトウェアの実装形態の場合、これらの方法は、本明細書で説明した機能を実行するモジュール(たとえば、手順、機能など)を用いて実施されてもよい。命令を有形に具現化するいずれの機械可読媒体も、本明細書で説明した方法を実装する際に使用され得る。たとえば、ソフトウェアコードは、メモリに記憶され、プロセッサユニットによって実行され得る。メモリは、プロセッサユニット内またはプロセッサユニットの外部に実装されてもよい。本明細書で使用される場合、「メモリ」という用語は、任意のタイプの長期、短期、揮発性、不揮発性、または他のメモリを指し、特定のメモリのタイプもしくはメモリの数、または媒体のタイプに限定されるものではない。有形の媒体は、ランダムアクセスメモリ、磁気ストレージ、光学記憶媒体のような、機械可読媒体の1つまたは複数の物品を含む。
ファームウェアおよび/またはソフトウェアで実装される場合、機能は、コンピュータ可読媒体上に1つまたは複数の命令またはコードとして記憶されてもよい。例として、データ構造体で符号化されたコンピュータ可読媒体、およびコンピュータプログラムで符号化されたコンピュータ可読媒体がある。コンピュータ可読媒体は物理的コンピュータ記憶媒体を含む。記憶媒体は、コンピュータによってアクセス可能な任意の利用可能な媒体であり得る。限定ではなく例として、そのようなコンピュータ可読媒体は、RAM、ROM、EEPROM、CD-ROMまたは他の光ディスクストレージ、磁気ディスクストレージまたは他の磁気記憶デバイス、あるいは所望のプログラムコードを命令またはデータ構造の形式で記憶するために使用され得る、コンピュータによってアクセス可能な任意の他の媒体を備え得、本明細書で使用される場合、ディスク(disk)およびディスク(disc)は、コンパクトディスク(disc)(CD)、レーザーディスク(登録商標)(disc)、光ディスク(disc)、デジタル多用途ディスク(disc)(DVD)、フロッピー(登録商標)ディスク(disk)およびBlu-ray(登録商標)ディスク(disc)を含み、ディスク(disk)は通常データを磁気的に再生し、ディスク(disc)はデータをレーザーで光学的に再生する。上記の組合せも、コンピュータ可読媒体の範囲に含まれるべきである。そのような媒体はまた、機械可読であり得る非一時的媒体の例を提供し、コンピュータは、そのような非一時的媒体から読み取ることができる機械の一例である。
本明細書で論じられた一般的な原理は、本開示または特許請求の範囲の精神または範囲から逸脱することなく、他の実装に適用されてよい。
125 構築システム
175 ターゲットデバイス
190 信頼できるエンティティ
201 バス
210 汎用プロセッサ、プロセッサ
260 非一時的メモリ、メモリ
265 ネットワークインターフェース
362 コンテンツ構成モジュール
364 イメージ構築モジュール
366 データアクセスモジュール
401 バス
410 汎用プロセッサ、プロセッサ
420 デジタル信号プロセッサ(DSP)
425 ワイヤレスインターフェース
432 回線
434 アンテナ
460 非一時的メモリ、メモリ
462 コンテンツ完全性モジュール
465 GNSSインターフェース
466 データアクセスモジュール
470 I/Oインターフェース
472 回線
474 アンテナ

Claims (24)

  1. コンピューティングデバイスのコンテンツを保護するための方法であって、
    イメージ内に含まれたコンテンツ項目に関連付けられた動作の実行要求を受信するステップと、
    前記コンテンツ項目に関連付けられたセキュリティレベル情報にアクセスするステップであって、前記セキュリティレベル情報が、前記コンテンツ項目に関連付けられた完全性検査動作および結果的挙動を含む、アクセスするステップと、
    前記コンテンツ項目に関連付けられた前記完全性検査動作を実行するステップと、
    前記完全性検査動作が要求された前記動作を実行することができないことを指示することに応じて、前記コンテンツ項目に関連付けられた前記結果的挙動を実行するステップと
    を含む、方法。
  2. 前記結果的挙動が、破局的エラー処理応答、入出力(I/O)エラー応答、信頼できるエンティティに対する報告応答、およびロールバックエラー応答を含む、複数の結果的挙動から選択される、請求項1に記載の方法。
  3. 前記完全性検査動作が、完全性検査要求動作、完全性検査非要求動作、ロールバック保護動作、およびデバイス固有の検査動作を含む、複数の完全性検査動作から選択される、請求項1に記載の方法。
  4. 前記コンテンツ項目に関連付けられた前記完全性検査動作が前記完全性検査要求動作であることに応じて、前記コンテンツ項目に関連付けられた前記完全性検査動作を前記実行するステップが、
    前記コンテンツ項目に関連付けられたブロックを識別するためにブロックリストにアクセスするステップと、
    前記コンテンツ項目に関連付けられた前記ブロックのハッシュを実行するステップと、
    前記コンテンツ項目に関連付けられた前記ブロックの前記ハッシュを前記イメージ内に含まれた前記コンテンツ項目のハッシュと比較するステップと
    を含む、請求項3に記載の方法。
  5. 前記コンテンツ項目に関連付けられた前記完全性検査動作が前記ロールバック保護動作であることに応じて、前記コンテンツに関連付けられた前記完全性検査動作を前記実行するステップが、前記コンテンツ項目に対する更新が前記コンテンツ項目を前記コンテンツ項目の前のバージョンに置き換えることになるかどうかを決定するステップを含み、
    前記完全性検査動作が要求された前記動作を実行することができないことを指示することに応じて、前記コンテンツ項目に関連付けられた前記結果的挙動を前記実行するステップが、前記コンテンツ項目が前記コンテンツ項目の前記前のバージョンに置き換えられるのを防止するステップを含む、請求項3に記載の方法。
  6. 前記動作の前記実行要求が前記コンテンツ項目の修正要求を含み、前記完全性検査動作が、信頼できるエンティティに前記要求を報告するステップを含み、前記結果的挙動を前記実行するステップが、
    前記コンテンツ項目を修正することができるかどうかを指示する応答を前記信頼できるエンティティから受信するステップと、
    前記応答が前記コンテンツ項目を修正することができることを指示することに応じて、前記コンテンツ項目を修正するステップと、
    前記応答が前記コンテンツ項目を修正することができないことを指示することに応じて、前記コンテンツ項目を修正することができないという指示を表示するステップと
    を含む、請求項1に記載の方法。
  7. 装置であって、
    イメージ内に含まれたコンテンツ項目に関連付けられた動作の実行要求を受信するための手段と、
    前記コンテンツ項目に関連付けられたセキュリティレベル情報にアクセスするための手段であって、前記セキュリティレベル情報が、前記コンテンツ項目に関連付けられた完全性検査動作および結果的挙動を含む、アクセスするための手段と、
    前記コンテンツ項目に関連付けられた前記完全性検査動作を実行するための手段と、
    前記完全性検査動作が要求された前記動作を実行することができないことを指示することに応じて、前記コンテンツ項目に関連付けられた前記結果的挙動を実行するための手段と
    を含む、装置。
  8. 前記結果的挙動が、破局的エラー処理応答、入出力(I/O)エラー応答、信頼できるエンティティに対する報告応答、およびロールバックエラー応答を含む、複数の結果的挙動から選択される、請求項7に記載の装置。
  9. 前記完全性検査動作が、完全性検査要求動作、完全性検査非要求動作、ロールバック保護動作、およびデバイス固有の検査動作を含む、複数の完全性検査動作から選択される、請求項7に記載の装置。
  10. 前記コンテンツ項目に関連付けられた前記完全性検査動作が前記完全性検査要求動作を含み、前記コンテンツ項目に関連付けられた前記完全性検査動作を前記実行するための手段が、
    前記コンテンツ項目に関連付けられたブロックを識別するためにブロックリストにアクセスするための手段と、
    前記コンテンツ項目に関連付けられた前記ブロックのハッシュを実行するための手段と、
    前記コンテンツ項目に関連付けられた前記ブロックの前記ハッシュを前記イメージ内に含まれた前記コンテンツ項目のハッシュと比較するための手段と
    を含む、請求項9に記載の装置。
  11. 前記コンテンツ項目に関連付けられた前記完全性検査動作が前記ロールバック保護動作であり、前記コンテンツに関連付けられた前記完全性検査動作を前記実行するための手段が、前記コンテンツ項目に対する更新が前記コンテンツ項目を前記コンテンツ項目の前のバージョンに置き換えることになるかどうかを決定するための手段を含み、
    前記完全性検査動作が要求された前記動作を実行することができないことを指示することに応じて、前記コンテンツ項目に関連付けられた前記結果的挙動を前記実行するための手段が、前記コンテンツ項目が前記コンテンツ項目の前記前のバージョンに置き換えられるのを防止するための手段を含む、請求項9に記載の装置。
  12. 前記動作の前記実行要求が前記コンテンツ項目の修正要求を含み、
    前記完全性検査動作が、信頼できるエンティティに前記要求を報告するステップを含み、
    前記結果的挙動を前記実行するための手段が、
    前記コンテンツ項目を修正することができるかどうかを指示する応答を前記信頼できるエンティティから受信するための手段と、
    前記応答が前記コンテンツ項目を修正することができることを指示することに応じて、前記コンテンツ項目を修正するための手段と、
    前記応答が前記コンテンツ項目を修正することができないことを指示することに応じて、前記コンテンツ項目を修正することができないという指示を表示するための手段と
    を含む、請求項7に記載の装置。
  13. 装置であって、
    イメージ内に含まれたコンテンツ項目に関連付けられた動作の実行要求を受信することと、
    前記コンテンツ項目に関連付けられたセキュリティレベル情報にアクセスすることであって、前記セキュリティレベル情報が、前記コンテンツ項目に関連付けられた完全性検査動作および結果的挙動を含む、アクセスすることと、
    前記コンテンツ項目に関連付けられた前記完全性検査動作を実行することと、
    前記完全性検査動作が要求された前記動作を実行することができないことを指示することに応じて、前記コンテンツ項目に関連付けられた前記結果的挙動を実行することと
    を行うように構成されたプロセッサ
    を含む、装置。
  14. 前記結果的挙動が、破局的エラー処理応答、入出力(I/O)エラー応答、信頼できるエンティティに対する報告応答、およびロールバックエラー応答を含む、複数の結果的挙動から選択される、請求項13に記載の装置。
  15. 前記完全性検査動作が、完全性検査要求動作、完全性検査非要求動作、ロールバック保護動作、およびデバイス固有の検査動作を含む、複数の完全性検査動作から選択される、請求項13に記載の装置。
  16. 前記コンテンツ項目に関連付けられた前記完全性検査動作が前記完全性検査要求動作を含み、前記コンテンツ項目に関連付けられた前記完全性検査動作を実行するように構成された前記プロセッサが、
    前記コンテンツ項目に関連付けられたブロックを識別するためにブロックリストにアクセスし、
    前記コンテンツ項目に関連付けられた前記ブロックのハッシュを実行し、
    前記コンテンツ項目に関連付けられた前記ブロックの前記ハッシュを前記イメージ内に含まれた前記コンテンツ項目のハッシュと比較する
    ように構成される、請求項15に記載の装置。
  17. 前記コンテンツ項目に関連付けられた前記完全性検査動作が前記ロールバック保護動作を含み、前記コンテンツ項目に関連付けられた前記完全性検査動作を実行するように構成された前記プロセッサが、前記コンテンツ項目に対する更新が前記コンテンツ項目を前記コンテンツ項目の前のバージョンに置き換えることになるかどうかを決定するようにさらに構成され、
    前記完全性検査動作が要求された前記動作を実行することができないことを指示することに応じて、前記コンテンツ項目に関連付けられた前記結果的挙動を実行するように構成された前記プロセッサが、前記コンテンツ項目が前記コンテンツ項目の前記前のバージョンに置き換えられるのを防止するようにさらに構成される、請求項15に記載の装置。
  18. 前記動作の前記実行要求が前記コンテンツ項目の修正要求を含み、
    前記完全性検査動作を実行するように構成された前記プロセッサが、信頼できるエンティティに前記要求を報告するようにさらに構成され、
    前記結果的挙動を前記実行することが、
    前記コンテンツ項目を修正することができるかどうかを指示する応答を前記信頼できるエンティティから受信することと、
    前記応答が前記コンテンツ項目を修正することができることを指示することに応じて、前記コンテンツ項目を修正することと、
    前記応答が前記コンテンツ項目を修正することができないことを指示することに応じて、前記コンテンツ項目を修正することができないという指示を表示することと
    を含む、請求項13に記載の装置。
  19. コンピューティングデバイスのコンテンツを保護するためのコンピュータ可読命令を記憶した非一時的コンピュータ可読記録媒体であって、コンピュータに、
    イメージ内に含まれたコンテンツ項目に関連付けられた動作の実行要求を受信することと、
    前記コンテンツ項目に関連付けられたセキュリティレベル情報にアクセスすることであって、前記セキュリティレベル情報が、前記コンテンツ項目に関連付けられた完全性検査動作および結果的挙動を含む、アクセスすることと、
    前記コンテンツ項目に関連付けられた前記完全性検査動作を実行することと、
    前記完全性検査動作が要求された前記動作を実行することができないことを指示することに応じて、前記コンテンツ項目に関連付けられた前記結果的挙動を実行することと
    を行わせるように構成された命令を含む、非一時的コンピュータ可読記録媒体。
  20. 前記結果的挙動が、破局的エラー処理応答、入出力(I/O)エラー応答、信頼できるエンティティに対する報告応答、およびロールバックエラー応答を含む、複数の結果的挙動から選択される、請求項19に記載の非一時的コンピュータ可読記録媒体。
  21. 前記完全性検査動作が、完全性検査要求動作、完全性検査非要求動作、ロールバック保護動作、およびデバイス固有の検査動作を含む、複数の完全性検査動作から選択される、請求項19に記載の非一時的コンピュータ可読記録媒体。
  22. 前記コンテンツ項目に関連付けられた前記完全性検査動作が前記完全性検査要求動作を含み、前記コンピュータに前記コンテンツ項目に関連付けられた前記完全性検査動作を実行させるように構成された前記命令が、前記コンピュータに、
    前記コンテンツ項目に関連付けられたブロックを識別するためにブロックリストにアクセスさせ、
    前記コンテンツ項目に関連付けられた前記ブロックのハッシュを実行させ、
    前記コンテンツ項目に関連付けられた前記ブロックの前記ハッシュを前記イメージ内に含まれた前記コンテンツ項目のハッシュと比較させる
    ように構成された命令を含む、請求項21に記載の非一時的コンピュータ可読記録媒体。
  23. 前記コンテンツ項目に関連付けられた前記完全性検査動作が前記ロールバック保護動作を含み、前記コンピュータに前記コンテンツ項目に関連付けられた前記完全性検査動作を実行させるように構成された前記命令が、前記コンピュータに前記コンテンツ項目に対する更新が前記コンテンツ項目を前記コンテンツ項目の前のバージョンに置き換えることになるかどうかを決定させるように構成された命令をさらに含み、
    前記完全性検査動作が要求された前記動作を実行することができないことを指示することに応じて、前記コンピュータに前記コンテンツ項目に関連付けられた前記結果的挙動を実行させるように構成された前記命令が、前記コンピュータに前記コンテンツ項目が前記コンテンツ項目の前記前のバージョンに置き換えられるのを防止させるように構成された命令をさらに含む、請求項21に記載の非一時的コンピュータ可読記録媒体。
  24. 前記動作の前記実行要求が前記コンテンツの修正要求を含み、
    前記コンピュータに前記完全性検査動作を実行させるように構成された前記命令が、前記コンピュータに、信頼できるエンティティに前記要求を報告させるように構成された命令をさらに含み、
    前記コンピュータに、前記結果的挙動を実行させるように構成された前記命令が、前記コンピュータに、
    前記コンテンツ項目を修正することができるかどうかを指示する応答を前記信頼できるエンティティから受信させ、
    前記応答が前記コンテンツ項目を修正することができることを指示することに応じて、前記コンテンツ項目を修正させ、
    前記応答が前記コンテンツ項目を修正することができないことを指示することに応じて、前記コンテンツ項目を修正することができないという指示を表示させる
    命令をさらに含む、請求項19に記載の非一時的コンピュータ可読記録媒体。
JP2017539399A 2015-01-29 2016-01-25 選択的なブロックベースの完全性保護技法 Pending JP2018509692A (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US14/609,034 2015-01-29
US14/609,034 US9830217B2 (en) 2015-01-29 2015-01-29 Selective block-based integrity protection techniques
PCT/US2016/014674 WO2016122999A1 (en) 2015-01-29 2016-01-25 Selective block-based integrity protection techniques

Publications (1)

Publication Number Publication Date
JP2018509692A true JP2018509692A (ja) 2018-04-05

Family

ID=55359726

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017539399A Pending JP2018509692A (ja) 2015-01-29 2016-01-25 選択的なブロックベースの完全性保護技法

Country Status (5)

Country Link
US (1) US9830217B2 (ja)
EP (1) EP3251045A1 (ja)
JP (1) JP2018509692A (ja)
CN (1) CN107209837A (ja)
WO (1) WO2016122999A1 (ja)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10496598B2 (en) * 2015-09-29 2019-12-03 Blackberry Limited Data access control based on storage validation
US11386067B2 (en) * 2015-12-15 2022-07-12 Red Hat, Inc. Data integrity checking in a distributed filesystem using object versioning
US10754889B2 (en) * 2018-05-24 2020-08-25 Quotient Technology Inc. Computer system and method for dynamically generating an image from digital content items
US11036887B2 (en) * 2018-12-11 2021-06-15 Micron Technology, Inc. Memory data security
US10992900B1 (en) * 2020-04-09 2021-04-27 Goldman Sachs & Co. LLC Oscillating video refresh
CN111881467B (zh) * 2020-06-12 2022-10-28 海光信息技术股份有限公司 利用安全处理器保护文件的方法、装置、cpu和计算机设备

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080092239A1 (en) * 2006-10-11 2008-04-17 David H. Sitrick Method and system for secure distribution of selected content to be protected
JP5346025B2 (ja) * 2007-09-11 2013-11-20 エルジー エレクトロニクス インコーポレイティド 保安署名方法、保安認証方法及びiptvシステム
US8150039B2 (en) 2008-04-15 2012-04-03 Apple Inc. Single security model in booting a computing device
CN102420994A (zh) 2010-09-27 2012-04-18 索尼公司 电子数据完整性保护装置和方法以及数据监控系统
JP5810168B2 (ja) 2010-11-05 2015-11-11 インターデイジタル パテント ホールディングス インコーポレイテッド デバイスの妥当性確認、障害指示、および修復
US20120331526A1 (en) 2011-06-22 2012-12-27 TerraWi, Inc. Multi-level, hash-based device integrity checks
US8832455B1 (en) * 2011-09-21 2014-09-09 Google Inc. Verified boot path retry
US8806282B2 (en) 2012-02-16 2014-08-12 Lsi Corporation Data integrity field (DIF) implementation with error detection and intelligent recovery mechanism
US8776180B2 (en) 2012-05-01 2014-07-08 Taasera, Inc. Systems and methods for using reputation scores in network services and transactions to calculate security risks to computer systems and platforms
US9984250B2 (en) 2012-06-22 2018-05-29 Microsoft Technology Licensing, Llc Rollback protection for login security policy
US9910659B2 (en) * 2012-11-07 2018-03-06 Qualcomm Incorporated Methods for providing anti-rollback protection of a firmware version in a device which has no internal non-volatile memory
WO2014138626A1 (en) * 2013-03-08 2014-09-12 Robert Bosch Gmbh Systems and methods for maintaining integrity and secrecy in untrusted computing platforms
US9922210B2 (en) * 2013-04-29 2018-03-20 Sri International Componentized provisioning
EP2840492A1 (en) * 2013-08-23 2015-02-25 British Telecommunications public limited company Method and apparatus for modifying a computer program in a trusted manner
KR101444828B1 (ko) * 2014-04-30 2014-09-26 동국대학교 산학협력단 암호화된 이미지의 저장 및 검색 방법

Also Published As

Publication number Publication date
US9830217B2 (en) 2017-11-28
WO2016122999A1 (en) 2016-08-04
EP3251045A1 (en) 2017-12-06
US20160224404A1 (en) 2016-08-04
CN107209837A (zh) 2017-09-26

Similar Documents

Publication Publication Date Title
CN109416720B (zh) 跨重置维护操作系统秘密
US9830217B2 (en) Selective block-based integrity protection techniques
KR101066727B1 (ko) 컴퓨팅 장치의 보안 부팅
KR101336378B1 (ko) 애플리케이션 보안을 제공하는 방법, 장치, 및 컴퓨터 프로그램
US9245143B2 (en) Security policy for device data
US20180091315A1 (en) Revocation and updating of compromised root of trust (rot)
US10838879B2 (en) Memory protection based on system state
KR102513435B1 (ko) 펌웨어의 보안 검증
WO2013184799A1 (en) Evaluating whether to block or allow installation of a software application
CN114880011A (zh) Ota升级方法、装置、电子设备及可读存储介质
CN117610083A (zh) 文件校验方法、装置、电子设备及计算机存储介质
CN110941825B (zh) 一种应用监控方法及装置
US11722566B2 (en) Propagating origin information for applications during application installation
CN111353150B (zh) 一种可信启动方法、装置、电子设备及可读存储介质
CN111125678A (zh) 一种管理Option ROM加载的方法、设备及介质
WO2022128143A1 (en) Protection of a computer system and its software from installing and running software applications on incompatible platforms