JP2013156799A - Method for updating system firmware and computer - Google Patents
Method for updating system firmware and computer Download PDFInfo
- Publication number
- JP2013156799A JP2013156799A JP2012016237A JP2012016237A JP2013156799A JP 2013156799 A JP2013156799 A JP 2013156799A JP 2012016237 A JP2012016237 A JP 2012016237A JP 2012016237 A JP2012016237 A JP 2012016237A JP 2013156799 A JP2013156799 A JP 2013156799A
- Authority
- JP
- Japan
- Prior art keywords
- module
- old
- new
- new module
- block
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 51
- 230000008569 process Effects 0.000 claims description 10
- 230000004044 response Effects 0.000 claims description 6
- 238000004590 computer program Methods 0.000 claims description 3
- 238000005259 measurement Methods 0.000 claims description 3
- 238000012546 transfer Methods 0.000 claims description 2
- 230000009191 jumping Effects 0.000 claims 2
- 102100033668 Cartilage matrix protein Human genes 0.000 abstract 6
- 101001018382 Homo sapiens Cartilage matrix protein Proteins 0.000 abstract 6
- 238000012795 verification Methods 0.000 description 17
- 238000012545 processing Methods 0.000 description 13
- 238000010586 diagram Methods 0.000 description 5
- 230000007704 transition Effects 0.000 description 2
- 238000007796 conventional method Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 238000005192 partition Methods 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
Images
Landscapes
- Stored Programmes (AREA)
Abstract
【課題】システム・ファームウェアを確実に更新する方法を提供する。
【解決手段】BIOS_ROMのブート・ブロック101には旧CRTM100aが格納されシステム・ブロック103には旧BIOS117a、旧フラッシュ・ドライバ119aおよび旧暗号化ダイジェスト121aが格納され、ステージング・ブロック105には旧CRTM100a−1が格納されている。最初にシステム・ブロックに新BIOS117b、新フラッシュ・ドライバ119b、および新暗号化ダイジェスト121bを書き込み、ステージング・ブロックに新CRTM100b−1を書き込む。リセット後に旧CRTMの一部を実行した後に新CRTMを実行し続いて新フラッシュ・ドライバを実行する。新フラッシュ・ドライバがステージング・ブロックの新CRTMをブート・ブロックに書き込む。
【選択図】図3A method for reliably updating system firmware is provided.
A BIOS_ROM boot block 101 stores an old CRTM 100a, a system block 103 stores an old BIOS 117a, an old flash driver 119a, and an old encryption digest 121a, and a staging block 105 stores an old CRTM 100a- 1 is stored. First, the new BIOS 117b, the new flash driver 119b, and the new encryption digest 121b are written in the system block, and the new CRTM 100b-1 is written in the staging block. After resetting, after executing a part of the old CRTM, the new CRTM is executed, followed by the new flash driver. The new flash driver writes the new CRTM for the staging block to the boot block.
[Selection] Figure 3
Description
本発明は、コンピュータに実装されるシステム・ファームウェアを更新する技術に関する。 The present invention relates to a technique for updating system firmware implemented in a computer.
コンピュータには、ハードウェアとオペレーティング・システム(OS)、デバイス・ドライバまたはアプリケーション・プログラムなどの上位のプログラムとデバイスの間のインターフェースを提供するBIOSが実装される。BIOSは通常マザーボードに取り付けられたフラッシュ・メモリ(BIOS_ROM)に格納されて電源を起動したときにオペレーティング・システム(OS)をロードする前に実行される。 The computer is equipped with a BIOS that provides an interface between hardware and an operating system (OS), a higher-level program such as a device driver or an application program, and the device. The BIOS is normally stored in a flash memory (BIOS_ROM) attached to the motherboard and executed before loading the operating system (OS) when the power supply is activated.
TCG(Trusted Computing Group)といわれる組織では、コンピュータの製造者がより安全で信頼できるコンピュータを提供するためのハードウェア、BIOSおよびOSの仕様を策定している。TCGの仕様では、BIOSの一部に同一システムで動作するすべてのプログラムの信頼の基礎となるように完全性が保証されたCRTM(Core Root of Trust for Measurement)というコードが定義されている。 In an organization called TCG (Trusted Computing Group), computer manufacturers develop specifications for hardware, BIOS, and OS to provide safer and more reliable computers. In the TCG specification, a code called CRTM (Core Root of Trust for Measurement) whose integrity is guaranteed to be the basis of trust of all programs operating on the same system is defined as part of the BIOS.
CRTMは、コンピュータで実行されるプログラムのなかで絶対的に完全性が保証されている。ここにプログラムの完全性とは、コンピュータの製造者またはシステムのオーナー(以下、製造者という。)以外の者がシステム・ファームウェアの更新または改変をしていないことを意味し、一貫性またはインテグリティ(integrity)などということもある。 The CRTM is absolutely guaranteed to be complete among programs executed on a computer. As used herein, program integrity means that anyone other than the computer manufacturer or system owner (hereinafter referred to as the manufacturer) has not updated or modified the system firmware. integrity).
CRTMはBIOS_ROMに定義されたブート・ブロックという記憶領域に格納される。BIOS_ROMのブート・ブロック以外の記憶領域をシステム・ブロックということにする。また、BIOS_ROMに格納された全体のコードをシステム・ファームウェアということにする。なお、コンピュータには、個別のデバイスのコントローラにデバイス・ファームウェアも実装される。 The CRTM is stored in a storage area called a boot block defined in the BIOS_ROM. A storage area other than the BIOS_ROM boot block is called a system block. The entire code stored in the BIOS_ROM is referred to as system firmware. In the computer, device firmware is also mounted on a controller of an individual device.
プロセッサには、リセットされたときに最初にブート・ブロックのCRTMを実行するようにリセット・ベクタが設定されている。CRTMはBIOSの中の次にプロセッサの制御権を渡すコードの完全性を、制御権を渡す前に検証する。その後制御権を受け取ったコードは他のコードに制御権を渡す前に当該コードの完全性を検証する。以後同様にして順番に後段のプログラムの完全性を検証することで1つのコンピュータで実行されるプログラム全体に信頼のチェーンを構築することができる。このときCRTMは信頼のチェーンのなかで最も上位に位置して信頼の基礎を構築する。 A reset vector is set in the processor to first execute the CRTM of the boot block when reset. The CRTM verifies the integrity of the code that passes the control of the processor next in the BIOS before passing the control. Thereafter, the code that has received the control right verifies the integrity of the code before passing the control right to another code. Thereafter, the chain of trust can be established for the entire program executed on one computer by sequentially verifying the integrity of the subsequent program in the same manner. At this time, CRTM is positioned at the top of the chain of trust and builds the foundation of trust.
ところでシステム・ファームウェアはデバイスの進化とともに随時更新が必要になる。新システム・ファームウェアも旧CRTMから継続して信頼の基礎を築く必要があるため、旧CRTMは新システム・ファームウェアが真正な製造者により製造されたものであることを事前に検証する。また、新CRTMのBIOS_ROMへの書き込みはOSをロードする前の安全な環境で行うことが望ましい。したがって新CRTMを書き込むコードは、旧システム・ファームウェアまたは新システム・ファームウェアの一部としてそれらの中に埋め込まれている。 By the way, the system firmware needs to be updated as the device evolves. Since the new system firmware also needs to continue to build the foundation of trust from the old CRTM, the old CRTM verifies in advance that the new system firmware was manufactured by a genuine manufacturer. Also, it is desirable to write the new CRTM into the BIOS_ROM in a safe environment before loading the OS. Thus, the code that writes the new CRTM is embedded in them as part of the old system firmware or the new system firmware.
特許文献1は、ブート・ブロックにCRTMが格納されBIOSブロックにBIOSが格納されたプライマリ・フラッシュ・バンクと、CRTMとBIOSのコピーをブート・ブロックとBIOSブロックに格納するセカンダリ・フラッシュ・バンクを備えるコンピュータ・システムを開示する。一方のバンクのBIOSを実行できないときは他方のバンクに切り換える。また、ブート・ブロックには、CRTMを更新するためのコードが格納されている。
特許文献2は、CRTMを更新する方法を開示する。同文献に記載する更新方法では、新CRTMをメイン・メモリに展開し、フラグを設定してコンピュータをサスペンド状態に遷移させる。レジュームの際にフラグを検出すると、旧CRTMが新更新モジュールを認証する。BIOS_ROMの被認証モジュールを新更新モジュールで更新したあとにCRTMのロックを解除する。認証された新更新モジュールを実行して、旧CRTMを新CRTMに書き換える。 Patent Document 2 discloses a method for updating CRTM. In the update method described in the document, the new CRTM is developed in the main memory, a flag is set, and the computer is changed to the suspended state. When a flag is detected during resume, the old CRTM authenticates the new update module. After the authenticated module of BIOS_ROM is updated with the new update module, the CRTM lock is released. The authenticated new update module is executed, and the old CRTM is rewritten to the new CRTM.
CRTMはシステム・ブロックに制御権を移す際にブート・ブロックに書き込み保護(ライト・ロック)を行う。以後、他のコードがライト・ロックを解除することはできないためブート・ブロックはセキュアな記憶領域として構成されている。したがって、CRTMが損傷するとユーザでは容易に復旧できなくなるため、近年はCRTMのコード量を必要最小限に留めるようになってきている。そのために、CRTMを更新するコードもシステム・ブロックに格納するようになってきている。その結果、それまでにない更新時の問題が発見された。 CRTM provides write protection (write lock) to the boot block when transferring control to the system block. Thereafter, since no other code can release the write lock, the boot block is configured as a secure storage area. Accordingly, if the CRTM is damaged, the user cannot easily recover it. In recent years, the CRTM code amount has been kept to a minimum. For this reason, a code for updating the CRTM is also stored in the system block. As a result, an unprecedented update problem was discovered.
図6は、BIOS_ROMに格納された旧システム・ファームウェアを従来の方法で更新する際の問題を説明する図である。更新前の状態を示す図6(A)では、ブート・ブロックに旧CRTM1aが格納され、システム・ブロックには旧BIOS3aと旧CRTM1−aが格納されている。ここでは更新後の状態を示す図6(C)のように、旧CRTM1aを新CRTM1bで書き換え、旧BIOS3aを新BIOS3bで書き換えるものとする。旧CRTM1a−1、新CRTM1b−1は、それぞれ旧CRTM1a、新CRTM1bのコピー元のコードであり、更新時だけ必要とされる。
FIG. 6 is a diagram for explaining a problem when the old system firmware stored in the BIOS_ROM is updated by the conventional method. In FIG. 6A showing the state before the update, the old CRTM 1a is stored in the boot block, and the
図6(B)の状態で旧CRTM1aを新CRTM1b−1で書き換えるコードは、新BIOS3bの中に埋め込まれているため、更新を行う際はCPUをリセットして最初に旧CRTM1aを実行する。また、旧CRTM1aは新BIOS3bと新CRTM1b−1で構成される新システム・ファームウェアの完全性を検証してから更新される。このような事情から、システム・ファームウェアの更新は2段階プロセスで行っている。
Since the code for rewriting the old CRTM 1a with the new CRTM 1b-1 in the state of FIG. 6B is embedded in the
具体的には、最初に図6(B)に示すようにシステム・ブロックに新BIOS3bと新CRTM1b−1からなる新システム・ファームウェアを書き込む。つぎにCPUをリセットした後、旧CRTM1aが、PKI(Public Key Infrastructure)方式で新システム・ファームウェアの完全性を検証する。旧CRTM1aは、新システム・ファームウェアの完全性を検証すると、自身の更新のためにブート・ブロックに対してライト・ロックをせずに、新BIOS3bにプロセッサの制御権を渡す。新BIOS3bは新CRTM1b−1をブート・ブロックに新CRTM1aとして書き込む。このとき、BIOS_ROMには図6(B)のように、旧CRTM1aと新BIOS3bが混在する状態が発生する。そして、リセットされたプロセッサが旧CRTM1aを実行し、さらに新CRTM1b−1を書き込むために新BIOS3bを実行するときに、CRTMとBIOSとでコーディング/ビルドにおいて同じファイルを参照し、新システム・ファームウェアでそのファイルが更新された場合、旧CRTM1aの変数の定義と新BIOS3bの変数の定義が異なると、その時点でプログラムの実行が中断して更新ができなくなってしまう。
Specifically, first, as shown in FIG. 6B, new system firmware composed of the
新BIOS3bをコーディングする際に、旧CRTM1aと変数の定義を一致させれば問題はないがシステム・ファームウェアの製造者に過度の負担をかけることになりかねない。また、新システム・ファームウェアは旧CRTM1aからコーディング上の制約を受けることになり、自由に改良を加えることができなくなる。さらに不注意なコーディングをしてしまった場合には、当該モジュールの更新を断念したり、時間をかけてデバッグしたりする必要がある。
When coding the
特許文献2にかかるCRTMの更新方法でも、旧CRTMと新更新モジュールがBIOS_ROMに共存するため同様の問題が生ずる。製造者は、新CRTMと新BIOSとの間では容易に整合性を図ることができるため、2段階プロセスでセキュアに更新するときに旧CRTMとの整合性の問題を回避できることが望ましい。 In the CRTM update method according to Patent Document 2, the same problem occurs because the old CRTM and the new update module coexist in the BIOS_ROM. Since the manufacturer can easily achieve consistency between the new CRTM and the new BIOS, it is desirable to be able to avoid consistency problems with the old CRTM when securely updating in a two-stage process.
そこで本発明の目的は、システム・ファームウェアを確実に更新する方法を提供することにある。さらに本発明の目的は完全性を検証したシステム・ファームウェアで更新する方法を提供することができた。さらに本発明の目的は、ライト・ロックの可能な記憶領域に格納されるコードの量を低減することができる更新方法を提供することにある。さらに本発明の目的は、新システム・ファームウェアのコーディングの自由度を拡大した更新方法を提供することにある。さらに本発明の目的は、そのような方法を実現するコンピュータおよびコンピュータ・プログラムを提供することにある。 Accordingly, an object of the present invention is to provide a method for reliably updating system firmware. Furthermore, the object of the present invention was to provide a method for updating with system firmware whose integrity was verified. It is a further object of the present invention to provide an update method that can reduce the amount of code stored in a write-lockable storage area. It is a further object of the present invention to provide an update method with an increased degree of freedom in coding new system firmware. A further object of the present invention is to provide a computer and a computer program for realizing such a method.
本発明にかかる不揮発性メモリには第1の旧モジュールと第2の旧モジュールが格納されている。第1の旧モジュールを更新する第1の新モジュールと第2の旧モジュールを更新する第2の新モジュールは、外部メモリやネットワークを通じてコンピュータに提供することができる。 The nonvolatile memory according to the present invention stores a first old module and a second old module. The first new module for updating the first old module and the second new module for updating the second old module can be provided to the computer through an external memory or a network.
最初に第2の旧モジュールを上書きするように第1の新モジュールと第2の新モジュールを不揮発性メモリに書き込む。つづいて第1の旧モジュールが第1の新モジュールと第2の新モジュールの完全性を検証する。つづいてプロセッサのリセットに応答して第1の新モジュールを実行する。さらにつづいて、第1の新モジュールに続いて実行される第2の新モジュールが第1の新モジュールを第1の旧モジュールが書き込まれていた記憶領域に上書きする。 First, the first new module and the second new module are written into the nonvolatile memory so as to overwrite the second old module. Subsequently, the first old module verifies the integrity of the first new module and the second new module. Subsequently, the first new module is executed in response to the reset of the processor. Subsequently, the second new module executed following the first new module overwrites the first new module in the storage area in which the first old module was written.
このような手順により、第1の旧モジュールと第2の旧モジュールを、通常のブートでOSをロードする前に、完全性を検証した第1の新モジュールと第2の新モジュールで更新することができる。このとき、プロセッサがリセットされると第1の新モジュールを実行してから第2の新モジュールに制御権が移るため、第1の旧モジュールと第2の新モジュールとの間での変数の定義が整合していなくてもプログラムの実行が途中で停止することはない。製造者は第1の新モジュールと第2の新モジュールの間で定義する変数の整合性を図ればよいため、第1の旧モジュールの制約を受けないで新システム・ファームウェアをコーディングすることができる。 By such a procedure, the first old module and the second old module are updated with the first new module and the second new module whose integrity has been verified before loading the OS in a normal boot. Can do. At this time, when the processor is reset, the control right is transferred to the second new module after the first new module is executed. Therefore, the variable definition between the first old module and the second new module is performed. Even if they are not consistent, program execution will not stop halfway. Since the manufacturer only needs to match the variables defined between the first new module and the second new module, the new system firmware can be coded without being restricted by the first old module. .
第1の旧モジュールは不揮発性メモリの書き込み保護の可能な記憶領域に書き込むことができる。また書き込み保護の可能な記憶領域は、リセットしたプロセッサが最初に実行するアドレスを有するブート・ブロックとすることができる。このとき、第2の新モジュールが第1の新モジュールをブート・ブロックに書き込むため、ブート・ブロックに格納するコードの量を低減することができる。第1の旧モジュールと第1の新モジュールはコンピュータで実行されるプログラムの完全性を保証する信頼のチェーンにおいて最上位に位置するCRTM(Core Root of Trust for Measurement)とすることができる。 The first old module can write to a write-protected storage area of the nonvolatile memory. The storage area that can be write-protected can be a boot block having an address that is first executed by the reset processor. At this time, since the second new module writes the first new module into the boot block, the amount of code stored in the boot block can be reduced. The first old module and the first new module can be a Core Root of Trust for Measurement (CRTM) that is positioned at the top of a chain of trust that ensures the integrity of a program executed on a computer.
第1の新モジュールを実行するステップでは、第1の旧モジュールが第1の旧モジュールの残りの部分と第1の新モジュールのいずれを実行するかを判断することができる。このとき不揮発性メモリに第1の旧モジュールと第2の新モジュールが共存することを示す混在フラグを設定することができる。このとき、判断するステップにおいて混在フラグを確認するようにしてもよい。 In the step of executing the first new module, it can be determined whether the first old module executes the remaining part of the first old module or the first new module. At this time, it is possible to set a mixed flag indicating that the first old module and the second new module coexist in the nonvolatile memory. At this time, the mixed flag may be confirmed in the determining step.
フラッシュ・ツールと第1の新モジュールと第2の新モジュールを格納するブート・デバイスを接続し、第1の新モジュールと第2の新モジュールを書き込んだあとにフラッシュ・ツールが更新フラグを設定することができる。このとき、混在フラグを設定するステップは、プロセッサのリセットに応答して実行された第1の旧モジュールが更新フラグを確認して実行するようにしてもよい。第1の新モジュールと第2の新モジュールはフラッシュ・ツールが書き込むようにしてもよい。また、フラッシュ・ツールを実行する前に第1の旧モジュールがその完全性を検証することが望ましい。 The flash tool sets the update flag after writing the first new module and the second new module after connecting the boot tool storing the first new module and the second new module. be able to. At this time, the step of setting the mixed flag may be executed by the first old module executed in response to the reset of the processor confirming the update flag. The first new module and the second new module may be written by the flash tool. It is also desirable for the first old module to verify its integrity before executing the flash tool.
本発明により、システム・ファームウェアを確実に更新する方法を提供することができた。さらに本発明により完全性を検証したシステム・ファームウェアで更新する方法を提供することができた。さらに本発明により、ライト・ロックの可能な記憶領域に格納されるコードの量を低減することができる更新方法を提供することができた。さらに本発明により、新システム・ファームウェアのコーディングの自由度を拡大した更新方法を提供することができた。さらに本発明により、そのような方法を実現するコンピュータおよびコンピュータ・プログラムを提供することができた。 The present invention can provide a method for reliably updating the system firmware. Furthermore, the present invention can provide a method for updating with system firmware whose integrity has been verified. Furthermore, according to the present invention, it is possible to provide an update method capable of reducing the amount of code stored in a write-lockable storage area. Furthermore, according to the present invention, an update method with an increased degree of freedom in coding the new system firmware can be provided. Furthermore, according to the present invention, it is possible to provide a computer and a computer program for realizing such a method.
図1は、ノートブック型パーソナル・コンピュータ(ノートPC)10の主要なハードウェアの構成を示す機能ブロック図である。図1には本発明の説明に必要な範囲のハードウェアだけを記載している。本発明においてはハードウェアの構成は周知であるためここでは簡略的に説明する。ノース・ブリッジ13には、CPU11、メイン・メモリ15、ビデオ・コントローラ17およびサウス・ブリッジ21が接続される。ビデオ・コントローラ17には、LCD19が接続される。
FIG. 1 is a functional block diagram showing a main hardware configuration of a notebook personal computer (notebook PC) 10. FIG. 1 shows only the hardware necessary to explain the present invention. Since the hardware configuration is well known in the present invention, it will be briefly described here. The
サウス・ブリッジ21はさまざまな規格のインターフェースを備え、図1には代表的にSATAにハードディスク・ドライブ(HDD)23が接続され、SPIにBIOS_ROM25が接続され、USBにUSBコネクタ27が接続され、LPCにNVRAM31が接続されている様子を示している。BIOS_ROM25は、ノートPC10のマザーボードに取り付けられている。USBメモリ29は、USBコネクタ27に接続する外部メモリとすることができる。NVRAM31は、電源が停止しても記憶を保持する不揮発性のメモリでリード・ロックおよびライト・ロックの可能なセキュアな記憶領域を備えている。
The
図2は、BIOS_ROM25、USBメモリ29、およびNVRAM31のデータ構造の一例を示す図である。BIOS_ROM25の記憶領域には、ブート・ブロック101、システム・ブロック103およびステージング・ブロック105が定義されている。BIOS_ROM25に格納されたすべてのコードおよびデータをシステム・ファームウェアという。BIOS_ROM25に格納されたコードの参照番号には、更新前のコードにはサフィックスaを、更新後のコードにはサフィックスbを付している。以下の説明では、更新前のコードについての説明は更新後のコードにも適用する。
FIG. 2 is a diagram illustrating an example of the data structure of the
ブート・ブロック101に格納されたコード全体を旧CRTM100aという。旧CRTM100aは、CPU11がリセットされたときに最初に実行されるリセット・ベクタのアドレスを有する。ブート・ブロック101は、BIOS_ROM25の中で書き込みを禁止するライト・ロックの設定が可能な記憶領域である。旧CRTM100aは、通常のブート・ルーチンを実行する際にはCPU11の制御権をシステム・ブロック103に格納された旧BIOS117aに移す前に、サウス・ブリッジ21のSPIインターフェースを使用して、ブート・ブロック101をライト・ロックする。
The entire code stored in the
旧CRTM100aは、本実施の形態にかかる更新を実行する際には、ライト・ロックを設定しないで新CRTM100b−1にジャンプするがその手順は後に説明する。ライト・ロックはサウス・ブリッジ21がリセットされたときに自動的に解除される。旧CRTM100aは、更新のとき以外は自身がCRTMであるが故に、ブート・ブロック101のライト・ロックを行う。また、旧CRTM100aは新CRTM100bをブート・ブロック101に上書きする際に、事前に新CRTM100bの完全性の検証をしてからライト・ロックを行わない判断処理をする。したがって、更新にかかる新CRTM100bは製造されてからマルウェアにより改竄されることはなく、また、旧CRTM100aまたは最初のCRTMを製造した製造者により製造されたものであることが一貫して保証される。
The
旧CRTM100aは、基本デバイス初期化コード111a、実行パス制御コード112a、完全性検証コード113a、および更新処理コード115aといった必要最小限のコードで構成されている。基本デバイス初期化コード111aは、リセットされたCPU11がメイン・メモリ15を使用できるようにするために必要な最小限のデバイスに対するPOST(Power On Self Test)処理をするためのコードである。
The
実行パス制御コード112aは、NVRAM31の混在フラグ153を参照して、ブート・ルーチンを通常のブート・ルーチンと更新のブート・ルーチンのいずれかに決定する。実行パス制御コード112aはBIOS_ROM25に旧CRTM100aと新システム・ファームウェアが混在する状態で実行される旧CRTM100aのコードをできるだけ少なくするために、基本デバイス初期化コード111が実行されてからできるだけ早い段階で実行される。完全性検証コード113aは更新時に新システム・ファームウェアのハッシュ値を計算したり、通常のブート時にCPU11の制御権を渡す前に旧BIOS117aのハッシュ値を計算したりするためのSHA−1エンジンを含む。
The execution
完全性検証コード113aは、新システム・ファームウェアの完全性をPKI方式で検証するための公開鍵を含む。完全性検証コード113aは、実際のブート・ルーチンにおいて次にCPU11の制御権を渡すBIOS117aの完全性を検証する。更新処理コード115aは、NVRAM31の更新フラグ151を参照して、BIOS_ROM25に旧CRTM100aと新システム・ファームウェアが混在すると判断したときにNVRAM31に混在フラグ153を設定し、混在しないと判断したときは通常のブート・ルーチンに従ってブート・ブロック101をライト・ロックしてからBIOS117aにCPU11の制御権を渡す。
The
システム・ブロック103は、システム・ファームウェアの中でCRTM以外のコードを格納する記憶領域である。システム・ブロック103の先頭アドレスは固定アドレスになっている。システム・ブロック103には、旧BIOS117a、旧フラッシュ・ドライバ119aおよび旧暗号化ダイジェスト121aが格納されている。旧BIOS117aは、デバイスの検査および初期化をするPOSTコード、デバイスを直接制御するI/Oコード、パワーオン・パスワードやHDDパスワードの処理をするパスワード処理コード、セットアップ画面を表示してBIOSのセットアップをするためのセットアップ・コード、ノートPC10の電源を制御するパワー・マネジメント・コードなどの複数のモジュールで構成されている。
The
旧BIOS117aはつぎにCPU11の制御権を渡すデバイス・ファームウェアやブート・ローダの完全性を検証するためのSHA−1エンジンおよび公開鍵を保有していてもよい。このように各モジュールが次に制御権を渡すモジュールの完全性を検証することで、旧CRTM100aを基点としてシステム全体におけるソフトウェアの信頼のチェーンを構築することができる。
The
旧フラッシュ・ドライバ119aは、前回更新されたときにステージング・ブロック105に書き込まれた旧CRTM100a−1をブート・ブロック101に書き込むためにコピー元となったコードである。旧フラッシュ・ドライバ119aは、旧システム・ファームウェアが更新された後は実行されることはない。旧暗号化ダイジェスト121aは、旧システム・ファームウェアのハッシュ値を真正な製造者が保有する秘密鍵で暗号化したデータである。このダイジェストはシステム・ブロック103およびステージング・ブロック105が対象となっている。ステージング・ブロック105は、システム・ファームウェアを更新するために一時的に使用する記憶領域である。ステージング・ブロック105の先頭アドレスは固定アドレスになっている。ステージング・ブロック105には、旧CRTM100a−1が格納されている。旧CRTM100a−1は、ブート・ブロック101に格納された旧CRTM100aと同じコードで更新時だけに必要とされる。
The
USBメモリ29は、新システム・ファームウェア131、フラッシュ・ツール133、OS135および暗号化ダイジェスト137を含む。新システム・ファームウェア131は、BIOS_ROM25に格納された旧システム・ファームウェアを書き換えるための新しいコードである。フラッシュ・ツール133は、CPU11がリセットされたときに旧CRTM100aに通常のブートではなく更新をさせるための処理をするコードである。
The
フラッシュ・ツール133は更新の際に、新システム・ファームウェア131をメイン・メモリ15に展開する。OS135は、フラッシュ・ツール133とハードウェアとのインターフェースを提供するプログラムである。暗号化ダイジェスト137は、USBメモリ29に記憶されたフラッシュ・ツール133およびOS135のハッシュ値を旧システム・ファームウェアの製造者が保有する秘密鍵で暗号化したデータである。
The
NVRAM31は、更新フラグ151および混在フラグ153を保有する。更新フラグ151はフラッシュ・ツール133が設定し、混在フラグ153は旧CRTM100aの更新処理コード115aが設定する。更新フラグ151および混在フラグ153は、NVRAM31のライト・ロックの可能な記憶領域に設定される。NVRAM31のライト・ロックはサウス・ブリッジ21がリセットされたときに解除されるが、更新処理コード115aは、更新フラグ151または混在フラグ153を設定したあとにサウス・ブリッジ21のLPCインターフェースにライト・ロックを設定する。旧BIOS117aは、ブート・デバイスがUSBメモリ29であると判断したときは、フラッシュ・ツール133に制御権を渡す際にNVRAM31のライト・ロックを解除する。
The
図3は、システム・ファームウェアを更新するときのBIOS_ROM25に書き込まれているコードの変遷を示す図である。図3(A)は更新前の状態を示し、図3(B)は更新途中の状態を示し、図3(C)は更新が完了した状態を示している。図4、図5はシステム・ファームウェアの更新手順を示すフローチャートである。つぎに図3〜図5に基づいて、システム・ファームウェアを更新する手順を説明する。
FIG. 3 is a diagram showing the transition of codes written in the
図4のブロック201では、BIOS_ROM25に図3(A)に示すように旧システム・ファームウェアが格納されている。旧システム・ファームウェアは、ブート・ブロック101に格納された旧CRTM100a、システム・ブロック103に格納された旧BIOS117a、旧フラッシュ・ドライバ119a、および旧暗号化ダイジェスト121a、ステージング・ブロック105に格納された旧CRTM100a−1で構成されている。
In the
更新の理由は、ブート・ブロック101に格納された旧CRTM100aおよびシステム・ブロック103に格納された旧BIOS117aまたはいずれか一方のコードに存在する。ブロック203で、新システム・ファームウェア131を含むUSBメモリ29をUSBコネクタ27に装着してパワー・オフ状態から電源を起動するとCPU11がリセットされて旧CRTM100aが実行される。このときサウス・ブリッジ21もリセットされてNVRAM31のライト・ロックが自動的に解除される。つぎに旧CRTM100aに続いてBIOS117aのPOSTコードが実行される。
The reason for the update is in the
POSTコードが実行されている間に、ユーザは特定のファンクション・キーを押下してセットアップ・コードを呼び出しLCD19にBIOSのセットアップ画面を表示する。ユーザはセットアップ画面を通じてUSBメモリ29をブート・デバイスの最上位に設定しセットアップを終了する。POSTが終了すると、ブロック205でBIOS117aは、完全性を検証してからフラッシュ・ツール133およびOS135をメイン・メモリ15にロードする。
While the POST code is being executed, the user presses a specific function key to call up the setup code and display the BIOS setup screen on the
ブロック207でフラッシュ・ツール133は、新システム・ファームウェア131をメイン・メモリ15に読み出し、ブロック209でシステム・ブロック103とステージング・ブロック105に新システム・ファームウェアを書き込む。このときのBIOS_ROM25の状態を図3(B)に示す。図3(B)では、ブート・ブロック101には旧CRTM100aが格納されているが、システム・ブロック103には新BIOS117b、新フラッシュ・ドライバ119b、新暗号化ダイジェスト121bが書き込まれ、ステージング・ブロック105には新CRTM100b−1が書き込まれている。
In
ブロック211でフラッシュ・ツール133はNVRAM31に更新フラグ151を設定する。ブロック213でフラッシュ・ツール133は電源を再起動する。ノートPC10がパワー・オン・リセットされるとCPU11は図5のブロック301で旧CRTM100aを実行してブートを開始する。このときNVRAM31のライト・ロックも自動的に解除される。ブロック303で実行パス制御コード112aは、NVRAM31の混在フラグ153を参照する。
In
この時点では混在フラグ153が設定されていないので、実行パス制御コード112aは完全性検証コード113aにジャンプする。ブロック305で完全性検証コード113aはシステム・ブロック103とステージング・ブロック105に書き込まれた新システム・ファームウェア131の完全性を検証する。完全性検証コード113aは、新システム・ファームウェア131のハッシュ値を計算する。
Since the
完全性検証コード113aは、新暗号化ダイジェスト121bを生成する際にダイジェストの暗号化に使用した秘密鍵と対で生成された公開鍵で新暗号化ダイジェスト121bを復号したダイジェストと、計算した新システム・ファームウェア131のハッシュ値(ダイジェスト)を比較する。両者が一致したときは、新システム・ファームウェアは旧CRTM100aが保有する公開鍵を提供した製造者が製造したことになり完全性の検証が成功する。両者が一致しないときは、新システム・ファームウェアは真正な製造者が製造したあとに改竄されたか第3者が製造したことになり完全性の検証が失敗する。
The
完全性の検証が失敗したときはブロック311に移行し、成功したときはブロック321に移行する。ブロック311で完全性検証コード113aは、ブート・ブロック101に対するライト・ロックを設定する。ブロック313で完全性検証コード113aはビープ音を鳴らしてユーザに更新が失敗したことを知らせるとともにノートPC10の動作を停止する。
If the integrity verification fails, the process proceeds to block 311, and if successful, the process proceeds to block 321. In
これ以降ユーザは、USBメモリ29に完全性のある新システム・ファームウェアを格納して再度更新作業をすることができる。あるいは、新システム・ファームウェアをBIOS_ROM25に書き込む前にシステム・ブロック103に書き込まれていた旧BIOS117a、旧フラッシュ・ドライバ119a、旧暗号化ダイジェスト121aをいずれかの不揮発性メモリに退避しておき、旧システム・ファームウェアに書き戻すようにしてもよい。
Thereafter, the user can store the complete new system firmware in the
ブロック321で完全性検証コード113aは更新処理コード115aにCPU11の制御権を渡す。更新処理コード115aはNVRAM31を参照して更新フラグ151を確認する。この時点ではブロック211で更新フラグ151が設定されているためブロック331に移行する。ブロック331で更新処理コード115aは、NVRAM31に混在フラグ153を設定する。ブロック333で更新処理コード115aはブート・ブロック101に対するライト・ロックを設定しないでCPU11をリセットしブロック301に移行する。
In
ブロック321からブロック323に移行するのは、ブロック211で更新フラグ151を設定しないで通常のブート・ルーチンを実行する場合である。ブロック323で更新処理コード115aは、ブート・ブロック101に対してライト・ロックを設定してから、旧BIOS117aのPOSTコードにジャンプし通常のブート・ルーチンを継続する。POSTが終了するとブロック325でBIOS117aは、完全性を検証したブート・ローダを読み出して通常のブート・ルーチンを実行する。
The
ブロック333からブロック301に移行したときは、サウス・ブリッジ21はリセットされないがブロック333でブート・ブロック101のライト・ロックは解除されたままである。ブロック303で実行パス制御コード112aはNVRAM31の混在表示フラグ153を参照してブロック341に移行する。ブロック341で実行パス制御コード112aは完全性検証コード113aをスキップしてステージング・ブロック105に書き込まれた新CRTM100b−1の先頭アドレスにジャンプする。
When the
なお、ブロック333でライト・ロックをしてからパワー・オン・リセットをする場合は、実行パス制御コード112aがブート・ブロック101のライト・ロックをせずにブロック341に移行することもできる。ブロック343で新CRTM100b−1は、自身の処理が終わると、システム・ブロック105の新BIOS117bにジャンプする。なお、CRTM100b−1の中で、NVRAM31に混在フラグ153が設定されていることを確認できれば、完全性検証コード113bをスキップすることもできる。
When the power-on reset is performed after the write lock is performed in the
新BIOS117bは、NVRAM31に混在フラグ153が設定されていることを確認すると、POST処理の間に、新フラッシュ・ドライバ119bを使用してステージング・ブロック105に書き込まれた新CRTM100b−1を、旧CRTM100aが書き込まれたブート・ブロック101に上書きする。このときのBIOS_ROM25の状態を図3(C)に示す。
When the
図3(C)は、ブート・ブロック101にステージング・ブロック105の新CRTM100b−1と同じコードである新CRTM100bが書き込まれている様子を示している。ブロック345で新フラッシュ・ドライバ119bはNVRAM31の更新フラグ151と混在フラグ153を解除して、ブロック347でCPU11をリセットしブロック349で新CRTM100bを実行する。その後、ブロック303に戻って新システム・ファームウェア131による通常のブート・ルーチンが実行される。なお、ステージング・ブロック105の新CRTM100b−1は、これ以降のブートの際に実行されることはない。
FIG. 3C shows a state in which a
新システム・ファームウェア131は、ブロック301からブロック321までの実行パスを経由してブロック323でブート・ブロック101とNVRAM31にライト・ロックを設定してブロック325に移行する。ブロック301以降の手順はノートPC10の電源を起動してからHDD23に格納されたOSをロードする前のマルウェアから攻撃されない安全な環境で実行される。そして旧CRTM100aが新システム・ファームウェア131の完全性を認定しないときは更新を停止するため、セキュアな環境で安全なシステム・ファームウェアに更新することができる。また、完全性の検証は、ブート・ブロック101に格納された当初の製造者の公開鍵を使って行うため、ノートPC10の製造当初からのプログラムの信頼のチェーンを維持することができる。
The
上記の手順に寄れば、図3(B)のように旧CRTM100aと新システム・ファームウェア131がBIOS_ROM25に併存する状態でブートを開始するときに、旧CRTM100aは混在フラグ153を早い段階で確認すると新CRTM100b−1にジャンプする。製造者は新CRTM100b−1と新BIOS117bを同一のタイミングでコーディングするため変数の定義を容易に整合させることができる。したがって、旧CRTM100aと新BIOS117bの変数の定義が相違しても新CRTM100b−1と新BIOS117bの変数の定義が整合していれば更新の途中でハングアップすることはない。
If the above procedure is followed, when booting is started with the
また本実施の形態では、新フラッシュ・ドライバ119bをシステム・ブロック103に格納して新CRTM100bのコード量を少なくすることができるため、CRTMの経年的な信頼性を向上させることができる。これまで、新システム・ファームウェアをUSBメモリ29から提供する方法を説明したが、新システム・ファームウェアの提供方法はこれに限定するものではない。たとえば、ネットワークを通じてHDD23の独立したパーティションに新システム・ファームウェアをダウンロードしてHDD23から提供するようにしてもよい。また旧CRTM100aは、新ファームウェア全体の完全性を検証したが、新CRTM100b−1と新BIOS117bの完全性を個別に検証するようにしてもよい。
In this embodiment, since the
これまで本発明について図面に示した特定の実施の形態をもって説明してきたが、本発明は図面に示した実施の形態に限定されるものではなく、本発明の効果を奏する限り、これまで知られたいかなる構成であっても採用することができることはいうまでもないことである。 Although the present invention has been described with the specific embodiments shown in the drawings, the present invention is not limited to the embodiments shown in the drawings, and is known so far as long as the effects of the present invention are achieved. It goes without saying that any configuration can be adopted.
101 ブート・ブロック
103 システム・ブロック
105 ステージング・ブロック
101
Claims (18)
前記第2の旧モジュールを上書きするように前記第1の新モジュールと前記第2の新モジュールを書き込むステップと、
前記第1の旧モジュールが前記第1の新モジュールと前記第2の新モジュールの完全性を検証するステップと、
プロセッサのリセットに応答して前記第1の新モジュールを実行するステップと、
前記第1の新モジュールに続いて実行された前記第2の新モジュールが前記第1の新モジュールを前記第1の旧モジュールが書き込まれていた記憶領域に書き込むステップと
を有する方法。 A computer updates a first old module and a second old module stored in a non-volatile memory with a first new module and a second new module,
Writing the first new module and the second new module to overwrite the second old module;
The first old module verifies the integrity of the first new module and the second new module;
Executing the first new module in response to a processor reset;
The second new module executed subsequent to the first new module writing the first new module to the storage area in which the first old module was written.
前記判断するステップが前記混在フラグを確認するステップを含む請求項5に記載の方法。 Setting a mixed flag indicating that the first old module and the second new module coexist in the nonvolatile memory;
6. The method of claim 5, wherein the step of determining includes checking the mixed flag.
前記第1の新モジュールと前記第2の新モジュールを書き込むステップに続いて前記フラッシュ・ツールが更新フラグを設定するステップを有し、
前記混在フラグを設定するステップを、前記プロセッサのリセットに応答して実行された前記第1の旧モジュールが前記更新フラグを確認して実行する請求項6に記載の方法。 Connecting a flash tool, a boot device storing the first new module and the second new module;
Following the step of writing the first new module and the second new module, the flash tool setting an update flag;
The method according to claim 6, wherein the step of setting the mixed flag is executed by the first old module executed in response to the reset of the processor confirming the update flag.
前記システム・ブロックに前記第2の新モジュールを書き込み前記ステージング・ブロックに前記第1の新モジュールを書き込むステップと、
前記第1の旧モジュールが前記第1の新モジュールと前記第2の新モジュールの完全性を検証するステップと、
プロセッサがリセットされたときに前記第1の旧モジュールが実行を完了する前に前記第1の新モジュールを実行するステップと、
前記第1の新モジュールに続いて実行される前記第2の新モジュールが前記第1の新モジュールを前記ブート・ブロックに書き込むステップと
を有する方法。 A non-volatile memory in which a boot block for storing a first old module, a system block for storing a second old module, and a staging block for storing the first old module are defined by the computer. A method of updating with a new module and a second new module,
Writing the second new module to the system block and writing the first new module to the staging block;
The first old module verifies the integrity of the first new module and the second new module;
Executing the first new module before the first old module completes execution when the processor is reset;
The second new module executed subsequent to the first new module writing the first new module to the boot block.
前記完全性を検証するステップが、
前記第1の旧モジュールが前記公開鍵で前記暗号化ダイジェストを復号するステップと、
前記第1の旧モジュールが前記第1の新モジュールと前記第2の新モジュールのハッシュ値を計算するステップと
を有する請求項9に記載の方法。 The boot block stores a public key corresponding to a secret key held by a manufacturer of the first old module, and the system block stores hash values of the first new module and the second new module. Storing an encrypted digest encrypted with the secret key;
Verifying the integrity comprises:
The first old module decrypting the encrypted digest with the public key;
The method of claim 9, wherein the first old module comprises calculating a hash value of the first new module and the second new module.
前記第1の旧モジュールが前記更新フラグを検出したときに混在フラグを設定して前記プロセッサをリセットするステップとを有し、
前記第1の新モジュールを実行するステップが、前記第1の旧モジュールが前記混在フラグを検出したときに前記第1の新モジュールから前記第1の新モジュールにジャンプするステップを含む請求項9から請求項11のいずれかに記載の方法。 Setting an update flag to reset the processor;
Setting the mixed flag when the first old module detects the update flag and resetting the processor;
The step of executing the first new module includes the step of jumping from the first new module to the first new module when the first old module detects the mixed flag. The method according to claim 11.
前記プロセッサがリセットされたときに最初に実行する第1の旧モジュールと該第1の旧モジュールに続いて実行する第2のモジュールを記憶する不揮発性メモリと、
前記第1の旧モジュールを更新する第1の新モジュールと前記第2の旧モジュールを更新する第2の新モジュールを記憶する記憶装置に接続が可能なインターフェースと、
前記第2の旧モジュールを上書きするように前記第1の新モジュールと前記第2の新モジュールを前記不揮発性メモリに書き込む手段と、
前記第1の旧モジュールを実行して前記第1の新モジュールおよび前記第2の新モジュールの完全性を検証する手段と、
前記プロセッサのリセットに応答して前記第1の新モジュールを実行する手段と、
前記第1の新モジュールに続いて実行される前記第2の新モジュールが前記第1の新モジュールを前記第1の旧モジュールが書き込まれていた記憶領域に書き込む手段と
を有するコンピュータ。 A processor;
A non-volatile memory storing a first old module to be executed first when the processor is reset and a second module to be executed subsequent to the first old module;
An interface connectable to a storage device storing a first new module for updating the first old module and a second new module for updating the second old module;
Means for writing the first new module and the second new module to the non-volatile memory to overwrite the second old module;
Means for executing the first old module to verify the integrity of the first new module and the second new module;
Means for executing the first new module in response to a reset of the processor;
A computer comprising: the second new module executed subsequent to the first new module; and means for writing the first new module into a storage area in which the first old module has been written.
前記第2の旧モジュールを上書きするように書き込まれた前記第1の新モジュールと前記第2の新モジュールの完全性を前記第1の旧モジュールが検証するステップと、
前記コンピュータのリセットに応答して前記第1の旧モジュールから前記第1の新モジュールにジャンプするステップと、
前記第1の新モジュールに続いて実行される前記第2の新モジュールが前記第1の新モジュールを前記第1の旧モジュールが格納されていた記憶領域に書き込むステップと
を含む処理を実行させるコンピュータ・プログラム。 In order to update the non-volatile memory storing the first old module and the second old module with the first new module and the second new module,
The first old module verifying the integrity of the first new module and the second new module written to overwrite the second old module;
Jumping from the first old module to the first new module in response to a reset of the computer;
A computer for executing a process including a step of writing the first new module in a storage area in which the first old module is stored, the second new module executed following the first new module. ·program.
前記システム・ブロックに書き込まれた前記第2の新モジュールと前記ステージング・ブロックに書き込まれた前記第1の新モジュールの完全性を前記旧モジュールが検証するステップと、
プロセッサがリセットされたときに前記第1の旧モジュールが実行を完了する前に記第1の新モジュールを実行するステップと、
前記第1の新モジュールに続いて実行される前記第2の新モジュールが前記第1の新モジュールを前記ブート・ブロックに書き込むステップと
を有する処理を実行させるコンピュータ・プログラム。
A computer for updating a non-volatile memory in which a boot block for storing a first old module, a system block for storing a second old module, and a staging block for storing the first old module are defined. ,
The old module verifies the integrity of the second new module written to the system block and the first new module written to the staging block;
Executing the first new module before the first old module completes execution when the processor is reset;
A computer program causing the second new module to be executed subsequent to the first new module to execute a process including writing the first new module to the boot block.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2012016237A JP5465738B2 (en) | 2012-01-30 | 2012-01-30 | System firmware update method and computer |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2012016237A JP5465738B2 (en) | 2012-01-30 | 2012-01-30 | System firmware update method and computer |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2013156799A true JP2013156799A (en) | 2013-08-15 |
JP5465738B2 JP5465738B2 (en) | 2014-04-09 |
Family
ID=49051924
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2012016237A Active JP5465738B2 (en) | 2012-01-30 | 2012-01-30 | System firmware update method and computer |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP5465738B2 (en) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2015093937A (en) * | 2013-11-12 | 2015-05-18 | 株式会社豊田中央研究所 | Metal complex, dye-sensitized solar cell, dye-sensitized solar cell module, method for producing metal complex and ligand |
US9703635B2 (en) | 2014-05-22 | 2017-07-11 | Lenovo (Singapore) Pte. Ltd. | Method, computer program, and computer for restoring set of variables |
JP2021089726A (en) * | 2019-11-17 | 2021-06-10 | 新唐科技股▲ふん▼有限公司 | Computer system, security management method thereof, and computer software product |
CN113377409A (en) * | 2021-06-21 | 2021-09-10 | 西安超越申泰信息科技有限公司 | Method, equipment and storage medium for stabilizing BIOS update |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2000187588A (en) * | 1998-12-21 | 2000-07-04 | Nikon Corp | Program rewriting device |
JP2006221354A (en) * | 2005-02-09 | 2006-08-24 | Internatl Business Mach Corp <Ibm> | Information update method, program and information processor |
JP2006522377A (en) * | 2003-04-10 | 2006-09-28 | インターナショナル・ビジネス・マシーンズ・コーポレーション | Determining physical presence in a trusted platform |
JP2007115066A (en) * | 2005-10-21 | 2007-05-10 | Meidensha Corp | Boot program rewriting method for digital terminal |
JP2007257197A (en) * | 2006-03-22 | 2007-10-04 | Fujitsu Ltd | Information processing apparatus having start verification function |
WO2008065010A1 (en) * | 2006-11-28 | 2008-06-05 | International Business Machines Corporation | Core root of trust measurement (crtm) provision in computer systems |
-
2012
- 2012-01-30 JP JP2012016237A patent/JP5465738B2/en active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2000187588A (en) * | 1998-12-21 | 2000-07-04 | Nikon Corp | Program rewriting device |
JP2006522377A (en) * | 2003-04-10 | 2006-09-28 | インターナショナル・ビジネス・マシーンズ・コーポレーション | Determining physical presence in a trusted platform |
JP2006221354A (en) * | 2005-02-09 | 2006-08-24 | Internatl Business Mach Corp <Ibm> | Information update method, program and information processor |
JP2008523494A (en) * | 2005-02-09 | 2008-07-03 | レノボ・シンガポール・プライベート・リミテッド | Information updating method, program, and information processing apparatus |
JP2007115066A (en) * | 2005-10-21 | 2007-05-10 | Meidensha Corp | Boot program rewriting method for digital terminal |
JP2007257197A (en) * | 2006-03-22 | 2007-10-04 | Fujitsu Ltd | Information processing apparatus having start verification function |
WO2008065010A1 (en) * | 2006-11-28 | 2008-06-05 | International Business Machines Corporation | Core root of trust measurement (crtm) provision in computer systems |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2015093937A (en) * | 2013-11-12 | 2015-05-18 | 株式会社豊田中央研究所 | Metal complex, dye-sensitized solar cell, dye-sensitized solar cell module, method for producing metal complex and ligand |
US9703635B2 (en) | 2014-05-22 | 2017-07-11 | Lenovo (Singapore) Pte. Ltd. | Method, computer program, and computer for restoring set of variables |
JP2021089726A (en) * | 2019-11-17 | 2021-06-10 | 新唐科技股▲ふん▼有限公司 | Computer system, security management method thereof, and computer software product |
JP7022809B2 (en) | 2019-11-17 | 2022-02-18 | 新唐科技股▲ふん▼有限公司 | Computer systems, their safety management methods, and computer software products |
CN113377409A (en) * | 2021-06-21 | 2021-09-10 | 西安超越申泰信息科技有限公司 | Method, equipment and storage medium for stabilizing BIOS update |
CN113377409B (en) * | 2021-06-21 | 2024-03-01 | 超越科技股份有限公司 | Method, equipment and storage medium for stabilizing BIOS updating |
Also Published As
Publication number | Publication date |
---|---|
JP5465738B2 (en) | 2014-04-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108399339B (en) | Trusted starting method based on security chip | |
CN104156659B (en) | Embedded system secure start method | |
US8904162B2 (en) | Methods and apparatus for performing secure BIOS upgrade | |
JP6054908B2 (en) | Method for repairing variable sets, computer program and computer | |
US7921286B2 (en) | Computer initialization for secure kernel | |
CN103718165B (en) | BIOS flash memory attack protection and notice | |
CN105637479B (en) | Method for modifying computer program, computer system and computer readable medium | |
US8490179B2 (en) | Computing platform | |
JP5889933B2 (en) | Method for preventing malfunction of computer, computer program, and computer | |
US20140250290A1 (en) | Method for Software Anti-Rollback Recovery | |
JP5307196B2 (en) | Providing a system integrated with silicon code | |
JP2006172376A (en) | Information processing system, program, and information processing method | |
US20080168275A1 (en) | Securely Recovering a Computing Device | |
TWI570591B (en) | Allowing use of a test key for a bios installation | |
KR100872175B1 (en) | Secure booting apparatus and method of mobile platform using TPM | |
US9448785B1 (en) | System and method updating full disk encryption software | |
WO2020037613A1 (en) | Security upgrade method, apparatus and device for embedded program, and storage medium | |
JP2021179982A (en) | Security system and method for preventing roll-back attack on silicon device firmware | |
JP4947239B2 (en) | Information processing apparatus having configuration change verification function and control method thereof | |
JP5465738B2 (en) | System firmware update method and computer | |
CN113360914A (en) | BIOS updating method, system, equipment and medium | |
Bashun et al. | Too young to be secure: Analysis of UEFI threats and vulnerabilities | |
CN115329321A (en) | Firmware starting method, chip and computing device | |
CN117932623B (en) | A method and system for securely booting an operating system | |
EP3440586B1 (en) | Method for write-protecting boot code if boot sequence integrity check fails |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20131008 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20131219 |
|
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: 20140121 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20140122 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 5465738 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 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 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |