JP4954228B2 - 安全キーの知識なしのブートローダーの安全更新 - Google Patents

安全キーの知識なしのブートローダーの安全更新 Download PDF

Info

Publication number
JP4954228B2
JP4954228B2 JP2009030103A JP2009030103A JP4954228B2 JP 4954228 B2 JP4954228 B2 JP 4954228B2 JP 2009030103 A JP2009030103 A JP 2009030103A JP 2009030103 A JP2009030103 A JP 2009030103A JP 4954228 B2 JP4954228 B2 JP 4954228B2
Authority
JP
Japan
Prior art keywords
boot
key
boot loader
new
computing device
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2009030103A
Other languages
English (en)
Other versions
JP2009225439A (ja
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 JP2009225439A publication Critical patent/JP2009225439A/ja
Application granted granted Critical
Publication of JP4954228B2 publication Critical patent/JP4954228B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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/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]

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Storage Device Security (AREA)
  • Stored Programmes (AREA)

Description

[0001]エレクトロニクスではセキュリティメカニズムの重要性が益々高まりつつある。システム及びシステムに使用される装置の製造者は、システム及び装置がどのように使用されるか制御し(例えば、無断使用を停止し)、且つプログラム(例えば、オペレーティングシステム及びアプリケーション)及びコンテンツを複写、無断変更、等から保護することを希望する。従って、装置の製造者は、装置レベルのセキュリティメカニズム及び/又はシステムレベルのセキュリティメカニズムを設けることが必要になる。又、システム及び装置がどのように使用されるか制御し(例えば、無断使用を停止し)、且つプログラム(例えば、オペレーティングシステム及びアプリケーション)及びコンテンツを複写、無断変更、等から保護するためのエンドユーザセキュリティメカニズムを設けるには、装置及び/又はシステムセキュリティ技術も必要になる。
[0002]又、エレクトロニックスの製造者は、多数のエンティティを伴うこともある。例えば、装置製造者は、所与の装置を設計するが、装置の実際の製造は外部に委託することがある。同様に、システム製造者は、システムを設計するが、システムの実際の製造は外部に委託することがある。ある当事者は互いに信頼できるが、全ての当事者が、装置及びシステムの設計及び製造に含まれる全ての他のエンティティを信頼できるのではない。例えば、装置及びシステム製造者は、互いに信頼できるが、装置製造者は、システム製造者により利用されるアッセンブルハウスを信頼しないこともあるし、或いはシステム製造者により利用されるアッセンブルハウスを単に望まないか、又はアッセンブルハウスがソフトウェア、ファームウェア、コンフィギュレーションパラメータ等へのアクセスについて信頼できることを保証するようにアッセンブルハウスを監視する能力がないこともある。
[0003]従って、装置及び/又はシステムセキュリティメカニズムを形成する改良された技術が要望され続けている。又、セキュリティメカニズムは、装置の設計からシステムの製造までの異なる製造段階において保護を与えねばならない。
[0004]本発明の技術の実施形態は、ブート映像を暗号化するのに使用されるキーの知識をもたずにブート映像を安全に更新するための技術に向けられる。一実施形態では、新しいブートローダーがサービスプロバイダーから受け取られて、所与の周辺装置にロードされる。次いで、リセットが行われて、ブートコードの実行がスタートする。ブートコードの第1部分は、チップに記憶され、信頼のチェーンを確立する。ブートコードは、安全なブートキーを計算し、サービスプロバイダーから受け取った新しいブートローダーを認証し、次いで、その認証された新たなブートローダーを、安全なブートキーを使用して暗号化して、そのブートローダーの実行のために指定された周辺装置に記憶する。
[0005]本発明の実施形態を、同様の要素が同じ参照番号で示された添付図面に一例として示すが、これに限定されるものではない。
本発明技術の実施形態を具現化する例示的システムのブロック図である。 本発明技術の一実施形態により装置の複数の電力状態の間に記憶キーを取り扱う方法のフローチャートである。 本発明技術の一実施形態により装置の複数の電力状態の間に記憶キーを取り扱う方法のフローチャートである。 本発明技術の一実施形態により装置の複数の電力状態の間に記憶キーを取り扱う方法のフローチャートである。 本発明技術の一実施形態により装置の複数の電力状態の間に記憶キーを取り扱う方法のフローチャートである。 本発明技術の一実施形態によりブートキーの知識をもたずに装置のブートコードを安全に更新する方法のフローチャートである。 本発明技術の一実施形態によりブートキーの知識をもたずに装置のブートコードを安全に更新する方法のフローチャートである。 本発明技術の一実施形態によりブートキーの知識をもたずに装置のブートコードを安全に更新する方法のフローチャートである。 本発明技術の一実施形態によりブートキーの知識をもたずに装置のブートコードを安全に更新する方法のフローチャートである。 本発明技術の一実施形態によりブートキーの知識をもたずに装置のブートコードを安全に更新する方法のフローチャートである。 本発明技術の一実施形態によりブートキーの知識をもたずに装置のブートコードを安全に更新する方法のフローチャートである。 本発明技術の一実施形態によりブートキーの知識をもたずに装置のブートコードを安全に更新する方法のフローチャートである。 本発明技術の実施形態による例示的回復モードシステムのブロック図である。 本発明技術の実施形態による例示的回復モードシステムのブロック図である。 本発明技術の一実施形態による例示的回復モード自己確認メッセージのブロック図である。
[0006]添付図面に一例が示された本発明技術の実施形態について、以下に詳細に説明する。本発明技術は、これら実施形態に関連して説明するが、本発明をこれら実施形態に限定するものでないことを理解されたい。逆に、本発明は、特許請求の範囲により規定される本発明の範囲内に包含される代替物、変更、及び等効物を網羅するものとする。更に、本発明技術の以下の詳細な説明において、本発明を完全に理解するために多数の特定の細部を述べる。しかしながら、これら特定の細部を伴わずに本発明技術を実施できることが明らかであろう。他の点については、良く知られた方法、手順、コンポーネント、及び回路は、本発明技術の態様を不必要に不明瞭にしないために、詳細に説明しない。
[0007]図1には、本発明技術の実施形態を具現化する例示的システムが示されている。この例示的システム105は、装置110と、1つ以上の周辺装置115−130とを備えている。周辺装置115−130は、内部及び/又は外部周辺装置、例えば、キーパッド、カーソルコントローラ、通信ポート、コンピューティング装置の読み取り可能な媒体(CDRM)(例えば、ハードディスクドライバ(HDD)125、ランダムアクセスメモリ(RAM)130)、等でよい。周辺装置115−130は、1つ以上の通信チャンネルによって装置110に結合することができる。装置110は、常時オン(always-on)(AO)ドメイン135と、1つ以上の制御可能な電力ドメイン140、145とを備えている。AOドメイン135は、装置がターンオンされたときに、常に、電力、及びもし適用できれば、クロック信号が、これに印加されるものである。AOドメインは、リアルタイムクロック機能的ユニット、電力管理コントローラ機能的ユニット、キーボードコントローラ機能的ユニット、及び/又は記憶レジスタ機能的ユニットを含むことができる。制御可能な電力ドメイン140、145は、1つ以上の制御可能な供給電位ドメイン140、及び/又は1つ以上の制御可能なクロック作動ドメイン145を含むことができる。1つ以上の制御可能な供給電位ドメイン140は、1つ以上のオンチップコンピューティング装置読み取り可能媒体(CDRM)150と、1つ以上の汎用処理ユニット(例えば、CPU)155と、1つ以上の特殊な処理ユニット(例えば、GPU)160と、1つ以上の機能的ユニット(例えば、進歩型暗号標準(AES)エンジン)165と、1つ以上のシステムコントローラ170−180とを含むことができる。1つ以上の制御可能なクロック作動ドメイン145は、1つ以上の特殊な処理ユニット及び又は機能的ユニット185を含むことができる。従って、装置110は、システム・オン・チップ(SoC)集積回路と称することができる。
[0008]オンチップCDRM150は、装置を構成するためのブートコードの第1部分を記憶し、そしてブートコードの他の部分、オペレーティングシステム(OS)、割り込みハンドラー及びアプリケーションを、1つ以上の周辺不揮発性CDRM(例えば、HDD、フラッシュ媒体)から、汎用及び/又は特殊な処理ユニット155、160にアクセスできる1つ以上のCDRM(例えば、RAM)130へとロードする。汎用処理ユニット(例えば、CPU)155は、装置110の汎用ソフトウェアベースの機能を実行するために計算ハードウェアリソースを備えている。このようなソフトウェア機能は、オペレーティングシステム(OS)ソフトウェアの実行、装置が外部事象、アプリケーションソフトウェア、等に応答する上で助けとなる割り込みハンドリングソフトウェアを含むことができる。特殊なプロセッサ(例えば、GPU)は、特殊な機能を実行するための計算ハードウェアリソース、例えば、グラフィック処理ユニット(GPU)160、デジタル信号処理、ビデオエンコーダ/デコーダ、等を備えている。システムコントローラ170−180は、装置110の機能的要素間の通信及び周辺装置115−130との通信のための種々の機能を発揮する。
[0009]システム105の装置110は、装置の複数の電力状態の間に記憶キーを取り扱うように適応される。又、装置110は、ブートキーの知識をもたずに装置のブートコードを安全に更新するようにも適応される。更に、装置110は、安全な回復モードを与えるようにも適応される。
[0010]図2A−2Dには、本発明技術の一実施形態により装置の複数の電力状態の間に記憶キーを取り扱う方法が示されている。最初に、システム105の装置110は、1つ以上のアプリケーションを実行するように装置110をセットアップするために、ブートプログラムを実行する。ブートプログラムは、典型的に、1つ以上の部分を含む。ブートプログラムの第1部分は、オンチップROM150に記憶され、ここでは、ブートROMコード(BR)と称される。202において、BRが処理ユニット155により実行されて、信頼のチェーンを確立する。BRの実行中に、204において、安全ブートキー(SBK)、装置キー(DK)及び装置識別子(DID)がアサートされ、そして暗号/解読エンジンによりアクセスできる対応SBKキースロットにSBKがロードされる。暗号/解読エンジンは、キースロットへの読み取り、書き込み、暗号及び解読アクセスをサポートする。持続性又は「粘着性(sticky)」ビットは、キースロットへの読み取り及び書き込みアクセスを制御するが、暗号/解読動作のためのアクセスを防止するものではない。SBKは、オフチップで(例えば、周辺装置に)記憶されたブートコードの部分を保護及び認証するために、装置製造者により使用される。1つの具現化において、SBKは、装置製造者により選択され及び/又はシステム製造者により知られ/選択されたシークレットキーである。1つの具現化において、SBKは、オンチップヒューズのようなSBKレジスタへプログラムされる。それ故、SBKは、変更可能であるが、以前の値にリセットすることはできない。1つの具現化において、SBKは、保護されたコードでしか読み取れない。1つの具現化において、保護されたコードは、BRコードである。1つの具現化において、SBKは、128ビットキーである。1つの具現化において、DKは、システム製造者に知られたシークレット値である。1つの具現化において、DKは、オンチップヒューズのようなDKレジスタにプログラムされる。それ故、DKも、変更可能であるが、以前の値にリセットできない。1つの具現化において、DKは、保護されたコードでしか読み取れない。1つの具現化において、保護されたコードは、BRコードである。1つの具現化において、DKは、32ビットキーである。1つの具現化において、DIDは、製造者によりオンチップヒューズにプログラムされる装置特有の値であり、公然とアクセスできる。1つの具現化において、DIDは、64ビット値である。
[0011]206において、安全システムキー(SSK)が、SBK、DK及びDIDから計算されて、暗号/解読エンジンによりアクセス可能な対応SSKキースロットにロードされる。安全記憶キー(SSK)は、顧客定義データを保護するためにシステム製造者により使用される。SSKは、装置製造者プログラムされた安全ブートキー(SBK)、システム製造者プログラムされた装置キー(DK)、及び装置製造者プログラムされた独特装置識別子(UID)から計算される。SSKは、1つの具現化においては、次のように計算することができる。
SSK=AES(SBK;DID^AES(SBK;DK))
装置製造者プログラムされたDIDは、チップごとに異なる。従って、SSKも、チップごとに独特のものとなる。更に、SBKも、チップごとに独特のものとなるか、又はシステム製造者により決定される複数のチップ(例えば、ロット)にわたって共通のものとなる。DKも、チップごとに独特であるか、又は複数のチップにわたって共通となる。
[0012]208において、SSKは、装置110のAOドメイン140内のSSKレジスタへロードされる。SBKキースロットからSBKをフラッシュすることで、SBKで明確に認証されていない他のコードがSBKで暗号/解読動作を遂行することを防止する。210において、ブートローダー(BL)と称されるブートコードの付加的な部分が、BLを記憶するために指定された所与の周辺装置から読み取られる。周辺装置に記憶されたBLが暗号化される。212において、SBKを使用してブートローダーが解読され、これにより、ブートローダーを認証する。ブートローダーは、更に、ダイジェスト、デジタル証明書、等をベースとする認証技術を使用して、認証することができる。SBKを使用してブートローダーを解読し認証することで、安全な信頼チェーンが維持される。
[0013]AOドメインのSSKレジスタは、BLの外部からの読み取り及び書き込みに対してレジスタを保護するセキュリティ制御を含む。一実施形態では、セキュリティ制御されるSSKレジスタは、持続性の読み取り及び書き込みビットを含む。208において、SSKがBRによりSSKレジスタにロードされると、214において、読み取り粘着性ビットがセットされる(読み取りアクセスをディスエイブルする)が、書き込み粘着性ビットはそうならない(その後の書き込みアクセスを許す)。更に、SBK及びSSKキースロットは、BRの外部からのアクセスを防止するためにBRによりセットされる持続性読み取り/書き込みビットによって保護される。
[0014]216において、BLは、該BLが成功裏に解読されて認証された場合に、処理ユニット155により実行される。BLの実行中に、218において、データ及び/又は1つ以上のアプリケーションが1つ以上の周辺装置から読み取られる。1つの具現化において、アプリケーションは、暗号化形態で記憶することができる。220において、暗号化されたデータ又はアプリケーションが、SSKを使用して解読される。
[0015]222において、装置110は、任意であるが、システム製造者がSSKを変化させるのを許すことができる。SSKがシステム製造者により変化される場合には、224において、新たなSSKがそれに対応するSSKキースロットに記憶され、又、SSKがAOドメインのセキュリティ制御レジスタに記憶される。SSKがAOドメインのSSKレジスタに最初に書き込まれるときには214において書き込みビットがセットされないので、SSKを、システム製造者によって変更できると共に、暗号/解読エンジンが低電力状態から復帰するときに回復することができる。しかしながら、AOドメインのSSKレジスタにおけるSSKが、222において、オーバーライトされるときには、更なるオーバーライトを防止するように持続性書き込みビットをセットすることができる。又、SSKを保持するキースロットへの書き込みアクセスは、この点において、その持続性書き込みビットをセットすることでディスエイブルすることもでき、これにより、更なるオーバーライトを防止することもできる。SSKが変更された場合に、もし適用できれば、226において、アプリケーションが実行される。アプリケーションは、OS、割り込みルーチン、ユーティリティ及びユーザアプリケーション、例えば、音楽プレーヤ、ゲーム、セルラー電話、GPS、等を含むことができる。
[0016]228において、1つが暗号/解読エンジン165を含むような1つ以上のドメインを低電力状態へと循環させることができる。230において、ドメインが低電力状態から循環されるときに再スタートが行われる。再スタートに応答してBLを実行する間に、232において、1つ以上の周辺装置(例えば、RAM)に残るコードが確認され、そしてAOドメインにおけるセキュリティ制御されたSSKレジスタへのアクセスがリセットされ、読み取り及び書き込みアクセスが許される。234において、AOドメインのセキュリティコントローラSSKレジスタからSSKキースロットへSSKが読み取られる。SSKが、SSKレジスタから、BLにより暗号/解読エンジンのための対応キースロットへ読み取られると、236において、読み取りディスエイブル及び書き込みディスエイブル持続ビットがセットされる。その後、238において、データ及び/又は1つ以上のアプリケーションが1つ以上の周辺装置から読み取られる。1つの具現化において、アプリケーションは、暗号化形態で記憶することができる。240において、暗号化データ又はアプリケーションが、SSKを使用して解読される。242において、アプリケーションが実行される。
[0017]従って、本発明技術の実施形態は、システム記憶キー(SSK)をAOドメインに効果的に維持し、そして暗号/解読エンジンがオンに戻されるときに、このエンジンにSSKを回復させる。しかしながら、SSKは、BLによってアクセスすることしかできず、これは、安全な信頼チェーンを与える。更に、これらの実施形態は、任意であるが、SSKの更新を許す。
[0018]図3A−3Eには、本発明技術の一実施形態により、ブートキーの知識なしに、装置のブートコードを安全に更新する方法が示されている。この場合も、302において、BRが処理ユニット150により実行され(例えば、コールドブート)、信頼のチェーンを確立する。BRの実行中に、304において、安全ブートキー(SBK)、装置キー(DK)及び装置識別子(DID)がアクセスされ、又、SBKが、暗号/解読エンジンによりアクセス可能な対応SBKキースロットにロードされる。SBKレジスタは、BRの外部からのアクセスを防止するために、SBKにアクセスした後にBRによりセットされる持続的読み取り/書き込みビットによって保護される。306において、前記で詳細に述べたように、SBK、DK及びDIDから安全システムキー(SSK)が計算され、そして対応するSSKキースロットにロードされる。
[0019]308において、装置110のAOドメイン140内のSSKレジスタにSSKがロードされる。310において、ブートローダー(BL)と称されるブートコードの付加的な部分が、BLを記憶するように指定された所与の周辺装置から読み取られる。周辺装置の記憶されるBLは、暗号化される。312において、ブートローダーは、SBKを使用して解読され、これにより、ブートローダーを認証する。ブートローダーは、更に、ダイジェスト、デジタル証明書、等に基づく認証技術を使用して認証売ることができる。SBKを使用してブートローダーを解読し、認証することで、安全な信頼チェーンが維持される。
[0020]314において、BLは、このBLが成功裏に解読され認証された場合に、処理ユニット150により実行される。BLの実行中に、316において、SBKがキースロットからフラッシュされる。SBKは、全てゼロ又は他の何らかのパターンでオーバーライトすることによりフラッシュすることができる。その後、318において、1つ以上のアプリケーションが1つ以上の周辺装置から読み取られる。1つの具現化において、アプリケーションは、暗号化形態で記憶することができる。320において、暗号化されたアプリケーションは、SSKを使用して解読される。322において、アプリケーションが実行される。アプリケーションは、OS、割り込みルーチン、ユーティリティ及びユーザアプリケーション、例えば、音楽プレーヤ、ゲーム、セルラー電話、GPS等を含むことができる。
[0021]324において、新たなブートローダーがサービスプロバイダーから受け取られる。新たなブートローダーは、公衆キー暗号化、等を使用してエンコードすることができる。その後、ある点において、装置が再スタートされる(例えば、コールドブート)。326において、再スタートに応答してBRが実行される。BRの実行中に、328において、安全ブートキー(SBK)、装置キー(DK)及び装置識別子(DID)がアクセスされ、そしてSBKが、暗号/解読エンジンによりアクセス可能な対応するSBKキースロットへロードされる。SBKレジスタは、BRの外部からのアクセスを防止するためにSBKにアクセスした後にBRによってセットされた持続性読み取り/書き込みビットにより保護される。330において、前記で詳細に述べたように、SBK、DK及びDIDから安全システムキー(SSK)が計算され、それに対応するSSKキースロットへロードされる。332において、SSKは、装置110のAOドメイン140のSSKレジスタにロードされる。334において、新たなブートローダーが周辺装置から読み取られる。新たなブートローダーは、典型的に、暗号化形態で記憶される。336において、サービスプロバイダーから受け取られた新たなブートローダーが認証される。338において、新たなブートローダーは、SBKを使用して暗号化され、そしてBLを記憶するために指定された所与の周辺装置に記憶される。340において、SBKは、キースロットからフラッシュされる。342において、SSKに対する読み取り粘着性ビットがセットされる(読み取りアクセスをディスエイブルする)が、書き込み粘着性ビットはそのようにされない(その後の書き込みアクセスを許す)。更に、SBK及びSSKキースロットは、BRの外部からのアクセスを防止するためにBRによりセットされた持続性読み取り/書き込みビットにより保護される。
[0022]344において、新たなBLが成功裏に解読され認証された場合には、新たなBLが処理ユニット155により実行される。346において、新たなBLの実行中に1つ以上の周辺装置からデータ及び/又は1つ以上のアプリケーションが読み取られる。1つの具現化において、アプリケーションは、暗号化形態で記憶することができる。348において、暗号化されたデータ又はアプリケーションは、SSKを使用して解読される。350において、アプリケーションが実行される。アプリケーションは、OS、割り込みルーチン、ユーティリティ及びユーザアプリケーション、例えば、音楽プレーヤ、ゲーム、セルラー電話、GPS、等を含むことができる。
[0023]装置がコールドブートされる次のときに、新たなBLがロードされて実行される。従って、本発明技術の実施形態は、安全ブートキーを知らずに、ブートローダーコードの安全な更新も効果的に可能にする。
[0024]図4A−4Dには、本発明技術の一実施形態による安全回復方法が示されている。この場合も、402において、BRが処理ユニット155により実行され(例えば、コールドブート)、信頼のチェーンが確立される。404において、BRの実行中に、安全ブートキー(SBK)、装置キー(DK)及び装置識別子(DID)がアクセスされ、そしてSBKが、暗号/解読エンジンによりアクセス可能な対応するSBKキースロットにロードされる。406において、前記で詳細に述べたように、SBK、DK及びDIDから安全システムキー(SSK)が計算され、それに対応するSSKキースロットにロードされる。
[0025]408において、SSKが装置110のAOドメイン135内のSSKレジスタにロードされる。410において、BLを記憶するように指定された所与の周辺装置からBLが読み取られる。周辺装置に記憶されるBLは、暗号化される。412において、SBKを使用してブートローダーが解読され、これにより、ブートローダーを認証する。ブートローダーは、更に、ダイジェスト、デジタル証明書、等をベースとする認証技術を使用して、認証することができる。
[0026]BLが成功裏に解読され認証された場合には、処理ユニット155によりBLが実行される。しかしながら、410、412の読み取り及び/又は解読/認証プロセスが失敗した場合には、414において、装置が回復モードに入る。装置は、BLの読み取り及び/又は解読及び認証を失敗すると、ロックされるか又はしくじり(brick)とみなされる。更に、装置が依然製造段階にあるときには、回復モードを使用して、SBK、DK及び/又はBLを初めてシステムにロードすることができる。回復モードにある間に、装置110は、装置110のDIDを所与の通信チャンネルにブロードキャストする。1つの具現化において、通信チャンネルは、ユニバーサルシリアルバス(USB)リンク418である。装置105を含むシステムは、図5A及び5Bに示したように、ホスト422に直接結合されてもよいし、又はネットワーク505及びローカルインターフェイス装置510を通して結合されてもよい。420において、ホスト422装置は、DIDを受け取り、所与のSBKにマップする。次いで、424において、ホスト422は、所与のSBKを使用して自己確認メッセージを発生し、その自己確認メッセージを装置110へ送信する。この実施例において、このメッセージは、図6に示すように、(非安全)長さ605と、ハッシュ610と、ランダムAESブロック615と、安全長さ620と、コマンド及びデータ625と、ペイロード630、及びパッディング(例えば、0X80、及び必要に応じてそれに続く付加的な0X00バイト)635とを含む。ランダムAESブロック615、安全長さ620、コマンド及びデータ625、ペイロード630、及びパッディング635は、DIDにマップされたSBKを使用してエンコードされる。426において、メッセージは、装置110により受け取られ、装置のSBKを使用して確認される。1つの具現化において、受け取られたメッセージは、非安全長さ605が安全長さ620に一致し、ハッシュ610が正しく、コマンド615が有効であり(例えば、所与のメッセージに対して有効なコマンド形式)、メッセージのサイズが正しく(コマンド及びデータにより指定されたように)、ペイロードのサイズが正しく、パッディングパターンが正しく、及び/又はコマンド及びデータ625におけるBRバージョン番号が装置110のBRバージョンに一致する場合に、有効となる。メッセージが有効である場合には、428において、装置110がメッセージを周辺装置(例えば、RAM)へロードして、それを実行する。428において、回復モードは、メッセージの1つ以上のコマンドを実行し、メッセージに含まれたコードを実行し、及び/又はメッセージ内のBLコードを所与の周辺装置に記憶することができる。メッセージにおいてBLコードが受け取られた場合は、BLが、SBKを使用してエンコードされて所与の周辺装置に記憶される。任意であるが、装置110は、ホストから付加的なデータをダウンロードして認証することができる。付加的なデータは、これを周辺装置に書き込む前に、SBKを使用して暗号化し及びサインすることができる。このように、回復モードは、複数のメッセージ送信及び応答シーケンスを与えることができる。メッセージが有効でない場合には、装置110は、システムリセットを進めることを要求する無限ループに入る。
[0027]従って、本発明技術の実施形態は、好都合にも、ロックされたシステムへのBLコードの安全なダウンロードも可能にする。
[0028]本発明技術の特定の実施形態の以上の説明は、例示のためのものである。それらは、余す所のないものでもなく、又は、本発明を、ここに開示する正確な形態に限定するものでもなく、明らかに、前記教示に鑑み、多数の変更や修正が考えられる。前記実施形態は、本発明の原理及びその実際の応用を最良に説明するために選択されて述べられたものであり、従って、当業者であれば、本発明及び種々の実施形態を、意図される特定の用途に適するように種々の変更を加えて、最良に利用することができよう。本発明の範囲は、特許請求の範囲及びその等効物により限定されることが意図される。
105・・・システム、110・・・装置(SoC)、115・・・周辺装置(USB)、120・・・周辺装置、125・・・周辺装置(HDD)、130・・・周辺装置(RAM)、135・・・A/Oドメイン、150・・・オンチップROM、155・・・汎用処理ユニット、160・・・特殊な処理ユニット(GPU)、165・・・機能(AESエンジン)、170・・・システムコントローラ(USB)、175・・・システムコントローラ、180・・・システムコントローラ、185・・・機能、605・・・長さ、610・・・ハッシュ、615・・・ランダムAESブロック、620・・・安全長さ、625・・・コマンド及びデータ、630・・・ペイロード、635・・・パッディング

Claims (18)

  1. ブートローダーを安全に更新する方法であって、
    サービスプロバイダーから新たなブートローダーを受け取るステップと、
    前記新たなブートローダーを所与の周辺装置にロードするステップと、
    リセットを実行するステップと、
    安全な信頼チェーンをスタートするためにチップに記憶されたブートコードの第1部分を実行し、安全ブートキーを取得し、前記サービスプロバイダーから受け取った前記新たなブートローダーを認証し、更に、この認証された新たなブートローダーを、前記安全ブートキーを使用して暗号化して、指定の周辺装置に記憶するステップと、を備える方法。
  2. 前記安全な信頼チェーンをスタートするためにチップに記憶されたブートコードの第1部分を実行することは、安全ブートROMコードを実行することを含む、請求項1に記載の方法。
  3. 前記安全ブートキーを取得することは、前記安全ブートROMコードの実行中に前記安全ブートキーをアクセスすることを含み、前記安全ブートキーは、非ブートROMコードによアクセスに対して保護されるヒューズのセットに記憶される、請求項2に記載の方法。
  4. 前記サービスプロバイダーから受け取った前記新たなブートローダーを認証することは、前記サービスプロバイダーから受け取った前記新たなブートローダーを解読することを含む、請求項3に記載の方法。
  5. 前記新たなブートローダー解読及び認証に成功した場合に、前記新たなブートローダーを実行するステップを更に備える、請求項4に記載の方法。
  6. 装置キー及び装置識別子をアクセスし、更に、安全な信頼チェーンをスタートするためにチップに記憶されたブートコードの第1部分を実行しながら、前記安全ブートキー、装置キー及び装置識別子から安全システムキーを計算するステップと、
    周辺装置から暗号化されたアプリケーションを読み取り、更に、前記新たなブートローダーを実行しつつ前記安全システムキーを使用して前記アプリケーションを解読するステップと、
    前記アプリケーションの解読が成功した場合に、前記アプリケーションを実行するステップと、を更に備える請求項5に記載の方法。
  7. 前記安全ブートキーは、ブートローダーを安全に更新する方法を遂行する装置の装置又はシステム製造者により選択されるシークレットキーである、請求項6に記載の方法。
  8. 前記装置キーは、ブートローダーを安全に更新する方法を遂行する装置のシステム製造者に知られたシークレットキーである、請求項7に記載の方法。
  9. 前記装置識別子は、ブートローダーを安全に更新する方法を遂行する装置の装置特有値である、請求項8に記載の方法。
  10. 所定の装置により実行されたときに、
    新たなブートローダーを受け取り、
    前記新たなブートローダーを所与の周辺装置にロードし、
    前記新たなブートローダーを前記所与の周辺装置にロードした後にリセットを実行し、
    前記リセットを実行した後に、安全な信頼チェーンをスタートするために前記装置に記憶された現在ブートコードの第1部分を実行し、
    装置により又は該装置のシステム製造者により選択された第1シークレットキーをアクセスし、
    前記現在ブートコードの第1部分を実行した後に前記新たなブートローダーを認証し、
    前記新たなブートローダーが認証された場合には、前記新たなブートローダーを、前記第1シークレットキーを使用して暗号化して、指定の周辺装置に記憶する、ことを含むプロセスを遂行する1つ以上のコンピューティング装置実行可能なインストラクションを記憶している1つ以上のコンピューティング装置読み取り可能な媒体。
  11. 前記装置によって実行されたときに、請求項10に記載のプロセスを遂行するものであって、ブートコードの第1部分を実行することが、ブートROMコードを実行することを含む、1つ以上のコンピューティング装置実行可能なインストラクションを記憶している1つ以上のコンピューティング装置読み取り可能な媒体。
  12. 前記装置によって実行されたときに、請求項11に記載のプロセスを遂行するものであって、第1シークレットキーをアクセスすることが、保護コードにより読み取り可能なレジスタから第1シークレットキーを読み取ることを含む、1つ以上のコンピューティング装置実行可能なインストラクションを記憶している1つ以上のコンピューティング装置読み取り可能な媒体。
  13. 前記装置によって実行されたときに、請求項12に記載のプロセスを遂行するものであって、新たなブートローダーを解読することを更に含む、1つ以上のコンピューティング装置実行可能なインストラクションを記憶している1つ以上のコンピューティング装置読み取り可能な媒体。
  14. 前記装置によって実行されたときに、請求項13に記載のプロセスを遂行するものであって、新たなブートローダー解読及び認証に成功した場合に新たなブートローダーを実行することを更に含む、1つ以上のコンピューティング装置実行可能なインストラクションを記憶している1つ以上のコンピューティング装置読み取り可能な媒体。
  15. 前記装置によって実行されたときに、請求項14に記載のプロセスを遂行するものであって、
    第2シークレットキー及び装置識別子をアクセスし、
    ブートコードの第1部分を実行しつつ、前記第1シークレットキー、第2シークレットキー、及び装置識別子から第3シークレットキーを計算し、
    周辺装置から暗号化されたアプリケーションを読み取り、
    前記新たなブートローダーを実行しつつ、前記第3シークレットキーを使用して、前記アプリケーションを解読し、
    前記アプリケーションの解読が成功した場合に前記アプリケーションを実行する、ことを更に含む、1つ以上のコンピューティング装置実行可能なインストラクションを記憶している1つ以上のコンピューティング装置読み取り可能な媒体。
  16. 前記装置によって実行されたときに、請求項15に記載のプロセスを遂行するものであって、前記第1シークレットキーは、前記装置の装置又はシステム製造者により知られている、1つ以上のコンピューティング装置実行可能なインストラクションを記憶している1つ以上のコンピューティング装置読み取り可能な媒体。
  17. 前記装置によって実行されたときに、請求項16に記載のプロセスを遂行するものであって、前記第2シークレットキーは、前記装置のシステム製造者により知られている、1つ以上のコンピューティング装置実行可能なインストラクションを記憶している1つ以上のコンピューティング装置読み取り可能な媒体。
  18. 前記装置によって実行されたときに、請求項16に記載のプロセスを遂行するものであって、前記装置識別子は、前記装置に特有のものである、1つ以上のコンピューティング装置実行可能なインストラクションを記憶している1つ以上のコンピューティング装置読み取り可能な媒体。
JP2009030103A 2008-02-11 2009-02-12 安全キーの知識なしのブートローダーの安全更新 Active JP4954228B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US12/029,467 2008-02-11
US12/029,467 US8719585B2 (en) 2008-02-11 2008-02-11 Secure update of boot image without knowledge of secure key

Publications (2)

Publication Number Publication Date
JP2009225439A JP2009225439A (ja) 2009-10-01
JP4954228B2 true JP4954228B2 (ja) 2012-06-13

Family

ID=41241668

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009030103A Active JP4954228B2 (ja) 2008-02-11 2009-02-12 安全キーの知識なしのブートローダーの安全更新

Country Status (3)

Country Link
US (1) US8719585B2 (ja)
JP (1) JP4954228B2 (ja)
TW (3) TWI376617B (ja)

Families Citing this family (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9158896B2 (en) * 2008-02-11 2015-10-13 Nvidia Corporation Method and system for generating a secure key
US9069706B2 (en) * 2008-02-11 2015-06-30 Nvidia Corporation Confidential information protection system and method
US20090204801A1 (en) * 2008-02-11 2009-08-13 Nvidia Corporation Mechanism for secure download of code to a locked system
US9613215B2 (en) 2008-04-10 2017-04-04 Nvidia Corporation Method and system for implementing a secure chain of trust
US8738932B2 (en) * 2009-01-16 2014-05-27 Teleputers, Llc System and method for processor-based security
JP5318699B2 (ja) * 2009-08-17 2013-10-16 富士通コンポーネント株式会社 Kvmスイッチ、kvmシステム及びプログラム
US8447908B2 (en) 2009-09-07 2013-05-21 Bitmicro Networks, Inc. Multilevel memory bus system for solid-state mass storage
US9367107B2 (en) * 2011-10-19 2016-06-14 Psion Inc. Method and system for controlling reset state change in a system-on-a-chip device
CN102726027B (zh) * 2011-12-28 2014-05-21 华为技术有限公司 虚拟机全盘加密下预启动时的密钥传输方法和设备
US9489924B2 (en) 2012-04-19 2016-11-08 Nvidia Corporation Boot display device detection and selection techniques in multi-GPU devices
US10733288B2 (en) * 2013-04-23 2020-08-04 Hewlett-Packard Development Company, L.P. Verifying controller code and system boot code
US9735967B2 (en) 2014-04-30 2017-08-15 International Business Machines Corporation Self-validating request message structure and operation
US9959125B2 (en) 2015-08-05 2018-05-01 Samsung Electronics Co., Ltd. Field update of boot loader using regular device firmware update procedure
US10855462B2 (en) * 2016-06-14 2020-12-01 Honeywell International Inc. Secure in-band upgrade using key revocation lists and certificate-less asymmetric tertiary key pairs
US10587421B2 (en) 2017-01-12 2020-03-10 Honeywell International Inc. Techniques for genuine device assurance by establishing identity and trust using certificates
EP3542298B1 (en) 2017-01-12 2022-08-03 Google LLC Verified boot and key rotation
US11347861B2 (en) 2018-04-10 2022-05-31 Raytheon Company Controlling security state of commercial off the shelf (COTS) system
US10878101B2 (en) 2018-09-07 2020-12-29 Raytheon Company Trusted booting by hardware root of trust (HRoT) device
US11178159B2 (en) 2018-09-07 2021-11-16 Raytheon Company Cross-domain solution using network-connected hardware root-of-trust device
US11423150B2 (en) 2018-09-07 2022-08-23 Raytheon Company System and method for booting processors with encrypted boot image
WO2020205507A1 (en) 2019-04-01 2020-10-08 Raytheon Company Adaptive, multi-layer enterprise data protection & resiliency platform
WO2020205497A1 (en) 2019-04-01 2020-10-08 Raytheon Company Root of trust assisted access control of secure encrypted drives
JP7367471B2 (ja) * 2019-11-07 2023-10-24 株式会社リコー 情報処理装置、ファイル保証方法、及びファイル保証プログラム
US11379588B2 (en) 2019-12-20 2022-07-05 Raytheon Company System validation by hardware root of trust (HRoT) device and system management mode (SMM)
TWI821824B (zh) * 2021-12-16 2023-11-11 上銀科技股份有限公司 自動載入參數的方法和系統及其服務端伺服器和客戶端伺服器
US12093405B2 (en) 2022-02-14 2024-09-17 Hiwin Technologies Corp. Method and system for automatically loading parameters, and client-end server thereof

Family Cites Families (39)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5457748A (en) 1992-11-30 1995-10-10 Motorola, Inc. Method and apparatus for improved security within encrypted communication devices
US6185678B1 (en) 1997-10-02 2001-02-06 Trustees Of The University Of Pennsylvania Secure and reliable bootstrap architecture
EP0961193B1 (en) 1998-05-29 2010-09-01 Texas Instruments Incorporated Secure computing device
US6275931B1 (en) * 1998-06-22 2001-08-14 Elsag International N.V. Method and apparatus for upgrading firmware boot and main codes in a programmable memory
US7761653B2 (en) * 1999-08-04 2010-07-20 Super Talent Electronics, Inc. Flash micro-controller with shadow boot-loader SRAM for dual-device booting of micro-controller and host
WO2002021763A1 (en) 2000-09-08 2002-03-14 Mainstay Enterprises, Inc. System and method for protecting information stored on a computer
FI114416B (fi) 2001-06-15 2004-10-15 Nokia Corp Menetelmä elektroniikkalaitteen varmistamiseksi, varmistusjärjestelmä ja elektroniikkalaite
US7237121B2 (en) 2001-09-17 2007-06-26 Texas Instruments Incorporated Secure bootloader for securing digital devices
US6615329B2 (en) 2001-07-11 2003-09-02 Intel Corporation Memory access control system, apparatus, and method
US20030084337A1 (en) 2001-10-03 2003-05-01 Simionescu Dan C. Remotely controlled failsafe boot mechanism and manager for a network device
US20030115471A1 (en) * 2001-12-19 2003-06-19 Skeba Kirk W. Method and apparatus for building operational radio firmware using incrementally certified modules
US7266848B2 (en) 2002-03-18 2007-09-04 Freescale Semiconductor, Inc. Integrated circuit security and method therefor
JP4099039B2 (ja) * 2002-11-15 2008-06-11 松下電器産業株式会社 プログラム更新方法
US6961852B2 (en) * 2003-06-19 2005-11-01 International Business Machines Corporation System and method for authenticating software using hidden intermediate keys
AU2004258523B2 (en) * 2003-07-07 2009-12-10 Irdeto B.V. Reprogrammable security for controlling piracy and enabling interactive content
US7142891B2 (en) 2003-10-10 2006-11-28 Texas Instruments Incorporated Device bound flashing/booting for cloning prevention
US7386736B2 (en) 2004-12-16 2008-06-10 International Business Machines Corporation Method and system for using a compact disk as a smart key device
US7603562B2 (en) * 2005-02-02 2009-10-13 Insyde Software Corporation System and method for reducing memory requirements of firmware
US20060179308A1 (en) * 2005-02-07 2006-08-10 Andrew Morgan System and method for providing a secure boot architecture
US8639946B2 (en) 2005-06-24 2014-01-28 Sigmatel, Inc. System and method of using a protected non-volatile memory
US7636780B2 (en) * 2005-07-28 2009-12-22 Advanced Micro Devices, Inc. Verified computing environment for personal internet communicator
JP2007043345A (ja) * 2005-08-02 2007-02-15 Sony Corp 通信装置およびそれにおける処理方法
US20070055881A1 (en) * 2005-09-02 2007-03-08 Fuchs Kenneth C Method for securely exchanging public key certificates in an electronic device
KR100778293B1 (ko) * 2005-10-10 2007-11-22 삼성전자주식회사 디지털방송처리장치 및 디지털방송처리장치 부트로더의업그레이드 방법
JP4868216B2 (ja) * 2006-01-19 2012-02-01 日本電気株式会社 ファームウェア更新回路およびファームウェア更新方法
JP2007213494A (ja) * 2006-02-13 2007-08-23 Ntt Docomo Inc 更新起動装置及び更新起動制御方法
JP4795812B2 (ja) 2006-02-22 2011-10-19 富士通セミコンダクター株式会社 セキュアプロセッサ
US7676694B2 (en) * 2006-03-31 2010-03-09 Emc Corporation Managing system components
EP1845470B1 (en) 2006-04-13 2016-11-09 STMicroelectronics (Research & Development) Limited Multiple purpose integrated circuit
JP4791250B2 (ja) * 2006-05-19 2011-10-12 ルネサスエレクトロニクス株式会社 マイクロコンピュータおよびそのソフトウェア改竄防止方法
US7424398B2 (en) * 2006-06-22 2008-09-09 Lexmark International, Inc. Boot validation system and method
JP5079803B2 (ja) * 2006-07-18 2012-11-21 サーティコム コーポレーション ゲーム装置を認証するシステムおよび方法
US8312509B2 (en) 2006-09-21 2012-11-13 Intel Corporation High integrity firmware
US20080082680A1 (en) * 2006-09-29 2008-04-03 Karanvir Grewal Method for provisioning of credentials and software images in secure network environments
US7900032B2 (en) 2006-10-06 2011-03-01 Broadcom Corporation Method and system for NAND flash support in autonomously loaded secure reprogrammable system
US7870379B2 (en) * 2006-10-10 2011-01-11 Exaflop Llc Updating a power supply microcontroller
US7876894B2 (en) * 2006-11-14 2011-01-25 Mcm Portfolio Llc Method and system to provide security implementation for storage devices
US20080148001A1 (en) 2006-12-14 2008-06-19 Telefonaktiebolaget L M Ericsson (Publ) Virtual Secure On-Chip One Time Programming
US8254568B2 (en) 2007-01-07 2012-08-28 Apple Inc. Secure booting a computing device

Also Published As

Publication number Publication date
US8719585B2 (en) 2014-05-06
JP2009225439A (ja) 2009-10-01
TWI489308B (zh) 2015-06-21
TW200941278A (en) 2009-10-01
TW201314492A (zh) 2013-04-01
TWI376617B (en) 2012-11-11
TWI385554B (zh) 2013-02-11
US20100070743A1 (en) 2010-03-18

Similar Documents

Publication Publication Date Title
JP4954228B2 (ja) 安全キーの知識なしのブートローダーの安全更新
US20090204803A1 (en) Handling of secure storage key in always on domain
US10931451B2 (en) Securely recovering a computing device
US9613215B2 (en) Method and system for implementing a secure chain of trust
US8826405B2 (en) Trusting an unverified code image in a computing device
KR101735023B1 (ko) 민감한 코드와 데이터를 보호하는 아키텍처를 포함하는 방법 및 장치
US9710651B2 (en) Secure processor for SoC initialization
RU2295834C2 (ru) Инициализация, поддержание, обновление и восстановление защищенного режима работы интегрированной системы, использующей средство управления доступом к данным
JP4971466B2 (ja) コンピューティング・デバイスの安全なブート
EP2706478B1 (en) Protecting secure software in a multi-security-CPU system
WO2009032036A2 (en) Compatible trust in a computing device
KR20210089486A (ko) 키를 안전하게 관리하기 위한 장치 및 방법
US20090204801A1 (en) Mechanism for secure download of code to a locked system
WO2010130171A1 (zh) 一种移动终端及保护其系统数据的方法
KR20160142319A (ko) 외부 메모리 디바이스 상에 상주하는 칩 제한 명령들을 이용한 부트 시퀀스 수정을 위한 시스템 및 방법
CN111357003A (zh) 预操作系统环境中的数据保护

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20111018

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120117

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

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

R150 Certificate of patent or registration of utility model

Ref document number: 4954228

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

Year of fee payment: 3

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