JP2013149135A - コンピュータをブートする方法およびコンピュータ - Google Patents

コンピュータをブートする方法およびコンピュータ Download PDF

Info

Publication number
JP2013149135A
JP2013149135A JP2012009980A JP2012009980A JP2013149135A JP 2013149135 A JP2013149135 A JP 2013149135A JP 2012009980 A JP2012009980 A JP 2012009980A JP 2012009980 A JP2012009980 A JP 2012009980A JP 2013149135 A JP2013149135 A JP 2013149135A
Authority
JP
Japan
Prior art keywords
boot
signal
computer
integrity
flag
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
JP2012009980A
Other languages
English (en)
Other versions
JP5519712B2 (ja
Inventor
Takeshi Sasaki
健 佐々木
Eitaro Kasamatsu
栄太郎 笠松
Yusaku Morishige
勇作 森重
Kosuke Otani
康祐 大谷
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 JP2012009980A priority Critical patent/JP5519712B2/ja
Priority to US13/736,382 priority patent/US9292302B2/en
Publication of JP2013149135A publication Critical patent/JP2013149135A/ja
Application granted granted Critical
Publication of JP5519712B2 publication Critical patent/JP5519712B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • G06F9/4406Loading of operating system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • G06F21/575Secure boot
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs

Abstract

【課題】セキュア・ブート機能を一時的にスキップする方法を提供する。
【解決手段】コンピュータはセキュア・ブート機能がデフォルトで有効に設定されている。パワー・オフ状態で起動ボタン47を押下すると起動信号が生成される。S4/S5ステートから起動するときはスイッチ207がオンになりレジスタ211にフィジカル・プリゼンスを示すPPビットが設定される。また、キーボード37の特定のキーを押下するとレジスタ213にDEビットが設定される。ファームウェアROM27に格納されたUEFIファームウェアは、PPビットとDEビットを確認したときに、今回のブートに限り一時的にブート・プログラムの完全性の検証をスキップする。
【選択図】図4

Description

本発明は、ブート・プログラムの完全性の検証をするセキュア・ブート機能を制御する技術に関し、さらに詳細にはセキュリティ・レベルの低下を軽減しながら簡単な操作でセキュア・ブート機能を制限する技術に関する。
ファームウェアは、ハードウェアとオペレーティング・システム(OS)、デバイス・ドライバまたはアプリケーション・プログラムなどの上位のプログラムとの間のインターフェースを提供するコードである。ファームウェアは、周辺デバイスを専用に制御するデバイス・ファームウェアとシステム全体の動作にかかわるシステム・ファームウェア(プラットフォーム・ファームウェアともいう。)に分けることができる。
システム・ファームウェアは通常マザーボードに取り付けられた不揮発性メモリ(NVRAM)に格納されている。BIOSは最も普及しているシステム・ファームウェアで、コンピュータの電源が起動してからOSがロードを開始するまでの間に、POST(Power On Self Test)およびパスワード処理をしたり、ハードウェアにアクセスする為のサービスを提供したりする。BIOSは、16ビットのプロセッサと1MBのメモリ空間をサポートするが、近年の進化したハードウェアに対する対応が困難になってきている。
このような状況下で非特許文献1に示すように、UEFI(Unified Extensible Firmware Interface)フォーラムがBIOSに代わってまたはBIOSに加えて使用する新しいシステム・ファームウェア(以後、UEFIファームウェアという。)の仕様を策定した。UEFIファームウェアを搭載するシステムでは、それに対応するOSやデバイス・ドライバだけが動作できる。ただしほとんどのUEFIファームウェアは、BIOSをエミュレートすることができるようになっているため、UEFIファームウェアを搭載するシステムではUEFI対応のOSとBIOSにだけ対応するUEFI非対応のOSのいずれも動作することができる。
ところで起動ディスクには、ブート・ローダといわれるOSをロードするためのプログラムが格納されている。起動時にUEFIファームウェアは、最初にブート・ローダにハンドオフして制御を渡す。ブート・ローダは、OSイメージのメイン・メモリのロードを、UEFIファームウェアに依頼する。もし、ブート・ローダがマルウェアから攻撃を受けて改竄されると、マルウェア対策のプログラムがロードされなくなったり、ディスク・ドライブに埋め込まれたマルウェアがロードされたりすることになるためブート・ローダの保護対策が必要となる。
特許文献1にはマルウェアによるブート・ローダに対する攻撃からコンピュータを保護する発明を開示する。また非特許文献2、および非特許文献3にも示すように、UEFI仕様ではセクション27.5でセキュア・ブートについて規定する。セキュア・ブートは、当初から完全性が維持されていることを検証したコードまたはブート・ローダしか実行できないようにしてコンピュータの安全性を高める技術である。コンピュータの安全性を高める他の技術として特許文献2は、プラットフォームを物理的に支配しているユーザが操作していることを検証するフィジカル・プリゼンスについて開示する。特許文献3は、電源投入時に特定のキー入力をすることで煩雑な操作をしないで起動デバイスを変更してシステムを起動する発明を開示する。特許文献4は、電源を入れた直後にホットキーを押下して、ホットキーのIDに対応するOSを起動する発明を開示する。
特表2005−537224号公報 特開2010−146048号公報 特開2003−280915号公報 特開2003−150379号公報
Unified Extensible Firmware Interface Specification,Version 2.3.1, September 7, 2011,2011年12月19日インターネット検索http://www.uefi.org/specs/download/?item_key=aea8a9a9173c42dc477aea293160b62816049d9a オープンプラットフォームにおけるUEFI Secure Bootへの対応、2011年10月、James Bottomley, Jonathan Corbet, The Linux Foundation, 2011年12月19日インターネット検索http://www.linuxfoundation.jp/publications/making-uefi-secure-boot-work-with-open-platforms UEFIでOS起動前の環境を保護する、Steven Sinofsky、2011年9月27日、2011年12月19日インターネット検索http://blogs.msdn.com/b/b8_ja/archive/2011/09/27/uefi-os.aspx
UEFI対応のOSは完全性の検証をしないでも動作するが、UEFIファームウェアを搭載するシステムでは安全性を確保するために、セキュア・ブート機能をデフォルトでイネーブルに設定して常にOSの完全性を検証してからブートすることが望ましい。他方でUEFIファームウェアはBIOSと互換性があるため、UEFIファームウェアを搭載するシステムにおいてUEFI非対応のOSを動作させたい場合がある。たとえば、ディスク・ドライブにはUEFI対応のOSを格納し、他のディスク・ドライブにはUEFI非対応のOSを格納しておいて、ユーザが選択したいずれかのOSをブートしたい場合がある。
このとき、セキュア・ブート機能がイネーブルになっていると、UEFIファームウェアはUEFI非対応のOSについては完全性の検証を成功させることができないため、結果としてそれをブートすることができなくなる。したがってUEFI非対応のOSをブートするには、デフォルトで設定されたセキュア・ブート機能をディスエーブルに設定する必要がある。セキュア・ブート機能の設定は、UEFIファームウェアが提供するセット・アップ画面を通じて行う。セキュア・ブート機能を一旦イネーブルに設定すれば、UEFIファームウェアはブートのたびに完全性の検証を行なって検証が成功した場合にだけOSのブートを許可する。
セキュア・ブート機能をディスエーブルに設定する場合は、セット・アップ画面を表示して設定を変更してから通常は電源を再起動する必要があるため、ユーザに対して煩雑な手順を要求しブート時間が長くなる。さらに、UEFIファームウェアを搭載するシステムでは、セキュア・ブート機能をデフォルトでイネーブルに設定しておくことが望ましいため、UEFI非対象のOSを実行したあとに再起動してセット・アップ画面を表示しセキュア・ブート機能をイネーブルに設定し直しておく必要があり、さらにユーザに煩雑な手順を要求する。また、ユーザがセキュア・ブート機能をイネーブルに設定しない場合は、UEFI非対応のOSだけでなくUEFI対応のOSに対しても気づかないうちに完全性の検証を行わないでブートすることになり、セキュア・ブート機能をデフォルトでイネーブルに設定するというセキュリティ・ポリシーを損なうことになる。
そこで本発明の目的は、ブート・プログラムの完全性の検証をするようにデフォルトで設定されたコンピュータにおいて、一時的に完全性の検証をしないでブート・プログラムをロードする方法を提供することにある。さらに本発明の目的は、簡単な操作で完全性の検証をしないでブート・プログラムをロードする方法を提供することにある。さらに本発明の目的は、セキュリティ・リスクを軽減しながら完全性の検証をしないでブート・プログラムをロードする方法を提供することにある。さらに本発明の目的は、完全性の検証をしないで短時間でブート・プログラムをロードする方法を提供することにある。さらに本発明の目的は、そのような方法を実現するコンピュータおよびコンピュータ・プログラムを提供することにある。
本発明にかかるコンピュータはブート・プログラムの完全性の検証をするセキュア・ブート機能がデフォルトでイネーブルに設定されている。完全性の検証をデフォルトでイネーブルに設定するとは、ブートのたびにユーザが明示的な意思表示をしてディスエーブルに設定しない限り、ロードするブート・プログラムの完全性を検証するルーチンを実行することを意味する。さらにデフォルトでイネーブルに設定するとは、次回のブートにおいてユーザの操作を介在しないでディスエーブルからイネーブルに変更が行われることを意味する。完全性とは、一貫性、整合性、またはintegrityなどともいわれ、ブート・プログラムがコンピュータに実装された時点から現在までの間に不正に書き換えられていないことを意味する。
ブート・プログラムは、Windows(登録商標)のような大規模なOSであってもまたシステム・ファームウェアの更新プログラムのような小規模なプログラムであってもよい。ブート・プログラムは、ディスク・ドライブ、外付けのUSBメモリ、または内蔵の不揮発性メモリのようなブート・デバイスのいずれかに格納されている。ブート・プログラムはネットワークを通じてコンピュータに接続された記憶装置に存在していてもよい。完全性の検証は、ブート・プログラムのブート・ローダまたはブート・イメージを対象にしてPKI(Public Key Infrastructure)方式で行うことができる。ブート・プログラムには、セキュア・ブート機能に対応するプログラムと対応しないプログラムが存在する。
セキュア・ブート機能に対応するブート・プログラムは完全性の検証をしないでもロードすることはできるが、本発明ではセキュア・ブート機能に対応するブート・プログラムに対してはユーザの明示的な意思でセキュア・ブート機能を一時的に停止しない限り必ず完全性の検証を行うようにしている。本発明では、セキュア・ブート機能に対応しないブート・プログラムをロードするときだけセキュア・ブート機能を一時的に停止してロードし、当該ブート・プログラムの実行が終了したときは再びセキュア・ブート機能を有効にする環境に簡単かつ確実に短時間で復帰させる。
本発明の態様では、最初に起動信号に応じてコンピュータが電源を起動する。コンピュータはパワー・オフ状態のコンピュータに物理的にアクセスしたユーザの操作に応じて起動信号が生成されたときにフィジカル・プリゼンスを示す第1の信号を生成する。第1の信号はPP信号とすることができる。コンピュータは、今回の起動におけるユーザの操作に応じてセキュア・ブート機能の一時的な停止を示す第2の信号を生成する。第2の信号はDE信号とすることができる。コンピュータは第1の信号と第2の信号が生成されたときに今回のブートに限り完全性の検証をスキップしてブート・プログラムをロードする。
第1の信号は現実にコンピュータの前に存在するユーザの操作に応じて生成され、第2の信号は今回の起動におけるユーザの操作に応じて生成される。第1の信号と第2の信号が生成されたときに限り完全性の検証をスキップしてブート・プログラムをロードすることができるので、セキュリティ・リスクを軽減しながら簡単な操作でロードすることができる。
また、セット・アップ画面でセキュア・ブート機能をディスエーブルに設定すると、再度イネーブルに設定しない限りディスエーブル状態が持続する。これに対し本発明では、第2の信号は起動ごとのユーザの操作により生成されるため次回以降のブートにおいて継続的に完全性の検証をスキップするようなことはない。完全性の検証をスキップするのはユーザの意思表明を伴う所定の条件が成立したときだけであり、次回のブートにおいては第2の信号が生成されない限りデフォルトの設定に従ってユーザの操作を介在しないでも完全性の検証を行うため、デフォルトでのイネーブル設定を維持することができる。
完全性の検証をスキップしてブート・プログラムをロードするときは、短時間でブートを完了するために電源を再起動しないで行うことが望ましい。コンピュータにパスワードを設定したときは、パスワードの認証が成功したときに限り完全性の検証をスキップしてロードすることができる。この場合、パスワードを管理する当該コンピュータのオーナー以外の者が、セキュア・ブート機能をディスエーブルに設定することができなくなるためそのような不正行為に対する安全を確保することができる。
第1の信号および第2の信号またはいずれかが生成されないときには、デフォルトの設定どおりにブート・プログラムの完全性の検証をしてからロードすることができる。完全性の検証が失敗したときにブート・プログラムが格納された他のブート・デバイスを選択して、そこに格納されたブート・プログラムの完全性を検証してからロードするようにしてもよい。この場合は、コンピュータにセキュア・ブート機能に対応し、かつ、改変されていないブート・プログラムを格納するブート・デバイスが存在する限りブート・デバイスの優先順位に従って自動的に完全性を検証してからブートすることができる。
セキュア・ブート機能を備えるコンピュータにおいては、通常はセキュア・ブート機能に対応するブート・プログラムをロードするため、セキュア・ブート機能に対応しないブート・プログラムは、さまざまなブート・デバイスからロードすることが多い。したがって、セキュア・ブート機能に対応しないブート・プログラムの完全性の検証をスキップしてロードするときは、ブート・デバイスの選択画面を表示するようにすればユーザが容易にブート・デバイスを選択することができる。第2の信号は、キーボードのキーを押下することで生成してもよい。指紋認証装置が第1の指を検証したことに応じて起動信号と第1の信号を生成し、当該指紋認証装置が第2の指を検証したことに応じて起動信号とPP信号とDE信号を生成するように構成することもできる。この場合は、認証する指を代えるだけで簡単にセキュア・ブート機能をデフォルト設定にしたり、当該ブートに限ってスキップしたりすることができる。
本発明により、ブート・プログラムの完全性の検証をするようにデフォルトで設定されたコンピュータにおいて、一時的に完全性の検証をしないでブート・プログラムをロードする方法を提供することができた。さらに本発明により、簡単な操作で完全性の検証をしないでブート・プログラムをロードする方法を提供することができた。さらに本発明により、セキュリティ・リスクを軽減しながら完全性の検証をしないでブート・プログラムをロードする方法を提供することができた。さらに本発明により、完全性の検証をしないで短時間でブート・プログラムをロードする方法を提供することができた。さらに本発明により、そのような方法を実現するコンピュータおよびコンピュータ・プログラムを提供することができた。
ノートPCの主要なハードウェアの構成を示す概略ブロック図である。 ファームウェアROM27のデータ構造を示す図である。 NVRAM43のデータ構造を示す図である。 UEFIが規定するセキュア・ブート機能を制御するハードウェアの構成を示す機能ブロック図である。 セキュア・ブート機能を制御する手順を示すフローチャートである。 セキュア・ブート機能を制御する他のハードウェアの構成を示す機能ブロック図である。
[ハードウェアの全体構成]
図1は、ノートブック型パーソナル・コンピュータ(ノートPC)10の主要なハードウェアの構成を示す機能ブロック図である。多くのハードウェアの構成は周知であるため、本発明に必要な範囲で説明する。ノース・ブリッジ13には、CPU11、メイン・メモリ15、ビデオ・コントローラ17およびサウス・ブリッジ21が接続される。ビデオ・コントローラ17には、LCD19が接続される。サウス・ブリッジ21はさまざまな規格のインターフェース機能を備え、図1には代表的にPCI Expressにイーサネット(登録商標)コントローラ23が接続され、SATAにハードディスク・ドライブ(HDD)29が接続され、SPIにファームウェアROM27が接続され、USBに指紋認証装置31が接続され、LPCにエンベデッド・コントローラ(EC)35、およびNVRAM43が接続されている。
サウス・ブリッジ21は、RTC(Real Time Clock)にレジューム時刻を設定したり、UEFIファームウェアの設定情報を記憶したりするRTCメモリを含む。RTCメモリはノートPC10のすべての電源が停止したときにボタン電池から電力の供給を受ける。イーサネット(登録商標)コントローラ23は、イーサネット(登録商標)規格の有線LANに接続するための拡張カードでノートPC10の筐体に取り付けられたRJ45という規格のコネクタが接続されている。ノートPC10は、所定のパワー・ステート(S3またはS4/S5)のときにイーサネット(登録商標)・コントローラ23を経由してネットワークからマジック・パケットを受け取り、いわゆるウェイク・オン・ラン(WOL:Wake On LAN)で起動することができる。
HDD29は、ノートPC10のデバイス・ベイに取り付けられユーザが交換できるようになっている。HDD29は、ブート・イメージを格納するブート・デバイスである。UEFIファームウェアは、HDD29からUEFI対応のOSをブートするように設定されている。HDD29は、複数のパーティションにそれぞれ異なるブート・イメージを格納するようにしてもよい。このとき一つのパーティションにはUEFI対応OSのブート・イメージを格納し、他のパーティションにはUEFI非対応のOSのブート・イメージを格納するようにしてもよい。そして、UEFI非対応のOSを格納したHDDをデバイス・ベイに装着してブートするようにしてもよい。
いずれのHDDにもOSのブート・イメージをロードするためのブート・ローダが格納されている。UEFI対応のOSをロードするブート・ローダには、OSをノートPC10に装着されたHDD29に格納する際に計算したブート・ローダのハッシュ値(ジェスチャ)を当該作成者の秘密鍵で暗号化して作成した電子署名が付されている。UEFIが規定するセキュア・ブート機能は、OSをロードする前にUEFIファームウェア100が、PKI方式と電子署名を利用してブート・ローダの完全性を検証することで実現する。完全性の検証は、実際にロードされるブート・イメージの全体を対象にして行うこともできる。秘密鍵と対で作成された公開鍵はファームウェアROM27に格納される。
OSをHDD29に最初に格納したときのブート・ローダとそれ以降のブート時におけるブート・ローダの同一性が完全に保持されていることを完全性があるという。ただし、UEFI非対応のOSをロードするブート・ローダにはセキュア・ブート機能で検証できる電子署名は付されていない。ノートPC10では、UEFI対応またはUEFI非対応のOSのブート・イメージを格納するUSBメモリ、セカンダリHDDまたはNVRAMなどの他のブート・デバイスからブートすることもできる。
指紋認証装置31には、ユーザの指紋画像を生成するスワイプ式の指紋センサ33が接続されている。指紋認証装置31は、ノートPC10がパワー・オフ状態に遷移しているときであってもスワイプされた指をあらかじめ登録されたテンプレートと比較して認証することができる。指紋認証装置31は、パワー・コントローラ39に接続されており、指紋認証が成功したときにパワー・コントローラ39に起動信号を出力することができる。指紋認証装置31はさらに認証する指に応じて異なる起動信号を出力することができる。
指紋認証装置31は、ノートPC10の筐体に物理的に一体に取り付けられている。フィジカル・プリゼンスはTCG(Trusted Computing Group)の仕様で定義されており、コンピュータの面前で操作して後に説明するS4/S5ステートから電源を起動したユーザだけが、コンピュータに対して主張することができる。指紋認証装置31を起動デバイスとして使用する場合は起動方法においてTCGの仕様で定義されたフィジカル・プリゼンスの要件を満たす。
EC35は、CPU、ROM、RAMなどで構成されたマイクロ・コンピュータである。EC35は、ノートPC10の内部の動作環境の管理にかかるプログラムをCPU11とは独立して実行することができる。EC35は、キーボード・コントローラを含んでおり、キーボード37およびパワー・コントローラ39が接続される。EC35は、サウス・ブリッジ21からの指示でノートPC10のパワー・ステートを遷移させるためにパワー・コントローラ39を制御する。
パワー・コントローラ39はDC/DCコンバータ41を制御するワイヤード・ロジックのディジタル制御回路(ASIC)である。パワー・コントローラ39には、DC/DCコンバータ41が接続されている。DC/DCコンバータ41は、図示しないAC/DCアダプタまたは電池パックから供給される直流電圧を、ノートPC10を動作させるために必要な複数の電圧に変換し、さらにパワー・ステートに応じて定義された電力供給区分に基づいて各々のデバイスに電力を供給する。パワー・コントローラ39には、ノートPC10を起動する起動ボタン47が接続されている。
起動ボタン47は、ノートPC10の筐体に物理的に一体に結合するように取り付けられており、ノートPC10を物理的に支配しているユーザだけが押下することができる。起動ボタン47を押下して電源を起動するときは起動方法においてTCGの仕様で定義されたフィジカル・プリゼンスの要件を満たす。起動ボタン47は押下されたときにパワー・コントローラ39に起動信号を出力する。パワー・コントローラ39はS3ステート、S4ステート、またはS5ステートのいずれかに遷移しているときに起動ボタン47が押下されると、S0ステートに遷移させために各デバイスに電力を供給するようにDC/DCコンバータ41を制御する。
セキュアNVRAM43は、改竄や盗聴に対する安全性が確保された不揮発性のメモリである。ノートPC10は、ACPI(Advanced Configuration and Power Interface)の省電力機能およびプラグ・アンド・プレイに対応している。ACPIでは、最大の消費電力を示すパワー・オン状態(S0ステート)と最低の消費電力を示すパワー・オフ状態(S5ステート)の間にS1ステートからS4ステートまでの4つのスリーピング・ステートを定義しているが、ノートPC10はS3ステートとS4ステートを定義している。
S3ステートはいわゆるサスペンド状態またはsuspend to RAMといわれ、システム・コンテキストはメイン・メモリ15に記憶されてデバイスから消失する。S3ステートでは、メイン・メモリ15の記憶を維持するのに必要なメイン・メモリ15およびノース・ブリッジ13と、WOLを実行するのに必要なサウス・ブリッジ21、EC35、およびイーサネット(登録商標)コントローラ23に電力を供給する。S3ステートではさらにパワー・コントローラ39などの電源の起動に必要なデバイスにも電力を供給する。S3ステートではその他のデバイスに対する電源を停止する。なお、ここに示したS3ステートで電力を供給するデバイスの範囲は一例である。
S4ステートはいわゆるsuspend to diskまたはハイバネーション状態といわれ、システム・コンテキストおよびメイン・メモリ15のデータはHDD29に記憶される。S4ステートではパワー・コントローラ39などの電源の起動に最小限必要なデバイス以外のデバイスに対する電源をオフにする。S5ステートはいわゆるソフト・オフといわれ、OSがコンテキストをHDD29に格納しない点を除いては電力を供給するデバイスの範囲はS4ステートと同じである。なお、ノートPC10の電力源が電池パックの場合とAC/DCアダプタの場合でS4ステートとS5ステートで電力を供給するデバイスの範囲を変えてもよい。S0ステートではディスエーブルに設定されたデバイスを除いたすべてのデバイスに電力が供給される。
[ファームウェアROMのデータ構造]
図2は、ファームウェアROM27のデータ構造を示す図である。図3はNVRAM43のデータ構造を示す図である。ファームウェアROM27は、不揮発性で記憶内容の電気的な書き替えが可能なメモリで複数のコード群で構成されたUEFIファームウェア100を格納する。NVRAM43は、ユーザにより設定されたスーパーバイザ・パスワード121、パワー・オン・パスワード123、およびUEFIフラグ125を格納する。
UEFIファームウェア100は、スーパーバイザ・パスワード121、パワー・オン・パスワード123、およびHDDパスワードを設定することができる。スーパーバイザ・パスワード121はUEFIファームウェア100の設定を変更するためのセット・アップ画面を表示する際に要求され、パワー・オン・パスワード123はノートPC10をブートさせる際に要求される。HDDパスワードはHDD29にアクセスする際に要求される。HDDパスワードはHDD29のディスクのシステム領域に格納される。
UEFIファームウェア100は、ノートPC10のシステム・ファームウェアを構成する。UEFIファームウェア100は、書き換えに伴うリスクを軽減するためにブート・ブロック方式を採用している。ファームウェアROM27は全体がブート・ブロックに設定されており、ここに格納されたコードはTPM(Trusted Platform Module)の仕様書に規定するCRTM(Core Root Of Trust Measurement)として扱われ特別な権限がないと書き換えができないようになっている。CRTMは、プラットフォームの初期化コードの中で完全性が保証されている部分として構成され、プラットフォームのリセット時には必ず最初に実行されなければならない。CRTMは、ノートPC10がS4ステートまたはS5ステート(以後、S4/S5ステートという。)からS0ステートに遷移するときに最初に実行される。
基本デバイス初期化コード101は、ノートPC10が起動してS3ステート、S4/S5ステートからS0ステートに遷移する際に、メイン・メモリ15にファームウェア100をロードして実行を開始するために必要なCPU11、メイン・メモリ15およびその他の基本的なデバイスの検出、検査および初期化を必要な範囲で行う。デバイス初期化コード103は、CPU11にリセット信号が供給されてから、OSがロードされるまでの期間にサウス・ブリッジ21のコントローラや周辺デバイスなどのほとんどのデバイスを初期化して使用できる状態にする。ブート・マネージャー105は、OSをロードするのに必要なデバイスの初期化や、ブートの順番の管理、セキュア・ブートの処理を行う。
セット・アップ・コード112は、ブート・マネージャー105が実行されている間にキーボード37の所定のファンクション・キーが押下されたたときに、LCD19にセット・アップ画面を表示する。ユーザはセット・アップ画面を通じて、ブート・デバイスの優先順位の決定、起動方法の設定、使用デバイスの設定、およびパワー・マネジメントの設定などをすることができる。
セット・アップ・コード112は設定された情報をサウス・ブリッジ21にあるボタン電池で電源がサポートされた揮発性のRTCメモリに記憶する。ユーザはセット・アップ画面を通じてUEFIフラグ125を設定してセキュア・ブート機能をイネーブルに設定したりパスワードの設定をしたりすることができる。UEFIフラグ125が設定されると、ブート時に本実施の形態にかかる特別な操作をしない限りセキュア・ブート機能が実現される。
セット・アップ画面を通じてユーザが設定するパスワードは、スーパーバイザ・パスワード121、パワー・オン・パスワード123、およびHDDパスワードを含む。スーパーバイザ・パスワード121を設定したときは、スーパーバイザ・パスワード121を入力しない限りセット・アップ画面を表示することができないため、UEFIフラグ125を解除することもできない。
実行パス制御コード107は、UEFIフラグ125の設定を維持してセキュア・ブート機能をデフォルトでイネーブルにしながら、ユーザの明示的な意図があるときだけ一時的にスキップするためにファームウェア100の実行パスを制御する。実行パス制御コード105は、NVRAM43に設定されたUEFIフラグ125とパワー・コントローラ39のレジスタ211、213(図4参照)を参照して、完全性検証コード111を実行してからハンドオフするか完全性検証コード111を実行しないでハンドオフするかを決定する。
実行パス制御コード107は、NVRAM43にUEFIフラグ125が設定されていないとき、またはUEFIフラグ125が設定されかつパワー・コントローラ39のレジスタ211、213にPPビット、DEビットが設定されているときは、完全性検証コード111に実行パスを渡さないでブート・デバイスに格納されたブート・ローダをメイン・メモリ15に読み出して制御を移す。実行パス制御コード107は、UEFIフラグ125が設定されかつPPビットまたはDEビットが設定されていないときに、完全性検証コード111に実行パスを渡す。
パスワード処理コード109はスーパーバイザ・パスワード121が設定されているときは、ユーザがセット・アップ画面を呼び出したときに、セット・アップ画面を表示する前にスーパーバイザ・パスワード121の入力を要求するプロンプトを表示する。パスワード処理コード109は、スーパーバイザ・パスワード121が設定されているときにセキュア・ブート機能を一時的にスキップする際に、スーパーバイザ・パスワード121の入力を要求するプロンプトを表示する。パスワード処理コード109は、パワー・オン・パスワード123またはHDDパスワードが設定されたときに、ブート・マネージャー105の実行の途中でLCD19にプロンプトを表示してユーザにパスワードの入力を要求する。パスワード処理コード109はパスワードの認証をして成功したときは後続のルーチンを許可し失敗したときはその時点でブートを停止する。
完全性検証コード111は、UEFIコード100からOSに制御が移る直前に、ブート・ローダをメイン・メモリ15に読み出して完全性の検証をする。UEFI対象のブート・ローダには、それらを作成した作成者が計算したハッシュ値を秘密鍵で暗号化した電子署名が付されている。署名データ・ベース113には、ブート・ローダのIDと電子署名に使用した秘密鍵とペアになる公開鍵を格納する。完全性検証コード111は、ブート・ローダのコードから計算したハッシュ値と、署名データ・ベース113から取得した公開鍵で復号して得た電子署名のハッシュ値を比較して、一致していれば完全性が維持されていると判断してブート・ローダの実行を許可する。UEFI対応のOSのブート・ローダは、HDD29にOSが格納された時点から改竄されていなければ検証が成功する。
[セキュア・ブート機能を制御するハードウェアの構成]
図4は、セキュア・ブート機能を制御するハードウェアの構成を示す機能ブロック図である。サウス・ブリッジ21は、現在のパワー・ステートを設定する不揮発性メモリで構成されたレジスタ215を備えている。パワー・コントローラ39は、論理回路209、フィジカル・プリゼンスを肯定したときにPPビットを設定するレジスタ211、およびセキュア・ブート機能を今回のブートで停止するためのユーザの意思を表明するDEビットを設定するレジスタ213を備えている。
UEFIフラグ125を設定してデフォルトでセキュア・ブート機能をイネーブルにしながら、当該ブートのときだけ一時的にセキュア・ブート機能をスキップするために、今回のブートで設定されたPPビットおよびDEビットは次回のブートまでの間に確実にクリアする必要がある。パワー・コントローラ39は、ノートPC10の電源を起動するために最低限必要な回路であるため、S4/S5ステートのときにも電力が供給されるが、レジスタ211、213に別系統の電源から電力を供給して、S4/S5ステートのときにはそれらの電源を停止させてクリアすることができる。あるいはレジスタ211、213の電力をS4/S5ステートのときに維持しておき、実行パス制御コード107がOSにハンドオフする前にクリアするように構成してもよい。レジスタ211、213は、EC35やNVRAM43などの他のデバイスに設けてもよい。
起動ボタン47は起動信号ライン203でパワー・コントローラ39に接続されている。起動ボタン47はさらにスイッチ207の一方の端子に接続され、スイッチ207の他方の端子はPPビット設定ライン205を通じてパワー・コントローラ39に接続されている。スイッチ207の制御端子はサウス・ブリッジ215に接続されている。OSはS0ステートからS3ステートまたはS4/S5ステートに遷移する際にレジスタ215にS3ビットまたはS4/S5ビットを設定する。レジスタ215にS4/S5ビットが設定されているときは、現在のパワー・ステートがS4/S5ステートであることを示している。
サウス・ブリッジ21は、レジスタ215にS4/S5ビットが設定されているときはスイッチ207をオンに制御し、S3ビットが設定されているときまたはクリアされているときはオフに制御する。ユーザが起動ボタン47を押下すると、起動信号が起動信号ライン203を通じてパワー・コントローラ39に出力される。さらに、レジスタ215にS4/S5ビットが設定されているときは、起動信号がPPビット設定ライン205を通じてパワー・コントローラ39に出力される。
論理回路209は、起動信号ライン203を通じて起動信号を受け取るとDC/DCコンバータ41を制御して、すべてのデバイスに電力を供給し電源をS0ステートに遷移させる。論理回路209は、PPビット設定ライン205を通じて起動信号を受け取ったときは、レジスタ211にPPビットを設定する。EC35は、キーボード37の特別に割り当てられた単一のキーが押下されたときまたは特別に割り当てられた複数のキーが同時に押下されたときに、レジスタ213にDEビットを設定する。
[セキュア・ブート機能を制御する方法]
つぎにノートPC10においてセキュア・ブート機能を一時的に解除する方法について図5のフローチャートを参照して説明する。図5のブロック301でノートPC10はS4/S5ステートに遷移している。OSは前回のブートでパワー・オン状態に遷移したときにS4/S5ステートに遷移する前にレジスタ215にS4/S5フラグを設定している。S4/S5ステートでもパワー・コントローラ39および起動ボタン47などの電源の起動に必要な最低限の回路には電力が供給されている。
また、レジスタ211、213はノートPC10がS4/S5ステートに遷移しているためクリアされている。NVRAM43には、スーパーバイザ・パスワード121とUEFIフラグ125が設定されている。ユーザはセット・アップ画面を通じてあらかじめ複数のブート・デバイスの中でHDD29の優先順位が最も高くなるように設定している。HDD29はUEFI対応のOSを一つのパーティションに格納し、UEFI非対応のOSを別のパーティションに格納している。
ブロック303では起動ボタン47の押下またはWOL(Wake On Lan)によりノートPC10の電源が起動される。起動ボタン47が押下されると、起動信号ライン203を通じてパワー・コントローラ39に起動信号が送られる。論理回路209は、起動信号を検出するとDC/DCコンバータ41を制御して、S0ステートで動作するすべてのデバイスに電力を供給する。
電力が供給されたサウス・ブリッジ21は、レジスタ215を参照してS4/S5フラグが設定されていることを確認するとスイッチ207をオンにする。ここまでの時間は非常に短いためスイッチ207がオンになるとその時点でもパワー・ボタン47は押下されているため、PPビット設定ライン205を通じてパワー・コントローラ39に起動信号が送られる。起動信号を受け取った論理回路208は、レジスタ211にPPビットを設定する。
ノートPC10は、S4ステートの時にWOLでも電源を起動することができる。WOLで起動するときは、イーサネット(登録商標)・コントローラ23を通じてマジック・パケットを受け取ったサウス・ブリッジ21がEC35に電源を起動するように指示する。この場合パワー・コントローラ39は、PPビット設定ライン205を通じて起動信号を受け取らないためレジスタ211にPPビットを設定しない。また、ブロック301における現在のパワー・ステートがS3ステートのときは、スイッチ207がオフになっているため、起動ボタン47が押下されてもパワー・コントローラ39はPPビット設定ライン205を通じて起動信号を受け取らないためレジスタ211にPPビットを設定しない。
電源が投入されたCPU11はパワー・オン・リセットして基本デバイス初期化コード101をキャッシュに読み出し実行する。基本デバイス初期化コード101は、メイン・メモリ15およびノース・ブリッジ13などのファームウェア100を実行するのに必要な基本的なデバイスの検出、検査および初期化をする。メイン・メモリ15が使用できるようになると、CPU11は残りのUEFIコード100をメイン・メモリ15にロードし、デバイス初期化コード103により周辺デバイスなどのほとんどのデバイスを初期化する。
つづいてCPU11はブート・マネージャー105を実行する。ブロック304でブート・マネージャー105を実行する間にユーザは、今回のブートで一時的にセキュア・ブート機能をスキップする意思表示をするためにキーボード37からの入力が可能になるタイミングを見計らって特定のファンクション・キーを押下する。論理回路209は、EC35から特定のファンクション・キーに対応する信号を受け取るとレジスタ213にDEビットを設定する。ユーザが起動後の所定時間の間に所定のファンクション・キーを押下してセット・アップ・コード112を呼び出さない限りUEFIファームウェア100のブート・ルーチンは進行し続ける。
ブロック305でブート・マネージャー105内の実行パス制御コード107に制御が移行する。実行パス制御コード107は、レジスタ211を参照してPPビットが設定されているか否かを確認する。PPビットが設定されているときはブロック307に移行し、設定されていないときはブロック331に移行して完全性検証コード111に制御を移す。ブロック331に移行するのは、S4ステートまたはS5ステートからWOLで起動した場合でノートPC10がフィジカル・プリゼンスを肯定しない場合に相当する。ブロック307では、実行パス制御コード107がレジスタ213を参照してDEビットが設定されているか否かを確認する。
DEビットが設定されているときはブロック309に移行し、設定されてないときはブロック331に移行する。ブロック309で実行パス制御コード107は、スーパーバイザ・パスワード121が設定されているか否かを判断する。スーパーバイザ・パスワード121が設定されているときはブロック311に移行してパスワード処理コード109に制御を移し、設定されていないときはブロック315に移行してセット・アップ・コード112に制御を移す。ブロック311でパスワード処理コード109は、LCD19に自動的にスーパーバイザ・パスワード121の入力を要求するプロンプトを表示する。
ブロック313でパスワード処理コード109は、ユーザが入力したスーパーバイザ・パスワード121を認証する。スーパーバイザ・パスワード121の認証が成功した場合は、ブロック315に移行してセット・アップ・コード112に制御を移し、失敗した場合はブロック331に移行して完全性検証コード111に制御を移す。ここで、UEFI対応のOSに対しては完全性の認証をしてからブートするのが望ましい。また、ブロック304でユーザがセキュア・ブート機能を一時的にスキップする意思を表明するのは、HDD29の別のパーティションに格納されたUEFI非対応のOSや、USBメモリ、補助HDD、またはNVRAMに格納されたUEFI非対応のOSまたは実行可能プログラムをブートしたい場合である。
ブロック315でセット・アップ・コード112は、自動的にブート・デバイス選択画面を表示する。ユーザは、ブート・デバイス選択画面からブート・デバイスを選択してブート・デバイスの選択を終了するとUEFIファームウェア100はハンドオフしてブロック317に移行する。ブロック317でUEIFファームウェア100は、ブート・ローダの完全性の検証をスキップしてOSをロードする。UEFIファームウェア100は、BIOSをエミュレートしてUEFI非対応のOSからのサービス要求を処理する。
ブロック331、333では、完全性検証コード111はブート・デバイスとして設定されているHDD29のUEFI対応OSのブート・ローダをメイン・メモリ15に読み出す。OSがUEFIに対応していれば、ブート・ローダに電子署名が付されていることになる。完全性検証コード111は署名データ・ベース113から読み出した当該ブート・ローダに対応する公開鍵を取得して、ブート・ローダに付されている電子署名を復号する。さらに、完全性検証コード111は、ブート・ローダのコードからハッシュ値を計算して復号した電子署名と比較する。
電子署名を復号したハッシュ値と読み出したブート・ローダから計算したハッシュ値が一致すれば、ブート・ローダはHDD29に格納されてから改変されていないことになり完全性の検証が成功する。検証の対象が改変されたブート・ローダまたはUEFI非対応のOSをブートするブート・ローダの場合は認証が失敗する。ブート・デバイスが比較的小さな実行可能プログラムのブート・イメージを格納する場合は、ブート・イメージ全体を対象にした電子認証を付して同様にPKI方式で完全性の検証をすることができる。
検証が成功した場合はブロック317に移行し失敗した場合はブロック335に移行して実行パス制御コード107に制御を移す。ブロック335では、実行パス制御コード107が次のブート・デバイスが存在するか否かを判断する。ブート・デバイスが存在する場合はブロック337に移行して、実行パス制御コード107はHDD29の次の順位に設定されているブート・デバイスに起動フラグを設定してブロック331に戻る。
ブート・デバイスが存在しない場合は、ブロック339に移行して実行パス制御コード107は次のブート・ルーチンに制御権を渡さないでブートを停止させる。次の起動でブートを成功させるために、ユーザはUEFI対応OSを格納したブート・デバイスを装着してブロック331のパスを経由するようにするか、PPビットおよびDEビットを設定してブロック315のパスを経由するようにすることができる。
ブロック317でブートが成功してつぎにS4/S5ステートに遷移するときは、NVRAM43のUEFIフラグ125は設定された状態を維持するが、レジスタ211、213はクリアされる。したがって、次回S4/S5ステートから起動ボタン47を押下して起動するときには、ブロック304でセキュア・ブート機能を一時的にスキップする操作をしない限り、自動的にブロック331で完全性の検証をすることになるため、セキュア・ブート機能のデフォルトでのイネーブル設定を維持しながら今回のブートに限って一時的にセキュア・ブート機能をスキップすることができる。
また、セキュア・ブート機能をスキップするときは、マルウェアに汚染されたプログラムが実行される可能性が高くなる。本実施の形態では、PPビットが設定されてユーザが現実にノートPC10を操作しているときに限りスキップすることになるので、セキュリティ・リスクを軽減することができる。また、スーパーバイザ・パスワード121を設定しておけば、第3者がノートPC10のセキュア・ブート機能をスキップすることができなくなるので、さらにセキュリティ・リスクを軽減することができる。
セキュア・ブート機能の一時的な解除はUEFIフラグ125を今回のブートに限り解除することでも実現できる。具体的には起動ボタン47が押下され、キーボート37が操作されてPPビットとDEビットが設定されたときは、実行パス制御コード107がUEFIフラグ125を一時的にクリアしてセキュア・ブート機能をディスエーブルに設定して完全性の検証をスキップする。実行パス制御コード107は、OSをロードする前にUEFIフラグ125を再度設定する。ただし、この場合はUEFIフラグ125がクリアされてから再度設定されるまでの間に電源が停止した場合にUEFIフラグ125がクリアされた状態にならないような対策を講じておく必要がある。
[セキュア・ブート機能を制御する他のハードウェア構成]
図1〜図5では、起動ボタン47とキーボード37を操作してセキュア・ブート機能を一時的に解除する方法を説明した。セキュア・ブート機能の一時的な解除は、指紋認証装置31を利用して行うこともできる。図6は、指紋認証装置31の指紋認証によりセキュア・ブート機能を一時的に解除するハードウェアの構成を示す機能ブロック図である。図6において図5と同一の要素については同じ参照番号を付与して説明を省略する。
指紋認証装置31は、S4/S5ステートでも電源が供給される。指紋認証装置31は認証する指の種類でライン261、263から2つの起動信号を出力する。たとえば、人指し指を認証したときはライン261から起動信号を出力し、中指を認証したときはライン263から起動信号を出力する。ライン261は起動信号ライン255とスイッチ207の一旦とダイオード259のカソードに接続されている。ライン263は、DEビット設定ライン253およびダイオード259のアノードに接続されている。
DEビット設定ライン253はパワー・コントローラ39に接続されている。ダイオード259のカソードは起動信号ライン255とスイッチ207に接続されている。論理回路209は、DEビット信号ライン253を通じて起動信号を受け取ったときにレジスタ211にDEビットを設定する。S4/S5ステートに遷移しているときにユーザがスワイプした人指し指の認証が成功すると、起動振動ライン255およびPPビット設定ライン257を通じてパワー・コントローラ39が起動信号を受け取る。このときレジスタ213にDEビットは設定されないため、UEFIファームウェア100の処理は図5のブロック331のパスを経由してセキュア・ブート機能は有効になる。
S4/S5ステートに遷移しているときにユーザがスワイプした中指の認証が成功すると、DEビット信号ライン253、起動振動ライン255およびPPビット設定ライン257を通じてパワー・コントローラ39が起動信号を受け取る。このとき論理回路209がレジスタ211にPPビットを設定しレジスタ213にDEビットを設定するため、UEFIファームウェア100の処理は図5のブロック315のパスを経由してセキュア・ブート機能は無効になる。
これまで本発明について図面に示した特定の実施の形態をもって説明してきたが、本発明は図面に示した実施の形態に限定されるものではなく、本発明の効果を奏する限り、これまで知られたいかなる構成であっても採用することができることはいうまでもないことである。
10 ノートPC
47 起動ボタン
209、211、215 レジスタ

Claims (20)

  1. ブート・プログラムの完全性の検証をするセキュア・ブート機能がデフォルトでイネーブルに設定されたコンピュータにおいて、前記完全性の検証をしないで前記ブート・プログラムをロードする方法であって、
    起動信号に応じて電源を起動するステップと、
    パワー・オフ状態の前記コンピュータに物理的にアクセスしたユーザの操作に応じて前記起動信号が生成されたときにフィジカル・プリゼンスを示す第1の信号を生成するステップと、
    起動ごとのユーザの操作に応じて第2の信号を生成するステップと、
    前記第1の信号と前記第2の信号が生成されたときに今回のブートに限り前記完全性の検証をスキップしてブート・プログラムをロードするステップと
    を有する方法。
  2. 前記ロードするステップを、電源を再起動しないで実行する請求項1に記載の方法。
  3. 前記コンピュータに設定されたパスワードの入力を要求するステップを有し、
    前記ロードするステップを前記パスワードの認証が成功したときに限り実行する請求項1または請求項2に記載の方法。
  4. 前記第1の信号または前記第2の信号のいずれかまたは双方が生成されないときに前記ブート・プログラムの完全性の検証をしてからロードするステップを有する請求項1から請求項3のいずれかに記載の方法。
  5. 前記完全性の検証が失敗したときにブート・プログラムが格納された他のブート・デバイスを選択して、該ブート・デバイスに格納されたブート・プログラムの完全性を検証するステップを有する請求項4に記載の方法。
  6. 前記完全性の検証をスキップしてブート・プログラムをロードするステップが、ブート・デバイスの選択画面を表示するステップを有する請求項1から請求項5のいずれかに記載の方法。
  7. 前記第2の信号をユーザの操作に応じて生成するステップが、キーボードのキーを押下するステップを含む請求項1から請求項6のいずれかに記載の方法。
  8. 指紋認証装置が第1の指を検証したことに応じて前記起動信号と前記第1の信号を生成し、前記指紋認証装置が第2の指を検証したことに応じて前記起動信号と前記第1の信号と前記第2の信号を生成する請求項1から請求項7のいずれかに記載の方法。
  9. オペレーティング・システムの完全性を検証するセキュア・ブート機能がデフォルトでイネーブルに設定されたコンピュータにおいて、前記完全性の検証をしないで前記オペレーティング・システムをブートする方法であって、
    起動信号に応じて電源を起動するステップと、
    パワー・オフ状態の前記コンピュータに物理的にアクセスしたユーザの操作に応じて前記起動信号が生成されたときにフィジカル・プリゼンスを示す第1の信号を生成するステップと、
    オペレーティング・システムをブートする前のユーザの操作に応じて第2の信号を生成するステップと、
    前記第1の信号と前記第2の信号が生成されたときに前記完全性の検証をスキップしかつ電源を再起動しないで前記オペレーティング・システムをブートするステップと
    を有する方法。
  10. 次回のブートまでの間に前記第1の信号と前記第2の信号を消滅させる請求項9に記載の方法。
  11. 記憶装置に格納されたブート・プログラムをロードすることが可能なコンピュータであって、
    プロセッサと、
    ファームウェアを格納する不揮発性メモリと、
    ブート・プログラムの完全性の検証をするセキュア・ブート機能をデフォルトでイネーブルに設定するためのセキュア・ブート・フラグと、
    パワー・オフ状態の前記コンピュータに物理的にアクセスしたユーザにより起動信号が生成されたときに設定されるフィジカル・プリゼンスを示す第1のフラグと、
    今回の起動におけるユーザの操作に応じて設定される第2のフラグとを有し、
    前記ファームウェアを実行する前記プロセッサは、前記セキュア・ブート・フラグが設定されたときに前記起動信号に応じて前記完全性の検証をしてから前記ブート・プログラムをロードし、前記第1のフラグおよび前記第2のフラグが設定されたときに前記セキュア・ブート・フラグの設定にかかわらず今回のブートに限り前記起動信号に応じて前記完全性の検証をスキップして前記ブート・プログラムをロードするコンピュータ。
  12. 前記第2のフラグは前記起動信号が生成されてから前記ブート・プログラムをロードするまでの間に設定される請求項11に記載のコンピュータ。
  13. 指紋認証装置が認証に成功したときに前記第1のフラグと前記第2のフラグを設定する請求項11または請求項12に記載のコンピュータ。
  14. 前記ファームウェアを実行する前記プロセッサは、前記コンピュータにスーパ−バイザ・パスワードが設定されているときに前記スーパーバイザ・パスワードの認証が成功したときに限り前記完全性の検証をスキップする請求項11から請求項13のいずれかに記載のコンピュータ。
  15. 記憶装置に格納されたオペレーティング・システムをブートすることが可能なコンピュータであって、
    プロセッサと、
    ファームウェアを格納する不揮発性メモリと、
    オペレーティング・システムの完全性の検証をするセキュア・ブート機能をデフォルトでイネーブルに設定するためのセキュア・ブート・フラグと、
    パワー・オフ状態の前記コンピュータに物理的にアクセスしたユーザにより起動信号が生成されたときに設定されるフィジカル・プリゼンスを示す第1のフラグと、
    前記オペレーティング・システムをブートする前のユーザの操作により設定される第2のフラグとを有し、
    前記ファームウェアを実行する前記プロセッサは、前記セキュア・ブート・フラグが設定されたときに前記起動信号に応じて前記完全性の検証をしてから前記オペレーティング・システムをロードし、前記第1のフラグおよび前記第2のフラグが設定されたときに前記セキュア・ブート・フラグの設定にかかわらず前記起動信号に応じて前記完全性の検証をスキップしかつ再起動しないで前記オペレーティング・システムをブートするコンピュータ。
  16. 前記第1のフラグおよび前記第2のフラグまたはいずれか一方が設定されないときに前記ファームウェアを実行する前記プロセッサは前記完全性の検証をしてから前記オペレーティング・システムをブートする請求項15に記載のコンピュータ。
  17. パワー・オフ状態のときに生成された起動信号に応じて電源を起動したコンピュータに、
    ブート・プログラムの完全性の検証をするセキュア・ブート機能をデフォルトでイネーブルに設定する機能と、
    前記起動信号が前記コンピュータに物理的にアクセスしたユーザの操作により生成されたときにフィジカル・プリゼンスを示す第1の信号を確認する機能と、
    今回の起動におけるユーザの操作に応じて生成された第2の信号を確認する機能と、
    前記第1の信号と前記第2の信号が生成されたときに今回のブートに限りブート・プログラムの前記完全性の検証をスキップしてロードする機能と
    を実現させるコンピュータ・プログラム。
  18. 前記ロードする機能を、デフォルトで設定した前記セキュア・ブート機能をディスエーブルに設定しないで前記コンピュータに実現させる請求項17に記載のコンピュータ・プログラム。
  19. パワー・オフ状態のときに生成された起動信号に応じて電源を起動したコンピュータに、
    ブート・プログラムの完全性の検証をするセキュア・ブート機能を有効に設定する機能と、
    前記起動信号が前記コンピュータに物理的にアクセスしたユーザの操作により生成されたときにフィジカル・プリゼンスを示す第1の信号を確認する機能と、
    オペレーティング・システムをブートする前のユーザの操作により生成された第2の信号を確認する機能と、
    前記第1の信号と前記第2の信号が生成されたときに前記セキュア・ブート機能が有効に設定されているにもかかわらずオペレーティング・システムの前記完全性の検証をスキップしかつ電源を再起動しないでブートする機能と
    を実現させるコンピュータ・プログラム。
  20. 前記ブートする機能が、パスワード認証を要求する機能を含む請求項19に記載のコンピュータ・プログラム。
JP2012009980A 2012-01-20 2012-01-20 コンピュータをブートする方法およびコンピュータ Active JP5519712B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2012009980A JP5519712B2 (ja) 2012-01-20 2012-01-20 コンピュータをブートする方法およびコンピュータ
US13/736,382 US9292302B2 (en) 2012-01-20 2013-01-08 Allowing bypassing of boot validation in a computer system having secure boot enabled by default only under certain circumstances

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2012009980A JP5519712B2 (ja) 2012-01-20 2012-01-20 コンピュータをブートする方法およびコンピュータ

Publications (2)

Publication Number Publication Date
JP2013149135A true JP2013149135A (ja) 2013-08-01
JP5519712B2 JP5519712B2 (ja) 2014-06-11

Family

ID=48798217

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012009980A Active JP5519712B2 (ja) 2012-01-20 2012-01-20 コンピュータをブートする方法およびコンピュータ

Country Status (2)

Country Link
US (1) US9292302B2 (ja)
JP (1) JP5519712B2 (ja)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2020042632A (ja) * 2018-09-12 2020-03-19 キヤノン株式会社 情報処理装置、情報処理装置の起動方法、及びプログラム
EP3709202A1 (en) 2019-03-11 2020-09-16 Canon Kabushiki Kaisha Electronic apparatus enabling omission of software tampering detection processing at activation
US11006013B2 (en) 2018-01-24 2021-05-11 Canon Kabushiki Kaisha Image processing apparatus, having second processor to verify boot program has been altered, method of controlling the same, and storage medium
JP7456271B2 (ja) 2020-05-07 2024-03-27 株式会社リコー 情報処理装置、情報処理方法及びプログラム

Families Citing this family (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
ES2673615T3 (es) 2007-12-21 2018-06-25 Holtec International, Inc. Método para preparar un recipiente cargado de elementos radiactivos húmedos para el almacenamiento en seco
US8842518B2 (en) 2010-09-17 2014-09-23 Oracle International Corporation System and method for supporting management network interface card port failover in a middleware machine environment
WO2012148422A1 (en) * 2011-04-29 2012-11-01 Hewlett-Packard Development Company, L.P. Embedded controller to verify crtm
US8713649B2 (en) 2011-06-03 2014-04-29 Oracle International Corporation System and method for providing restrictions on the location of peer subnet manager (SM) instances in an infiniband (IB) network
US9270650B2 (en) 2011-06-03 2016-02-23 Oracle International Corporation System and method for providing secure subnet management agent (SMA) in an infiniband (IB) network
US9231888B2 (en) 2012-05-11 2016-01-05 Oracle International Corporation System and method for routing traffic between distinct InfiniBand subnets based on source routing
US9665719B2 (en) * 2012-06-04 2017-05-30 Oracle International Corporation System and method for supporting host-based firmware upgrade of input/output (I/O) devices in a middleware machine environment
TW201506788A (zh) * 2013-05-01 2015-02-16 Insyde Software Corp 在配有適用統一可延伸韌體介面(uefi)之韌體之計算裝置中的安全啓動覆蓋技術
US9058504B1 (en) * 2013-05-21 2015-06-16 Malwarebytes Corporation Anti-malware digital-signature verification
CN105556536A (zh) * 2013-09-30 2016-05-04 惠普发展公司,有限责任合伙企业 一次性通电密码
WO2017131712A1 (en) * 2016-01-28 2017-08-03 Hewlett-Packard Development Company, L.P. Thresholds on scripts executable by unified extensible firmware interface systems
CN107346162B (zh) * 2016-05-05 2021-03-19 研祥智能科技股份有限公司 Uefi下的电源管理方法及装置
US10069633B2 (en) 2016-09-30 2018-09-04 Data I/O Corporation Unified programming environment for programmable devices
US10438664B2 (en) * 2016-12-15 2019-10-08 Western Digital Technologies, Inc. Non-volatile storage device with physical authentication
WO2018190846A1 (en) 2017-04-13 2018-10-18 Hewlett-Packard Development Company, L.P. Boot data validity
US10831897B2 (en) * 2017-07-14 2020-11-10 Dell Products, L.P. Selective enforcement of secure boot database entries in an information handling system
US11150911B2 (en) 2018-06-15 2021-10-19 Dell Products, L.P. System and method for managing UEFI boot device path based on custom selection
US10853498B2 (en) * 2018-09-19 2020-12-01 Dell Products L.P. Secure boot orchestration device in a virtual desktop infrastructure
US10984108B2 (en) * 2018-10-05 2021-04-20 International Business Machines Corporation Trusted computing attestation of system validation state
WO2020246956A1 (en) * 2019-06-03 2020-12-10 Hewlett-Packard Development Company, L.P. Key authentication
CN113728320A (zh) * 2019-07-29 2021-11-30 慧与发展有限责任合伙企业 用于产品设备的接口控制器
US11657125B2 (en) * 2019-09-20 2023-05-23 Canon Kabushiki Kaisha Information processing apparatus and reset control method
CN112769800B (zh) * 2020-12-31 2022-10-04 武汉船舶通信研究所(中国船舶重工集团公司第七二二研究所) 交换机的完整性验证方法、装置和计算机存储介质
CN113626822B (zh) * 2021-06-28 2023-05-26 苏州浪潮智能科技有限公司 集成LinuxBoot的UEFI固件启动方法及装置
US20240028736A1 (en) * 2022-07-22 2024-01-25 Dell Products L.P. Validation and recovery of operating system boot files during os installation and runtime for uefi secure boot systems

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003150379A (ja) * 2001-11-07 2003-05-23 Inventec Corp 複数のpdaオペレーティングシステムをメニューを通して起動させる方法
JP2003280915A (ja) * 2002-03-22 2003-10-03 Toshiba Corp 情報機器、記憶媒体、及びシステム起動方法
JP2008537224A (ja) * 2005-04-15 2008-09-11 マイクロソフト コーポレーション 安全な起動方法およびシステム
WO2009013831A1 (ja) * 2007-07-26 2009-01-29 Panasonic Corporation 情報処理端末及び改ざん検証方法
JP2010146048A (ja) * 2008-12-16 2010-07-01 Lenovo Singapore Pte Ltd 生体認証装置を備えるコンピュータ

Family Cites Families (34)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0244957A (ja) * 1988-08-05 1990-02-14 Ricoh Co Ltd ファクシミリ装置
US7415605B2 (en) * 2002-05-21 2008-08-19 Bio-Key International, Inc. Biometric identification network security
US7313684B2 (en) * 2002-08-14 2007-12-25 T1 Technologies Limited Method and apparatus for booting a computer system
KR101115486B1 (ko) * 2003-08-08 2012-02-27 엘지전자 주식회사 컴퓨터 시스템의 부팅 제어 장치 및 방법
US20050108557A1 (en) * 2003-10-11 2005-05-19 Kayo David G. Systems and methods for detecting and preventing unauthorized access to networked devices
US7571484B2 (en) * 2003-12-04 2009-08-04 Microsoft Corporation System and method for image authentication of a resource-sparing operating system
US20050154886A1 (en) * 2004-01-12 2005-07-14 International Business Machines Corporation Declarative trust model between reverse proxy server and websphere application server
US20050273588A1 (en) * 2004-06-08 2005-12-08 Ong Soo K Bootstrap method and apparatus with plural interchangeable boot code images
US7318151B1 (en) * 2004-11-04 2008-01-08 Network Appliance, Inc. Method and system for firmware management
US7725703B2 (en) * 2005-01-07 2010-05-25 Microsoft Corporation Systems and methods for securely booting a computer with a trusted processing module
US8028172B2 (en) * 2005-01-14 2011-09-27 Microsoft Corporation Systems and methods for updating a secure boot process on a computer with a hardware security module
US7565553B2 (en) * 2005-01-14 2009-07-21 Microsoft Corporation Systems and methods for controlling access to data on a computer with a secure boot process
US7506380B2 (en) * 2005-01-14 2009-03-17 Microsoft Corporation Systems and methods for boot recovery in a secure boot process on a computer with a hardware security module
WO2006126170A2 (en) * 2005-05-25 2006-11-30 Nxp B.V. A method of powering up a terminal, memory and terminal thereof
KR100772859B1 (ko) * 2005-08-18 2007-11-02 삼성전자주식회사 다중 사용자 컴퓨터 시스템 및 그의 원격 제어 방법
WO2007041501A2 (en) * 2005-09-30 2007-04-12 Phoenix Technologies Ltd. Secure execution environment by preventing execution of unauthorized boot loaders
US8688965B2 (en) * 2006-09-29 2014-04-01 Intel Corporation System and method for increasing platform network boot efficiency
US7757649B2 (en) * 2007-06-04 2010-07-20 Denso Corporation Controller, cooling system abnormality diagnosis device and block heater determination device of internal combustion engine
JP5069958B2 (ja) 2007-07-03 2012-11-07 株式会社オティックス ロッカアーム
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)
JP5344546B2 (ja) * 2008-07-09 2013-11-20 キヤノン株式会社 情報処理装置、情報処理装置の制御方法、記憶媒体及びプログラム
US8954804B2 (en) * 2008-07-15 2015-02-10 Ati Technologies Ulc Secure boot circuit and method
JP4357582B1 (ja) 2008-07-22 2009-11-04 西浦 八重子 切開断面に処理剤等を塗付して植物を処理する方法とその鋏。
US9317708B2 (en) * 2008-08-14 2016-04-19 Teleputers, Llc Hardware trust anchors in SP-enabled processors
US20100083365A1 (en) * 2008-09-30 2010-04-01 Naga Gurumoorthy Apparatus and method to harden computer system
US8132267B2 (en) * 2008-09-30 2012-03-06 Intel Corporation Apparatus and method to harden computer system
US8086839B2 (en) * 2008-12-30 2011-12-27 Intel Corporation Authentication for resume boot path
US8555082B1 (en) * 2009-04-01 2013-10-08 Marvell International Ltd. Securing external memory data
US8566815B2 (en) * 2009-05-04 2013-10-22 Nokia Siemens Networks Oy Mechanism for updating software
US8490179B2 (en) * 2009-10-27 2013-07-16 Hewlett-Packard Development Company, L.P. Computing platform
US8296579B2 (en) * 2009-11-06 2012-10-23 Hewlett-Packard Development Company, L.P. System and method for updating a basic input/output system (BIOS)
GB2477774A (en) * 2010-02-12 2011-08-17 Icera Inc Overriding production processor authentication restrictions through remote security unit for development code testing
JP5702585B2 (ja) * 2010-11-30 2015-04-15 任天堂株式会社 入力判定プログラム、情報処理装置、システム及び情報処理方法
US8751783B2 (en) * 2011-01-20 2014-06-10 Hewlett-Packard Development Company, L.P. Booting computing devices with EFI aware operating systems

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003150379A (ja) * 2001-11-07 2003-05-23 Inventec Corp 複数のpdaオペレーティングシステムをメニューを通して起動させる方法
JP2003280915A (ja) * 2002-03-22 2003-10-03 Toshiba Corp 情報機器、記憶媒体、及びシステム起動方法
JP2008537224A (ja) * 2005-04-15 2008-09-11 マイクロソフト コーポレーション 安全な起動方法およびシステム
WO2009013831A1 (ja) * 2007-07-26 2009-01-29 Panasonic Corporation 情報処理端末及び改ざん検証方法
JP2010146048A (ja) * 2008-12-16 2010-07-01 Lenovo Singapore Pte Ltd 生体認証装置を備えるコンピュータ

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11006013B2 (en) 2018-01-24 2021-05-11 Canon Kabushiki Kaisha Image processing apparatus, having second processor to verify boot program has been altered, method of controlling the same, and storage medium
JP2020042632A (ja) * 2018-09-12 2020-03-19 キヤノン株式会社 情報処理装置、情報処理装置の起動方法、及びプログラム
JP7182966B2 (ja) 2018-09-12 2022-12-05 キヤノン株式会社 情報処理装置、情報処理装置の起動方法、及びプログラム
EP3709202A1 (en) 2019-03-11 2020-09-16 Canon Kabushiki Kaisha Electronic apparatus enabling omission of software tampering detection processing at activation
CN111683186A (zh) * 2019-03-11 2020-09-18 佳能株式会社 电子设备及其控制方法
KR20200108779A (ko) * 2019-03-11 2020-09-21 캐논 가부시끼가이샤 기동 시에 소프트웨어 탬퍼링 검출 처리를 생략하는 것이 가능한 전자 장치
US11126728B2 (en) 2019-03-11 2021-09-21 Canon Kabushiki Kaisha Electronic apparatus enabling omission of software tampering detection processing at activation
KR102578385B1 (ko) * 2019-03-11 2023-09-15 캐논 가부시끼가이샤 기동 시에 소프트웨어 탬퍼링 검출 처리를 생략하는 것이 가능한 전자 장치
JP7456271B2 (ja) 2020-05-07 2024-03-27 株式会社リコー 情報処理装置、情報処理方法及びプログラム

Also Published As

Publication number Publication date
JP5519712B2 (ja) 2014-06-11
US9292302B2 (en) 2016-03-22
US20130191622A1 (en) 2013-07-25

Similar Documents

Publication Publication Date Title
JP5519712B2 (ja) コンピュータをブートする方法およびコンピュータ
US10762216B2 (en) Anti-theft in firmware
US11520894B2 (en) Verifying controller code
JP5476363B2 (ja) 生体認証装置を利用したコンピュータの起動方法およびコンピュータ
JP4933519B2 (ja) 生体認証装置を備えるコンピュータ
US10152600B2 (en) Methods and systems to measure a hypervisor after the hypervisor has already been measured and booted
US9292300B2 (en) Electronic device and secure boot method
US8341393B2 (en) Security to extend trust
JP2006172376A (ja) 情報処理システム、プログラム、及び情報処理方法
JP2013145475A (ja) パスワードを保護する方法およびコンピュータ
JP2011210129A (ja) 記憶装置、データ処理装置、登録方法、及びコンピュータプログラム
JP2015222474A (ja) 変数セットを修復する方法、コンピュータ・プログラムおよびコンピュータ
CN109948310B (zh) 一种锁定方法及相关电子设备
JP2013175112A (ja) 認証装置、および、認証方法
JP2015001800A (ja) スリープ状態からレジュームする方法、携帯式電子機器およびコンピュータ・プログラム
US8473747B2 (en) Secure boot with minimum number of re-boots
JP2020181540A (ja) 情報処理装置、データ検証方法
JP7176084B1 (ja) 情報処理装置、及び制御方法
JP5367684B2 (ja) セキュリティを強化したコンピュータおよび電源の制御方法
JP4800340B2 (ja) Tcgの仕様に基づくフィジカル・プリゼンスの認証方法およびコンピュータ

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20131218

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20140107

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140306

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20140403

R150 Certificate of patent or registration of utility model

Ref document number: 5519712

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

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