JP4837985B2 - System and method for securely booting a computer having a trusted processing module - Google Patents

System and method for securely booting a computer having a trusted processing module Download PDF

Info

Publication number
JP4837985B2
JP4837985B2 JP2005353934A JP2005353934A JP4837985B2 JP 4837985 B2 JP4837985 B2 JP 4837985B2 JP 2005353934 A JP2005353934 A JP 2005353934A JP 2005353934 A JP2005353934 A JP 2005353934A JP 4837985 B2 JP4837985 B2 JP 4837985B2
Authority
JP
Japan
Prior art keywords
computer
secret
value
boot
readable storage
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.)
Active
Application number
JP2005353934A
Other languages
Japanese (ja)
Other versions
JP2006323814A (en
Inventor
アンソニー シュワルツ ジュニア ジェームズ
ハンター ジェミー
ディー.シュワルツ ジョナサン
ディー.レイ ケニス
イングランド ポール
ハンフィリーズ ラッセル
トム ステファン
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Microsoft Corp
Original Assignee
Microsoft Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Microsoft Corp filed Critical Microsoft Corp
Publication of JP2006323814A publication Critical patent/JP2006323814A/en
Application granted granted Critical
Publication of JP4837985B2 publication Critical patent/JP4837985B2/en
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/22Microcontrol or microprogram arrangements
    • G06F9/24Loading of the microprogram
    • 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
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00

Landscapes

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

Description

本発明は、一般に、コンピューティングの分野に関する。より具体的には、本発明は、ブート中に用いられるデータの無許可の修正を防止し、ブート中にのみ必要とされるリソースへのブート後のアクセスを防止することによって、コンピュータのセキュリティを強化するためのシステムおよび方法を提供する。   The present invention relates generally to the field of computing. More specifically, the present invention improves computer security by preventing unauthorized modification of data used during boot and preventing post-boot access to resources that are only needed during boot. Systems and methods for enhancing are provided.

セキュリティは、コンピュータ・ユーザにとって、広く行きわたった問題になった。ウイルス、ワーム、トロイの木馬、個人情報の盗難、ソフトウェア、およびメディア・コンテンツの違法コピー、およびデータ破壊の脅威を使用する恐喝が横行している。オペレーティング・システムは、こうした攻撃を防ぐために、多数のセキュリティ機能を提供することができる。しかしながら、オペレーティング・システムのセキュリティ機能は、これらがディスエーブルにされた場合に無効になる。こうしたセキュリティ機能をディスエーブルにすることが試みられた場合、オペレーティング・システムのブート中に試みられる可能性が高い。ブート後、オペレーティング・システムは、該オペレーティング・システム自体および該オペレーティング・システムが管理するデータおよびプロセスを保護するために、多数の適切な機能を所定位置に有することができる。しかしながら、ブート中には、まだ、これらの機能を初期化することができず、バイパスおよび/または不正変更に対して無防備である。   Security has become a widespread problem for computer users. Depressions that use viruses, worms, Trojan horses, identity theft, illegal copying of software and media content, and threats of data corruption are rampant. Operating systems can provide a number of security features to prevent such attacks. However, operating system security features are disabled when they are disabled. If an attempt is made to disable these security features, it is likely to be attempted during the operating system boot. After booting, the operating system can have a number of suitable functions in place to protect the operating system itself and the data and processes managed by the operating system. However, during booting, these functions cannot yet be initialized and are vulnerable to bypass and / or tampering.

現在のところオペレーティング・システムによって用いられる例示的なセキュリティ機能は、暗号化されたファイル・システム(EFS)および信頼できるプラットフォーム・モジュール(TPM)である。EFS機能は、選択された機密データを暗号化する。オペレーティング・システムは、ユーザがログオンするまでEFSデータにアクセスする必要がない。オペレーティング・システムのブート後、ユーザは、ログオン・プロセスに対してパスワードを提供することができる。このパスワードは、EFSデータを解読することができる解読鍵へのアクセスを許可するものである。一例として、MICROSOFT WINDOWS(登録商標)オペレーティング・システムは、SYSKEYの可用性に依存して、これらのプロセスの正しい性能を行うことによって、種々のプロセスを保護するために用いられるシステム・キー即ち「SYSKEY」を使用する。例えば、オペレーティング・システムによって暗号化された形で格納されるEFSデータを解読するのに必要とされる鍵を、SYSKEYから導き出すことが可能である。   The exemplary security functions currently used by the operating system are the encrypted file system (EFS) and the trusted platform module (TPM). The EFS function encrypts the selected confidential data. The operating system does not need to access EFS data until the user logs on. After the operating system boots, the user can provide a password for the logon process. This password permits access to a decryption key that can decrypt the EFS data. As an example, the MICROSOFT WINDOWS® operating system relies on the availability of SYSKEY to perform the correct performance of these processes, thereby providing a system key or “SYSKEY” that is used to protect various processes. Is used. For example, the key required to decrypt EFS data stored in encrypted form by the operating system can be derived from SYSKEY.

したがって、制限的な動作を行うのに必要とされる鍵は、ログオン手続きによって保護される。一般に、ユーザは、システムの使用を開始する前に、ユーザ自身を正しく認証しなければならない。鍵の使用は、ユーザが正しく認証する場合にのみイネーブルにされる。しかしながら、鍵へのアクセスを保護するためにログオン手続きを用いることは、オペレーティング・システムが正しいログオン手続きを読み込んだこと、および稼動中の非認識(rogue)コードによって、該鍵の使用が他の方法でイネーブルにされなかったことを仮定する。正しいオペレーティング・システム・ローダーの代わりに、ブート中に非認識オペレーティング・システム・ローダーを使用した場合、この非認識ローダーは、オペレーティング・システムを用いて非認識ログオン・プログラムを読み込ませることがある。この非認識ログオン・プログラムは、適正なパスワードの入力なしに、EFS鍵の使用をイネーブルにすることができる。オペレーティング・システムを読み込むことで、セキュリティ侵害の機会がもたらされるので、こうした状況で鍵を保護するには、オペレーティング・システムの読み込みを正しく行うことが確認できる状況のもとで、オペレーティング・システムを読み込むことが必要である。   Thus, the keys required to perform restrictive actions are protected by the logon procedure. In general, a user must correctly authenticate himself before starting to use the system. Key usage is only enabled if the user authenticates correctly. However, using a logon procedure to protect access to the key means that the operating system has read the correct logon procedure and that the use of the key is another way because of the running rogue code. Suppose that it was not enabled by If an unrecognized operating system loader is used during boot instead of the correct operating system loader, the unrecognized loader may cause the operating system to load an unrecognized logon program. This unrecognized logon program can enable the use of EFS keys without entering a proper password. Loading the operating system presents an opportunity for a security breach, so to protect the key in these situations, load the operating system under conditions that ensure that the operating system loads correctly. It is necessary.

EFSは、ブートされたオペレーティング・システムによってサポートされる機能であるので、ブート・プロセス中に漏れる特定のデータの保護に、同じような効果はない。EFSは、幾つかのシステム・サービスに必要とされる秘密、ネットワーク・サービス(例えば、個人のサーバまたは公開ウェブ・サーバ)によって使用されるデータベース、および企業のドメインに接続するためのRAS資格証明書のような、ユーザがログオンする前に必要とされるユーザ・データを保護することができない。   Since EFS is a function supported by the booted operating system, it has no similar effect on protecting certain data that leaks during the boot process. EFS is a secret required for some system services, databases used by network services (eg, personal servers or public web servers), and RAS credentials for connecting to corporate domains The user data required before the user logs on cannot be protected.

信頼できる処理モジュール(TPM)は、コンピュータ上で動作するソフトウェアの信頼性を保証する。一般に、このことは、信頼できるデータの測定値をTPMにサブミットし、TPMに依存して該測定値がどんなものであるべきかを判断することによって達成される。コンピュータ・セキュリティは、多くの場合、ソフトウェア・コンポーネントの動作を予測できることに依存している。一般に、システムのセキュリティは、周知の良好な状態から進行する、動作が理解されている周知のプログラムが、予測可能な方法で動作するという前提から生じる。逆に、一般に、周知のプログラムを交換するかまたは変更することによって、あるいはその動作が理解されていない状態でプログラムを実行することによって、セキュリティの妨害(その設計者が考えた以外の方法でコンピュータ・システムを動作させることを含むことができる)を実現することができる。したがって、コンピューティング環境にセキュリティを提供する1つの態様は、周知のプログラムが用いられ、該プロセスが周知の良好な状態から進行することを確認するステップを含む。データのハッシュ値のような測定値は、以前にTPM内に秘匿された(sealed)値と合致するので、TPMは、そのデータがどんなものであるべきかを検証することによって、このことを達成する。   A trusted processing module (TPM) ensures the reliability of software running on the computer. In general, this is accomplished by submitting reliable data measurements to the TPM and relying on the TPM to determine what the measurement should be. Computer security often relies on being able to predict the behavior of software components. In general, system security arises from the premise that well-known programs that operate from a well-known good state operate in a predictable manner. On the contrary, in general, by replacing or changing a well-known program, or by executing the program in a state where its operation is not understood, a security breach (in a way other than that designed by the designer) (It can include operating the system). Thus, one aspect of providing security for a computing environment includes the step of confirming that a well-known program is used and that the process proceeds from a well-known good state. Since measurements such as the hash value of the data match the previously sealed value in the TPM, the TPM accomplishes this by verifying what the data should be. To do.

EFSと同様に、TPMは、ブートされたコンピュータ上で動作しているアプリケーションの完全性に関して一定の保証を提供するようにうまく使用された。TPMに対して、多数の付加的な制限も存在する。例えば、標準的な方法でTPMを用いるマシンは、現場で再構成することができない(例えば、会議中にネットワークカードをラップトップに挿入することなど)。TPMは、初期化されたオペレーティング・システムに、厳しい制限と複雑性を与える。   Like EFS, TPM has been successfully used to provide certain guarantees regarding the integrity of applications running on booted computers. There are also a number of additional limitations on the TPM. For example, a machine that uses a TPM in a standard way cannot be reconfigured in the field (eg, inserting a network card into a laptop during a meeting, etc.). TPM places severe limitations and complexity on the initialized operating system.

今日の大部分のTPMは、現在のところ、非特許文献1において入手可能な、「Trusted Platform Module(TPM)仕様バージョン1.2」という名称のTRUSTED COMPUTING GROUP(登録商標)(TCG)規格に準拠している。TPMは、プラットフォームにより実行されるコードの信頼を確立するために、コンピューティング・プラットフォームに組み込むことができるサブシステムである。セキュリティおよび暗号コミュニティが、セキュリティを提供するための機構を評価することを可能にし、顧客の理解および新しいソフトウェア機能の信頼を深めるので、信頼のおけるコードを確立するための機構の標準化は、有益なことである。このことはまた、TCG(登録商標)によって考えられ、促進されるような規格の実装および改良におけるイノベーションを促進する。TCG(登録商標)仕様に述べられるように、「製造者は、様々な能力およびコストポイントを有するサブシステムをインストールすることにより、市場で競合するであろう」。   Most of today's TPMs are currently compliant with the TRUSTED COMPUTEING GROUP (TCG) standard named “Trusted Platform Module (TPM) Specification Version 1.2” available in Non-Patent Document 1 is doing. A TPM is a subsystem that can be incorporated into a computing platform to establish trust in code executed by the platform. Standardization of mechanisms for establishing reliable code is beneficial, as it allows the security and cryptographic community to evaluate mechanisms for providing security and deepens customer understanding and trust in new software features. That is. This also promotes innovation in the implementation and improvement of standards as considered and promoted by TCG®. “Manufacturers will compete in the market by installing subsystems with varying capabilities and cost points,” as stated in the TCG® specification.

オペレーティング・システムによって用いられる上記の例示的なセキュリティ機構は、ブートをセキュリティ保護するための幾つかの技術によって補われる。マシンのグローバル・パスワードを用いて秘密を保護するために、マシンのパスワード認証を用いることができる。しかしながら、このことは、マシンがブートする前にパスワードを入力することを必要とする。マシンの多数のユーザがパスワードを共有しなければならないことが、第1のセキュリティ欠陥である。第2の欠陥は、パスワードの入力のための典型的なユーザ・インターフェースを与えることができないので、使いやすさの問題が生じることである。このことは、タブレット型PCの場合、特に面倒である。マシンのグローバル・パスワードは、紙に書かれ、マシンの前に置かれることが多い。したがって、パスワードは有効であるが、高い頻度で望まれるタイプの高度なユーザ保護を可能にするものではない。   The above exemplary security mechanism used by the operating system is supplemented by several techniques for securing boots. Machine password authentication can be used to protect the secret using the machine's global password. However, this requires entering a password before the machine boots. The first security flaw is that many users of the machine must share a password. A second flaw is that ease of use issues arise because a typical user interface for password entry cannot be provided. This is particularly troublesome for tablet PCs. Machine global passwords are often written on paper and placed in front of the machine. Thus, while passwords are valid, they do not allow the type of advanced user protection that is frequently desired.

第2に、秘密は、取り外し可能なメディア上に格納することができる。また、この特徴は、セキュリティの観点から理論上有効なものであるが、実際は問題になることが多い。この場合の基本的な問題は、使用に適したシステムの働きを保証するために、取り外し可能なメディアが、ほとんどの場合マシンの内部に残されるという点である。
安全なオペレーティング・システム・ブートの適切な保証がない場合、コンピュータ上のデータを保護するユーザの能力は、該コンピュータ上で動作しているオペレーティング・システムのセキュリティ機能ではなく、こうしたコンピュータが固定されている建物のセキュリティによって制限される。ラップトップの人気と、コンピュータの盗難、特にラップトップの盗難の増加につれて、コンピュータが窃盗犯の手に入ったときに、オペレーティング・システムのセキュリティが危険にさらされないままであることを可能にする解決法が好ましい。
Second, the secret can be stored on removable media. This feature is theoretically effective from the viewpoint of security, but it is often a problem in practice. The basic problem in this case is that removable media is most often left inside the machine to ensure proper system operation for use.
Without the proper assurance of a secure operating system boot, the user's ability to protect data on a computer is not the security features of the operating system running on the computer, Limited by building security. With the popularity of laptops and theft of computers, especially laptop theft, a solution that allows operating system security to remain un compromised when a computer is in the hands of a thief The method is preferred.

ブート・プロセスをセキュリティ保護するためにTPMを用いるシステムおよび方法は、大部分が未開拓のままである。ブート・プロセスにおいてTPMを使用することに加えて、ブート・プロセスの保守を行い、こうしたコンピュータ上のデータへのアクセスを制御するためのシステムおよび方法が、有用であることが判明した。こうしたシステムおよび方法の説明は、特許文献1、特許文献2、および特許文献3に見出すことができる。また、特許文献4も全体的に本発明に関連している。   Systems and methods that use TPM to secure the boot process remain largely unexplored. In addition to using TPM in the boot process, systems and methods for maintaining the boot process and controlling access to data on such computers have proven useful. A description of such systems and methods can be found in US Pat. Patent Document 4 is also generally related to the present invention.

に出願された「Systems and Methods for Boot Recovery in a Secure Boot Process on a Computer with a Hardware Security Module」という名称の米国特許第 号(代理人整理番号MSFT4634/311226.01号)No. 34 / T. No. 34 / T. No. 34 / T. No. 34 / T. No. 34 / T. No. 34 / T. No. 34 / T. No. 34 / T. 46 / T. No. 34 / T. 46 / T. に出願された「Systems and Methods for Updating a Secure Boot Process on a Computer with a Hardware Security Module」という名称の米国特許第 号(代理人整理番号MSFT4784/312086.01号)U.S. Patent No. (Attorney Docket No. MSFT8601 / Attorney Docket No.MSFT8601) entitled "Systems and Methods for Updating a Secure Boot Process on a Computer with a Hardware Security Module" に出願された「Systems and Methods for Controlling Access to Data on a Computer with a Secure Boot Process」という名称の米国特許出願第___号(代理人整理番号MSFT4635/311227.01号)US Patent Application No. ___ (Attorney Docket No. MSFT4635 / 31227.) Entitled "Systems and Methods for Controlling Access to Data on a Computer with a Secure Boot Process" 2004年6月30日に出願された「Systems and method for protected operating system boot using state validation」という名称の米国特許出願番号第10/882,134号US patent application Ser. No. 10 / 882,134 filed Jun. 30, 2004, entitled “Systems and method for protected operating system boot use state validation” https://www.trustedcomputinggroup.org/homehttps: // www. trustedcomputing group. org / home

上記に鑑みて、本発明は、ソフトウェア・コンポーネントの完全性メトリックを検証するための信頼できるプラットフォーム・モジュール(TPM)を有するコンピュータを、安全にブートするためのシステムおよび方法を提供するものである。本発明と共に用いるTPMは、秘密を、複数のプラットフォーム構成レジスタ(PCR)値に秘匿することができる。PCR値は、ブート・コンポーネントを測定することによって取得することができる。秘密が秘匿された時点よりブート・コンポーネントが修正されていない場合には、適切なシステム・ブートのために、秘密を取得することができる。ブート・コンポーネントの予想されるハッシュ値をPCR内に置くことができ、該予想される値が正しい場合に秘密を開示することができる。次に、秘密を用いて、ディスク上の場所から実際のブート・コンポーネントを解読することができる。解読されたブート・コンポーネントのハッシュ値を計算し、その結果を予想される値と比較することができる。別の例は、ブート・プロセスの異なる時点において取得可能な、PCR値に秘匿することができる2つの秘密を使用することを伴う。第1の秘密は、第1の複数のPCR値が読み込まれたときのみアクセス可能となり、第2の秘密は、第1の複数の値の1つまたは複数が新しい値と置き換えられた後にのみアクセス可能となり、これにより、該第2の秘密へのアクセスを許可するために、必然的に第1の秘密への更なるアクセスが無効にされる。本発明の他の利点および特徴が、以下に説明される。   In view of the above, the present invention provides a system and method for securely booting a computer having a trusted platform module (TPM) for verifying the integrity metrics of software components. The TPM used with the present invention can conceal secrets in multiple platform configuration register (PCR) values. PCR values can be obtained by measuring boot components. If the boot component has not been modified since the secret was hidden, the secret can be obtained for proper system boot. The expected hash value of the boot component can be placed in the PCR and the secret can be disclosed if the expected value is correct. The secret can then be used to decrypt the actual boot component from the location on the disk. A hash value of the decrypted boot component can be calculated and the result compared to the expected value. Another example involves using two secrets that can be concealed in the PCR value that can be obtained at different points in the boot process. The first secret is accessible only when the first plurality of PCR values are read, and the second secret is accessed only after one or more of the first plurality of values are replaced with new values. Is enabled, which necessarily disables further access to the first secret to allow access to the second secret. Other advantages and features of the invention are described below.

本発明に従ってコンピュータを安全にブートするためのシステムおよび方法が、添付図面を参照してさらに説明される。   The system and method for securely booting a computer according to the present invention will be further described with reference to the accompanying drawings.

本発明の種々の実施形態の完全な理解を提供するために、以下の説明および図面において特定の具体的な詳細が述べられる。しかしながら、本発明の種々の実施形態を不必要に分かりにくくするのを避けるために、以下の開示において、コンピューティングおよびソフトウェア技術と関連することが多い特定の公知の詳細については述べられない。さらに、関連分野の当業者であれば、下記に記載される詳細の1つまたは複数がなくても本発明の他の実施形態を実施できることを理解するであろう。最後に、以下の開示においては、ステップおよびシーケンスを参照して種々の方法が説明されるが、このような説明は、本発明の実施形態を明確に実施するためのものであり、ステップおよび該ステップのシーケンスを本発明の実施に必要なものとみなすべきではない。   Certain specific details are set forth in the following description and drawings in order to provide a thorough understanding of various embodiments of the invention. However, in order to avoid unnecessarily obscuring the various embodiments of the present invention, certain well-known details that are often associated with computing and software technology are not set forth in the following disclosure. Moreover, those skilled in the relevant art will understand that other embodiments of the invention may be practiced without one or more of the details described below. Finally, in the following disclosure, various methods are described with reference to steps and sequences, which are for the purpose of clearly implementing embodiments of the present invention. The sequence of steps should not be deemed necessary for the practice of the present invention.

以下の詳細な説明は、一般に、上述のような本発明の概略に従っており、必要に応じて、本発明の種々の態様および実施形態の定義をさらに説明し、展開している。この目的のために、この詳細な説明は、まず、本発明に関連したソフトウェアおよび/またはハードウェア技術を実装するのに適した、図1のコンピューティング環境について述べる。現代のコンピューティング技術が、多数の別個の装置にわたって実施できることを強調するために、ネットワーク化されたコンピューティング環境が、基本的なコンピューティング環境の拡張として図2に示される。   The following detailed description generally follows the summary of the invention as described above, and further describes and develops definitions of various aspects and embodiments of the invention as appropriate. For this purpose, this detailed description will first describe the computing environment of FIG. 1 suitable for implementing software and / or hardware techniques related to the present invention. To emphasize that modern computing technology can be implemented across a number of separate devices, a networked computing environment is shown in FIG. 2 as an extension of the basic computing environment.

次に、ハードウェア・セキュリティ・モジュール(HSM)を利用するコンピューティング・プラットフォームの概要が、図3と関連して提供され、どのように測定値をHSMにサブミットすることができるか、これらの測定値が正しい場合、どれを構成して鍵をシステム・リソースに戻すことができるかを説明する。図3に示されるHSMは、当業者により容易に認識されるHSMであるTPMであることに注意されたい。また、ブート時またはその後に関与するソフトウェア・コンポーネントの更なる処理は、TPMによって保護される秘密の開示を条件として行うことができる。次に、ブート・プロセスにおけるソフトウェア・コンポーネントによるTPMの使用が、図4に示される。図5は、図4のもののようなソフトウェア・コンポーネントによってTPMを使用するための1つの一般的なパターンを示しており、そこでは、次のソフトウェア・コンポーネントの読み込みおよび実行は、次のコンポーネントの実行可能なコードのハッシュ値の確認を条件としている。   Next, an overview of computing platforms utilizing a hardware security module (HSM) is provided in conjunction with FIG. 3 to see how measurements can be submitted to the HSM. If the value is correct, explain what can be configured to return the key to system resources. Note that the HSM shown in FIG. 3 is a TPM that is readily recognized by those skilled in the art. Also, further processing of software components involved at boot time or thereafter may be subject to a secret disclosure protected by the TPM. Next, the use of the TPM by the software component in the boot process is illustrated in FIG. FIG. 5 illustrates one general pattern for using a TPM by a software component such as that of FIG. 4, where loading and execution of the next software component is execution of the next component. The condition is to check the hash value of a possible code.

図5a、図6、図7、および図8においては、ブート・プロセスにおけるプラットフォーム構成レジスタ(PCR)と呼ばれるTPMレジスタの使用の態様が、より詳細に説明される。図5aは、特定の組のブート・コンポーネントが所定位置にない限り、ブート・プロセスが進行できないことを保証するためのシステムおよび方法を示す。図6は、コンピュータをうまくブートすることが、例示的なコンポーネント即ちブート・マネージャをうまく暗号化し、測定することに結びついている、図5aに示されるシステムおよび方法の一例を実証している。図7および図8は、ブート・プロセスがオペレーティング・システムをうまく起動し、これらのリソース(通常、1つまたは複数のディスク・パーティション上に常駐する)を必要としなくなった後、ブートのために必要とされるシステム・リソースへのアクセスを防止するための機構を示す。   In FIG. 5a, FIG. 6, FIG. 7 and FIG. 8, aspects of the use of TPM registers called platform configuration registers (PCR) in the boot process are described in more detail. FIG. 5a illustrates a system and method for ensuring that the boot process cannot proceed unless a particular set of boot components are in place. FIG. 6 demonstrates an example of the system and method shown in FIG. 5a, where successfully booting a computer is associated with successfully encrypting and measuring an exemplary component or boot manager. FIGS. 7 and 8 illustrate the need for booting after the boot process successfully boots the operating system and no longer requires these resources (typically residing on one or more disk partitions). Indicates a mechanism to prevent access to system resources

例示的なコンピューティングおよびネットワーク化環境
図1のコンピューティング・システム環境100は、適切なコンピューティング環境の一例にすぎず、本発明の使用範囲または機能に関して何らかの制限を示唆するように意図されるものではない。コンピューティング環境100は、例示的なオペレーティング環境100に示されるコンポーネントのいずれか1つまたは組み合わせに対して何らかの依存関係または要件を有するものとして解釈すべきでもない。
Exemplary Computing and Networking Environment The computing system environment 100 of FIG. 1 is only one example of a suitable computing environment and is intended to suggest any limitation as to the scope of use or functionality of the invention. is not. Neither should the computing environment 100 be interpreted as having any dependency or requirement on any one or combination of components illustrated in the exemplary operating environment 100.

本発明は、多数の他の汎用または特殊用途コンピューティング・システム環境または構成と共に動作可能である。本発明と共に用いるのに適した周知のコンピューティング・システム、環境、および/または構成の例には、これらに限定されるものではないが、パーソナル・コンピュータ、サーバ・コンピュータ、ハンドヘルドまたはラップトップ型装置、マルチプロセッサ・システム、マイクロプロセッサ・ベースのシステム、セットトップボックス、プログラム可能な家庭用電化製品、ネットワークPC、ミニコンピュータ、メインフレーム・コンピュータ、上記のシステムまたは装置のいずれかを含む分散型コンピューティング環境などが含まれる。   The invention is operational with numerous other general purpose or special purpose computing system environments or configurations. Examples of well-known computing systems, environments, and / or configurations suitable for use with the present invention include, but are not limited to, personal computers, server computers, handheld or laptop type devices. , Multiprocessor systems, microprocessor-based systems, set-top boxes, programmable consumer electronics, network PCs, minicomputers, mainframe computers, distributed computing including any of the above systems or devices Environment etc. are included.

本発明は、コンピュータによって実行される、プログラム・モジュールのようなコンピュータ実行可能命令の一般的文脈に即して実装することができる。一般に、プログラム・モジュールは、特定のタスクを実行するかまたは特定の抽象データの型を実装するルーチン、プログラム、オブジェクト、コンポーネント、データ構造などを含む。本発明はまた、通信ネットワークを通してリンクされるリモート処理装置によってタスクが実行される分散型コンピューティング環境においても実施することができる。分散型コンピューティング環境において、プログラム・モジュールは、メモリ記憶装置を含む、ローカルおよびリモート・コンピュータ・ストレージ・メディアの両方に配置することができる。   The invention can be implemented in the general context of computer-executable instructions, such as program modules, being executed by a computer. Generally, program modules include routines, programs, objects, components, data structures, etc. that perform particular tasks or implement particular abstract data types. The invention may also be practiced in distributed computing environments where tasks are performed by remote processing devices that are linked through a communications network. In a distributed computing environment, program modules can be located in both local and remote computer storage media including memory storage devices.

図1を参照すると、本発明を実施するための例示的なシステムが、コンピュータ121の形態の汎用コンピューティング装置を含む。コンピュータ121のコンポーネントは、これらに限られるものではないが、処理ユニット101、システム・メモリ103、および、システム・メモリを含む種々のシステム・コンポーネントを処理ユニット101に結合させるシステム・バス102を含むことができる。システム・バス102は、メモリ・バスまたはメモリ・コントローラ、周辺バス、および種々のバス・アーキテクチャのいずれかを用いるローカル・バスを含むバス構造体のうちの幾つかのタイプのいずれかとすることができる。限定ではなく一例として、こうしたアーキテクチャは、業界標準アーキテクチャ(ISA)バス、マイクロ・チャネル・アーキテクチャ(MCA)バス、Enhanced ISA(EISA)バス、Video Electronics Standard Association(VESA)ローカル・バス、およびメザニン・バスとしても知られているPeripheral Component Interconnect(PSI)バスを含む。   With reference to FIG. 1, an exemplary system for implementing the invention includes a general purpose computing device in the form of a computer 121. The components of the computer 121 include, but are not limited to, a processing unit 101, a system memory 103, and a system bus 102 that couples various system components including the system memory to the processing unit 101. Can do. The system bus 102 can be any of several types of bus structures including a memory bus or memory controller, a peripheral bus, and a local bus using any of a variety of bus architectures. . By way of example, and not limitation, such architectures include industry standard architecture (ISA) bus, micro channel architecture (MCA) bus, Enhanced ISA (EISA) bus, Video Electronics Standard Association (VESA) local bus, and mezzanine bus Including the Peripheral Component Interconnect (PSI) bus, also known as

HSMは図1に示されていないが、こうした装置は、本発明を実施するコンピュータの一部とすることができる。以下に図3を参照して説明されるように、図3は、コンピュータのコンポーネントと一体化されたHSM(図3の実施形態におけるTPM)を示す。代表的な環境においては、一定範囲のセキュリティ機能を提供するために、マザーボードに溶接されたハードウェアか、あるいはチップセットまたは図1のもののようなコンピュータの他のハードウェア・コンポーネントと一体化されたハードウェア・チップとすることができる。しかしながら、本明細書の目的上、HSMは、ハードウェアまたはソフトウェア内に実装することができ、本発明の動作のために必要な信頼できる機能、即ちHSMにサブミットされる測定値の比較および検証、並びに暗号化されたメモリ・リソースへのアクセスのための鍵の開示できる機能ユニットとして広く定義されることを理解すべきである。TPMは、業界標準TPMのためのTCG(登録商標)仕様に説明されるような、一定範囲の他の機能を提供することもできる。   Although the HSM is not shown in FIG. 1, such a device can be part of a computer implementing the present invention. As described below with reference to FIG. 3, FIG. 3 shows an HSM (TPM in the embodiment of FIG. 3) integrated with the components of the computer. In typical environments, hardware welded to the motherboard or integrated with other hardware components of the computer such as the chipset or that of FIG. 1 to provide a range of security functions. It can be a hardware chip. However, for the purposes of this specification, the HSM can be implemented in hardware or software and is a reliable function necessary for the operation of the present invention, i.e., comparison and verification of measurements submitted to the HSM, It should also be understood that it is broadly defined as a disclosing functional unit of a key for access to an encrypted memory resource. The TPM may also provide a range of other functions, as described in the TCG® specification for the industry standard TPM.

コンピュータ121は、一般に、種々のコンピュータ可読メディアを含む。コンピュータ可読メディアは、コンピュータ121によってアクセスすることができる何らかの使用可能なメディアとすることができ、揮発性メディアおよび不揮発性メディアの両方、並びに取り外し可能なメディアおよび取り外し不能なメディアの両方を含む。限定ではなく一例として、コンピュータ可読メディアは、コンピュータ・ストレージ・メディアおよび通信メディアを含むことができる。コンピュータ・ストレージ・メディアは、コンピュータ可読命令、データ構造、プログラム・モジュール、または他のデータのような情報の格納のための何らかの方法または技術に実装される揮発性メディアおよび不揮発性メディア、並びに取り外し可能メディアおよび取り外し不能メディアの両方を含む。コンピュータ・ストレージ・メディアは、これらに限られるものではないが、RAM、ROM、EEPROM、フラッシュ・メモリ、または他のメモリ技術、CD−ROM、デジタル多用途ディスク(DVD)または他の光学ディスク記憶装置、磁気カセット、磁気テープ、磁気ディスク記憶装置または他の磁気記憶装置、あるいは所望の情報を格納するために用いることができ、コンピュータ121によってアクセスできる他の何らかのメディアを含む。通信メディアは、一般に、コンピュータ可読命令、データ構造、プログラム・モジュール、あるいは搬送波のような変調されたデータ信号または他の搬送機構における他のデータを具体化し、何らかの情報伝達メディアを含む。「変調されたデータ信号」という用語は、信号内の情報をエンコードするような方法で設定または変更された特性の1つまたは複数を有する信号を意味する。限定ではなく一例として、通信メディアは、有線ネットワークまたは直接有線接続のような有線メディア、音響、RF、赤外線、または他の無線メディアのような無線メディアを含む。上記のいずれかの組み合わせをも、コンピュータ可読メディアの範囲内に含ませるべきである。   Computer 121 typically includes a variety of computer readable media. Computer readable media can be any available media that can be accessed by computer 121 and includes both volatile and nonvolatile media, and both removable and non-removable media. By way of example, and not limitation, computer readable media can include computer storage media and communication media. Computer storage media is volatile and non-volatile media implemented in any method or technique for storage of information such as computer readable instructions, data structures, program modules, or other data, and removable Includes both media and non-removable media. Computer storage media include, but are not limited to, RAM, ROM, EEPROM, flash memory, or other memory technology, CD-ROM, digital versatile disc (DVD) or other optical disc storage device. , Magnetic cassettes, magnetic tapes, magnetic disk storage devices or other magnetic storage devices, or any other media that can be used to store desired information and that can be accessed by computer 121. Communication media typically embodies computer readable instructions, data structures, program modules or other modulated data signals such as carrier waves or other data in other transport mechanisms and includes any information delivery media. The term “modulated data signal” means a signal that has one or more of its characteristics set or changed in such a manner as to encode information in the signal. By way of example, and not limitation, communication media includes wired media such as a wired network or direct-wired connection, wireless media such as acoustic, RF, infrared, or other wireless media. Any combination of the above should also be included within the scope of computer-readable media.

システム・メモリ103は、読取り専用メモリ(ROM)104およびランダム・アクセス・メモリ(RAM)106のような揮発性および/または不揮発性メモリの形態のコンピュータ・ストレージ・メディアを含む。起動中などにコンピュータ121内の要素間の情報転送を助ける基本ルーチンを含む基本入出力システム105(BIOS)は、一般に、ROM104内に格納されている。RAM106は、一般に、処理ユニット101に直ちにアクセス可能な、および/または処理ユニット101によって現在動作しているデータおよび/またはプログラム・モジュールを含む。限定ではなく一例として、図1は、オペレーティング・システム107、アプリケーション・プログラム108、他のプログラム・モジュール109、およびプログラム・データ110を示す。   The system memory 103 includes computer storage media in the form of volatile and / or nonvolatile memory such as read only memory (ROM) 104 and random access memory (RAM) 106. A basic input / output system 105 (BIOS) that includes basic routines that help transfer information between elements in the computer 121 during startup, etc., is generally stored in the ROM 104. The RAM 106 generally includes data and / or program modules that are immediately accessible to and / or currently operating by the processing unit 101. By way of example and not limitation, FIG. 1 shows operating system 107, application program 108, other program modules 109, and program data 110.

コンピュータ121はまた、他の取り外し可能/固定の、揮発性/不揮発性のコンピュータ・ストレージ・メディアを含むこともできる。ほんの一例として、図1は、固定の不揮発性磁気メディアとの間で読み取りまたは書き込みを行うハードディスク・ドライブ112と、取り外し可能な不揮発性磁気ディスク119との間で読み取りまたは書き込みを行う磁気ディスク・ドライブ118と、CD ROMまたは他の光メディアのような取り外し可能な不揮発性光ディスク253との間で読み取りまたは書き込みを行う光ディスク・ドライブ120とを示す。例示的なオペレーティング環境に用いることができる他の取り外し可能/固定の、揮発性/不揮発性コンピュータ・ストレージ・メディアは、これらに限られるものではないが、磁気テープ・カセット、フラッシュメモリ・カード、デジタル多用途ディスク、デジタル・ビデオテープ、ソリッドステートRAM、ソリッドステートROMなどを含む。ハードディスク・ドライブ112は、一般に、インターフェース111のような固定のメモリ・インターフェースを通してシステム・バス102に接続され、磁気ディスク・ドライブ118および光ディスク・ドライブ120は、一般に、インターフェース117のような取り外し可能なメモリ・インターフェースを通してシステム・バス102に接続される。   The computer 121 may also include other removable / non-removable, volatile / nonvolatile computer storage media. By way of example only, FIG. 1 illustrates a hard disk drive 112 that reads from or writes to a fixed non-volatile magnetic media and a magnetic disk drive that reads from or writes to a removable non-volatile magnetic disk 119. An optical disk drive 120 that reads from or writes to 118 and a removable non-volatile optical disk 253 such as a CD ROM or other optical media is shown. Other removable / non-removable, volatile / nonvolatile computer storage media that can be used in the exemplary operating environment include, but are not limited to, magnetic tape cassettes, flash memory cards, digital Includes versatile discs, digital videotapes, solid state RAM, solid state ROM, etc. The hard disk drive 112 is typically connected to the system bus 102 through a fixed memory interface, such as interface 111, and the magnetic disk drive 118 and optical disk drive 120 are generally removable memory, such as interface 117. Connected to system bus 102 through an interface.

上記に説明され、図1に示されるドライブおよびこれに関連したコンピュータ・ストレージ・メディアは、コンピュータ可読命令、データ構造、プログラム・モジュール、およびコンピュータ121のための他のデータを格納する。図1においては、例えば、ハードディスク・ドライブ112は、オペレーティング・システム113、アプリケーション・プログラム114、他のプログラム・モジュール115、およびプログラム・データ116を格納するように示されている。これらのコンポーネントは、オペレーティング・システム107、アプリケーション・プログラム108、他のプログラム・モジュール109、およびプログラム・データ110と同じものにしても、異なるものにしてもよいことに注意されたい。オペレーティング・システム113、アプリケーション・プログラム114、他のプログラム・モジュール115、およびプログラム・データ116には、少なくともこれらが異なるコピーであることを示すために、ここでは異なる番号が与えられている。ユーザは、キーボード128、および一般にマウス、トラックボール、またはタッチパッドと呼ばれるポインティング・デバイス127のような入力装置を通して、コマンドおよび情報をコンピュータ121に入力することができる。他の入力装置(図示せず)は、マイク、ジョイスティック、ゲームパッド、衛星放送受信アンテナ、スキャナなどを含むことができる。これらおよび他の入力装置は、多くの場合、システム・バスに結合されたユーザ入力インターフェース126を通して処理ユニット101に接続されるが、パラレルポート、ゲームポート、またはユニバーサル・シリアル・バス(USB)のような他のインターフェースおよびバス構造体によって接続することもできる。モニタ139または他のタイプの表示装置もまた、ビデオ・インターフェース232のようなインターフェースを介してシステム・バス102に接続される。モニタに加えて、コンピュータは、出力周辺インターフェース123を通して接続することができる、スピーカ138およびプリンタ137のような他の周辺出力装置を含むこともできる。   The drive described above and shown in FIG. 1 and associated computer storage media store computer readable instructions, data structures, program modules, and other data for the computer 121. In FIG. 1, for example, hard disk drive 112 is shown as storing operating system 113, application programs 114, other program modules 115, and program data 116. Note that these components can either be the same as or different from operating system 107, application programs 108, other program modules 109, and program data 110. Operating system 113, application program 114, other program modules 115, and program data 116 are given different numbers here, at least to indicate that they are different copies. A user may enter commands and information into the computer 121 through input devices such as a keyboard 128 and pointing device 127, commonly referred to as a mouse, trackball or touch pad. Other input devices (not shown) can include a microphone, joystick, game pad, satellite dish, scanner, and the like. These and other input devices are often connected to the processing unit 101 through a user input interface 126 coupled to the system bus, such as a parallel port, a game port, or a universal serial bus (USB). It can also be connected by other interfaces and bus structures. A monitor 139 or other type of display device is also connected to the system bus 102 via an interface, such as a video interface 232. In addition to the monitor, the computer can also include other peripheral output devices such as speakers 138 and printer 137 that can be connected through output peripheral interface 123.

コンピュータ121は、リモート・コンピュータ131のような1つまたは複数のリモート・コンピュータへの論理接続を用いて、ネットワーク化環境において動作することができる。リモート・コンピュータ131は、パーソナル・コンピュータ、サーバ、ルータ、ネットワークPC、ピア装置、または他の共通のネットワーク・ノードとすることができ、一般的には、コンピュータ121に関連して上述された要素の多くまたは全てを含むが、図1には、メモリ記憶装置132だけが示された。図1に示される論理接続は、ローカル・エリア・ネットワーク(LAN)135および広域エリア・ネットワーク(WAN)130を含むが、他のネットワークを含むこともできる。こうしたネットワーク環境は、事務所、企業全体にわたるコンピュータ・ネットワーク、イントラネット、およびインターネットにおいて当たり前のことである。   Computer 121 can operate in a networked environment using logical connections to one or more remote computers, such as remote computer 131. The remote computer 131 can be a personal computer, server, router, network PC, peer device, or other common network node, and is generally of the elements described above in connection with the computer 121. Only a memory storage device 132 is shown in FIG. 1, including many or all. The logical connections shown in FIG. 1 include a local area network (LAN) 135 and a wide area network (WAN) 130, but can also include other networks. Such network environments are commonplace in offices, enterprise-wide computer networks, intranets, and the Internet.

LANネットワーク環境に用いられるとき、コンピュータ121は、ネットワーク・インターフェースまたはアダプタ134を通してLAN135に接続される。WANネットワーク環境に用いられるとき、コンピュータ121は、一般に、モデム129、またはインターネットのようなWAN130にわたって通信を確立するための他の手段を含む。内蔵式にも、外付け式にもできるモデム129は、ユーザ入力インターフェース126または他の適切な機構を介して、システム・バス102に接続することができる。ネットワーク化環境においては、コンピュータ121に関連して示されたプログラム・モジュールまたはその一部を、リモートのメモリ記憶装置内に格納することができる。限定ではなく一例として、図1は、リモート・アプリケーション・プログラム133をメモリ装置132上に常駐するものとして示す。示されるネットワーク接続は例示的なものであり、コンピュータ間に通信リンクを確立する他の手段を用い得ることも理解されるであろう。   When used in a LAN network environment, the computer 121 is connected to the LAN 135 through a network interface or adapter 134. When used in a WAN network environment, the computer 121 typically includes a modem 129 or other means for establishing communications over the WAN 130, such as the Internet. The modem 129, which can be internal or external, can be connected to the system bus 102 via a user input interface 126 or other suitable mechanism. In a networked environment, program modules illustrated in connection with computer 121 or portions thereof may be stored in a remote memory storage device. By way of example and not limitation, FIG. 1 illustrates remote application program 133 as residing on memory device 132. It will also be appreciated that the network connections shown are exemplary and other means of establishing a communications link between the computers may be used.

ここに説明される種々の技術は、ハードウェアまたはソフトウェア、または必要に応じてその両方の組み合わせと共に実装できることを理解すべきである。このように、本発明の方法および装置、並びにその特定の態様または部分は、フロッピィ・ディスケット、CD−ROM、ハードドライブ、または他のいずれか機械可読ストレージ・メディアのような、有形メディアに具体化されたプログラム・コード(即ち命令)の形態を取ることができ、そこで、該プログラム・コードがコンピュータのようなマシンに読み込まれ、該マシンによって実行されたときに、該マシンが本発明を実施するための装置となる。プログラム可能なコンピュータ上でプログラム・コードを実行する場合には、コンピューティング装置は、一般に、プロセッサ、該プロセッサによって読取り可能なストレージ・メディア(揮発性および不揮発性のメモリおよび/または記憶素子を含む)、少なくとも1つの入力装置、並びに少なくとも1つの出力装置を含む。1つまたは複数のプログラムが、例えばAPI、再使用可能な制御装置などを用いて、本発明に関連して説明されたプロセスを実行または利用することができる。こうしたプログラムは、コンピュータ・システムと通信するために、高レベルの手続き型言語またはオブジェクト指向言語で実装することが好ましい。しかしながら、所望であれば、プログラムをアセンブリ言語または機械語で実装することもできる。いずれの場合も、言語は、コンパイルされた言語または解釈された言語とすることができ、ハードウェア実装と組み合わせることもできる。   It should be understood that the various techniques described herein may be implemented with hardware or software, or a combination of both as required. Thus, the method and apparatus of the present invention, as well as certain aspects or portions thereof, may be embodied in a tangible medium, such as a floppy diskette, CD-ROM, hard drive, or any other machine-readable storage medium. Program code (ie, instructions), where the machine implements the invention when the program code is read into and executed by a machine, such as a computer. It becomes a device for. When executing program code on a programmable computer, the computing device typically includes a processor, storage media readable by the processor (including volatile and non-volatile memory and / or storage elements). , At least one input device, and at least one output device. One or more programs may perform or utilize the processes described in connection with the present invention using, for example, APIs, reusable controllers, and the like. Such programs are preferably implemented in a high level procedural or object oriented language to communicate with a computer system. However, if desired, the program can be implemented in assembly language or machine language. In either case, the language can be a compiled or interpreted language and can also be combined with a hardware implementation.

例示的な実施形態は、1つまたは複数の独立型コンピュータ・システムに即して本発明の利用に言及するが、本発明はそのように限定されるのではなく、寧ろネットワーク・コンピューティング環境または分散型コンピューティング環境のような何らかのコンピューティング環境と共に実施することができる。さらに、本発明は、複数の処理チップまたは装置内に、または複数の処理チップまたは装置にわたって実装することができ、同様に複数の装置にわたって保存を行うこともできる。こうした装置は、パーソナル・コンピュータ、ネットワーク・サーバ、手持ち式装置、スーパーコンピュータ、または自動車および航空機のような他のシステムに内蔵されたコンピュータを含むことができる。   Although the exemplary embodiments refer to the use of the invention in the context of one or more stand-alone computer systems, the invention is not so limited, rather it is a network computing environment or It can be implemented with any computing environment, such as a distributed computing environment. Furthermore, the present invention can be implemented in or across multiple processing chips or devices, and can also be stored across multiple devices. Such devices can include personal computers, network servers, handheld devices, supercomputers, or computers embedded in other systems such as cars and aircraft.

図2において、例示的なネットワーク化コンピューティング環境が提供される。当業者であれば、ネットワークは、あらゆるコンピュータまたは他のクライアントまたはサーバ装置を接続することができ、あるいは分散型コンピューティング環境において接続できることを理解することができる。この点で、如何なる数の処理、メモリ、または記憶ユニット、および如何なる数のアプリケーションおよび同時に生じるプロセスをも有する、いずれのコンピュータ・システムまたは環境も、提供されるシステムおよび方法と共に用いるのに適していると考えられる。   In FIG. 2, an exemplary networked computing environment is provided. One skilled in the art can appreciate that a network can connect any computer or other client or server device, or can be connected in a distributed computing environment. In this regard, any computer system or environment having any number of processes, memories, or storage units, and any number of applications and concurrent processes is suitable for use with the provided systems and methods. it is conceivable that.

分散型コンピューティングは、コンピューティング装置とシステムとの間の交換によって、コンピュータ・リソースおよびサービスを共有する。これらのリソースおよびサービスには、情報の交換、ファイルのキャッシュ保管およびディスク保管が含まれる。分散型コンピューティングは、ネットワーク接続性を利用し、クライアントが全体的な力を利用して、企業全体に利益をもたらすことを可能にする。この点で、種々の装置は、ここで説明されるプロセスに関係させ得るアプリケーション、オブジェクト、またはリソースを有することができる。   Distributed computing shares computer resources and services by exchange between computing devices and systems. These resources and services include information exchange, file caching and disk storage. Distributed computing takes advantage of network connectivity and allows clients to leverage the overall power to benefit the entire enterprise. In this regard, various devices can have applications, objects, or resources that can be related to the processes described herein.

図2は、例示的なネットワーク化または分散型コンピューティング環境の概略図を提供する。この環境は、コンピューティング装置271、272、276および277、並びにオブジェクト273、274および275、並びにデータベース278を含む。これらのエンティティ271、272、273、274、275、276、277、および278の各々は、プログラム、方法、データ・ストア、プログラム可能な論理などを含むかまたはこれらを利用することができる。エンティティ271、272、273、274、275、276、277、および278は、PDA、音声/ビデオ装置、MP3プレイヤー、パーソナル・コンピュータなどのような同じまたは異なる装置の部分にわたることができる。各々のエンティティ271、272、273、274、275、276、277、および278は、通信ネットワーク270を介して、別のエンティティ271、272、273、274、275、276、277、および278と通信することができる。この点で、いずれのエンティティも、データベース278または他の記憶素子の保守および更新を担うことができる。   FIG. 2 provides a schematic diagram of an exemplary networked or distributed computing environment. This environment includes computing devices 271, 272, 276 and 277 and objects 273, 274 and 275 and a database 278. Each of these entities 271, 272, 273, 274, 275, 276, 277, and 278 may include or utilize programs, methods, data stores, programmable logic, and the like. Entities 271, 272, 273, 274, 275, 276, 277, and 278 can span parts of the same or different devices such as PDAs, audio / video devices, MP3 players, personal computers, and the like. Each entity 271, 272, 273, 274, 275, 276, 277, and 278 communicates with another entity 271, 272, 273, 274, 275, 276, 277, and 278 via the communication network 270. be able to. In this regard, any entity can be responsible for maintaining and updating the database 278 or other storage element.

このネットワーク270は、これ自体が、サービスを図2のシステムに提供する他のコンピューティング・エンティティを含むことができ、これ自体が、多数の相互接続されたネットワークを表すことができる。本発明の態様によると、各々のエンティティ271、272、273、274、275、276、277、および278は、他のエンティティ271、272、273、274、275、276、277、および278の1つまたは複数のサービスを要求するために、API、または他のオブジェクト、ソフトウェア、ファームウェア、および/またはハードウェアを利用できる別個の関数型プログラム・モジュールを含むことができる。   This network 270 may itself include other computing entities that provide services to the system of FIG. 2, and may itself represent a number of interconnected networks. In accordance with aspects of the present invention, each entity 271, 272, 273, 274, 275, 276, 277, and 278 is one of the other entities 271, 272, 273, 274, 275, 276, 277, and 278. Alternatively, APIs or separate functional program modules that can utilize other objects, software, firmware, and / or hardware to request multiple services can be included.

275のようなオブジェクトは、別のコンピューティング装置276上でホストすることができることも理解できるであろう。このように、示される物理的環境は、接続された装置をコンピュータとして示しているが、こうした例証は単に例示的なものであり、物理的環境は、代替的に、PDA、テレビ、MP3プレイヤー等のような種々のデジタル装置、およびインターフェース、のようなソフトウェア・オブジェクト、COMオブジェクト等を含むものとして示すまたは説明することができる。   It will also be appreciated that objects such as 275 can be hosted on another computing device 276. Thus, although the physical environment shown shows the connected device as a computer, such illustrations are merely exemplary, and the physical environment could alternatively be a PDA, television, MP3 player, etc. Can be shown or described as including various digital devices and interfaces, software objects such as interfaces, COM objects, and the like.

分散型コンピューティング環境をサポートする種々のシステム、コンポーネント、およびネットワーク構成が存在する。例えば、コンピューティング・システムは、有線または無線のシステム、ローカル・ネットワークまたは広域分散型ネットワークによって、互いに接続することができる。現在、多くのネットワークは、広域分散型コンピューティングにインフラストラクチャを提供し、多くの異なるネットワークを含むインターネットに結合されている。インターネットに結合されていてもいなくても、提供されたシステムおよび方法と共にこうした何らかのインフラストラクチャを用いることができる。   There are a variety of systems, components, and network configurations that support distributed computing environments. For example, computing systems can be connected to each other by wired or wireless systems, local networks or wide area distributed networks. Currently, many networks provide infrastructure for wide area distributed computing and are coupled to the Internet, which includes many different networks. Any such infrastructure can be used with the provided systems and methods, whether or not coupled to the Internet.

ネットワーク・インフラストラクチャは、クライアント/サーバ、ピア・ツー・ピア、またはハイブリッド型アーキテクチャのようなネットワーク・トポロジーのホストをイネーブルにする。「クライアント」とは、これが関係していない別のクラスまたはグループのサービスを使用するクラスまたはグループのメンバーである。コンピューティングにおいては、クライアントとは、別のプログラムによって提供されるサービスを要求するプロセス、即ち大ざっぱに言えば1組の命令またはタスクである。クライアント・プロセスは、他のプログラムまたはサービス自体についてのいずれの作業詳細も「知る」必要なく、要求されたサービスを利用する。クライアント/サーバ・アーキテクチャ、特にネットワーク化されたシステムにおいては、クライアントは、通常、例えばサーバのような別のコンピュータによって提供される共有ネットワーク・リソースにアクセスするコンピュータである。図2の例においては、状況によって、いずれのエンティティ271、272、273、274、275、276、277、および278も、クライアント、サーバ、またはその両方と見なすことができる。   The network infrastructure enables hosts in network topologies such as client / server, peer-to-peer, or hybrid architectures. A “client” is a member of a class or group that uses the services of another class or group to which it is not related. In computing, a client is a process that requests a service provided by another program, that is, roughly a set of instructions or tasks. The client process utilizes the requested service without having to “know” any working details about the other program or the service itself. In a client / server architecture, particularly a networked system, a client is typically a computer that accesses shared network resources provided by another computer, such as a server. In the example of FIG. 2, depending on the situation, any entity 271, 272, 273, 274, 275, 276, 277, and 278 can be considered a client, a server, or both.

サーバは、一概には言えないが、通常、インターネットのようなリモート・ネットワークまたはローカル・ネットワークにわたってアクセス可能なリモート・コンピュータ・システムである。クライアント・プロセスは、第1のコンピュータ・システムにおいてアクティブになることができ、サーバ・プロセスは、第2のコンピュータ・システムにおいてアクティブになることができ、通信メディア上で互いに通信し、これにより分散機能が与えられ、多数のクライアントがサーバの情報収集能力を利用することが可能になる。いずれのソフトウェア・オブジェクトをも、多数のコンピューティング装置またはオブジェクトにわたって分散させることができる。   A server is a remote computer system that can be accessed across a remote network, such as the Internet, or a local network, although it cannot be generally stated. Client processes can be active in the first computer system and server processes can be active in the second computer system and communicate with each other over a communication medium, thereby providing distributed functionality This allows a large number of clients to use the information collection capability of the server. Any software object can be distributed across multiple computing devices or objects.

クライアントおよびサーバは、プロトコル層によって与えられた機能を利用して、互いに通信する。例えば、HyperText Transfer Protocol(HTTP)は、World Wide Web(WWW)即ち「ウェブ」と共に用いられる一般的なプロトコルである。一般に、インターネット・プロトコル(IP)アドレスのようなコンピュータ・ネットワーク・アドレス、またはUniversal Resourse Locator(URL)のような他の参照を用いて、サーバ・コンピュータまたはクライアント・コンピュータを互いに識別することができる。ネットワーク・アドレスは、URLアドレスと呼ぶことができる。通信メディアを通して通信を提供することができ、例えば、大容量の通信のために、TCP/IP接続を介してクライアントおよびサーバを互いに結合させることができる。   The client and server communicate with each other using functions provided by the protocol layer. For example, HyperText Transfer Protocol (HTTP) is a common protocol used in conjunction with World Wide Web (WWW) or “Web”. In general, a computer network address, such as an Internet Protocol (IP) address, or other reference, such as a Universal Resource Locator (URL), can be used to identify server computers or client computers from each other. The network address can be referred to as a URL address. Communication can be provided through communication media, for example, clients and servers can be coupled together via a TCP / IP connection for high volume communication.

図1の一般的なフレームワークに従って構築できる多様なコンピューティング環境、および図2のもののようなネットワーク環境のコンピューティングにおいて生じ得る更なる多様性に鑑みると、ここに提供されたシステムおよび方法を、多少なりとも特定のコンピューティング・アーキテクチャに制限されるものとして解釈することはできない。代わりに、本発明は、いずれの単一の実施形態に限定すべきでもなく、寧ろ、本発明の範囲は、添付の特許請求の範囲に従った広がりおよび範囲において解釈すべきである。   In view of the various computing environments that can be constructed according to the general framework of FIG. 1 and the additional diversity that can arise in computing in a network environment such as that of FIG. 2, the systems and methods provided herein are It cannot be construed as limited to any particular computing architecture. Instead, the present invention should not be limited to any single embodiment, but rather the scope of the present invention should be construed in breadth and scope in accordance with the appended claims.

例示的なTPMのセキュリティ保護されたブート・シーケンス
本発明の実施形態は、安全なブート・プロセスにおいてTPMを使用する。TPMは、図3のコンピュータ・アーキテクチャとの関連で示される。本発明の実施形態に用いることが考えられるTPMは、TCG(登録商標)1.2準拠にすることができるが、PCR内に配置されたもののような測定値を検証し、該測定値が正しい場合に秘密を開示するように、HSMを用いることができる。
Exemplary TPM Secure Boot Sequence Embodiments of the present invention use a TPM in a secure boot process. The TPM is shown in the context of the computer architecture of FIG. The TPM considered for use in embodiments of the present invention can be TCG® 1.2 compliant, but validates measurements such as those placed in PCR and the measurements are correct HSM can be used to disclose the secret in some cases.

この点で、図3は、図1のもののようなコンピュータの極めて一般化された図において、メモリ305へのアクセスを有するCPU300を示す。CPU300は、幾つかのセキュリティ機能をTPM301に依存することができる。一般に、CPU300は、まず、ブート・プロセス内に含まれるデータの測定を行い、これらの測定値は、秘匿されたPCR値304に示されるように、TPM301に安全に格納することができる。種々の実施形態において、本明細書の図面に示される種々のPCR値304および303は、実際には、TCG(登録商標)1.2仕様に定義されるような代数式によって拡張された1つまたは複数の単一の格納先に格納できることに注意されたい。   In this regard, FIG. 3 shows CPU 300 having access to memory 305 in a highly generalized diagram of a computer such as that of FIG. The CPU 300 can rely on the TPM 301 for some security functions. In general, the CPU 300 first measures data included in the boot process, and these measured values can be securely stored in the TPM 301 as indicated by the concealed PCR value 304. In various embodiments, the various PCR values 304 and 303 shown in the drawings herein are actually one or more extended by algebraic expressions as defined in the TCG® 1.2 specification. Note that it can be stored in multiple single destinations.

秘密302は、TPM301内の特定のPCR値304に秘匿することができる。TPM301から秘密302を取り出すために、正しいPCR値をPCR303に入力しなければならない。これらの正しい値は、TPM301内に秘匿されたPCR値304を得るために測定されたものと同じデータを測定することによって得ることができる。多数の秘密302を種々のPCR304内に秘匿することができる。例えば、第1の秘密Aを取り出すために、正しい値がPCR[1]、PCR[2]、およびPCR[3]内に格納されていることが必要である。第2の秘密Bを得るために、PCR[4]内に第4の正しい値が必要である。   The secret 302 can be concealed in a specific PCR value 304 in the TPM 301. In order to retrieve the secret 302 from the TPM 301, the correct PCR value must be entered into the PCR 303. These correct values can be obtained by measuring the same data that was measured to obtain the PCR value 304 concealed in the TPM 301. A large number of secrets 302 can be concealed within the various PCRs 304. For example, in order to retrieve the first secret A, the correct value needs to be stored in PCR [1], PCR [2], and PCR [3]. To obtain the second secret B, a fourth correct value is required in PCR [4].

TPM301内に秘匿された測定値の値と合致しない測定値がPCR303内に置かれた場合には、TPM301に秘密302の開示が要求されたとき、その開示に失敗する。正しい測定値がPCR303内に置かれた場合には、秘密302の開示が要求されたとき、TPM301を信頼し、秘密302を開示することができる。したがって、この用途についての「正しい」測定値または正しい値は、秘密302が秘匿される測定値であり、これによりTPM301による秘密302の開示が可能になる。幾つかの実施形態においては、正しい測定値は、悪質なコードの測定値とすることができることに注意されたい。これは、例えば、TPM301内に秘匿された最初の測定値304が壊れていた場合である。   When a measurement value that does not match the value of the measurement value concealed in the TPM 301 is placed in the PCR 303, when the TPM 301 is requested to disclose the secret 302, the disclosure fails. If the correct measurement is placed in the PCR 303, the TPM 301 can be trusted and the secret 302 can be disclosed when the disclosure of the secret 302 is required. Thus, the “correct” measurement or correct value for this application is a measurement that hides the secret 302, which allows the TPM 301 to disclose the secret 302. It should be noted that in some embodiments, the correct measurement may be a malicious code measurement. This is the case, for example, when the first measurement value 304 concealed in the TPM 301 is broken.

特定の測定値に秘匿される秘密は、如何なるデータとすることもできる。一般に、秘密302は、解読鍵および/またはバイナリ・ラージ・オブジェクト(BLOB)の形態を取る。一般に、鍵は、データを解読するのに用いることができる情報を提供する。秘匿されたBLOBは、鍵、および有用な他のデータを含むことができる。この点で、当業者には理解されるように、鍵をBLOBと置き換えること、およびその逆に置き換えることによって、ここで説明される種々の技術の等価物を構築することができる。したがって、CPU300が、正しい測定値を303のPCRにサブミットする場合、鍵のような対応する秘密302が要求されたとき、TPM301は、該秘密302を開示することができる。次に、302からの鍵を用いて、CPU300によってアクセス可能なメモリ305の一部を解読することができる。本発明の実施形態においては、図3に示されるように、TPM301は、3つの秘密A、B、およびCへのアクセスを許可するように構成することができる。必要とされる種々のPCR値に秘密302を秘匿することができ、よって、特定の測定が行われた後にのみアクセス可能になる。これらの3つの鍵、即ち3つの秘密は、ここでは、第1のものはブート・アクセス専用秘密、第2のものはボリューム制限秘密(volume−bound secret)、第3のものはパスワード秘密と呼ばれる。   The secret concealed in a specific measurement value can be any data. In general, secret 302 takes the form of a decryption key and / or a binary large object (BLOB). In general, a key provides information that can be used to decrypt data. The secret BLOB can contain keys and other useful data. In this regard, as will be appreciated by those skilled in the art, equivalents of the various techniques described herein can be constructed by replacing the key with BLOB and vice versa. Thus, if the CPU 300 submits the correct measurement value to the PCR of 303, the TPM 301 can disclose the secret 302 when the corresponding secret 302 such as a key is requested. The key from 302 can then be used to decrypt a portion of memory 305 that can be accessed by CPU 300. In an embodiment of the invention, as shown in FIG. 3, TPM 301 can be configured to allow access to three secrets A, B, and C. The secret 302 can be concealed in the various PCR values required, so that it can only be accessed after a specific measurement is made. These three keys, the three secrets, are here called the first one for boot access only, the second for volume-bound secret, and the third for password secret. .

TPMに関係した活動は、ログ307内に格納することができる。幾つかの実施形態において、ログ307は、コンピュータのBIOSによって維持することができる。いずれかの他のプロセスが、ログ307の維持を担当することもできる。したがって、ソフトウェア・コンポーネント308または他のデータ309のようなデータが測定されてPCR303内に入れられる場合には、ログ307において測定されたデータを識別することができる。秘密開示要求がなされた場合には、ログ307において要求イベントを識別することができる。これらは、TPMに関係した活動をログ307内に格納する2つの例にすぎず、ログ307は、他の広範囲のイベントおよび活動の記録を含むことができる。   Activities related to the TPM can be stored in the log 307. In some embodiments, log 307 may be maintained by the computer's BIOS. Any other process may be responsible for maintaining the log 307. Thus, if data such as software component 308 or other data 309 is measured and placed in PCR 303, the measured data in log 307 can be identified. When a secret disclosure request is made, a request event can be identified in the log 307. These are only two examples of storing TPM-related activities in log 307, which can include a wide range of other events and activity records.

一般に、TPM301は、Static Root of Trust Measurement(SRTM)と共に動作し、信頼できる測定を行い、それらをTPM301にサブミットする。しかしながら、DRTM Nexusの使用などを通して安全な測定を行うための他のプロセスも利用可能である。本発明の実施形態は、こうした方法でSRTMのような信頼できる測定プロセスを用いることができ、この点で、SRTMは、初期ディスク・ベースのブート・コードを測定するために、ここで説明される(プロセスおよびRTMとも呼ばれる)種々のソフトウェア・コンポーネントによって用いられるBIOS標準SRTMとすることができる。システムはまた、オペレーティング・システムをブートする初期段階を測定できるように、SRTMを拡張し、オペレーティング・システムをブートする初期段階に含まれる他のコードおよび重要なデータを測定することもできる。PCR303が、いずれから得られた値をも含み得ることに注意されたい。この値は、ソフトウェア・コンポーネント308または他のデータ309のようなデータの測定値とすることができる。本発明は、データの測定値、またはPCR303内に置かれた他の値の何らかの排他的な組み合わせに限定されるものではない。   In general, the TPM 301 works with Static Root of Trust Measurement (SRTM) to make reliable measurements and submit them to the TPM 301. However, other processes for making secure measurements, such as through the use of DRTM Nexus, are also available. Embodiments of the present invention can use a reliable measurement process, such as SRTM, in this manner, in which SRTM is described herein for measuring initial disk-based boot code. It can be a BIOS standard SRTM used by various software components (also called process and RTM). The system can also extend the SRTM to measure other code and important data contained in the initial stage of booting the operating system so that the initial stage of booting the operating system can be measured. Note that PCR 303 may include values obtained from either. This value may be a measure of data such as software component 308 or other data 309. The present invention is not limited to any exclusive combination of data measurements or other values placed in the PCR 303.

TPMのセキュリティ保護されたブート・プロセスにおいて、図3に表示される構成を用いて、図4に示される例示的なソフトウェア・コンポーネントを測定し、その測定値をPCR303内に格納することができる。本発明の実施形態によって測定されるように選択することができる、図4に示されるブート・コンポーネント、具体的にはディスク・ベースのコード・コンポーネントは、滅多に変更しないことが知られており、簡単に攻撃を受けやすい。したがって、ここで説明されるような条件付きの保守および更新プロセスによる以外は、特定のブート・コンポーネントが変更されないままにすることにより、データ・セキュリティを著しく向上させるのに支払う価格が比較的少なく済む。   In the TPM secure boot process, the configuration displayed in FIG. 3 can be used to measure the exemplary software components shown in FIG. 4 and store the measurements in PCR 303. It is known that the boot component shown in FIG. 4, specifically the disk-based code component, that can be selected to be measured by embodiments of the present invention rarely changes, Easy to be attacked. Therefore, other than through a conditional maintenance and update process as described here, relatively low costs are paid to significantly improve data security by leaving certain boot components unchanged. .

図4を参照すると、コンピュータに例示的なブート・プロセスを提供するための、一連のソフトウェア・コンポーネント400−407が示される。本発明は、示された特定のコンポーネントにも、コンポーネントのシーケンスにも制限されるものではない。示されたコンポーネントは、連続的に読み込むことができ、Core Root of Trust for Measurement(CRTM)400で開始し、ここでは単一のソフトウェア・コンポーネント407として一般化されたオペレーティング・システム(OS)407のコンポーネントで終了する。コンポーネントを読み込むことにより、コンポーネントが、メモリおよびCPUのようなコンピュータのリソースにアクセスできるようになる、コンポーネントの命令をCPUによって実行することができる。図4のコンポーネントが悪質なものであるかまたは壊れている場合には、コンポーネントが読み込まれると、これをセキュリティ手段の回避のために用いることができる。したがって、本発明に適合するコンピュータをブートするためのプロセスは、コンポーネントの実行を可能にする前に、コンポーネントまたは複数のコンポーネントを測定し、1つまたは複数のPCR303内に入れるステップを含む。TPM内に秘匿される、信頼できる測定値304の組に秘匿される秘密302次第で、ブートを成功させることができる。しかしながら、本発明はまた、悪質なコードの測定値をTPM内に秘匿する可能性もあることに注意されたい。秘匿時に悪質なコードが動作している場合、ブートのためにこれらの測定値を必要とする。理想的には、秘密は、信頼できるコードの測定値304に秘匿される。PCR303内に置かれた測定値が正しい場合には、302からの秘密を開示することができ、マシンが安全なブート状態で進行することが可能になる。秘密302を開示するプロセスが、図5に示される。   Referring to FIG. 4, a series of software components 400-407 for providing an exemplary boot process for a computer is shown. The invention is not limited to the specific components shown or to the sequence of components. The components shown can be read continuously and start with a Core Root of Trust for Measurement (CRTM) 400, here a generalized operating system (OS) 407 as a single software component 407. End with the component. Reading a component allows the CPU to execute component instructions that allow the component to access computer resources such as memory and the CPU. If the component of FIG. 4 is malicious or broken, once it is loaded, it can be used to circumvent security measures. Thus, a process for booting a computer compatible with the present invention includes the step of measuring the component or components and placing them in one or more PCRs 303 before allowing the component to run. Depending on the secret 302 concealed in the set of reliable measurement values 304 concealed in the TPM, the boot can be successful. However, it should be noted that the present invention may also conceal malicious code measurements within the TPM. If malicious code is running during concealment, these measurements are needed for booting. Ideally, the secret is hidden in a reliable code measurement 304. If the measurements placed in PCR 303 are correct, the secret from 302 can be disclosed, allowing the machine to proceed in a secure boot state. The process of disclosing the secret 302 is shown in FIG.

幾つかの使用シナリオにおいて、マシンの所有者は、自分達がそのマシンの構成を「ロック」したいと決定し、以前に検証されたものに加えて、ROMベースのコードがこれまでに実行されていないことを保証することができる。この場合、マシンの所有者は、使用されることになる付加的なPCR302を選択することによって、検証プロセスに含まれるより多くのソフトウェア・コンポーネント(BIOS、オプションROM)を構成することができる。所有者は、自分達が、TPM301によって検証されるマインのパスワードをさらに利用したいと決定することもできる。このことは、セキュリティが、本発明の標準的な実施形態において一般に提供できる上記のものを拡張することを可能にし、ユーザが、使いやすさと対照してマシンのセキュリティを評価することを可能にする。   In some usage scenarios, machine owners decide that they want to “lock” their configuration and that ROM-based code has been executed in addition to what has been previously verified. It can be guaranteed that there is no. In this case, the machine owner can configure more software components (BIOS, option ROM) included in the verification process by selecting additional PCRs 302 to be used. Owners may also decide that they want to further use the Mine password that is verified by the TPM 301. This allows security to extend the above generally available in standard embodiments of the present invention and allows the user to evaluate the security of the machine against ease of use. .

図5は、次のソフトウェア・コンポーネントを読み取る前に、次のソフトウェア・コンポーネントの完全性を保証する、TPMを用いるための技術を示す。図4のコンポーネントのような一連のコンポーネント内に適切な命令を配置することによって、図5のステップを実行することができる。この点で、図5のプロセスは、CRTMコンポーネントの実行で開始することができる508。CRTMおよび図4の他のコンポーネントの一部または全てのようなコンポーネントは、別のコンポーネントを測定し、その結果を図3の303からのようなPCR内に置くための命令を支持することができる。そうした命令を支持するコンポーネントは、Root of Trust for Measurement(RTM)と呼ばれることもあり、上述のようなSRTMを使用するための命令を含むことができる。したがって、ブート・ブロックがブート・マネージャを測定する場合には、該ブート・ブロックは、該ブート・マネージャのためのRTMとして働く。   FIG. 5 illustrates a technique for using a TPM that ensures the integrity of the next software component before reading the next software component. The steps of FIG. 5 can be performed by placing appropriate instructions in a series of components, such as the components of FIG. In this regard, the process of FIG. 5 can begin 508 with the execution of the CRTM component. Components such as CRTM and some or all of the other components in FIG. 4 can support instructions to measure another component and place the result in a PCR such as from 303 in FIG. . A component that supports such instructions, sometimes referred to as Root of Trust for Measurement (RTM), can include instructions for using the SRTM as described above. Thus, if the boot block measures the boot manager, the boot block serves as an RTM for the boot manager.

RTMは、次のコンポーネントをメモリに読み込み500、次に、次のコンポーネントの測定を行い501、その測定値をPCRに加えることができる502。RTMが、鍵またはTPMからBLOBのような秘密を必要とする場合には503、こうした秘密を要求することができ、TPMは、その秘密にアクセスするのに必要とされる全てのPCRについて正しいPCR値が読み込まれた場合にのみ、要求された秘密を開示する。したがって、TPMから取り出された情報に基づいて、秘密の開示を試みることができる504。ステップ505において開示が成功した場合には、次のコンポーネントと、下記に説明される他の動作を読み取るステップを含む付加的なステップを取ることができる。開示が成功しなかった場合には、PCR内の値が正しくない可能性があり、よって、実行コードが壊れている可能性がある。ステップ507においてエラーが生じることがあり、例えば、コンピュータのディスク上のデータの暗号化を用い、解読鍵を出すのをやめることによって、コンピュータ上に格納された機密情報にアクセスできなくなることを保証するために、適切な手段を取ることができる。あるいはまた、例えば、システムを正しいPCR値を生成する状態に復旧させること、またはユーザが、図3からの値302内の秘匿された新しいPCR値を許可するのを認証することによって、システムを維持するためのプロセスを実施することができる。こうしたプロセスが、以下に説明される。示されるように、ステップ503において秘密が必要とされない場合には、如何なる秘密も必要とすることなく、次のコンポーネントを読み込むことができる。   The RTM can read the next component into memory 500, then take a measurement 501 of the next component and add 502 the measurement to the PCR. If the RTM requires a secret such as a BLOB from the key or TPM 503, it can request such a secret, and the TPM will have the correct PCR for all PCRs needed to access the secret. Disclose the requested secret only when the value is read. Accordingly, secret disclosure can be attempted 504 based on information retrieved from the TPM. If the disclosure is successful at step 505, additional steps can be taken including reading the next component and other operations described below. If the disclosure is not successful, the value in the PCR may be incorrect and thus the executable code may be corrupted. An error may occur in step 507, for example, using encryption of the data on the computer's disk and ensuring that the confidential information stored on the computer is inaccessible by removing the decryption key In order to be able to take appropriate measures. Alternatively, maintain the system, for example, by restoring the system to a state that generates the correct PCR value, or authenticating the user to allow a new hidden PCR value in value 302 from FIG. A process to do so can be implemented. Such a process is described below. As shown, if no secret is required in step 503, the next component can be loaded without requiring any secret.

図4および図5を一緒に参照し、本発明のシステムおよび方法に適合する例示的なブート・プロセスを示すことができる。最初に、基本入出力システム(BIOS)401を読み込み、CRTM400を読み込み、測定することができる。この測定は、例えば、BIOS上でハッシュを行い、次にハッシュの測定値をPCRにサブミットすることによって行うことができる。次に、BIOSの実行が可能になり、BIOSは、マスター・ブート・レコード(MBR)402のためのRTMとして働くことができる。MBRを測定してPCRに格納することができ、次に、MBR402の実行が許可される。MBRは、ブート・セクタ・コンポーネント403を測定することができ、次に該ブート・セクタ・コンポーネント403の実行が許可される。読み込み、測定し、PCRに書き込み、次のコンポーネントに移行するというこのパターンは、各コンポーネント404、405、406、および407、並びにオペレーティング・システム407内のいずれかのコンポーネントによって、必要に応じて繰り返すことができる。図5に示されるように、本発明の付加的な態様は、このプロセスの変形を含み、この変形は、途中のどの時点でも秘密を要求し、用いることができる。この点で、本発明の実施形態は、次のコンポーネントに移行する前に実行できる付加的なステップを通して、高度のセキュリティを提供する。これらの付加的なステップは、正しいPCR値を測定することによって取得される秘密を条件としてマシンのブートを成功させ、これにより、ブートに用いられるデータの一部または全てが、秘密が秘匿されたときのままであることが保証される。付加的なステップはまた、ブート中に必要であるがその後は必要でないブート後のリソースへのアクセスを防止する働きもできる。   4 and 5 together, an exemplary boot process compatible with the system and method of the present invention can be shown. First, the basic input / output system (BIOS) 401 can be read and the CRTM 400 can be read and measured. This measurement can be performed, for example, by performing a hash on the BIOS and then submitting the measured value of the hash to the PCR. The BIOS can then be executed and the BIOS can act as an RTM for the master boot record (MBR) 402. The MBR can be measured and stored in the PCR, and then the MBR 402 is allowed to run. The MBR can measure the boot sector component 403, which is then allowed to execute. This pattern of reading, measuring, writing to the PCR, and moving to the next component is repeated as necessary by each component 404, 405, 406, and 407 and any component within the operating system 407. Can do. As shown in FIG. 5, additional aspects of the invention include variations of this process, which can require and use a secret at any point along the way. In this regard, embodiments of the present invention provide a high degree of security through additional steps that can be performed before moving to the next component. These additional steps allow the machine to boot successfully, subject to the secret obtained by measuring the correct PCR value, so that some or all of the data used for booting is kept secret It is guaranteed that it will remain in time. Additional steps can also serve to prevent access to post-boot resources that are required during boot but are not required thereafter.

次のコンポーネントに移行する前に、コンポーネント400−406の一部に、解読鍵、BLOB、または他の解読鍵などへのアクセスを可能にする保護情報とすることができる秘密を取り出すことを要求することによって、図4および図5の基本的プロセスを強化することができる。このように、本発明の実施形態は、ブート・プロセス内の戦略的時点において1つまたは複数の秘密にアクセスするときに、オペレーティング・システムによる有用な動作の性能を調整することができる。測定されるコード・モジュール401−406(ここではコンポーネントおよび/またはソフトウェア・プロセスとも呼ばれる)のいずれかが変更されたことが発見された場合には、重要な秘密を伏せることができる。伏せることができる秘密の例は、「SYSKEY」(サービスによって用いられるパスワードのような局所的な秘密を解読するために、LSASSによって用いられる)、コンピュータのハードドライブまたはディスク・パーティション上に格納される実質的に全てを解読するためのボリューム暗号化鍵、およびEFSのような高レベルのシステム保護によって要求される秘密である。次に、高レベルの保護は、SRTMより汎用性のある方法で、カタログを用いて検証することができる。   Prior to moving on to the next component, require some of components 400-406 to retrieve a secret that can be protected information that allows access to a decryption key, BLOB, or other decryption key, etc. By doing so, the basic process of FIGS. 4 and 5 can be enhanced. Thus, embodiments of the present invention can tune the performance of useful operations by the operating system when accessing one or more secrets at strategic points in the boot process. If it is discovered that any of the measured code modules 401-406 (also referred to herein as components and / or software processes) have changed, an important secret can be hidden. Examples of secrets that can be hidden are "SYSKEY" (used by LSASS to decrypt local secrets such as passwords used by services), stored on the computer's hard drive or disk partition A volume encryption key to decrypt virtually everything, and a secret required by a high level of system protection such as EFS. Second, the high level of protection can be verified using catalogs in a more versatile way than SRTM.

マシンうまくブートできる状態にマシンを修理するために、ここに説明される安全なブート・プロセスに加えて、以下に説明されるシステムおよび方法を実施することができる。   In addition to the secure boot process described herein, the systems and methods described below can be implemented to repair the machine to a state where the machine can successfully boot.

例示的な付加的なブート保護技術
次のコンポーネントに移行する前に次のコンポーネントを測定するように、複数のソフトウェア・コンポーネントを構成することができる、図4および図5を参照して理解できるもののようなブート・シーケンスにおいて、コンピュータ上に格納されたデータのセキュリティをさらに高める幾つかの付加的な予防措置を取ることができる。これらの付加的な予防措置が、このセクションの主題である。ここに説明される予防措置のいずれかまたは全てを本発明の実施形態に組み込むことができる。1つの好ましい実施形態においては、以下に説明されるように、ここに説明される予防措置の全てが用いられる。しかしながら、本発明はこうした実施に限定されるものでない。
Exemplary Additional Boot Protection Techniques Multiple software components can be configured to measure the next component before moving on to the next component, as can be understood with reference to FIGS. In such a boot sequence, some additional precautions can be taken to further increase the security of the data stored on the computer. These additional precautions are the subject of this section. Any or all of the precautions described herein can be incorporated into embodiments of the invention. In one preferred embodiment, all of the precautions described herein are used, as described below. However, the present invention is not limited to such implementation.

最初に図5aを参照すると、こうしたプラットフォームの完全性において秘密の公開を調整することによって、コンピュータのブートを、オペレーティング・システムに先行するコンポーネントの完全性に結びつけることができる。最初に、図5aの概念的概観が与えられ、次に、図5aのより詳細な説明が与えられる。   Referring initially to FIG. 5a, by adjusting the secret disclosure in the integrity of such a platform, computer boot can be tied to the integrity of the components that precede the operating system. First, a conceptual overview of FIG. 5a is given, and then a more detailed explanation of FIG. 5a is given.

最初に、ブート・マネージャのようなソフトウェア・コンポーネントの公に知られたハッシュ値を用いて、PCRを拡張することができる。このことは、開示可能なブート秘密をもたらすが、これは、全ての先行するソフトウェア・コンポーネントが信頼できる場合に満足の行くものである。ブート秘密を開示できる場合、全ての先行コンポーネントを信頼できる。この際に、例えばブート・マネージャのようなソフトウェア・コンポーネントの状態は知られていない。   First, the PCR can be extended with a publicly known hash value of a software component such as a boot manager. This results in a disclosing boot secret, which is satisfactory when all preceding software components are reliable. If the boot secret can be disclosed, all previous components can be trusted. At this time, the state of a software component such as a boot manager is not known.

次に、ブート秘密を解読することができ、ボリューム対称鍵を用いてオン・ザ・フライ式にシステム・パーティションを解読し、ブート・マネージャをメモリに読み込むことができる。   The boot secret can then be decrypted, the system partition can be decrypted on the fly using the volume symmetric key, and the boot manager can be loaded into memory.

第3に、これから解読される、メモリ内のブート・マネージャのハッシュ値を公知のハッシュ値と照合することによって、認証前ステップを統合することができる。ハッシュ値が合致する場合には、ブートは正常に進行することができる。ハッシュ値が正しくない場合には、PCRを無効にすることができる。ハッシュ値が正しいことを確認する、少なくとも次の方法が存在する。
a.ブート・マネージャのハッシュ値を公に知られているハッシュ値と照合する。システムがブート秘密を開示できる場合には、公に知られたハッシュ値が有効であることが分かるので、含蓄的に、ブート・マネージャのハッシュ値が、ブートblobを開示するのに用いられるハッシュ値と合致する場合、該ブート・マネージャのハッシュ値が有効であることが分かる。
b.ブート・マネージャのハッシュ値を秘匿された秘密に格納されたハッシュ値と照合する。
c.公に知られたブート・マネージャのハッシュ値を用いて異なるPCRを拡張し、2つのハッシュ値を比較する。
Third, the pre-authentication step can be integrated by checking the boot manager hash value in memory, which is to be decrypted, against a known hash value. If the hash values match, the boot can proceed normally. If the hash value is not correct, the PCR can be invalidated. There are at least the following ways to confirm that the hash value is correct.
a. Check the boot manager hash value against a publicly known hash value. If the system can disclose the boot secret, it knows that the publicly known hash value is valid, so implicitly, the hash value of the boot manager is used to disclose the boot blob. , The boot manager hash value is found to be valid.
b. The boot manager hash value is checked against the secret stored hash value.
c. Extend the different PCRs with a publicly known boot manager hash value and compare the two hash values.

ここで図5aをより詳細に参照すると、ステップ550において、現在のコンポーネントまたはRTMが実行中である。現在のRTMは、次のソフトウェア・コンポーネントに移行するために、次のステップを実行することができる。予想される次のコンポーネントの測定値を、例えばPCR[a]のようなPCR内に読み込むことができる551。次に、RTMコンポーネントは、秘密を取り出そうと試みることができる552。PCR[a]が正しい値と共に読み込まれなかった場合には、現在のRTMは有効でなく、秘密へのアクセスを拒否することができ、これにより図5を参照して説明されたような通常のブートが阻止される。秘密を用いて、次のコンポーネントを解読することができる553。次のコンポーネントが解読されるので、将来の攻撃者が、次のコンポーネントを分解工学し、修正して、予期しない方法で実行することは不可能である。解読された次のコンポーネントを測定し554、その測定値を、PCR[b]のようなPCR内に置くことができる555。RTMは、次に、PCR[a]および[b]の値を比較することができる556。これらが合致する場合には、次のコンポーネントとすることができる次のコンポーネントに移行することができる558。これらが合致しない場合には、例えば、メモリの幾つかの所定部分を測定して、これらのPCR内に入れることによって、ターミナル値においてPCR[a]および[b]に上限を設けることができ、通常のブートを中止することができる559。   Referring now in more detail to FIG. 5a, at step 550, the current component or RTM is running. The current RTM can perform the following steps to move to the next software component. The expected next component measurement can be read 551 into a PCR, eg, PCR [a]. The RTM component can then attempt 552 to retrieve the secret. If PCR [a] is not read with the correct value, the current RTM is not valid and access to the secret can be denied, thereby causing a normal as described with reference to FIG. Boot is blocked. Using the secret, the next component can be decrypted 553. Since the next component is decrypted, it is impossible for a future attacker to break down, modify, and execute the next component in an unexpected manner. The next decoded component is measured 554 and the measurement can be placed in a PCR 555 such as PCR [b]. The RTM can then compare the values of PCR [a] and [b] 556. If they match, then 558 can move to the next component, which can be the next component. If they do not match, for example, by measuring some predetermined parts of the memory and putting them in these PCRs, it is possible to put an upper limit on PCR [a] and [b] in the terminal values, Normal boot can be aborted 559.

図6を参照すると、示されるフローチャートは、図5aに導入されたシステムおよび方法の実施形態を示し、ここでは、先行するコンポーネントの動作がうまくいった時に重要なブート・コンポーネントへのアクセスおよび該重要なブート・コンポーネントの完全性を調整するための、システムおよび方法を実施する多数のステップが示される。図6に用いられる例示的なブート・コンポーネントはブート・マネージャであるが、いずれのコンポーネントも図6に実証される技術の主題となり得る。本説明のために、図6のステップは、図4に照らして理解することができる。複数のソフトウェア・コンポーネントを、連続的な方法で実行することができ、これらの1つまたは複数は、次のコンポーネントに移行する前に次のコンポーネントを測定することができる。   Referring to FIG. 6, the flowchart shown shows an embodiment of the system and method introduced in FIG. 5a, where access to the critical boot components and the critical Numerous steps are shown in implementing the system and method for adjusting the integrity of the correct boot component. Although the exemplary boot component used in FIG. 6 is a boot manager, any component can be the subject of the technology demonstrated in FIG. For purposes of this description, the steps of FIG. 6 can be understood in light of FIG. Multiple software components can be executed in a continuous manner, and one or more of these can measure the next component before moving to the next component.

この文脈において、ステップ612に示されるように、ブート・プロセスのある時点において、ブート・セクタのような第1のコンポーネントを読み込むことができる。次に、図5aに述べられる技術に従って、ブート・セクタを測定してPCR内に格納することができる。ステップ611に用いられる例示的なPCRはPCR[8]であるが、本発明は、いずれか特定のPCRに限定されるものではない。次に、コンピュータは、ブート・セクタ612の実行に移行することができる。ここで、ブート・セクタは、ブート・ブロックのためのRTMとして働くことができ、その際、該ブート・ブロックを測定してPCR[9]内に格納することができる608。次に、コンピュータは、ブート・ブロックの実行に移行することができる600。ここで、ブート・ブロックは、ブート・マネージャのためのRTMとして働き、次のステップにおける付加的なセキュリティ手段を実行することができる。   In this context, a first component, such as a boot sector, can be loaded at some point in the boot process, as shown in step 612. The boot sector can then be measured and stored in the PCR according to the technique described in FIG. 5a. An exemplary PCR used in step 611 is PCR [8], but the present invention is not limited to any particular PCR. The computer can then transition to executing the boot sector 612. Here, the boot sector can serve as an RTM for the boot block, where the boot block can be measured and stored in PCR [9] 608. The computer can then transition 600 to execute a boot block. Here, the boot block can act as an RTM for the boot manager and perform additional security measures in the next step.

このように、ブート・ブロックは、ブート・マネージャの予想される測定値をPCRに読み込むことができる601。図6に用いられる例示的なPCRは、PCR10である。PCR[8]、[9]、[10]に読み込まれる値、および制御するように構成された前のまたは次のPCRが正しい場合、こうした秘密がブート・ブロックによって要求されたとき、TPMは、秘密へのアクセスを許可することができる。この秘密は、ブート・マネージャが格納されているハードディスクの一部のようなメモリの一部を解読するための解読鍵とすることができる。ステップ602に示されるように、この鍵は、ブート・ブロック・コンポーネントによって取り出すこともできる。ブート・マネージャの正しい予想測定値を生成するためにブート・ブロックを要求することによって、第1の層のセキュリティが与えられ、正しくない値が与えられた場合には、TPMは、ブート・マネージャを解読するのに必要とされる鍵へのアクセスを拒否することができる。   In this way, the boot block can read 601 expected measurements of the boot manager into the PCR. An exemplary PCR used in FIG. 6 is PCR10. If the values read into PCR [8], [9], [10] and the previous or next PCR configured to control are correct, when such a secret is requested by the boot block, the TPM Allows access to secrets. This secret can be a decryption key for decrypting a portion of memory, such as the portion of the hard disk where the boot manager is stored. As shown in step 602, this key can also be retrieved by the boot block component. By requesting the boot block to generate the correct expected measure for the boot manager, the first layer of security is provided, and if an incorrect value is given, the TPM Access to the keys needed to decrypt can be denied.

正しい予想値が与えられた場合には、暗号化鍵を取り出し、次に、ステップ603において、該暗号化鍵を用いて、ブート・マネージャ・コンポーネントを解読することができる。次に、ブート・ブロックは、ブート・マネージャを解読するのに用いられる「ブート・アクセス専用」鍵を恒久的に廃棄するように構成することもできる604。ブート・マネージャまたは次に読み込まれるコンポーネントが壊れていた場合、鍵にアクセスすることができなくなり、よってアクセスできるデータが厳しく制限されるので、ブート・マネージャを読み込む前にブート・アクセス専用鍵を廃棄することによって、セキュリティの層を付加する。このことは、本発明の種々の実施形態について考慮されるように、コンピュータのハードディスクが殆ど完全に暗号化されているときに、特に言えることである。   If the correct expected value is given, the encryption key can be retrieved and then the boot manager component can be decrypted in step 603 using the encryption key. The boot block may then be configured 604 to permanently discard the “boot access only” key used to decrypt the boot manager. If the boot manager or the next component to be loaded is corrupted, the key cannot be accessed and thus the data that can be accessed is severely limited, so the boot access key is discarded before loading the boot manager This adds a layer of security. This is especially true when the computer hard disk is almost fully encrypted, as considered for the various embodiments of the present invention.

次に、コンポーネントのハッシュ値の計算のような、ブート・マネージャ・コンポーネントを測定することができる605。測定値は、PCR13のような別のPCR内に格納することができる606。ステップ607に示されるように、PCR10およびPCR13内に格納された値を比較し、これらが合致するかどうかを判断することができる。合致しない場合には、ブート・マネージャが変更され、壊れたコードまたは悪質のコードを含む可能性があるという結論に達することができる。まだブート・マネージャ・コンポーネントの実行に移行されておらず、よって、まだ如何なる危害も加えることができないことを思い出されたい。ブート・マネージャが壊れている場合には、ブート・ブロックによって、適切なセキュリティ手段を取ることができる。したがって、コンピュータのブートは、ブート・マネージャのような重要なソフトウェア・コンポーネントの解読および測定の成功を条件として行うことができる。   The boot manager component can then be measured 605, such as calculating the hash value of the component. Measurements can be stored 606 in another PCR, such as PCR13. As shown in step 607, the values stored in PCR 10 and PCR 13 can be compared to determine if they match. If not, the conclusion can be reached that the boot manager has been changed and may contain broken or malicious code. Recall that we have not yet migrated to running the boot manager component, so we cannot yet do any harm. If the boot manager is broken, the boot block can take appropriate security measures. Thus, booting a computer can be contingent upon successful decoding and measurement of critical software components such as a boot manager.

図7および図8を参照すると、後でコンピューティング・リソースを制御するプロセスからのブート中に用いられる秘密を秘匿するのに用いることができる、例示的なシステムおよび方法が示されている。図7および図8に示されるプロセスは、コンピュータ・ハード・ドライブ上に多数ディスク・パーティションが現存する状況において特に有用であるが、種々の設定において有用であることが理解される他の利点も有している。図7および図8に示されるプロセスの1つの利点は、単一のパーティションに対して、ソフトウェア・コンポーネントによってアクセスを制限するために、これらのプロセスを用いることができる点である。ブートの初期段階のコンポーネントは、全てのディスク・パーティションへのアクセスを要求することが多いが、後の段階およびブート後のコンポーネントは、単一のパーティションに制限することができる。図7および図8は、こうした制限を保証するための例示的なシステムおよび方法を示す。   Referring to FIGS. 7 and 8, exemplary systems and methods are shown that can be used to conceal secrets used later during boot from a process that controls computing resources. The process shown in FIGS. 7 and 8 is particularly useful in situations where multiple disk partitions currently exist on a computer hard drive, but has other advantages that are understood to be useful in various settings. is doing. One advantage of the processes shown in FIGS. 7 and 8 is that they can be used to restrict access by a software component to a single partition. Components at the early stages of boot often require access to all disk partitions, but later stages and post-boot components can be limited to a single partition. 7 and 8 illustrate exemplary systems and methods for ensuring such limitations.

図7は、図8に示されるプロセスのための設定を提供する。図面の左側には、パーティションA700、パーティションB702、およびパーティションC704を含む、複数のディスク・パーティションが示されている。当業者には理解されるように、一般に、701、703、および705のような予約されたパーティション内に格納される、ブートの初期段階に必要とされる情報を除いて、各々のパーティションを完全に暗号化することができる。図4を参照して説明されるように連続的に読み込むことができるブート・ブロック706、ブート・マネージャ707、およびオペレーティング・システム(OS)ローダー708を含むソフトウェア・コンポーネントが、図7の下側に沿ってある。PCRx709、PCRy710、時間1のPCRz711、および時間2のPCRz712を含む、複数のPCRが、図7の中央に示されている。PCRは、一般に、文字ではなく番号によって識別されるが、幾つかの実施形態は図8に説明されるPCRを使用できるとはいえ、本発明が、使用される特定のPCRに制限されないことを強調するために、ここでは文字が用いられている。図7のPCRは、図5を参照して説明される機能を果たし、(値を内部に置くことができ)、TPM713を信頼して、この値が正しいかどうかを示し、および/または正しい値が入力されたときに秘密へのアクセスを許可することができる。   FIG. 7 provides the settings for the process shown in FIG. On the left side of the drawing, a plurality of disk partitions are shown, including partition A 700, partition B 702, and partition C 704. As will be appreciated by those skilled in the art, each partition is generally complete except for information required in the early stages of boot, stored in reserved partitions such as 701, 703, and 705. Can be encrypted. Software components including a boot block 706, a boot manager 707, and an operating system (OS) loader 708 that can be read sequentially as described with reference to FIG. Along. Multiple PCRs are shown in the middle of FIG. 7, including PCRx709, PCRy710, time 1 PCRz711, and time2 PCRz712. PCRs are generally identified by numbers rather than letters, although it should be understood that the present invention is not limited to the particular PCR used, although some embodiments may use the PCR illustrated in FIG. Letters are used here for emphasis. The PCR of FIG. 7 performs the function described with reference to FIG. 5 (the value can be placed inside), trusts the TPM 713 to indicate whether this value is correct, and / or the correct value. Can be granted access to the secret when is entered.

図8に反映される実施形態のより詳細な説明に先立ち、図7を参照して一般的な概念を公式化することができる。TPM713を通して、鍵またはBLOB714のようなブート専用秘密にアクセスを獲得するために、時点1におけるPCRzの値のような1つまたは複数のPCRの第1の値711を必要とする。コンピュータのブートの初期段階において要求されるように、ブート専用鍵またはBLOB714は、複数のパーティションからの情報を解読するのに有用である。ボリューム制限鍵(volume−bound key)またはBLOB715へのアクセスを獲得するために、時点2におけるPCRz712のような1つまたは複数の第2のPCR値を必要とする。ボリューム制限鍵またはBLOBは、パーティションA700からのデータを解読するためだけといった、パーティションのサブセットに対してのみ有用である。したがって、それぞれ異なる時間に同じPCRの異なる値を用い、これらの多数の値の適切な鍵への鍵またはBLOBのアクセスを調整することによって、下流側のソフトウェア・コンポーネントが、ブート・コンポーネントに使用可能な情報にアクセスするのを阻止することができる。ブートが適正に行われるためには、ボリューム制限鍵またはBLOB715にアクセスしなければならず、これは、ブート専用鍵またはBLOB714がもはやアクセス可能でなくなることを保証する。このシステムの付加的な利点が、特に図6に示されるシステムおよび方法と組み合わせて、当業者には明らかであろう。   Prior to a more detailed description of the embodiment reflected in FIG. 8, a general concept can be formulated with reference to FIG. In order to gain access to a key or boot-only secret such as BLOB 714 through TPM 713, one or more PCR first values 711, such as the value of PCRz at time 1, is required. A boot-only key or BLOB 714 is useful for decrypting information from multiple partitions, as required in the early stages of computer booting. In order to gain access to a volume-bound key or BLOB 715, one or more second PCR values such as PCRz 712 at time 2 are required. A volume restriction key or BLOB is useful only for a subset of partitions, such as only to decrypt data from partition A700. Thus, downstream software components can be used for boot components by using different values of the same PCR at different times and adjusting key or BLOB access to the appropriate key for these multiple values Access to sensitive information. In order to boot properly, the volume restriction key or BLOB 715 must be accessed, which ensures that the boot-only key or BLOB 714 is no longer accessible. Additional advantages of this system will be apparent to those skilled in the art, particularly in combination with the system and method shown in FIG.

図8を参照すると、図7に図式化されるようなシステムを実装するための種々の実施形態が示されている。したがって、ステップ800において、ブート・マネージャ・コンポーネントを読み込むことができる。図6の技術を組み込むシステムにおいては、そこに示されるプロセスに従って、ブート・マネージャを読み込むことができる。例えば、ステップ801において、ブート・マネージャのハッシュ値を測定してPCR10内に入れることができる。次に、TPMの使用には一般的なことだが、全ての以前の測定値だけでなく、例えばPCR[11]および[12]であり、まだ測定値と共に読み込まれていず、よって典型的にはゼロである初期値を保持するPCR[y]および[z]の値にも基づいて、ブート・アクセス専用鍵をTPMから取り出すことができる。したがって、PCR[y]および[z]の初期値に基づいて、ステップ802において秘密を取り出すことができる。   Referring to FIG. 8, various embodiments for implementing a system such as that schematically illustrated in FIG. 7 are shown. Thus, in step 800, the boot manager component can be loaded. In a system incorporating the technique of FIG. 6, the boot manager can be loaded according to the process shown therein. For example, in step 801, the boot manager hash value can be measured and placed in the PCR 10. Second, as is common for the use of TPM, not only all previous measurements, but also PCR [11] and [12], for example, which have not yet been read in with measurements, so typically Based on the values of PCR [y] and [z] that hold an initial value that is zero, the boot access dedicated key can be retrieved from the TPM. Therefore, the secret can be extracted in step 802 based on the initial values of PCR [y] and [z].

さらに図8を参照すると、ステップ803およびステップ804において、OSローダーは、メモリ内に読み込み、ブート・マネージャによって測定することができる。OSローダーのハッシュ値をPCR[y]内に置くことができる805。このPCR[y]への変更は、ブート・アクセス専用秘密への将来のアクセスを事実上取り消すことになり、よって、秘密がブート・マネージャによって廃棄される場合、秘密は、下流側のコンポーネントに失われることに注意されたい。次に、PCR[y]を、ブート・アクセス専用秘密内に格納されている値と比較することができる806。例えば、ブート・アクセス専用秘密がBLOBである場合には、PCR値を該BLOBと共に格納することができる。比較がうまくいった場合には、ブート・アクセス専用BLOBからボリューム制限鍵を抽出することができる807。ボリューム制限鍵を測定してPCR[z]内に入れることができる808。PCR[z]を通して、新しいPCR値に基づいたボリューム制限秘密へのアクセスを許可するように、TPMを構成することができる809。したがって、ステップ809においてボリューム制限BLOBを獲得することにより、ブート・アクセス専用BLOBのアクセスしにくさを調整することができる。この技術を利用する本発明の実施において、全ての次のプロセスを、ボリューム制限鍵またはBLOBに関連付けられたパーティションのサブセットに、事実上制限することができる。   Still referring to FIG. 8, in steps 803 and 804, the OS loader can be loaded into memory and measured by the boot manager. The OS loader hash value can be placed in PCR [y] 805. This change to PCR [y] will effectively revoke future access to the boot access-only secret, so if the secret is discarded by the boot manager, the secret will be lost to downstream components. Please be careful. PCR [y] can then be compared 806 to the value stored in the boot access private secret. For example, if the boot access private secret is a BLOB, the PCR value can be stored with the BLOB. If the comparison is successful, the volume restriction key can be extracted from the BLOB dedicated to boot access 807. A volume restriction key can be measured and placed in PCR [z] 808. The TPM can be configured 809 to allow access to the volume restricted secret based on the new PCR value through PCR [z]. Therefore, by acquiring the volume restriction BLOB in step 809, the difficulty of accessing the boot access dedicated BLOB can be adjusted. In the practice of the present invention utilizing this technique, all subsequent processes can be effectively restricted to a subset of partitions associated with a volume restriction key or BLOB.

システム・データを保護するための例示的なブート検証プロセス
本発明の実施形態は、ユーザ・インターフェース(UI)を通して、ユーザのコマンドで動作し、構成することができるブート検証プロセスを提供することができる。したがって、コントロールパネル・アプレットのようなプログラムを用いて、ユーザが本発明によるブート保護プロセスの動作をイネーブルにできるUIを使用可能にすることができる。マシンのユーザがそのマシンのTPMの所有権を取得していなかった場合には、UIは、まず所有権を取得するかまたはキャンセルするかの選択肢を提示することができる。特定のブート・パーティションの選択をユーザに要求する、同様の選択肢を提示することもできる。保護されたブートが、New Technology File System(NTFS)のような特定のファイル・システムのみで動作するように構成される場合には、ユーザは、そのファイル・システムを利用するブート・パーティションの選択を要求することができる。
Exemplary Boot Verification Process for Protecting System Data Embodiments of the present invention can provide a boot verification process that can operate and be configured with user commands through a user interface (UI). . Thus, a program such as a control panel applet can be used to enable a UI that allows a user to enable the operation of the boot protection process according to the present invention. If the machine user has not acquired ownership of the machine's TPM, the UI may first offer an option to acquire or cancel ownership. Similar options can be presented that require the user to select a particular boot partition. If the protected boot is configured to work only with a specific file system, such as New Technology File System (NTFS), the user can select a boot partition to use that file system. Can be requested.

保護されたブートがUIによってイネーブルにされると、自動プロセスは、セキュリティ保護されるべきトップレベルの秘密が、可能であれば再生成され、次に、秘密の開示に必要とされる予想PCRレジスタ値に秘匿されることを保証できる。好ましい実施形態は、この操作のために、PCR[4]、PCR[8]から場合によってはPCR[15]までを利用することができる。パスワードに開示操作を代行させ、これを公に見える場所に格納することができる。したがって、選択されたパスワードは、秘匿操作に使用されたものと異なるものにすることができる。この操作をサポートするために、TCG(登録商標)1.2TPMが好ましい。より高いセキュリティを提供できるこのプロセスの変形により、より多くのPCRを指定することが可能になり、マシンの所有者がア開示用パスワードを指定し、これをブート・プロセスの初期に入力することが可能になる。   When protected boot is enabled by the UI, the automatic process will regenerate the top-level secret to be secured, if possible, and then the expected PCR register required for secret disclosure. It can be guaranteed to be concealed in the value. Preferred embodiments can utilize PCR [4], PCR [8] up to PCR [15] for this operation. You can delegate the disclosure operation to the password and store it in a publicly visible location. Therefore, the selected password can be different from that used for the concealment operation. In order to support this operation, TCG® 1.2 TPM is preferred. This process variant that can provide higher security allows more PCRs to be specified, allowing the machine owner to specify a password for disclosure and enter it early in the boot process. It becomes possible.

従来のPCまたはATコンピュータ(PCAT)システム、即ち従来技術のBIOSを用いるx86ベース・システムにおいては、MBRブート・セクタ、NTFSブート・セクタ、NTFSブート・ブロック、およびブート・マネージャを用いて、予想されるPCR値を判断することができる。予想されるPCR値についてのさらなる詳細が、例示的なブート・シーケンスと併せて以下に説明される。拡張ファームウェア・インターフェース(EFI)システムについて、EFIUシステム・パーティション(ESP)内の関連ファイルが測定される。ブート・ボリューム暗号化を含む本発明の変形について、NTFSブート・ブロックを含む、そこまでのブートの初期部分について、ディスク暗号化鍵をPCRに秘匿することができる。   In a conventional PC or AT computer (PCAT) system, i.e., an x86 based system using a prior art BIOS, expected using MBR boot sector, NTFS boot sector, NTFS boot block, and boot manager PCR value can be determined. Further details about expected PCR values are described below in conjunction with an exemplary boot sequence. For an extended firmware interface (EFI) system, the associated files in the EFIU system partition (ESP) are measured. For variants of the present invention that include boot volume encryption, the disk encryption key can be concealed from the PCR for the initial boot up to that point, including the NTFS boot block.

リカバリー・シナリオを助けるために、CDROMを介するリカバリー、およびこうしたパーティションが存在する場合に特定のリカバリー・パーティションを介するリカバリー、および取り外し可能メディアおよび/またはパスワードのような第2の認証方法を介するリカバリーを含む、上記の秘密の他のコピーをブートするように秘匿することができる。   To help with recovery scenarios, recovery through CDROM, and recovery through a specific recovery partition if such a partition exists, and recovery through a second authentication method such as removable media and / or password Including other copies of the above secrets can be kept secret.

PCATシステムのための例示的なブート・プロセスが以下に提供される。ここに表示されるプロセスもまた、図8および図9を参照して理解することができる。
・TCG(登録商標)1.2仕様によって要求されるように、BIOSを測定してPCR[0]内に入れるのを担う、ROMの読取り専用部分を実行することができる。
・BIOS構成パラメータを測定してPCR[1]内に入れる。
・オプションROMを測定してPCR[2]内に入れる。
・オプションROMパラメータを測定してPCR[3]内に入れる。
・MBRを測定してPCR[4]内に入れる。
・パーティション・テーブルを測定してPCR[5]内に入れる。
・MBRを測定した後、BIOSが実行をMBRに転送する。
・MBRが、アクティブ・パーティションのNTFSブート・セクタを読み込み、これを測定してPCR[8]内に入れる。次に、MBRは、実行をこのブート・セクタ転送する。
・ブート・セクタは、ブート・ブロックをメモリ内に読み込む(一般に、8K)。ブート・ブロックを測定してPCR[9]内に入れる(暗号化情報を除く)。ボリュームが暗号化される場合には、この時点で暗号化情報が開示され、これを用いて、ディスクから読み込まれたいずれかの将来のセクタを解読する。
・ブート・マネージャがディスクからメモリ内に読み込まれる。ブート・マネージャを測定してPCR[10]に入れる。実行をブート・マネージャに転送する。(上述のような1つの変形は、予想されるPCR[10]の測定値を秘匿されたデータの中に格納し、これを用いて、正しいブート・マネージャが測定されたことを検証することができる。)
・ブート・マネージャは、重要なデータを測定してPCR[11]に入れる。重要なデータは、例えば、デバッガがイネーブルにされようとしているかどうかといったセキュリティに影響を与え得る情報を含むことができる。幾つかの実施形態においては、PCR[11]が情報を用いて拡張されるまで、この情報に従って動作することができない。
・ブート・マネージャは、OSローダーを選択してメモリに入れ、これを測定してPCR[12]に入れ、実行を該PCR[12]に転送する。
・OSローダーは、重要なデータを測定してPCR[13]に入れる。
・OSローダーは、PCR[4]、PCR[8]乃至[13]、および随意的にいずれかの付加的PCRを用いて、OSローダーによって用いられる秘密を開示する。
・OSローダーは、「コード完全性(Code Integrity)」を転送し、システムのさらなる検証を行う。
・コード完全性は、フェーズ−0ドライバ、NTKRNL、およびHALのようなシステムによって読み込まれる将来のバイナリの各々を検証する。
・NTKRNLは、LSASSおよびWinLoginを含む初期のシステム・プロセスを開始する。
・LSASSは、PCR[4]、PCR[8]乃至[13]、および随意的にいずれかの付加的PCRを用いて、SYSKEYを開示する。開示に失敗した場合、LSASSは、原因を判断し、是正措置を示唆し、および/またはリカバリー情報を要求し、二次的な方法によって秘密を取得する。
・解読されたブート・ボリュームにアクセスする全てのコードが、PCR[4]、PCR[8]および[9]、並びにいずれかの付加的な指定のPCRを用いて、ブート・ボリューム解読秘密を開示する。
An exemplary boot process for the PCAT system is provided below. The process displayed here can also be understood with reference to FIGS.
• As required by the TCG® 1.2 specification, the read-only portion of the ROM responsible for measuring BIOS and placing it in PCR [0] can be implemented.
• Measure BIOS configuration parameters and place in PCR [1].
• Measure option ROM and place it in PCR [2].
• Measure option ROM parameters and place in PCR [3].
• Measure MBR and place in PCR [4].
• Measure the partition table and place it in PCR [5].
• After measuring the MBR, the BIOS forwards execution to the MBR.
The MBR reads the NTFS boot sector of the active partition, measures it and places it in PCR [8]. The MBR then transfers execution to this boot sector.
The boot sector reads the boot block into memory (generally 8K). The boot block is measured and placed in PCR [9] (excluding encryption information). If the volume is encrypted, the encryption information is disclosed at this point and is used to decrypt any future sectors read from the disk.
The boot manager is read from disk into memory. Measure the boot manager and put it into PCR [10]. Transfer execution to the boot manager. (One variation as described above is to store the expected PCR [10] measurement in secret data and use it to verify that the correct boot manager was measured. it can.)
The boot manager measures important data and puts it into PCR [11]. Important data can include information that can affect security, for example, whether the debugger is about to be enabled. In some embodiments, PCR [11] cannot operate according to this information until it is extended with information.
The boot manager selects the OS loader and places it in memory, measures it, puts it in PCR [12], and transfers execution to the PCR [12].
The OS loader measures important data and puts it in PCR [13].
The OS loader uses PCR [4], PCR [8] to [13], and optionally any additional PCR to disclose the secret used by the OS loader.
The OS loader forwards “Code Integrity” for further verification of the system.
Code integrity verifies each future binary read by systems such as phase-0 drivers, NTKRNL, and HAL.
NTKRNL starts initial system processes including LSASS and WinLogin.
LSASS discloses SYSKEY using PCR [4], PCR [8] to [13], and optionally any additional PCR. If the disclosure fails, the LSASS determines the cause, suggests corrective action, and / or requests recovery information, and obtains the secret in a secondary manner.
All code that accesses the decrypted boot volume will disclose the boot volume decryption secret using PCR [4], PCR [8] and [9], and any additional designated PCR To do.

EFIシステムにおいて、上記のプロセスに対する幾つかの変形が、有利である。例えば、MBRを測定し、実行をこれに転送する代わりに、以下の動作を取ることができる。すなわち、
・オプションROMのものに加えて、ROMベースのドライバを測定し、PCR[2]に入れる。
・ブート・マネージャを含むディスク・ベースのドライバおよびモジュールを測定して、PCR[4]に入れる。
・NTFSを理解するいずれかのEFIドライバが、ブート・ボリューム解読秘密を開示するための付加的な能力を有する。
In the EFI system, several variants to the above process are advantageous. For example, instead of measuring MBR and transferring execution to it, the following actions can be taken. That is,
• Measure ROM-based drivers in addition to those in option ROM and place in PCR [2].
• Measure disk-based drivers and modules, including the boot manager, into PCR [4].
Any EFI driver that understands NTFS has the additional ability to disclose the boot volume decryption secret.

上記のプロセスおよびその変形は、標準的なコンピュータ・ブートの範囲を超える目的のために用いることができる。具体的には、2つの付加的な目的が考えられるが、本発明の付加的な使用もまた可能であり、本発明は、特定の設定または目的に限定されるものではない。第1に、上記のプロセスは、ハイバネーション・ファイルの保護を含むように拡張することができる。第2に、上記のプロセスは、オペレーティング・システムの動作に必要とされるブート・ボリュームおよび他のボリュームの保護を含むように拡張することができる。   The above process and variations thereof can be used for purposes beyond the scope of standard computer boot. In particular, two additional purposes are envisioned, but additional uses of the invention are also possible and the invention is not limited to any particular setting or purpose. First, the above process can be extended to include hibernation file protection. Second, the above process can be extended to include boot volume and other volume protection required for operating system operation.

ハイバネーション・ファイルの保護について、これは、ハイバネーション・ファイルの暗号化鍵および解読鍵を、使用可能な秘密の中に格納することによって達成することができる。暗号化鍵および解読鍵は、単一の対称鍵とすることができ、あるいは別の対称鍵をシールするのに用いられる非対称鍵とすることもできる。マシンが休止状態になるとき、ハイバネーション・ファイルを暗号化することができる。マシンが検証されたブート・コード経路を介してブートしない限り、ハイバネーション・ファイルを解読することはできず、よって、ハイバネーション・ファイル内に格納されたいずれの秘密も維持される。マシンが検証されたコード経路を介してブートした場合には、ハイバネーション・ファイルは、検証されたコードによって解読され、良好に定義された実行経路で実行が再開され、実行環境のセキュリティを復旧させる。   For hibernation file protection, this can be accomplished by storing the hibernation file encryption and decryption keys in an available secret. The encryption key and decryption key can be a single symmetric key or an asymmetric key used to seal another symmetric key. When the machine goes to hibernation, the hibernation file can be encrypted. The hibernation file cannot be decrypted unless the machine boots through the verified boot code path, so any secret stored in the hibernation file is maintained. If the machine boots through a verified code path, the hibernation file is decrypted by the verified code and execution resumes with a well-defined execution path, restoring the security of the execution environment.

オペレーティング・システムの動作に必要とされるブート・ボリュームまたは他のボリュームの保護を達成することもできる。この場合、全てのブート・ボリュームは、暗号化するおよび/または全体の完全性チェックを含むことができる。解読に必要とされる鍵は、検証されたブート・コードに対してのみ利用可能であり、次にそうした鍵を用いて、システムのブートを再開するのに必要とされる更なるコードおよびデータを解読する。ディスクの完全性情報を更新するのに必要とされる鍵もまた、検証されたブート・コードに対してのみ利用可能である。全体の完全性チェックを含むシステムは、ひとたび該システムが検証されたコードを実行していることが保証されると、更なる動作のために検証された完全性コードおよびデータだけを選択することができる。検証されたコードだけがこうした使用可能ビットを開示できるので、攻撃者がこうしたシステムを騙し、その完全性が有効であると信じさせることはできない。   Boot volume or other volume protection required for operating system operation may also be achieved. In this case, all boot volumes can be encrypted and / or include an overall integrity check. The key required for decryption is only available for the verified boot code, which can then be used to provide additional code and data needed to resume system boot. Decipher. The key required to update the disk integrity information is also only available for verified boot code. A system that includes an overall integrity check may only select verified integrity code and data for further operations once it is guaranteed that the system is executing the verified code. it can. Since only verified code can disclose these usable bits, an attacker cannot deceive such a system and believe that its integrity is valid.

保護されたブート・プロセスを修復し、アップグレードするための例示的なシステムおよび方法
本発明の実施形態は、コンピュータを安全にブートするためのシステムおよび方法を診断し、修復し、アップグレードするためのプロセスを組み込むことができる。この目的のために、ブート・プロセス内の問題を診断するための第1の観察は、上述の保護されたブート・プロセスにおいて、秘密を開示するプロセスが、測定値が正しいかどうかを判断するための手段を提供するという点である。したがって、2つの状態、すなわち測定されるコードのものを示す秘密が開示され、検証されたコードだけが実行される状態、または秘密が開示されず、検証されていないコードが実行された可能性があることを示す状態、のいずれかが存在する。診断のために、TCG準拠BIOSによって作成されたログを検査することによって、何が失敗したかを判断することが可能である。次に、エラーが意図的なものではなく偶発的なものであったときに、この情報を用いて問題を診断し、より多くの情報をフィードバックすることができる。
Exemplary System and Method for Repairing and Upgrading a Protected Boot Process Embodiments of the present invention provide a process for diagnosing, repairing, and upgrading a system and method for securely booting a computer. Can be incorporated. For this purpose, the first observation for diagnosing problems within the boot process is that in the above-described protected boot process, the process that discloses the secret determines whether the measurement is correct. It is a point of providing the means. Therefore, there is a possibility that a secret indicating two states, that of the code to be measured, is disclosed and only the verified code is executed, or that the secret is not disclosed and unverified code is executed. One of the states indicating that there exists. For diagnosis, it is possible to determine what has failed by examining the logs created by the TCG compliant BIOS. This information can then be used to diagnose the problem and feed back more information when the error was accidental rather than intentional.

上述の保護されたブート・プロセスは、TPMの利用によるシステムの自己検証に依存している。幾つかの実施形態においては、こうしたシステムが、実際には依然として有効であるときに、無効に見えることがある。システムが無効に見えるときには、本発明の種々の実施形態において、その一方または両方を使用可能にできる2つのレゾリューション・パスが存在する、すなわち、第1のものは、ログを検査することから得られた情報を用いて、システムを有効とみなすことができる状態に戻すことができ、第2のものは、システムを有効と見なすべきであることをユーザが認証できる。   The protected boot process described above relies on system self-verification through the use of TPM. In some embodiments, such a system may appear invalid when it is actually still valid. When the system appears invalid, in various embodiments of the present invention, there are two resolution paths that can be enabled, either or both, ie, the first is from examining the log. The obtained information can be used to return the system to a state where it can be considered valid, and the second can allow the user to authenticate that the system should be considered valid.

システムを有効とみなすことができる状態に戻すために、ログ情報を用いて、TPMが測定値を無効とみなした理由を診断することができる。変更された何らかのコードを元の状態に戻すこともできる。あるいはまた、ユーザが、システム・ディスクをブートオフする前にネットワーク・ブートを試みることなどによって、普通でない方法でブートした場合に、コンピュータをリブートし、予想される方法でブートしようと試みる。   To return the system to a state where it can be considered valid, the log information can be used to diagnose why the TPM considered the measurement invalid. Some changed code can be restored to its original state. Alternatively, if the user boots in an unusual manner, such as by attempting a network boot before booting off the system disk, it will reboot the computer and attempt to boot in the expected manner.

製品に組み込み、システムを有効な状態に戻す実施形態を補うことができる多数の付加的な機能が存在する。例えば、マシン上のハードウェアが壊れ、ディスクが他の方法で同一の種であるがマシンにマイグレートされる場合には、TPMの秘密鍵が異なっていてもよい。この場合、マシンの代わりにユーザを認証することができる。多数の機構が、二次認証と呼ばれるものを行うことができる。このための証明書は、容易にアクセス可能なものにする必要はなく、例えば、マシンを再びイネーブルにするために電話をかけることを要求することができる。二次認証は、一次TPM方法によって解読されるものと同じ秘密を提供し、これを別の方法で取得することができる。こうした実施形態は、一次認証方法と同じ方法を用いる場合と比べて、より強力なセキュリティを提供することができる。例えば、マシンのパスワードを覚えやすい形にする必要はなく、全くランダムに生成することができる。マシンがこの二次の方法による認証を必要とするとき、そのマシンのユーザは、IT部門に電話をかける。IT部門は、最適なシステムを用いて、発信者の身元を検証し、該発信者にパスワードを読み上げる。パスワードが入力されたとき、上述のマイグレーション機構をこのシナリオに用い、秘密を新しいTPM PCR値に再秘匿することができる。さらに、こうしたシステムは、一度しか使用できないパスワードをもたらすパスワード・システムを用いることができ、二次認証機構のための新しいパスワードに再び秘匿された秘密には、新たな電話連絡を必要とする。   There are a number of additional features that can be incorporated into the product to supplement the embodiment that returns the system to a valid state. For example, if the hardware on the machine is broken and the disk is otherwise the same seed but migrated to the machine, the TPM secret key may be different. In this case, the user can be authenticated instead of the machine. A number of mechanisms can do what is called secondary authentication. The certificate for this need not be easily accessible, for example, it can require that the phone be called to re-enable the machine. The secondary authentication provides the same secret that is decrypted by the primary TPM method and can be obtained in another way. Such an embodiment can provide stronger security compared to using the same method as the primary authentication method. For example, the machine password does not need to be easy to remember and can be generated entirely randomly. When a machine requires authentication by this secondary method, the machine user calls the IT department. The IT department verifies the identity of the caller using an optimal system and reads the password to the caller. When a password is entered, the migration mechanism described above can be used in this scenario to re-secret the secret to a new TPM PCR value. In addition, such a system can use a password system that yields a password that can only be used once, and a secret that is again hidden in the new password for the secondary authentication mechanism requires a new telephone contact.

コンピュータを安全にブートするためのシステムおよび方法の実施形態は、容易にアップグレードできるように構成することかできる。本発明の実施形態によって監視されるコードは滅多に変更されないが、これらのコード・モジュールの1つが最終的に変更されることは避けられない。さらに、安全なブート・プロセスに用いられる秘密は、システムが最初に構成されたときまたは上述のようなリカバリー後、TPMに秘匿することができる。   Embodiments of systems and methods for securely booting a computer can be configured for easy upgrade. Although the code monitored by embodiments of the present invention is rarely changed, it is inevitable that one of these code modules will eventually be changed. Furthermore, the secret used for the secure boot process can be kept secret to the TPM when the system is first configured or after recovery as described above.

1つまたは複数のブート・コンポーネントをアップグレードする第1の方法は、リカバリー後またはコード修正後に可能になるマイグレーションを利用することができ、TPM PCR値が求められるまで、一時的ストレージ内に格納することができる。多くの実施形態において、PCR値は現在のブートにおいて知られているので、このことは、リブートを必要としない。しかしながら、コード・モジュールが変更された場合には、リブートすることは、新しいコード・モジュールが測定され、値がTPM PCRに格納されることを保証する。   The first method of upgrading one or more boot components can take advantage of migrations that are possible after recovery or code modification and store them in temporary storage until a TPM PCR value is determined. Can do. In many embodiments, this does not require a reboot, as the PCR value is known at the current boot. However, if the code module is changed, rebooting ensures that the new code module is measured and the value is stored in the TPM PCR.

制御されたコード修正環境においては、1つまたは複数のコンポーネントをアップグレードする第2の方法を用いることができる。この場合、新しいコード修正のために予想されるPCR値が予め求められ、システムがリブートされる前に予想されるPCR値に秘密を秘匿することができる。   In a controlled code modification environment, a second method of upgrading one or more components can be used. In this case, an expected PCR value for new code correction is determined in advance, and the secret can be concealed in the expected PCR value before the system is rebooted.

実行中のシステムは、限定でない次の選択肢、すなわち、
・変更前、例えば、サービスパックは、それがOSローダーを変更することを知ることができる。
・変更直後、例えば、ディスクが書式設定された後。
・検証されたシステムについての変更検出後、例えば、シャットダウン時に、システムは、コンポーネントが適法に修正されたことを通知し、マイグレーションをサイレントに行うことができる。
・リカバーの一部として。例えば、システムの起動時に、システムは、リカバーがなされたかどうかを判断し、マイグレーションを行うことができるので、次のブート後にリカバー機構を必要としない。
の1つまたは複数に従って上述のマイグレーションを行うことができる。
The running system has the following non-limiting options:
Before the change, for example, the service pack can know that it changes the OS loader.
• Immediately after the change, eg after the disc has been formatted.
• After detecting a change in a verified system, for example at shutdown, the system can notify that a component has been legally modified and can perform the migration silently.
・ As part of recovery. For example, when the system is started, the system can determine whether recovery has been performed and perform migration, so that a recovery mechanism is not required after the next boot.
The above migration can be performed according to one or more of the following:

安全なブート・プロセスを維持するための更に別のシステムは、TPMの外部に作成される多数の異なる鍵を提供することができる。こうした鍵の各々は、同じRSAキーイング材料を用いることができるが、各々の鍵の使用は、異なるPCRの組および/またはパスワードにバインドしなければならない。事実、こうした付加的な鍵は、全く何にもバインドされなくてもよい。こうした実施形態においては、少なくとも1つのBLOBを、全く何にもバインドされていない各々のディスク・ボリューム(例えば、パーティション)に関連付けることもできる。各々の鍵を異なるブート・コンポーネントから用い、BLOBのプライバシーを保証することができる。パスワード型鍵をリカバーのために用いることができ、RSAキーイング材料を預託することもできる。   Yet another system for maintaining a secure boot process can provide a number of different keys created outside of the TPM. Each of these keys can use the same RSA keying material, but the use of each key must be bound to a different set of PCRs and / or passwords. In fact, these additional keys may not be bound to anything at all. In such embodiments, at least one BLOB can also be associated with each disk volume (eg, partition) that is not bound to anything at all. Each key can be used from a different boot component to ensure BLOB privacy. Password-type keys can be used for recovery and RSA keying material can be deposited.

この手法は、上述の安全なブート・プロセスとは僅かしか違わないが、保守およびサービスの点で著しい利点が明らかになる。すなわち、RSAキーイング材料がTPMの外部で生成され、あらゆる鍵において同一であるという事実によって、このRSA材料は、一事業部門の従業員または全組織の従業員といった多数のユーザに対して、より大きな規模で使用することができる。その結果、その組織のいずれかのマシンの開始およびサービスを可能にするマスター鍵を作成することができる。鍵は、依然として各々のTPMのSRKによって保護されているので、依然として鍵が安全であるとみなすことができる。しかしながら、この実施形態においては、情報技術(IT)部門のような中枢部は、マシンごとに1つの鍵を格納する必要はなく、寧ろ、論理グループごとに1つの鍵を格納する必要がある。また、多数のBLOBにわたって多数の鍵を格納するために、中枢部はブート・ブロック内にわずかに少ない記憶空間だけを必要とする。   This approach is only slightly different from the secure boot process described above, but it has significant advantages in terms of maintenance and service. That is, due to the fact that RSA keying material is generated outside of the TPM and is the same in every key, this RSA material is much larger for a large number of users, such as a business unit employee or an entire organization employee. Can be used on a scale. As a result, a master key can be created that allows any machine in the organization to start and service. Since the key is still protected by each TPM's SRK, it can still be considered secure. However, in this embodiment, a central unit such as an information technology (IT) department does not need to store one key per machine, but rather one key per logical group. Also, in order to store a large number of keys across a large number of BLOBs, the central part only needs slightly less storage space in the boot block.

最後に、上述された実施形態において、管理者は、今やポリシーおよび新しいRSA鍵をプッシュダウンすることができるので、各マシンにおいて鍵が頻繁に変更される。このことにより、マシンの保守費用が低減される。   Finally, in the embodiment described above, the administrator can now push down policies and new RSA keys, so keys are changed frequently on each machine. This reduces machine maintenance costs.

完全ボリューム暗号化および保護されたブートを用いたデータへのアクセスの恒久的破壊
上述された安全なブート・プロセスの副産物は、完全ボリュームの暗号化、即ちパーティション内のほとんど全てのデータの暗号化を効率的且つ効果的にサポートできるという点である。このことは、秘密を破壊し、これによりコンピュータ上のデータにアクセスするのに必要とされる重要な情報の破壊に必要とされる労力を矮小化することができる。この有効なデータ破壊は、特定の設定、特に機密データの廃棄が望まれる場合、より具体的にはこうしたデータの迅速な破棄が望まれる場合に、有用である。
Permanent destruction of data access using full volume encryption and protected boot The by-product of the secure boot process described above is full volume encryption, i.e. encryption of almost all data in a partition. It is the point that it can support efficiently and effectively. This can destroy the secret and thereby reduce the effort required to destroy the important information needed to access the data on the computer. This effective data destruction is useful in certain settings, especially when the destruction of sensitive data is desired, and more specifically when such data is quickly destroyed.

本発明を実装するコンピュータを動作させるのに必要とされる秘密を削除することにより、ソフトウェアを再インストールすることなく、コンピュータが使用不能になり、該コンピューティング上のデータへのアクセスを恒久的に防止することができる。これを達成するために、TPMの内部に格納された秘密を再設定することができる。このことは、TPMの所有者を変更することにより、自明に行うことができる。TPMによって秘匿された秘密は、もはや有効でなくなる。二次的リカバリー機構を破壊する必要もある。しかしながら、リカバリー機構が現場から離れている場合には、この機構を破壊するまでの短い期間、マシンを一時的にディスエーブルにし、その後該マシンをリカバーさせる方法を提供することができる。   By removing the secrets required to operate a computer that implements the present invention, the computer becomes unusable and permanently accessible to data on the computer without having to reinstall the software. Can be prevented. To achieve this, the secret stored inside the TPM can be reset. This can be done by changing the owner of the TPM. Secrets concealed by the TPM are no longer valid. It is also necessary to destroy the secondary recovery mechanism. However, if the recovery mechanism is remote from the site, a method can be provided that temporarily disables the machine for a short period of time before the mechanism is destroyed and then recovers the machine.

TPM内に格納された秘密およびいずれかのリカバー機構の両方が変更されたとき、マシンのコンテンツすなわちコードおよびデータの両方が、取得不能になる。このことにより、マシンのセキュリティの一掃が、極めて迅速に達成される。このような有効にセキュリティを一掃することの1つの利点は、これによりマシンの再販がより現実的になることである。   When both the secret stored in the TPM and any of the recovery mechanisms are changed, the machine content, both code and data, becomes unobtainable. This achieves a very fast cleaning of the machine. One advantage of such effective security erasure is that it makes resale of machines more realistic.

本発明に関連したソフトウェアおよび/またはハードウェア技術を実装するのに適したコンピューティング環境を示す図である。FIG. 7 illustrates a computing environment suitable for implementing software and / or hardware technology associated with the present invention. 多数のネットワーク化装置にわたって現代のコンピューティング技術を実行できることを強調するために、図1の基本的なコンピューティング環境の拡張を提供する図である。FIG. 2 provides an extension of the basic computing environment of FIG. 1 to emphasize that modern computing technology can be implemented across multiple networked devices. 信頼できるプラットフォーム・モジュール(TPM)を利用するコンピューティング・プラットフォームを示す図である。FIG. 1 illustrates a computing platform that utilizes a trusted platform module (TPM). 次のプロセスに移行する前に、複数のソフトウェア・コンポーネントが次のプロセスを測定する例示的なブート・プロセスを示す図である。FIG. 4 illustrates an exemplary boot process in which multiple software components measure the next process before moving to the next process. 次のコンポーネントの実行を可能にする前に、次のソフトウェアまたはプロセスの完全性を保証する、TPMのようなハードウェア・セキュリティ・モジュール(HSM)を用いるための一般的な技術を示す図である。FIG. 2 illustrates a general technique for using a hardware security module (HSM), such as a TPM, that ensures the integrity of the next software or process before enabling execution of the next component. . プロセスに用いられるデータの測定値がTPMによって検証されない限り、ブート・プロセスを進行できないことを確実にするためのシステムおよび方法を示す。1 illustrates a system and method for ensuring that the boot process cannot proceed unless the measurements of data used in the process are verified by the TPM. コンピュータをうまくブートすることが、例示的なコンポーネント即ちブート・マネージャをうまく解読し、測定することに結びついている、図5aに示されるシステムおよび方法の一例を示す図である。FIG. 6 illustrates an example of the system and method shown in FIG. 5a, where successfully booting a computer is associated with successfully decoding and measuring an exemplary component or boot manager. 一定時間リソースにアクセスするブート・コンポーネントを提供し、次にオペレーティング・システムを起動する前に、該リソースへのアクセスを無効にするためのアーキテクチャの動作を示す図である。FIG. 4 illustrates an architectural operation for providing a boot component to access a resource for a period of time and then disabling access to the resource before starting the operating system. 図7のようなアーキテクチャにおいて実行される例示的なステップのためのフローチャートである。FIG. 8 is a flow chart for exemplary steps performed in an architecture such as FIG.

符号の説明Explanation of symbols

100:コンピューティング・システム環境
121:コンピュータ
130:広域エリア・ネットワーク
135:ローカル・エリア・ネットワーク
300:CPU
301、503、504、713:TPM
302:秘密
303、304、502:PCR
307:ログ
100: Computing system environment 121: Computer 130: Wide area network 135: Local area network 300: CPU
301, 503, 504, 713: TPM
302: Secret 303, 304, 502: PCR
307: Log

Claims (20)

記録された値を含み、サブミットされた値を前記記録された値と比較し、前記サブミットされた値が正しい場合に秘密を開示するハードウェア・セキュリティ・モジュール(HSM)を有する、コンピュータ上の安全なブート・プロセスのための命令を有するコンピュータ読取可能な記憶メディアであって、
少なくとも1つの値をHSMにサブミットするための命令であって、前記値が正しい場合に前記HSMが秘密を開示する命令と、
秘密を取り出すための命令と、
前記秘密を取り出した結果アクセス可能になる情報を用いてデータを解読するための命令であって、前記解読のための命令の実行が解読されたデータを生成する命令と、
前記解読されたデータなしで通常のブートを完了できないコンピュータ・ブート・プロセスの少なくとも一部のための命令と、
を備えることを特徴とするコンピュータ読取可能な記憶メディア。
A computer security comprising a hardware security module (HSM) that includes a recorded value, compares the submitted value with the recorded value, and discloses a secret if the submitted value is correct A computer- readable storage medium having instructions for a complete boot process,
An instruction for submitting at least one value to the HSM, wherein the HSM discloses a secret if the value is correct;
An instruction to retrieve the secret,
An instruction for decrypting data using information that can be accessed as a result of extracting the secret, the instruction generating data decrypted by execution of the instruction for decryption;
Instructions for at least part of a computer boot process that cannot complete a normal boot without the decrypted data;
A computer- readable storage medium comprising:
前記HSMは、信頼できるプラットフォーム・モジュール(TPM)であり、少なくとも1つの値は、少なくとも1つのプラットフォーム構成レジスタ(PCR)内に置かれることを特徴とする請求項1に記載のコンピュータ読取可能な記憶メディア。 The computer- readable storage of claim 1, wherein the HSM is a trusted platform module (TPM) and at least one value is placed in at least one platform configuration register (PCR). media. 前記解読されたデータは、コンピュータ・ブート・プロセスに用いられるソフトウェア・コンポーネントを含むことを特徴とする請求項1に記載のコンピュータ読取可能な記憶メディア。 The computer- readable storage medium of claim 1, wherein the decrypted data includes software components used in a computer boot process. 前記解読されたデータは、コンピュータ・プロセスを続けるために、前記コンピュータ・ブート・プロセスに用いられるソフトウェア・コンポーネントが必要とする情報を含むことを特徴とする請求項1に記載のコンピュータ読取可能な記憶メディア。 The computer- readable storage of claim 1, wherein the decrypted data includes information required by software components used in the computer boot process to continue the computer process. media. 前記解読されたデータは、前記コンピュータ読取可能な記憶メディア上に格納されたデータにアクセスするために必要とされる情報を含むことを特徴とする請求項1に記載のコンピュータ読取可能な記憶メディア。 The computer- readable storage medium of claim 1, wherein the decrypted data includes information required to access data stored on the computer- readable storage medium. 前記秘密をメモリから除去するための命令をさらに備えることを特徴とする請求項1に記載のコンピュータ読取可能な記憶メディア。 The computer- readable storage medium of claim 1, further comprising instructions for removing the secret from memory. 記録された値を含み、サブミットされた値を前記記録された値と比較し、サブミットされた値が正しい場合に秘密を開示するハードウェア・セキュリティ・モジュール(HSM)を有するコンピュータであって、前記コンピュータはまた、
少なくとも1つの値を該HSMにサブミットする手段であって、前記値が正しい場合に前記HSMが秘密を開示する手段と、
秘密を取り出すための手段と、
前記秘密を取り出した結果アクセス可能になる情報を用いてデータを解読するための手段であって、前記解読するための手段の動作が解読されたデータを生成する手段と、
前記解読されたデータなしで通常のブートを完了できないコンピュータ・ブート・プロセスの少なくとも一部を含む手段と、
を備えることを特徴とするコンピュータ。
A computer having a hardware security module (HSM) that includes a recorded value, compares the submitted value with the recorded value, and discloses a secret if the submitted value is correct, the computer comprising: The computer is also
Means for submitting at least one value to the HSM, wherein the HSM discloses a secret if the value is correct;
A means to retrieve the secret;
Means for decrypting data using information that is accessible as a result of retrieving the secret, the means for generating data decrypted by the operation of the means for decrypting;
Means including at least part of a computer boot process that cannot complete a normal boot without the decrypted data;
A computer comprising:
前記HSMは、信頼できるプラットフォーム・モジュール(TPM)であり、少なくとも1つの値は、プラットフォーム構成レジスタ(PCR)内に置かれることを特徴とする請求項7に記載のコンピュータ。   The computer of claim 7, wherein the HSM is a trusted platform module (TPM) and at least one value is placed in a platform configuration register (PCR). 前記解読されたデータは、前記コンピュータ・ブート・プロセスに用いられるソフトウェア・コンポーネントを含むことを特徴とする請求項7に記載のコンピュータ。   The computer of claim 7, wherein the decrypted data includes software components used in the computer boot process. 前記解読されたデータは、コンピュータ・プロセスを続けるために、前記コンピュータ・ブート・プロセスに用いられるソフトウェア・コンポーネントが必要とする情報を含むことを特徴とする請求項7に記載のコンピュータ。   The computer of claim 7, wherein the decrypted data includes information required by software components used in the computer boot process to continue the computer process. 前記解読されたデータはコンピュータ読取可能な記憶メディア上に格納されたデータにアクセスするために必要とされる情報を含むことを特徴とする請求項7に記載のコンピュータ。 The decrypted data is a computer according to claim 7, characterized in that it comprises the information needed to access the data stored on a computer readable storage medium. 前記秘密をメモリから除去するための手段をさらに備えることを特徴とする請求項7に記載のコンピュータ。   The computer of claim 7, further comprising means for removing the secret from memory. 複数のパーティションと、記録された値を含み、サブミットされた値を前記記録された値と比較し、前記サブミットされた値が正しい場合に秘密を開示するハードウェア・セキュリティ・モジュール(HSM)とを有するコンピュータ上に、安全なブート・プロセスのための命令を有するコンピュータ読取可能な記憶メディアであって、前記コンピュータ読取可能な記憶メディアは、
少なくとも1つの値をHSMにサブミットする命令であって、前記値が正しい場合に前記HSMが秘密を開示することができる命令と、
第1の秘密を取り出すための命令と、
前記第1の秘密を記憶場所から除去するための命令と、
少なくとも1つの第2の値を該HSMにサブミットするための命令であって、前記第2の値が正しい場合に前記HSMが前記第1の秘密ではなく第2の秘密を開示することができる命令と、
を備えることを特徴とするコンピュータ読取可能な記憶メディア。
A plurality of partitions and a hardware security module (HSM) that includes a recorded value, compares the submitted value with the recorded value, and discloses a secret if the submitted value is correct; A computer- readable storage medium having instructions for a secure boot process on the computer having the computer- readable storage medium,
An instruction to submit at least one value to the HSM, wherein the HSM can disclose a secret if the value is correct;
An instruction to retrieve the first secret;
Instructions for removing the first secret from the storage location;
An instruction for submitting at least one second value to the HSM, wherein the HSM can disclose a second secret instead of the first secret if the second value is correct When,
A computer- readable storage medium comprising:
前記HSMは、信頼できるプラットフォーム・モジュール(TPM)であり、少なくとも1つの値および前記少なくとも1つの第2の値は、プラットフォーム構成レジスタ(PCR)内に置かれることを特徴とする請求項13に記載のコンピュータ読取可能な記憶メディア。 The HSM is a trusted platform module (TPM), wherein at least one value and the at least one second value are placed in a platform configuration register (PCR). Computer- readable storage media. コンピュータ・ブート・プロセスの少なくとも一部のための命令をさらに備え、前記コンピュータ・ブート・プロセスは、前記第1の秘密なしで通常のブートを完了できないことを特徴とする請求項13に記載のコンピュータ読取可能な記憶メディア。 The computer of claim 13, further comprising instructions for at least a portion of a computer boot process, the computer boot process being unable to complete a normal boot without the first secret. A readable storage medium. コンピュータ読取可能な記憶メディアの少なくとも1つのパーティション上に格納されたほぼ全てのデータにアクセスするために、前記第2の秘密が必要とされることを特徴とする請求項13に記載のコンピュータ読取可能な記憶メディア。 Almost all to access the data, computer-readable of claim 13, wherein the second secret is required that is stored on at least one partition of a computer readable storage medium Storage media. 前記第1の値は、コンピュータ・ブート・プロセスに用いられるソフトウェア・コンポーネントのハッシュ値を含むことを特徴とする請求項13に記載のコンピュータ読取可能な記憶メディア。 The computer- readable storage medium of claim 13, wherein the first value comprises a hash value of a software component used in a computer boot process. 前記第2の値は解読鍵のハッシュ値を含むことを特徴とする請求項13に記載のコンピュータ読取可能な記憶メディア。 The computer- readable storage medium according to claim 13, wherein the second value includes a hash value of a decryption key. 前記第1の秘密および前記第2の秘密のうちの少なくとも1つは、バイナリ・ラージ・オブジェクト(BLOB)であることを特徴とする請求項13の記載のコンピュータ読取可能な記憶メディア。 The computer- readable storage medium of claim 13, wherein at least one of the first secret and the second secret is a binary large object (BLOB). 前記第1の秘密および前記第2の秘密のうちの少なくとも1つは解読鍵であることを特徴とする請求項13に記載のコンピュータ読取可能な記憶メディア。 The computer- readable storage medium of claim 13, wherein at least one of the first secret and the second secret is a decryption key.
JP2005353934A 2005-01-07 2005-12-07 System and method for securely booting a computer having a trusted processing module Active JP4837985B2 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US11/031,161 2005-01-07
US11/031,161 US7725703B2 (en) 2005-01-07 2005-01-07 Systems and methods for securely booting a computer with a trusted processing module

Publications (2)

Publication Number Publication Date
JP2006323814A JP2006323814A (en) 2006-11-30
JP4837985B2 true JP4837985B2 (en) 2011-12-14

Family

ID=36569935

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005353934A Active JP4837985B2 (en) 2005-01-07 2005-12-07 System and method for securely booting a computer having a trusted processing module

Country Status (5)

Country Link
US (1) US7725703B2 (en)
EP (2) EP1679632B1 (en)
JP (1) JP4837985B2 (en)
KR (1) KR101219857B1 (en)
CN (1) CN1801091B (en)

Families Citing this family (182)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
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
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
CN1885226A (en) * 2005-06-24 2006-12-27 网际威信控股公司 Data encryption and decryption method, and storage media executing the method, and encryption and decryption module
US7908483B2 (en) * 2005-06-30 2011-03-15 Intel Corporation Method and apparatus for binding TPM keys to execution entities
US20070022243A1 (en) * 2005-07-22 2007-01-25 John Rudelic Method and apparatus capable of disabling authenticated operations and guaranteed secure boot in a wireless platform
US8201240B2 (en) * 2005-09-16 2012-06-12 Nokia Corporation Simple scalable and configurable secure boot for trusted mobile phones
CN100428157C (en) * 2005-10-19 2008-10-22 联想(北京)有限公司 A computer system and method to check completely
US20070101401A1 (en) * 2005-10-27 2007-05-03 Genty Denise M Method and apparatus for super secure network authentication
CN100437502C (en) * 2005-12-30 2008-11-26 联想(北京)有限公司 Safety chip based virus prevention method
US7266475B1 (en) * 2006-02-16 2007-09-04 International Business Machines Corporation Trust evaluation
EP1826697A1 (en) * 2006-02-24 2007-08-29 Giga Games System, SL Method for booting and using software for AWP and B type amusing gaming machines, and for C type casino machines
JP4769608B2 (en) * 2006-03-22 2011-09-07 富士通株式会社 Information processing apparatus having start verification function
US8190916B1 (en) * 2006-07-27 2012-05-29 Hewlett-Packard Development Company, L.P. Methods and systems for modifying an integrity measurement based on user authentication
US8510859B2 (en) 2006-09-26 2013-08-13 Intel Corporation Methods and arrangements to launch trusted, co-existing environments
US7987351B2 (en) * 2006-10-06 2011-07-26 Broadcom Corporation Method and system for enhanced boot protection
US8468591B2 (en) 2006-10-13 2013-06-18 Computer Protection Ip, Llc Client authentication and data management system
US8117429B2 (en) * 2006-11-01 2012-02-14 Nokia Corporation System and method for a distributed and flexible configuration of a TCG TPM-based local verifier
US7613872B2 (en) * 2006-11-28 2009-11-03 International Business Machines Corporation Providing core root of trust measurement (CRTM) for systems using a backup copy of basic input/output system (BIOS)
KR100850583B1 (en) 2006-12-01 2008-08-06 한국전자통신연구원 Method for processing command of TPM and Mobile device using the same
JP5001123B2 (en) * 2006-12-07 2012-08-15 パナソニック株式会社 Recording device, integrated circuit, access control method, program recording medium
JP2008171306A (en) * 2007-01-15 2008-07-24 Ricoh Co Ltd Electronic device and program
CN103124405A (en) * 2007-01-26 2013-05-29 交互数字技术公司 Method and apparatus for securing location information and access control using the location information
US8588421B2 (en) * 2007-01-26 2013-11-19 Microsoft Corporation Cryptographic key containers on a USB token
JP5096022B2 (en) * 2007-03-15 2012-12-12 株式会社リコー Information processing apparatus, software verification method, and software verification program
JP5116325B2 (en) 2007-03-15 2013-01-09 株式会社リコー Information processing apparatus, software update method, and image processing apparatus
JP4903071B2 (en) * 2007-03-15 2012-03-21 株式会社リコー Information processing apparatus, software update method, and image processing apparatus
JP4890309B2 (en) * 2007-03-19 2012-03-07 株式会社リコー Information processing apparatus and information protection method
JP4893411B2 (en) * 2007-03-28 2012-03-07 カシオ計算機株式会社 Terminal device and program
US8151262B2 (en) * 2007-03-30 2012-04-03 Lenovo (Singapore) Pte. Ltd. System and method for reporting the trusted state of a virtual machine
US20080271145A1 (en) * 2007-04-30 2008-10-30 Schiller Mark R Tamper indication system and method for a computing system
KR101124900B1 (en) * 2007-04-30 2012-04-12 인터디지탈 테크날러지 코포레이션 A HOME eNode-B WITH FUNCTIONALITY
US7805598B2 (en) * 2007-05-03 2010-09-28 Dell Products L.P. Auto-detecting and auto-correcting system state changes before booting into operating systems
KR101427646B1 (en) * 2007-05-14 2014-09-23 삼성전자주식회사 Method and apparatus for checking integrity of firmware
US9098448B2 (en) * 2007-05-29 2015-08-04 Dell Products L.P. Intelligent boot services
CN100464341C (en) * 2007-08-31 2009-02-25 深圳兆日技术有限公司 Generation and management method for digital content use trace based on reliable computing technology
US7853804B2 (en) * 2007-09-10 2010-12-14 Lenovo (Singapore) Pte. Ltd. System and method for secure data disposal
US7913074B2 (en) 2007-09-28 2011-03-22 Microsoft Corporation Securely launching encrypted operating systems
US8375440B2 (en) * 2007-10-15 2013-02-12 Microsoft Corporation Secure bait and switch resume
JP4775744B2 (en) * 2007-10-19 2011-09-21 インテル・コーポレーション Method and program for launching a reliable coexistence environment
US8090937B2 (en) * 2007-11-02 2012-01-03 Dell Products L.P. System and method for managing booting of an information handling system
JP5085287B2 (en) * 2007-11-21 2012-11-28 株式会社リコー Information processing apparatus, validity verification method, and validity verification program
US20090172378A1 (en) * 2007-12-28 2009-07-02 Kazmierczak Gregory J Method and system for using a trusted disk drive and alternate master boot record for integrity services during the boot of a computing platform
KR101229306B1 (en) 2008-01-18 2013-02-05 인터디지탈 패튼 홀딩스, 인크 Method and apparatus for enabling machine to machine communication
WO2009096181A2 (en) * 2008-01-30 2009-08-06 Panasonic Corporation Secure boot with optional components method
US20090222635A1 (en) * 2008-03-03 2009-09-03 David Carroll Challener System and Method to Use Chipset Resources to Clear Sensitive Data from Computer System Memory
US8312534B2 (en) * 2008-03-03 2012-11-13 Lenovo (Singapore) Pte. Ltd. System and method for securely clearing secret data that remain in a computer system memory
RU2481616C2 (en) * 2008-06-16 2013-05-10 Нокиа Сименс Нетуоркс Ой Method and device for software download
JP5309709B2 (en) * 2008-06-16 2013-10-09 株式会社リコー Software tampering detection method and device
US8103909B2 (en) * 2008-09-15 2012-01-24 Juniper Networks, Inc. Automatic hardware-based recovery of a compromised computer
US8411863B2 (en) * 2008-10-03 2013-04-02 Microsoft Corporation Full volume encryption in a clustered environment
US8341430B2 (en) * 2008-10-03 2012-12-25 Microsoft Corporation External encryption and recovery management with hardware encrypted storage devices
US9230109B2 (en) 2008-10-07 2016-01-05 Microsoft Technology Licensing, Llc Trusted platform module security
CN102246179A (en) * 2008-10-10 2011-11-16 松下电器产业株式会社 Using transient PCRs to realise trust in application space of a secure processing system
US8732445B2 (en) * 2008-10-10 2014-05-20 Panasonic Corporation Information processing device, information processing method, information processing program, and integrated circuit
US9086913B2 (en) 2008-12-31 2015-07-21 Intel Corporation Processor extensions for execution of secure embedded containers
US8923520B2 (en) * 2009-02-06 2014-12-30 Dell Products L.P. System and method for recovery key management
JP5443498B2 (en) 2009-02-18 2014-03-19 パナソニック株式会社 Information processing apparatus and information processing method
US9805196B2 (en) * 2009-02-27 2017-10-31 Microsoft Technology Licensing, Llc Trusted entity based anti-cheating mechanism
KR101681136B1 (en) 2009-03-06 2016-12-01 인터디지탈 패튼 홀딩스, 인크 Platform validation and management of wireless devices
WO2010113266A1 (en) * 2009-03-31 2010-10-07 富士通株式会社 Information processing device, start-up control method and start-up program thereof
JP4947239B2 (en) 2009-03-31 2012-06-06 富士通株式会社 Information processing apparatus having configuration change verification function and control method thereof
JP5519773B2 (en) * 2009-04-15 2014-06-11 インターデイジタル パテント ホールディングス インコーポレイテッド Device justification and / or authentication for communication with the network
JP5493951B2 (en) * 2009-04-17 2014-05-14 株式会社リコー Information processing apparatus, validity verification method, and program
US8312272B1 (en) * 2009-06-26 2012-11-13 Symantec Corporation Secure authentication token management
US8892862B2 (en) * 2009-07-01 2014-11-18 Panasonic Corporation Secure boot method for executing a software component including updating a current integrity measurement based on whether the software component is enabled
KR101042857B1 (en) * 2009-09-03 2011-06-20 주식회사 잉카인터넷 method for blocking excution of hacking process
US8250379B2 (en) * 2009-10-13 2012-08-21 Microsoft Corporation Secure storage of temporary secrets
US8510569B2 (en) * 2009-12-16 2013-08-13 Intel Corporation Providing integrity verification and attestation in a hidden execution environment
CN102004876B (en) * 2009-12-31 2012-07-18 郑州信大捷安信息技术股份有限公司 Security terminal reinforcing model and reinforcing method of tolerable non-trusted component
CN102214278B (en) * 2010-04-06 2013-04-10 国民技术股份有限公司 Creditability detection method of computer
US8782434B1 (en) 2010-07-15 2014-07-15 The Research Foundation For The State University Of New York System and method for validating program execution at run-time
US8904189B1 (en) 2010-07-15 2014-12-02 The Research Foundation For The State University Of New York System and method for validating program execution at run-time using control flow signatures
US20120084562A1 (en) * 2010-10-04 2012-04-05 Ralph Rabert Farina Methods and systems for updating a secure boot device using cryptographically secured communications across unsecured networks
US8627464B2 (en) 2010-11-02 2014-01-07 Microsoft Corporation Globally valid measured operating system launch with hibernation support
KR101622447B1 (en) 2010-11-05 2016-05-31 인터디지탈 패튼 홀딩스, 인크 Device validation, distress indication, and remediation
US9489232B2 (en) 2010-11-18 2016-11-08 International Business Machines Corporation Techniques for attesting data processing systems
US8560845B2 (en) * 2011-01-14 2013-10-15 Apple Inc. System and method for tamper-resistant booting
GB2501433B (en) 2011-01-19 2014-06-04 Ibm Ensuring the integrity of software
US20120233449A1 (en) * 2011-03-11 2012-09-13 Thibadeau Robert H Methods and systems for measuring trustworthiness of a self-protecting drive
JP5736994B2 (en) * 2011-06-15 2015-06-17 株式会社リコー Information processing apparatus, validity verification method, and program
WO2013009619A2 (en) * 2011-07-08 2013-01-17 Openkeak Inc. System and method for validating components during a booting process
US20140149729A1 (en) * 2011-07-18 2014-05-29 Ted A. Hadley Reset vectors for boot instructions
US8732527B2 (en) 2011-08-16 2014-05-20 Google Inc. Secure recovery apparatus and method
US8874935B2 (en) 2011-08-30 2014-10-28 Microsoft Corporation Sector map-based rapid data encryption policy compliance
US8812830B2 (en) 2011-08-31 2014-08-19 Microsoft Corporation Attestation protocol for securely booting a guest operating system
US9014023B2 (en) 2011-09-15 2015-04-21 International Business Machines Corporation Mobile network services in a mobile data network
JP5278520B2 (en) * 2011-10-17 2013-09-04 株式会社リコー Information processing apparatus and information protection method
US8775784B2 (en) 2011-11-11 2014-07-08 International Business Machines Corporation Secure boot up of a computer based on a hardware based root of trust
US8971192B2 (en) 2011-11-16 2015-03-03 International Business Machines Corporation Data breakout at the edge of a mobile data network
US8938621B2 (en) * 2011-11-18 2015-01-20 Qualcomm Incorporated Computing device integrity protection
US8892858B2 (en) 2011-12-29 2014-11-18 Intel Corporation Methods and apparatus for trusted boot optimization
JP5519712B2 (en) * 2012-01-20 2014-06-11 レノボ・シンガポール・プライベート・リミテッド Method of booting a computer and computer
US8793504B2 (en) * 2012-02-22 2014-07-29 International Business Machines Corporation Validating a system with multiple subsystems using trusted platform modules and virtual platform modules
KR101897605B1 (en) * 2012-02-24 2018-09-12 삼성전자 주식회사 Method and apparatus for securing integrity of mobile termninal
US9262637B2 (en) * 2012-03-29 2016-02-16 Cisco Technology, Inc. System and method for verifying integrity of platform object using locally stored measurement
JP5310897B2 (en) * 2012-04-02 2013-10-09 株式会社リコー Information processing apparatus, software update method, and recording medium
UA76687U (en) * 2012-07-04 2013-01-10 Владимир Евгеньевич Цвигун System for controlling operational system load
JP5961059B2 (en) * 2012-07-18 2016-08-02 キヤノン株式会社 Information processing apparatus and activation method thereof
JP2012234580A (en) * 2012-09-05 2012-11-29 Ricoh Co Ltd Information processing apparatus, validity verification method and validity verification program
US9122873B2 (en) 2012-09-14 2015-09-01 The Research Foundation For The State University Of New York Continuous run-time validation of program execution: a practical approach
WO2014046974A2 (en) 2012-09-20 2014-03-27 Case Paul Sr Case secure computer architecture
JP5234217B2 (en) * 2012-11-14 2013-07-10 株式会社リコー Information processing apparatus, software update method, and program
JP5500232B2 (en) * 2012-11-26 2014-05-21 株式会社リコー Information processing apparatus and information protection method
JP5842800B2 (en) 2012-12-20 2016-01-13 カシオ計算機株式会社 Control system, information processing apparatus, terminal apparatus, control method, and control program
US9465943B2 (en) * 2013-01-31 2016-10-11 Red Hat, Inc. Extension of a platform configuration register with a known value
US9280687B2 (en) * 2013-03-15 2016-03-08 Lenovo (Singapore) Pte. Ltd. Pre-boot authentication using a cryptographic processor
CN103218562A (en) * 2013-03-21 2013-07-24 东信和平科技股份有限公司 Reliable protection method and system for mobile terminal
US9594638B2 (en) * 2013-04-15 2017-03-14 Amazon Technologies, Inc. Host recovery using a secure store
US9619238B2 (en) 2013-04-15 2017-04-11 Amazon Technologies, Inc. Remote attestation of host devices
AU2014254276B2 (en) * 2013-04-15 2016-11-17 Amazon Technologies, Inc. Host recovery using a secure store
JP5574007B2 (en) * 2013-04-26 2014-08-20 株式会社リコー Information processing apparatus and information protection method
US20140344570A1 (en) 2013-05-20 2014-11-20 Microsoft Corporation Data Protection For Organizations On Computing Devices
JP5582231B2 (en) * 2013-07-18 2014-09-03 株式会社リコー Information processing apparatus, authenticity confirmation method, and recording medium
US9542568B2 (en) * 2013-09-25 2017-01-10 Max Planck Gesellschaft Zur Foerderung Der Wissenschaften E.V. Systems and methods for enforcing third party oversight of data anonymization
US9519498B2 (en) * 2013-12-24 2016-12-13 Microsoft Technology Licensing, Llc Virtual machine assurances
KR102186609B1 (en) 2014-03-07 2020-12-03 삼성전자주식회사 Electronic system having integrity verification device
CN103812648B (en) * 2014-03-13 2017-03-22 深圳数字电视国家工程实验室股份有限公司 PSA key generating method and device
US10615967B2 (en) 2014-03-20 2020-04-07 Microsoft Technology Licensing, Llc Rapid data protection for storage devices
CN104951316B (en) 2014-03-25 2018-09-21 华为技术有限公司 A kind of credible startup method and apparatus of kernel
CN103927488A (en) * 2014-04-04 2014-07-16 西安电子科技大学 Trusted platform module aiming at trusted embedded system
US9672361B2 (en) * 2014-04-30 2017-06-06 Ncr Corporation Self-service terminal (SST) secure boot
US9652631B2 (en) 2014-05-05 2017-05-16 Microsoft Technology Licensing, Llc Secure transport of encrypted virtual machines with continuous owner access
US10032029B2 (en) * 2014-07-14 2018-07-24 Lenovo (Singapore) Pte. Ltd. Verifying integrity of backup file in a multiple operating system environment
JP2016025616A (en) 2014-07-24 2016-02-08 レノボ・シンガポール・プライベート・リミテッド Method for protecting data stored in disk drive, and portable computer
JP6362483B2 (en) * 2014-09-02 2018-07-25 キヤノン株式会社 Information processing apparatus, information processing method, and program
US9825945B2 (en) 2014-09-09 2017-11-21 Microsoft Technology Licensing, Llc Preserving data protection with policy
US9853812B2 (en) 2014-09-17 2017-12-26 Microsoft Technology Licensing, Llc Secure key management for roaming protected content
US9928080B2 (en) * 2014-09-30 2018-03-27 International Business Machines Corporation Hardware security module access management in a cloud computing environment
US9584317B2 (en) 2014-10-13 2017-02-28 Microsoft Technology Licensing, Llc Identifying security boundaries on computing devices
US10229272B2 (en) 2014-10-13 2019-03-12 Microsoft Technology Licensing, Llc Identifying security boundaries on computing devices
US9900295B2 (en) 2014-11-05 2018-02-20 Microsoft Technology Licensing, Llc Roaming content wipe actions across devices
US9519787B2 (en) 2014-11-14 2016-12-13 Microsoft Technology Licensing, Llc Secure creation of encrypted virtual machines from encrypted templates
US9729319B2 (en) 2014-12-15 2017-08-08 Nxp Usa, Inc. Key management for on-the-fly hardware decryption within integrated circuits
US9418246B2 (en) 2014-12-15 2016-08-16 Freescale Semiconductor, Inc. Decryption systems and related methods for on-the-fly decryption within integrated circuits
EP3040896A1 (en) * 2014-12-30 2016-07-06 Gemalto Sa Secure element
US10120696B2 (en) * 2015-03-19 2018-11-06 Sony Corporation Method and device for controlling usability of a communication device
US9578020B2 (en) 2015-03-19 2017-02-21 Sony Corporation Module for controlling usability of a device
US9853820B2 (en) 2015-06-30 2017-12-26 Microsoft Technology Licensing, Llc Intelligent deletion of revoked data
GB2540408B (en) 2015-07-16 2021-09-15 Trw Ltd Electronic control units for vehicles
US10223294B2 (en) 2015-09-01 2019-03-05 Nxp Usa, Inc. Fast secure boot from embedded flash memory
US9900325B2 (en) 2015-10-09 2018-02-20 Microsoft Technology Licensing, Llc Passive encryption of organization data
CN107533594B (en) 2016-01-21 2021-01-26 慧与发展有限责任合伙企业 Method for verifying software, safety software system and readable storage medium
US10210040B2 (en) 2016-01-28 2019-02-19 Nxp Usa, Inc. Multi-dimensional parity checker (MDPC) systems and related methods for external memories
GB2547025A (en) 2016-02-05 2017-08-09 Thales Holdings Uk Plc A method of data transfer, a method of controlling use of data and a cryptographic device
US10528739B2 (en) * 2016-04-20 2020-01-07 Sophos Limited Boot security
US9916452B2 (en) * 2016-05-18 2018-03-13 Microsoft Technology Licensing, Llc Self-contained cryptographic boot policy validation
US10313121B2 (en) 2016-06-30 2019-06-04 Microsoft Technology Licensing, Llc Maintaining operating system secrets across resets
US10242195B2 (en) * 2016-07-22 2019-03-26 Hewlett Packard Enterprise Development Lp Integrity values for beginning booting instructions
US10177910B2 (en) * 2016-08-31 2019-01-08 Microsoft Technology Licensing, Llc Preserving protected secrets across a secure boot update
RU169208U1 (en) * 2016-09-22 2017-03-09 Российская Федерация, от имени которой выступает Министерство обороны Российской Федерации COMPUTER SYSTEM
CN110214434B (en) * 2016-11-23 2022-12-23 恩图鲁斯特咨询卡有限公司 Printer identification and security
US10318738B2 (en) * 2016-12-27 2019-06-11 Intel Corporation Distributed secure boot
TWI615732B (en) * 2016-12-27 2018-02-21 瑞昱半導體股份有限公司 Electronic component of electronic device, method of starting electronic device and encryption method
DE102017204081A1 (en) 2017-03-13 2018-09-13 Siemens Aktiengesellschaft Method and device for checking the integrity of data stored in a predetermined memory area of a memory
US10929572B2 (en) 2017-04-10 2021-02-23 Nyquist Semiconductor Limited Secure data storage device with security function implemented in a data security bridge
US11263326B2 (en) * 2017-06-02 2022-03-01 Apple Inc. Method and apparatus for secure system boot
US10417429B2 (en) 2017-06-02 2019-09-17 Apple Inc. Method and apparatus for boot variable protection
WO2018236420A1 (en) * 2017-06-20 2018-12-27 Google Llc Cloud hardware security modules for outsourcing cryptographic operations
US10462664B2 (en) * 2017-08-02 2019-10-29 Dell Products, Lp System and method for control of baseboard management controller ports
EP3673401A4 (en) 2017-08-22 2021-04-14 Absolute Software Corporation Firmware integrity check using silver measurements
US10735190B1 (en) 2017-11-16 2020-08-04 Amazon Technologies, Inc. Persistent TPM-based identifier and key pair
US11374745B1 (en) * 2017-11-29 2022-06-28 Amazon Technologies, Inc. Key usage tracking using TPM
US10642970B2 (en) * 2017-12-12 2020-05-05 John Almeida Virus immune computer system and method
US10614254B2 (en) * 2017-12-12 2020-04-07 John Almeida Virus immune computer system and method
US10936722B2 (en) * 2018-04-18 2021-03-02 Nuvoton Technology Corporation Binding of TPM and root device
US20190342298A1 (en) * 2018-05-02 2019-11-07 Samsung Electronics Co., Ltd. System and method for resource access authentication
TWI684887B (en) 2018-06-26 2020-02-11 和碩聯合科技股份有限公司 Automatic verification method and system thereof
CN110677250B (en) 2018-07-02 2022-09-02 阿里巴巴集团控股有限公司 Key and certificate distribution method, identity information processing method, device and medium
CN110795742B (en) 2018-08-02 2023-05-02 阿里巴巴集团控股有限公司 Metric processing method, device, storage medium and processor for high-speed cryptographic operation
CN110795774B (en) * 2018-08-02 2023-04-11 阿里巴巴集团控股有限公司 Measurement method, device and system based on trusted high-speed encryption card
CN110874478B (en) 2018-08-29 2023-05-02 阿里巴巴集团控股有限公司 Key processing method and device, storage medium and processor
CN109117643B (en) * 2018-09-05 2021-05-07 郑州云海信息技术有限公司 System processing method and related equipment
JP7170482B2 (en) * 2018-09-20 2022-11-14 キヤノン株式会社 Information processing device, its control method, and program
CN109558738A (en) * 2018-12-07 2019-04-02 郑州云海信息技术有限公司 A kind of mobile platform is credible control device and its method
US11048802B2 (en) * 2019-05-09 2021-06-29 X Development Llc Encrypted hard disk imaging process
US11645393B2 (en) 2019-06-28 2023-05-09 Seagate Technology Llc Secure booting in a data storage device with front end bus
US11388008B2 (en) 2019-07-16 2022-07-12 International Business Machines Corporation Trusted platform module swarm
EP3933631B1 (en) 2020-06-30 2023-04-12 NXP USA, Inc. Fast and versatile multicore soc secure boot method
US11797680B2 (en) * 2020-08-28 2023-10-24 Micron Technology, Inc. Device with chain of trust
KR102387685B1 (en) * 2020-11-03 2022-05-30 유비벨록스(주) Secure Boot Verification Method and Secure Element for the Same
US11803454B2 (en) * 2021-04-30 2023-10-31 Dell Products L.P. Chained loading with static and dynamic root of trust measurements
WO2023048706A1 (en) * 2021-09-22 2023-03-30 Hewlett-Packard Development Company, L.P. Emulated network response

Family Cites Families (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5937063A (en) * 1996-09-30 1999-08-10 Intel Corporation Secure boot
US6189100B1 (en) * 1998-06-30 2001-02-13 Microsoft Corporation Ensuring the integrity of remote boot client data
US6401208B2 (en) * 1998-07-17 2002-06-04 Intel Corporation Method for BIOS authentication prior to BIOS execution
US6330670B1 (en) * 1998-10-26 2001-12-11 Microsoft Corporation Digital rights management operating system
US6327652B1 (en) * 1998-10-26 2001-12-04 Microsoft Corporation Loading and identifying a digital rights management operating system
US6684326B1 (en) * 1999-03-31 2004-01-27 International Business Machines Corporation Method and system for authenticated boot operations in a computer system of a networked computing environment
US6651171B1 (en) * 1999-04-06 2003-11-18 Microsoft Corporation Secure execution of program code
US6643781B1 (en) * 1999-05-14 2003-11-04 Sun Microsystems, Inc. Method and apparatus for rendering stolen computing devices inoperable
US6757824B1 (en) * 1999-12-10 2004-06-29 Microsoft Corporation Client-side boot domains and boot rules
US7117376B2 (en) * 2000-12-28 2006-10-03 Intel Corporation Platform and method of creating a secure boot that enforces proper user authentication and enforces hardware configurations
DE60228027D1 (en) * 2001-07-06 2008-09-18 Texas Instruments Inc Secure bootloader for backing up digital devices
US7237121B2 (en) * 2001-09-17 2007-06-26 Texas Instruments Incorporated Secure bootloader for securing digital devices
US7779267B2 (en) * 2001-09-04 2010-08-17 Hewlett-Packard Development Company, L.P. Method and apparatus for using a secret in a distributed computing system
US7117121B2 (en) * 2001-09-11 2006-10-03 Zonar Compliance Systems, Llc System and process to ensure performance of mandated inspections
US7191464B2 (en) 2001-10-16 2007-03-13 Lenovo Pte. Ltd. Method and system for tracking a secure boot in a trusted computing environment
US7343493B2 (en) 2002-03-28 2008-03-11 Lenovo (Singapore) Pte. Ltd. Encrypted file system using TCPA
US6907522B2 (en) * 2002-06-07 2005-06-14 Microsoft Corporation Use of hashing in a secure boot loader
US7558958B2 (en) * 2002-06-13 2009-07-07 Microsoft Corporation System and method for securely booting from a network
US7216369B2 (en) * 2002-06-28 2007-05-08 Intel Corporation Trusted platform apparatus, system, and method
US20040117318A1 (en) * 2002-12-16 2004-06-17 Grawrock David W. Portable token controlling trusted environment launch
JP3724577B2 (en) * 2003-02-06 2005-12-07 インターナショナル・ビジネス・マシーンズ・コーポレーション Information processing apparatus, control method for information processing apparatus, and control program for information processing apparatus
TWI319147B (en) * 2003-04-10 2010-01-01 Lenovo Singapore Pte Ltd Apparatus, motherboard, method and computer-readable storage medium recording instructions capable of determinging physical presence in a trusted platform in a computer system
JP2004355561A (en) * 2003-05-30 2004-12-16 Sony Corp Starting device
US7318150B2 (en) * 2004-02-25 2008-01-08 Intel Corporation System and method to support platform firmware as a trusted process
US20060047944A1 (en) * 2004-09-01 2006-03-02 Roger Kilian-Kehr Secure booting of a computing device
JP4562464B2 (en) * 2004-09-07 2010-10-13 富士通株式会社 Information processing device
US7711942B2 (en) * 2004-09-23 2010-05-04 Hewlett-Packard Development Company, L.P. Computer security system and method

Also Published As

Publication number Publication date
CN1801091B (en) 2010-10-06
KR101219857B1 (en) 2013-01-10
EP1679632B1 (en) 2017-11-08
JP2006323814A (en) 2006-11-30
KR20060081334A (en) 2006-07-12
US7725703B2 (en) 2010-05-25
CN1801091A (en) 2006-07-12
EP3125149B1 (en) 2020-01-29
EP3125149A1 (en) 2017-02-01
US20060155988A1 (en) 2006-07-13
EP1679632A2 (en) 2006-07-12
EP1679632A3 (en) 2006-08-02

Similar Documents

Publication Publication Date Title
JP4837985B2 (en) System and method for securely booting a computer having a trusted processing module
EP2681689B1 (en) Protecting operating system configuration values
US7565553B2 (en) Systems and methods for controlling access to data on a computer with a secure boot process
US7506380B2 (en) Systems and methods for boot recovery in a secure boot process on a computer with a hardware security module
US8028172B2 (en) Systems and methods for updating a secure boot process on a computer with a hardware security module
JP5510550B2 (en) Hardware trust anchor
US9117092B2 (en) Approaches for a location aware client
US8745386B2 (en) Single-use authentication methods for accessing encrypted data
US8789037B2 (en) Compatible trust in a computing device
US8826405B2 (en) Trusting an unverified code image in a computing device
JP5959749B2 (en) How to protect your operating system from malicious software attacks
JP4848458B2 (en) Persistent security system and persistent security method
WO2013048407A1 (en) Apparatus, system, and method for providing memory access control
CN107679425B (en) Trusted boot method based on firmware and USBKey combined full disk encryption
JP2008171389A (en) Method for domain logon and computer

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20081121

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110520

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110822

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

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

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20110929

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20141007

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 4837985

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

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

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

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

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