JP2015153198A - コンピュータの動作不良を防止する方法、コンピュータ・プログラムおよびコンピュータ - Google Patents

コンピュータの動作不良を防止する方法、コンピュータ・プログラムおよびコンピュータ Download PDF

Info

Publication number
JP2015153198A
JP2015153198A JP2014027059A JP2014027059A JP2015153198A JP 2015153198 A JP2015153198 A JP 2015153198A JP 2014027059 A JP2014027059 A JP 2014027059A JP 2014027059 A JP2014027059 A JP 2014027059A JP 2015153198 A JP2015153198 A JP 2015153198A
Authority
JP
Japan
Prior art keywords
variable
uefi
function
boot
area
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.)
Granted
Application number
JP2014027059A
Other languages
English (en)
Other versions
JP5889933B2 (ja
Inventor
勇作 森重
Yusaku Morishige
勇作 森重
佐々木 健
Takeshi Sasaki
健 佐々木
教博 安藤
Michihiro Ando
教博 安藤
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.)
Lenovo Singapore Pte Ltd
Original Assignee
Lenovo Singapore Pte Ltd
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 Lenovo Singapore Pte Ltd filed Critical Lenovo Singapore Pte Ltd
Priority to JP2014027059A priority Critical patent/JP5889933B2/ja
Priority to CN201510009424.9A priority patent/CN104850762B/zh
Priority to US14/621,708 priority patent/US10216936B2/en
Publication of JP2015153198A publication Critical patent/JP2015153198A/ja
Application granted granted Critical
Publication of JP5889933B2 publication Critical patent/JP5889933B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • G06F21/572Secure firmware programming, e.g. of basic input output system [BIOS]

Landscapes

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

Abstract

【課題】システム・ファームウェアが管理するデータに起因するシステムの動作不良を防止する。
【解決手段】ファームウェアROM100には、コード領域101、デフォルト領域103、変数領域105、107を設けている。変数領域105には、UEFIが作成したプリブートに不可欠なデータ(CV)を書き込む。変数領域105には、UEFIが定義するグローバル・バリアブルズ(GV)と、OSが作成したデータ(UV)を書き込む。変数領域105は、ファームウェアROMのなかでライト・ロックが可能な記録領域である。UEFIはプリブートを終了したあとに変数領域105をライト・ロックする。よって、OSによるCVの書き換えを防ぐことができる。
【選択図】図2

Description

本発明は、コンピュータの動作不良を防止する技術に関し、さらには、UEFI(Unified Extensible Firmware Interface)規格に適合するコンピュータのブートの信頼性を高める技術に関する。
コンピュータのファームウェアは、ハードウェアとオペレーティング・システム(OS)、デバイス・ドライバまたはアプリケーションなどの上位のプログラムとの間のインターフェースを提供するコードである。ファームウェアは、周辺デバイスを専用に制御するデバイス・ファームウェアとシステム全体の動作にかかわるシステム・ファームウェア(プラットフォーム・ファームウェアともいう。)に分けることができる。
システム・ファームウェアは通常マザーボードに取り付けられた不揮発性メモリ(NVRAM)に格納されている。BIOSはこれまで多くのコンピュータ・システムに実装されてきたシステム・ファームウェアで、コンピュータの電源が起動してからOSがロードを開始するまでの間にPOST(Power On Self Test)およびパスワード処理をしたり、ハードウェアにアクセスする為のサービスを提供したりする。
しかしBIOSは、近年の進化したハードウェアに対する対応が困難になってきたため、非特許文献1に示すように、UEFIフォーラムが、従来のBIOSであるレガシーBIOSに代わる新しいシステム・ファームウェアとしてUEFI規格を策定した。UEFIファームウェアは、レガシーBIOSをエミュレートして互換性を保つための仕組みを取り入れており、ハードウェアとソフトウェアは過去数年かけてレガシーBIOSからUEFIファームウェアに対応できるように段階的に発展してきた。2011年4月には非特許文献1に示す最新バージョンのUEFI規格が策定され、ハードウェアもほぼ対応できるようになってきたこともあって現在のシステムはUEFIファームウェアへの完全移行段階に入ってきている。
UEFIファームウェアを実装するシステムではUEFIネイティブ・モードで動作するUEFI対応のOSと、レガシーBIOS互換モードで動作するUEFI非対応のOSのいずれも動作することができる。Windows(登録商標)7はUEFIネイティブ・モードに対応しているが、UEFIファームウェアの高速ブート、セキュア・ブートなどの機能を利用することはできない。Windows(登録商標)8ではUEFIファームウェアに完全移行してその機能を完全に利用できるようになっている。
非特許文献1のUEFI仕様には、7.2にバリアブル・サービス(Variable Services)を規定している。バリアブル・サービスでは、不揮発性のメモリにUEFI仕様で定義した変数であるグローバル・バリアブルズ(GV:Global Variables)を格納することにしている。現在ほとんどのパーソナル・コンピュータ(PC)では、UEFIを格納する不揮発性メモリにGVを記録している。UEFI仕様では、ベンダーがUEFI仕様で定義されたGV用のユニークな識別子(VendorGuidおよびVariableName)を使って、当該不揮発性メモリに独自のGVを書き込んでもよいとしている。また、OSがUEFI仕様で定義したGVを書き換えることを許容している。特許文献1はUEFIファームウェアが使用する変数をプロテクトして不揮発性メモリに記憶する発明を記載している。
特開2010−73193号公報
Unified Extensible Firmware Interface Specification Version 2.3.1 April 6,2011
ところで、レガシーBIOSやUEFIファームウェアなどのシステム・ファームウェアは、ブートの際にデバイスの認識や初期化などの処理をするために、電源の起動直後にアクセスが可能な不揮発性メモリに書き込んだデータを参照する必要がある。以後このようなブートに不可欠なデータ(変数)を、本明細書においてコンフィグレーション・バリアブルズ(CV:Configuration Variables)ということにする。
CVはプリブート段階でUEFIがデバイスに設定するデバイスの属性情報およびデバイスに設定するパラメータ、セット・アップ画面を呼び出してユーザが設定したデバイスの種類、デバイスの動作モード、およびデバイスの有効/無効などの設定情報、ブート・イメージが格納されているパーティションのパスやロードするOSの種類などの情報を含む。CVの多くは、従来、ボタン電池で電源をサポートしているCMOSに記録されていたが、近年はUEFIを格納するセキュアな不揮発性メモリにも書き込むようになってきた。
また、OS、UEFIアプリケーション、およびOSアプリケーションはその実行に際して、自らをカスタマイズするための環境変数、デバッグ・ログ、またはエラー・ログのようなダンプ・ファイルをUEFIファームウェアの仕様上の制約を受けないで自由に不揮発性メモリに書き込むことができる。このようなOS、UEFIアプリケーション、およびOSアプリケーションが作成したデータを本明細書においてユーザ・バリアブルズ(UV:User Variables)ということにする。
図9はシステム・ファームウェアが管理するデータの記録方法の変遷を説明する図である。図9(A)はシステム・ファームウェアがレガシーBIOSのときに、BIOSコードをファームウェアROM501に格納し、CV、GVをボタン電池による電力のサポートがあるCMOS503、またはセキュアな不揮発性メモリに記録する様子を示している。レガシーBIOSには、UEFIのバリアブル・サービスに対応するサービスがないため、UVはHDDまたはSSDのような外部記憶装置505に記録している。
図9(B)は、システム・ファームウェアがUEFIファームウェアのときに、レガシーBIOS互換モードで動作するUEFI非対応のレガシーOSが動作するときの様子を示している。ファームウェアROM501は、UEFIコードを格納するコード領域501aと変数を記録する変数領域501bを含み、コード領域501aにはUEFIコードを格納する。レガシーBIOS互換モードで動作するUEFI非対応のレガシーOSは、UEFI規格が提供するバリアブル・サービスを利用できないため変数領域501bには、UEFIファームウェアによってCV、GVが記録されるだけで、レガシーOSまたはOSアプリケーションが書き込んだUVは、HDDまたはSSDなどの外部記憶装置505に記録される。また、レガシーBIOS互換モードで動作するときは、CPUの動作モードが切り換わってUEFIアプリケーションは動作できなくなるため、UEFIアプリケーションが変数領域501bにUVを書き込むこともない。
図9(C)はシステム・ファームウェアがUEFIファームウェアのときに、UEFIネイティブ・モードで動作するUEFI対応のOSが動作するときの様子を示している。UEFIネイティブ・モードで動作するOSは、UEFI規格が提供するバリアブル・サービスを利用できるため変数領域501cにはCV、GVと、UEFIアプリケーション、OS、OSアプリケーションが書き込んだ多量のUVを記録している。
いずれのプログラムであっても、バリアブル・サービスを利用して変数領域501cにデータを書き込むためには、UEFIの関数であるSetVariable()を呼び出してパラメータを設定する必要がある。レガシーBIOS互換モードで動作するレガシーOSはバリアブル・サービスを利用することができなかったが、UEFI規格では変数領域501cの利用に制限を設けていないため、UEFIネイティブ・モードで動作するOSおよびOSアプリケーションは、バリアブル・サービスを利用して変数領域501cに自由に多量のUVを書き込むことができる。
システム・ファームウェアの動作環境がレガシーBIOSからUEFIに完全に移行して変数領域501cがOSおよびOSアプリケーションに解放されたことに伴って、最近、ブートに関連するいくつかの問題が明らかになってきた。まず、UVを書き込むOSやOSアプリケーションが、SetVariable()に誤ってCVやGVの変数の名称(VariableName)や識別子(VendorGuid)を設定すると、CVやGVが書き換えられてしまうことがある。また、マルウェアによっても意図的にCVやGVが書き換えられたり消去されたりしてしまう危険性がある。CVはプリブートでハードウェアを構成するために不可欠なデータであり、さらにGVもプリブートに関連するデータを含むため、誤って書き換えられるとシステムをブートできなくなりユーザによる復旧作業が困難になる。
ここでプリブートとは、システムがACPIに規定するパワー・オフ状態(S5ステート)またはハイバネーション状態(S4)のときに、電源が起動してからOSがロードを開始するまでの間に、プロセッサがシステム・ファームウェアを実行している動作環境でのシステム・ファームウェアの処理をいう。また本明細書でブートとは、電源が起動してからプリブートを経由してOSおよびOSアプリケーションのロードが完了した状態になるまでの処理をいうことにする。
UEFI規格では、SetVariable()に設定するパラメータをハッシュして書き込み保護をする認証サービス(Variable Authentication)を提供する。認証サービスを利用すればOSまたはOSアプリケーションによるCVへの上書きを防ぐことはできる。しかし、OSまたはUEFIアプリケーションがコード領域501cにアクセスしているときに電源の瞬断などによって電気的なノイズが発生すると、CVやGVが毀損する可能性がある。
またUEFI規格では、OSやOSアプリケーションがGVを書き換えることを許容するため、認証サービスではGVを保護することはできない。GVは、Boot####、BootOrder、Drive####、DriveOrder、Key####などの名称の起動ディスクの種類や優先順位などに関するブート関連データや、Conin、Conoutといった入出力コンソールまでのパスに関するデータを含みUEFI規格で定義している。GVのブート関連データがOSやOSアプリケーションで誤って書き換えられたり、電源ノイズで毀損したりするとブートできなくなることも予想される。
さらに、変数領域501cの容量は一例で16MBといったように、HDDやSSDに比べて遙かに小さいため、多量のUVが書き込まれて変数領域501cが容量不足になると、プリブート中にUEFIファームウェアがCVやGVを更新できないため結果としてブート不能に陥ることも予想される。さらに、CVやGVが予期しない原因でOSやOSアプリケーションによって消去されてしまうことも予想される。その場合少なくとも、CVやGVをデフォルト値に戻したり、起動ディスクを変更したりするためのセット・アップ画面まではプリブートが到達できるようにしておくことが望ましい。
本発明は、システム・ファームウェアに関する上述の諸問題を解決することを目的とする。そこで本発明の具体的な目的は、システム・ファームウェアが管理するデータに起因するシステムの動作不良を防止する方法を提供することにある。さらに本発明の目的は、UEFIネイティブ・モードで動作するOSの動作環境下で生ずるシステムの動作不良を防止する方法を提供することにある。さらに本発明の目的は、OSおよびマルウェアによるCVの書き換えを防止する方法を提供することにある。さらに本発明の目的は、GVがOSおよびマルウェアによって書き換えられたときに修復する方法を提供することにある。さらに本発明の目的は、そのような方法を実現するコンピュータ・プログラムおよびコンピュータを提供することにある。
本発明は、システム・ファームウェアが管理するデータに起因するシステムの動作不良を防止する方法を提供する。システム・ファームウェアが管理するデータは、プリブートに不可欠な構成データ、システム・ファームウェアが定義しOSによる書き換えが可能な公開データおよびOSが作成したユーザ・データで構成されている。システム・ファームウェアは、不揮発性メモリの第1の変数領域に構成データを記録し、第2の変数領域に公開データおよびユーザ・データを記録する。システム・ファームウェアは、プリブートを終了した後の第1の変数領域に対する書き込みを制限する。
このような構成によれば、第2の変数領域にユーザ・データを書き込む際にOSが誤って、あるいはマルウェアが故意に第1の変数領域の構成データを書き換える危険性を排除してプリブートの信頼性を向上させることができる。第1の変数領域に対する書き込み制限は、不揮発性メモリのインターフェース・コントローラに対してハードウェア的にライト・ロックをかけて行うことができる。ライト・ロックを施すことで、システム・ファームウェアまたはOSが不揮発性メモリにアクセスする際に、電源が不安定になってノイズが発生しても第1の変数領域の構成データが書き換えてしまう危険性を排除することができる。
第1の変数領域に対する書き込みの制限は、第1の変数領域の構成データを更新するためのOSからのリクエストをシステム・ファームウェアが無効にすることでソフトウェア的に行うこともできる。システム・ファームウェアは、プリブートの間に第2の変数領域の残容量を確認し、残容量が所定値未満になったときに第2の変数領域をクリーン・アップすることを示す画面を表示し、クリーン・アップの指示を受け取ったときにユーザ・データを消去することができる。その結果、第2の変数領域がユーザ・データで溢れて、公開データの書き込みまたは更新ができなくなる自体を防ぐことができる。
構成データと公開データのデフォルト値を第3の変数領域に格納して、プリブートの間に構成データおよび公開データとデフォルト値を比較し、いずれかの構成データまたは公開データが消去されたと判断したときにデフォルト値を第1の変数領域または第2の変数領域に書き込むことができる。デフォルト値の書き込みは、消去されたデータだけについて行ってもよいし、フラッシュ・メモリの消去ブロックの単位に対して行ってもよい。
システム・ファームウェアがUEFI規格に適合する場合は、公開データをUEFI規格が定義するグローバル・バリアブルズとすることができる。このときUEFIは、プリブートの間に第2の変数領域に記録されたグローバル・バリアブルズのなかでブートに関するパラメータに対する改変の有無を判断し、パラメータが改変されたと判断したときにデフォルト値を書き込むことができる。
UEFI規格では、OSおよびOSアプリケーションからのグローバル・バリアブルズに対する書き換えを許容するため、構成データのようにライト・プロテクトすることはできないが、ブートに関連するグローバル・バリアブルズのパラメータをデフォルト値に維持しておけば、セット・アップ画面に到達するまでプリブートを進めることができる。セット・アップ画面を表示できれば、起動ディスクを変更したりパラメータをデフォルト値に戻したりできるためユーザが動作不良を回復させることができる。
ブートに関するグローバル・バリアブルズは、Boot####、BootOrder、Drive####、DriveOrder、およびKey####とすることができる。このときのパラメータは、ロード・オプション(Load options)とすることができる。OSは、第2の変数領域に自由にユーザ・データを書き込めるUEFIネイティブ・モードで動作することができる。第1の変数領域と第2の変数領域は、システム・ファームウェアを格納する不揮発性メモリに設けることができる。このとき、第2の変数領域は、公開データを記録する領域とユーザ・データを記録する領域にさらに分けることができる。また、公開データを記録する領域とユーザ・データを記録する領域は、構成データを記録する領域とは別のインターフェース・コントローラに接続された不揮発性メモリに設けることができる。
本発明により、システム・ファームウェアが管理するデータに起因するシステムの動作不良を防止する方法を提供することができた。さらに本発明により、UEFIネイティブ・モードで動作するOSの動作環境下で生ずるシステムの動作不良を防止する方法を提供することができた。さらに本発明により、OSおよびマルウェアによるCVの書き換えを防止する方法を提供することができた。さらに本発明により、GVがOSおよびマルウェアによって書き換えられたときに修復する方法を提供することができた。さらに本発明により、そのような方法を実現するコンピュータ・プログラムおよびコンピュータを提供することができた。
PC10の主要なハードウェアの構成を示す概略の機能ブロック図である。 ファームウェアROM100のデータ構造の一例を示す図である。 PC10が実装するソフトウェアの実行状態における階層構造を示す図である。 UEFIファームウェア150が変数領域に対するアクセスを制御する手順を示すフローチャートである。 変数制御コード150eによる変数領域105、107に対するアクセスを制御する手順を示すフローチャートである。 ファームウェアROM100が変数を格納する様子を示す図である。 ファームウェアROM100と他の不揮発性メモリ400が変数を記録する様子を示す図である。 ファームウェアROM100のUVとGVを記録する領域を区分した状態を示す図である。 システム・ファームウェアが管理するデータの記録方法の変遷を説明する図である。
[ハードウェアの概略構成]
図1は、ノートブック型またはデスクトップ型のPC10の主要なハードウェアの構成を示す機能ブロック図である。多くのハードウェアの構成は周知であるため、本発明の理解に必要な範囲で説明する。チップセット13はさまざまな規格のインターフェース機能を備えており、CPU11、システム・メモリ15、GPU17、HDD21、USBコネクタ23、有線または無線のLANに接続するためのネットワーク・モジュール25、およびキーボード29などが接続されている。GPU17にはLCD19が接続されている。チップセット13にはさらに、SPI(Serial Peripheral Interface)コントローラにはファームウェアROM100が接続されている。
HDD21は起動ディスクで、PC10の、UEFI規格に対応するOSのブート・イメージを格納する。HDD21は、複数のパーティションにそれぞれUEFI非対応のOSも含めて異なるブート・イメージを格納するようにしてもよい。HDD21のブート・セクタは、OSのブート・イメージをロードするためのOSローダーを格納する。
USBコネクタ23には、外付けのUSBメモリ、USB_CD、USB_FDD、USB_HDDなどのUSBデバイスを接続することができる。PC10は、USBコネクタ23に接続されたブート・イメージを格納するUSBデバイスからブートすることもできる。PC10は、PXE(Preboot eXecution Environment)などの機能により、ネットワーク・モジュール25を通じてOSのブート・イメージを受け取ってブートすることもできる。
[ファームウェアROMのデータ構造]
図2は、ファームウェアROM100のデータ構造を示す図で、図3はシステム・メモリ15にロードされて実行状態にあるソフトウェアの階層構造を示す図である。ファームウェアROM100は、不揮発性で記憶内容の電気的な書き替えが可能なフラッシュ・メモリで、一例としてコード領域101、デフォルト領域103、変数領域105、107の4ブロックに区分している。
本実施の形態では、コード領域101、デフォルト領域103、および変数領域105には、チップセット13のSPIコントローラにおいてライト・ロックが可能な記録領域を割り当てている。ライト・ロックが実行された記録領域に対しては、チップセット13がリセットされるまで書き込みができない。ただし、変数領域107はUEFI規格でOS167またはOSアプリケーション169による書き換えを保証しているGVを記録するためにライト・ロックはできない。
コード領域101はUEFIファームウェア150およびUEFIアプリケーション165を格納し、デフォルト領域103はGVとCVのデフォルト値を格納し、変数領域105は最新のCVを記録し、変数領域107はUVと最新のGVを記録する。デフォルト領域103が格納するGVとCVのデフォルト値は、PC10の出荷前またはUEFI150の更新時に書き込まれる。
UEFI150は、システムの動作環境の変化に応じてCVを更新する。UEFI規格では、GVをUEFIアプリケーション165、OS167、OSアプリケーション169にGVを参照または更新できるように公開することを規定している。したがって、変数領域105、107が記録するGVおよびCVは当初はデフォルト値であるが、PC10がブートを繰り返す間に書き換えられたり追加されたりする。UEFI150以外のソフトウェアによってCVが意図的にまたは誤って書き換えられると、システムは次回のブートを正常に行うことができなくなる可能性がある。
UEFIファームウェア150は、初期化コード150a、ランタイム・サービス150b、ブート・マネージャ150c、セット・アップ・コード150d、変数制御コード150e、レガシーBIOS互換サービス150f、およびUEFIドライバ150gを含む。UEFI150は、書き換えに伴うリスクを軽減するためにブート・ブロック方式を採用しており、初期化コード150aを格納する領域をブート・ブロックに設定している。ブート・ブロックに格納されたコードはTPM(Trusted Platform Module)の仕様書に規定するCRTM(Core Root Of Trust Measurement)として扱われ特別な権限がないと書き換えができないようになっている。
CRTMは、プラットフォームの初期化コードの中で完全性が保証されている部分として構成され、プラットフォームのリセット時には必ず最初に実行されなければならない。CRTMは、PC10がACPIに規定するハイバネーション状態(S4ステート)またはパワー・オフ状態(S5ステート)からパワー・オン状態(S0ステート)に遷移するための動作プロセスであるいわゆるコールド・ブートのときに必ず最初に実行される。
初期化コード150aは、PC10がコールド・ブートをする際に、システム・メモリ15にUEFIファームウェア150をロードして実行を開始するために必要なCPU11、システム・メモリ15およびその他の基本的なデバイスの検出、検査および初期化を必要な範囲で行う。初期化コード150aはまた、CPU11がリセットしてから、UEFI_OSローダー163に制御が移行するまでの期間にチップセット13のコントローラや周辺デバイスなどの所定のデバイスを初期化して使用できる状態にする。初期化コード150aは、コード領域101が格納する他のコードの一貫性または完全性を検査して改竄を発見した場合はブートを停止する。
ランタイム・サービス150bは、本実施の形態に関連するバリアブル・サービス、時刻情報のサービス、および仮想メモリ・サービスなどを提供する。ブート・マネージャ150cは、ブート処理およびパスワード認証処理などを行う。ブート・マネージャ150cは、GVを参照してUEFIアプリケーション165、UEFIドライバ150gおよびUEFI_OSローダー163(レガシーOS173をブートするときはレガシーBIOS_OSローダー171)をシステム・メモリ15にロードする。ブート・マネージャ150cは、プリブートが終了してUEFIファームウェア150からOS167に制御が移る直前に、UEFI_OSローダー163をシステム・メモリ15に読み出して完全性の検証をする。UEFI_OSローダー163には、それらを作成した作成者が計算したハッシュ値を秘密鍵で暗号化した電子署名が付されている。
ブート・マネージャ150cは、UEFI_OSローダー163のコードから計算したハッシュ値と、署名データ・ベースから取得した公開鍵で復号して得た電子署名のハッシュ値を比較して、一致していれば完全性が維持されていると判断してUEFI_OSローダー163の実行を許可する。セット・アップ・コード150dは、プリブートの段階でキーボード29の所定のファンクション・キーが押下されたたときに、LCD19にセット・アップ画面を表示する。ユーザはセット・アップ画面を通じて、起動ディスクの優先順位の決定、起動方法の設定、使用デバイスの設定、パスワードの設定およびパワー・マネジメントの設定などをすることができる。
セット・アップ・コード150dはセット・アップ画面を通じて入力された設定情報を変数領域105、107およびその他の記憶領域に書き込む。また一方で、セット・アップ・コード150dは、変数制御コード150eから呼び出されたときにLCD19に変数領域107をクリーン・アップするか否かをユーザが判断するためのクリーン・アップ画面を表示する。セット・アップ・コード150dは、変数領域107に書き込まれたUVをユーザの指示でクリーン・アップするための処理をする。
セット・アップ・コード150dは、変数制御コード150eがブートに関するGVのパラメータの改変を発見したときに、変数制御コード150eの指示でそれらをデフォルト値に戻す処理をする。変数制御コード150eは、図4、図5の手順で説明するように変数領域105、107にCV,GV、UVを書き込む際の処理をする。レガシーBIOS互換サービス150fは、UEFI非対応のレガシーOS173に対するレガシーBIOS互換のインターフェースを提供する。レガシーOS173が、レガシーBIOS互換のインターフェースを利用するときは、INT**の割り込みルーチンを呼び出すが、そこにはバリアブル・サービスに関する割り込みルーチンを含まないため、レガシーOS173はバリアブル・サービスを利用することはできない。したがって、レガシーOS173は、変数領域107にUVを書き込むことはできない。
[変数領域の制御手順]
図4、図5は、UEFIファームウェア150が変数領域105、107に対するアクセスを制御する手順を示すフローチャートである。ブロック211で、PC10の電源が起動してシステムがコールド・ブートを開始する。このとき図6に示すように、変数領域105にはCVが記録され、変数領域107にはGVとUVが書き込みの順番に応じて混合した状態で記録されている。パワー・オン・リセットしたチップセット13は、ブロック213でSPIコントローラに設定していたファームウェアROM100のコード領域101、デフォルト領域103および変数領域105に対するライト・ロック機能を解除する。
変数領域105のライト・ロックが解除されるため、UEFIファームウェア150はCVを追加したり更新したりしてプリブートを進めることができるようになる。つづいてブロック215で初期化コード150aがプリブートに必要なデバイスを初期化すると、UEFIファームウェア150、およびUEFIアプリケーション165がシステム・メモリ15にロードされる。初期化コード150aはつづいて変数領域105のCVを参照して、必要な範囲でその他のデバイスを初期化する。
OS167はシステムの変更に応じて新たなGVを書き込む場合がある。またOS167やUEFIアプリケーション165は、新たなUVを変数領域107に書き込む場合がある。したがって、変数領域107の容量が不足すると、UEFIファームウェア150がプリブートのために必要なGVを更新することができなくなってブート不能に陥る場合がある。ブロック219で変数制御コード150eは、変数領域107の容量がたとえば90%といった満杯に近い状態かどうかを判断する。
変数制御コード150eが変数領域107の残容量が不足していると判断したときは、ブロック221に移行する。ブロック221で変数制御コード150eは、セット・アップ・コード150dを通じてLCD19にクリーン・アップ画面を表示する。クリーン・アップ画面には、ファームウェアROM100が容量不足に陥っていること、この状態を継続するとブート不能になる可能性があること、すべてのUVを消去するための操作メニュー、UVを消去したときに生ずる問題、およびUVの消去に伴う問題の解決方法などを表示することができる。
ブロック223でクリーン・アップ画面をみたユーザは、その時点でUVのバックアップデータをHDD21に保存してからUVのクリーン・アップをしてもよいし、次回以降のブートでクリーン・アップをしてもよい。このとき変数制御コード150eは、後にOS167、UEFIアプリケーション165、およびOSアプリケーション169がUVを取得できるようにするために、消去するUVをHDD21に記録してそのパスをOS167に渡すようにしてもよい。
UEFI規格では、公開の必要なGVはライト・プロテクトをすることができないため、OS167およびOSアプリケーション169は誤ってGVを書き換える可能性がある。さらに、UVとGVは同じ変数領域107に記録するため、変数領域107に対するアクセスの際に電源の瞬断でノイズが発生すると変数領域107が記録しているGVが破損する可能性もある。
ブロック225で、変数制御コード150eは、変数領域107が記録するGVのなかでブートに関連するBoot####、BootOrder、Drive####、DriveOrder、Key####という名称のGVが指定するロード・オプション(Load options)というパラメータがデフォルト値から変更されていないかどうかを判断する。ロード・オプションは、起動ディスクおよびブート・イメージまでのパスを記述したリスト(FilePathList)を含みこの値が改変されるとブートができなくなる。
変数制御コード150eは、デフォルト領域103および変数領域107にそれぞれ記録されたロード・オプションを比較して改変されていると判断したときはブロック227に移行する。ブロック227で変数制御コード150eは、セット・アップ・コード150dに指示して、ブートに関連するすべてのGVのロード・オプションまたは改変されているGVのロード・オプションをデフォルト領域103に記録していたデフォルト値で書き換える。
このときセット・アップ・コード150dは、セット・アップ画面においてF9キーに割り当てたSetup DefaultsとF10キーに割り当てたSave & Exitの機能を利用することができる。前回のブートにおいて、ブートに関連するGVが書き換えられても今回のプリブートの間にブートに関連するGVのロード・オプションを必要に応じて修正することで、少なくともセット・アップ画面を表示させることができるようになる。GVの改変によってブートに問題が生じても、セット・アップ画面を表示できればユーザが問題を回復する可能性は高まる。
何らかの原因でCV、GVが消去された場合、GetVariable()で参照したときにデータ不存在を示すエラーが発生する。ブロック229で変数制御コード150eは、変数領域105、107に記録していたCV、GVがすべて存在するかどうかを確認する。変数制御コード150eは、デフォルト領域103にあるCV、GVが変数領域105、107に記録されたCV、GVに不存在と判断したときは、ブロック231で変数領域105、107に消去されたCV、GVのデフォルト値を書き込む。
ブロック233は、UEFIファームウェア150またはUEFIアプリケーション165が、プリブートの開始から終了までの間に、変数領域105、107に対してCV、GV、UVの書き込みをする場合があることを示している。ブロック235で変数制御コード150eは、コード領域101、デフォルト領域103、および変数領域105をライト・ロックするためにチップセット13のSPIコントローラを設定する。CVはハードウェア的にライト・ロックした変数領域105に格納するため、UEFIアプリケーション165、OS167、またはOSアプリケーション169によって改変されることも、変数領域107に対するアクセスの際に発生する電源のノイズの影響を受けることもない。
さらに、変数制御コード150eは、それ以降において、UEFIアプリケーション165、OS167またはOSアプリケーション169からのCVを書き込むための関数であるSetVariable()の呼び出しに対し、エラーで応答することによりソフトウェア的なライト・ロックをする。ソフトウェア的なライト・ロックは、ハードウェア的なライト・ロックとともに、またはハードウェア的なライト・ロックに代えて実行することができる。ソフトウェア的なライト・ロックによっても、CVの改変と電源ノイズの影響を防ぐことができる。なお、ハードウェア的なライト・ロックに代えてソフトウェア的なライト・ロックだけを採用する場合は、プリブートの完了後においてもUEFIファームウェア150にはCVの書き換えを許可することもできる。変数領域105に対する書き込み保護の処理につづいてブロック236でプリブートが終了する。
ブロック237で、ブート・マネージャ150cがHDD21の所定のセクタからUEFI_OSローダー163をロードすると、OS167、およびOSアプリケーション169がロードされてPC10はパワー・オン状態に移行し、システムはUEFIネイティブ・モードで動作する。UEFIアプリケーション165、OS167、およびOSアプリケーション169は、UEFIファームウェア150に自由にUVの書き込みの要求をすることができる。
ブロック239は、UEFIアプリケーション165、OS167またはOSアプリケーション169が必要に応じて変数領域107にGV、UVの書き込みを行うことを示している。変数領域105はハードウェア・ロックおよびソフトウェ・ロックまたはいずれが行われているため、OS167およびOSアプリケーション169は、GV、UVの書き込みの際に誤ってCVを書き換えることがない。また、GV、UVの書き込みの際に電源の瞬断でノイズが発生しても変数領域105は変数領域107からハードウェア・ロックおよびソフトウェア・ロックで分割されているため影響を受けない。
図4に示した手順は本発明を説明するための例示でありすべてが本発明の必須の手順ではない。本発明の必須の手順は特許請求の範囲に記載するとおりである。また、各ブロックの順番も、図4に示した順番に限定するものではない。たとえば、ブロック219、225、229の手順および関連する手順とともに入れ替えることができる。
図5は、変数制御コード150eが変数領域105、107にCV、GVまたはUVを書き込むためのリクエストを受け取ったときの処理をする手順を説明する図である。ブロック301では、図4のブロック233、239のいずれかでUEFIアプリケーション165、OS167またはOSアプリケーション169がSetVariable()を呼び出して、CV、GV、UVのいずれかを書き込むためのリクエストを発行する。リクエストを受け取った変数制御コード150eはブロック303で、現在プリブートが終了しているか否かを判断する。プロブートが終了しているときはブロック305に移行し、プリブート中のときはブロック309に移行する。
ブロック309で変数制御コード150eは、変数の種類がいずれであってもランタイム・サービス150bに書き込みのリクエストを渡す。ランタイム・サービスはSetVariable()で指定された変数のうち、CVは変数領域105に書き込み、GV、UVは変数領域107に書き込む。ブロック305で変数制御コード150eは、SetVariable()に設定されたパラメータのなかで、変数名称(VariableName)およびベンダー識別子(VendorGuid)を参照して、あらかじめ保有しているリストと比較し書き込む変数の種類を判断する。
変数がUVまたはGVのときは、変数制御コード150eは、ランタイム・サービスにリクエストを渡す。変数がCVのときは、変数制御コード150eは、ソフトウェア・ロック機能により当該リクエストを無効にする。また、チップセット13をハードウェア的にロックしている場合は、たとえランタイム・サービス150bがリクエストを受け取っても変数領域105にアクセスできないためCVを書き込むことができない。
図7、図8は、変数領域105、107の他の構成方法を説明する図である。図7の構成が図6の構成と異なる点は、図7(A)に示すようにファームウェアROM100の変数領域107にGVだけを記録して、図7(B)に示すようにUVをインターフェースの異なる別の不揮発性メモリ400に記録するようにした点だけである。こうすることで、変数領域107はUVでオーバーフローする恐れがなくなり、かつ、不揮発性メモリ400にアクセスする際に発生する電源の瞬断でCV、GVが破損する危険性を除去することができる。なお、この場合でも変数領域105はハードウェア・ロックおよびソフトウェア・ロックまたはいずれかをしておく。
図8の構成が図6の構成と異なる点は、ファームウェアROM100に変数領域109を追加した点だけである。図8の構成では、変数領域107にはGVだけを記録し、変数領域109にはUVだけを記録する。変数領域105にはライト・プロテクトをするが、変数領域107、109にはライト・プロテクトをしない。この場合も図7の構成と同様に変数領域107のオーバーフローの問題と電源の瞬断の問題を解決することができる。
これまで本発明について図面に示した特定の実施の形態をもって説明してきたが、本発明は図面に示した実施の形態に限定されるものではなく、本発明の効果を奏する限り、これまで知られたいかなる構成であっても採用することができることはいうまでもないことである。
10 PC
100 ファームウェアROM
101 コード領域
103 デフォルト領域
105 CVを記録する変数領域
107 GV、UVを記録する変数領域
109 UVを記録する変数領域
150 UEFIファームウェア
400 ファームウェアROMとは異なる不揮発性メモリ

Claims (16)

  1. コンピュータに、
    不揮発性メモリに設定された第1の変数領域と第2の変数領域を認識する機能と、
    前記第1の変数領域にプリブートに不可欠な構成データを書き込む機能と、
    前記第2の変数領域にシステム・ファームウェアが定義しオペレーティング・システムによる書き換えが可能な公開データを書き込む機能と、
    前記オペレーティング・システムからのリクエストに応じて前記第2の変数領域にユーザ・データを書き込む機能と、
    前記プリブートを終了したあとの前記第1の変数領域に対する書き込みを制限する機能と
    を実現させるためのシステム・ファームウェア。
  2. 前記書き込みを制限する機能が、前記第1の変数領域に接続されたインターフェース・コントローラをライト・ロックする機能を含む請求項1に記載のシステム・ファームウェア。
  3. 前記書き込みを制限する機能が、前記オペレーティング・システムによる前記構成データを更新するためのリクエストを無効にする機能を含む請求項1または請求項2に記載のシステム・ファームウェア。
  4. 前記プリブートの間に前記第2の変数領域の残容量を確認する機能と、
    前記残容量が所定値未満になったときに前記第2の変数領域をクリーン・アップすることを示す画面を表示する機能と、
    前記クリーン・アップの指示を受け取ったときに前記ユーザ・データを消去する機能と
    を有する請求項1に記載のシステム・ファームウェア。
  5. 前記構成データと前記公開データのデフォルト値を格納する第3の変数領域を認識する機能と、
    前記プリブートの間に前記構成データおよび前記公開データのそれぞれと前記デフォルト値を比較する機能と、
    いずれかの前記構成データまたは前記公開データが消去されたと判断したときに前記デフォルト値を前記第1の変数領域または前記第2の変数領域に書き込む機能と
    を有する請求項1に記載のシステム・ファームウェア。
  6. 前記システム・ファームウェアがUEFI規格に適合し、前記公開データは前記UEFI規格が定義するグローバル・バリアブルズである請求項1に記載のシステム・ファームウェア。
  7. 前記プリブートの間に前記第2の変数領域に記録された前記グローバル・バリアブルズのなかでブートに関連するグローバル・バリアブルズのパラメータに対する改変の有無を判断する機能と、
    前記パラメータが改変されたと判断したときにデフォルト値を書き込む機能と
    を含む請求項6に記載のシステム・ファームウェア。
  8. 前記ブートに関連するグローバル・バリアブルズが、Boot####、BootOrder、Drive####、DriveOrder、およびKey####である請求項7に記載のシステム・ファームウェア。
  9. 前記オペレーティング・システムが、前記UEFIの規格に対応してUEFIネイティブ・モードで動作する請求項6に記載のシステム・ファームウェア。
  10. UEFI規格に適合するシステム・ファームウェアと、プリブートに不可欠なコンフィグレーション・バリアブルズと、前記UEFI規格が定義するグローバル・バリアブルズと、前記UEFI規格に対応するオペレーティング・システムが作成したユーザ・バリアブルズを格納する不揮発性メモリを実装したコンピュータに、
    前記コンフィグレーション・バリアブルズ、前記グローバル・バリアブルズ、または前記ユーザ・バリアブルズのいずれかに対する書き換えのリクエストを受け取る機能と、
    プリブート中か否かを判断する機能と、
    前記プリブート中だと判断したときに前記リクエストを処理する機能と、
    前記プリブートが終了したと判断したときに前記コンフィグレーション・バリアブルズの書き換えを無効にする機能と
    を実現させるためのシステム・ファームウェア。
  11. 前記プリブートが終了したと判断したときに前記グローバル・バリアブルズおよび前記ユーザ・バリアブルズに対する書き換えのリクエストを処理する機能を含む請求項10に記載のシステム・ファームウェア。
  12. UEFI規格に適合するシステム・ファームウェアを格納する不揮発性メモリを実装したコンピュータの動作不良を防止する方法であって、
    プリブートに不可欠なコンフィグレーション・バリアブルズを前記不揮発性メモリの第1の記憶領域に書き込むステップと、
    前記UEFI規格が定義するグローバル・バリアブルズを前記不揮発性メモリの第2の記憶領域に書き込むステップと、
    前記UEFI規格に対応するオペレーティング・システムから受け取ったリクエストに応じてユーザ・バリアブルズを前記不揮発性メモリの第3の記憶領域に書き込むステップと、
    前記プリブートが終了した後の前記オペレーティング・システムから前記第1の記憶領域に対するアクセスを制限するステップと
    を有する方法。
  13. プロセッサと、UEFIコードを格納した不揮発性メモリと、UEFI規格に適合するオペレーティング・システムを格納したディスク・ドライブとを有するコンピュータであって、前記不揮発性メモリが、
    プリブートに不可欠な構成データを書き込む第1の記録領域と、
    前記UEFI規格が定義するデータと、前記オペレーティング・システムが作成したユーザ・データとを書き込む第2の記録領域と、
    前記プリブートが終了した後の前記オペレーティング・システムから前記第1の記録領域に対する書き込みを制限する手段と
    を有するコンピュータ。
  14. 前記書き込みを制限する手段が、前記不揮発性メモリのインターフェース・コントローラを含む請求項13に記載のコンピュータ。
  15. 前記第2の記録領域が、前記UEFI規格が定義するデータの記録領域と前記ユーザ・データの記録領域に分割されている請求項13に記載のコンピュータ。
  16. プロセッサと、UEFI規格に適合するオペレーティング・システムを格納したディスク・ドライブとを有するコンピュータであって、
    UEFIコードと、プリブートに不可欠な構成データと、前記UEFI規格が定義するデータとを格納する第1の不揮発性メモリと、
    前記オペレーティング・システムが作成したユーザ・データを書き込む第2の不揮発性メモリと、
    前記プリブートが終了した後の前記オペレーティング・システムから前記第1の記録領域に対する書き込みを制限する手段と
    を有するコンピュータ。
JP2014027059A 2014-02-15 2014-02-15 コンピュータの動作不良を防止する方法、コンピュータ・プログラムおよびコンピュータ Active JP5889933B2 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2014027059A JP5889933B2 (ja) 2014-02-15 2014-02-15 コンピュータの動作不良を防止する方法、コンピュータ・プログラムおよびコンピュータ
CN201510009424.9A CN104850762B (zh) 2014-02-15 2015-01-08 防止计算机的动作不良的方法、计算机程序以及计算机
US14/621,708 US10216936B2 (en) 2014-02-15 2015-02-13 Method of preventing computer malfunction, computer program, and computer

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2014027059A JP5889933B2 (ja) 2014-02-15 2014-02-15 コンピュータの動作不良を防止する方法、コンピュータ・プログラムおよびコンピュータ

Publications (2)

Publication Number Publication Date
JP2015153198A true JP2015153198A (ja) 2015-08-24
JP5889933B2 JP5889933B2 (ja) 2016-03-22

Family

ID=53798360

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014027059A Active JP5889933B2 (ja) 2014-02-15 2014-02-15 コンピュータの動作不良を防止する方法、コンピュータ・プログラムおよびコンピュータ

Country Status (3)

Country Link
US (1) US10216936B2 (ja)
JP (1) JP5889933B2 (ja)
CN (1) CN104850762B (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2017058992A (ja) * 2015-09-17 2017-03-23 Necプラットフォームズ株式会社 情報処理装置、情報処理装置の動作環境設定情報を更新する方法、及び、情報処理装置の動作環境設定情報を更新するプログラム
JP6204555B1 (ja) * 2016-09-21 2017-09-27 レノボ・シンガポール・プライベート・リミテッド 不揮発性メモリに格納した変数を保護する方法、システム・ファームウェアおよびコンピュータ

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI562071B (en) * 2015-11-04 2016-12-11 Mitac Computing Technology Corp Method for startup inspection and computer system using the same
CN106815033B (zh) * 2015-11-27 2020-07-17 佛山市顺德区顺达电脑厂有限公司 开机检查方法及计算机系统
US10140117B2 (en) * 2016-06-30 2018-11-27 Microsoft Technology Licensing, Llc Fault-tolerant variable region repaving during firmware over the air update
US10282243B2 (en) 2016-09-15 2019-05-07 International Business Machines Corporation Performance enhancement for platform data dump collection
WO2018199893A1 (en) * 2017-04-24 2018-11-01 Hewlett-Packard Development Company, L.P. Displaying a bios update progress
US11263326B2 (en) * 2017-06-02 2022-03-01 Apple Inc. Method and apparatus for secure system boot
US10831897B2 (en) * 2017-07-14 2020-11-10 Dell Products, L.P. Selective enforcement of secure boot database entries in an information handling system
US10635818B1 (en) * 2017-08-25 2020-04-28 American Megatrends International, Llc Blocking runtime firmware variable access
US10621354B2 (en) * 2018-02-22 2020-04-14 Dell Products, L.P. Verifying basic input/output system (BIOS) boot block code
WO2019236087A1 (en) * 2018-06-07 2019-12-12 Hewlett-Packard Development Company, L.P. Non-volatile memory protections
US10740084B2 (en) * 2018-08-16 2020-08-11 Intel Corporation Soc-assisted resilient boot
CN109582370B (zh) * 2018-11-01 2022-07-19 浙江大华技术股份有限公司 一种nor flash嵌入式设备的启动方法及装置
US11169818B2 (en) * 2019-04-25 2021-11-09 Dell Products L.P. Systems and methods for dynamically locating and accessing operating system (OS) file system data from a pre-boot environment
CN111159726B (zh) * 2019-12-10 2022-09-13 中国电子科技网络信息安全有限公司 一种基于uefi环境变量的全盘加解密方法及系统
JP2021111112A (ja) * 2020-01-09 2021-08-02 キヤノン株式会社 画像形成装置、及びその制御方法
CN112181793B (zh) * 2020-09-28 2022-11-11 大唐高鸿信安(浙江)信息科技有限公司 一种日志记录方法、装置及设备

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2012127522A1 (ja) * 2011-03-18 2012-09-27 富士通株式会社 情報処理装置及び情報処理装置の制御方法
US20120260082A1 (en) * 2011-04-08 2012-10-11 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

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
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)
US8533830B1 (en) * 2009-03-31 2013-09-10 Mcafee, Inc. System, method, and computer program product for mounting an image of a computer system in a pre-boot environment for validating the computer system
JP2012059024A (ja) * 2010-09-09 2012-03-22 Ricoh Co Ltd 情報処理装置、起動制御方法、起動制御プログラム及び記録媒体
US9256745B2 (en) * 2011-03-01 2016-02-09 Microsoft Technology Licensing, Llc Protecting operating system configuration values using a policy identifying operating system configuration settings
US9075751B2 (en) * 2012-08-09 2015-07-07 Intel Corporation Secure data protection with improved read-only memory locking during system pre-boot
KR20150111937A (ko) * 2013-01-30 2015-10-06 휴렛-팩커드 디벨롭먼트 컴퍼니, 엘.피. 비휘발성 메모리 기록 메커니즘
US10289399B2 (en) * 2014-01-22 2019-05-14 Hewlett-Packard Development Company, L.P. System firmware configuration data

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2012127522A1 (ja) * 2011-03-18 2012-09-27 富士通株式会社 情報処理装置及び情報処理装置の制御方法
US20120260082A1 (en) * 2011-04-08 2012-10-11 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

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2017058992A (ja) * 2015-09-17 2017-03-23 Necプラットフォームズ株式会社 情報処理装置、情報処理装置の動作環境設定情報を更新する方法、及び、情報処理装置の動作環境設定情報を更新するプログラム
JP6204555B1 (ja) * 2016-09-21 2017-09-27 レノボ・シンガポール・プライベート・リミテッド 不揮発性メモリに格納した変数を保護する方法、システム・ファームウェアおよびコンピュータ

Also Published As

Publication number Publication date
CN104850762B (zh) 2019-03-05
CN104850762A (zh) 2015-08-19
US10216936B2 (en) 2019-02-26
JP5889933B2 (ja) 2016-03-22
US20150235029A1 (en) 2015-08-20

Similar Documents

Publication Publication Date Title
JP5889933B2 (ja) コンピュータの動作不良を防止する方法、コンピュータ・プログラムおよびコンピュータ
US11520894B2 (en) Verifying controller code
JP6054908B2 (ja) 変数セットを修復する方法、コンピュータ・プログラムおよびコンピュータ
CN103718165B (zh) Bios闪存攻击保护和通知
JP4433401B2 (ja) 情報処理システム、プログラム、及び情報処理方法
US9880908B2 (en) Recovering from compromised system boot code
TWI559167B (zh) 統一可延伸韌體介面(uefi)相容計算裝置和用於在uefi相容計算裝置中管控一安全啓動之方法
JP4793733B2 (ja) 高インテグリティファームウェア
CN102298529B (zh) 为系统提供硅集成代码
EP2989583B1 (en) Configuring a system
US8539213B2 (en) Manageability extension mechanism for system firmware
US8819330B1 (en) System and method for updating a locally stored recovery image
US7827376B2 (en) System and method for protecting hidden protected area of HDD during operation
US8281119B1 (en) Separate normal firmware and developer firmware
US7069445B2 (en) System and method for migration of a version of a bootable program
TWI743480B (zh) 電腦系統與其開機方法
US20130311761A1 (en) Intelligently Loading Legacy Option ROMs In A Computing System
KR100775431B1 (ko) 임베디드 시스템 및 임베디드 시스템의 펌웨어 업데이트방법
JP6204555B1 (ja) 不揮発性メモリに格納した変数を保護する方法、システム・ファームウェアおよびコンピュータ
Kildall User interface
Terzić et al. BASIC INPUT/OUTPUT SYSTEM BIOS FUNCTIONS AND MODIFICATIONS

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20151214

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20151222

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20160116

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20160217

R150 Certificate of patent or registration of utility model

Ref document number: 5889933

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R360 Written notification for declining of transfer of rights

Free format text: JAPANESE INTERMEDIATE CODE: R360

R360 Written notification for declining of transfer of rights

Free format text: JAPANESE INTERMEDIATE CODE: R360

R371 Transfer withdrawn

Free format text: JAPANESE INTERMEDIATE CODE: R371

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250