JP4027738B2 - デジタルデバイスのセキュリティを守るための、安全なブートローダー - Google Patents
デジタルデバイスのセキュリティを守るための、安全なブートローダー Download PDFInfo
- Publication number
- JP4027738B2 JP4027738B2 JP2002198961A JP2002198961A JP4027738B2 JP 4027738 B2 JP4027738 B2 JP 4027738B2 JP 2002198961 A JP2002198961 A JP 2002198961A JP 2002198961 A JP2002198961 A JP 2002198961A JP 4027738 B2 JP4027738 B2 JP 4027738B2
- Authority
- JP
- Japan
- Prior art keywords
- digital device
- memory
- program file
- boot loader
- read
- 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 - Lifetime
Links
- 230000015654 memory Effects 0.000 claims description 74
- 238000000034 method Methods 0.000 claims description 23
- 230000008569 process Effects 0.000 claims description 10
- 238000004519 manufacturing process Methods 0.000 claims description 9
- 238000003860 storage Methods 0.000 description 20
- 230000006870 function Effects 0.000 description 15
- 238000012360 testing method Methods 0.000 description 13
- 238000013507 mapping Methods 0.000 description 8
- 230000008859 change Effects 0.000 description 5
- 230000008901 benefit Effects 0.000 description 4
- 238000010586 diagram Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000005192 partition Methods 0.000 description 2
- 238000012356 Product development Methods 0.000 description 1
- 241001441724 Tetraodontidae Species 0.000 description 1
- 230000004913 activation Effects 0.000 description 1
- 238000007792 addition Methods 0.000 description 1
- 230000008878 coupling Effects 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
- 235000019800 disodium phosphate Nutrition 0.000 description 1
- 238000009826 distribution Methods 0.000 description 1
- 230000003203 everyday effect Effects 0.000 description 1
- 238000011990 functional testing Methods 0.000 description 1
- 230000036541 health Effects 0.000 description 1
- 239000007788 liquid Substances 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- 238000003908 quality control method Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 238000000638 solvent extraction Methods 0.000 description 1
- 230000007480 spreading Effects 0.000 description 1
- 238000003892 spreading Methods 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/57—Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
- G06F21/575—Secure boot
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/10—Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/70—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
- G06F21/71—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
Description
【発明の属する技術分野】
本発明は、一般的にはデジタルデバイスに関し、より詳細には、デジタルデバイスのパワーアップシーケンス中にデジタルデバイスおよびデバイスのコンテントのためのセキュリティを提供することに関する。
【0002】
【従来の技術】
インターネット(情報スーパーハイウェイ)は、莫大な量の情報を高速で、かつ容易に共有する方法を全世界に提供している。不幸なことに、広まりつつある情報のうちのかなりのパーセントが情報の所有者の同意のないものである。明らかな目的が、ソフトウェアプログラムおよび著作権のあるマテリアル、例えば音楽、映画、書籍および芸術の不法な交換にある多数のウェブサイト、ユースネットニュースグループ、および分散型サーバーネットワークがインターネットに存在している。
【0003】
著作権のある音楽の不法な配信が著しく横行しており、非常に普及している分散型サーバーネットワークのいくつかは毎日何百万もの圧縮された音楽ファイルを交換している。著作権所有者の将来的に失われる収入を減らし、かつ所有者の権利を保つ努力の一環として、180を越える会社および組織から成るフォーラムが、安全デジタル音楽イニシアティブ(SDMI)として知られる一組のガイドラインを作成した。
【0004】
SDMIはデジタルオーディオのセキュリティに関する多くのガイドラインを規定しているが、主なセキュリティのファクターは2つある。一方は、コンテントファイルのセキュリティであり、他方は、デジタルデバイス内部にあるソフトウェアおよびシステムのセキュリティである。コンテントファイルのセキュリティを守ることは比較的簡単であり、通常、ある種の暗号化アルゴリズムおよび暗号化/暗号解読鍵の使用を必要とする。リキッドオーディオおよびインタートラストのような会社では、外部メディアに記憶されたコンテントファイルを保護するためのデジタル権利管理(DRM)ソフトウェアを開発した。
【0005】
セキュリティが守られたコンテントファイルをプレイするデジタルデバイスに対するセキュリティを守ることはより困難である。その理由は、このようにするには、本来的にセキュリティの守られていないプログラマブルプロセッサで実行されるソフトウェアを保護しなければならないからである。ユーザーはデジタルデバイスを物理的に所有しており、他方、メーカーとコンテントプロバイダはデジタルデバイスを物理的に所有していないので、デジタルデバイスのセキュリティを守ることは困難である。ユーザーはテスト装置、ロジックアナライザなどを使用することによりソフトウェアを通して、またはデジタルデバイス内のメモリチップその他のコンポーネントを置き換えることにより物理手段を介して、デジタルデバイスのハッキングを試みることができる。
【0006】
ユーザーは、デジタルデバイスを物理的に所有しているので、メーカーはユーザーがデジタルデバイス内部の回路を物理的に改造しようとすることを困難にすること以外に、ハードウェアを物理的に保護することはできない。回路を保護するための極端な形態は不正改造を検出できる回路を設け、不正改造が行われると、自動的にデバイスが自動的に破壊されるようにすることである。デジタルデバイスは高価であるので、ハッキングするとデジタルデバイスが破壊されるようにすれば、割りの会わないことになり、ほとんどの普通のハッカーはハッキングを思い止どまるようになる。
【0007】
デジタルデバイスのソフトウェア部分を完全に保護するためには、メーカーはデジタルデバイスのすべての作動上の特徴に対してセキュリティを提供しなければならない。デジタルデバイスをまずターンオンし、デジタルデバイスが実行するごく最初の動作から電源をオフにする直前の最終動作まで、ソフトウェアを保護する必要がある。デジタルデバイスのソフトウェア内にハッキングするための最良の時間は、恐らくはパワーオンシーケンス中である。このシーケンスは一般にブートアップシーケンスとも称されている。この理由は、パワーオンのシーケンス中にデジタルデバイスの制御装置の周辺でいくつかの異なるプログラムが通過するからである。ハッカーがデジタルデバイスに自分が設計したプログラムをロードアップするようにさせることができれば、ハッカーはデジタルデバイスを完全に制御できることになる。
【0008】
これまで、デジタルデバイスのためのパワーオン時のセキュリティを提供せんとした発明は多数ある。一部の発明は、付属セキュリティプロセッサまたはチップを使用しなければならない。この解決案は複雑で高価なデバイス、例えばコンピュータに対しては有効であるが、ぎりぎりの少ない利益しかもたらさないようなデジタルデバイス、例えばオーディオプレイヤー、アクティブ画像フレームおよびその他のデジタル装置に対して付属セキュリティプロセッサを使用することは、単に有効な解決案とは言えない。米国特許第5,421,006号および同第5,379,342号はオペレーティングシステムに制御を移す前にオペレーティングシステムのブートブロックの証明を使用するセキュリティの守られたブートモデルを提供している。
【0009】
米国特許第6,185,678号は、検証プログラムとオペレーティングシステムを記憶するメモリの双方のセキュリティを守る安全なモデルを提供している。この米国特許は時間と共に終了し、パワーオンシーケンス内のステップの有効性を短い時間スロットに限定する暗号証明を使用している。したがって、この米国特許第6,185,678号に示されているセキュリティモデルは不必要なほど複雑となっている。
【0010】
米国特許第5,937,063号は、コマンドおよび命令の暗号化および暗号解読を使用する、改造可能なメモリ、例えばフラッシュメモリおよび消去可能なプログラマブルリードオンリーメモリに埋め込まれた、ブートアップファームウェアの不正な交換を防止するためのシステムを示している。この米国特許は自らの内蔵暗号化ユニットと共にセキュリティが守られたブートデバイスを使用している。
【0011】
【発明が解決しようとする課題】
セキュリティを守るために、保護されたメモリスペースまたはセキュリティコプロセッサ内の実行プログラムを使用するこれら解決案には、システムの全体のハードウェア条件に対して大きな追加をしなければならないという重大な欠点がある。このように、ハードウェアの条件が増す結果、システムのダイの面積は広くなり、従って、コストも高くなる。
【0012】
従って、デジタルデバイスおよび保護されたコンテントのための簡単かつ安全なパワーオンシーケンスを提供するための方法および装置に対するニーズが生じている。
【0013】
【課題を解決するための手段】
1つの特徴によれば、本発明はデジタルデバイスのためのオペレーティングシステムまたはユーザーインターフェースプログラムを含む暗号化されたプログラムファイルの正当性を証明することによって、初期のパワーアップシーケンスからデジタルデバイスのセキュリティを守るための方法を提供するものである。この方法は、最初の暗号化/暗号解読鍵を計算する工程と、プログラムファイルに関連付けされた第2の暗号化/暗号解読鍵を読み出す工程と、暗号化されたオブジェクトファイルを読み出す工程と、暗号化されたオブジェクトファイルを認証する工程と、暗号化されたオブジェクトファイルの解読をする工程と、解読されたオブジェクトファイルをロードする工程と、オブジェクトファイルが認証された場合に解読されたオブジェクトファイルを実行する工程を含む。
【0014】
別の特徴によれば、本発明はバインドされたプログラムファイルに対し、バインドされていないプログラムファイルを安全に再オーサリングするための方法を提供するものである。この方法は、第1鍵および第2鍵を得る工程と、バインドされていないオブジェクトファイルを読み出す工程と、バインドされていないオブジェクトファイルを認証する工程と、バインドされていないオブジェクトファイルを解読する工程と、前記解読されたオブジェクトファイルを再び暗号化する工程と、再び暗号化されたオブジェクトファイルを認証する工程と、バインドされていないオブジェクトファイルが認証された場合、再暗号化されたオブジェクトファイルをセーブする工程とを備える。
【0015】
本発明は特別なセキュリティプロセッサまたは複雑なセキュリティアルゴリズムを設けなくても、不正なプログラムがデジタルデバイスの制御を行うことを防止することにより、保護されたコンテントを含むファイルのセキュリティを保証できるという主な利点を有する。
【0016】
本発明の別の利点は保護されていない、または保護されているコンテントファイルをデジタルデバイスが処理できる充分なレベルのフレキシビリティを提供でき、コンテントファイルが保護されている場合には本発明は単一ユーザーまたはあるユーザーグループ専用のコンテントファイルをデジタルデバイスが処理できるようにするものである。
【0017】
本発明の更に別の利点は、ダイの面積の全体の純増加量が少ないことである。本発明はセキュリティを提供するのにごくわずかのハードウェアだけで済む状態で、すなわちシステムのコストに対する影響が最小の状態で、ハードウェアの条件を無視できる量しか大きくしない。
添付図面を参照し、次の説明を検討すれば、本発明の上記特徴はより明瞭に理解できよう。
【0018】
【発明の実施の形態】
以下、種々の実施例の製造および使用について詳細に説明する。しかしながら、本発明は広範な種々の特定の分野で具現化できる適用可能な発明の概念を多数提供するものであると理解しなければならない。本明細書に説明する特定の実施例は、発明を製造し、使用する特定の方法を単に説明するものであり、発明の範囲を限定するものではない。
【0019】
デジタルデバイスは、デバイスのコンテントにアクセスしたがっているハッカーからの攻撃を受けやすい。これらデバイスは特にパワーアップ(ブートアップ)シーケンス中に脆弱である。多くのデジタルデバイスでは、パワーアップシーケンス中にパワーアップシーケンスを中断したり、または予定するプログラムと異なるプログラムをデジタルデバイスにロードできるようになっている場合、デジタルデバイスはハッカーによる操作に対してオープンな状態となっている。
【0020】
多くのメーカーは製造プロセス中にデバイスのテストを容易にするための別のテストハードウェアも有している。このような同じテスト用ハードウェアは、内蔵されたセキュリティ対策に対抗するのに利用できる攻撃の別の侵入路となる。更に、デジタルデバイスはマイクロプロセッサまたはデジタル信号プロセッサ(DSP)を含むことが多く、これらデジタルデバイスは製造中のマイクロプロセッサまたはDSPの機能の正常性の判断を容易にするため、マイクロプロセッサまたはDSPメーカーによって追加されるスキャンテストハードウェアにより、これらプロセッサを介した攻撃を受けやすくなっている。
【0021】
本発明の説明で参照する例はデジタルデバイスであり、このことはハンドヘルドであり、単一機能を有する比較的簡単な内蔵型デバイスを意味するが、本発明の用途はこれら簡単なデバイスだけに限定されるものでない。この説明は、保護された音楽ファイルも主とするものであるが、本発明は保護されるコンテントを有する任意のファイルにも適用可能である。本発明はパワーアップシーケンスを経過し、ユーザーに情報を提供するために公衆の場所に設置される、基本的には内蔵コンピュータである情報キオスクまたはメモリ内にあるコンテントのためのセキュリティを必要とするコンピュータを含む、任意のデジタルデバイスで用途を有する。
【0022】
セキュリティ問題の中心はデジタルデバイス自身であり、このケースではコード化されたコンテントファイル(暗号化されているか、または暗号化されていない)を入力として受け取ることができ、デコードされたコンテントをデジタルデバイスのユーザーに提供するものである。コード化されたコンテントファイルはデジタルデバイス内部のメモリに記憶してもよいし、デジタルデバイス内に挿入されるメモリカードに記憶してもよい。ユーザーは通常、小売場所を通してデジタルデバイスを購入し、このデバイスを所有するので、コンテントプロバイダはどのユーザーがデバイスに何をするかに関して管理できない。すなわちユーザーは意図する用途のためにデバイスを使用することもできるし、またはコンテントファイルにアクセスするためにデバイスにハッキングすることもできる。
【0023】
次に、本発明の好ましい実施例に係わるデジタルデバイス110を示すブロック図である図1を参照する。図1に示されたこのデジタルデバイス110は、暗号化されたオーディオファイルおよび暗号化されていないオーディオファイルを演奏するように製造されたオーディオプレイヤーである。しかしながら、これまで述べたように、このオーディオファイルは図示した目的にしか使用されないものであるが、本発明はオーディオプレイヤーのみに限定されると見なしてはならない。このデジタルデバイス110はコネクタ125を介してパソコン120に結合されている。本発明の好ましい実施例によれば、パソコン120とデジタルデバイス110との間のコネクタ125は、ユニバーサルシリアルバス(USB)である。しかしながら、データを搬送できる、パラレルデータコネクタ、RS−232シリアルコネクタ、ファイアーワイヤーコネクタ、無線(RF)リンク、赤外線リンク、または有線もしくは無線の、他の任意のタイプのコネクタもUSBコネクタの代替物として使用できる。
【0024】
パソコン120はコネクタ125を通してデジタルデバイス110にコンテントを提供する。このコンテントは音楽ファイル、ブックオンテープファイル、ニュース、ビデオ、アートなどでよい。コンテントの所有者およびこの所有者とユーザーとの間の契約に応じて、コンテントの一部を保護したり、一部を保護しないようにすることもできる。本発明の別の実施例では、パソコン120は、インターネットへのダイレクトネトワークコネクション、オーディオ装置の一部、携帯電話、パーソナルデジタルアシスタン、デジタルデバイスにコンテントを提供できる他の任意のタイプのデバイスに置換される。
【0025】
デジタルデバイス110の内部にはデジタル信号プロセッサ(DSP)130が設けられており、このプロセッサはデジタルデバイス110の機能を制御する汎用マイクロプロセッサとして機能する。DSP130は演奏目的のためにコンテントファイルのデコードも行う。DSP130は必要なデータの暗号化および暗号解読も行う。DSP130はリードオンリーメモリを含む内部メモリも有する。このリードオンリーメモリは変化しないプログラムおよび値を記憶するためのものである。本発明の好ましい実施例によれば、リードオンリーメモリは内部メモリに記憶されているプログラムおよび値を変えることができる再プログラム可能なリードオンリーメモリである。本発明の好ましい実施例によれば、リードオンリーメモリには2つのタイプがある。すなわちDSP130で実行されるプログラムによりアクセス可能な通常のリードオンリーメモリと、セキュリティが守られたリードオンリーメモリの2つのタイプがある。
【0026】
セキュリティが守られたリードオンリーメモリは機能が通常のリードオンリーメモリに類似しているが、正当なプログラムしか読み出しのアクセスを行うことができない。セキュリティが守られたリードオンリーメモリはリードオンリーメモリおよびDSP130の一部であり、不正なプログラムのアドレス指定を許可せず、メモリスペースの特定部分、すなわちセキュリティの守られたリードオンリーメモリは通常のリードオンリーメモリとは別個のリードオンリーメモリとすることができる。例えば、DSP130で実行される正当性の無いユーザープログラムはセキュリティが守られているリードオンリーメモリのコンテントを読み出すことはできないが、通常のリードオンリーメモリのコンテントは読み出すことができる。
【0027】
SDMIに記載されているセキュリティのガイドラインの1つは、コンテントファイルと単一のユーザーまたはデジタルデバイスとをバインドできることを求めている。コンテントファイルを単一のユーザーまたはデジタルデバイスにバインドすることにより、コンテントファイルに異なるデジタルデバイスでのアクセスが防止される。これを行う1つの方法は、各デジタルデバイスを一義的に識別し、コンテントファイルとデジタルデバイスとをバインドするのに、一義的な識別子を使用することである。
【0028】
リードオンリーメモリ(ROM)内のロケーション、またはDSP130の内部の専用記憶ロケーション内には2つの記憶ロケーションがある。第1の記憶ロケーションはデジタルデバイスのデータを識別するのに使用されるメーカー識別子を記憶し、そのメーカーが製造したどのデジタルデバイスも同じメーカー識別子を有することになる。第2の記憶ロケーションが各DSP130に対して一義的なデバイス識別子を記憶する。このデバイス識別子は単一デジタルデバイスと使用するための暗号化されたファイルとをバインドするために使用できる。この理由は、同じデバイス識別子を有する別のDSPは存在しないからである。
【0029】
上記2つの識別子はROMに記憶され、ここではこれら識別子は変更できないが、DSP130で実行されるプログラムはこれら識別子を読み出すことができる。DSP130で実行が認められているプログラムしか、識別子の読み出しの実行が認められないので、このことはセキュリティの問題を生じない。これら識別子はDSP130内にあるので、識別子を物理的に変更しようとする試みの結果、DSP130が破壊されやすい。本発明の別の好ましい実施例では、これら2つの識別子はセキュリティが守られたROMに記憶され、DSP130で実行されるプログラムのサブセットしか、これら2つの識別子を読み出すことができない。
【0030】
本発明の好ましい実施例によれば、デジタルデバイス110はDSP130を含む。しかしながら、デジタルデバイス110はDSP130の代わりに(またはDSP130に追加して)汎用マイクロプロセッサまたはマイクロコントローラを含むことができ、このように装備されたデジタルデバイスは等価的に機能する。
【0031】
デジタルデバイス110の内部にはコンテントファイルを記憶するためのある形態の記憶メディア140、デバイスドライバー、暗号化されたデバイスコード、暗号化鍵、有効化鍵などの情報およびプログラムを記憶するためのメモリ150、スピーカー160およびヘッドフォンジャック165も設けられている。
【0032】
本発明の好ましい実施例によれば、メモリ150は電気的に消去可能なプログラマブルリードオンリーメモリ(EEPROM)である。しかしながら、再プログラムでき、不揮発性である、すなわち電源をオフにしてもメモリのコンテントが残る別のタイプのメモリも使用できる。適当な別のメモリの例として、消去可能なプログラマブルリードオンリーメモリ(EPROM)、フラッシュメモリ、不揮発性ランダムアクセスメモリ(NVRAM)およびプログラマブルリードオンリーメモリ(PROM)が挙げられる。DSP130は一時記憶のためにある種のスクラッチランダムアクセスメモリ(スクラッチRAM)を有することもできる。
【0033】
記憶媒体140はコンテントファイルのための記憶ロケーションである。記憶メディア140はデジタルデバイス110内に永久的に固定してもよいし、また、スロットまたはコネクタを通して取り外したり、デジタルデバイス60に取り付けてもよい。本発明の好ましい実施例によれば、メディア140の好ましい形態はコンパクトフラッシュ(CF(CR))であるが、マルチメディアカード(MMC)、NAND FLASH、安全デジタル(SD)メモリカードまたはメモリスティック状のメディアを使用する場合でも、本発明は同じように作動できる。本発明の別の好ましい実施例によれば、別の形態の記憶装置も使用できる。これら記憶装置としては、フロッピーディスクドライブ(R)、ハードディスクドライブ、(ホストポートインターフェース(HPI)を介してデジタルデバイスに接続されるような)別のプロセッサ、およびネットワークをベースとする記憶装置(例えばUSB接続される大規模記憶装置またはTCP/IPをベースとする記憶装置)が挙げられる。
【0034】
次に、図2を参照する。このブロック図はデジタルデバイス110のための代表的なパワーオンシーケンス200を示す。ユーザーが電源ボタン(またはデジタルデバイスによってデジタルデバイス上のボタン)を押すと、パワーオンシーケンス200がスタートする。このデジタルデバイスをパワーオンするのに多数の方法が可能である。デジタルデバイス110に電力が供給されると、デジタルデバイスはパワーオンセルフテスト(220)と一般に称されているテストを実行する。このテストでは、DSP130内のインテリジェントコンポーネントが自らの、かつその他の内部コンポーネントのチェックを実行し、正しく作動するかどうかを確認する。
【0035】
デジタルデバイス110内のコンポーネントがパワーオンセルフテストをパスした場合、DSP130はROM(230)内に記憶されているブートローダーソフトウェアを実行することによってブートプロセスをスタートする。このブートローダーソフトウェアは一般にDSPのリードオンリーメモリ内に常駐しており、コード、例えばオペレーティングシステムまたはユーザーインターフェースソフトウェアを外部ソース(EEPROM150または外部ROMまたはRAM)からDSPのプログラムメモリ(240)へ転送する。このブートローダーは通常同じ半導体チップ、例えばDSP上にあるDSPのリードオンリーメモリに常駐しているので、攻撃に対して比較的耐性がある。その理由は、オンチップメモリのコンテントを変えようと試みると、一般にDSP130が破壊されるからである。一旦、ブートローダーがオペレーティングシステムのソフトウェアまたはユーザーインターフェースソフトウェアのローディングを終了すると、このブートローダーは動作を完了し、実行制御を新しくロードされたソフトウェアに向ける。
【0036】
ハッカーがオペレーティングシステムまたはユーザーインターフェースを自分の構造の1つに置換できる場合、ハッカーは自分の望む方法でメーカーが意図する態様とは一致しない可能性が高い態様でデジタルデバイス110を作動させ得るので、パワーオンシーケンス200は攻撃を受けやすい。通常、このような攻撃はオペレーティングシステムまたはユーザーインターフェースソフトウェアがEEPROM150または外部ROMまたはRAMに記憶されており、ハッカーはこのようなEEPROM150または外部ROMもしくはRAMを異なる部品に置換させるだけでよいので、このような行為は比較的容易である。デジタルデバイス110が不正なオペレーティングシステムまたはユーザーインターフェースをロードしたり、実行することを防止するためにセキュリティが守られたブートローダーを使用できる。
【0037】
通常のブートローダーはソフトウェアの正当性を確認するためのチェックを行うことなく実行するように命令されている任意のソフトウェアをロードし、実行する。他方、セキュリティが守られているブートローダーは暗号化され、正当化されているソフトウェアしか、ロードしたり実行したりしない。ソフトウェアが暗号化され、正当化されていない場合、セキュリティが守られたブートローダーはそのソフトウェアをロードも実行もせず、かつデジタルデバイスの制御をソフトウェアにパスしない。セキュリティの保護されたブートローダーはデジタルデバイス110およびそのコンテントのセキュリティを危うくし得るDSP130への不正なコードまたは改造されたコードのロードおよび実行を防止する。不正なコードまたは対応されたコードは誰に対してもデジタルデバイスへのコードのダウンロードを許可できる。
【0038】
図3は、暗号化されたソフトウェアをロードし、実行するためのセキュリティが守られたブートローダーによって使用されるアルゴリズムのフローチャートを示す。この制御の保護されたブートローダーはDSP130からメーカーの識別子を読み出すことによってスタートする。メーカーの識別子はDSP130の製造プロセス中にデジタルデバイス110のメーカーに割り当てられた一義的な識別子である。セキュリティの保護されたブートローダーはDSP130からデバイス識別子も読み出す。しかしながら、デバイス識別子を必要としない、または利用できないような状況がある。かかる状況のひとつとして、デジタルデバイスのためのソフトウェアの開発時の製品開発中の状況が挙げられる。かかる状況では、ソフトウェアの単一のデジタルデバイスにバインドさせることは効率的ではないので、そのソフトウェアはメーカーの識別子を通して、そのメーカーにしかバインドできない。
【0039】
メーカー識別子および恐らくはデバイス識別子を用い、ブートローダーは暗号解読鍵(ブロック320)を発生する。双方の鍵を利用できる場合、ブートローダーはメーカー識別子とデバイス識別子とを使用する。暗号解読鍵の発生時に双方の識別子を使用する場合、この鍵はバインド鍵と称される。メーカー識別子しか使用しない場合、この鍵はバインドされていない鍵である。本発明の好ましい実施例によれば、これら鍵を発生するのにセキュリティが守られたハッシング関数を使用する。使用されるハッシング関数とは、SHA−1として知られる一般に公知のセキュリティが守られたハッシング関数である。SHA−1は任意の長さの入力を取り込み、160ビットの結果を発生する。実際の鍵は128ビット長の長さであり、SHA−1のハッシング関数を160ビット長の結果のうちの最初の128の連続するビットにすぎない。160ビットのSHA−1の結果のうちの任意の128ビット長の部分の結果、等価的に安全な符号化システムが得られるが、最初の128の連続するビットを選択するほうがより簡単であると理解すべきである。
【0040】
このバインド鍵は次のように示される演算によって発生される。
【0041】
【外1】
【0042】
ここで、「│」は連接演算子であり、「]128」は結果の最初の連続する128のビットしか使用しないことを意味する。バインドされない鍵は次のように示される演算によって発生される。
【0043】
【外2】
【0044】
鍵(バインド鍵、またはバインドされていない鍵のいずれか)を発生した後に、セキュリティが守られたブートローダーはファイル鍵を読み出す。このファイル鍵は暗号化されたファイルと共に記憶された暗号化された暗号/暗号解読鍵である。暗号化されたどのファイルも、ファイル鍵と関連付けされている。この場合、ファイル鍵はセキュリティが守られたブートローダーがロードすることを望むオペレーティングシステムまたはユーザーインターフェースプログラムを含む暗号化されたプログラムファイルと関連付けされている。セキュリティが守られたブートローダーは次に暗号化されたファイル鍵の暗号解読をしなければならない(ブロック330)。本発明の好ましい実施例によれば、使用される暗号化および暗号解読アルゴリズムは周知のSAFER SK−128アルゴリズムである。このSAFER SK−128は対称的な暗号化アルゴリズムであり、このことは、暗号化および暗号解読の双方に1つの鍵を使用することを意味する。他の対称的暗号化/暗号解読アルゴリズムを数種リストアップすれば、例えばDES、AES、ブローフィッシュまたはRC5も使用できる。
【0045】
ファイル鍵の暗号解読は次のように示すことができる。
【0046】
【外3】
【0047】
ここで、file_keyは暗号化されたファイル鍵であり、この鍵はブロック320で計算されるバインド鍵またはバインドされていない鍵のいずれかであり、暗号化されたファイル鍵を解読するための暗号解読鍵として使用される。
【0048】
セキュリティが守られたブートローダーは、手元の解読された暗号化/暗号解読鍵により解読されたプログラムファイルの有効性を認証し始める。本発明の好ましい実施例によれば、セキュリティが守られたブートローダーはハッシュトメッセージ認証コード(HMAC)として知られる関数を使用する。この関数は暗号化されたプログラムファイルを認証するのに、下記のように示される式を有する。
【0049】
【外4】
【0050】
ここで、XORはビット毎の排他的OR関数であり、outerpadは16進値0×5cが64回繰り返されたシーケンスであり、innerpadは16進値0×36が64回繰り返されたシーケンスである。
【0051】
本発明の好ましい実施例によれば、一度に1ブロック毎暗号化されたファイルが読み出され(ブロック340)、新しく読み出されたブロックを使ってHMAC値が更新され(ブロック345)、ブロックの暗号解読が行われ、記憶される(ブロック350)。すべての暗号化されたファイルが読み出され、暗号解読されるまでこのような操作が繰り返される。本発明の好ましい実施例によれば、暗号化されたファイルブロックは暗号解読後、メモリにロードされる。これとは異なり、プログラムメモリではなく、メモリの別の部分に暗号解読されたファイルブロックを記憶してもよい。本発明の別の好ましい実施例によれば、暗号化された全ファイルを読み出し、1回の演算で暗号解読されると、容易に理解できよう。
【0052】
全ファイルが解読され、記憶された後に、セキュリティが守られたブートローダーは暗号化されたファイルと共に記憶されていたHMAC値を読み出す。このセキュリティが守られたブートローダーは読み出したHMAC値とこれが計算したHMAC値とを比較する。これら2つのHMAC値が同一であれば、暗号化されたファイルは認証されたものであり、ブートローダーはプログラムを実行できる(ブロック365)。2つのHMAC値が一致しなければ、ブートローダーは実行を終了する。本発明の別の好ましい実施例によれば、ブートローダーは実行を終了するのに先立ち、エラーメッセージを発生する。
【0053】
記憶されたHMAC値と計算されたHMAC値とは、メーカー識別子あるいはメーカー識別子とデバイス識別子の双方を使って解読されたファイル鍵を使用して発生されるので、ハッキングするハッカーはほぼ確実に、自分の交換用のプログラムに対し、異なるHMAC値を発生することができなくなり、この結果、2つのHMAC値を比較しても同じとなる。従って、2つのHMAC値が一致する場合、暗号化されたプログラムファイルはデジタルデバイス用のプログラムファイルになるはずである。
【0054】
デジタルデバイス110の製造プロセス中には、ここのデジタルデバイスのデバイス識別子を使ってプログラムファイルを暗号化し、これをデジタルデバイスのメモリ150内に記憶することは極めて非効率的となる。この非効率性は主にデバイス識別子を得て、プログラムファイルを暗号化することが困難であることに起因する。そのようにするには、アセンブリステーションごとに1台のコンピュータが必要となり、製造ラインを不必要にスローダウンさせることになる。全体の製造速度を低下するのではなく、メーカー識別子を使って1つの包括的な暗号化されたプログラムファイルを発生し、各デジタルデバイス110にこれを記憶する。包括的な暗号化プログラムファイルはメーカー識別子を使って暗号化され、そのメーカーによって製造されたすべてのデジタルデバイスで同じプログラムファイルが実行される。次に、最初のパワーアップ中にセキュリティが守られたブートローダーは、暗号化されたプログラムファイルを解読し、デバイス識別子とメーカー識別子の双方を使ってファイルを再び暗号化し、プログラムファイルをここのデジタルデバイスにロックする。この初期のパワーアップは製造プロセスの機能テストおよび品質管理段階の間で行うことができ、製造プロセスに対して時間を追加するものではない。
【0055】
次に、再オーサリングモードとしても知られる、プログラムファイルを個々のデジタルデバイスにロックするための、セキュリティが守られたブートローダーによって使用されるアルゴリズムを示すフローチャートである図4を参照する。再オーサリングに使用される、セキュリティが守られたブートローダーは、通常のパワーアップシーケンス中に暗号化されたプログラムファイルをロードするために使用される、同じセキュリティが守られたブートローダーでもよいし、また、特別な1回使用のセキュリティが守られたブートローダーでもよい。本発明の好ましい実施例によれば、再オーサリングに使用されるセキュリティが守られたブートローダーは、通常のパワーアップシーケンス中に使用された同じセキュリティが守られたブートローダーである。どのモードでオペレートすべきかをセキュリティが守られたブートローダーに知らせるために、ブートローダーモードフラグが使用される。
【0056】
セキュリティが守られたブートローダーは記憶ロケーションからメーカー識別子を読み出し、これを使ってバインドされていない鍵を発生する。このバインドされていない鍵はメーカー識別子を使って暗号化キーを使って暗号化されたプログラムファイルを解読するのに使用される。バインドされていない鍵は次の演算を使用して作成される。
【0057】
【外5】
【0058】
ここで、「]128」は結果の最初の128の連続するビットしか使用しないことを意味する。
【0059】
次に、ブートローダーは暗号化鍵を作成する。この鍵はデバイス識別子およびメーカー識別子の双方を使用しており、次のように表記できる。
【0060】
【外6】
【0061】
ここで、「│」は連接演算子であり、「]128」は結果の最初の連続する128のビットしか使用しないことを意味する。
【0062】
暗号化鍵を得た後にセキュリティが守られたブートローダーは、ブートローダーモードフラグを通常のセキュリティが守られたブートローダー作動モードに変更し、このフラグをメモリに書き込み、暗号化されたプログラムファイルの認証を開始する。プログラムファイルをロードするのにセキュリティの守られたブートローダーを使用する場合と同じように、再オーサリングモードのセキュリティが守られたブートローダーは認証のためにハッシュされたメッセージ認証コード(HMAC)関数を使用する。しかしながら、再オーサリングモードではブートローダーは2つの異なるHMAC値を維持する。一方のHMAC値はコード証明に使用されるものである。すなわち暗号解読されるプログラムファイルの正当性を証明するのに使用される。第2のHMAC値は作成される、新しく再暗号化されるプログラムファイルのための認証値を発生するのに使用される。第2のHMAC値はその後、デジタルデバイス110がパワーアップされるたびに、再符号化されたプログラムファイルを認証するためにセキュリティが守られたブートローダーによって使用するための値である。
【0063】
本発明の好ましい実施例によれば、一度に1ブロック毎に暗号化されたファイルが読み出され(ブロック440)、新しく読み出されたブロックを使って第1のHMAC値が更新され(ブロック445)、バインドされていない鍵を使ってブロックが暗号解読され(ブロック450)、暗号化キーを使ってブロックが再暗号化され、メモリに記憶され(ブロック455および460)、再暗号化されたブロックを使って第2のHMAC値が更新される。暗号化されたファイル全体が読み出され、解読されるまで、このような操作が繰り返される。本発明の別の好ましい実施例では、暗号化された全ファイルを読み出し、1回の演算で解読されると、容易に理解できよう。
【0064】
ファイル全体が再び暗号化され、記憶された後に、セキュリティが守られたブートローダーは暗号化されたファイルと共に記憶されていたHMAC値を読み出す。セキュリティの守られたブートローダーはこの読み出されたHMAC値とブートローダーが計算した第1HMAC値とを比較する。2つのHMAC値が同一であれば、再暗号化されたファイルは認証されたものであり、第2HMAC値をメモリに記憶し、ブートローダーは実行を完了する。HMAC値が一致していなければ、ブートローダーは実行を中止し、エラーメッセージを発生する。
【0065】
アタッカーがデジタルデバイスに物理的にアクセスする時は、ソフトウェアに基づくセキュリティシステムは全体のセキュリティを与えるには充分でない。ソフトウェアに基づくセキュリティシステムを補助するために、ハードウェアのサポートは存在していなければならない。冒頭で述べたように、本発明の好ましい実施例に係わるDSP130は、正当なプログラムにしかアクセスできない内部メモリの一部を有する。この内部メモリの部分はセキュリティが守られたリードオンリーメモリとして知られる。このセキュリティが守られたリードオンリーメモリ内のメモリロケーションをアドレス指定できるのは正当なプログラムだけである。
【0066】
増設ハードウェアに基づくセキュリティの特徴は、ホストポートインターフェース(HPI)を通してロードされるプログラムがアドレス指定できるメモリ量を少なくすることである。このHPIはデジタルデバイスの機能を制御するのに使用されるオプションのマイクロコントローラとDSP130との間のインターフェースである。マイクロコントローラがなくてもDSP130を使ってデジタルデバイスの機能を制御できる。作動中のデジタルデバイスを制御するので、マイクロコントローラはソフトウェアに基づくセキュリティ機能を破ろうと試みるハッカーの攻撃の対象となり得る。マイクロコントローラによって生じるセキュリティの抜け孔を小さくする1つの方法は、HPIを通してDSP130にロードされるプログラムがアドレス指定できるメモリスペース量を少なくすることである。このプログラムは利用可能なメモリスペースの小さい部分へのアクセスおよびその使用だけに限定できる。感知できるプログラムおよびデータ値を不正なプログラムから分離するのに、このメモリスペースのこのような区分化を使用できる。
【0067】
ほとんどのDSPおよびマイクロプロセッサは機能テストおよびエミュレーションを容易にするための追加ハードウェアを含んでいる。機能テストおよびエミュレーションを行うためのハードウェアに対する一般に使用される技術規格はJTAG規格としても知られるIEEE技術規格1149.1−1990である。この追加ハードウェアはユーザーがDSPで走っているプログラムの実行を停止し、メモリおよびレジスタのコンテントを検査できるようにするものである。ユーザーはメモリロケーションおよびレジスタの値を変更することもできる。このような主なセキュリティの孔を閉じるには、DSPメーカーは一旦機能テストおよびエミュレーションが完了すると、JTAGハードウェアを含まないようにするか、JTAGハードウェアをディスエーブルするかのいずれかを行わなければならない。
【0068】
図示した実施例を参照して本発明について説明したが、この説明は限定的に考えるものではない。当業者が明細書の説明を読めば、図示した実施例の種々の変更および組み合わせだけでなく、本発明の他の実施例も明らかとなろう。従って、特許請求の範囲はかかる変形例または実施例を含むものである。
【0069】
以上の説明に関して、更に以下の項を開示する。
(1)
A)第1暗号化/暗号解読鍵を計算する工程と、
B)第2暗号化/暗号解読鍵を読み出す工程と、
C)暗号化されたオブジェクトファイルを読み出す工程と、
D)前記暗号化されたオブジェクトファイルのためのマッピング値を計算する工程と、
E)前記暗号化されたオブジェクトファイルの暗号解読をする工程と、
F)前記暗号解読されたオブジェクトファイルを記憶ロケーションに記憶する工程と、
G)マッピング値を読み出す工程と、
H)前記計算したマッピング値と前記読み出されたマッピング値とを比較する工程と、
I)前記比較したマッピング値が等しい場合に、暗号解読したオブジェクトコードを実行する工程と、
J)前記比較したマッピング値が等しくない場合に、エラーメッセージをアサートする工程とを備えた、デジタルデバイスおよびそのコンテントのパワーオンプロセス中のセキュリティを保証するための方法。
【0070】
(2) 前記第1鍵を使って前記第2暗号化/暗号解読鍵自身を暗号化し、暗号解読する、第1項記載の方法。
(3) 第2記憶ロケーションから識別子を読み出す工程を更に含む、第1項記載の方法。
(4) 対称的な鍵の暗号化および暗号解読アルゴリズムを使って前記暗号化工程および暗号解読工程を実行する、第1項記載の方法。
(5) 公開鍵の暗号化および暗号解読アルゴリズムを使って前記暗号化工程および暗号解読工程を実行する、第1項記載の方法。
【0071】
(6) コンテントを記憶するための第1記憶ロケーションと、
プログラムファイルを記憶するためのメモリと、
前記第1記憶ロケーションおよび前記メモリに結合されており、前記コンテントをデコードするようになっているプロセッサとを備えたデジタルデバイスであって、前記プロセッサが、
リードオンリーメモリと、
内部に記憶された識別子を含むセキュリティが守られた記憶ロケーションと、
前記識別子を使ってデータを暗号化し、かつ暗号解読するための暗号化/暗号解読回路と、
前記データを認証するのに使用するための、前記データに基づくマッピング値を発生するためのマッピング値発生器とを更に備えた、前記デジタルデバイスのセキュリティを守るための内蔵装置によりセキュリティが守られたコンテントをプレイするためのデジタルデバイス。
【0072】
(7) 前記プロセッサがディスエーブルされるスキャン境界テスト回路を更に含む、第6項記載のデジタルデバイス。
(8) 第1パーティション内で実行される第1プログラムと第2パーティション内で実行される第2プログラムとが相互作用しないようにするための、パーティションに分けられたプログラムメモリスペースを前記プロセッサが更に含む、第6項記載のデジタルデバイス。
(9) 前記デジタルデバイスがオーディオプレイヤーである、第6項記載のデジタルデバイス。
(10) パソコンに結合するためのインターフェースを更に含む、第6項記載のデジタルデバイス。
【0073】
(11) 暗号化され、認証されたブートソフトウェアだけを保証することにより、デジタルデバイス110内のソフトウェアおよびシステムのセキュリティを守るための、セキュリティが守られたブートローダーが、デジタルデバイス110にロードされ、実行される。デジタル信号プロセッサ(130)により内部ROM(180)から暗号化されたブートソフトウェアが読み出され、デバイスおよびメーカー識別コード(170)を使って認証される。このブートソフトウェアが認証されなければ、デジタルデバイス110はブートしない。
【0074】
本願は、2002年7月6日に「デジタルデバイスのセキュリティを守るための安全なブートローダ」を発明の名称として米国特許商標局に出願された仮特許出願第60/303、743号に基づく優先権を主張するものである。本願ではこの仮特許出願の内容を参考例として援用する。
【図面の簡単な説明】
【図1】本発明の好ましい実施例に係わるデジタルデバイスを示す。
【図2】デジタルデバイスのパワーアッププロセス中に生じるステップの代表的なシーケンスを示すフローチャートである。
【図3】本発明の好ましい実施例により、暗号化されたプログラムファイルをロードするセキュリティが守られたブートローダーによって実行される操作を示すフローチャートである。
【図4】本発明の好ましい実施例により、再オーサリングモードで作動するセキュリティが守られたブートローダーによって実行される操作を示すフローチャートである。
【符号の説明】
110 デジタルデバイス
130 DSP
150 EEPROM
240 ROM
Claims (4)
- デジタルデバイスのパワーオン処理中にデジタルデバイスおよびデバイスのコンテントのセキュリティを確保する方法は、
メーカ識別子を、前記デジタルデバイスの外部からアクセス不可能な前記デジタルデバイスの第1リードオンリーメモリロケーションにストアし、
前記デジタルデバイスに一義的なデバイス識別子を、前記デジタルデバイスの外部からアクセス不可能な前記デジタルデバイスの第2リードオンリーメモリロケーションにストアし、
前記デジタルデバイスのパワーアップ毎に、
A.前記メーカ識別子を前記第1リードオンリーメモリロケーションから読み出し、
B.前記デバイス識別子を前記第2リードオンリーメモリロケーションから読み出し、
C.前記メーカ識別子と前記デバイス識別子を用いて第1の暗号/暗号解読鍵を求め、
D.暗号化された第2の暗号/暗号解読鍵をメモリから読み出し、
E.前記第2の暗号/暗号解読鍵を前記第1の暗号/暗号解読鍵を用いて解読し、
F.暗号化されたプログラムファイルをメモリから読み出し、
G.前記暗号化されたプログラムファイルのハッシュ値を求め、
H.前記暗号化されたプログラムファイルを前記解読された第2の暗号/暗号解読鍵を用いて解読し、
I.前記解読されたプログラムファイルをメモリにストアし、
J.前記プログラムファイルに関連したハッシュ値をメモリから読み出し、
K.前記求められたハッシュ値と前記読み出されたハッシュ値とを比較し、
L.該比較の結果、ハッシュ値が等しい場合には、前記解読されたプログラムファイルを実行し、
M.該比較の結果、ハッシュ値が等しくない場合には、エラーメッセージを発生する。 - 請求項1の方法において、前記FからIまでの処理は、一時に、前記暗号化されたプログラムファイルの一部についてなされ、前記暗号化されたプログラムファイルについての処理が終了するまで繰り返される。
- 請求項1の方法において、更に、
再オーサリングモードまたはノーマルモードを示す前記デジタルデバイスのブートローダーモードフラグをストアし、該ブートローダーモードフラグは前記デジタルデバイスの最初の製造時の再オーサリングモードを示し、
前記デジタルデバイスのパワーアップ毎に、更に、
N.前記ブートローダーモードフラグで示される前記モードを決定し、
O.前記ブートローダーモードフラグが前記ノーマルモードを示す場合のみ前記IからMまでの処理を行い、
P.前記ブートローダーモードフラグが前記再オーサリングモードを示す場合には、
Q.前記解読されたプログラムファイルを前記第2の暗号/暗号解読鍵を用いて再び暗号化し、
R.該再暗号化されたプログラムファイルをメモリにストアし、
S.前記再暗号化されたプログラムファイルの第2ハッシュ値を求め、
T.メモリから、前記プログラムファイルに関連する第3ハッシュ値を読み出し、
U.前記第1ハッシュ値と前記第3ハッシュ値とを比較し、
V.該比較の結果、ハッシュ値が等しい場合には、前記第2ハッシュ値をストアし、
W.該比較の結果、ハッシュ値が等しくない場合には、エラーメッセージを発生し、
X.前記ブートローダーモードフラグをセットして前記通常モードを示す。 - 請求項3の方法において、前記F及びQからUまでの処理は、一時に、前記暗号化されたプログラムファイルの一部についてなされ、前記暗号化されたプログラムファイルについての処理が終了するまで繰り返される。
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US30374301P | 2001-07-06 | 2001-07-06 | |
US303743 | 2001-07-06 | ||
US09/954,124 US7237121B2 (en) | 2001-09-17 | 2001-09-17 | Secure bootloader for securing digital devices |
US954124 | 2001-09-17 |
Publications (3)
Publication Number | Publication Date |
---|---|
JP2003108257A JP2003108257A (ja) | 2003-04-11 |
JP2003108257A5 JP2003108257A5 (ja) | 2005-11-10 |
JP4027738B2 true JP4027738B2 (ja) | 2007-12-26 |
Family
ID=26973624
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2002198961A Expired - Lifetime JP4027738B2 (ja) | 2001-07-06 | 2002-07-08 | デジタルデバイスのセキュリティを守るための、安全なブートローダー |
Country Status (3)
Country | Link |
---|---|
EP (1) | EP1273996B1 (ja) |
JP (1) | JP4027738B2 (ja) |
DE (1) | DE60228027D1 (ja) |
Families Citing this family (40)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
FR2852777B1 (fr) * | 2003-03-21 | 2005-06-10 | Gemplus Card Int | Procede de protection d'un terminal de telecommunication de type telephone mobile |
US7142891B2 (en) * | 2003-10-10 | 2006-11-28 | Texas Instruments Incorporated | Device bound flashing/booting for cloning prevention |
JP2005130059A (ja) * | 2003-10-22 | 2005-05-19 | Fuji Xerox Co Ltd | 画像形成装置および交換部品 |
US7734932B2 (en) | 2003-11-10 | 2010-06-08 | Broadcom Corporation | System and method for securing executable code |
US7500098B2 (en) | 2004-03-19 | 2009-03-03 | Nokia Corporation | Secure mode controlled memory |
US7464405B2 (en) | 2004-03-25 | 2008-12-09 | International Business Machines Corporation | Method for preventing loading and execution of rogue operating systems in a logical partitioned data processing system |
US7694121B2 (en) * | 2004-06-30 | 2010-04-06 | Microsoft Corporation | System and method for protected operating system boot using state validation |
US7725703B2 (en) * | 2005-01-07 | 2010-05-25 | Microsoft Corporation | Systems and methods for securely booting a computer with a trusted processing module |
JP4596247B2 (ja) * | 2005-01-31 | 2010-12-08 | ソニー株式会社 | データ処理回路、データ処理装置、データ処理方法、データ処理制御方法、データ処理プログラム及びデータ処理制御プログラム |
JP4600750B2 (ja) * | 2005-01-31 | 2010-12-15 | ソニー株式会社 | データ処理回路、データ処理装置、データ処理方法、データ処理制御方法、データ処理プログラム及びデータ処理制御プログラム |
US8108691B2 (en) | 2005-02-07 | 2012-01-31 | Sandisk Technologies Inc. | Methods used in a secure memory card with life cycle phases |
US8423788B2 (en) | 2005-02-07 | 2013-04-16 | Sandisk Technologies Inc. | Secure memory card with life cycle phases |
US8321686B2 (en) | 2005-02-07 | 2012-11-27 | Sandisk Technologies Inc. | Secure memory card with life cycle phases |
JP4537908B2 (ja) | 2005-03-29 | 2010-09-08 | 株式会社東芝 | プロセッサ、メモリ、コンピュータシステムおよびシステムlsi |
US7748031B2 (en) | 2005-07-08 | 2010-06-29 | Sandisk Corporation | Mass storage device with automated credentials loading |
JP4568196B2 (ja) | 2005-09-01 | 2010-10-27 | 株式会社東芝 | プロセッサ、コンピュータシステムおよび認証方法 |
US20070061597A1 (en) | 2005-09-14 | 2007-03-15 | Micky Holtzman | Secure yet flexible system architecture for secure devices with flash mass storage memory |
EP1934879B1 (en) | 2005-09-14 | 2015-05-13 | SanDisk Technologies Inc. | Secure yet flexible system architecture for secure devices with flash mass storage memory |
US8966284B2 (en) | 2005-09-14 | 2015-02-24 | Sandisk Technologies Inc. | Hardware driver integrity check of memory card controller firmware |
EP1845470B1 (en) * | 2006-04-13 | 2016-11-09 | STMicroelectronics (Research & Development) Limited | Multiple purpose integrated circuit |
WO2007135672A2 (en) * | 2006-05-24 | 2007-11-29 | Safend Ltd. | Method and system for defending security application in a user's computer |
JP2008102618A (ja) * | 2006-10-17 | 2008-05-01 | Toshiba Corp | 電子機器およびファームウェア保護方法 |
US8423794B2 (en) | 2006-12-28 | 2013-04-16 | Sandisk Technologies Inc. | Method and apparatus for upgrading a memory card that has security mechanisms for preventing copying of secure content and applications |
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 |
US8429389B2 (en) | 2007-01-16 | 2013-04-23 | Bally Gaming, Inc. | ROM BIOS based trusted encrypted operating system |
CA2618544C (en) * | 2007-01-16 | 2015-07-21 | Bally Gaming, Inc. | Rom bios based trusted encrypted operating system |
US8150039B2 (en) | 2008-04-15 | 2012-04-03 | Apple Inc. | Single security model in booting a computing device |
US20090259855A1 (en) * | 2008-04-15 | 2009-10-15 | Apple Inc. | Code Image Personalization For A Computing Device |
DE102009007258A1 (de) * | 2009-02-03 | 2010-11-18 | Fresenius Medical Care Deutschland Gmbh | Vorrichtung und Verfahren zum Verhindern von unautorisierter Verwendung und/oder Manipulation von Software |
WO2010113266A1 (ja) * | 2009-03-31 | 2010-10-07 | 富士通株式会社 | 情報処理装置,情報処理装置の起動制御方法及び起動プログラム |
WO2010134192A1 (ja) | 2009-05-22 | 2010-11-25 | 三菱電機株式会社 | 電子機器及び鍵生成プログラム及び記録媒体及び鍵生成方法 |
US8250379B2 (en) | 2009-10-13 | 2012-08-21 | Microsoft Corporation | Secure storage of temporary secrets |
CN102742290B (zh) * | 2009-12-04 | 2015-11-25 | Lg电子株式会社 | 数字广播接收器和数字广播接收器的启动方法 |
FR2970099B1 (fr) * | 2010-12-29 | 2013-01-11 | Viaccess Sa | Procede de chargement d'un code d'au moins un module logiciel |
US8924739B2 (en) * | 2011-01-05 | 2014-12-30 | Apple Inc. | System and method for in-place encryption |
EP2689367B1 (en) | 2011-03-21 | 2019-06-19 | Sony Ericsson Mobile Communications AB | Data protection using distributed security key |
US9015455B2 (en) * | 2011-07-07 | 2015-04-21 | Intel Corporation | Processsor integral technologies for BIOS flash attack protection and notification |
US9225692B2 (en) | 2011-08-12 | 2015-12-29 | Abb Technology Ag | Method and system for protected transmission of files |
US9195831B1 (en) | 2014-05-02 | 2015-11-24 | Google Inc. | Verified boot |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5892904A (en) * | 1996-12-06 | 1999-04-06 | Microsoft Corporation | Code certification for network transmission |
US6021201A (en) * | 1997-01-07 | 2000-02-01 | Intel Corporation | Method and apparatus for integrated ciphering and hashing |
US6735696B1 (en) * | 1998-08-14 | 2004-05-11 | Intel Corporation | Digital content protection using a secure booting method and apparatus |
ID27991A (id) * | 1999-03-03 | 2001-05-03 | Sony Corp | Aparatus pemproses data, metode pemprosesan data, unit terminal, dan metode transmisi dari aparatus pemproses data |
AU5634100A (en) * | 1999-06-23 | 2001-01-09 | Brodia Group, The | Software smart card |
GB2356469B (en) * | 1999-11-17 | 2001-12-12 | Motorola Ltd | Portable data carrier memory management system and method |
-
2002
- 2002-07-01 DE DE60228027T patent/DE60228027D1/de not_active Expired - Lifetime
- 2002-07-01 EP EP02100772A patent/EP1273996B1/en not_active Expired - Lifetime
- 2002-07-08 JP JP2002198961A patent/JP4027738B2/ja not_active Expired - Lifetime
Also Published As
Publication number | Publication date |
---|---|
DE60228027D1 (de) | 2008-09-18 |
EP1273996B1 (en) | 2008-08-06 |
JP2003108257A (ja) | 2003-04-11 |
EP1273996A3 (en) | 2003-10-01 |
EP1273996A2 (en) | 2003-01-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4027738B2 (ja) | デジタルデバイスのセキュリティを守るための、安全なブートローダー | |
US7237121B2 (en) | Secure bootloader for securing digital devices | |
KR101397637B1 (ko) | 다중 사용자 감응 코드 및 데이터를 보호하는 아키텍처를 포함하는 방법 및 장치 | |
JP5636371B2 (ja) | 汎用コンピューティングデバイスにおけるコード実行制御および再帰的セキュリティプロトコルでのコード実行制御のための方法およびシステム | |
KR100974161B1 (ko) | 숨겨진 중간 키들을 사용하여 소프트웨어를 인증하기 위한 시스템 및 방법 | |
US7313705B2 (en) | Implementation of a secure computing environment by using a secure bootloader, shadow memory, and protected memory | |
JP4089171B2 (ja) | 計算機システム | |
US8006095B2 (en) | Configurable signature for authenticating data or program code | |
JP4702957B2 (ja) | 耐タンパ・トラステッド仮想マシン | |
TWI489308B (zh) | 未知安全金鑰下開機影像之安全更新 | |
US7475254B2 (en) | Method for authenticating software using protected master key | |
TWI468971B (zh) | 安全軟體下載 | |
TWI567580B (zh) | 用於防止惡意軟體執行的方法與系統 | |
US20050060568A1 (en) | Controlling access to data | |
KR101567620B1 (ko) | 데이터 처리 시스템 및 방법 | |
TWI514186B (zh) | 用以設定保護平台免受惡意軟體之政策的使用者可控制平台層級觸發技術 | |
WO2004006075A1 (ja) | 開放型汎用耐攻撃cpu及びその応用システム | |
US20210334381A1 (en) | Method and electronic device capable of securely storing and loading firmware | |
JP2009032282A (ja) | データ・アクセス制御機能を使用した、統合システム内でのセキュア動作の初期化、維持、更新および回復 | |
WO2002052386A2 (en) | Method and system for software integrity control using secure hardware assisting device | |
WO2000010283A1 (en) | Digital content protection using a secure booting method and apparatus | |
US9177121B2 (en) | Code protection using online authentication and encrypted code execution | |
Meijer et al. | Self-encrypting deception: weaknesses in the encryption of solid state drives | |
TW200937249A (en) | Handling of secure storage key in always on domain | |
TWI526869B (zh) | 用以致能耦接至客戶端之儲存系統之加值儲存服務的方法、裝置、系統及非暫時性機器可讀媒體 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20050708 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20050914 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20070727 |
|
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: 20070925 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20071010 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20101019 Year of fee payment: 3 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 4027738 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20101019 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20111019 Year of fee payment: 4 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20111019 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20121019 Year of fee payment: 5 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20131019 Year of fee payment: 6 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
EXPY | Cancellation because of completion of term |