JP2015531500A - 安全なファームウェア更新 - Google Patents

安全なファームウェア更新 Download PDF

Info

Publication number
JP2015531500A
JP2015531500A JP2015529910A JP2015529910A JP2015531500A JP 2015531500 A JP2015531500 A JP 2015531500A JP 2015529910 A JP2015529910 A JP 2015529910A JP 2015529910 A JP2015529910 A JP 2015529910A JP 2015531500 A JP2015531500 A JP 2015531500A
Authority
JP
Japan
Prior art keywords
firmware
computing device
update
hardware resources
updates
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.)
Ceased
Application number
JP2015529910A
Other languages
English (en)
Inventor
ヤング,ロバート・ディー
フダリー,スコット・エイ
モンゴメリー,ウォーレス・ポール
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Microsoft Corp
Original Assignee
Microsoft Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from US13/597,641 external-priority patent/US9218178B2/en
Application filed by Microsoft Corp filed Critical Microsoft Corp
Publication of JP2015531500A publication Critical patent/JP2015531500A/ja
Ceased legal-status Critical Current

Links

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/572Secure firmware programming, e.g. of basic input output system [BIOS]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y04INFORMATION OR COMMUNICATION TECHNOLOGIES HAVING AN IMPACT ON OTHER TECHNOLOGY AREAS
    • Y04SSYSTEMS INTEGRATING TECHNOLOGIES RELATED TO POWER NETWORK OPERATION, COMMUNICATION OR INFORMATION TECHNOLOGIES FOR IMPROVING THE ELECTRICAL POWER GENERATION, TRANSMISSION, DISTRIBUTION, MANAGEMENT OR USAGE, i.e. SMART GRIDS
    • Y04S40/00Systems for electrical power generation, transmission, distribution or end-user application management characterised by the use of communication or information technologies, or communication or information technology specific aspects supporting them
    • Y04S40/20Information technology specific aspects, e.g. CAD, simulation, modelling, system security

Landscapes

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

Abstract

ハードウェア・リソースに対するファームウェア更新を集合的に、定められた一貫性のある仕方で処理する、安全なファームウェア更新について記載する。ファームウェア更新システムは、少なくとも一部のファームウェア更新をブート前環境(例えば、オペレーティング・システムがロードされる前)において管理するように構成することができる。このようにすることによって、ファームウェア更新システムは、複数の更新にわたって制御を遂行し、攻撃者に露出されるエントリー・ポイントを減少させることができる。1つの手法では、ハードウェア・リソースに対して更新状態を定め、ファームウェア更新システムによって管理する。ブート前環境では、被管理ハードアウェア・リソースに対する更新状態を、ファームウェア更新を有効にするように設定する。次いで、ファームウェア更新システムは、被管理ハードウェア・リソースに入手可能なファームウェア更新を検出し適用することができる。安全なブート前環境の外部において被管理リソースに対するファームウェア更新が無効にされるように、オペレーティング・システムをロードする前に、更新状態を無効に設定することができる。【選択図】図1

Description

本発明は、ハードウェア・リソースに対する安全なファームウェア更新に関するものである。
[0001] 計算プラットフォームの異なるハードウェア・リソース(例えば、モジュール、コンポーネント、およびデバイス)は、ファームウェアを有することがあり、このファームウェアの更新が随時公開されている。従前では、独立ハードウェア販売業者(IHV)および相手先ブランド名製造業者(OEM)が、彼ら自身のハードウェア・リソースのためにファームウェア更新を処理する責任を負っていた。したがって、異なる販売業者および製造業者が、更新されたファームウェアを展開および適用するために、異なる、独立した、および/または企業固有のメカニズムおよびシステムを制定することがあり、通常、これらはブート後環境(例えば、オペレーティング・システムが計算プラットフォームによってロードされた後)において動作する。これら多数のサード・パーティ・メカニズムは、対応するエントリー・ポイントを提供することによって、ハードウェア・リソースに不適切なおよび/または悪意のあるファームウェアを注入するために利用される虞があり、セキュリティ上の脅威を生む可能性がある。したがって、ブート後環境において有効にされる従前のファームウェア更新は、計算プラットフォームの制御を乗っ取るためおよび/または計算プラットフォームに対する危害を加えるために潜在的に使用されるかもしれないセキュリティ上の脅威を引き起こす。
[0002] この摘要は、詳細な説明において以下で更に説明する概念から選択したものを、簡略化した形態で紹介するために設けられている。この摘要は、特許請求する主題の主要な特徴や必須の特徴を特定することを意図するのではなく、特許請求する主題の範囲を限定するために使用されることを意図するのでもない。
[0003] 安全なファームウェア更新について記載する。1つ以上の実施形態では、ハードウェア・リソースのためにファームウェア更新を、定められた一貫性のある仕方で集合的に処理するために、ファームウェア更新システムを実装する。ファームウェア更新システムは、少なくとも一部のファームウェア更新をブート前環境(例えば、オペレーティング・システムがロードされる前)において処理するように構成することができる。このようにすることによって、ファームウェア更新システムは、複数の更新にわたって制御を遂行し、攻撃者に露出されるエントリー・ポイントを減少させることができる。1つの手法では、ハードウェア・リソースに対して更新状態が定められ、ファームウェア更新システムによって管理される。ブート前環境では、被管理ハードウェア・リソースに対する更新状態は、ファームウェア更新を有効にするように設定される。次いで、ファームウェア更新システムは、被管理ハードウェア・リソースに入手可能なファームウェア更新を検出し適用することができる。更新の適用に続いて、ファームウェア更新を無効にするように更新状態が設定され、オペレーティング・システムがロードされる。ロードされたオペレーティング・システムのランタイム環境において、被管理ハードウェア・リソースに対して ファームウェア更新が無効にされる。
図1は、安全なファームウェア更新の1つ以上の実施形態を採用することができる動作環境例を示す。 図2は、1つ以上の実施形態によるデバイスのリソース例を示す図である。 図3は、1つ以上の実施形態による手順例の詳細を記述する流れ図である。 図4は、1つ以上の実施形態による他の手順例の詳細を記述する流れ図である。 図5は、1つ以上の実施形態による更に他の手順例の詳細を記述する流れ図である。 図6は、種々の実施形態を実現することができるシステムのブロック図である。
全体像
[0010] 従前では、独立ハードウェア販売業者(IHV)および相手先ブランド名製造業者(OEM)が、彼ら自身のハードウェア・リソースのためにファームウェア更新を処理する責任を負っていたが、制御されないエントリー・ポイントを露出する可能性があり、攻撃者は悪意のあるファームウェアを注入するためにこれらのエントリー・ポイントを悪用する虞がある。
[0011] 安全なファームウェア更新について記載する。1つ以上の実施形態では、ハードウェア・リソースのためにファームウェア更新を、定められた一貫性のある仕方で集合的に処理するために、ファームウェア更新システムを実装する。ファームウェア更新システムは、少なくとも一部のファームウェア更新をブート前環境(例えば、オペレーティング・システムがロードされる前)において処理するように構成することができる。このようにすることによって、ファームウェア更新システムは、複数の更新にわたって制御を遂行し、攻撃者に露出されるエントリー・ポイントを減少させることができる。1つの手法では、ハードウェア・リソースに対して更新状態が定められ、ファームウェア更新システムによって管理される。ブート前環境では、被管理ハードウェア・リソースに対する更新状態は、ファームウェア更新を有効にするように設定される。次いで、ファームウェア更新システムは、被管理ハードウェア・リソースに入手可能なファームウェア更新を検出し適用することができる。更新の適用に続いて、ファームウェア更新を無効にするように更新状態が設定され、オペレーティング・システムがロードされる。ロードされたオペレーティング・システムのランタイム環境において、被管理ハードウェア・リソースに対してファームウェア更新が無効にされる。
[0012] 以下に続く論述では、「動作環境」と題する章が設けられ、1つ以上の実施形態を採用することができる1つの環境について説明する。これに続いて、「安全なファームウェア更新の例」と題する章では、1つ以上の実施形態による技法例および詳細について説明する。最後に、「システム例」と題する章では、1つ以上の実施形態を実現するために利用することができる計算システムおよびデバイスの例について説明する。
動作環境
[0013] 図1は、1つ以上の実施形態による動作環境を示し、全体的に100とする。環境100は、計算デバイス102を含み、計算デバイス102は、処理システム104、1つ以上のコンピューター読み取り可能媒体106、オペレーティング・システム108、および1つ以上のアプリケーション110を有する。アプリケーション110は、コンピューター読み取り可能媒体上に存在し、プロセッサー(1つまたは複数)によって実行可能である。処理システム104は、アプリケーション110からコンピューター・プログラム命令を引き出して実行し、広範囲の機能性を計算デバイス102に提供するように、種々の方法で構成することができる。広範囲の機能性には、ゲーミング、オフィス生産性、電子メール、メディア管理、印刷、ネットワーキング、ウェブ閲覧等が含まれるが、これらに限定されるのではない。アプリケーション110に関する種々のデーターおよびプログラム・ファイルも含むことができ、その例には、ゲーム・ファイル、オフィス文書、マルチメディア・ファイル、電子メール、データー・ファイル、ウェブ・ページ、ユーザー・プロファイル、および/または好みデーター等が含まれる。
[0014] 計算デバイス102は、限定ではなく一例として、ゲーミング・システム、デスクトップ・コンピューター、携帯用コンピューター、タブレットまたはスレート・コンピューター、パーソナル・ディジタル・アシスタント(PDA)のようなハンドヘルド・コンピューター、セル・フォン、セット・トップ・ボックス等というような、任意の適した計算システムおよび/またはデバイスとして具体化することができる。例えば、図1に示すように、計算デバイス102は、テレビジョン・クライアント・デバイス112、コンピューター114、および/または メディア・コンテンツを表示するためにディスプレイ・デバイス118に接続されるゲーミング・システム116として実現することができる。あるいは、計算デバイスは、任意のタイプの携帯用コンピューター、移動体電話機、携帯用デバイス120、タブレットまたはスレート・デバイス122であってもよく、および/または一体化されたディスプレイを含むこともできる。これらの計算デバイスはいずれも、1つ以上のプロセッサーおよびメモリー・デバイスというような種々のコンポーネント、ならびに異なるコンポーネントの任意の組み合わせによって実現することができる。計算デバイス102を含む種々のシステムおよび/またはデバイスを表すことができる計算システムの一例を図6に示し、以下で説明する。
[0015] コンピューター読み取り可能媒体は、一例としてそして限定ではなく、計算デバイスと通例関連付けられるあらゆる形態の揮発性および不揮発性メモリーおよび/または記憶媒体を含むことができる。このような媒体は、ROM、RAM、フラッシュ・メモリー、ハード・ディスク、リムーバブル媒体等を含むことができる。コンピューター読み取り可能媒体は、「コンピューター読み取り可能記憶媒体」および「通信媒体」の双方を含むことができ、これらの例は、図6の計算システム例の論述において見出すことができる。
[0016] また、計算デバイス102は、種々の異なるハードウェア・リソース124も含み、これらのハードウェア・リソース124は、通例計算デバイスと関連付けられる異なるコンポーネントおよびデバイスを表す。ハードウェア・リソース124は、一体コンポーネント、リムーバブル・コンポーネント、ならびに有線および/またはワイヤレス接続を通じて計算デバイス102に接続可能な外部周辺デバイスを含むことができる。ハードウェア・リソース124の少なくとも一部は、関連するファームウェア126を有し、以上で説明した技法および以下で説明する技法にしたがって、これらのファームウェア126を更新することができる。ハードウェア・リソース124のいくつかの例について、以下で図2に関して論ずる。
[0017] また、図1の計算デバイス102は、ファームウェア・システム128および安全更新モジュール130も含み、これらはコンピューター読み取り可能媒体上に存在し、プロセッサー(1つまたは複数)によって実行可能である。ファームウェア・システム128は、以上で説明したようにそして以下で説明するように、複数のハードウェア・リソース124に対するファームウェア更新を集合的に管理するために、ファームウェア・インターフェースを実装し、種々の技法を実行する機能性を表す。ファームウェア・システム128は、図1に図示した単体コンポーネントとして実装することもできる。また、ファームウェア・システム128は、オペレーティング・システム108の一体コンポーネントとして実装することもできる。
[0018] 安全更新モジュール130は、以上で説明したそして以下で説明する安全なファームウェア更新のための技法を実現する機能性を表す。具体的には、安全更新モジュールは、計算デバイスから選択されたハードアウェア・リソースに対する更新を管理することができる。広義に言えば、これは、ブート前環境において被管理ハードアウェア・リソースに対する更新を有効にし、ファームウェア・システム128を呼び出してこれと相互作用して、ブート前環境において、入手可能なファームウェア更新の適用を行わせ、その後OSのブーティング(booting)前に被管理ハードウェア・リソースに対するファームウェア更新を無効にすることを含む(involve)。このように、被管理ハードウェア・リソースに対するファームウェア更新は、安全更新モジュール130によって制御される安全なブート前環境の外部では無効にされる。安全更新モジュール130は、図1に示したような単体コンポーネントとして実装することもできる。安全更新モジュール130および/またはファームウェア・システム128に関係して本明細書において説明する機能性には、計算デバイス102のブート・プログラムによって、および/またはオペレーティング・システム108によって実現されるとよいものもある。
[0019] ファームウェア・システム128によるファームウェア更新の管理は、リソースの発見、ならびにファームウェア更新システムを通じてファームウェア更新を得るために登録された、言い換えると、指定された特定のリソースに対するファームウェア更新の検出、分析、取得、配布(distribution)、インストール、および追跡を含むことができるが、これらに限定されるのではない。一般的に言うと、システムによるファームウェア処理(handling)のために指定されたリソースを特定し、これらのリソースに対して入手可能な更新を検出する。更に、ファームウェア・システム128は、適した形態で更新を取得し、インストールを開始するためにこれらの更新をしかるべきリソースに展開/配布するように動作することができる。また、ファームウェア・システム128は、成功または失敗を識別し、インストールされたファームウェアについてのバージョン情報を記録し、ファームウェアのロールバック(rollback)を有効にする等のために、更新の追跡を実行することもできる。
[0020] このように、ファームウェア更新は、ブート前環境において、安全更新モジュール130がファームウェア・システム128と共に安全に実行することができる。ファームウェア更新の処理は、ファームウェア・システム128に委託され(offload)、ファームウェア・システム128は、異なるハードウェア・リソースおよび/または対応するIHVおよびOEMの代わりに、ファームウェア更新を集合的に管理するように構成される。安全更新モジュール130は、次に、ブート前環境の外部でファームウェア更新を無効にするように動作する。これらおよびその他の態様については、後続の図に関して更に詳しく説明する。
[0021] ファームウェア・システムによる管理に指定することができる種々の異なるハードウェア・リソース124について考える。一例としてそして限定ではなく、図2は、計算デバイス例102に関係するいくつかの代表的ハードウェア・リソース124を、全体的に200で示す。図2に示す計算デバイス102は、システム・ファームウェア202を含む。システム・ファームウェア202は、デバイスの特定の処理システム、アーキテクチャー、および/またはプラットフォームと関連付けることができ、この例では、種々の方法で構成することができえる中央処理ユニット(CPU)124(1)として図示されている。例えば、CPUは、多数の異なる一体ハードウェア・コンポーネントを1つのチップとして含むように構成されたチップ上システム(SoC)プロセッサーとして実現することもできる。ARMベースおよびx86アーキテクチャーを含む他のタイプのCPUアーキテクチャーも考えられる。更新可能である対応するデバイス・ファームウェア204を有することができる、図2に示す種々の他のハードウェア・リソースの例には、異なる通信無線機124(2)(例えば、WiFi、移動体ブロードバンド、Bluetooth(登録商標)、近場通信(NFC)等)、マイクロプロセッサー124(3)、センサー124(4)(例えば、カメラ、ジャイロスコープ、加速度計、GPS、圧力センサー、近接センサー等)、コントローラー124(4)(例えば、タッチ・コントローラー、オーディオ/ビデオ・コントローラー、メモリー・コントローラー、USBコントローラー等)、および計算デバイスのその他124(5)の一体ハードウェア・リソースが含まれる。
[0022] また、本明細書において説明する安全なファームウェア更新のための技法は、対応するインターフェース208を介して計算デバイス102に接続可能なアクセサリー・デバイス206にも適用することができる。有線および/またはワイヤレス・インターフェースを介して接続することができる種々の異なるアクセサリーが考えられる。アクセサリー・デバイス206は、対応するポート、ベイ、または計算デバイス102の他の一体接続部を介して受け入れられ接続されるように構成された、外部周辺デバイスおよび/またはリムーバブルで交換可能なデバイスを含む。異なるアクセサリー・デバイス206を、異なる時点に計算デバイス102に接続することもできる。少なくとも一部のアクセサリー・デバイス206は、電源が入ったまま交換可能な(例えば、プラグ・アンド・プレイ)デバイスである。一例としてそして限定ではなく、アクセサリー・デバイス206は、入力デバイス206(1)(例えば、キーボード、マウス、スタイラス等)、出力デバイス206(2)(例えば、スピーカー、ハンドセット、プリンター等、およびディスプレイ・デバイス206(3)、更にはゲーム・コントローラー、電源アダプター、音楽アクセサリー・デバイス等のような種々の他の206(4)デバイスを含むことができる。アクセサリー・デバイス206は、図2に示すようなデバイス上に維持される関連ファームウェア204を有することもできる。関連ファームウェア204は、ファームウェア・システムを通じて更新することができる。
[0023] 各リソースは、適宜、それ自体の関連デバイス・ファームウェア204を有することができる。デバイス・ファームウェア204に対する更新をリソースと照合し、一体デバイスおよびアクセサリー・デバイス双方に個々に適用することができる。加えてまたは代わりに、あるリソースのデバイス・ファームウェア204を、システム・ファームウェア202に対する更新の一部として、組み合わせて更新することもできる。例えば、複数のマイクロプロセッサー、コントローラー、および他のコンポーネントを、SoCプロセッサーまたは他のCPUの一部として一体化することもでき、一緒に更新することができる。一般に、本明細書において説明する安全なファームウェア更新は、ブート前環境において、一体化コンポーネントおよびアクセサリー・デバイスの双方を含むことができる、指定されたハードウェア・リソースから選択されたグループに選択的に適用することができる。本システムによる管理のために指定されたハードウェア・リソースは、種々の判断基準にしたがって、計算デバイスの中核コンポーネントとして選択されてもよい。例えば、中核ハードウェア・リソースは、計算デバイスの製造業者によって開発されたリソース、または計算デバイスの製造業者と密接に関連があるリソース、パートナーOEM/IHVと関連があるリソース、中核処理/メモリー/ディスプレイ・コンポーネントのようなデバイスの動作およびユーザー体験に肝要であると考えられるリソース、および/またはデバイス設計および/またはデフォルト構成の一部として設けられるリソースを含むとよい。SoC設計の一体コンポーネントは、本システムによる集合的管理に指定することができる中核ハードウェア・リソースの一例である。また、多数の他のプロセッサー、コントローラー、および/または他の個々のコンポーネントも、本システムによるファームウェアの管理のために指定することができる。
[0024] 場合によっては、一部の選択されていないハードウェア・リソースに対するファームウェア更新をファームウェア・システム128の外部で管理すること、および/または従前の技法を使用してブート後環境において管理することもできる。1つ以上の実施形態では、しかしながら、安全更新モジュール130は、いずれのファームウェア更新でも、ブート前環境の外部で行われるのを制限または防止するように構成することもできる。この手法では、安全更新モジュール130は、安全な仕方でファームウェア・システム128を通じて計算デバイスの各ハードウェア・リソース124に対するファームウェア更新を制御するように実装される。
[0025] 以上、動作環境例について説明したので、これより、1つ以上の実施形態による安全なファームウェア更新に関する詳細な例について検討する。
安全なファームウェア更新の例
[0026] 以下の章では、安全なファームウェア更新のための実施態様の詳細および技法例について論ずる。この論述は、任意の適したハードウェア、ソフトウェア、ファームウェア、またはその組み合わせと関連付けて実施することができる手順例(1つまたは複数)を含む。少なくとも一部の実施形態では、これらの手順は、ファームウェア・システム128および安全更新モジュール130を含むまたそうでなければ利用する図1の計算デバイス例102のような、適切に構成された計算デバイスによって実施することができる。
[0027] 図3は、安全なファームウェア更新がブート前環境において実行される手順例300を示す。計算デバイスの起動に応答して、安全なブート前環境を確立する(ブロック302)。具体的には、計算デバイスに電力が投入されたときまたは再起動されたとき、通常、このデバイスに内蔵された一体ブート・プログラムが実行して、システムを初期化し、自己検査を実行し、システムのハードウェア・リソース124を識別する。更に、ブート・プログラムは、ハードウェア・リソースを使用に併せて構成し、デバイスのオペレーティング・システムをロードするための動作も実行することができる。
[0028] ブート・プログラムは、本明細書において説明するようなファームウェア・システム128および/または安全更新モジュール130を含む、またはこれらを利用することができる。ファームウェア・システム128および/または安全更新モジュール130は、ハードウェア・リソースを初期化し、リソースに適したドライバをロードし、更にそれ以外ではシステムを設定するためのブート・シーケンスに定められた動作を実行するように構成されたファームウェア・インターフェースを設ける。本明細書において説明した技法は、種々の異なるタイプのファームウェア・システムと併せて実現することができる。適したファームウェア・システムの例には、統一拡張可能ファームウェア・インターフェース(UEFI)、高度構成および電力インターフェース(ACPI)、基本入力出力システム(BIOS)インターフェース、および/またはカスタム・アプリケーション・プログラミング・インターフェース(API)を含むがこれらに限定されるのではない。
[0029] また、安全更新モジュール130は、デバイスに対して安全ブート・モードを実施するように構成することもできる。安全ブート・モードは、信頼できないコード、認識できないコード、および/または悪意のコードが実行するのを防止する安全なブート前環境を提供する。具体的には、安全更新モジュール130は、どの種類のプログラムおよびブート・サービスがブート前環境において実行することができ、制限されるか定めるセキュリティ・ポリシーを実施(implement)および執行する(enforce)することができる。安全ブート・モードにおいて実行することを許可されたあらゆるコードが信頼できることを保証するために、コードを検証するための種々の技法を採用することができる。例えば、コードに付随するディジタル・シグネチャーを、既知の信頼されたエンティティに付随するディジタル鍵と突き合わせてチェックすることによって、信頼判定を行うことができる。コードに対応するディジタル・シグネチャーが有効であると判定されたと仮定すると、このコードは信頼できると指示することができ、実行することが許可される。一方、署名されていないコード、または有効なディジタル署名を有さないコードは、信頼できないと指示することができ、この信頼できないコードの実行を防止することができる。加えて、安全更新モジュール130は、計算デバイス上にロードするブート・プログラムおよび/または対応するオペレーティング・システムが信頼できることを保証することができる。
[0030] 計算デバイスから選択したハードウェア・リソースに対するファームウェア更新をブート前環境において有効にする(ブロック304)。ここで、ハードウェア・リソースは、ファームウェア更新を選択的に有効および無効にできるように、異なる更新状態間で切り替えるように構成されるとよい。これは種々の方法で行うことができる。例えば、ハードウェア・リソース124に関連するファームウェア126が、ファームウェア更新を制御するために定められたデーター・フィールドを、更新有効状態と更新無効状態との間で、対応するイベント、入力、および/またはトリガーに応答して切り替える(toggle)ように構成することもできる。1つの手法では、ハードウェア・リソース124に関連するブール・フィールドまたは他の適した更新状態データー・オブジェクト/パラメータが、計算デバイスが電力投入されたときまたはリセットされたときに更新を有効にするように、デフォルトで設定されてもよい。加えてまたは代わりに、安全更新モジュール130は、ハードウェア・リソース124にファームウェア更新を有効にさせるブート・シーケンスの一部として、コマンドを送るように構成されてもよい。イネーブル・コマンドに応答して、ハードウェア・リソース124に関連するファームウェアまたはその他のコードが、しかるべきデーター・フィールドを設定することができ、またそれ以外でファームウェア更新を有効にするためのアクションを実行することができる。
[0031] 選択されたハードウェア・リソースに入手可能なファームウェア更新のインストールを安全なブート前環境において開始する(ブロック306)。具体的には、安全なファームウェア更新は、ブート前環境において、指定ハードウェア・リソースから選択されたグループに対して適用される。先に注記したように、このグループは一体コンポーネントおよびアクセサリー・デバイスの双方を含むことができる。更新は、指定ハードウェア・リソースに対して安全なブート前環境において、デフォルトで、しかるべきコマンドに応答して、またはそれ以外で有効にすることができる。
[0032] 前述のように、ファームウェア・システム128は、ファームウェア更新を管理するように構成される。ファームウェア更新は、リソースの発見、ならびにファームウェア更新システムを通じてファームウェア更新を得るために登録された、言い換えると、指定された特定のリソースに対するファームウェア更新の検出、分析、取得、配布(distribution)、インストール、および追跡を含むことができる。更新は、UEFI、ACPI、および/またはBIOSファームウェア・インターフェースに関連する技法を含む種々の異なる技法を使用して、発見し、入手し、適用することができる。ファームウェア更新を実施するための企業固有のAPIやコード、およびカスタムのAPIやコードも、シナリオによっては採用できる場合もある。
[0033] ファームウェア更新のコンテキストでは、安全なブート前環境において適用される更新はいずれも、確立されたセキュリティ・ポリシーに従う。つまり、ファームウェア・システムによって扱われ適用される更新パッケージは、このシステムによってディジタル的に署名され、信頼できると識別される。更新プロセスの一部として、本システムは、バージョンが正しいこと、ファームウェアがプラットフォームのリソースに正しく照合されたこと、およびファームウェアが安全である/信頼できることを検証するために、入手可能な更新および/またはインストールされるファームウェアのバージョンを調べることができる。更に、システムは、あらゆる問題にフラグを立てるまたは問題を報告し、正しいファームウェアを突き止めしかるべき状況において適用し直すことによって、あらゆる欠陥を自動的に補正しようとするように構成することもできる。
[0034] 加えて、切断されたアクセサリー・デバイスのような、利用可能でないかもしれないデバイスに対する更新を計画する(stage)ために、遅延ファームウェア更新機構を実装することもできる。この場合、システムは入手可能な更新を得て、デバイスが利用可能になるまで、再ブート毎に対応するリソースをチェックし続けることができる。次いで、しかるべきリソースに更新を適用する。1つの手法では、一部のハードウェア・リソース(例えば、指定されたCPUまたはマイクロコントローラー)が、ファームウェア更新を、遅延を含む他のリソースに受け渡すように構成することができる。この手法では、「マスター」リソースが、ファームウェア・システムの指示で他のコンポーネントに対する更新を計画し、次いで更新を適用するために他のコンポーネントとの相互作用を処理することができる。これは、起動時にコンポーネントの利用可能性をチェックし、更新をしかるべく配布することを含むことができる。
[0035] 任意の入手可能な更新の適用に続いて、選択されたリソースに対するファームウェア更新を、安全なブート前環境の外部では無効にする(ブロック308)。このように、ファームウェア・システム128は、更新が安全なブート前環境内において実行されこの被制御環境の外部では防止されるように、被管理デバイスに対するファームウェア更新を制御することができる。被管理デバイスに対するファームウェア更新を無効にするためには、安全更新モジュールはしかるべきコマンドをハードウェア・リソース124に伝達し、ハードウェア・リソースにファームウェア更新をディセーブルさせることができる。また、安全なブート前環境をシステムによって確立できないときには、更新を無効にしてファームウェア更新プロセスを迂回するために、ディスエーブル・コマンドまたはその他の相当の技法を採用してもよい。他の選択肢には、タイマーを、ファームウェアを更新するための制限時間期間を設定するデバイスと関連付けることがある。次いで、タイマーにしたがって更新を無効にすればよい。これについては、以下で更に詳しく説明する。既に説明したイネーブル・コマンドまたは起動時イネーブル挙動と同様、ハードウェア・リソース124に関連するファームウェアまたは他のコードが、しかるべきデーター・フィールドを設定してもよく、またそうでなければ、ファームウェア更新を無効にするディスエーブル・コマンドに応答して対応するアクションを実行するのでもよい。
[0036] 次いで、ブート・プログラムは制御およびハンドオフ処理をブート・ローダーに渡し、被管理デバイスに対するファームウェア更新を無効にして、オペレーティング・システムをロードすることができる。したがって、ファームウェア更新はこのOSのランタイム環境では無効にされる。デバイス・レベルにおいてファームウェア更新が無効にされるので、実行時に露出される潜在的なエントリー・ポイントは、悪意のファームウェアをインストールするために使用することはできない。安全なファームウェア更新のこれらおよびその他の態様に関する更なる詳細について、以下の手順例に関して論ずる。
[0037] 図4は、1つ以上の実施形態による安全なファームウェア更新のロジック例を表す手順400を示す。計算デバイスのブート・プログラムを起動する(ブロック402)。例えば、計算デバイスに電源を投入するときまたは計算デバイスをリセットするときに、計算デバイスの起動/初期化を処理するデフォルトのブート・コードを実行するのでもよい。既に述べたように、ブート・プログラムは、計算デバイスおよび関連するハードウェア・リソース124を初期化するブート・シーケンスを実施する。また、ブート・プログラムは、安全なファームウェア更新を実施するように構成された安全更新モジュール130を呼び出す、またそうでなければこれと相互作用することによって、ハードウェア・リソース124に関連するファームウェア126に対する更新を制御することもできる。
[0038] ブート・プログラムによって安全な環境が確立されたか否かに関して判定を行う(ブロック404)。例えば、安全更新モジュール130が安全ブート・モードを実施すればよい。安全ブート・モードは、信頼できないコードが制限されるおよび/または実行するのを防止される安全なブート前環境を提供するために、デバイスにとって排他的または任意のブート・モードとして採用することができる。デバイスの中には、安全なブート・モードがアクティブであるか否か制御するために、ユーザー選択可能な選択肢を設定できる場合もある。他のユーザー選択可能な選択肢では、安全なファームウェア更新がアクティブであるか否か制御することもできる。入手可能なファームウェア更新を適用する先駆として、安全更新モジュール130は1つ以上のチェックを実行して、安全ブート・モードおよび安全な更新がアクティブであるか否か判定を行うことができる。安全ブート・モードがアクティブである場合、安全更新モジュール130は、安全なブート前環境を確立するのに成功したか否かについても判定を行う。
[0039] ファームウェア更新プロセスは、以上で述べた判定の結果に基づいて、選択的に実行することができる。一般に、被管理リソースに対する安全なファームウェア更新は、安全なブート前環境が確立されたときに適用される。しかしながら、安全ブート・モードが非アクティブ化されたためまたは他の何らかの理由のために安全なブート前環境を確立することができない場合、ファームウェア更新プロセスを迂回してもよい。
[0040] ブロック404によって安全な環境が存在すると仮定して、ファームウェア・システムによってファームウェア更新の管理に指定されたハードウェア・リソースを確認する(ブロック406)。次いで、ブロック404によって確認された非管理ハードウェア・リソースに入手可能な更新があるか否かに関して判定を行う(ブロック408)。更新が入手可能である場合、この入手可能な更新を適用する(ブロック410)。ブロック410は、ファームウェア更新を実施するために採用することができる種々の技法および動作を表す。
[0041] 一例として、ファームウェア・システム128および/またはオペレーティング・システム108は、定められたフォーマットとなっているデーター構造を参照するように構成してもよい。このデーター構造は、計算デバイス102に関連するハードウェア・リソース124および対応するファームウェア126のプロパティを識別し記述する。このデーター構造は、システム・ファームウェア、デバイス・ファームウェア、およびシステムを更新するためのアクセサリー・デバイス・ファームウェアを識別するメカニズムを設ける。少なくとも一部の実施形態では、中核システム・ファームウェアは、指定されたフォーマットのデーター構造を割り当てて事前設定する(populate)ことを責務とする。加えてまたは代わりに、ブート・プログラムが、計算デバイスに関連するハードウェア・リソースを列挙するために、データー構造を作成し入力するように動作してもよい。これは、計算プラットフォームのブート・シーケンスの間に行うことができる。ファームウェア・リソースに対する現在のデーターを反映するために、ブート・シーケンス毎にデーター構造の異なるインスタンスをインスタンス化することもできる。データー構造は、UEFIまたは他の適したインターフェース(例えば、ACPI、BIOS、カスタムAPI等)を通じて露出することができる。ファームウェア・システム128および/または安全更新モジュール130は、次に、データー構造に収容されたリソースに関するデーター・エントリーを利用して、リソースを発見し、ファームウェア更新を構成し、更新を展開し、更にそれ以外ではデーター構造内に列挙されたデバイスに対するファームウェア更新を設定し処理することができる。
[0042] 単なる1つの代表例として、データー構造を統一拡張可能ファームウェア・インターフェース(UEFI)システムの表として構成してもよい。UEFIは、ブート前環境においてオペレーティング・システムとプラットフォームのファームウェアとの間のインターフェースのパラメータを定める規格である。UEFIは、関数、メソッド、表等を通じてプラットフォームのOSに対する態様を記述するための標準的な慣例(convention)を規定する。具体的には、UEFIは、ブーティングの間においてシステム・ブート・コードとOSのブート・ローダーとの間において、データー交換および相互作用のためのインフラストラクチャ、慣例、および技法を規定する。少なくとも一部の実施形態では、UEFI毎に定められるインフラストラクチャを利用して、安全なファームウェア更新の実施のために適したデーター構造を作成することができる。とは言え、相当する仕方でファームウェア・システムに対してハードウェア・リソースを列挙するためには、種々の他の種類の技法、システム、表、データーベース、および/またはデーター構造も採用してもよいことは認められてしかるべきである。
[0043] 適したデーター構造におけるエントリーは、更新可能なファームウェアを有するハードウェア・リソースを識別および記述する。これは、リソースのタイプおよび分類データー、どのようにリソースと相互作用しリソースを更新するかに関する命令/詳細、更新を登録する、ダウンロードする、またはそれ以外の方法で入手するために使用することができるリンク、位置、および/またはアドレス等を含むことができる。更に、エントリーについてのメタデーターが、記述されるリソースに対応するステータス/バージョン情報を記録することもできる。安全更新モジュール130が更新を設定し実行することを可能にするのに十分な情報を取り込むために、エントリーに対して種々の異なるフィールドを定めることができる。少なくとも一部の実施形態では、これらの異なるフィールドは既に説明したような更新状態フィールドを含み、対応するリソースに対するファームウェア更新を有効または無効にするために、本明細書において説明する技法にしたがって選択的に設定することができる。データー構造におけるエントリーに関連する更新状態フィールドは、列挙されたハードウェア・リソースに関連するファームウェア内に収容された、対応する更新状態フィールドを反映する。したがって、特定のリソースに対して更新状態フィールドの値を設定すると、その特定のリソースに対するファームウェア内にある値に変化を生じさせることができる。
[0044] 再度注記するが、以上で説明した表および/またはUEFIの実施態様は、ファームウェア更新システムによる使用に適したデーター構造の代表例として提示したのである。実際には、ハードウェア・リソースに関するデーターを露出するための種々の異なるフォーマットおよび技法を採用することができる。例えば、以上の例に相当する表または他のデーター構造を、OSとシステム・ブート・コードとの間における他の種類のインターフェースに合わせて構成することもできる。システム・ブート・コードは、ACPI、カスタムAPI、およびBIOSインターフェースを含むが、これらに限定されるのではない。
[0045] 採用されるファームウェア更新プロセスは、実装されるファームウェア・システム128の個々のタイプに応じて、様々に変わってもよい。しかしながら、一般に、安全更新モジュール130が、露出されたデーター構造から識別されたリソースに、更新が入手可能か否かチェックすることができる。例えば、データー構造に収容されたファームウェア・バージョン情報を、公開された更新と比較して、リソースのために現在インストールされているファームウェアが最新であるか否か判定することができる。次いで、安全更新モジュールは、特定のファームウェア・システムによって既定された仕方で、最新のファームウェアに対して入手可能な更新を突き止め、入手することができる。また、安全更新モジュール130は、更新に関連するディジタル署名および/または他の証明書を検査して、既に説明したような信頼判定を行うこともできる。信頼できる更新は、安全なブート前環境内において適用することができる。これは、対応するハードウェア・リソースによる消費のために、信頼できる更新パッケージを配布して、更新を適用することを伴うのでもよい。更新パッケージは、本プラットフォームによって実装されるUEFIまたは他のファームウェア・システムにしたがって構成および配布されてもよい。他の手法では、安全更新モジュール130が、少なくともいくつかのハードウェア・リソースの代わりに更新を適用するように構成されてもよい。一方、安全更新モジュール130が、信頼できない更新を破棄する、削除する、無視する、隔離する、またそうでなければシステムによって実行および適用されるのを防止することによって、信頼できない更新を拒絶するように構成されてもよい。
[0046] 一旦安全更新モジュールによって指示されるように入手可能な更新が処理されたなら、被管理リソースにファームウェア更新を無効にさせるために、通知を被管理リソースに送る(ブロック412)。これは、事実上、安全なブート前環境外部における被管理デバイスに対するファームウェア更新を無効にする。この通知は、ハードウェア・リソースによる処理のためにディスエーブル・コマンドを含んでもよい。具体的には、ハードウェア・リソース124のファームウェアが、指示されるとおりにファームウェア更新を有効または無効にするために、ファームウェア・システム128からのコマンドを処理するように構成されてもよい。全域的通知メッセージを多数のリソースに送ることもできる。加えてまたは代わりに、デバイス特定メッセージを少なくとも一部のリソースに送ることもできる。
[0047] 更に、リソースの中には、ファームウェア更新を制御し、定められた時間期間外で更新が行われるのを防止するために、タイマーを使用するとよいものもある。例えば、デバイスに電源が入るときにタイマーを設定してもよく、電源投入後の定められた時間期間には更新を有効にする。タイマーが終了したとき、更新は自動的に無効にされる。この手法では、タイマーの長さは、OSがロードする前に更新が無効にされるように、ブート・シーケンスに予測される時間未満に設定するとよい。
[0048] 次いで、被管理リソースに対するファームウェア更新を無効にして、オペレーティング・システムをロードすることができる(ブロック414)。ここでは、説明したようにファームウェア更新が無効にされた後に、処理をブート・ローダーに引き渡すことができる。次いで、ブート・ローダーはOSのブーティングを処理する。OSの実行時環境において、被管理ハードウェア・リソースのファームウェアを更新する試みは拒絶される。何故なら、これらのリソースは、デバイス・レベルの更新を無効にするように設定されているからである。
[0049] ブロック408で更新が入手可能でないとき、手順400はブロック412において無効通知に進むことができ、ブロック410によって表される更新を適用する動作を実行することなく、オペレーティング・システムは直接ブロック414においてロードする。同様に、ブロック404で安全な環境が存在しない場合、手順400は、ブロック412でディスエーブル・コマンドによって更新を無効にし、次いでブロック414においてオペレーティング・システムをロードすることができる。この場合、システムは、安全な環境が得られないときには、ファームウェア更新を全て迂回するのでもよい。
[0050] 場合によっては、安全な環境が得られないときには、ブート・プログラムがエラー・メッセージを生成してもよい。エラーを処理する選択肢に関してユーザーからの入力を要求するために、プロンプト(prompt)を提示してもよい。例えば、ロードを中断するか、通常通りに開始するか、1組の減少した機能を提供する安全モードで開始するか等を示すように、ユーザーに促すのでもよい。あるいは、安全な環境が存在しないときに自動的にブート・シーケンスを中断するようにシステムを構成することもできる。
[0051] 図5は、1つ以上の実施形態にしたがって安全なファームウェア更新を実施するために選択的に更新状態を設定する手順500を示す。安全なブート前環境においてファームウェア更新を有効にするために、計算デバイスに関連する1つ以上の被管理ハードウェア・リソースについての更新状態を設定する(ブロック502)。更新状態は、既に説明した仕方で、異なるリソース毎に個々に設定することもできる。これらの状態は、リソースに関連する指定フィールドまたは他の適したデーター・オブジェクト/パラメータを使用して設定することができる。更新状態は、通知/コマンドに応答して、またはそれ以外で、システムに電力投入するときにデフォルトで設定してもよい。
[0052] 他の手法では、SoCデバイスまたは他の指定コンポーネント(例えば、指定中央処理ユニット(CPU)、マイクロプロセッサー、またはコントローラー・デバイス)の中核システム・ファームウェアをゲートキーパーとして構成し、これを各被管理ハードウェア・リソースに接続してもよい。この手法では、ゲートキーパー・デバイスに対応するシステム・ファームウェア202によって、被管理ハードウェア・リソースに対するファームウェア更新を集合的に更新し処理することができる。システム・ファームウェア202は、ファームウェア更新が有効にされたときに他のリソースに対する更新を配布することを責務とするのでもよい。したがって、多数の異なるハードウェア・リソースに対する更新は、SoCデバイスまたは他の指定ゲートキーパーに対する更新状態を管理することによって、制御することができる。指定ゲートキーパー・デバイスに対する更新状態が、更新を無効にするように設定された場合、システム・ファームウェアは他のデバイス/リソースに更新を配布しないように構成される。このように、選択されたデバイスの1群に対するファームウェア更新は、指定ゲートキーパー・デバイスに関連する状態を管理することによって、有効または無効にすることができる。
[0053] 1つ以上の被管理ハードウェア・リソースに入手可能な更新を検出し(ブロック504)、検出された入手可能な更新を適用する(ブロック506)。更新の処理およびインストールは、既に説明した仕方で異なるファームウェア・システム128および技法を使用して行うことができる。一般に、これは、システムによってファームウェア管理に指定されたハードウェア・リソースの一群を列挙することを伴う。列挙されたリソースに対して安全な更新が有効にされている限り、ファームウェア・システム128は、安全更新モジュール130と共に、列挙されたリソースに入手可能な更新を発見し展開することができる。例えば、本システムは更新パッケージを得て、個々のリソースによる更新の適用のために、更新パッケージを配布することができる。指定ゲートキーパー・デバイスを採用するとき、ファームウェア・システムにしたがってフォーマットされた更新パッケージを、ゲートキーパー・デバイスのファームウェアを介して集合的に発見し展開することができる。実施形態には、安全更新モジュール130が、指定ハードウェア・リソースのために集合的に安全なファームウェア更新を処理するためのゲートキーパー・デバイスのコンポーネントとして構成されるものもある。
[0054] ブート後環境においてファームウェア更新を無効にするために、更新状態を変更するための更新の適用に続いて、ディスエーブル・コマンドを1つ以上の被管理ハードウェア・リソースに伝達する(ブロック508)。これは、制御がブート・ローダーに渡されてOSをロードする直前に行われるとよい。この場合も、異なるハードウェア・リソースの各々に関連する更新フィールドを設定することによって、リソースに対する更新を個々に無効にすることができる。しかしながら、指定ゲートキーパー・デバイスを採用するとき、ゲートキーパー・デバイスによって集合的に管理されるリソースに対する更新は、ゲートキーパー・デバイス自体の状態を設定することによって、一緒に無効にすることができ、これによって多数のリソースに対する更新を無効にする。状態を無効に設定することによって、ゲートキーパー・デバイスがいかなるファームウェア更新も他のリソースに配布することを防止する。
[0055] 以上、安全なファームウェア更新に関する詳細および技法の例について検討したので、1つ以上の実施形態によるシステム例の論述を検討する。
システム例
[0056] 図6は、計算デバイス例602を含むシステム例600を示す。計算デバイス602は、本明細書において説明した種々の技法を実現することができる1つ以上の計算システムおよび/またはデバイスを表す。計算デバイス602は、例えば、サービス・プロバイダーのサーバー、クライアントに関連するデバイス(例えば、クライアント・デバイス)、チップ上システム、および/または任意の他の適した計算デバイスまたは計算システムであってもよい。
[0057] 図示する計算デバイス例602は、処理システム604、1つ以上のコンピューター読み取り可能媒体606、および1つ以上のI/Oインターフェース608を含み、これらは互いに通信可能に結合されている。図示しないが、計算デバイス602は更に、種々のコンポーネントを互いに結合するシステム・バスまたは他のデーターおよびコマンド転送システムも含むことができる。システム・バスは、メモリー・バスまたはメモリー・コントローラー、周辺バス、ユニバーサル・シリアル・バス、および/または種々のバス・アーキテクチャーの内任意のものを利用するプロセッサーまたはローカル・バスというような、異なるバス構造の内任意の1つまたはその組み合わせを含むことができる。制御およびデーター線というような、種々の他の例も考えられる。
[0058] 処理システム604は、ハードウェアを使用して1つ以上の動作を実行する機能性を表す。したがって、処理システム604は、プロセッサー、機能ブロック等として構成することができるハードウェア・エレメント610を含むように示されている。これは、1つ以上の半導体を使用して形成される特定用途集積回路または他の論理デバイスのような、ハードウェアでの実施態様を含むことができる。ハードウェア・エレメント610は、これらが形成される材料や、処理メカニズムに採用される材料によって限定されることはない。例えば、プロセッサーは、半導体(1つまたは複数)および/またはトランジスター(例えば、電子集積回路(IC))で構成されるのでよい。このようなコンテキストでは、プロセッサー実行可能命令は、電子的に実行可能な命令であればよい。
[0059] コンピューター読み取り可能媒体606は、メモリー/ストレージ612を含むように示されている。メモリー/ストレージ612は、1つ以上のコンピューター読み取り可能媒体に関連するメモリー/記憶容量を表す。メモリー/ストレージ612は、揮発性媒体(ランダム・アクセス・メモリー(RAM)のような媒体)および/または不揮発性媒体(リード・オンリー・メモリー(ROM)、フラッシュ・メモリー、光ディスク、磁気ディスク等のような媒体)を含むことができる。メモリー/ストレージ612は、固定媒体(例えば、RAM、ROM、固定ハード・ドライブ等)、およびリムーバブル媒体(例えば、フラッシュ・メモリー、リムーバブル・ハード・ドライブ、光ディスク等)を含むことができる。コンピューター読み取り可能媒体606は、以下で更に説明するように、種々の他の方法で構成することもできる。
[0060] 入力/出力インターフェース(1つまたは複数)608は、種々の入力/出力デバイスを使用して、ユーザーにコマンドおよび情報を計算デバイス602に入力させ、更に情報をユーザーおよび/または他のコンポーネントまたはデバイスに提示させる機能性を表す。入力デバイスの例には、キーボード、カーソル制御デバイス(例えば、マウス)、音声動作用のマイクロフォン、スキャナー、タッチ機能性(例えば、物理的なタッチを検出するように構成された容量性センサーまたは他のセンサー)、カメラ(例えば、ジェスチャーのようなタッチを伴わない動きを検出するために赤外線周波数のような可視波長または非可視波長を採用することができる)等が含まれる。出力デバイスの例には、ディスプレイ・デバイス(例えば、モニターまたはプロジェクター)、スピーカー、プリンター、ネットワーク・カード、触覚応答デバイス等が含まれる。このように、計算デバイス602は、以下で更に説明するように、ユーザー対話処理をサポートするために、種々の方法で構成することができる。
[0061] 本明細書では、ソフトウェア、ハードウェア・エレメント、またはプログラム・モジュールという一般的なコンテキストで、種々の技法について説明した。一般に、このようなモジュールは、ルーチン、プログラム、オブジェクト、エレメント、コンポーネント、データー構造等を含み、特定のタスクを実行するか、または特定の抽象データー型を実装する。「モジュール」、「機能性」、および「コンポーネント」という用語は、本明細書において使用する場合、ソフトウェア、ファームウェア、ハードウェア、またはその組み合わせを総合的に表す。本明細書において説明した技法の特徴は、プラットフォーム独立ということであり、種々のプロセッサーを有する種々の商用計算プラットフォーム上でこれらの技法を実現できることを意味する。
[0062] 説明したモジュールおよび技法の実施態様は、何らかの形態のコンピューター読み取り可能媒体上に格納すること、またはそれを通じて送信することもできる。コンピューター読み取り可能媒体は、計算デバイス602によってアクセスすることができる種々の媒体を含むことができる。一例として、そして限定ではなく、コンピューター読み取り可能媒体は、「コンピューター読み取り可能記憶媒体」および「通信媒体」を含むことができる。
[0063] 「コンピューター読み取り可能記憶媒体」は、単なる信号伝送、搬送波、または信号自体とは対照的に、情報の永続的格納を可能にする媒体および/またはデバイスを指すことができる。つまり、コンピューター読み取り可能記憶媒体は、信号支持媒体や一時的媒体は含まない。コンピューター読み取り可能記憶媒体は、揮発性および不揮発性、リムーバブルおよび非リムーバブル媒体、および/または記憶デバイスというようなハードウェアを含み、これらはコンピューター読み取り可能命令、データー構造、プログラム・モジュール、論理エレメント/回路、または他のデーターというような情報の格納に適した方法または技術で実現される。コンピューター読み取り可能媒体の例には、RAM、ROM、EEPROM、フラッシュ・メモリーまたは他のメモリー技術、CD−ROM、ディジタル・バーサタイル・ディスク(DVD)または他の光ストレージ、ハード・ディスク、磁気カセット、磁気テープ、磁気ディスク記憶デバイスまたは他の磁気記憶デバイス、あるいは所望の情報を格納するのに適しておりコンピューターによってアクセスすることができるその他の記憶デバイス、有形媒体、または製造品目(article of manufacture)を含むことができるが、これらに限定されるのではない。
[0064] 「通信媒体」は、ネットワークを通じてというようにして、命令を計算デバイス602のハードウェアに送信するように構成された信号支持媒体を指すことができる。通信媒体は、通例、コンピューター読み取り可能命令、データー構造、プログラム・モジュール、またはその他のデーターを、搬送波データー信号というような変調データー信号、または他の移送メカニズム内に具体化することができる。また、通信媒体はあらゆる情報配信媒体も含む。「変調データー信号」という用語は、その信号内に情報をエンコードするような仕方でその特性の1つ以上が設定または変化させられた信号を意味する。一例として、そして限定ではなく、通信媒体は、有線ネットワークまたは直接有線接続というような有線媒体、ならびに音響、RF、赤外線、およびその他のワイヤレス媒体というようなワイヤレス媒体を含む。
[0065] 既に説明したように、ハードウェア・エレメント610およびコンピューター読み取り可能媒体606は、ハードウェア形態で実現された命令、モジュール、プログラマブル・デバイス・ロジック、および/または固定デバイス・ロジックを表し、本明細書において説明した技法の少なくとも一部の態様を実現するために、いくつかの実施形態において採用することができる。ハードウェア・エレメントは、集積回路またはチップ上システム、特定用途集積回路(ASIC)、フィールド・プログラマブル・ゲート、アレイ(FPGA)、複合プログラマブル論理デバイス(CPLD)、およびシリコンまたは他のハードウェア・デバイスにおける他の実施態様のコンポーネントを含むことができる。このコンテキストでは、ハードウェア・エレメントは、実行のために命令を格納するために利用されるハードウェア・エレメントおよびハードウェア・デバイス、例えば、既に説明したコンピューター読み取り可能記憶媒体によって具体化される命令、モジュール、および/またはロジックによって定められるプログラム・タスクを実行する処理デバイスとして動作することができる。
[0066] また、以上の組み合わせも、本明細書において説明した種々の技法およびモジュールを実現するために採用することもできる。したがって、オペレーティング・システム108、アプリケーション110、ファームウェア・システム128、安全更新モジュール130、およびその他のプログラム・モジュールを含むソフトウェア、ハードウェア、またはプログラム・モジュールは、何らかの形態のコンピューター読み取り可能記憶媒体上に具体化された、および/または1つ以上のハードウェア・エレメント610によって具体化された1つ以上の命令および/またはロジックとして実現することもできる。計算デバイス602は、ソフトウェアおよび/またはハードウェア・モジュールに対応する特定の命令および/または機能を実装するように構成することができる。したがって、ソフトウェアのように計算デバイス602によって実行可能であるモジュールのようなモジュールの実施態様は、少なくとも部分的にハードウェアで、例えば、コンピューター読み取り可能記憶媒体および/または処理システムのハードウェア・エレメント610の使用によって達成することができる。命令および/または機能は、本明細書において説明した技法、モジュール、および例を実現するために、1つ以上の製品(例えば、1つ以上の計算デバイス602および/または処理システム604)によって実行可能/動作可能であるとよい。
[0067] 更に図6に示すように、システム例600は、パーソナル・コンピューター(PC)、テレビジョン・デバイス、および/または移動体デバイス上でアプリケーションを実行するときに、シームレスなユーザー体験のためにユビキタス環境(ubiquitous environment)を可能にする。サービスおよびアプリケーションは、1つのデバイスから次のデバイスに移るときに、アプリケーションを利用しながら、ビデオ・ゲームをプレーしながら、ビデオを視聴しながら等、共通のユーザー体験に対して3つの環境全てにおいて実質的に同様に実行する。
[0068] システム例600では、多数のデバイスが中央計算デバイスを介して相互接続されている。中央計算デバイスは、これら多数のデバイスに対してローカルであってもよく、またはこれら多数のデバイスから離れて配置されてもよい。一実施形態では、中央計算デバイスは、ネットワーク、インターネット、または他のデーター通信リンクを通じて多数のデバイスに接続された1つ以上のサーバー・コンピューターによって実現された分散型クラウド環境であってもよい。
[0069] 一実施形態では、この相互接続アーキテクチャーが、機能性を多数のデバイスに跨がって配信し、共通のシームレス環境を多数のデバイスのユーザーに提供することを可能にする。多数のデバイスの各々は、異なる物理的要件および能力を有しても良く、中央計算デバイスは、プラットフォームを使用して、デバイスに合わせて用意され(tailor)しかも全てのデバイスに共通でもある体験の当該デバイスへの配信を可能にする。一実施形態では、ターゲット・デバイスのクラスが作られ、この包括的なクラスのデバイスに合わせて体験が用意される。デバイスのクラスは、物理的特徴、使用の種類、またはその他の共通するデバイス特性によって定めることができる。
[0070] 種々の実施態様において、計算デバイス602は、コンピューター614、移動体616、およびテレビジョン618の使用のためというように、種々の異なる構成を想定することができる。これらの構成の各々は、一般に異なる構造および能力を有するかもしれないデバイスを含み、つまり、計算デバイス602は異なるデバイス・クラスの内の1つ以上にしたがって構成することができる。例えば、計算デバイス602は、パーソナル・コンピューター、デスクトップ・コンピューター、多重画面コンピューター、ラップトップ・コンピューター、ネットブック等を含むデバイスのコンピューター614クラスとして実現することもできる。
[0071] また、計算デバイス602は、移動体電話機、携帯用音楽プレーヤー、携帯用ゲーミング・デバイス、タブレット・コンピューター、多重画面コンピューター等のような移動体デバイスを含むデバイスの移動体616クラスとして実現することもできる。また、計算デバイス602は、日常の視聴環境において通常もっと大きな画面を有するデバイスまたはそれに接続されているデバイスを含むデバイスのテレビジョン618クラスとして実現することもできる。これらのデバイスは、テレビジョン、セット・トップ・ボックス、ゲーミング・コンソール等を含む。
[0072] 本明細書において説明した技法は、計算デバイス602のこれら種々の構成によってサポートすることができ、本明細書において説明した技法の具体的な例に限定されるのではない。これは、計算デバイス602上における安全更新モジュール130の包含によって例示される。安全更新モジュール130および他のモジュール/アプリケーションによって表される機能性は、全てまたは部分的に、以下で説明するような、プラットフォーム622を介して「クラウド」620を通じてというようにして、分散型システムの使用によって実現することもできる。
[0073] クラウド620は、リソース624のためのプラットフォーム622を含む、および/またはプラットフォーム622を表す。プラットフォーム622は、クラウド620のハードウェア(例えば、サーバー)およびソフトウェア・リソースの基礎的機能性を抽象化する。リソース624は、計算デバイス602から離れているサーバー上においてコンピューター処理が実行されている間に利用することができるアプリケーションおよび/またはデーターを含むことができる。また、リソース624は、インターネットを通じておよび/またはセルラまたはWi−Fiネットワークのような加入者ネットワークを通じて提供されるサービスも含むことができる。
[0074] プラットフォーム622は、計算デバイス602を他の計算デバイスと接続するためのリソースおよび機能を抽象化することができる。また、プラットフォーム622は、プラットフォーム622を介して実装されるリソース624に対する要求に対応するスケール・レベルを与えるために、リソースのスケーリングを抽象化する役割を果たすこともできる。したがって、相互接続デバイス環境では、本明細書において説明した機能性の実施は、システム600全体に分散させてもよい。例えば、機能性は、部分的に計算デバイス602上に実施し、更にクラウド620の機能性を抽象化するプラットフォーム622を介して実施してもよい。
結論
[0075] 以上、構造的特徴および/または方法論的動作に特定的な文言で主題について説明したが、添付した特許請求の範囲において定められた主題は、必ずしも以上で説明した特定的な特徴や動作(act)に限定されるのではないことは理解されてしかるべきである。逆に、以上で説明した特定的な特徴および動作は、特許請求の範囲を実施する形態例として開示したまでである。

Claims (10)

  1. 計算デバイスであって、
    更新可能なファームウェアを有する1つ以上のハードウェア・リソースと、
    安全更新モジュールを格納するメモリーと、
    を含み、前記安全更新モジュールが、
    前記計算デバイスの起動のために安全なブート前環境を確立し、
    前記安全なブート前環境内において前記1つ以上のハードウェア・リソースのために、ファームウェア・システムを介したファームウェア更新を有効にし、
    前記安全なブート前環境の外部における前記1つ以上のハードウェア・リソースに対するファームウェア更新を無効にする、
    ように構成される、計算デバイス。
  2. 請求項1記載の計算デバイスにおいて、前記安全更新モジュールが、更に、
    前記ファームウェア・システムを通じて入手可能な前記更新の更新パッケージを得て、
    前記ハードウェア・リソースによる前記更新の適用を行わせるために、前記パッケージを前記1つ以上のハードウェア・リソースに配布することによって、
    前記1つ以上のハードウェア・リソースに入手可能な更新を検出し、
    前記安全なブート前環境において検出された更新のインストールを開始する、
    ように構成される、計算デバイス。
  3. 請求項1記載の計算デバイスにおいて、前記安全更新モジュールが、更に、前記1つ以上のハードウェア・リソースを記述するエントリーが事前設定されたデーター構造を参照することによって、前記安全なブート前環境におけるファームウェア更新の処理に指定された前記1つ以上のハードウェア・リソースを列挙するように構成される、計算デバイス。
  4. 請求項1記載の計算デバイスにおいて、前記安全更新モジュールが、更に、前記1つ以上のハードウェア・リソースに対する前記ファームウェア更新を無効にした後に、前記計算デバイスにオペレーティング・システムをブートするために、制御をブート・ローダーに渡すように構成される、計算デバイス。
  5. 請求項1記載の計算デバイスにおいて、前記1つ以上のハードウェア・リソースの内少なくとも一部が、前記計算デバイスのチップ上プロセッサーの一体コンポーネントとして設けられる、計算デバイス。
  6. 請求項1記載の計算デバイスにおいて、前記1つ以上のハードウェア・リソースが、対応するインターフェースを介して前記計算デバイスに接続可能なアクセサリー・デバイスを含む、計算デバイス。
  7. 請求項1記載の計算デバイスにおいて、前記計算デバイスの起動時にファームウェア更新を有効にするように、前記1つ以上のハードウェア・リソースに関連する1つ以上の更新状態がデフォルトで設定される、計算デバイス。
  8. 請求項1記載の計算デバイスにおいて、前記ファームウェア更新を無効にすることが、前記計算デバイスにオペレーティング・システムをブートする前に、前記1つ以上のハードウェア・リソースにディスエーブル・コマンドを送ることを含み、前記ディスエーブル・コマンドが、前記安全なブート前環境の外部において前記ファームウェア更新を無効にするように、前記1つ以上のハードウェア・リソースに関連する1つ以上の更新状態を設定するように構成される、計算デバイス。
  9. 計算デバイスによって実施される方法であって、
    前記計算デバイスの起動時に開始されたブート・プログラムによって安全なブート前環境が確立されたか否か判定するステップと、
    前記安全なブート前環境が確立されたとき、前記安全なブート前環境において、前記計算デバイスの1つ以上のハードウェアに対してファームウェア更新を実行するステップと、
    前記安全なブート前環境の外部における前記1つ以上のハードウェア・リソースに対するファームウェア更新を、前記1つ以上のハードウェア・リソースに無効にさせるために、少なくとも1つの通知を送るステップと、
    を含む、方法。
  10. 請求項9記載の方法において、
    前記少なくとも1つの通知が、ゲートキーパー・デバイスとして機能する前記ハードウェア・リソースの1つに送られ、前記ゲートキーパー・デバイスを無効状態に設定するディスエーブル・コマンドを含み、
    前記ゲートキーパー・デバイスが、前記ハードウェア・リソースの少なくとも一部に対してファームウェア更新を集合的に管理するように構成され、
    前記無効状態にあるとき、前記ゲートキーパー・デバイスが、当該ゲートキーパー・デバイスによって管理されるハードウェア・リソースに、ファームウェア更新を配布しないように構成される、方法。
JP2015529910A 2012-08-29 2013-08-26 安全なファームウェア更新 Ceased JP2015531500A (ja)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US13/597,641 US9218178B2 (en) 2012-08-29 2012-08-29 Secure firmware updates
US13/597,641 2012-08-29
US13/651,252 US8898654B2 (en) 2012-08-29 2012-10-12 Secure firmware updates
US13/651,252 2012-10-12
PCT/US2013/056688 WO2014035908A1 (en) 2012-08-29 2013-08-26 Secure firmware updates

Publications (1)

Publication Number Publication Date
JP2015531500A true JP2015531500A (ja) 2015-11-02

Family

ID=49151325

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2015529910A Ceased JP2015531500A (ja) 2012-08-29 2013-08-26 安全なファームウェア更新

Country Status (6)

Country Link
US (1) US8898654B2 (ja)
EP (1) EP2917870A1 (ja)
JP (1) JP2015531500A (ja)
KR (1) KR102048111B1 (ja)
CN (1) CN104603792B (ja)
WO (1) WO2014035908A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6263294B1 (ja) * 2017-03-31 2018-01-17 西日本電信電話株式会社 セキュリティ製品評価装置、セキュリティ製品評価方法及びセキュリティ製品評価プログラム

Families Citing this family (48)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8789034B1 (en) * 2011-12-31 2014-07-22 Parallels IP Holdings GmbH Method for updating operating system without memory reset
US9218178B2 (en) 2012-08-29 2015-12-22 Microsoft Technology Licensing, Llc Secure firmware updates
US8594850B1 (en) * 2012-09-30 2013-11-26 Nest Labs, Inc. Updating control software on a network-connected HVAC controller
US9189225B2 (en) 2012-10-16 2015-11-17 Imprivata, Inc. Secure, non-disruptive firmware updating
US9015694B2 (en) 2012-10-31 2015-04-21 Aruba Networks, Inc Cloud-based firmware distribution service
US9349009B2 (en) * 2013-07-15 2016-05-24 Paul A. Rivera Method and apparatus for firmware based system security, integrity, and restoration
US20150193620A1 (en) * 2014-01-07 2015-07-09 Dell Products, Lp System and Method for Managing UEFI Secure Boot Certificates
KR20150098263A (ko) * 2014-02-19 2015-08-28 삼성전자주식회사 펌웨어를 갱신하기 위한 전자 장치 및 방법
GB201413836D0 (en) 2014-08-05 2014-09-17 Arm Ip Ltd Device security apparatus and methods
US20160147259A1 (en) * 2014-11-21 2016-05-26 Kabushiki Kaisha Toshiba Electronic device
US9524158B2 (en) * 2015-02-23 2016-12-20 Apple Inc. Managing firmware updates for integrated components within mobile devices
CN107615293B (zh) 2015-06-17 2022-01-04 英特尔公司 包括期满检测的平台管理方法和装备
US9960912B2 (en) * 2015-07-06 2018-05-01 Quanta Computer Inc. Key management for a rack server system
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
CN105159707B (zh) * 2015-08-14 2018-06-29 飞天诚信科技股份有限公司 一种安全的金融终端的固件烧写方法及金融终端
CN108334372B (zh) * 2015-09-22 2021-04-09 Oppo广东移动通信有限公司 固件升级处理方法、装置和系统
US10592228B2 (en) * 2016-02-12 2020-03-17 Microsoft Technology Licensing, Llc Stylus firmware updates
EP3208717A1 (en) * 2016-02-17 2017-08-23 Gemalto Sa Method for managing objects in a secure element
CN107491698A (zh) * 2016-06-12 2017-12-19 联想(上海)信息技术有限公司 Hdd加密固件更新方法、装置及电子设备
US10402273B2 (en) 2016-12-14 2019-09-03 Microsoft Technology Licensing, Llc IoT device update failure recovery
US10416991B2 (en) 2016-12-14 2019-09-17 Microsoft Technology Licensing, Llc Secure IoT device update
US10715526B2 (en) 2016-12-14 2020-07-14 Microsoft Technology Licensing, Llc Multiple cores with hierarchy of trust
US10621353B2 (en) * 2016-12-28 2020-04-14 Intel Corporation Firmware loading for exploit resistance
WO2018136086A1 (en) 2017-01-20 2018-07-26 Hewlett-Packard Development Company, L.P. Updating firmware
US10754955B2 (en) * 2017-08-04 2020-08-25 Dell Products, L.P. Authenticating a boot path update
US11455394B2 (en) * 2017-09-06 2022-09-27 Absolute Software Corporation Secure firmware interface
US10983925B2 (en) * 2017-12-12 2021-04-20 Hewlett-Packard Development Company, L.P. Configuration profile updates
KR20190074857A (ko) * 2017-12-20 2019-06-28 삼성전자주식회사 펌웨어를 업데이트하는 인터페이스 장치, 모바일 장치 및 펌웨어 업데이트 방법
CN111527731B (zh) * 2017-12-22 2023-04-25 瑞典爱立信有限公司 用于限制iot设备中的存储器写入访问的方法
WO2019161138A1 (en) * 2018-02-16 2019-08-22 Reneo, Inc. Scalable life-cycle maintenance of hardware
US11947944B2 (en) * 2018-09-14 2024-04-02 Signify Holding B.V. System and method for producing an update report
CN111083001B (zh) * 2018-10-18 2021-09-21 杭州海康威视数字技术股份有限公司 一种固件异常检测方法及装置
JP7138043B2 (ja) * 2018-12-28 2022-09-15 日立Astemo株式会社 情報処理装置
US11194589B2 (en) * 2019-01-08 2021-12-07 Dell Products L.P. Information handling system adaptive component reset
US11550593B2 (en) * 2019-01-08 2023-01-10 Dell Products L.P. Information handling system quick boot
US11301566B2 (en) 2019-07-03 2022-04-12 Ati Technologies Ulc Firmware anti-rollback
US11016755B2 (en) * 2019-07-31 2021-05-25 Dell Products L.P. System and method to secure embedded controller flashing process
CN111045739B (zh) * 2019-12-03 2022-06-07 福州瑞芯微电子股份有限公司 基于启动程序的固件引导方法、介质及设备
US11582418B1 (en) * 2020-01-06 2023-02-14 Cisco Technology, Inc. Secured communications with display device
US11947987B2 (en) * 2020-06-03 2024-04-02 Dell Products L.P. Live node imaging
US11416614B2 (en) * 2020-07-01 2022-08-16 Dell Products L.P. Statistical detection of firmware-level compromises
KR20220032268A (ko) 2020-09-07 2022-03-15 에스케이하이닉스 주식회사 메모리 시스템 및 메모리 시스템의 동작 방법
KR20220033311A (ko) 2020-09-09 2022-03-16 삼성전자주식회사 전자 디바이스 및 이의 동작 방법과 네트워크 시스템
US11989551B2 (en) * 2021-03-18 2024-05-21 Quanta Computer Inc. Modular firmware composition
US11809851B2 (en) * 2021-06-10 2023-11-07 Dell Products L.P. System and method for managing update installation lockdown policies for firmware devices and driver-managed devices
US11861010B2 (en) * 2022-02-14 2024-01-02 Xilinx, Inc. Extensible device hosted root of trust architecture for integrated circuits
US11989305B2 (en) * 2022-07-21 2024-05-21 Dell Products L.P. Automated update of a customized secure boot policy

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030236970A1 (en) * 2002-06-21 2003-12-25 International Business Machines Corporation Method and system for maintaining firmware versions in a data processing system
JP2005182812A (ja) * 2003-12-22 2005-07-07 Hewlett-Packard Development Co Lp コンピュータシステムにおいてイメージファイルを格納するシステムおよび方法
US7069452B1 (en) * 2000-07-12 2006-06-27 International Business Machines Corporation Methods, systems and computer program products for secure firmware updates
US20060174055A1 (en) * 2005-02-02 2006-08-03 Insyde Software Corporation System and method for reducing memory requirements of firmware
WO2012039971A2 (en) * 2010-09-22 2012-03-29 Intel Corporation Platform firmware armoring technology

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6834340B2 (en) * 2001-03-01 2004-12-21 International Business Machines Corporation Mechanism to safely perform system firmware update in logically partitioned (LPAR) machines
US7974416B2 (en) * 2002-11-27 2011-07-05 Intel Corporation Providing a secure execution mode in a pre-boot environment
US7457945B2 (en) 2004-03-23 2008-11-25 Dell Products L.P. System and method for providing a secure firmware update to a device in a computer system
US20060143600A1 (en) * 2004-12-29 2006-06-29 Andrew Cottrell Secure firmware update
KR100706471B1 (ko) * 2005-06-30 2007-04-10 주식회사 대우일렉트로닉스 전자기기의 펌웨어 업데이트 방법
US8254568B2 (en) * 2007-01-07 2012-08-28 Apple Inc. Secure booting a computing device
KR20080090939A (ko) 2007-04-06 2008-10-09 삼성전자주식회사 펌웨어의 업데이트 파일 생성 방법, 펌웨어 업데이트파일을 이용한 업데이트 방법 및 그 장치
US20090327741A1 (en) 2008-06-30 2009-12-31 Zimmer Vincent J System and method to secure boot uefi firmware and uefi-aware operating systems on a mobile internet device (mid)
US8606377B2 (en) * 2009-07-23 2013-12-10 Biosense Webster, Inc. Preventing disruptive computer events during medical procedures
US8275560B2 (en) * 2009-09-10 2012-09-25 Intel Corporation Power measurement techniques of a system-on-chip (SOC)
US8589302B2 (en) * 2009-11-30 2013-11-19 Intel Corporation Automated modular and secure boot firmware update
US9292277B2 (en) 2009-12-18 2016-03-22 Hewlett-Packard Development Company, L.P. Methods and devices for updating firmware of a component using a firmware update application
KR20120041384A (ko) * 2010-10-21 2012-05-02 삼성전자주식회사 모바일 디바이스의 펌웨어 업데이트 방법 및 장치
US9218178B2 (en) 2012-08-29 2015-12-22 Microsoft Technology Licensing, Llc Secure firmware updates

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7069452B1 (en) * 2000-07-12 2006-06-27 International Business Machines Corporation Methods, systems and computer program products for secure firmware updates
US20030236970A1 (en) * 2002-06-21 2003-12-25 International Business Machines Corporation Method and system for maintaining firmware versions in a data processing system
JP2005182812A (ja) * 2003-12-22 2005-07-07 Hewlett-Packard Development Co Lp コンピュータシステムにおいてイメージファイルを格納するシステムおよび方法
US20060174055A1 (en) * 2005-02-02 2006-08-03 Insyde Software Corporation System and method for reducing memory requirements of firmware
WO2012039971A2 (en) * 2010-09-22 2012-03-29 Intel Corporation Platform firmware armoring technology

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6263294B1 (ja) * 2017-03-31 2018-01-17 西日本電信電話株式会社 セキュリティ製品評価装置、セキュリティ製品評価方法及びセキュリティ製品評価プログラム
JP2018173805A (ja) * 2017-03-31 2018-11-08 西日本電信電話株式会社 セキュリティ製品評価装置、セキュリティ製品評価方法及びセキュリティ製品評価プログラム

Also Published As

Publication number Publication date
KR102048111B1 (ko) 2019-12-02
US20140068585A1 (en) 2014-03-06
CN104603792B (zh) 2019-08-06
CN104603792A (zh) 2015-05-06
US8898654B2 (en) 2014-11-25
KR20150048136A (ko) 2015-05-06
EP2917870A1 (en) 2015-09-16
WO2014035908A1 (en) 2014-03-06

Similar Documents

Publication Publication Date Title
JP2015531500A (ja) 安全なファームウェア更新
US9218178B2 (en) Secure firmware updates
US10025934B2 (en) Media protection policy enforcement for multiple-operating-system environments
CN110199271B (zh) 用于现场可编程门阵列虚拟化的方法和设备
RU2456662C2 (ru) Согласование загрузки между несколькими способными к загрузке устройствами
US10097513B2 (en) Trusted execution environment extensible computing device interface
CN107567629B (zh) 在可信执行环境容器中的动态固件模块加载器
WO2019084737A1 (zh) 更新SELinux安全策略的方法及终端
US10628588B2 (en) Information processing apparatus and computer readable storage medium
US20200012501A1 (en) Information Handling Systems And Method To Provide Secure Shared Memory Access At OS Runtime
US11861577B2 (en) System and method for distributed enforcement of configuration limitations
WO2019057155A1 (zh) 一种动态管理内核节点的方法和设备
US20230221784A1 (en) System and method for power state enforced subscription management
US11671379B1 (en) System and method for subscription management using dynamically composed management entities
US11829740B2 (en) System and method for deployment level management of subscription based solutions
US20230221997A1 (en) System and method for subscription management using composed systems
EP3701411A1 (en) Software packages policies management in a securela booted enclave
US10684904B2 (en) Information handling systems and methods to selectively control ownership of a hardware based watchdog timer (WDT)
US20230359741A1 (en) Trusted boot method and apparatus, electronic device, and readable storage medium
US20240037237A1 (en) System and method for flexible startup of data processing systems
US20230026040A1 (en) Authorizing application access via custom uwp sid

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20160804

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20170711

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20170830

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20171128

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

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20180105

A045 Written measure of dismissal of application [lapsed due to lack of payment]

Free format text: JAPANESE INTERMEDIATE CODE: A045

Effective date: 20180524