JP4647300B2 - 特定の装置または装置のクラスにおいてのみソフトウェアの更新のインストールまたは稼動を確実に行えるようにする方法及びシステム - Google Patents

特定の装置または装置のクラスにおいてのみソフトウェアの更新のインストールまたは稼動を確実に行えるようにする方法及びシステム Download PDF

Info

Publication number
JP4647300B2
JP4647300B2 JP2004358960A JP2004358960A JP4647300B2 JP 4647300 B2 JP4647300 B2 JP 4647300B2 JP 2004358960 A JP2004358960 A JP 2004358960A JP 2004358960 A JP2004358960 A JP 2004358960A JP 4647300 B2 JP4647300 B2 JP 4647300B2
Authority
JP
Japan
Prior art keywords
image
package
signature
hash
devices
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.)
Expired - Fee Related
Application number
JP2004358960A
Other languages
English (en)
Other versions
JP2005182789A (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.)
Microsoft Corp
Original Assignee
Microsoft Corp
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 Microsoft Corp filed Critical Microsoft Corp
Publication of JP2005182789A publication Critical patent/JP2005182789A/ja
Application granted granted Critical
Publication of JP4647300B2 publication Critical patent/JP4647300B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • 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/51Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems at application loading time, e.g. accepting, rejecting, starting or inhibiting executable software based on integrity or source reliability
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • 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/12Protecting executable software
    • G06F21/121Restricting unauthorised execution of programs
    • 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/572Secure firmware programming, e.g. of basic input output system [BIOS]
    • 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
    • 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/2129Authenticate client device independently of the user

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Computer Security & Cryptography (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Multimedia (AREA)
  • Technology Law (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Mathematical Physics (AREA)
  • Storage Device Security (AREA)
  • Stored Programmes (AREA)

Description

本発明は一般にコンピューティング装置に関し、より詳細にはコンピューティング装置の不揮発性記憶域を更新することに関する。
PDA、最新の携帯電話、ハンドヘルドおよびポケットサイズのコンピュータなどのモバイルコンピューティング装置は、重要で一般化したユーザツールになりつつある。一般にこうした装置は、バッテリ電力の消費を抑えながらかなり便利なほど小さくなったと同時に、より強力なアプリケーションを動作させることができるようになった。
こうした装置の製造の過程中、組み込まれたオペレーティングシステム画像は、一般に単一的(monolithic)な画像ファイルに組み込まれ、NANDまたはNORフラッシュメモリ、ハードディスクなど、各装置の不揮発性記憶域に格納される。その結果、こうした装置の更新は、折に触れて必要であり、または望ましい。装置の永続的なアプリケーション画像の更新は、アプリケーションがユーザによりアクセスできるファイルシステムに格納され、ユーザデータと混合される、一般にアプリケーションがコンピューティング装置にインストールされる方法とは異なることに留意されたい。
しかし、一部のメーカーは、装置ソフトウェアの更新へのアクセス、および装置が出荷時に備えていた最初の画像へのアクセスを制御することができることを望む。他にも理由はあるが特に、あるメーカーは別のメーカーの更新画像をその装置にインストールさせたくないことがこの理由として挙げられる。また、他のメーカーは、いくつかの画像の更新または新しい画像の代金を支払うことをいとわない顧客に支払いを請求できることを望み、別のメーカーは望まない。また別のメーカーは、新しい画像は新しいアプリケーションまたは特徴を含み得るため、いくつかの画像の更新またはこうした新しい画像の代金を支払うことをいとわない顧客に支払いを請求できることを望む。「更新」は、完全なアプリケーションまたは新しい特徴とすることができることに留意されたい。
最初の画像および/または更新画像へのアクセスを制御し、しかし最初の画像または更新に関するメーカーの特定の状況の組に応じて実施の可否が決まる柔軟な方法で制御する機構が必要である。
簡単に言えば、本発明は、どの装置が画像をインストールし、または動作させることができるかをメーカー、または他の最初の画像または更新画像のプロバイダが制御するシステムおよび方法を対象にしている。このために、本発明は、画像キーイング機構(image keying mechanism)を提供し、それによって、最初の構成要素または更新構成要素、すなわち本明細書ではパッケージとも呼ぶキー付きの画像サブ構成要素をメーカーまたは他の更新プロバイダが指定した以外の装置にインストールしようと試みた場合、そのインストールは失敗する。さらに、例えばハードウェアJTAGプローブなど、他の何らかの手段を介してキー付き画像が装置に適用された場合でさえ、ソフトウェアは、無効な装置上では動作しない。このために、装置は、適切なキーの副署名(countersignature)無しでは起動(boot)しない。画像のキーイングは、最初の製造画像および更新可能なパッケージに適用されることに留意されたい。
一実装形態では、パッケージは、装置に関連付けられている汎用一意識別子(UUID)およびパッケージに基づいてキー付けされる。UUIDは、UUIDが装置または装置のクラスに対応するかどうかに応じて、パッケージに単一の装置または装置のクラスのキーを付けることができるようにする。UUIDを使用すると、キーイングプロセスは、装置のUUIDを画像に確実に関連付けることができ、したがってインストーラ検査器(installer verifier)および/または起動時検査器(boot−time verifier)は、UUIDに基づいてキーイングがその装置に適していることを確認することができる。次いでインストーラ検査器および/または起動時検査器は、装置がその画像に対して承認されているかどうかに応じて、画像の更新/起動を許可または拒否する。
パッケージにキーを付けるには、装置のUUIDが画像を有するサーバに伝達され、次いでサーバはハッシュアルゴリズムをUUIDおよびパッケージ関連のデータに適用し、その結果に署名する。署名は、画像の既知の場所に格納され、キー付きの画像が装置に提供される。
キー付きの画像がインストール時または起動時に確認されるように、インストールコードまたは起動前コードは、キーが付けられていない任意の画像を検出し、必要に応じてインストールまたは装置の起動を中止するように設計されている。これは、同じエンコードアルゴリズムを画像、およびプロバイダやメーカーなどのサーバで画像にキーを付けるために使用されたUUIDに適用することによって達成される。
一実装形態では、画像のキーイングは任意選択であり、したがってソフトウェアベンダーおよび/またはメーカーが画像にキーをつけるかどうかを決定することができる。任意選択でキーが付けられたシステムを有するために、システムは、特定の画像または画像の一部にキーを付ける要求を表す機構を有する。キー付きの画像についての要求は、同じパッケージ内からのものでも、または同じ装置の異なるパッケージ内からのものでもよい。パッケージのプロバイダはパッケージにキーを付けることができ、またはメーカーは、そのパッケージのプロバイダでない場合でさえ、パッケージにキーを付けることができることに留意されたい。
一実装形態で、ハッシュに使用されるパッケージデータは、パッケージのインストール後に装置上で維持されるパッケージの説明に対応する。マニフェスト(manifest)ファイルは、パッケージ識別子、バージョン番号、およびパッケージ内のファイルのリストを含むことによってそのパッケージの中身をシステムに説明するためのパッケージの付属物であり、ハッシュのためのパッケージ関連のデータを提供する。
パッケージにキーが付けられ、パッケージが装置で取得されると、装置は、インストールされるパッケージにキーを付ける要求をパッケージが有しているかどうかを決定する。要求は、パッケージ内からのもの、または別の、前にインストールされたパッケージからの要求である場合がある。キーイング要求がある場合、ハッシュを計算するアルゴリズムは、パッケージの中身および装置UUIDに再適用され、その結果がサーバ側で決定され、パッケージに格納されている結果と比較される。その結果が一致した場合、キーの署名が有効であることがわかり、インストールが可能となる。
例えばハードウェアJTAGプローブの使用による、またはバスを介したフラッシュ内のデータの物理的操作によるなど、標準の画像更新機構以外の手段を介して画像が決して悪意をもって更新されないようにするために、起動時実施機構を使用することもできる。起動時チェックプロセスは、キーが無効である、または見当たらないことを見つけると、起動プロセスを中止する。
他の利点は、次の詳細な説明を図面と併せ読めば明らかになる。
(オペレーティング環境の例)
図1は、プロセッサ122、メモリ124、ディスプレイ126、および物理キーボードまたは仮想キーボードである、またはその両方を表し得るキーボード128を含む、こうしたハンドヘルドコンピューティング装置120の機能的な構成要素を示している。マイクロフォン129は、音声入力を受信するためにある。メモリ124は、一般にRAMなどの揮発性メモリ、およびROM、PCMCIAカードなどの不揮発性メモリを含む。Microsoft社のWindow(登録商標)オペレーティングシステムまたは他のオペレーティングシステムなど、オペレーティングシステム130は、メモリ124に存在し、プロセッサ122上で実行される。
1つまたは複数のアプリケーションプログラム132は、メモリ124にロードされ、オペレーティングシステム130上で動作する。アプリケーションの例には、電子メールプログラム、スケジューリングプログラム、PIM(個人情報管理)プログラム、文書処理プログラム、スプレッドシートプログラム、インターネットブラウザプログラムなどがある。ハンドヘルドパーソナルコンピュータ120は、プロセッサ122上で実行されるメモリ124にロードされた通知マネージャ134を含んでいてもよい。通知マネージャ134は、例えばアプリケーションプログラム132からの通知要求を処理する。また、後述するように、ハンドヘルドパーソナルコンピュータ120は、ハードウェアドライバなどのネットワーキングソフトウェア136、および電話をかけることも含めて、ハンドヘルドパーソナルコンピュータ120をネットワークに接続するのに適した無線およびアンテナなどのネットワーク構成要素138を含む。
ハンドヘルドパーソナルコンピュータ120は、1つまたは複数のバッテリとして実装される電源140を有する。電源140は、ACアダプタや動力付きドッキングクレードル(powered docking cradle)など、内蔵バッテリに優先する、またはそれを再充電する外部電源をさらに含むことができる。
図1に示されるハンドヘルドパーソナルコンピュータ120の例は、1つまたは複数の発光ダイオード(LED)142および音声生成器144の3種類の外部通知機構を備えるように示されている。これらの装置は、電源140に直接結合することができ、したがって稼動されると、ハンドヘルドパーソナルコンピュータプロセッサ122および他の構成要素がバッテリ電源を保持するためにシャットダウンする場合でさえ、通知機構によって指示されたある期間の間、オンのままである。LED142は、ユーザが行動を起こすまで無期限にオンのままであることが好ましい。最新バージョンの音声生成器144は、今日のハンドヘルドパーソナルコンピュータバッテリにあまりにたくさんの電力を使いすぎるため、システムの残りがオフになったとき、または稼動後のある有限の期間にオフになるよう構成されていることに留意されたい。
基本的なハンドヘルドパーソナルコンピュータを示しているが、実質的には、携帯電話など、データ通信を受信し、プログラムで使用するためにデータを何らかの方法で処理することができる任意の装置は、本発明の実施の目的上同等であることに留意されたい。
(装置固有の更新)
本発明は一般に、組み込み型装置の不揮発性メモリ、例えばフラッシュメモリに最初のソフトウェアまたはソフトウェアの更新が書き込まれるものを含めて、Microsoft Windows(登録商標)CEベースの装置などの小さいモバイルコンピューティング装置に格納されるソフトウェアをインストールし、かつ/または更新することを対象としている。それにもかかわらず、本発明は、総体的にコンピューティングにとっての利点を提供し、したがって他のコンピューティング装置、および様々なタイプのメモリおよび/またはハードディスクドライブなど他のタイプの記憶媒体を含めて、他のタイプの記憶域に適用することができる。簡潔にするために、「フラッシュ」という用語は、以下装置の更新可能な記憶域を参照して使用されるが、任意の記憶機構が同等であることを理解されたい。さらに「画像」という用語は一般に、既存の画像の一部しか更新されない場合でさえ、最初のソフトウェアインストール画像、および画像へのその後のソフトウェアの更新の概念を含む。
ソフトウェア更新は、ある組のソフトウェアへの完全な更新、および/または前の更新または画像に対する変更のみを含み得る自己完結型の安全なエンティティである。ソフトウェア更新は、拡張可能なコードおよびデータを含むことができる。本発明のキーイング関連プロセスおよび機構を説明するために、最初の製造画像、および製品が販売された後でフィールドにインストールされた更新可能な画像構成要素は、同様に扱われ、以下、総称的に「画像エンティティ」と呼ばれる。画像エンティティは、画像全体については画像、または画像のサブ構成要素については画像サブ構成要素/パッケージとすることができる。
本発明の態様によれば、インストールが従来の手段を介して試行されるとき、キー付きのソフトウェア画像が許可されていない装置にインストールされるのを防ぐ画像キーイング方法およびシステムが提供される。さらに、この方法およびシステムは、例えばハードウェアのハッキングを介するなど、他の何らかのやり方でインストールされたキー付きソフトウェアが許可されていない装置で動作するのを防ぐ。本発明は、最初の製造画像および更新可能なパッケージに適用される。容易に理解できるように、キーイングは、装置のメーカー/OEM/ソフトウェアベンダーが、最初の製造画像および/または更新可能なパッケージをインストールすること、または動作させることができる装置のアレイを厳重に制御できるようにする。
図2に概略が示されているように、ある画像内の.CAB圧縮済みファイルなどのパッケージ202は、パッケージ202が装置に有効な例えば更新などの画像であることを確認するために使用される少なくとも1つの署名を含む署名アレイ204を有する。第2の署名、または副署名は、存在する場合、キー206であり、これは、特定の装置にその更新を関連付けるために使用される。この副署名を一般に、本明細書では「キー」と呼ぶ。例えばOEMなど装置に関するそのキー情報を有しているパッケージおよびエンティティを最初に作成したプロバイダは、パッケージにキーを付けることができる。キー206は、後述するように、パッケージおよび装置IDに関する情報を使用して構築される。
上述したように、キーイング処理は、画像にそのためのキーが付けられる装置を一意に識別する能力に依存する。このために、各装置は、汎用一意識別子(UUID)208を提供する必要がある。適切に機能するように、このUUIDは、他の任意の機構から画像をそこにインストールすることができ、しかしそこで設定することはできない装置の組にわたって、ハードウェア生成され、永続的な、保証された一意のものとするべきである。さらに装置は、要求されるといつでも、要求されたときにUUIDを取得し、提供する責任を負う装置上のシステムソフトウェアを介して同じUUID値を戻すことができる必要がある。装置は一般に、すでに装置IDなどのUUIDを有しているが、セキュリティ上の理由で、装置IDが許可されていない構成要素からアクセスできないようにすることが望ましいことに留意されたい。
理解できるように、UUID208は、装置ごとにわずか1つのパッケージという粒度に対応するキーをパッケージに付けることができるようにする。しかし、必要に応じて、UUIDを装置のクラスに使用することができる。例えばメーカーは、単一の顧客についてこうした多くの装置を構築することができ、UUIDを、1つの装置ではなく、その顧客に販売された装置のクラスに適用することができる。例えばこれは、装置のクラスにUUIDの最上位ビットを共有させ、最下位ビットはそのクラス内の装置の識別に使用することによって達成することができる。次いで、各UUIDの最上位ビットのみを、キーイングのためにクラスUUIDとして使用される。更新が許可されるかどうかを決定するときに、チェック機構は、装置UUIDおよびクラスUUIDを使用して更新を許可するかどうかを決定することができることに留意されたい。その結果、メーカーは、キー付きの更新を個々に要求するよう各装置に要求するのではなく、単一のキー付き更新を同じクラスの複数の装置にインストールすることを許可することができる。本明細書では簡潔にするために、UUIDを、主に単一の装置に関して説明するが、概念は、複数の装置のクラス間でUUIDを共有することに等しいことを理解されたい。
こうしたUUIDを使用すると、キーイングプロセスは、装置のUUIDを画像に確実に関連付けることができ、したがってインストーラ検査器および/または起動時検査器は、キーイングがその装置のUUIDに適していることを確認することができる。次いでインストーラおよび/または起動時検査器は、信頼の連鎖に関して後述するように、起動前検証コードがハードウェアにとって安全であることを条件に、装置がその画像について許可されているかどうかに応じて、画像の更新/起動を許可または拒否する。
キー付きの画像がインストール時または起動時に確認されるように、インストールコード210、または起動前コード212は、キーが付けられていない任意の画像を検出し、必要に応じてインストールまたは装置の起動を中止するように設計されている。これは、同じエンコードアルゴリズムを画像、および画像のプロバイダによって使用されたUUIDに適用し、その結果が例えばプロバイダのサーバによって画像に格納されているキーと一致することを確認することによって達成される。このように、キーが付けられていない画像、または別の装置のキーが付けられた画像が検出されると、画像は最初にインストールできない、またはインストールプロセスが回避され、ハードウェアJTAGプローブなどの別の機構を使用して画像をフラッシュする場合、画像は動作しない。
一実装形態で、画像のキーイングは任意選択であり、したがってソフトウェアベンダーおよび/またはメーカーが画像にキーをつけるかどうかを決定することができる。任意選択でキーが付けられたシステムを有するために、システムは、特定の画像または画像の一部にキーを付ける要求を表す機構を有する。キー付きの画像についての要求は、同じ画像内からのものでも、または同じ装置の異なる画像サブ構成要素内からのものでもよい。例えばこのことは、メーカーがその画像のプロバイダではない場合でさえ、メーカーが画像にキーを付けることができるようにすることに留意されたい。
キーイング署名は、画像の所有者、またはキーイング要求を発行したエンティティによって署名することができる。この重複は、装置上のソフトウェアを生成している別のエンティティは制御をしていない画像のキーを確実に要求することができ、また画像の所有者はその画像の更新制御を決して失わないようにする。さらに、容易に理解できるように、ベンダーは、内的に、ビルドシステムにおいて作成者およびOEMとしての役割を果たすことができる。したがって例えば、画像がビルドラボを離れる前に、ビルドラボは、OEMとして働き、ビルドにキーを付ける。次いでパッケージは、パッケージにそのためのキーが付けられた装置に結合され、別の装置にフラッシュすることができない。他にも利点はあるが、このことは日々のビルドの漏洩を防ぐ。
例えば要求があり次第適切にキーが付けられた画像を提供するために、キーを付けるべき画像は、まずサーバ220に格納される。装置のUUIDは、安全な機構を介してサーバに伝達され、次いで画像にキーを付けるために使用される。例えば装置の所有者は、更新を要求したとき、UUIDを確実に送信することができる。または装置のメーカーは、更新を受信することを許可されたUUIDの内部データベースを維持することができる。機密データへの他の制御されたアクセスと同様、サーバ220への認証されたアクセス、UUID交換のセキュリティ、およびサーバ側の処理は、キーイングプロセスが安全であり、交換を妨害することができないことを確実にするための必要条件である。
サーバ220が装置UUIDを取得し、画像にアクセスできるようになると、一実装形態では、サーバは、ハッシュアルゴリズムを両方のエンティティに適用して、例えば連結を介して単一のエンティティを取得し、これに署名されるようにすることができる。これは本質的に、次の式として表すことができる。
Signkey ( Hash ( Hash(pkg data) | Hash (device ID) ) )
ハッシュ結果から署名が生成されると、署名は、画像内の既知の場所に格納され、次いでキー付きの画像が装置にダウンロードされる用意がなされる。
ハッシュに使用されるパッケージデータは、パッケージの中身の実際のハッシュを基にすることができるが、後述するように、パッケージは、インストール後の装置によって保持されず、したがってこれは問題を引き起こし、キーイング機構が妨害を受けやすくなる。パッケージデータとして中身を使用する代わりに、インストール後に維持されるパッケージの説明は、ハッシュするのにより望ましいエンティティであり、一実装形態では、パッケージの中身の代わりに使用される。より詳細には、それは、パッケージの付属物であり、そのパッケージの中身をシステムに説明するマニフェストファイル230とともに、画像をパッケージ内に準備することができる。マニフェストファイル230は、パッケージ識別子、バージョン番号、およびパッケージ内のファイルのリストを含む。さらに、マニフェストファイル230は、図2のインストール済みのマニフェストファイル230iによって表されるように、パッケージのインストール後、装置上に留まる。これは、パッケージ自体がインストール後に破棄された場合でさえ、起動時にそのハッシュを取得することができることを意味する。その結果、マニフェストファイル230は、パッケージデータとしての上記式においてハッシュして、パッケージを表すのに優れたエンティティとして働き、次いでパッケージは、上述したように、結果が署名された状態で装置UUIDのハッシュと組み合わされる。
キーが付けられると、パッケージは装置にダウンロードされる。装置は、インストールされるパッケージにキーを付ける要求をパッケージが有しているかどうかを決定する。要求は、パッケージ内からのもの、または別の、前にインストールされたパッケージからの要求である場合がある。また、同時にインストールされる他の任意のパッケージからの要求もあり得る。キーイング要求がある場合、ハッシュを計算する同じアルゴリズムは、画像および装置UUIDに再適用され、その結果がサーバ側で決定され、パッケージに格納されている結果と比較される。その結果が一致した場合、キーの署名が有効であることがわかる。画像の従属関係の要件が満たされた、画像が完全で適切であるなど、他の画像の検証チェックが成功したと仮定すると、画像は装置にインストールされる。
インストール時にパッケージに適切にキーが付けられたことを確認する1つの利点は、インストールまたは更新をキャンセルすることができることである。それをインストールする前に更新をキャンセルすると、ユーザには起動可能な装置が残る。当然、装置は、ユーザがインストールしようとしていた更新は有していないが、少なくともその前の状態に起動する。容易に理解できるように、起動時のみに適したキーイングをチェックすることによってのみ保護を行うことができるとしたら、ユーザが誤った更新をインストールするなどのシナリオは、結果的にそれが再フラッシュされない限り起動しない装置がユーザに残されることになる。
第2の実施機構を使用することもできる。より詳細には、例えばハードウェアJTAGプローブの使用による、またはバスを介したフラッシュ内のデータの物理的操作によるなど、標準の画像更新機構以外の手段を介して画像が決して悪意をもって更新されないようにするために、起動プロセス中に画像のキーイングをチェックするプロセスを適用することもできる。例えば、キー付きのパッケージに対応する各プログラムが起動する前など、確認をどこかで別のときに行うことが可能であるが、簡潔にするために、本明細書では、実施を、起動時の確認に関して説明することに留意されたい。
起動時チェックプロセスは、例えばブートローダ内などにある起動前機関(pre−boot authority)が、インストーラ検査器によって行われるように、画像のキーを検証し、キーが無効である、または見当たらないことを見つけると、起動プロセスを中止するように設計されることを要求する。ハードウェアレベルの攻撃から保護するために、起動前機関212は、置き換えることができない/無効にすることができないように、例えば読み取り専用ROMなどでハードウェア保護する必要がある。というのは、ROM内のブートローダは、装置へのハードウェアアクセスでハッカーによって置き換えることができるからである。これは、後述する信頼の連鎖の説明の一部であり、例えば携帯電話用に設計されているものと同様に、CPUの起動の前にブートローダへの署名を確認する安全なブート機能を備えるCPUを使用して達成することができる。信頼の連鎖は、CPUベースの安全な起動が、オペレーティングシステム下で動作しているアプリケーションを通過するようにする。
図2は、メモリレイアウト240の例を示しており、コード232iを含むあるパッケージバージョンV1の中身、マニフェスト230i、および場合によっては後述するキー情報ファイル234iがImageFSと呼ばれるシステムパーティション236にインストールされている。留意すべきことは、この実装形態の例では、パッケージを、NK領域またはパーティションとして知られる別のカーネルパーティションにもインストールできる。
図2に示すように、パッケージ202などの各パッケージは、キーを付けることができる、つまり関連の副署名206を有することができる。上述したように、副署名は、装置IDのハッシュおよびパッケージ関連のデータのハッシュ、例えばパッケージ情報を含むマニフェストファイルである。その結果、パッケージが装置に結合されるだけではなく、同じ装置上でさえ、そのパッケージからのキーを別のパッケージに使用することができない。
キーイングの保護を実施するために、インストール時または起動時、装置は、サーバ220と同様に、パッケージマニフェストファイル230iをハッシュし、そのハッシュをUUID208のハッシュと連結する。結果は、例えばパブリックキーで署名されるなど、ハッシュされ、副署名として使用される。
一実装形態では、副署名は、PKCS7署名である。署名の証明書連鎖を構築し、検証するのに必要な証明書は、PKCS#7データ構造内にある。キー署名が署名される必要がある証明書は、キーヤーがパッケージの所有者である場合はパッケージのマニフェストに、またはキーヤーがキーイングを要求しているエンティティである場合はキー情報ファイルに格納することができる。
キー情報ファイル234は、これが正しいファイルタイプであることを確認するために、このファイルタイプのみに使用されるマジックナンバーを含むバイナリファイル形式である。キー情報ファイルは、構造のサイズ、要求の数、パブリックキーアレイへのインデックス、および証明書の数も含む。一実装形態では、キーイング署名を見つけるためにアレイ内のすべてのキーが走査され、キーイング署名は、認証されていない属性を介して識別することもできる。
キー情報ファイルは、装置上の任意のパッケージにキーを付ける要求のリストを含むシステムファイルである。パッケージを装置にインストールするとき、画像内のキー情報ファイルが列挙される。これは、新しいパッケージ内のキー情報ファイル234i、キー情報ファイル238iなど前にインストールされた1つまたは複数の他のパッケージに対応する現在の画像内の任意のキー情報ファイル、およびインストールされるパッケージの組内の他のパッケージからの任意のキー要求を含む。現在の画像内の任意のキー情報ファイル、または新しい更新パッケージ要求のキー情報ファイルがパッケージにキーを付けることを要求している場合、そのパッケージにキーを付ける必要がある。結果として、パッケージを提供したソフトウェアベンダーがパッケージにキーを付けることを要求しない場合でも、メーカーはパッケージにキーを付けることを要求することができる。キー情報ファイルは、パッケージにキーを付けないことを要求するのではなく、パッケージにキーを付けることを要求することができるだけなので、競合するキーイング要求はあり得ないことに留意されたい。例えばベンダーは、特定のパッケージに決してキーを付けないことを要求するキー情報ファイルを含むことができない。したがってパッケージは、最初にパッケージを作成したエンティティ、または装置のキー情報を有しているエンティティによってのみキーを付けることができる。
図2に示すように、署名は、一実装形態においてwincertArryという名前の証明書204のアレイ内の署名済みファイルに保持される。パッケージに装置のキーを付けるために使用される副署名206は、保護された属性付きの署名を含む。この保護された属性は、新しい認証済みの属性である。パッケージが有効な署名を含んでいるかどうかを決定するために、証明書アレイ204が列挙され、アレイ内の各要素は、認証済み属性206があるかどうかチェックされる。この属性が見つかった場合、これはキーイング署名である。
各署名を検証するために、証明書アレイ内の副署名206は、例えば234や238iなど、パッケージ202にキーを付けるべきであると伝えるキー情報ファイルからの証明書と比較される。パブリックキーファイルは、パッケージ内のパッケージマニフェストにあり、そうでない場合はパッケージ自体に添付されている可能性がある。署名のいずれかが検証され、動作する場合、パッケージ202は、装置に適用される。署名がいずれも検証されない場合、適したユーザインターフェースダイアログなどを介してユーザにエラーが通知される。
図3は、パッケージを装置にインストールするとき、キーイング情報の確認のために行われ得る様々なステップ例を示しており、ステップ300で始まり、キー情報ファイルが列挙される。ステップ302は、このパッケージについてキーイングを求める任意のキー情報ファイル要求があるかどうかを評価する。ない場合、ステップ304で示すように追加のキーイング作業は不要であり、プロセスは終了する。そうでない場合、キーイングが要求され、証明書アレイ内の署名の組がステップ306および308を介して検証される。ステップ310で、組が任意の有効な署名を含んでいない場合、パッケージの検証は、有効なキーを有していないため、ステップ312で失敗する。
例えば圧縮済みCABファイルなどのパッケージはインストール後は保持されないため、マニフェストファイルではなくパッケージがハッシュ計算で使用される代替の一実装形態では、署名およびパッケージのハッシュは、インストール後に保持される必要があることに留意されたい。したがって、任意選択のステップ314で示すように、この代替の実装形態では、有効な署名が新しいパッケージから抽出され、それをシステム上のファイルに書き込むことによって格納される。この代替の実装形態では、特定のパッケージのキーイング情報を確認し、パッケージ更新を実行した後、更新アプリケーションは、パッケージのハッシュをプレーンテキストでパッケージのインストール時の他のハッシュと同じファイルに書き込むことができる。例えば[GUID].pkiなど、こうしたパッケージキーイング情報ファイルは、パッケージハッシュがもはやアクセス可能でない場合、起動時確認に必要である。
キー情報ファイルは、更新プロセスにおいて通常のファイルとして働く。更新内のキー情報ファイルまたはその欠乏は、パッケージに元々あったものを何でも置き換える。パッケージが元々キーを付けられておらず、パッケージ作成者またはOEMがパッケージにキーを付けることを決定した場合、パッケージは、パッケージにキーを付けることを要求しているキー情報ファイルを含むパッケージで更新することができる。また、パッケージにキーを付けることを宣言するキー情報ファイルを含むパッケージをキー情報ファイルを含まないパッケージで更新することもできる。これは、パッケージがもはやキーを付けられることを要求していないことを意味する。しかしこれは、特定のパッケージにキーを付けることを要求する、他の何らかのパッケージに対応する他のキー情報ファイルが装置にないことを保証しているのではないことに留意されたい。
本発明の一態様によれば、上述したように、キーイングを要求する各パッケージのキーイング情報は、図4のフロー図に概略を示すように、起動時にすべてのキー情報ファイルとも照合される。一実装形態では、ステップ400の任意のキー情報ファイルがステップ402および408のキーイングが必要であると示したパッケージごとに、ステップ404の同じ評価が行われる。つまりマニフェストファイルのハッシュおよびUUIDが取得され、署名され、キーと比較される。比較が任意のパッケージについて有効ではない場合、406で装置は起動しないか、そうでない場合410で装置は起動する。
装置マニフェストファイルがハッシュ計算に使用されない代替の一実装形態では、インストール時、署名が新しいパッケージから抽出され、ファイルとしてファイルシステムに入れられたことを思い出されたい。この場合、署名に加えてパッケージのハッシュが格納される。パッケージデータがマニフェストファイルのハッシュである場合でさえ、起動時の確認のために署名を格納する必要がある。パッケージにキーを付ける必要があるかどうかを決定するために、起動時にキー情報ファイルが走査され、次いで抽出された署名を含む対応するファイルが走査され、開かれ、署名の内容が確認される。
キー情報ファイルは、署名も含んでいることに留意されたい。すべてが有効である場合のみ、装置が起動する。さらに、RAMシャドウイング問題を扱うために、キー情報ファイルおよび署名が起動時に開かれ、ファイル属性がチェックされることに留意されたい。このファイルがROM内にない場合、またはImageFS内のシステムファイルではない場合、起動確認機構は、ファイルの削除を試みる。システムファイルではない、またはROM内にはないようなファイルを削除できない場合、装置は起動しない。
(信頼の連鎖)
上述したように、真のセキュリティのために、起動前検証コードは、ハードウェアにとって安全である必要があり、そうでない場合、例えば、ハードウェアハッカーは、検証コードを上書きすることができることになる。こうした真のセキュリティは、CPUがセキュリティで保護された起動機能を有していることに依存する。というのは、CPUが安全に起動する場合、信頼されたコードを開始することができる。その後、信頼の連鎖の概念は、推移性を前提として、他の構成要素にこうした確認機構を提供することができる。つまり、ユーザが構成要素Aを信頼し、構成要素Aが構成要素Bを信頼し、構成要素Bが構成要素Cを信頼した場合、ユーザは、構成要素Cを信頼することができる。したがって、本発明の構成要素では、最初のプログラムローダを信頼することができることをユーザがわかっており、最初のプログラムローダは、マスタブートレコードおよびNK領域が信頼されることを確認することができ、例えばその中のセキュリティローダなど、NK領域は、他の構成要素が信頼されることを確認した場合、ユーザはこれらの構成要素を信頼することができる。
したがって、本発明では、信頼の連鎖は、図5のブロック502に示した最初のプログラムローダの保護に依存する。このために、CPUは、最初のプログラムローダの署名を検証することができる安全な起動機能を有することができる。署名が有効でない場合、装置は起動しない。これは、CPUの安全な起動機能に依存する。
CPUがそれによって最初のプログラムローダの署名を確認する正確な機能は、CPUに依存し、メーカーによって異なるが、一般にリセットベクトルでのコードが正しい署名を含んでいない場合、CPUは起動しない。
図5に示すように、最初のプログラムローダ502は、画像更新内の署名付きの構成要素の残り、つまりマスタブートレコード506、更新ローダコード508、およびNKコード510に署名することが許可されたルート証明書のリスト504を含む。このリスト内のルート証明書は信頼することができる。というのは、これらは、最初のプログラムローダ画像502に含まれており、CPU自体によって確認されたからである。
ルート証明書リスト504は、NKパーティション内のベンダー提供のパッケージ内のファイル上の署名を確認するためのオペレーティングシステムベンダー証明書、およびマスタブートレコード、更新ローダコード、および予備の領域上の署名を確認するための少なくとも1つのOEM提供の証明書を含んでいなければならない。マスタブートレコード506を保護するために、最初のプログラムローダ502は、パブリックキーで署名されたマスタブートレコード506全体のハッシュを使用してマスタブートレコード506上の署名を検証する。
マスタブートレコード506は、セキュリティディレクトリも含むことができる。セキュリティディレクトリ506は、図5のマスタブートレコード506内に組み込まれている、そうでない場合はどこかにある新しい構造である。セキュリティディレクトリ506は、内部署名されていない既存のパーティションの検証に使用される署名のアレイを含む。セキュリティディレクトリ内の署名は、予備領域に署名するために使用される。
更新ローダ508を保護するために、最初のプログラムローダ502は、本質的にMBRが検証されたのと同じ方法で、パブリックキーで署名されたUL全体のハッシュを使用して更新ローダ508上の署名を検証する。更新ローダ508の検証の別の選択肢は、NKパーティションについて後述するものなど、内部署名によるものであり、例えば更新ローダ508は、1つのカタログファイルを含むことができ、カタログファイルは、UL更新ローダ508内のすべてのファイルを含む。ファイルごとにハッシュが計算され、カタログファイル内のハッシュと照合される。カタログファイル内の署名は、ルートが最初のプログラムローダ502内にある証明書連鎖によって確認される。
NKパーティションを保護するために、NKパーティションは、制御が最初のプログラムローダ502からNKパーティション内のカーネルに転送される前に、最初のプログラムローダ502によって検証される。
上述したように、NKパーティションは、パッケージで構成され、各パッケージのマニフェストファイルは、ファイル名およびハッシュの署名済みリストを含む単一のカタログファイルへのポインタを含んでいる。NKパーティションを保護するために、各マニフェストファイルおよびカタログが列挙される。カタログで指定されたファイルごとにハッシュが計算され、カタログ内のハッシュを確認するために使用される。カタログファイル内の署名は、証明書連鎖によって確認され、署名は、証明書連鎖を支持するPKCS#7署名ブロックであるものとする。ルート証明書は、最初のプログラムローダのルート証明書リスト504になければならない。次いでNKパーティション内のファイルが列挙され、保護プロセスは、ファイルがカタログによってカバーされていることを検証する。署名のうちのいずれも一致していない場合、またはカタログのうちの1つに列挙されていない任意のファイルがある場合、パーティションの署名チェックは失敗し、装置は起動しない。
制御が最初のプログラムローダ502からカーネルに転送されると、システムは、カーネルの制御下で動作している。これ以降は、IMGFSパーティション512を保護するために、信頼の連鎖ベースの保護プロセスは、安全なローダの一部として行われる署名検証、および安全なローダに関連付けられており、システム内のモジュールの大部分を構成するマルチストリームrelmergeモジュール(multi−stream relmerge module)に対応する署名形式の確認も含めて署名検証を行う証拠生成器(evidence generator)に依存する。
装置上で定義される他の任意のパーティションは、無線および他の予備のパーティションを含めて、これらのセキュリティチェックに従う必要がある。より詳細には、テストコード、無線スタックなど、OEM固有のパーティションを有するOEMは、これらのパーティションを署名によって検証する必要がある。予備のセクションの署名は、セキュリティディレクトリ内にあり、PKCS#7署名ブロックであり、最初のプログラムローダのルート証明書リスト504内のルートまで連鎖するものとする。
(結論)
上記の詳細な説明からわかるように、キーイングを使用して最初の画像および/または更新画像へのアクセスを制御する機構が提供される。この機構は、柔軟性があり、インストール、および起動時実施に適用することによって、容易に打ち破ることができない。
本発明は、様々な変更および代替の構成の余地はあるが、そのいくつかの実施形態の例を図に示しており、上記で詳述している。しかし、本発明を開示された特定の形に限定する意図はなく、逆に本発明は、本発明の意図および範囲内に含まれるすべての変更、代替構成、および均等物をカバーするものとする。
本発明を組み込むことができるコンピュータシステムを表す概略ブロック図である。 本発明の一態様による、特定の装置にインストールし、そこで動作するようにキーが付けられたパッケージを表すブロック図である。 本発明の一態様による、その装置に適切なキーに基づいて装置にキー付きのパッケージをインストールするかどうかを決定するロジックを表すフロー図である。 本発明の一態様による、その装置が1つまたは複数のキー付きパッケージを有しているかどうかに基づいて装置を起動するかどうかを決定するロジックを表すフロー図である。 本発明の一態様による信頼の連鎖の概念を表すブロック図である。
符号の説明
122 プロセッサ
124 メモリ
126 タッチ画面付きディスプレイ
128 キーボード
129 マイクロフォン
136 ネットワークSW
138 ネットワーク構成要素
140 電源
144 音声生成器
202 パッケージ
204 証明書アレイ
206 キー(副署名)
212 起動検査器
210 インストール検査器
220 サーバ
230 マニフェスト
230i マニフェスト
234 キー情報ファイル
504 ルート証明書リスト
506 マージ済みセキュリティディレクトリ(Security Directory merged)
508 更新ローダ

Claims (16)

  1. 複数の装置とサーバとを備えるコンピューティング環境において、前記サーバに格納された画像を、前記複数の装置のうち該画像のインストールを許可された装置のクラスに提供することを制御するための方法であって、
    前記複数の装置のうちの特定の装置が前記サーバからパッケージを受信するステップであって、前記パッケージは、前記特定の装置がインストールしようとする画像のデータと、前記画像のプロバイダによって前記画像のインストールが許可されている装置のクラスを識別するクラス識別子に関連付けられた第1の署名とを含み、前記第1の署名は、前記サーバが、前記画像のデータに対して所定のハッシュアルゴリズムを適用して前記画像に対する第1のハッシュを取得し、前記クラス識別子に前記所定のエンコードアルゴリズムを適用して前記クラス識別子に対する第2のハッシュを取得し、前記第1および第2のハッシュの全体に対して署名をすることによって生成されており、前記クラス内の装置は前記クラス識別子を共通に有する、ステップと、
    前記特定の装置内の実施機構が、前記パッケージに含まれる前記画像のデータに前記所定のハッシュアルゴリズムと同じハッシュアルゴリズムを適用して前記画像に対する第3のハッシュを取得し、前記特定の装置が有するクラス識別子に前記所定のアルゴリズムと同じハッシュアルゴリズムを適用して前記クラス識別子に対応する第4のハッシュを取得し、前記第3のハッシュと前記第4のハッシュの全体に対して署名をすることによって、第2の署名を生成するステップと、
    前記特定の装置内の実施機構が、前記第1の署名と前記第2の署名が一致するかどうかを判断するステップであって、前記第1の署名と前記第2の署名が一致するとき、前記特定の装置は、前記画像のプロバイダによって前記画像のインストールが許可されている装置であるステップと、
    前記第1の署名と前記第2の署名が一致すると判断されたとき、前記画像を前記特定の装置のメモリ上にインストールするステップと
    を含むことを特徴とする方法。
  2. 前記受信するステップの前に、前記特定の装置が、前記特定の装置が有する前記クラス識別子と前記特定の装置を識別する識別子とを含む、汎用一意識別子(UUID前記サーバに提供するステップをさらに含むことを特徴とする請求項1に記載の方法。
  3. 前記パッケージは、前記パッケージの内容を説明するマニフェストファイルをさらに含むことを特徴とする請求項に記載の方法。
  4. 前記実施機構は、前記特定の装置のインストーラ実装されることを特徴とする請求項に記載の方法。
  5. 前記特定の装置に前記画像がインストールされたあと、起動プロセス中に、前記実施機構が、前記特定の装置を起動する起動ローダコードの有効性を確認するステップ、および前記起動ローダコードにおいて、前記実施機構を実装している前記インストーラの有効性を確認するステップをさらに含むことを特徴とする請求項に記載の方法。
  6. 前記実施機構は、前記受信したパッケージに、前記第2の署名を生成することにより前記パッケージに対してキー付けすべきことを示すキーイング要求が含まれているかどうかに応じて動作することを特徴とする請求項に記載の方法。
  7. 前記実施機構は、前記キーイング要求が、前記特定の装置にすでにインストールされている画像を含む別のパッケージに含まれているかどうかに応じて動作することを特徴とする請求項に記載の方法。
  8. 前記実施機構は、前記キーイング要求、前記特定の装置にデータをインストールするために処理される別のパッケージに含まれているかどうかに応じて動作することを特徴とする請求項に記載の方法。
  9. 請求項1に記載の方法を実行するプログラムを記録したことを特徴とするコンピュータ可読な記録媒体。
  10. プロセッサとシステムメモリとを備えたコンピューティング装置であって、
    該コンピューティング装置と接続されたサーバから、前記メモリ上にインストールしようとする画像のデータと、前記画像のプロバイダによって前記画像のインストールが許可されているコンピューティング装置で構成される装置のクラスを識別するクラス識別子に関連付けられた第1の署名とを含むパッケージを受信するための手段であって、前記第1の署名は、前記サーバが、前記画像のデータに対して所定のハッシュアルゴリズムを適用して前記画像に対する第1のハッシュを取得し、前記クラス識別子に前記所定のエンコードアルゴリズムを適用して前記クラス識別子に対する第2のハッシュを取得し、前記第1および第2のハッシュの全体に対して署名をすることによって生成されている、手段と、
    前記パッケージに含まれる前記画像のデータに前記所定のハッシュアルゴリズムと同じハッシュアルゴリズムを適用して前記画像に対する第3のハッシュを取得し、該コンピューティング装置が有するクラス識別子に前記所定のアルゴリズムと同じハッシュアルゴリズムを適用して前記クラス識別子に対応する第4のハッシュを取得し、前記第3のハッシュと前記第4のハッシュの全体に対して署名をすることによって、第2の署名を生成し、前記第1の署名と前記第2の署名を比較して一致するかどうかを判断し、一致するとき該コンピューティング装置は前記画像のプロバイダによって前記画像のインストールが許可されているとして、前記画像を前記メモリ上にインストールする実施機構と を備えたことを特徴とするコンピューティング装置
  11. 前記パッケージはさらに、前記パッケージの内容を説明するマニフェストファイルを含むことを特徴とする請求項10に記載のコンピューティング装置
  12. 前記実施機構は、前記第1の署名と前記第2の署名の比較に基づいて前記画像のインストールを防ぐまたは可能にすることによって、前記画像が動作することを防ぐ、または前記画像が動作できるようにするインストール時検査器を含むことを特徴とする請求項10に記載のコンピューティング装置
  13. 前記実施機構は、前記第1の署名と前記第2の署名の比較に基づいて該コンピューティング装置が起動するのを防ぐまたは起動できるようにする起動時検査器を含むことを特徴とする請求項10に記載のコンピューティング装置
  14. 前記実施機構は、前記受信したパッケージに、前記第2の署名を生成することにより前記パッケージに対してキー付けすべきことを示すキーイング要求が含まれているかどうかに応じて動作することを特徴とする請求項10に記載のコンピューティング装置
  15. 前記実施機構は、前記キーイング要求該コンピューティング装置にすでにインストールされている画像を含む別のパッケージに含まれているかどうかに応じて動作することを特徴とする請求項14に記載のコンピューティング装置
  16. 前記実施機構は、前記キーイング要求該コンピューティング装置にデータをインストールするために処理される別のパッケージに含まれているかどうかに応じて動作することを特徴とする請求項14に記載のコンピューティング装置
JP2004358960A 2003-12-16 2004-12-10 特定の装置または装置のクラスにおいてのみソフトウェアの更新のインストールまたは稼動を確実に行えるようにする方法及びシステム Expired - Fee Related JP4647300B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US53012603P 2003-12-16 2003-12-16
US10/837,151 US20050132357A1 (en) 2003-12-16 2004-05-01 Ensuring that a software update may be installed or run only on a specific device or class of devices

Publications (2)

Publication Number Publication Date
JP2005182789A JP2005182789A (ja) 2005-07-07
JP4647300B2 true JP4647300B2 (ja) 2011-03-09

Family

ID=34657345

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004358960A Expired - Fee Related JP4647300B2 (ja) 2003-12-16 2004-12-10 特定の装置または装置のクラスにおいてのみソフトウェアの更新のインストールまたは稼動を確実に行えるようにする方法及びシステム

Country Status (6)

Country Link
US (1) US20050132357A1 (ja)
EP (1) EP1560098B1 (ja)
JP (1) JP4647300B2 (ja)
KR (1) KR101120825B1 (ja)
CN (1) CN1645288B (ja)
AT (1) ATE534963T1 (ja)

Families Citing this family (102)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9134989B2 (en) 2002-01-31 2015-09-15 Qualcomm Incorporated System and method for updating dataset versions resident on a wireless device
US9813514B2 (en) 2002-06-12 2017-11-07 Good Technology Holdings Limited Information repository system including a wireless device and related method
US9092286B2 (en) * 2002-12-20 2015-07-28 Qualcomm Incorporated System to automatically process components on a device
US8626146B2 (en) 2003-10-29 2014-01-07 Qualcomm Incorporated Method, software and apparatus for performing actions on a wireless device using action lists and versioning
US20050138563A1 (en) * 2003-12-18 2005-06-23 International Business Machines Corporation Method and system for providing computer system software images
JP2005316890A (ja) * 2004-04-30 2005-11-10 Sony Corp プログラム、コンピュータ、データ処理方法、通信システムおよびその方法
CN1977244A (zh) * 2004-06-29 2007-06-06 皇家飞利浦电子股份有限公司 安全闪存
US8312431B1 (en) * 2004-09-17 2012-11-13 Oracle America, Inc. System and computer readable medium for verifying access to signed ELF objects
US7519973B2 (en) * 2004-09-29 2009-04-14 Hewlett-Packard Development Company, L.P. Providing unique event notification to enable firmware to request that an operating system perform a unique action
US20060080659A1 (en) * 2004-10-13 2006-04-13 Jp Mobile Operating, L.P. System and method of provisioning software to mobile devices
US7987459B2 (en) 2005-03-16 2011-07-26 Microsoft Corporation Application programming interface for identifying, downloading and installing applicable software updates
US8666900B1 (en) * 2005-03-30 2014-03-04 Intuit Inc. Secure product enablement over channels with narrow bandwidth
US8554686B2 (en) * 2005-06-30 2013-10-08 Advanced Micro Devices, Inc. Anti-hack protection to restrict installation of operating systems and other software
EP1911191B1 (en) * 2005-08-05 2017-12-06 Hewlett-Packard Enterprise Development LP System, method and apparatus for cryptography key management for mobile devices
GB0516443D0 (en) * 2005-08-10 2005-09-14 Symbian Software Ltd Improving the security of operation of a computing device through the use of vendor ids
US7953225B2 (en) * 2005-10-21 2011-05-31 Harris Corporation Mobile wireless communications device with software installation and verification features and related methods
CN100454250C (zh) * 2005-10-25 2009-01-21 北京飞天诚信科技有限公司 信息安全设备固件程序的远程升级方法
US9274774B2 (en) 2005-10-28 2016-03-01 Google Inc. Common installer server
US8261258B1 (en) * 2005-10-28 2012-09-04 Google Inc. Common installer client
US20070112773A1 (en) * 2005-11-14 2007-05-17 John Joyce Method for assuring flash programming integrity
US8051298B1 (en) * 2005-11-29 2011-11-01 Sprint Communications Company L.P. Integrated fingerprinting in configuration audit and management
JP4556857B2 (ja) * 2005-12-07 2010-10-06 セイコーエプソン株式会社 情報配信装置、情報配信装置の制御方法および制御プログラム
US7620392B1 (en) 2006-02-27 2009-11-17 Good Technology, Inc. Method and system for distributing and updating software in wireless devices
US20070220511A1 (en) * 2006-03-15 2007-09-20 Clarke James C Ensuring a stable application debugging environment via a unique hashcode identifier
KR100809295B1 (ko) 2006-04-06 2008-03-04 삼성전자주식회사 소프트웨어 설치를 위한 장치 및 방법
US9098706B1 (en) * 2006-07-31 2015-08-04 Symantec Corporation Installer trust chain validation
US7984516B2 (en) * 2006-08-31 2011-07-19 Silicon Laboratories Inc. Method and apparatus for protection of voice over internet protocol software
US8079027B2 (en) * 2006-09-08 2011-12-13 Via Technologies, Inc. Programming language translation systems and methods
US8239688B2 (en) * 2007-01-07 2012-08-07 Apple Inc. Securely recovering a computing device
US8254568B2 (en) 2007-01-07 2012-08-28 Apple Inc. Secure booting a computing device
US20080195868A1 (en) * 2007-02-12 2008-08-14 Nokia Corporation Rollback-Resistant Code-Signing
RU2438263C2 (ru) 2007-06-19 2011-12-27 Квэлкомм Инкорпорейтед Способы и устройство для синхронизации набора данных в среде беспроводной связи
US8281298B2 (en) * 2007-08-27 2012-10-02 International Business Machines Corporation Evaluating computer driver update compliance
US8566960B2 (en) 2007-11-17 2013-10-22 Uniloc Luxembourg S.A. System and method for adjustable licensing of digital products
US8291402B2 (en) * 2007-11-29 2012-10-16 Red Hat, Inc. Using system fingerprints to accelerate package dependency resolution
KR20090064698A (ko) * 2007-12-17 2009-06-22 한국전자통신연구원 신뢰 플랫폼 모듈을 이용한 drm 방법 및 시스템
US8316343B2 (en) * 2007-12-29 2012-11-20 Amx Llc Self-describing device module and system and computer-readable medium for the production thereof
US7937456B2 (en) * 2008-01-18 2011-05-03 Red Hat, Inc. Configuration profiling for remote clients
US20090259855A1 (en) * 2008-04-15 2009-10-15 Apple Inc. Code Image Personalization For A Computing Device
US8150039B2 (en) 2008-04-15 2012-04-03 Apple Inc. Single security model in booting a computing device
US20100058317A1 (en) * 2008-09-02 2010-03-04 Vasco Data Security, Inc. Method for provisioning trusted software to an electronic device
US8225138B2 (en) * 2009-03-31 2012-07-17 Lenovo (Singapore) Pte. Ltd. High-speed recovery for computing systems
US8423473B2 (en) 2009-06-19 2013-04-16 Uniloc Luxembourg S. A. Systems and methods for game activation
US9633183B2 (en) 2009-06-19 2017-04-25 Uniloc Luxembourg S.A. Modular software protection
US9129097B2 (en) * 2009-06-24 2015-09-08 Uniloc Luxembourg S.A. Systems and methods for auditing software usage using a covert key
CN101631022B (zh) * 2009-08-04 2012-06-27 飞天诚信科技股份有限公司 一种签名方法和系统
US20110113416A1 (en) * 2009-11-09 2011-05-12 Bank Of America Corporation Network-Enhanced Control Of Software Updates Received Via Removable Computer-Readable Medium
US9128799B2 (en) * 2009-11-09 2015-09-08 Bank Of America Corporation Programmatic creation of task sequences from manifests
US9122558B2 (en) * 2009-11-09 2015-09-01 Bank Of America Corporation Software updates using delta patching
US9176898B2 (en) * 2009-11-09 2015-11-03 Bank Of America Corporation Software stack building using logically protected region of computer-readable medium
US8972974B2 (en) * 2009-11-09 2015-03-03 Bank Of America Corporation Multiple invocation points in software build task sequence
US20110113424A1 (en) * 2009-11-09 2011-05-12 Bank Of America Corporation Distribution Of Software Updates
EP2341459A1 (en) * 2010-01-04 2011-07-06 Thomson Licensing Method and device for detecting if a computer file has been copied and method and device for enabling such detection
US20110238572A1 (en) * 2010-03-25 2011-09-29 Bank Of America Corporation Remote Control Of Self-Service Terminal
US9772834B2 (en) 2010-04-27 2017-09-26 Red Hat, Inc. Exportable encoded identifications of networked machines
US9721101B2 (en) * 2013-06-24 2017-08-01 Red Hat, Inc. System wide root of trust chaining via signed applications
US8762931B2 (en) * 2010-05-26 2014-06-24 Red Hat, Inc. Generating an encoded package profile
US8566613B2 (en) * 2010-06-11 2013-10-22 Intel Corporation Multi-owner deployment of firmware images
EP2405377B1 (en) * 2010-07-09 2017-12-27 BlackBerry Limited Securing a component prior to manufacture of a device
US9032186B2 (en) 2010-07-09 2015-05-12 Blackberry Limited Utilization of a microcode interpreter built in to a processor
US9361107B2 (en) 2010-07-09 2016-06-07 Blackberry Limited Microcode-based challenge/response process
US9003400B2 (en) * 2010-11-29 2015-04-07 Red Hat, Inc. Tracking computing systems utilizing software repositories
US8612963B2 (en) * 2010-12-02 2013-12-17 International Business Machines Corporation Guided problem resolution in deploying an application
CN103329093B (zh) 2011-01-19 2017-09-12 国际商业机器公司 用于更新执行环境中的代码的方法和系统
CN103814355B (zh) * 2011-03-15 2017-11-28 爱迪德技术有限公司 使用误差‑校正编码方案在计算环境中生成用于资产集合的标识符的容忍变化方法
US9110678B1 (en) 2011-05-17 2015-08-18 Phoenix Technologies Ltd. Automated BIOS enhancements and upgrades
US8874892B1 (en) 2011-05-26 2014-10-28 Phoenix Technologies Ltd. Assessing BIOS information prior to reversion
US10262309B1 (en) * 2011-05-26 2019-04-16 Phoenix Technologies Ltd. Augmenting a BIOS with new programs
US9110679B1 (en) 2011-06-03 2015-08-18 Phoenix Technologies Ltd. Pre-boot management of drivers and programs
US20130055369A1 (en) * 2011-08-24 2013-02-28 Mcafee, Inc. System and method for day-zero authentication of activex controls
KR101920263B1 (ko) * 2012-01-27 2019-02-08 삼성전자주식회사 디스플레이장치 및 그 제어방법, 업그레이드장치, 디스플레이 시스템
US9612814B2 (en) * 2012-02-02 2017-04-04 Sungard Availability Services, Lp Network topology-aware recovery automation
US9317268B2 (en) 2012-02-02 2016-04-19 Sungard Availability Services Lp Recovery automation in heterogeneous environments
RU2495487C1 (ru) 2012-08-10 2013-10-10 Закрытое акционерное общество "Лаборатория Касперского" Система и способ для определения доверия при обновлении разрешенного программного обеспечения
US10237370B2 (en) 2012-09-22 2019-03-19 Avaya Inc. Co-resident plug-ins of third party software
US9116772B2 (en) 2012-09-22 2015-08-25 Avaya Inc. Dynamic customization of pluggable service by users
US9690559B2 (en) * 2012-09-22 2017-06-27 Avaya Inc. Downloadable pluggable services
US9262150B2 (en) 2012-09-22 2016-02-16 Avaya Inc. Services versioning
RU2526754C2 (ru) 2012-09-28 2014-08-27 Закрытое акционерное общество "Лаборатория Касперского" Система и способ подбора функций управления мобильными устройствами
US9270468B2 (en) * 2013-05-29 2016-02-23 GM Global Technology Operations LLC Methods to improve secure flash programming
US9521125B2 (en) 2014-03-13 2016-12-13 Intel Corporation Pseudonymous remote attestation utilizing a chain-of-trust
US9348997B2 (en) * 2014-03-13 2016-05-24 Intel Corporation Symmetric keying and chain of trust
US9509502B2 (en) * 2014-03-13 2016-11-29 Intel Corporation Symmetric keying and chain of trust
US9147075B1 (en) * 2014-03-20 2015-09-29 Juniper Networks, Inc. Apparatus and method for securely logging boot-tampering actions
CN104038336A (zh) * 2014-06-20 2014-09-10 上海动联信息技术股份有限公司 一种基于3des的数据加密方法
CN107077568B (zh) * 2014-11-17 2020-08-25 英特尔公司 对称密钥和信任链
US10447812B2 (en) 2015-06-05 2019-10-15 Apple Inc. On demand resources
US9740473B2 (en) 2015-08-26 2017-08-22 Bank Of America Corporation Software and associated hardware regression and compatibility testing system
US20180081666A1 (en) * 2016-03-11 2018-03-22 Oleksii Surdu Reliable and Secure Firmware Update for Internet of Things (IoT) Devices
US9923755B2 (en) * 2016-08-01 2018-03-20 Data I/O Corporation Device programming with system generation
US11050605B2 (en) * 2016-08-01 2021-06-29 Data I/O Corporation Device programming with system generation
CN106656502B (zh) * 2016-09-26 2020-09-01 上海兆芯集成电路有限公司 计算机系统及安全执行的方法
DE102016221108A1 (de) * 2016-10-26 2018-04-26 Volkswagen Aktiengesellschaft Verfahren zum Aktualisieren einer Software eines Steuergeräts eines Fahrzeugs
CN106874795B (zh) * 2017-01-16 2020-12-08 北京安云世纪科技有限公司 一种移动终端的防拆机方法、装置及移动终端
US10956615B2 (en) 2017-02-17 2021-03-23 Microsoft Technology Licensing, Llc Securely defining operating system composition without multiple authoring
EP3418887A1 (en) * 2017-06-19 2018-12-26 Clarion Co., Ltd. Electronic device and program updating method
JP7179482B2 (ja) * 2018-04-19 2022-11-29 キヤノン株式会社 情報処理装置、制御方法、およびそのプログラム
US11068598B2 (en) * 2018-11-01 2021-07-20 Dell Products L.P. Chassis internal device security
EP3798886A1 (en) * 2019-09-26 2021-03-31 General Electric Company Devices, systems, and methods for securely initializing an embedded system
CN110619194B (zh) * 2019-09-26 2021-10-01 绿盟科技集团股份有限公司 一种升级包加密、解密方法及装置
US11809850B2 (en) 2021-08-25 2023-11-07 Microsoft Technology Licensing, Llc Generating and distributing customized embedded operating systems
CN114239080B (zh) * 2022-02-22 2022-07-08 麒麟软件有限公司 一种基于数字证书的软件多层签名方法及系统

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000324334A (ja) * 1999-03-10 2000-11-24 Canon Inc 画像処理装置、方法及びシステム、並びに撮像装置、撮像方法、コンピュータ読み取り可能な記憶媒体
JP2002063076A (ja) * 2000-08-21 2002-02-28 Nippon Telegr & Teleph Corp <Ntt> コンテンツ利用制御方法,コンテンツ利用制御装置,コンテンツ利用制御プログラム記憶媒体およびコンテンツ記憶媒体
JP2002189526A (ja) * 2000-12-22 2002-07-05 Nec Corp 配信システム
JP2002524774A (ja) * 1998-09-10 2002-08-06 オ−ディブル・インコ−ポレ−テッド デジタル情報再生デバイスのための複製保護方式
JP2002333927A (ja) * 2001-05-08 2002-11-22 Sony Corp データ配付方法、データ配付方法のプログラム、データ処理方法及び記録媒体

Family Cites Families (72)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4974149A (en) * 1985-08-02 1990-11-27 Wang Laboratories, Inc. Data distribution apparatus and method having a data description including information for specifying a time that a data distribution is to occur
US5303384A (en) * 1990-01-02 1994-04-12 The United States Of America As Represented By The Administrator Of The National Aeronautics And Space Administration High level language-based robotic control system
US5214695A (en) * 1990-07-23 1993-05-25 International Business Machines Corporation Apparatus and method for loading a system reference diskette image from a system partition in a personal computer system
US5421006A (en) * 1992-05-07 1995-05-30 Compaq Computer Corp. Method and apparatus for assessing integrity of computer system software
US5325532A (en) * 1992-09-25 1994-06-28 Compaq Computer Corporation Automatic development of operating system boot image
US6157721A (en) * 1996-08-12 2000-12-05 Intertrust Technologies Corp. Systems and methods using cryptography to protect secure computing environments
US5625693A (en) * 1995-07-07 1997-04-29 Thomson Consumer Electronics, Inc. Apparatus and method for authenticating transmitting applications in an interactive TV system
US5757914A (en) * 1995-10-26 1998-05-26 Sun Microsystems, Inc. System and method for protecting use of dynamically linked executable modules
US5826011A (en) * 1995-12-26 1998-10-20 Rainbow Technologies, Inc. Method of metering and protecting computer software
US5835777A (en) * 1996-03-20 1998-11-10 Hewlett-Packard Company Method of automatically generating a software installation package
EP1025534B1 (en) * 1997-08-20 2011-03-16 Powerquest Corporation Computer partition manipulation during imaging
DE69801320T2 (de) * 1997-10-06 2002-05-29 Powerquest Corp System und verfahren für punkt-zu mehrpunkt bildübertragung zwischen rechnern in einem netzwerk
US6351850B1 (en) * 1997-11-14 2002-02-26 Frank Van Gilluwe Computer operating system installation
WO1999026123A1 (en) * 1997-11-18 1999-05-27 Christopher Benjamin Wakely Improvements relating to software protection systems
US6298443B1 (en) * 1998-04-24 2001-10-02 Dell Usa, L.P. Method and system for supplying a custom software image to a computer system
US6243468B1 (en) * 1998-04-29 2001-06-05 Microsoft Corporation Software anti-piracy system that adapts to hardware upgrades
US7503072B2 (en) * 1998-04-29 2009-03-10 Microsoft Corporation Hardware ID to prevent software piracy
US20040225894A1 (en) * 1998-06-04 2004-11-11 Z4 Technologies, Inc. Hardware based method for digital rights management including self activating/self authentication software
US6381742B2 (en) * 1998-06-19 2002-04-30 Microsoft Corporation Software package management
US6330670B1 (en) * 1998-10-26 2001-12-11 Microsoft Corporation Digital rights management operating system
US6327652B1 (en) * 1998-10-26 2001-12-04 Microsoft Corporation Loading and identifying a digital rights management operating system
US6802006B1 (en) * 1999-01-15 2004-10-05 Macrovision Corporation System and method of verifying the authenticity of dynamically connectable executable images
US6697948B1 (en) * 1999-05-05 2004-02-24 Michael O. Rabin Methods and apparatus for protecting information
JP3852538B2 (ja) * 1999-05-14 2006-11-29 富士通株式会社 コンピュータシステム、コンピュータネットワークシステム、コンピュータ及び記録媒体
US6675382B1 (en) * 1999-06-14 2004-01-06 Sun Microsystems, Inc. Software packaging and distribution system
US6324692B1 (en) * 1999-07-28 2001-11-27 Data General Corporation Upgrade of a program
US6725205B1 (en) * 1999-12-02 2004-04-20 Ulysses Esd, Inc. System and method for secure software installation
WO2001044934A1 (en) * 1999-12-15 2001-06-21 Sun Microsystems, Inc. Preparation of a software configuration using an xml type programming language
US6581159B1 (en) * 1999-12-23 2003-06-17 Intel Corporation Secure method of updating bios by using a simply authenticated external module to further validate new firmware code
US6591376B1 (en) * 2000-03-02 2003-07-08 Hewlett-Packard Development Company, L.P. Method and system for failsafe recovery and upgrade of an embedded operating system
US6871344B2 (en) * 2000-04-24 2005-03-22 Microsoft Corporation Configurations for binding software assemblies to application programs
JP2001331327A (ja) * 2000-05-24 2001-11-30 Matsushita Electric Ind Co Ltd 電子機器
US7140013B2 (en) * 2000-06-01 2006-11-21 Aduva, Inc. Component upgrading with dependency conflict resolution, knowledge based and rules
DE10028500A1 (de) * 2000-06-08 2002-01-03 Deutsche Telekom Ag Verfahren zur Installation von Software in einer Hardware
US7000230B1 (en) * 2000-06-21 2006-02-14 Microsoft Corporation Network-based software extensions
US7117371B1 (en) * 2000-06-28 2006-10-03 Microsoft Corporation Shared names
DE10037397A1 (de) * 2000-08-01 2002-02-14 Daimler Chrysler Ag Verfahren zum Laden von Software
US20040003266A1 (en) * 2000-09-22 2004-01-01 Patchlink Corporation Non-invasive automatic offsite patch fingerprinting and updating system and method
US6832373B2 (en) * 2000-11-17 2004-12-14 Bitfone Corporation System and method for updating and distributing information
US7216090B2 (en) * 2000-11-28 2007-05-08 Navic Systems, Inc. Promotion packaging for transmission groups
JP2003005859A (ja) * 2001-04-16 2003-01-08 Yuichi Sumiya プログラムやデータの管理方法とコンピュータ
US20020157010A1 (en) * 2001-04-24 2002-10-24 International Business Machines Corporation Secure system and method for updating a protected partition of a hard drive
US6912591B2 (en) * 2001-05-02 2005-06-28 Science Application International Corporation System and method for patch enabled data transmissions
US20040015958A1 (en) * 2001-05-15 2004-01-22 Veil Leonard Scott Method and system for conditional installation and execution of services in a secure computing environment
US7155710B2 (en) * 2001-06-08 2006-12-26 Igt Method and apparatus for gaming device software configuration
FI114416B (fi) * 2001-06-15 2004-10-15 Nokia Corp Menetelmä elektroniikkalaitteen varmistamiseksi, varmistusjärjestelmä ja elektroniikkalaite
US8200988B2 (en) * 2001-08-03 2012-06-12 Intel Corporation Firmware security key upgrade algorithm
US20030063896A1 (en) * 2001-09-28 2003-04-03 Gonzalez Tovar Victor Manuel System utility interface for software upgrades and system diagnostics in automotive or portable DVD players
US7237122B2 (en) * 2001-10-19 2007-06-26 Mcafee, Inc. Method and apparatus to facilitate software installation using embedded user credentials
US7272832B2 (en) * 2001-10-25 2007-09-18 Hewlett-Packard Development Company, L.P. Method of protecting user process data in a secure platform inaccessible to the operating system and other tasks on top of the secure platform
US20030182563A1 (en) * 2002-03-22 2003-09-25 Liu James C. Method and apparatus for software license verification
US7194738B2 (en) * 2002-04-09 2007-03-20 Synnex Technology International Corporation Method of creating image files and installing software bundles on target computers
US20030217358A1 (en) * 2002-05-17 2003-11-20 Sun Microsystems, Inc. Method, system, and article of manufacture for firmware downloads
US8549114B2 (en) * 2002-06-12 2013-10-01 Bladelogic, Inc. Method and system for model-based heterogeneous server configuration management
US20040060035A1 (en) * 2002-09-24 2004-03-25 Eric Ustaris Automated method and system for building, deploying and installing software resources across multiple computer systems
US7007049B2 (en) * 2002-11-18 2006-02-28 Innopath Software, Inc. Device memory management during electronic file updating
US7085957B2 (en) * 2002-11-21 2006-08-01 Texas Instruments Incorporated Upgrading of firmware with tolerance to failures
US7478385B2 (en) * 2003-01-17 2009-01-13 National Instruments Corporation Installing software using programmatic component dependency analysis
US7228541B2 (en) * 2003-01-17 2007-06-05 National Instruments Corporation Creation of application system installer
US7356709B2 (en) * 2003-01-31 2008-04-08 Microsoft Corporation Systems and methods for deterring software piracy in a volume license environment
US20060079254A1 (en) * 2003-02-11 2006-04-13 Hogan Timothy J Method and apparatus for updating a control file
US7072807B2 (en) * 2003-03-06 2006-07-04 Microsoft Corporation Architecture for distributed computing system and automated design, deployment, and management of distributed applications
US7577849B2 (en) * 2003-04-02 2009-08-18 Microsoft Corporation Keyed-build system for controlling the distribution of software
US7117304B2 (en) * 2003-06-03 2006-10-03 Sun Microsystems, Inc. System and method for determining a file system layout
EP1654640B1 (en) * 2003-06-04 2018-08-01 Qualcomm Incorporated Network having customizable generators of sofware updates and mobile electronic devices having customizable updating software
US7478381B2 (en) * 2003-12-15 2009-01-13 Microsoft Corporation Managing software updates and a software distribution service
US7549042B2 (en) * 2003-12-16 2009-06-16 Microsoft Corporation Applying custom software image updates to non-volatile storage in a failsafe manner
US7549148B2 (en) * 2003-12-16 2009-06-16 Microsoft Corporation Self-describing software image update components
US7568195B2 (en) * 2003-12-16 2009-07-28 Microsoft Corporation Determining a maximal set of dependent software updates valid for installation
US7614051B2 (en) * 2003-12-16 2009-11-03 Microsoft Corporation Creating file systems within a file in a storage technology-abstracted manner
US7765592B2 (en) * 2004-01-10 2010-07-27 Microsoft Corporation Changed file identification, software conflict resolution and unwanted file removal
US7853609B2 (en) * 2004-03-12 2010-12-14 Microsoft Corporation Update distribution system architecture and method for distributing software

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002524774A (ja) * 1998-09-10 2002-08-06 オ−ディブル・インコ−ポレ−テッド デジタル情報再生デバイスのための複製保護方式
JP2000324334A (ja) * 1999-03-10 2000-11-24 Canon Inc 画像処理装置、方法及びシステム、並びに撮像装置、撮像方法、コンピュータ読み取り可能な記憶媒体
JP2002063076A (ja) * 2000-08-21 2002-02-28 Nippon Telegr & Teleph Corp <Ntt> コンテンツ利用制御方法,コンテンツ利用制御装置,コンテンツ利用制御プログラム記憶媒体およびコンテンツ記憶媒体
JP2002189526A (ja) * 2000-12-22 2002-07-05 Nec Corp 配信システム
JP2002333927A (ja) * 2001-05-08 2002-11-22 Sony Corp データ配付方法、データ配付方法のプログラム、データ処理方法及び記録媒体

Also Published As

Publication number Publication date
EP1560098B1 (en) 2011-11-23
CN1645288B (zh) 2011-05-25
JP2005182789A (ja) 2005-07-07
US20050132357A1 (en) 2005-06-16
CN1645288A (zh) 2005-07-27
KR20050061353A (ko) 2005-06-22
EP1560098A2 (en) 2005-08-03
ATE534963T1 (de) 2011-12-15
EP1560098A3 (en) 2005-08-10
KR101120825B1 (ko) 2012-03-16

Similar Documents

Publication Publication Date Title
JP4647300B2 (ja) 特定の装置または装置のクラスにおいてのみソフトウェアの更新のインストールまたは稼動を確実に行えるようにする方法及びシステム
US10871955B2 (en) System and method for providing firmware data updates
US8560823B1 (en) Trusted modular firmware update using digital certificate
TWI420879B (zh) 限制作業系統及其他軟體之安裝之反駭客保護
EP2011049B1 (en) Selectively unlocking a core root of trust for measurement (crtm)
EP2681689B1 (en) Protecting operating system configuration values
US7917762B2 (en) Secure execution environment by preventing execution of unauthorized boot loaders
KR101190479B1 (ko) 티켓 인증 보안 설치 및 부트
US20140115316A1 (en) Boot loading of secure operating system from external device
US8984296B1 (en) Device driver self authentication method and system
EP3163489B1 (en) Token-based control of software installation and operation
US11106798B2 (en) Automatically replacing versions of a key database for secure boots
US20170255775A1 (en) Software verification systems with multiple verification paths
EP3639175A1 (en) Offline activation for application(s) installed on a computing device
JP6846457B2 (ja) 自動検証方法及びシステム
CN111066016A (zh) 应用证书
US10956615B2 (en) Securely defining operating system composition without multiple authoring
US20040003265A1 (en) Secure method for BIOS flash data update
US20070162955A1 (en) Mechanism to support rights management in a pre-operating system environment
US20060253617A1 (en) Driver upgrade tools
US11397815B2 (en) Secure data protection
RU2357287C2 (ru) Безопасная идентификация исполняемого файла для определяющего доверие логического объекта
EP3176723B1 (en) Computer system and operating method therefor
CN108595981B (zh) 加密安卓系统的方法
CN112346712B (zh) 系统客制化方法、装置及计算机可读存储介质

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20071114

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100813

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20101115

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

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20101208

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20131217

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees