JP6137499B2 - 方法および装置 - Google Patents

方法および装置 Download PDF

Info

Publication number
JP6137499B2
JP6137499B2 JP2014223026A JP2014223026A JP6137499B2 JP 6137499 B2 JP6137499 B2 JP 6137499B2 JP 2014223026 A JP2014223026 A JP 2014223026A JP 2014223026 A JP2014223026 A JP 2014223026A JP 6137499 B2 JP6137499 B2 JP 6137499B2
Authority
JP
Japan
Prior art keywords
firmware
platform
storage location
acm
image
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
JP2014223026A
Other languages
English (en)
Other versions
JP2015057722A (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.)
Intel Corp
Original Assignee
Intel 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 Intel Corp filed Critical Intel Corp
Publication of JP2015057722A publication Critical patent/JP2015057722A/ja
Application granted granted Critical
Publication of JP6137499B2 publication Critical patent/JP6137499B2/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
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • 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/60Protecting data
    • G06F21/64Protecting data integrity, e.g. using checksums, certificates or signatures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/71Protecting 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
    • G06F21/74Protecting 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 operating in dual or compartmented mode, i.e. at least one secure mode
    • 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/2137Time limited access, e.g. to a computer or data

Landscapes

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

Description

本発明は、コンピュータプラットフォーム・ファームウェアを安全に更新することに関する。
コンピュータシステムで操作可能な命令の最初のセットは、プラットフォームファームウェアから生じる。プラットフォームファームウェアとしては、基本入出力システムと関連付けられたファームウェア、埋め込みコントローラ及びマイクロコントローラファームウェア、及び、コンピュータプラットフォーム内の記憶領域に存在するそのほかのファームウェアを含んでもよい。一般的に、プラットフォームファームウェアは、コンピュータシステムの使用期間にわたって一定のものではない。オペレーティングシステム及びソフトウェアアプリケーションが更新されるように、プラットフォームファームウェアも更新される。多くのコンピュータシステムのオペレーションにとって、ファームウェア命令は非常に重要であることから、ファームウェアの更新が行われる際に安全な態様で行われることが必須である。
本発明が、例示を目的として説明されるが、図面によって限定されることはない。図面において、同様な参照番号は、同様な要素を指す。
プラットフォームファームウェアを安全に更新することができるコンピュータシステムの一実施形態を示した図である。 システム管理ファームウェア記憶領域への書き込みを可能にするプラットフォームコンポーネントハブをロックダウンするプロセスの一実施形態を示したフローチャートである。 安全なプラットフォームファームウェア更新プロセスを開始するプロセスの一実施形態を示したフローチャートである。 安全なプラットフォームファームウェア更新プロセスを継続するプロセスの一実施形態を示したフローチャートである。 コンピュータシステムのコントローラファームウェアを安全に更新するプロセスの一実施形態を示したフローチャートである。
プラットフォームファームウェアを安全に更新することができる装置、システム、方法及びコンピュータ可読媒体の実施形態が開示される。
コンピュータシステム内のファームウェアは、コンピュータシステムにおける1以上のデバイスに対する、多くの種類の初期化、管理及び操作命令を供給する。ファームウェアの更新は、通常、セキュリティホールの問題を伴う。悪意を持った者が、改ざんされたファームウェアをコンピュータシステムに提供することが考えられる。コンピュータシステムが動作している間は、通常、ファームウェアは標準的なウィルス対策保護レベルよりも低いレベルになっているため、セキュリティが破られてしまうと深刻な影響を及ぼす。したがって、プラットフォームファームウェアの更新の間のセキュリティは、非常に重要である。
多くの実施形態において、プラットフォーム・ファームウェア・アーマリング技術(PFAT)モードは、コンピュータシステム内でイネーブルされる。PFATモードは、多くのエンティティがプラットフォームファームウェアを更新するのを制限する。具体的には、PFATモードでは、安全な(セキュアな)認証コード(authenticated code:AC)モードで、認証コードモジュール(authenticated code module:ACM)によって、システム管理ファームウェア更新が行われるように要求することができる。標準オペレーションモードでは、プラットフォーム・コンポーネント・ハブ(PCH)は、記憶装置への書き込みを停止させてもよい。ファームウェア更新を可能とするべく、ロジックは、ACMを起動して、ACMは、特別な書き込みサイクルをCPUレジスタに実行して、ファームウェア記憶領域への書き込みのロックを解除してもよい。多くの実施形態では、ACMは、特別な書き込みサイクルを実行してもよい唯一のエンティティであり、ファームウェア記憶領域のロックが解除されると、ACMは、実際にファームウェア更新をおこなってもよい唯一のエンティティとなる。更に、ACMは、更新されたファームウェアイメージを測定して、更新されたファームウェアの信頼性を、CPUに供給されたパブリックキーを使用して検証してもよい。
図1には、プラットフォームファームウェアを安全に更新することができるコンピュータシステムの一実施形態が示されている。
図には、コンピュータシステム100が図示されている。コンピュータシステムは、デスクトップ、サーバ、ワークステーション、ラップトップ、ハンドヘルドデバイス、TVセットトップ、メディアセンター、ゲームコンソール、(例えば、車に設けられる)統合システム、又は、そのほかの種類のコンピュータシステムであってもよい。幾つかの実施形態では、コンピュータシステム100は、"プロセッサ"とも称される1以上の中央演算処理装置(CPU)を備える。多くの実施形態では、複数のCPUが存在する可能性があるが、図1に示す実施形態では、図示を明瞭にする目的から、1つのCPU102のみが示されている。CPU102は、インテル(登録商標)社のCPU又は別のCPUであってもよい。CPU102は、異なる実施形態では、1以上のコアを有する。図示のCPU102は、4つのコア(コア104、106、108及び110)を有する。
多くの実施形態では、コアはそれぞれ、1以上の実行ユニット、リタイアメントユニット、汎用及び専用レジスタのセット等のインターナル機能ブロックを含む。シングルスレッドコアでは、コアはそれぞれ、ハードウェアスレッドとも称される。コアが、マルチスレッド又はハイパースレッドである場合には、各コア内で動作するスレッドをそれぞれ、ハードウェアスレッドと称してもよい。したがって、コンピュータシステム100内で実行されるシングルスレッドは、ハードウェアスレッドと称される。例えば、図1において、コアがそれぞれシングルスレッドである場合、システム内に4つのハードウェアスレッドが存在することになる(4つのコア)。一方、各コアがマルチスレッドであり、2つのスレッドのステートを同時に維持することができる場合には、システム内に8個のハードウェアスレッドが存在することになる(1つのコアにつき2つのスレッドを有する、4つのコア)。
CPU102は、キャッシュ112のような1以上のキャッシュを有してもよい。図示しない多くの実施形態において、キャッシュ112以外の更なるキャッシュを実装して、各コア及びメモリ内の実行ユニット間にキャッシュの複数レベル(階層)を存在させてもよい。異なる実施形態において、キャッシュ112は、異なる態様で分配されてもよい。また、別の実施形態では、キャッシュ112は、異なるサイズのうちの1つであってもよい。例えば、キャッシュ112は、8メガバイト(MB)キャッシュ、16MBキャッシュ等であってもよい。異なる実施形態では、キャッシュは、ダイレクトマップ・キャッシュ、フルアソシアティブ・キャッシュ、マルチウェイ・セットアソシアティブ・キャッシュ、又は、その他のマッピング方式のキャッシュであってもよい。多くの実施形態では、キャッシュ112は、全てのコアで共有される1つの大きな部分を有する、又は、複数の別個の機能スライス(例えば、各コアにつき1スライス)に分割されてもよい。キャッシュ112はまた、全てのコアによって共有される1つの部分、及び、コア毎の別個の機能スライスとなるその他の部分を有してもよい。
多くの実施形態において、CPU102は、システムメモリ116と通信を行うインターフェースを提供するべく、統合システムメモリコントローラ114を有する。図示しない別の実施形態では、メモリコントローラ114は、コンピュータシステム100内の別個の部分に位置してもよい。
システムメモリ116は、ダブルデータレート(DDR)ランダムアクセセスメモリ(DRAM)のようなDRAM、フラッシュメモリ、相変化メモリ(PCM)のような不揮発性メモリ、又は、その他の種類のメモリ技術を含んでもよい。システムメモリ116は、CPU102によって実行される命令及びデータを格納する汎用メモリであってもよい。更に、ダイレクトメモリアクセス(DMA)可能入出力(I/O)デバイスのような、システムメモリからの読み出し及び書き込みを行う能力を有するその他のデバイスが、コンピュータシステム100内に存在してもよい。
システムメモリ116とCPU102とを連結するリンク(すなわち、バス、インターコネクト等)は、データ、アドレス、制御及びクロック情報を転送可能な1以上の光学配線、金属配線及びその他の配線(すなわち、線)を含んでもよい。
プラットフォーム制御ハブ118(例えば、I/O制御ハブ)は、CPU102と外部I/Oデバイスとの間の通信を可能にするI/Oインターフェースを含む。ハブは、I/Oアダプタ120のような1以上のI/Oアダプタを含んでもよい。I/Oアダプタは、CPU102内で使用されているホスト通信プロトコルを、I/Oデバイス122のような特定のI/Oデバイスと互換性を有するプロトコルへと変換する。所与のI/Oアダプタが変換するプロトコルとして、例えば、ペリフェラル・コンポーネント・インターコネクト(PCI)、ユニバーサル・シリアル・バス(USB)、IDE、SCSI、及び、1394"ファイヤーワイヤ"が挙げられる。1以上の無線プロトコルI/Oアダプタが存在してもよい。無線プロトコルの例として、Bluetooth(登録商標)、IEEE802.11ベースの無線プロトコル、セルラープロトコルが挙げられる。
多くの実施形態において、制御デバイス124は、コンピュータシステム100に存在する。制御デバイス124は、複数の機能を組み込んでもよい。例えば、RAIDストレージ制御デバイスがコンピュータシステム100内に存在してもよい。RAIDコントローラは、ハードディスクドライブ又はソリッドステートディスク(SSD)のアレイを管理してもよい。制御デバイスのその他の例として、ディスクリート帯域外管理可能エンジン(discrete out-of-band manageability engine)、埋め込みマイクロコントローラ、又は、その他の種類のコントローラが挙げられる。
CPU間高速インターフェース126は、1以上の更なるCPUに連結されるリンクへのインターフェースを提供して、CPU間通信を可能としてもよい。例えば、CPU間高速インターフェースは、クイックパスインターコネクト(quick path interconnect:QPI)又はその他の同様なインターフェースであってもよい。
図示していないが、多くの実施形態において、コンピュータシステム100は、仮想マシン(VM)環境において実行される1以上のゲストオペレーティングシステム(OS)を有する仮想化された環境を提供可能なハードウェア及びソフトウェアロジックを含む。仮想マシンモニタ(VMM)又はハイパーバイザを、システム内のロジックに実装して、VMの動作環境それぞれを分離してもよい(すなわち、VM及びOS及びシステム内で実行されるアプリケーションを、システムに存在するその他のVMから分離する及び互いに認知不可能とする)。
多くの実施形態において、システム100には管理可能エンジン128に存在する。管理可能エンジンは、リモート管理、セキュリティ管理及び電力管理に関する管理ロジックを含む複数の機能を有してもよい。多くの実施形態において、管理可能エンジン128は、コンピュータシステム100で動作するオペレーティングシステム(OS)のレベル未満で動作する帯域外(OOB)通信チャネルを利用する。OOBチャネルは、通常、OSの状態に関係なく、リモートシステムとの通信を維持することができる。多くの実施形態において、OOBチャネルは、コンピュータシステム100が低電力状態又は完全にシャットダウンされている場合であっても、通信を継続することができる。ある実施形態では、管理可能エンジン128は、インテル(登録商標)アクティブ・マネージメント・テクノロジー(Active Management Technology)ハードウェアロジックを含む。別の実施形態では、その他の形式のハードウェアロジックを利用する。
多くの実施形態において、ファームウェアは、コンピュータシステム100に格納される。コンピュータシステム100内の任意の場所に格納されたファームウェアは、"プラットフォームファームウェア"と称される場合がある。具体的には、数多くの種類のファームウェアが存在する。例えば、システム管理ファームウェア記憶ロケーション130は、システム管理ファームウェア132を格納してもよい。システム管理ファームウェア130は、拡張可能ファームウェア、基本入出力システム(BIOS)、及び/又は、ブート処理の間のように、コンピュータシステム100の鍵となる命令を供給するのに使用されてもよいその他の種類のファームウェアを含んでもよい。
コンピュータシステム内の別のファームウェアは、制御デバイス124のプラットフォーム制御ファームウェア134を含んでもよい。このファームウェアは、制御デバイス124に連結されたプラットフォーム制御ファームウェア記憶部136に格納されてもよい。プラットフォーム制御ファームウェア132は、制御デバイス124の機能の管理に関する命令を供給してもよい。
多くの異なる実施形態において、システム内のファームウェア記憶ロケーション(例えば、システム管理ファームウェア記憶ロケーション130、プラットフォーム制御ファームウェア記憶ロケーション136等)は、NANDフラッシュ、NORフラッシュ、相変化メモリ、又は、その他の形式の不揮発性メモリを含む。図示を簡略化するために示されていないが、CPUは、グラフィックス及びネットワークトラフィックを取り扱う高速I/Oインターフェースのような更なるインターフェースを有してもよい。多くの実施形態では、このような高速I/Oインターフェースは、1以上のPCIエクスプレスインターフェースを含んでもよい。
コンピュータシステム100は、CPU102によって起動され署名されるソフトウェアモジュールである、認証コードモジュール(ACM)138を安全に起動するコードを格納する。ACM138は、CPU102の製造者によって管理されるプライベートキーを使用した非対称暗号を利用して署名されてもよい。CPU102がACM138を呼び出すと、最初に、CPU102、ディスクリートPCHのようなチップセット関連回路又はコンピュータシステム内のその他の回路に格納されている予め提供されたパブリックキーのハッシュを使用して認証が行われる。パブリックキーは、内部のプライベートキーによって暗号化された情報を解読するのに使用される。一般的に、パブリックキーは不変である。このような周知のセキュリティプロセスを使用してACM138を調べることにより、モジュールは、信頼できる実行環境として認証される。ACMは、セキュリティの観点から、認証コード(AC)モードで実行されてもよい。ACモードでは、全てのシステム割り込み及びイベントによってACMが中断されることはなく、その他のシステム及びDMAエージェントから保護される。ACモードで実行する場合、1つのハードウェアスレッドのみがアクティブとなり、その他のハードウェアスレッドは全てランデブー状態となり、休止/スリープ状態になる。
コンピュータシステム100の第1ブートの間又は前に、ファームウェア更新パブリックキー140が、システム管理ファームウェア記憶部130に供給及び格納されてもよい。ファームウェア更新パブリックキー140は、ファームウェアイメージ情報を認証するのに利用されてもよい。ある実施形態では、パブリックキー140は、ファームウェアイメージの認証にのみ使用される。"パブリックキー"という言葉が使用されるが、ある実施形態では、実際の英数字の暗号化されていないキーを格納し、別の実施形態では、"パブリックキー"は、パブリックキーのハッシュを意味する場合がある。パブリックキーは、プロセッサ内又はその他の場所のリードオンリメモリ(ROM)に格納されてもよい。記憶領域を節約するために、完全なパブリックキーではなく、ハッシュを格納してもよい。コンピュータシステムに書き込むべきファームウェアイメージは、パブリックキーを含んでもよい。イメージにおけるパブリックキーは、ハッシュされて、システムROMに格納されているパブリックキーのハッシュと比較される。特定の実施形態では、更なるセキュリティ対策のために、ハッシュを暗号化してもよい。
多くの実施形態において、コンピュータシステム100は、プラットフォーム・ファームウェア・アーマリング技術(PFAT)モードに入ることができるようになっている。PFATモードでは、プラットフォームファームウェアがロックダウンされる。PFATモードでは、ACモードで動作するACMのみが、コンピュータシステム100内のファームウェア記憶ロケーションに対する更新(すなわち、書き込み)を実行することを許可される。そして、ACMであっても、プラットフォームファームウェア記憶部への書き込みを許可するための特別なプロセスを実行することを要求される。一旦PFATモードに入ると、コンピュータシステムは、このモードから出ることができない。多くの実施形態において、コンピュータシステムのブートの都度、PFATモードに入り、任意のファームウェアが位置するメモリアドレス空間がロックダウンされる。例えば、システム管理ファームウェア記憶部130は、プラットフォーム制御ハブ118を介してCPU102と連結されることから、システム管理ファームウェア記憶部130を対象とした任意の書き込みは、プラットフォーム制御ハブ118を介してルートされる。システムがPFATモードにある場合、(安全なACMベースのロック解除プロセスを先に利用することなく)システム管理ファームウェア記憶部130のために確保されているメモリロケーションへの任意の書き込みの試みは、プラットフォーム制御ハブ118によって拒否される。安全なACMベースのロック解除プロセスについては、以下に説明する。
多くの実施形態では、ブートプロセス間のファームウェア内で実行されているコードは、PFATモードをイネーブルするライトワンスレジスタ(write-once register)を設定してもよい。例えば、プラットフォームに位置するPFAT管理レジスタは、PFATモードをイネーブルするPFATイネーブルビットを有してもよい。ある実施形態では、PFAT管理レジスタは、プラットフォーム制御ハブ118(PFATレジスタ142A)に位置する。別の実施形態では、PFAT管理レジスタは、CPUの非コア内の別の場所に位置する(PFATレジスタ142B)。このレジスタは、PFATモードの管理と関連付けられた幾つかのビットを有してもよい。例えば、PFATレジスタは、設定されるとPFATモードをイネーブルするPFATモードイネーブルビットを含んでもよい。また、PFATレジスタは、設定されると、PFATモードイネーブルビットを更に更新することを許さない(少なくとも、プラットフォームが完全にリセットされるまで)PFATモードロックダウンビットを含んでもよい。ロックダウンビットにより、コンピュータシステム100の通常動作の間に、悪意を持った者がPFATモードをディセーブルすることができないようにする。
上記のように、一旦PFATモードに入ると、システム管理ファームウェア記憶部130を表すメモリアドレス空間への通常の書き込みが許可されない。多くの実施形態では、コンピュータシステム100がPFATモードに入ると、プラットフォーム制御ハブ118は、システム管理ファームウェア記憶部130への書き込みが許可されないことを示すインターナルPCHロックレジスタ144を設定する。PCHロックレジスタ144が設定されると、ファームウェア記憶部130への書き込みを試みる任意のトランザクションは、プラットフォーム制御ハブ118によって破棄される。
多くの実施形態において、OSに加えて実行されるファームウェア更新ロジック146がシステムメモリ116に存在する。ファームウェア更新ロジック146は、コンピュータシステム100に存在する特定のファームウェアを更新するリクエストを受信してもよい。この更新リクエストは、ネットワークを介してシステムアドミニストレータから送信されてもよいし、システム内(例えば、レメディエーションOSからの修正)又は他の場所から送信されてもよい。多くの実施形態において、ファームウェア更新のリクエストは、実際の更新のイメージを伴う。ファームウェアイメージは、リクエストと共に直接送られる、又は、リクエストを受信して受け付けた後に送られる。ファームウェアイメージは、ファームウェアの完全な書き換え(例えば、新しいバージョン)であってもよいし、小さな更新(例えば、ファームウェア全体のうちの小さな部分の書き換え)であってもよい。ある時点で、ファームウェア更新ロジック146は、更新の実際のイメージを受信する。ファームウェア更新イメージは、システムメモリ116内のファームウェアイメージテスト記憶部148に格納される。ファームウェア更新ロジック146がイメージ全体をテスト記憶部に格納すると、ACM138が起動されて、システムがACモードに入る。ファームウェア更新ロジック146を実行する標準モードから、ACモードで動作するACM138実行への遷移の間に、ファームウェア更新ロジック146は、ACM138に、システムメモリ116内のファームウェアイメージテスト記憶部148に対するポインタを受け渡す。この受け渡しには、ポインタを格納するべくCPU102内のレジスタが利用されてもよいし、システムメモリ116内の周知のハンドオフロケーションにポインタが格納されてもよい。
ACモードに入り、ファームウェアイメージが格納されたロケーションが受け渡されると、ACM138は、パブリックキー140を使用してファームウェアイメージの認証プロセスを開始する。認証プロセスは、受信したファームウェアイメージの暗号を解読して調べるのに、非対称暗号化を利用してもよい。多くの実施形態において、コンピュータシステム内に格納された不変パブリックキーを使用して、ベンダから受け取ったファームウェアイメージが真正のものであるかを検証してもよい。多くの実施形態では、パブリックキーは、任意のエンティティがアクセス可能なものであり、別の実施形態では、パブリックキーを格納するストレージロケーションを読み出すことが可能なアクセス権を限定されたエンティティが有してもよい。例えば、ある実施形態では、ACモードのACM138は、CPU102に格納されたパブリックキー140にアクセスできる唯一のエンティティである。
ACM138は、ファームウェアイメージテスト記憶部148に格納されたファームウェアイメージの認証のためのパブリックキーの検証を行う。ファームウェアイメージの認証が成功した場合(すなわち、イメージのセキュリティーが侵害されなかった場合)、ACM138は、CPU102内のロックレジスタ150に対して、特別な書き込みサイクルを実行する。多くの実施形態において、CPU102のロックレジスタ150は、ACモードのACMによって書き込みが可能な唯一の特別なMSR(モデル固有レジスタ)である。したがって、通常モードのOS又は別の同様なエンティティは、このレジスタにアクセスできない。ロックレジスタ150への特別な書き込みサイクルにより、CPU102は、プラットフォーム制御ハブ118へ送信される安全なACMベースのロック解除コマンドを生成する。この安全なロック解除コマンドが到達すると、プラットフォーム制御ハブ118内のロジックは、PCHロックレジスタ144をクリアする。PCHロックレジスタ144がクリアされると、プラットフォーム制御ハブ118は、システム管理ファームウェア記憶部130のアドレス空間への書き込みを許可する。
ファームウェア記憶部への書き込みが許可されると、ACM138は、ファームウェアイメージテスト記憶部148のロケーションからの認証されたファームウェアイメージを、システム管理ファームウェア記憶部130へとコピーする。コピーが完了すると、ACM138は、CPUロックレジスタ150への別の特別な書き込みサイクルを発行することによって、次のロックコマンドを発行してもよく、それにより、プラットフォーム制御ハブ118に送信される安全なACMベースのロックコマンドが生成される。プラットフォーム制御ハブ118がロックコマンドを受信すると、ハブ内のロジックが、PCHロックレジスタ144を設定して、システム管理ファームウェア記憶部130が再び、書き込みをブロックする状態となる。図1の例では、システム管理ファームウェア132の更新について記載した。別の例では、更新は、プラットフォーム制御ファームウェア134に関するものであってもよい。
コンピュータシステム100のブート毎に、一過的な(すなわち、一時的な)パスワードが生成されてもよい。一時的なパスワードを生成するロジックは、CPU102内、システム管理ファームウェア132内、又は、コンピュータシステム100の別の場所に存在してもよい。一時的なパスワードは、通常、オペレーティングシステムによって、コンピュータシステムの通常動作の前のブートシーケンスの初期段階で生成される。生成された一時的なパスワードは、CPU102内の一時的なパスワードレジスタ152にインターナルに格納される。同じパスワードが、通常動作の間にCPUとの安全なハンドシェイクを必要とするコンピュータシステム内の任意のコントローラ又はその他のデバイスに配布される。制御デバイス124のようなコントローラは、ブート時のパスワード分配の間に受信されたパスワードを格納する、内部一時的パスワード記憶ロケーション154を有してもよい。この一時的なパスワードは、安全なブートプロセスの間に、生成、分配及び格納されるため、高いセキュリティを可能にする。通常動作時と比較して、安全なブートプロセス間に不正にアクセスされる可能性は低く、このブートプロセス間に一時的なパスワードを分配することにより、パスワードが盗難される可能性が低くなる。
コンピュータシステム100が完全に動作可能状態となる(例えば、OSが動作する)と、ファームウェア更新ロジック146が、プラットフォーム制御ファームウェア134を更新するリクエストを受信してもよい。リクエストを受信すると、上記で説明した、更新イメージをファームウェアイメージテスト記憶ロケーション148にコピーするのと同じプロセスが実行される。ファームウェア更新ロジック146は、ACM138を起動して、システムの制御をACM138に渡す。ACM138は、イメージの認証を行い、イメージの認証が成功すると、ファームウェア更新の実行を行う。システム管理ファームウェア132の場合とは異なり、ACM138は、プラットフォーム制御ファームウェア134について完全な制御を有さない。
制御デバイス124は、自身のセキュリティプロセスを有して、CPU102とは異なる別個の動作条件を有してもよい。基本的には、制御デバイス124は、制御ファームウェア記憶部136空間への書き込みリクエストが、実際にACM138からのものであることを確かめることを望む。より安全な認証プロセスを生成するべく、ACM138は、制御デバイス124に、制御ファームウェア記憶部136内のアドレス空間に対するファームウェア更新を実行するようリクエストを送信してもよい。このACMベースのリクエストは、一時的なパスワードと共に送信される。
受信したACM138リクエストの信頼性を検証するべく、制御デバイス124は、リクエストと共に受信した一時的なパスワードと、コンピュータシステム100の現在のブートの間に受信した既に格納されている一時的なパスワードとを比較してもよい。多くの実施形態において、制御デバイス124内の更新ロジック156が、この比較を実行する。2つのパスワードが等しい場合には、制御デバイス124は、制御ファームウェア記憶部136のアドレス空間を開放して、ACM138からの書き込みが行われる。2つのパスワードが等しくない場合には、制御ファームウェア記憶部136はロックされたままとなり、制御デバイス124は、セキュリティの問題を示すある種のエラーメッセージを生成してもよい。多くの実施形態において、CPU102内の一時的パスワードレジスタ152に一時的なパスワードを安全に保持するべく、レジスタは、ACモードのACM138のみがアクセス可能であってもよい。多くの実施形態において、ACM138が認証されたファームウェアイメージの制御ファームウェア記憶部136への書き込みを完了すると、ACM138は、更新が完了したことを示す次の通信を制御デバイス124に送信してもよい。これにより、制御デバイス124は、制御ファームウェア記憶空間136への更なる書き込みを許可しないようにすることを知ることができる。
多くの実施形態において、ACMは、ファームウェア更新に対するロールバック保護を実装してもよい。ロールバック保護は、プラットフォームファームウェアの更新を、ファームウェアアップデートイメージの新規のバージョンのみに限定する。ある実施形態では、ファームウェアイメージは、ファームウェアバージョンを含むヘッダを有してもよく、現在存在するファームウェアが同様なヘッダを有する。ACMは、両方のヘッダを読み、新しいファームウェアイメージが、プラットフォームに現在存在するファームウェアよりも新規のバージョンのファームウェアである場合には、新規のファームウェアイメージのみ、ファームウェア記憶ロケーションへの書き込みを許可してもよい。
図2は、プラットフォームコンポーネントハブをロックダウンして、システム管理ファームウェア記憶空間への書きこみを許可するプロセスの一実施形態を示したフローチャートである。プロセスは、ハードウェア回路、ソフトウェアコード、ファームウェアコード、又は、処理ロジックのこれら3種類の任意の組み合わせを含む処理ロジックによって実行されてもよい。本明細書において使用されている"処理ロジック"という言葉が使用されているものは、上記したようなロジックの任意の組み合わせ、及び、その他の形式のロジックに実装されてもよい。
プロセッサのブートの間に、処理ロジックが、コンピュータシステムにおけるファームウェア更新保護メカニズムをアクティブにするPFATモードイネーブルビットを設定すること(処理ブロック200)から、プロセスが開始する。PFATモードイネーブルビットは、コンピュータシステムのPCHデバイス内のファームウェア管理レジスタに位置してもよい。PFATをイネーブルするべくPFATモードイネーブルビットが設定されると、処理ロジックは、PFATモードイネーブルロックダウンビットを設定する(処理ブロック202)。PFATモードイネーブルロックダウンビットは、PFATモードイネーブルビットの更なる変更をさせない。多くの実施形態において、PFATモードイネーブルロックダウンビットは、コンピュータシステムのブート毎ライトワンスビットである。このような実施形態では、コンピュータシステムの完全なリセットの間に、PFATモードロックダウンビットを変更可能である。各ブートにおいて、PFATモードをイネーブルするプロセス、そして、PFATモードをロックダウンするプロセスが発生する。
図2に図示しない別の実施形態では、PFATモードイネーブルビットは、コンピュータシステムの残りの使用期間の間、書き込みを行った後は変更することができないライトワンスレジスタである。このような実施形態では、PFATモードイネーブルビットは、コンピュータシステムのブート毎に1回書き込まれて、その後は、(コンピュータシステムがリブートされるまで)、コンピュータシステムがPFATモードをイネーブルしたか否かを示す。この処理ブロックは、ブロック200として示されている。このような実施形態では、ブートプロセスの間に一度書き込みがあった後は再書き込み可能とならないため、PFATモードイネーブルロックダウンビットは必要ない。このような別の実施形態では、処理ブロック202は必要ない。
このプロセスが終了すると、コンピュータプラットフォームは、ブート処理に戻って続きを実行する。図3Aは、安全なプラットフォームファームウェア更新プロセスを開始するプロセスの一実施形態を示したフローチャートである。
処理ロジックは、プラットフォームファームウェアを更新するリクエストを受信すること(処理ブロック300)から開始する。このリクエストは、コンピュータシステム全体における任意の種類のファームウェアの更新と関連付けられていてもよい。ある実施形態では、これは、システム管理ファームウェアに関しての更新でもよいし、別の実施形態では、プラットフォーム制御ファームウェアに関しての更新でもよいし、更に別の実施形態では、コンピュータシステム/プラットフォームに格納されるその他の種類及びロケーションのファームウェアに関する更新であってもよい。
次の処理ロジックでは、システムメモリ内のロケーションに、リクエストと関連付けられたファームウェアイメージをコピーする(処理ブロック302)。イメージは、更新の種類に応じて、ファームウェア全部であってもよいし、ファームウェアの一部分であってもよい。多くの実施形態では、イメージは暗号化されている。暗号化されたイメージは、パブリックキーを有効に利用する非対称アルゴリズムを使用して暗号化されていてもよい。パブリックキーは、システムが構築された時又はその後で、コンピュータシステムに備えられてもよい。パブリックキーは、システム管理ファームウェア記憶部の安全な部分のような、再書き込みができないメモリロケーションにセキュアに格納されてもよい。図3Aに戻り、ファームウェアイメージがシステムメモリにコピーされると、処理ロジックは、コンピュータシステムの安全なロケーションに格納された利用可能なパブリックキーを使用して、イメージの認証を行う(処理ブロック304)。
図3Aのブロック304は、システム内で起動されたACM内のACモードで動作するロジックによって処理が行われてもよい。ACMの呼び出しについては、図1を参照して上記で説明した。多くの実施形態では、認証プロセスには、システムに格納された不変パブリックキーが、イメージに含まれるパブリックキーと一致するかの検証が含まれる。コンピュータシステムのセキュリティプロセスを利用して、イメージの検証を行ってもよい。イメージの真正を決定するプロセスには幾つかの形態があるが、望ましいのは、イメージが改ざんされたものでないことが確かめられることである。処理ロジックは、イメージが真正のものであると認証されたか否かを確認する(処理ブロック306)。図示されていないが、ファームウェアイメージは、暗号化された形式で送信され、認証の前にイメージの暗号解読を可能とするべくACMがアクセス可能な更なる暗号解読キーが必要となる。
イメージの認証が不成功であった場合は、処理ロジックは、エラーメッセージをCPUに送信する(処理ブロック308)。例えば、処理ロジックは、イメージの認証に失敗/問題があったことを伝達する割り込みを発行してもよい。イメージの認証が成功した場合には(すなわち、イメージが真正であると認証された場合)、処理ロジックは、図3Bに示されるプロセスへと進む。
図3Bは、安全なプラットフォームファームウェア更新プロセスの続きの一実施形態を示すフローチャートである。
プロセスフローのこの時点で、処理ロジック(例えば、ACM内のロジック)は、プラットフォームファームウェア記憶ロケーションのロックを解除して、書き込みを可能にする(処理ブロック310)。プラットフォームファームウェア記憶ロケーションが、(図1を参照して上記で説明したような)システム管理ファームウェア記憶ロケーションである実施形態では、ACM内のロジックは、イメージの真正を検証する時に(図3Aのブロック306)、PCHのロックを解除して、システム管理ファームウェア記憶ロケーションへの書き込みを可能にする。プラットフォームファームウェアが制御記憶部に存在するような別の実施形態では、ファームウェア記憶部への書き込みを行うには別のプロセス(図4で説明する制御ファームウェアベースのプロセス)が必要となる。
図3Bに戻り、プラットフォームファームウェア記憶ロケーションのロックが解除されると、処理ロジックは、ファームウェアイメージを、プラットフォームファームウェア記憶ロケーションにコピーする(処理ブロック312)。そして、認証されたイメージがプラットフォームファームウェア記憶ロケーションにコピーされた後、処理ロジックは、ファームウェア記憶ロケーションをロックして、これ以上書き込みが許可されないようにし(処理ブロック314)、プロセスが終了する。
上記で説明したように、プラットフォームファームウェア記憶部のロックを解除するプロセスは、ファームウェア記憶部が位置する場所に依存する。プラットフォームファームウェア記憶部がシステム管理ファームウェア記憶ロケーションである場合、ロック解除プロセスは、CPUロックレジスタ(図1の150)に書き込みを行うべく、ACモードで実行されるACM(図1の138)を必要としてもよい。多くの実施形態では、CPUロックレジスタは、CPU(図1の102)アンコア内のMSRである。ACモードで動作するACMによってのみ発行される特別な書き込みMSR(WRMSR)コマンドは、CPUロックレジスタへの書き込みを行う。そしてプロセスは、PCH(図1の118)に存在するPCHロックレジスタ(図1の144)を対象とする特別な書き込みを生成する。PCHロックレジスタを対象とする書き込みコマンドは、PCHに、システム管理ファームウェア記憶部(図1の130)への書き込み能力を開放させてもよく、それにより、ACMが、新たなシステム管理ファームウェアイメージを、正しい記憶ロケーションに書き込みを行うことができる。イメージの書き込みが完了した時点で、同様なWRMSRコマンドを同じCPUロックレジスタに発行して、システム管理ファームウェア記憶部をロックすることができる。
図4は、コンピュータシステムの制御ファームウェを安全に更新するプロセスの一実施形態を示したフローチャートである。多くの実施形態において、図4に示すプロセスフローは、対象のコントローラの処理ロジックに加えて、ACM/CPUに対する処理ロジックも含む。ロジックが処理する各ブロックを明確に示すために、図4の左側(点線の左側)は、CPU/ACMに関するロジックを表し、図4の右側(点線の左側)は、コントローラに関するロジックを表す。
CPUベースの処理ロジックは、コンピュープラットフォームのブートシーケンスの間に、一時的パスワードを生成する段階から開始する(処理ブロック400)。一時的パスワードは、現在のシステム管理ファームウェアにより、又は、コンピュータシステム内のその他のロジックにより、ランダムに生成されてもよい。ランダムなパスワードは、CPU内のACMのみがアクセス可能な記憶ロケーションに又はCPUがアクセス可能な別の安全な記憶ロケーションに、処理ロジックによってローカルに格納される(処理ブロック402)。例えば、CPU内の一時的なパスワードレジスタ(図1の152)は、生成された一時的なパスワードを格納してもよく、このレジスタは、ACモードで動作するACMのみがアクセス可能であってもよい。
CPUベースの処理ロジックは、この一時的なパスワードを、コントローラに送信する(処理ブロック404)。制御処理ロジックは、システムブートシーケンスの間に、一時的なパスワードを受信する(処理ブロック406)。この時点で、制御処理ロジックは、システムがまだ通常オペレーションモードに入っておらず、パスワードが改ざんされる機会がないことから、一時的なパスワードが有効であると仮定する。そして、処理ロジックは、受信した一時的なパスワードをローカルに格納する(処理ブロック408)(例えば、図1の一時的なパスワード記憶部154に格納されてもよい)。この時点で、コントローラ内の処理ロジックは、ファームウェア更新リクエストが受信されるまで待機する。
図3Aに戻り、エンティティは、プラットフォームファームウェアの更新をリクエストしてもよく(図3Aの300)、CPU/ACMベースの処理ロジックは、図3Aに関するブロックの処理を行い、新しいコントローラ固有のプラットフォームファームウェアイメージの認証を行う。イメージが認証されると、ACM処理ロジックは、図4の次のブロックの処理を行い、リクエストに一時的なパスワードを含む制御ファームウェアの更新リクエストをコントローラに送信する(処理ブロック410)。制御ロジックは、CPUによって格納された現在の一時的パスワードと共にファームウェア更新リクエストを受信する(処理ブロック412)。次に、制御処理ロジックは、リクエストと共に受信した現在の一時的パスワードと、ブートプロセスの間に受信した信頼性の高い一時的パスワードとを比較する(処理ブロック414)。
比較の結果パスワードが一致する場合には(処理ブロック416)、制御処理ロジックは、ACMによる制御ファームウェア記憶部への書き込みを許可して、更新応答の承諾をACMに送信する(処理ブロック418)。ACMベースの処理ロジックは、図3Bの処理ブロックにおけるコントローラ更新を続けることにより、更新処理を続けることができる。パスワードが一致しなかった場合には、制御処理ロジックは、ACMに拒否応答を送信する(同時に、制御ファームウェア記憶部への書き込みの禁止を継続する)。ACMベースのロジックは、拒否応答を受信し、エラーシーケンスを開始する(処理ブロック422)。エラーシーケンスは、割り込みの生成、エラーフラグの設定、システムのシャットダウン、又は、管理エンジン(図1の128)を介してエラーに関する帯域外情報をITアドミニストレータに送信する等、様々な形態であってもよい。
本発明の実施形態の要素は、機械実行可能命令を格納する機械可読媒体として提供されてもよい。機械可読媒体としては、これに限定されないが、例えば、フラッシュメモリ、光学ディスク、コンパクトディスク・リードオンリーメモリ(CD−ROM)、デジタル多用途ビデオディスク(DVD)ROM、ランダムアクセスメモリ(RAM)、消去可能−プログラム可能リードオンリーメモリ(EPROM)、電気的消去可能−プログラム可能リードオンリーメモリ(EEPROM)、磁気又は光学カード、伝播媒体、又は、電子命令を格納するのに好適なその他の種類の機械可読媒体が含まれる。
上記の記載及び/又は特許請求の範囲では、"備える(comprise)"、"含む(include)"及びこれらの派生語は、互いに同義語として使用されている場合がある。また、本明細書及び特許請求の範囲では、"結合された(coupled)"及び"接続された(connected)"並びにこれらの派生語が使用されることがある。この2つの言葉は、同義語として使用されているのではない。特定の実施例において、"接続された(connected)"は、2つ又は2つ以上の要素が物理的に又は電気的に直接互いに接触していることを示すのに使用され、"連結された(coupled)"も、2つ又は2つ以上の要素が、物理的に又は電気的に直接互いに接触していることを示すが、"連結された(coupled)"は、2つ又は2つ以上の要素が、協動又は相互作用しているが、直接接していない場合も示す。
上記の記載において、本発明の実施形態を説明するのに特定の用語が使用されている。例えば、"ロジック"という言葉は、1以上の機能を実行するハードウェア、ファームウェア、ソフトウェア(又はこれらの任意の組み合わせ)を表している。例えば、"ハードウェア"の例としては、これに限定されないが、集積回路、有限ステートマシーン又は組み合わせロジックが含まれる。集積回路は、マイクロプロセッサのようなプロセッサ、用途特定IC、デジタル信号プロセッサ、マイクロコントローラ等の形態であってもよい。
本明細書において、本発明の"一実施形態"又は"ある実施形態"との表現は、その実施形態に関連する特定の特徴、構造及び特性が、少なくとも本発明の実施形態の一つに含まれていることを意味する。したがって、本明細書中の様々な箇所で使用されている"一実施形態"又は"ある実施形態"という表現は、必ずしも同一の実施形態を示していない。また、本発明の1以上の実施形態において、特定の特徴、構造又は特性を好適に組み合わせてもよい。
同様に、上記の本発明の実施形態の記載では、様々な発明の側面の1以上の理解を助ける開示を短くする目的から、様々な特徴が、1つの実施形態、その図面及び説明に組み込まれている。このような開示の方法は、特許請求される特徴が特許請求の範囲に明確に記載される以上の特徴を必要とするとの意図を反映したものではない。添付の特許請求の範囲に反映されるように、本発明の側面は、上記で開示した1つの実施形態の全ての特徴よりも少ない。したがって、添付の特許請求の範囲は、明確に詳細な説明に組み込まれる。
本発明の例を下記の各項目として示す。
[項目1]
コンピュータプラットフォームによって実行される方法であって、前記方法は、
第1プラットフォームファームウェアを格納するプラットフォームファームウェア記憶ロケーションを有する前記コンピュータプラットフォームのブート時に、前記コンピュータプラットフォームに位置するプラットフォームファームウェア更新メカニズムを、プラットフォーム・ファームウェア・アーマリング技術(PFAT)モードに切り替える段階と、
前記プラットフォームファームウェア更新メカニズムが前記PFATモードに切り替わったことに応答して、プラットフォームコンポーネントハブによって前記プラットフォームファームウェア記憶ロケーションを持続的にロックする段階とを備え、
前記プラットフォームファームウェア記憶ロケーションが持続的にロックされると、認証コードモジュール(Authenticated Code Module:ACM)が前記プラットフォームファームウェア更新メカニズムのロック解除プロセスを実行した後にのみ、前記ACMによる前記プラットフォームファームウェア記憶ロケーションへの書き込みのみが許可される方法。
[項目2]
前記ロック解除のプロセスは、
前記プラットフォームファームウェア更新メカニズムが、PFAT保護制御レジスタに対する特別なメモリ書き込みサイクルを開始する段階を有し、
前記PFAT保護制御レジスタに対する特別なメモリ書き込みサイクルでは、前記プラットフォームファームウェア記憶ロケーションに連結されたコントローラは、前記プラットフォームファームウェア更新メカニズムから、前記プラットフォームファームウェア記憶ロケーションのアドレス空間への書き込みコマンドを受け取る項目1に記載の方法。
[項目3]
前記プラットフォームファームウェア記憶ロケーションにパブリック暗号化キーを供給する段階と、
前記第1プラットフォームファームウェアを更新されたファームウェアイメージで更新するリクエストを受信する段階と、
前記リクエストに応答して、前記コンピュータプラットフォーム内のシステムメモリに前記更新されたファームウェアイメージをロードする段階と、
前記更新されたファームウェアイメージが前記システムメモリに完全にロードされた後に、前記コンピュータプラットフォームのプロセッサによって前記ACMを起動する段階と、
前記ACMによって、前記パブリック暗号化キーを使用して、前記更新されたファームウェアイメージの認証を行う段階と、
前記ACMによって、前記更新されたファームウェアイメージの認証が成功したことに応答して、前記プラットフォームファームウェア記憶ロケーションに対して前記ロック解除プロセスを実行する段階と、
前記ACMによって、前記システムメモリから、認証された前記ファームウェアイメージを前記プラットフォームファームウェア記憶ロケーションにコピーする段階とを更に備える項目2に記載の方法。
[項目4]
前記更新されたファームウェアイメージの前記認証が失敗した場合には、エラーを発行する段階を更に備える項目3に記載の方法。
[項目5]
前記第1プラットフォームファームウェアは、システム管理ファームウェアを含み、
前記コントローラは、前記プラットフォームコンポーネントハブを含む項目2から4の何れか一項に記載の方法。
[項目6]
前記第1プラットフォームファームウェアは、制御管理ファームウェアを含み、
前記コントローラは、前記コンピュータプラットフォームに位置するコントローラを含む項目3又は4に記載の方法。
[項目7]
前記コンピュータプラットフォームのブートの都度、
プロセッサ又はシステム管理ファームウェアの一方によって、一時的パスワードを生成する段階と、
前記ACMのみアクセス可能な安全なロケーションに前記一時的パスワードを格納する段階と、
前記一時的パスワードを、少なくとも、前記プラットフォームファームウェア記憶ロケーションに連結された前記コントローラに配信する段階とを更に備える項目6に記載の方法。
[項目8]
前記パブリック暗号化キーを使用した、前記更新されたファームウェアイメージの前記認証が成功したことに応答して、
前記ACMが、前記制御管理ファームウェアを更新する許可を得るべく、前記一時的パスワードを含むリクエストを前記コントローラに送信する段階と、
前記コントローラが、前記リクエストから受信した前記一時的パスワードと、前記コンピュータプラットフォームの最新のブートの間に受信した一時的パスワードとを比較する段階と、
前記2つの一時的パスワードが等しいことに応答して、前記コントローラが、前記ACMが前記制御管理ファームウェアに対する前記更新を実行することを許可する段階とを更に備える項目7に記載の方法。
[項目9]
第1プラットフォームファームウェアを格納するプラットフォームファームウェア記憶ロケーションを有するコンピュータプラットフォームのブート時に、前記コンピュータプラットフォームに位置するプラットフォームファームウェア更新メカニズムを、プラットフォーム・ファームウェア・アーマリング技術(PFAT)モードに切り替えるロジックと、
前記プラットフォームファームウェア更新メカニズムが前記PFATモードに切り替わったことに応答して、前記プラットフォームファームウェア記憶ロケーションを持続的にロックするロジックとを備え、
前記プラットフォームファームウェア記憶ロケーションが持続的にロックされると、認証コードモジュール(Authenticated Code Module:ACM)が前記プラットフォームファームウェア更新メカニズムのロック解除プロセスを実行した後にのみ、前記ACMによる前記プラットフォームファームウェア記憶ロケーションへの書き込みのみが許可される装置。
[項目10]
PFAT保護制御レジスタに対する特別なメモリ書き込みサイクルを開始するロジックを更に備え、
前記PFAT保護制御レジスタに対する特別なメモリ書き込みサイクルでは、前記プラットフォームファームウェア記憶ロケーションに連結されたコントローラは、前記プラットフォームファームウェア更新メカニズムから、前記プラットフォームファームウェア記憶ロケーションのアドレス空間への書き込みコマンドを受け取る項目9に記載の装置。
[項目11]
前記プラットフォームファームウェア記憶ロケーションにパブリック暗号化キーを供給し、
前記第1プラットフォームファームウェアを更新されたファームウェアイメージで更新するリクエストを受信し、
前記リクエストに応答して、前記コンピュータプラットフォーム内のシステムメモリに前記更新されたファームウェアイメージをロードし、
前記更新されたファームウェアイメージが前記システムメモリに完全にロードされた後に前記ACMを起動し、
前記パブリック暗号化キーを使用して、前記更新されたファームウェアイメージの認証を行い、
前記更新されたファームウェアイメージの認証が成功したことに応答して、前記プラットフォームファームウェア記憶ロケーションに対して前記ロック解除プロセスを実行し、
前記システムメモリから、認証された前記更新されたファームウェアイメージを前記プラットフォームファームウェア記憶ロケーションにコピーするロジックを更に備える項目10に記載の装置。
[項目12]
前記更新されたファームウェアイメージの前記認証が失敗した場合には、エラーを発行するロジックを更に備える項目11に記載の装置。
[項目13]
前記第1プラットフォームファームウェアは、システム管理ファームウェアを含み、
前記コントローラは、プラットフォームコンポーネントハブを含む項目10から12の何れか一項に記載の装置。
[項目14]
前記第1プラットフォームファームウェアは、制御管理ファームウェアを含み、
前記コントローラは、前記コンピュータプラットフォームに位置するコントローラを含む項目11又は12に記載の装置。
[項目15]
前記コンピュータプラットフォームのブートの都度、
一時的パスワードを生成し、
前記ACMのみアクセス可能な安全なロケーションに前記一時的パスワードを格納し、
前記一時的パスワードを、少なくとも、前記プラットフォームファームウェア記憶ロケーションに連結された前記コントローラに配信するロジックを更に備える項目14に記載の装置。
[項目16]
前記パブリック暗号化キーを使用した、前記更新されたファームウェアイメージの前記認証が成功したことに応答して、
前記制御管理ファームウェアを更新する許可を得るべく、前記一時的パスワードを含むリクエストを前記コントローラに送信するロジックと、
前記リクエストから受信した前記一時的パスワードと、前記コンピュータプラットフォームの最新のブートの間に受信した一時的パスワードとを比較する前記コントローラ内のロジックと、
前記2つの一時的パスワードが等しいことに応答して、前記ACMが前記制御管理ファームウェアに対する前記更新を実行することを許可する前記コントローラ内のロジックとを更に備える項目15に記載の装置。
[項目17]
実行されたときにコンピュータプラットフォームに、
第1プラットフォームファームウェアを格納するプラットフォームファームウェア記憶ロケーションを有する前記コンピュータプラットフォームのブート時に、前記コンピュータプラットフォームに位置するプラットフォームファームウェア更新メカニズムを、プラットフォーム・ファームウェア・アーマリング技術(PFAT)モードに切り替える段階と、
前記プラットフォームファームウェア更新メカニズムが前記PFATモードに切り替わったことに応答して、前記プラットフォームファームウェア記憶ロケーションを持続的にロックする段階とを実行させるためのプログラムであって、
前記プラットフォームファームウェア記憶ロケーションが持続的にロックされると、認証コードモジュール(Authenticated Code Module:ACM)が前記プラットフォームファームウェア更新メカニズムのロック解除プロセスを実行した後にのみ、前記ACMによる前記プラットフォームファームウェア記憶ロケーションへの書き込みのみが許可されるプログラム。
[項目18]
前記ロック解除のプロセスは、
前記プラットフォームファームウェア更新メカニズムが、PFAT保護制御レジスタに対する特別なメモリ書き込みサイクルを開始する段階を有し、
前記PFAT保護制御レジスタに対する特別なメモリ書き込みサイクルでは、前記プラットフォームファームウェア記憶ロケーションに連結されたコントローラは、前記プラットフォームファームウェア更新メカニズムから、前記プラットフォームファームウェア記憶ロケーションのアドレス空間への書き込みコマンドを受け取る項目17に記載のプログラム。
[項目19]
前記プラットフォームファームウェア記憶ロケーションにパブリック暗号化キーを供給する段階と、
前記第1プラットフォームファームウェアを更新されたファームウェアイメージで更新するリクエストを受信する段階と、
前記リクエストに応答して、前記コンピュータプラットフォーム内のシステムメモリに前記更新されたファームウェアイメージをロードする段階と、
前記更新されたファームウェアイメージが前記システムメモリに完全にロードされた後に前記ACMを呼び出す段階と、
前記パブリック暗号化キーを使用して、前記更新されたファームウェアイメージの認証を行う段階と、
前記更新されたファームウェアイメージの認証が成功したことに応答して、前記プラットフォームファームウェア記憶ロケーションに対して前記ロック解除プロセスを実行する段階と、
前記システムメモリから、認証された前記更新されたファームウェアイメージを前記プラットフォームファームウェア記憶ロケーションにコピーする段階とを更に前記コンピュータに実行させる項目18に記載のプログラム。
[項目20]
前記更新されたファームウェアイメージの前記認証が失敗した場合には、エラーを発行する段階を更に前記コンピュータに実行させる項目19に記載のプログラム。
[項目21]
前記第1プラットフォームファームウェアは、システム管理ファームウェアを含み、
前記コントローラは、プラットフォームコンポーネントハブを含む項目18から20の何れか一項に記載のプログラム。
[項目22]
前記第1プラットフォームファームウェアは、制御管理ファームウェアを含み、
前記コントローラは、前記コンピュータプラットフォームに位置するコントローラを含む項目19又は20に記載のプログラム。
[項目23]
前記コンピュータプラットフォームのブートの都度、
一時的パスワードを生成する段階と、
前記ACMのみアクセス可能な安全なロケーションに前記一時的パスワードを格納する段階と、
前記一時的パスワードを、少なくとも、前記プラットフォームファームウェア記憶ロケーションに連結された前記コントローラに配信する段階とを更に前記コンピュータに実行させる項目22に記載のプログラム。
[項目24]
前記パブリック暗号化キーを使用した、前記更新されたファームウェアイメージの前記認証が成功したことに応答して、
前記ACMが、前記制御管理ファームウェアを更新する許可を得るべく、前記一時的パスワードを含むリクエストを前記コントローラに送信する段階と、
前記コントローラが、前記リクエストから受信した前記一時的パスワードと、前記コンピュータプラットフォームの最新のブートの間に受信した一時的パスワードとを比較する段階と、
前記2つの一時的パスワードが等しいことに応答して、前記コントローラが、前記ACMが前記制御管理ファームウェアに対する前記更新を実行することを許可する段階とを更に前記コンピュータに実行させる項目23に記載のプログラム。
[項目25]
プラットフォームコンポーネントハブと、
プラットフォームファームウェアを格納するプラットフォームファームウェア記憶部と、
認証コードモジュール(authenticated code module:ACM)を格納するシステムメモリと、
コンピュータプラットフォームのブート時に、前記コンピュータプラットフォームに位置するプラットフォームファームウェア更新メカニズムを、プラットフォーム・ファームウェア・アーマリング技術(PFAT)モードに切り替えるロジックとを備え、
前記プラットフォームファームウェア更新メカニズムが前記PFATモードに切り替わったことに応答して、前記プラットフォームコンポーネントハブは、プラットフォームファームウェア記憶ロケーションを持続的にロックし、
前記プラットフォームファームウェア記憶ロケーションが持続的にロックされると、前記ACMが前記プラットフォームファームウェア更新メカニズムのロック解除プロセスを実行した後にのみ、前記ACMによる前記プラットフォームファームウェア記憶ロケーションへの書き込みのみが許可されるシステム。

Claims (16)

  1. コンピュータプラットフォームによって実行される方法であって、前記方法は、
    第1プラットフォームファームウェアを格納するプラットフォームファームウェア記憶ロケーションを有する前記コンピュータプラットフォームのブート時に、前記コンピュータプラットフォームがリセットされるまで更新されないライトワンスレジスタを設定して、前記コンピュータプラットフォームに位置するプラットフォームファームウェア更新メカニズムを、プラットフォーム・ファームウェア・アーマリング技術(PFAT)モードに切り替える段階と、
    前記プラットフォームファームウェア更新メカニズムが前記PFATモードに切り替わったことに応答して、前記プラットフォームファームウェア記憶ロケーションを持続的にロックする段階とを備え、
    前記プラットフォームファームウェア記憶ロケーションが持続的にロックされると、認証コードモジュール(Authenticated Code Module:ACM)が前記プラットフォームファームウェア更新メカニズムのロック解除プロセスを実行した後に、前記ACMによる前記プラットフォームファームウェア記憶ロケーションへの書き込みが許可され、前記ACM以外のエンティティによる前記プラットフォームファームウェア記憶ロケーションへの書き込みが許可されない
    方法。
  2. 前記ロック解除のプロセスは、
    前記プラットフォームファームウェア更新メカニズムが、PFAT保護制御レジスタに対する特別なメモリ書き込みサイクルを開始する段階を有し、
    前記PFAT保護制御レジスタに対する特別なメモリ書き込みサイクルでは、前記プラットフォームファームウェア記憶ロケーションに連結されたコントローラは、前記プラットフォームファームウェア更新メカニズムから、前記プラットフォームファームウェア記憶ロケーションのアドレス空間への書き込みコマンドを受け取る請求項1に記載の方法。
  3. 前記プラットフォームファームウェア記憶ロケーションにパブリック暗号化キーを供給する段階と、
    前記第1プラットフォームファームウェアを更新されたファームウェアイメージで更新するリクエストを受信する段階と、
    前記リクエストに応答して、前記コンピュータプラットフォーム内のシステムメモリに前記更新されたファームウェアイメージをロードする段階と、
    前記ファームウェアイメージが前記システムメモリに完全にロードされた後に、前記ACMを起動する段階と、
    前記パブリック暗号化キーを使用して、前記更新されたファームウェアイメージの認証を行う段階と、
    前記更新されたファームウェアイメージの認証が成功したことに応答して、前記プラットフォームファームウェア記憶ロケーションに対して前記ロック解除プロセスを実行する段階と、
    前記システムメモリから、認証された前記ファームウェアイメージを前記プラットフォームファームウェア記憶ロケーションにコピーする段階とを更に備える請求項2に記載の方法。
  4. 前記ファームウェアイメージの前記認証が失敗した場合には、エラーを発行する段階を更に備える請求項3に記載の方法。
  5. 前記第1プラットフォームファームウェアは、システム管理ファームウェアを含み、
    前記コントローラは、プラットフォームコンポーネントハブを含む請求項3に記載の方法。
  6. 前記第1プラットフォームファームウェアは、制御管理ファームウェアを含み、
    前記コントローラは、前記コンピュータプラットフォームに位置するコントローラを含む請求項3に記載の方法。
  7. 前記コンピュータプラットフォームのブートの都度、
    一時的パスワードを生成する段階と、
    前記ACMのみアクセス可能な安全なロケーションに前記一時的パスワードを格納する段階と、
    前記一時的パスワードを、少なくとも、前記プラットフォームファームウェア記憶ロケーションに連結された前記コントローラに配信する段階とを更に備える請求項6に記載の方法。
  8. 前記パブリック暗号化キーを使用した、前記更新されたファームウェアイメージの前記認証が成功したことに応答して、
    前記ACMが、前記制御管理ファームウェアを更新する許可を得るべく、前記一時的パスワードを含むリクエストを前記コントローラに送信する段階と、
    前記コントローラが、前記リクエストから受信した前記一時的パスワードと、前記コンピュータプラットフォームの最新のブートの間に受信した一時的パスワードとを比較する段階と、
    前記2つの一時的パスワードが等しいことに応答して、前記コントローラが、前記ACMが前記制御管理ファームウェアに対する前記更新を実行することを許可する段階とを更に備える請求項7に記載の方法。
  9. 第1プラットフォームファームウェアを格納するプラットフォームファームウェア記憶ロケーションを有するコンピュータプラットフォームのブート時に、前記コンピュータプラットフォームがリセットされるまで更新されないライトワンスレジスタを設定して、前記コンピュータプラットフォームに位置するプラットフォームファームウェア更新メカニズムを、プラットフォーム・ファームウェア・アーマリング技術(PFAT)モードに切り替えるロジックと、
    前記プラットフォームファームウェア更新メカニズムが前記PFATモードに切り替わったことに応答して、前記プラットフォームファームウェア記憶ロケーションを持続的にロックするロジックとを備え、
    前記プラットフォームファームウェア記憶ロケーションが持続的にロックされると、認証コードモジュール(Authenticated Code Module:ACM)が前記プラットフォームファームウェア更新メカニズムのロック解除プロセスを実行した後に、前記ACMによる前記プラットフォームファームウェア記憶ロケーションへの書き込みが許可され、前記ACM以外のエンティティによる前記プラットフォームファームウェア記憶ロケーションへの書き込みが許可されない装置。
  10. PFAT保護制御レジスタに対する特別なメモリ書き込みサイクルを開始するロジックを更に備え、
    前記PFAT保護制御レジスタに対する特別なメモリ書き込みサイクルでは、前記プラットフォームファームウェア記憶ロケーションに連結されたコントローラは、前記プラットフォームファームウェア更新メカニズムから、前記プラットフォームファームウェア記憶ロケーションのアドレス空間への書き込みコマンドを受け取る請求項9に記載の装置。
  11. 前記プラットフォームファームウェア記憶ロケーションにパブリック暗号化キーを供給し、
    前記第1プラットフォームファームウェアを更新されたファームウェアイメージで更新するリクエストを受信し、
    前記リクエストに応答して、前記コンピュータプラットフォーム内のシステムメモリに前記更新されたファームウェアイメージをロードし、
    前記ファームウェアイメージが前記システムメモリに完全にロードされた後に前記ACMを起動し、
    前記パブリック暗号化キーを使用して、前記更新されたファームウェアイメージの認証を行い、
    前記更新されたファームウェアイメージの認証が成功したことに応答して、前記プラットフォームファームウェア記憶ロケーションに対して前記ロック解除プロセスを実行し、
    前記システムメモリから、認証された前記ファームウェアイメージを前記プラットフォームファームウェア記憶ロケーションにコピーするロジックを更に備える請求項10に記載の装置。
  12. 前記ファームウェアイメージの前記認証が失敗した場合には、エラーを発行するロジックを更に備える請求項11に記載の装置。
  13. 前記第1プラットフォームファームウェアは、システム管理ファームウェアを含み、
    前記コントローラは、プラットフォームコンポーネントハブを含む請求項11に記載の装置。
  14. 前記第1プラットフォームファームウェアは、制御管理ファームウェアを含み、
    前記コントローラは、前記コンピュータプラットフォームに位置するコントローラを含む請求項11に記載の装置。
  15. 前記コンピュータプラットフォームのブートの都度、
    一時的パスワードを生成し、
    前記ACMのみアクセス可能な安全なロケーションに前記一時的パスワードを格納し、
    前記一時的パスワードを、少なくとも、前記プラットフォームファームウェア記憶ロケーションに連結された前記コントローラに配信するロジックを更に備える請求項14に記載の装置。
  16. 前記パブリック暗号化キーを使用した、前記更新されたファームウェアイメージの前記認証が成功したことに応答して、
    前記制御管理ファームウェアを更新する許可を得るべく、前記一時的パスワードを含むリクエストを前記コントローラに送信するロジックと、
    前記リクエストから受信した前記一時的パスワードと、前記コンピュータプラットフォームの最新のブートの間に受信した一時的パスワードとを比較する前記コントローラ内のロジックと、
    2つの前記一時的パスワードが等しいことに応答して、前記ACMが前記制御管理ファームウェアに対する前記更新を実行することを許可する前記コントローラ内のロジックとを更に備える請求項15に記載の装置。
JP2014223026A 2010-09-22 2014-10-31 方法および装置 Expired - Fee Related JP6137499B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US12/887,866 2010-09-22
US12/887,866 US8522322B2 (en) 2010-09-22 2010-09-22 Platform firmware armoring technology

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP2013529215A Division JP5643901B2 (ja) 2010-09-22 2011-09-12 プラットフォーム・ファームウェア・アーマリング技術

Publications (2)

Publication Number Publication Date
JP2015057722A JP2015057722A (ja) 2015-03-26
JP6137499B2 true JP6137499B2 (ja) 2017-05-31

Family

ID=45818803

Family Applications (2)

Application Number Title Priority Date Filing Date
JP2013529215A Expired - Fee Related JP5643901B2 (ja) 2010-09-22 2011-09-12 プラットフォーム・ファームウェア・アーマリング技術
JP2014223026A Expired - Fee Related JP6137499B2 (ja) 2010-09-22 2014-10-31 方法および装置

Family Applications Before (1)

Application Number Title Priority Date Filing Date
JP2013529215A Expired - Fee Related JP5643901B2 (ja) 2010-09-22 2011-09-12 プラットフォーム・ファームウェア・アーマリング技術

Country Status (6)

Country Link
US (2) US8522322B2 (ja)
JP (2) JP5643901B2 (ja)
CN (1) CN107092495B (ja)
GB (1) GB2497224B (ja)
TW (1) TWI528281B (ja)
WO (1) WO2012039971A2 (ja)

Families Citing this family (66)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8522322B2 (en) * 2010-09-22 2013-08-27 Intel Corporation Platform firmware armoring technology
US9405668B1 (en) * 2011-02-15 2016-08-02 Western Digital Technologies, Inc. Data storage device initialization information accessed by searching for pointer information
US9372699B2 (en) * 2011-04-08 2016-06-21 Insyde Software Corp. System and method for processing requests to alter system security databases and firmware stores in a unified extensible firmware interface-compliant computing device
US9331855B2 (en) 2011-07-01 2016-05-03 Intel Corporation Apparatus, system, and method for providing attribute identity control associated with a processor
US8863109B2 (en) * 2011-07-28 2014-10-14 International Business Machines Corporation Updating secure pre-boot firmware in a computing system in real-time
CN103946806B (zh) 2011-09-29 2017-06-16 英特尔公司 用于提供存储器访问控制的装置、系统和方法
US9596082B2 (en) * 2011-12-15 2017-03-14 Intel Corporation Secure debug trace messages for production authenticated code modules
US9369867B2 (en) 2012-06-29 2016-06-14 Intel Corporation Mobile platform software update with secure authentication
US8898654B2 (en) * 2012-08-29 2014-11-25 Microsoft Corporation Secure firmware updates
US9519786B1 (en) * 2012-10-05 2016-12-13 Google Inc. Firmware integrity ensurance and update
US9910659B2 (en) * 2012-11-07 2018-03-06 Qualcomm Incorporated Methods for providing anti-rollback protection of a firmware version in a device which has no internal non-volatile memory
CN104238954A (zh) * 2013-06-20 2014-12-24 联想(北京)有限公司 一种电子设备及信息处理方法
CN105378663B (zh) * 2013-07-31 2019-01-15 惠普发展公司,有限责任合伙企业 用于更新引导代码的系统和方法
US9507942B2 (en) 2013-11-13 2016-11-29 Via Technologies, Inc. Secure BIOS mechanism in a trusted computing system
US9779243B2 (en) 2013-11-13 2017-10-03 Via Technologies, Inc. Fuse-enabled secure BIOS mechanism in a trusted computing system
US9183394B2 (en) 2013-11-13 2015-11-10 Via Technologies, Inc. Secure BIOS tamper protection mechanism
US9367689B2 (en) 2013-11-13 2016-06-14 Via Technologies, Inc. Apparatus and method for securing BIOS in a trusted computing system
US9798880B2 (en) 2013-11-13 2017-10-24 Via Technologies, Inc. Fuse-enabled secure bios mechanism with override feature
US9767288B2 (en) 2013-11-13 2017-09-19 Via Technologies, Inc. JTAG-based secure BIOS mechanism in a trusted computing system
US9779242B2 (en) 2013-11-13 2017-10-03 Via Technologies, Inc. Programmable secure bios mechanism in a trusted computing system
US10055588B2 (en) 2013-11-13 2018-08-21 Via Technologies, Inc. Event-based apparatus and method for securing BIOS in a trusted computing system during execution
US9547767B2 (en) 2013-11-13 2017-01-17 Via Technologies, Inc. Event-based apparatus and method for securing bios in a trusted computing system during execution
US10049217B2 (en) 2013-11-13 2018-08-14 Via Technologies, Inc. Event-based apparatus and method for securing bios in a trusted computing system during execution
US10095868B2 (en) 2013-11-13 2018-10-09 Via Technologies, Inc. Event-based apparatus and method for securing bios in a trusted computing system during execution
US9129113B2 (en) 2013-11-13 2015-09-08 Via Technologies, Inc. Partition-based apparatus and method for securing bios in a trusted computing system during execution
US10776457B1 (en) * 2014-07-22 2020-09-15 Epic Games, Inc. System and method for preventing execution of unauthorized code
GB201413836D0 (en) 2014-08-05 2014-09-17 Arm Ip Ltd Device security apparatus and methods
WO2016076880A1 (en) * 2014-11-14 2016-05-19 Hewlett Packard Enterprise Development Lp Secure update of firmware and software
US10374805B2 (en) * 2015-07-20 2019-08-06 Intel Corporation Technologies for trusted I/O for multiple co-existing trusted execution environments under ISA control
WO2017019061A1 (en) * 2015-07-29 2017-02-02 Hewlett Packard Enterprise Development Lp Firewall to determine access to a portion of memory
GB2540961B (en) * 2015-07-31 2019-09-18 Arm Ip Ltd Controlling configuration data storage
GB2540965B (en) 2015-07-31 2019-01-30 Arm Ip Ltd Secure configuration data storage
US20170046152A1 (en) * 2015-08-12 2017-02-16 Quanta Computer Inc. Firmware update
US10902112B2 (en) 2015-08-25 2021-01-26 Sekisui House, Ltd. System including a hypervisor
US9767318B1 (en) * 2015-08-28 2017-09-19 Frank Dropps Secure controller systems and associated methods thereof
CN105138378B (zh) * 2015-09-15 2019-06-25 联想(北京)有限公司 一种bios刷写方法及电子设备
CN105335659B (zh) * 2015-12-04 2018-09-14 上海兆芯集成电路有限公司 计算机系统以及计算机系统操作方法
CN105468964B (zh) * 2015-12-04 2018-09-14 上海兆芯集成电路有限公司 计算机系统以及计算机系统操作方法
JP6394999B2 (ja) * 2016-02-29 2018-09-26 京セラドキュメントソリューションズ株式会社 電子機器および接続情報管理プログラム
US10042571B2 (en) * 2016-03-31 2018-08-07 Intel Corporation Techniques to provide run-time protections using immutable regions of memory
CN106339740B (zh) * 2016-06-08 2019-05-31 陈时军 一种物品唯一标识管控方法和应用该方法的管控系统
KR102617354B1 (ko) * 2017-01-05 2023-12-26 삼성전자주식회사 보안 부트 시퀀서 및 보안 부트 장치
WO2018209513A1 (zh) * 2017-05-15 2018-11-22 华为技术有限公司 操作硬盘的方法和硬盘管理器
US11231448B2 (en) 2017-07-20 2022-01-25 Targus International Llc Systems, methods and devices for remote power management and discovery
US11030316B2 (en) * 2018-09-20 2021-06-08 Samsung Electronics Co., Ltd. System and method for providing security protection for FPGA based solid state drives
US10846162B2 (en) * 2018-11-29 2020-11-24 Oracle International Corporation Secure forking of error telemetry data to independent processing units
US20220058269A1 (en) * 2018-12-19 2022-02-24 Telit Communications S.P.A. Systems and methods for managing a trusted application in a computer chip module
JP7138043B2 (ja) * 2018-12-28 2022-09-15 日立Astemo株式会社 情報処理装置
US10963592B2 (en) 2019-02-05 2021-03-30 Western Digital Technologies, Inc. Method to unlock a secure digital memory device locked in a secure digital operational mode
JP2020149236A (ja) 2019-03-12 2020-09-17 キオクシア株式会社 電子機器及び電子機器の制御方法
US11232210B2 (en) 2019-03-26 2022-01-25 Western Digital Technologies, Inc. Secure firmware booting
US10839877B1 (en) 2019-04-23 2020-11-17 Nxp Usa, Inc. Register protection circuit for hardware IP modules
US10776102B1 (en) 2019-05-10 2020-09-15 Microsoft Technology Licensing, Llc Securing firmware installation on USB input device
US11016755B2 (en) * 2019-07-31 2021-05-25 Dell Products L.P. System and method to secure embedded controller flashing process
TWI714220B (zh) * 2019-08-16 2020-12-21 致伸科技股份有限公司 通用串列匯流排裝置及其韌體更新方法
CA3148974C (en) 2019-08-22 2024-06-25 Targus International Llc Systems and methods for participant-controlled video conferencing
TWI720694B (zh) * 2019-11-18 2021-03-01 中華電信股份有限公司 具時間序列演算之燒錄認證裝置及方法
US10997297B1 (en) 2019-12-06 2021-05-04 Western Digital Technologies, Inc. Validating firmware for data storage devices
US11477033B2 (en) * 2020-02-05 2022-10-18 Nxp B.V. Authentication without pre-known credentials
US11294582B2 (en) 2020-09-08 2022-04-05 Micron Technology, Inc. Customer-specific activation of functionality in a semiconductor device
CN112764785B (zh) * 2020-12-24 2021-10-29 江苏云涌电子科技股份有限公司 一种自动升级多级控制器的方法
US11741232B2 (en) * 2021-02-01 2023-08-29 Mellanox Technologies, Ltd. Secure in-service firmware update
US12111958B2 (en) * 2021-05-13 2024-10-08 AO Kaspersky Lab Systems and methods for verifying the integrity of a software installation image
US12073205B2 (en) 2021-09-14 2024-08-27 Targus International Llc Independently upgradeable docking stations
US12020021B2 (en) * 2022-06-13 2024-06-25 Xilinx, Inc. Impactless firmware update
TWI807947B (zh) * 2022-08-01 2023-07-01 精英電腦股份有限公司 多顆嵌入式控制器的更新和檢驗方法與其電子設備

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5210854A (en) * 1989-06-14 1993-05-11 Digital Equipment Corporation System for updating program stored in eeprom by storing new version into new location and updating second transfer vector to contain starting address of new version
JP3561211B2 (ja) * 2000-06-27 2004-09-02 株式会社東芝 情報処理装置および不揮発性記憶装置の書き換え制御方法
US20040076043A1 (en) * 2002-10-21 2004-04-22 Phoenix Technologies Ltd. Reliable and secure updating and recovery of firmware from a mass storage device
US7109092B2 (en) * 2003-05-19 2006-09-19 Ziptronix, Inc. Method of room temperature covalent bonding
US7546596B2 (en) * 2004-03-29 2009-06-09 International Business Machines Corporation Non-disruptive method, system and program product for overlaying a first software module with a second software module
TWI259974B (en) 2004-09-16 2006-08-11 Mediatek Inc Optical disk drive capable of updating firmware and firmware updating method thereof
US20060140399A1 (en) * 2004-12-28 2006-06-29 Young David W Pre-calculation mechanism for signature decryption
US7603562B2 (en) * 2005-02-02 2009-10-13 Insyde Software Corporation System and method for reducing memory requirements of firmware
JP2007172062A (ja) * 2005-12-19 2007-07-05 Toshiba Corp 情報処理装置およびアクセス制御方法
US8429418B2 (en) * 2006-02-15 2013-04-23 Intel Corporation Technique for providing secure firmware
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
US20080244553A1 (en) * 2007-03-28 2008-10-02 Daryl Carvis Cromer System and Method for Securely Updating Firmware Devices by Using a Hypervisor
US7827371B2 (en) * 2007-08-30 2010-11-02 Intel Corporation Method for isolating third party pre-boot firmware from trusted pre-boot firmware
US20090172639A1 (en) * 2007-12-27 2009-07-02 Mahesh Natu Firmware integrity verification
US7984286B2 (en) * 2008-06-25 2011-07-19 Intel Corporation Apparatus and method for secure boot environment
US8522322B2 (en) * 2010-09-22 2013-08-27 Intel Corporation Platform firmware armoring technology

Also Published As

Publication number Publication date
WO2012039971A3 (en) 2012-07-19
CN107092495B (zh) 2020-09-22
US20120072734A1 (en) 2012-03-22
TWI528281B (zh) 2016-04-01
CN107092495A (zh) 2017-08-25
GB201302491D0 (en) 2013-03-27
TW201218079A (en) 2012-05-01
WO2012039971A2 (en) 2012-03-29
GB2497224B (en) 2018-08-01
US9092632B2 (en) 2015-07-28
JP2015057722A (ja) 2015-03-26
JP5643901B2 (ja) 2014-12-17
JP2013537343A (ja) 2013-09-30
CN103119553A (zh) 2013-05-22
GB2497224A (en) 2013-06-05
US20130219191A1 (en) 2013-08-22
US8522322B2 (en) 2013-08-27

Similar Documents

Publication Publication Date Title
JP6137499B2 (ja) 方法および装置
US10762216B2 (en) Anti-theft in firmware
Raj et al. {fTPM}: A {Software-Only} Implementation of a {TPM} Chip
JP6404283B2 (ja) 安全な環境を初期化する命令を実行するシステムおよび方法
US7900252B2 (en) Method and apparatus for managing shared passwords on a multi-user computer
US8332604B2 (en) Methods to securely bind an encryption key to a storage device
US20160012233A1 (en) Verifying integrity of backup file in a multiple operating system environment
US20030196100A1 (en) Protection against memory attacks following reset
TWI542992B (zh) 用以確保平臺矽組態完整性之方法與設備
TW201535145A (zh) 使用保護讀取儲存器安全地儲存韌體數據之系統及方法
JP2006507548A (ja) 認証コード方法及び装置
Raj et al. ftpm: A firmware-based tpm 2.0 implementation
EP3757838B1 (en) Warm boot attack mitigations for non-volatile memory modules
US20080104711A1 (en) System and method for an isolated process to control address translation

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20160128

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20160209

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20160509

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20160711

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A132

Effective date: 20161213

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20170313

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20170418

R150 Certificate of patent or registration of utility model

Ref document number: 6137499

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees