JP5970141B2 - コンピュータでソフトウェア・モジュールを実行するための方法、ブートローダ、ユーザ信頼デバイス、およびシステム - Google Patents
コンピュータでソフトウェア・モジュールを実行するための方法、ブートローダ、ユーザ信頼デバイス、およびシステム Download PDFInfo
- Publication number
- JP5970141B2 JP5970141B2 JP2016504781A JP2016504781A JP5970141B2 JP 5970141 B2 JP5970141 B2 JP 5970141B2 JP 2016504781 A JP2016504781 A JP 2016504781A JP 2016504781 A JP2016504781 A JP 2016504781A JP 5970141 B2 JP5970141 B2 JP 5970141B2
- Authority
- JP
- Japan
- Prior art keywords
- computer
- software modules
- ram disk
- stored
- memory
- 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.)
- Expired - Fee Related
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/57—Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
- G06F21/575—Secure boot
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/4401—Bootstrapping
- G06F9/4406—Loading of operating system
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/14—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
- H04L63/1441—Countermeasures against malicious traffic
- H04L63/145—Countermeasures against malicious traffic the attack involving the propagation of malware through the network, e.g. viruses, trojans or worms
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2221/00—Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/03—Indexing scheme relating to G06F21/50, monitoring users, programs or devices to maintain the integrity of platforms
- G06F2221/033—Test or assess software
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2221/00—Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/21—Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/2141—Access rights, e.g. capability lists, access control lists, access tables, access matrices
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Health & Medical Sciences (AREA)
- Virology (AREA)
- General Health & Medical Sciences (AREA)
- Stored Programmes (AREA)
Description
コンピュータ、好ましくはそのコンピュータのメイン・メモリで少なくとも部分的にブートローダを実行するステップと、
ブートローダが実行されると、
ソフトウェア・モジュールの最初の組に関する要件、および
コンピュータのハードウェアの仕様
にアクセスするステップと、
前記最初の組の中で、前記ハードウェアの仕様に適合し、RAMディスクとして記憶され得るソフトウェア・モジュールの1つまたは複数の候補の組を決定するステップと、
最終的な組のソフトウェア・モジュールをRAMディスクに記憶することであって、最終的な組が、1つまたは複数の候補の組のうちの1つである、前記記憶すること、およびRAMディスクに記憶されたソフトウェア・モジュールを実行するように命令することを行うステップとを含み、
ソフトウェア・モジュールの最初の組および最終的な組のそれぞれが、アプリケーション・コンポーネントおよびオペレーティング・システム・イメージ・コンポーネントを含み、好ましくはハードウェア・コンポーネントのドライバをさらに含む、方法として具現化される。
ユーザ信頼デバイスをコンピュータに接続すると、ブートローダの少なくとも一部が、転送された部分をその後実行するために、コンピュータに、好ましくはコンピュータのメイン・メモリに転送されるようにするステップをさらに含む。
転送されたソフトウェア・モジュールをRAMディスクとしてその後記憶し、実行するために、ユーザ信頼デバイスからコンピュータのメイン・メモリに最終的な組のソフトウェア・モジュールを転送するステップをさらに含む。
好ましくは、コンピュータ、好ましくはコンピュータのメイン・メモリで実行されるブートローダの別の部分とインタラクティブにユーザ信頼デバイスで実行されるブートローダの部分により、ユーザ信頼デバイスから受信された入力に従って、ソフトウェア・モジュールのいくつかの候補の組からソフトウェア・モジュールの1つの最終的な組を特定するステップをさらに含む。概して、これは、ユーザ信頼デバイスに組み込まれた表示およびI/O能力を介して部分的にユーザのインタラクションにより行われる。
RAMディスクで実行されるソフトウェア・モジュールの最終的な組に入っていないソフトウェア・モジュールの追加の組を決定するステップと、
好ましくは暗号化されたこの追加の組のソフトウェア・モジュールを、その後実行するためにコンピュータの物理的なストレージ媒体に記憶するステップとをさらに含む。
− コンピュータのメイン・メモリの容量と、
− コンピュータのプロセッサ・アーキテクチャと、
− コンピュータのストレージ媒体の容量と、
− 仮想化がサポートされるかどうかと
のうちの1つまたは複数に関してテストを実行するステップを含み、
好ましくは、前記テストの少なくとも一部は、最初の組のソフトウェア・モジュールに論理的にリンクされ、より好ましくは、RAMディスクとして記憶され得るソフトウェア・モジュールの1つまたは複数の候補の組を決定するステップは、実行されたテストの結果に従ってソフトウェア・モジュールを優先順位付けするステップを含む。
好ましくは、RAMディスクとして記憶され得るソフトウェア・モジュールの前記1つまたは複数の候補の組を決定するステップの前にRAMディスクのためのメモリを割り当てるステップをさらに含み、
ソフトウェア・モジュールを記憶するステップは、
最終的な組のソフトウェア・モジュールに応じてRAMディスクのためのファイル・システムのメタデータを計算するステップであって、前記メタデータが、これらのソフトウェア・モジュールを構成するどのファイルが記憶されるべきであるか、およびこれらのソフトウェア・モジュールがファイル・システムのどこに記憶されるべきであるかを指定する、計算する前記ステップと、
メタデータを、RAMディスクの個々のメモリ・セクション、例えば、メモリ・ブロックに書き込むステップと、
最終的な組のソフトウェア・モジュールのファイルを、ファイル・システムで1つずつメモリ・セクションにメタデータに従ってコピーするステップとを含む。
前記最初の組の中で、前記ハードウェアの仕様に適合し、RAMディスクとして記憶され得るソフトウェア・モジュールの1つまたは複数の候補の組を決定することと、
最終的な組のソフトウェア・モジュールをRAMディスクに記憶することであって、最終的な組が、1つまたは複数の候補の組のうちの1つである、前記記憶すること、およびRAMディスクに記憶されたソフトウェア・モジュールを実行するように命令することと
を引き起こすように構成され、
ソフトウェア・モジュールの最初の組および最終的な組のそれぞれが、アプリケーション・コンポーネントおよびオペレーティング・システム・イメージ・コンポーネントを含み、好ましくはハードウェア・コンポーネントのドライバをさらに含む、ブートローダとして具現化され得る。
コンピュータとの接続を可能にする接続インターフェースと、
本発明によるブートローダ、および
好ましくは、アプリケーション・コンポーネント、オペレーティング・システム・イメージ・コンポーネント、および好ましくはハードウェア・コンポーネントのドライバを含むソフトウェア・モジュール
を記憶する永続的なメモリとを含む、ユーザ信頼デバイスとして具現化され得る。
ブートローダの第1の部分が記憶される安全なメモリと、
ブートローダの第2の部分が記憶される安全でないメモリとを含む。
仮想化に反応するコード(virtualization sensitive code)を実行し、実行が完了すると完了データを発するようにコンピュータのプロセッサに命令することと、
そのような完了データに基づいて、実行が仮想化された環境で行われたかどうかを決定することと、
仮想化に反応するコードの実行が仮想化された環境で行われたかどうかにも応じてソフトウェア・モジュールの前記1つまたは複数の候補の組を決定することとを引き起こすようにさらに構成される。
ファームウェア・データをコードにマッピングすることであって、ファームウェア・データが、コンピュータの初期化ファームウェアのプログラム・コードまたは初期化ファームウェアによってアクセスされ得るデータあるいはその両方を含む、前記マッピングすることと、
コードの信用性を証明することと、
コードが証明されたかどうかにも従ってソフトウェア・モジュールの前記1つまたは複数の候補の組を決定することとを引き起こすようにさらに構成される。
1.1 本発明の実施形態を実装するのに好適なコンピュータ化されたシステムおよびデバイスの全般的な態様
図1は、本発明の実施形態に含まれる方法のステップを実施するのに好適な通常のコンピュータ化されたシステムを示す。
図1から4を参照して、ソフトウェア・モジュールがアプリケーション・コンポーネント、オペレーティング・システム・イメージ・コンポーネント、および好ましくはハードウェア・コンポーネントのドライバも含む、コンピュータでソフトウェア・モジュールを実行するための方法に関係する本発明の一態様が、最初に説明される。図3および4に示されるように、方法は、主に以下のステップを含む。
− ステップS4:少なくとも部分的にコンピュータ101で、好ましくはコンピュータのメイン・メモリでコンポーネント16を実行する。
− ブートローダが実行されると、
〇ステップS5:以下のものにアクセスする。
◆ソフトウェア・モジュールSMnの最初の組ISに関する要件(S5i)、および
◆コンピュータ101、例えば、PCのハードウェアの仕様(S5ii)
〇ステップS6:前記最初の組の中で、前記ハードウェアの仕様に準拠し(ステップS6a)、RAMディスクとして記憶され得る(ステップS6b)ソフトウェア・モジュールの1つまたは複数の候補の組CS1およびCS2を決定する。
◆したがって、ここで選択されるソフトウェア・モジュールは、一方で、ハードウェアの仕様に適合し、他方で、それ自体がコンピュータ101のハードウェアの能力に必然的に依存するRAMディスクとしての記憶に好適でなければならない。RAMディスクは、保有されるソフトウェア・モジュールを実行する目的のために厳密に設定されることが好ましいのでこの段階ではまだ存在しない可能性があることに留意されたい。RAMディスクは、そのRAMディスクにモジュールを記憶する前の任意の時間に設定され得る。
〇ステップS9:RAMディスク121に最終的な組FSのソフトウェア・モジュールを記憶し、RAMディスクに記憶されたソフトウェア・モジュールを実行するように命令する。最終的な組FSは、例えば、何らかの好適なポリシーに従って選択された候補の組CS1、CS2、...のうちの1つである。
− クライアントのアカウント情報がアクセスされ、おそらくはクライアントの資産がアクセス/管理されるe−バンキング・アプリケーション、または
− 安全なメッセージング・システム・アプリケーションである。
− 第1に、人が、最初の組の中で、前記ハードウェアの仕様に適合するソフトウェア・モジュールの第1のサブセットを決定し、
− 第2に、人が、前記第1のサブセットの中で、RAMディスクとして記憶され得るソフトウェア・モジュールの1つまたは複数の第2のサブセットを決定する。このようにして、それらの技術的に妥当なソフトウェア・モジュールのみが、RAMディスクとして実行されるためのあり得る候補と見なされる。
− 後で検討されるように、実際は、その他のサブステップが含まれる可能性がある。
− ユーザ信頼デバイス(または別のソース、ローカル・コンピュータ、ネットワークなど)から最終的に保有されるソフトウェア・モジュールをロードすること、および
− 好ましくは、前記モジュールをRAMディスクとして記憶し、それらのモジュールを実行する前にそれらのモジュールを復号すること
− 前記モジュールをRAMディスクとして記憶し、それらのモジュールを実行すること。
動作の発生順の観点で、ソフトウェア・モジュールSMmは、ソフトウェア・モジュールをRAMディスクに記憶する前であるが、好ましくは、ソフトウェア・モジュールのどの潜在的な組が、一方でハードウェアの仕様に適合し、他方でRAMディスクとしての記憶に好適であるかを決定した後に転送されることに留意されたい。
1.セキュリティ上の機密性が高いデータが修正される可能性がある、
2.セキュリティ上の機密性が高いデータが読み取られる可能性がある、または
3.いかなる場合もセキュリティ上の機密性が高いデータがアクセスされない可能性がある、
あるいはこれらすべての可能性があるかどうかに基づく可能性がある。
− コンピュータのプロセッサ・アーキテクチャ(例えば、32対64ビット、図5の「64bit」)、
− コンピュータのストレージ媒体120の容量、および
− 仮想化がサポートされるかどうか(図5の「hasvm」)。このテストは、以下で検討されるように、セキュリティ上のリスクになり得る、コンピュータが仮想環境内で(既に)実行されているかどうかを調べること(「invm」)とは異なることに留意されたい。もっと正確に言えば、「hasvm」テストは、仮想コンピュータ、つまり、この方法の制御下に残る仮想コンピュータを起動し、この方法の一部を実施する目的で、その仮想コンピュータ内でソフトウェアを実行させることをコンピュータが許すかどうかを調べる。
− コンピュータがどこにあるか(miscテスト)
− ユーザが何をしたいか(データの読み取りのみ、またはデータの修正)
第1に、ステップS9b、(RAMディスクに関する)ファイル・システム121fsのメタデータMDlが、最終的な組FSに実際に保有されるソフトウェア・モジュールに応じて、つまり、基づいて計算される。これらのメタデータは、どの(ソフトウェア・モジュールの)ファイルが記憶されるべきであるか、およびそれらのファイルがファイル・システム上のどこに記憶されるべきであるか、より厳密には、どのファイルがRAMディスクのどのメモリ・セクションに記憶されるべきであるかを指定する。第1の変形形態の独自性は、メタデータが、RAMディスクのメモリ・セクションに後で記憶されるファイルを考慮してメタデータが前もって計算されることである。換言すると、RAMファイル・システムのアーキテクチャは、通常のRAMディスク・ファイルシステム構築方法とは異なり、これらのファイルが準拠しなければならない通常のアーキテクチャであるのではなく、後で記憶される特定のファイルに少なくとも部分的に基づく。
第2に、メタデータが、個々のメモリ・セクション、例えば、メモリ・ブロック(またはデータ・ブロック)に書き込まれ(ステップS9c)、
最後に、最終的な組のソフトウェア・モジュールのファイルFijが、ファイル・システムで、メモリ・セクションに、メタデータMDlに従って1つずつコピーされる(ステップS9d)。例示として、図6は、利用可能なRAM空間の一部の抽象的な表現である。ステップS9bにおいて、とりわけ、メタデータMDlを含むメタデータが計算される。ステップS9cにおいて、メタデータMDlが、それらのそれぞれのメモリ・ブロックに書き込まれる。そして、ステップS9d、ファイルが、メタデータMDlに従ってメモリ・ブロックにコピーされる。図6においては、ソフトウェア・モジュールSM8、SM5、SM1などが(マシンのハードウェアの能力とRAMディスクの実装との両方に適合する)最も機密性が高いモジュールとして保有された(図5参照)ので、それらのモジュールの対応するファイル(理解しやすくするためにモジュール毎に2つのファイルだけを仮定する)が、1つずつ(F81、次にF82、次にF51など)コピーされる。ステップS9cおよびS9dは、任意の順序で実行される可能性、並列に実行される可能性などがあることに留意されたい。
− 保有される第1のソフトウェア・モジュールSM8の2つのファイルF81およびF82が、それぞれ、20000バイトのサイズを有し、
− 保有される第2のソフトウェア・モジュールSM5の2つのファイルF51およびF52が、それぞれ、7000バイトのサイズを有する。
ここで、メタデータMD1は2000バイトを消費すると仮定する。すると、メタデータMD1は、基本的に、以下を記述する。
バイト0:メタデータMDl:
F81,バイト2000で開始,サイズ20000
F82,バイト22000で開始,サイズ20000
F51,バイト42000で開始,サイズ7000
F52,バイト49000で開始,サイズ7000
等々
− ファイルF81が、バイト2000にコピーされる
− ファイルF82が、バイト22000にコピーされる
− 等々
− MDl
− F81
− F82
− F51
− F52
− F11
− F12
− 等々
別のあり得る順序は、メタデータを分割することからなり、つまり、
− MD81
− F81
− MD82
− F82
− MD51
− F51
− MD52
− F52
− MD11
− F11
− MD12
− F12
− 等々
a.RAMディスクのためにメモリを割り当てる
b.例えば、ユーザ・データのために通常のオペレーティング・システムが使用するようなファイルシステムをRAMディスク上に生成する
c.例えば、人が通常のGPOSでファイルをコピーするように、個々のモジュールからRAMディスクにファイルをコピーする。このようにして、メタデータは、ファイルをコピーする間に徐々に生成される。しかし、データは、すべてのファイル・サイズが予め考慮に入れられ、最適なレイアウトが計算される前の変形形態ほど効率的に記憶され得ない。第2の変形形態は、例えば、標準的なFAT32ファイルシステムがramディスクのために使用される場合に、以下と同様の構造をもたらすだけである。
− ファイル・システムのメタ・データ
− どのブロックがファイルによって占められるか、および各ファイルによって占められたブロックを示すファイル割り当てテーブル(FAT)
− ファイル割り当てテーブル(FAT)に示される任意の順序で潜在的にインターリーブされた各ディレクトリ、ファイル、および個々のファイルのブロックに関するメタデータのブロック。
− コンピュータ101との接続S2を可能にする接続インターフェース12、および
− 以下のものを記憶する永続的メモリ14
〇前記インターフェース12を介してデバイス10をコンピュータ101と接続すると、デバイス10またはコンピュータ101あるいはその両方で、既に説明された動作の実行を可能にすることまたはトリガすることなどのために設計されたブートローダ、ならびに
〇やはり好ましくは、アプリケーション・コンポーネント、オペレーティング・システム・イメージ・コンポーネント、およびより好ましくはハードウェア・コンポーネントのドライバも含むソフトウェア・モジュール、ならびに実行されるテストT(またはテストへの論理的なリンクのみ)。
− コンピュータ101のネットワーク・カード124と後でインタラクションするため、および(ネットワーク・カード124によって可能にされる)ネットワーク165を介した通信を開始し、サーバ30に接続するために初期化ファームウェア122とインタラクションすること、
− コンピュータ101のネットワーク・カード124と直接インタラクションすることであって、その場合には信頼されたデバイス10に記憶されたネットワーク・カードのドライバにアクセスすることを必要とする、直接インタラクションすること、または
− コンピュータ101のOSを部分的に実行する、つまり、コンピュータ101を介してサーバ30に接続するために必要なOSのコンポーネントだけをロードするためにファームウェア122とインタラクションすること、
あるいはこれらすべてを行うように構成され得る。
− コンピュータ101を通じたサーバ30からデバイス10へのHTTP接続、
− エンド−エンド認証(end-end authentication)、および
− 必要に応じて、デバイス10の安全なメモリ141に記憶され得る署名およびその他の暗号化データ13。
− コンポーネント15、16の第1の部分151(または所与の部分)、検証コンポーネント17などが記憶され得る安全なメモリ141、および
− (1つまたは複数の)同じブート有効化コンポーネント15〜17の第2の部分152(またはその他の部分)が記憶され得る安全でないメモリ142、例えば、SDカード。
− ユニバーサル・シリアル・バスまたはUSB、
− 外部小型コンピュータ・システム・インターフェースまたはSCSI、
− 外部シリアル・アドバンスト・テクノロジー・アタッチメントまたはSATA、
− Firewire、または
− Thunderbolt。
しかしより広く、これは、コンピュータが外部デバイス10からブートすることを可能にする任意の現在のまたは将来の(有線または無線)コネクタである可能性がある。加えて、同じインターフェース12が、さらに、ユーザ信頼デバイス10がビーマ(beamer)、プリンタ、または任意のその他の出力デバイスなどの任意の外部デバイスと通信することを可能にし得る。
− ステップS51.1.2:仮想化に反応するコードを実行し、実行が完了すると完了データを発するようにコンピュータ101のプロセッサ105に命令し、
− ステップS51.2:そのような完了データに基づいて、実行が仮想化された環境で行われたかどうかを決定し、
− そして、ステップS6において、仮想化に反応するコードの実行が仮想化された環境で行われたかどうかにも応じてソフトウェア・モジュールの候補の組が決定される可能性がある。仮想化された環境が検出される場合、利用可能なソフトウェア・モジュールの選択は、ポリシーの規則に従って制限されるかまたは場合によっては防止される可能性が高い。
− コンピュータ101が、ユーザ信頼デバイス10からブートを開始する
− プロセッサ105が、何らかの参照コードを実行するように命令される
〇問題のコードは、好ましくは、デバイス10自体、例えば、ブートローダのコンポーネント17によって提供される。変形形態において、コードの識別子またはやはりアドレスが、プロセッサ105に渡される可能性がある。概して、このコードは、試験されるマシン(の種類)に依存する可能性があるいくつかの命令を含む
〇このコードは、仮想化された環境に反応するように選択され、したがって、「仮想化に反応するコード」と呼ばれる。つまり、このコードは、このコードが仮想化された環境で実行されるかまたはネイティブで実行されるかに応じて異なるように実行され、異なる実行の特徴が生じる。実行の特徴は、とりわけ、以下のいずれかまたは両方で異なる可能性がある。
◆実行によって生成される結果、
◆タイミングの特徴、プロセッサのサイクルなどによって測定可能な計算量。例えば、x86に基づくPCに関して特に注目される計算は、リアル・モードとプロテクト・モードとの間を切り替えることである。
〇プロセッサへの命令により、仮想化に反応するコードの実行は、コンピュータ101がブートを開始する間に、つまり、ブート・プロセスが開始した後、そのブート・プロセスが完了する前に、つまり、どのソフトウェア・モジュールSMnをロードすべきかを判断する前に行われる。
〇プロセッサ105は、さらに、実行が完了すると、何らかの完了データ(例えば、結果、タイムスタンプ、またはタイムスタンプが付けられ得るイベントなど)を発するように命令される
− 動作の次の組は、完了データに基づいて、実行が仮想化された環境で行われた(行われなかった)かどうか(言い換えると、同等に、実行が安全な環境で、例えば、ネイティブで行われたかどうか)を決定することであり、
− 最後に、実行が仮想化された環境で行われなかったと決定される場合、プロセスはさらに進む。
〇ステップS6に進む前に、以下で検討されるように、その他の条件が含まれる可能性がある(例えば、BIOS/ファームウェア122も試験される可能性がある)。
〇実施形態においては、実行が仮想化された環境で行われたかどうかを決定する問題は、間接的に答えられ、例えば、ユーザのインタラクティブ性が必要とされる可能性があり、または評価の一部を付託し、サーバ30で更新された比較を行うためにサーバ30への接続が必要とされる可能性がある。3つの同様のシナリオが、想定され得る。
◆実行が仮想化された環境で行われなかったと決定される場合、ブート・プロセスは継続される。
◆反対に、実行が仮想化された環境で行われたと決定される場合、ブート・プロセスは、中止されないならば修正される。以下の範囲に及ぶいくつかのその後のシナリオが、考えられ得る。
●1つまたは複数のソフトウェア・モジュールが、物理的なストレージへの記憶に適さないと宣告され、RAMディスクにのみ記憶されるべきである
●1つまたは複数のソフトウェア・モジュールが無効化される
●デバイス10がシャットダウンされ、つまり、いかなるデータ、鍵、ソフトウェア・モジュールなどもコンピュータ101に渡されない。
◆コンピュータ101をきれいにするためにパッチ/プログラムがロードされる場合、ソフトウェア・モジュールの抑制された組(一部のコンポーネントが許される)、またはOSの修正されたバージョンをロードすることにつながる可能性がある中間的なシナリオも、考えられ得る。
− ステップS51.1.2:「ファームウェア・データ」がコードにマッピングされる。ファームウェア・データは、コンピュータ101の初期化ファームウェア122のプログラム・コードまたは前記初期化ファームウェア122によってアクセスされ得るデータあるいはその両方を含むデータである。結果として得られるコードは、「マッピング」コードであり、つまり、ファームウェアのプログラム・コードと区別されなければならない。および
− ステップS51.2:マッピング・コードの信用性について結論が出される、つまり、このコードの信用性が証明され得る。
S1:コンピュータ101および信頼されたデバイスが提供される。コンポーネント15、16およびソフトウェア・モジュールは、最初、信頼されたデバイス10に記憶されるS1。
S2:ユーザ信頼デバイス10が、コンピュータ101に接続されるS2。
S3:ユーザ信頼デバイスをコンピュータに接続するとS2、ブートローダが検出され、ブートローダの1つのコンポーネント/部分16が、その後実行するためにコンピュータ101のメイン・メモリ110に転送される。
S4:ブートローダのコンポーネント16が、メイン・メモリ110で少なくとも部分的に実行され、一方、別のコンポーネント15(またはモジュールなど)が、信頼されたデバイス10でインタラクティブに実行され得る。
S5:実行されると、ブートローダが、最初に、コンピュータ101でさまざまな検査を実行し得る。そして、以下のことに関係するいくつかの要件が評価される。
i.例えば、雇い主または従業員がコンピュータ101で実行したいソフトウェア・モジュールSM1、...SMnの最初の組IS、および
ii.コンピュータのハードウェアの仕様。ブートローダが、そこで、必ずではないが、概して組ISのソフトウェア・モジュールに論理的にリンクされるいくつかのテストTを実行する。ブートローダは、例えば、マシンにおける実行が仮想化された環境で行われるかどうかを検査し、マシンの信用性を証明し得る。テストのその他の例は、既に検討された。
1.これらのテストの結果は、次に決定されるソフトウェア・モジュールの(1つまたは複数の)候補の組、ステップS6ならびにより広くステップS9およびS10に影響を与える。
2.さまざまなブート動作が、テストの結果に応じてこの段階で完了される可能性がある。
3.変形形態において、テスト(またはその一部)はグローバルであり、最初の組ISのソフトウェア・モジュールに特にリンクされない。その場合、これらのテストは、ユーザの要件を評価する(ステップS5i)前にさえも実行され得る。
4.いずれの場合も、後続のステップS6、S9、S10、...が行われるかどうかおよびどの程度行われるかは、テストの結果に依存する。
S6:次に、ソフトウェア・モジュールの候補の組CS1、CS2が、最初の組ISの中で決定される。ソフトウェア・モジュールの選択が、それ自体がマシンのハードウェアの能力に依存する割り当てられたメモリに依存して行われることが好ましいので、RAMディスクのためのメモリは、ステップS6の前に割り当てられることが好ましいことに留意されたい。変形形態においては、所定のメモリ・サイズが信頼され得るが、その場合、RAMディスクのメモリ利用は準最適である可能性がある。詳細には、
a.これらの候補の組の中のソフトウェア・モジュールは、前にアクセスされたハードウェアの仕様に適合していなければならない。および
b.それらのモジュールのサイズ、中身、実行論理などが、それらのモジュールがRAMディスク121として記憶され得るようなものである。図5に例示されたように、モジュールSM4、SM7は、テストに通らず、破棄された
c.(1つまたは複数の)候補の組の決定は、所与のセキュリティの基準に従って、最もセキュリティ上の機密性が高いソフトウェア・モジュールを優先順位付けするステップを含み得る。優先順位付けのステップは、図5に示されるように(図3の実施形態とは異なり)ステップS6aおよびS6bの前に実行される可能性があり、ステップS5iiで実行されたテストの結果を考慮に入れることに留意されたい。さらに言えば、ステップS6a〜cは概して任意の順序で実行され得るが、それらのステップをこの順序、すなわち、S6c→S6a→S6bの順序で実行することがより効率的である可能性がある。
i.単純な選択の枠組みは、RAMディスク121のサイズに完全に収まる(およびその他の点ではS5iiのテストを通過した)ソフトウェア・モジュールの代替的な組を特定することからなる。
ii.優先順位付けが含まれる場合、RAMディスク121に完全に収まり、テストを通過した最も機密性の高いソフトウェア・モジュールの代替的な組が決定される。
S7:依拠されたポリシーと、ソフトウェア・モジュール(およびもしあれば対応するドライバ)の間のあり得る依存関係とに応じて、いくつかの潜在的な候補の組CS1、CS2が決定され得る。その場合、方法は、いくつかの候補の組から最終的に選択されるソフトウェア・モジュールの最終的な組FSを特定するためのさらなるステップS7を含む。
− これは、例えば、候補の組を確認のためにユーザに送った(ステップS7a)後に、メイン・メモリで実行されるブートローダのコンポーネント16とインタラクティブにユーザ信頼デバイスで実行されるブートローダのコンポーネント15によって、ユーザ信頼デバイスから受信された入力(ステップS7b)に従って行われることが好ましい。
− 図5の例においては、2つのあり得る候補の組が、CS1(SM8...SM6)およびCS2(SM8...SM3)によって示される。
− この例においては、前の優先順位付けステップと、(それぞれがSM3およびSM6よりも機密性が高い)モジュールSM8...SM2のサイズとのために、唯1つのさらなるモジュール(SM3またはSM6)がRAMディスクに記憶され得るので、SM3またはSM6の間の選択を行うためにユーザとのさらなるインタラクションS7が必要とされる。
S8:最終的に保有される組のソフトウェア・モジュール(=FS)が、コンピュータ101に転送される。前記モジュールは、最初、ユーザ信頼デバイス10または遠隔のサーバ30に記憶される可能性がある。1つの可能性は、それらのモジュールをデバイス10に記憶させることである。したがって、最終的に保有されるモジュールは、さらなるネットワーク接続を必要とせずに、RAMディスクとしてその後記憶し、実行するために信頼されたデバイスからメイン・メモリに迅速に転送され得る。概して、これは、ソフトウェア・モジュールを転送するように命令する(どちらかの側、すなわち、コンピュータまたはユーザ・デバイスで実行される)ブートローダである。
S9:そして、ソフトウェア・モジュールが、RAMディスクに記憶され、そのステップは、好ましくは以下のように分かれる。
a.第1に、既にステップS6で思い起こされた好ましい選択肢の変形形態において、RAMディスクのためのメモリが割り当てられる(またはさらにはソフトウェア・モジュールの最終的な選択に基づいてこの段階で修正される)可能性がある。
b.RAMディスクのためのファイル・システムのメタデータが、最終的な組FSのソフトウェア・モジュールに応じて計算され、メタデータは、どのファイルがRAMディスクのどのメモリ・セクションに記憶されるべきであるかを指定する。
c.そして、メタデータが、RAMディスクの個々のメモリ・セクション、例えば、データ・ブロックに書き込まれる。
d.保有されるソフトウェア・モジュールのファイルが、ファイル・システムで1つずつメモリ・セクションにメタデータに従ってコピーされる。
e.最後に、それらのソフトウェア・モジュールをRAMディスクで直接実行することが命令される。
S10:ステップS7の後またはステップS7と同時に、人は、さらに、ソフトウェア・モジュールSM6、...SMk、つまり、RAMディスクとして実行するために保有される最終的な組の中にないモジュールを含むソフトウェア・モジュールの追加の組ASを決定し得る。
S11:好ましくは暗号化された(ステップS11a)この追加の組ASのモジュールSM6、...SMkをその後実行する(ステップS11b)ためにコンピュータの物理的なストレージ媒体120に記憶する。優先順位付けプロセスにより、これらの追加のモジュールは、CS2に保有されるモジュールよりも低いリスクをもたらす(またはまったくリスクをもたらさない)。したがって、これらの追加のモジュールは、穏当なリスクで物理的なストレージ媒体120に記憶され得る。もちろん、変形形態において、物理的なストレージ媒体120にいかなるモジュールを記憶することも防止するより厳しいポリシーが、実施される可能性がある。
S12:セッションの終わりに、ユーザ(またはデバイス10、またはさらにやはりメイン・メモリで実行されるモジュール16)が、RAMディスクとして(ステップS12a)または物理的なストレージ媒体120(ステップS12b)に記憶されたソフトウェア・モジュールの実行を止めることを命じる可能性がある。そして、プロセスは、以下によって終了し得る。
S13:デバイス10を切断する。および
S14:物理的なストレージ媒体120からソフトウェアを削除する。
S15:最後に、RAMが消去される。示されるように、このステップは、物理的なストレージ・システムが消去された後に行われることが好ましい。これは、コンピュータ101からあらゆる残りのデータを消去する、例えば、概して、より高い動作性能のためにRAMにキャッシュされる永続的な(物理的に記憶された)データを消去することである。このようにして、システムは、あり得る攻撃者のためにセッションの跡をまったく残さないことを確認する。
本発明の実施形態を実装するために有利に使用され得る命令(のシーケンス)の例が、以下に続く。当業者は、実質的に同じことを実現するために使用され得る同じ/同様の機能を有するその他の命令が存在することを認める。
outb(cmos_data_address, 0x70);
data_at_address = inb(0x71);
ここで、cmos_data_addressは、0...max_cmos_data_addressの範囲にわたって反復される。ファームウェアのプログラム・コード自体またはファームウェアの構成あるいはその両方を読み取るためのその他の同様の命令が、Intel 82802AB/82802AC Firmware Hub(FWH)によって与えられる。
ユーザ信頼デバイス(大容量ストレージ・デバイス)からブロックを読み出す
mov ah, 42h
mov dl, the_drive_to_read_from
mov ds:si,disk_address_packet_describing_what_to_read
int 13h
mov ah, 43h
mov dl, the_drive_to_write_to
mov ds:si,disk_address_packet_describing_what_to_write
int 13h
Load UNDI ROM
PXENV_START_UNDI
PXENV_UNDI_STARTUP
PXENV_UNDI_INITIALIZE
PXENV_UNDI_OPEN
11 安全なデバイスのCPU
12 ユーザ信頼デバイスの接続インターフェース
13 暗号化データ
14 信頼されたデバイスの永続的なメモリ
15、16 コンポーネント
15 コンポーネント(ユーザ信頼デバイスで実行される部分)
16 コンポーネント(コンピュータのメイン・メモリに転送される部分)
17 検証モジュール
30 サーバ
100 通常のコンピュータ化されたシステム
101 ホスト・コンピュータ
105 コンピュータ・プロセッサ
110 コンピュータのメイン・メモリ
111 オペレーティング・システム(OS)
115 メモリ・コントローラ
120 物理的なストレージ媒体(例えば、ディスク)
121 RAMディスク
121fs RAMディスクのためのファイル・システム
122 ホスト・コンピュータのファームウェア/初期化ソフトウェア(例えば、BIOS)
124 ネットワーク・カード
125 ディスプレイ・コントローラ
130 ディスプレイ
141 信頼されたデバイスの安全なメモリ
142 信頼されたデバイスの安全でないメモリ
145 I/Oデバイス(または周辺機器)
150 キーボード
151 ブートローダのローカルの部分の第1の部分
152 ブートローダのローカルの部分の第2の部分
155 マウス
165 ネットワーク
AS ソフトウェア・モジュールの組(追加の組)
CS1、CS2、CSp ソフトウェア・モジュールの組(候補の組)
Fij ソフトウェア・モジュールSMiの第jのファイル
FS ソフトウェア・モジュールの最終的な組
IS ソフトウェア・モジュールの最初の組
MDl メタデータ
SMi ソフトウェア・モジュール
T ソフトウェア・モジュールのテスト
Claims (17)
- コンピュータによりソフトウェア・モジュールを実行するための方法であって、
前記コンピュータのメイン・メモリにおいて少なくとも部分的にブートローダを実行するステップと、
前記ブートローダが実行されることに応じて、
ソフトウェア・モジュールの最初の組に関する要件、および
前記コンピュータのハードウェアの仕様
にアクセスするステップと、
前記最初の組の中で、前記ハードウェアの仕様に適合し、RAMディスクとして記憶され得るソフトウェア・モジュールの1つまたは複数の候補の組を決定するステップと、
最終的な組の前記ソフトウェア・モジュールをRAMディスクに記憶することであって、前記最終的な組が、前記1つまたは複数の候補の組のうちの1つである、前記記憶することと、前記RAMディスクに記憶された前記ソフトウェア・モジュールを実行するように命令することとを行うステップと、
前記RAMディスクで実行されるソフトウェア・モジュールの前記最終的な組に入っていないソフトウェア・モジュールの追加の組を決定するステップと、
暗号化された前記追加の組のソフトウェア・モジュールを、その後実行するために前記コンピュータの物理的なストレージ媒体に記憶するステップとを含み、
ソフトウェア・モジュールの前記最初の組および前記最終的な組のそれぞれが、アプリケーション・コンポーネントおよびオペレーティング・システム・イメージ・コンポーネントを含む、方法。 - 前記ソフトウェア・モジュールの前記最初の組および前記最終的な組のそれぞれが、ハードウェア・コンポーネントのドライバを更に含む、請求項1に記載の方法。
- 前記ブートローダが、予め、前記コンピュータに接続可能なユーザ信頼デバイスに記憶され、前記方法が、前記ブートローダを実行するステップの前に、
前記ユーザ信頼デバイスを前記コンピュータに接続すると、前記ブートローダの少なくとも一部が、転送された部分をその後実行するために、前記コンピュータの前記メイン・メモリに転送されるようにするステップをさらに含む、請求項1または2に記載の方法。 - 前記ソフトウェア・モジュールが、予め、ユーザ信頼デバイスに記憶され、前記ユーザ信頼デバイスが、前記コンピュータに接続可能であり、前記方法が、前記ソフトウェア・モジュールを前記RAMディスクに記憶する前に、
転送されたソフトウェア・モジュールをRAMディスクとしてその後記憶し、実行するために、前記ユーザ信頼デバイスから前記コンピュータの前記メイン・メモリに前記最終的な組のソフトウェア・モジュールを転送するステップをさらに含む、請求項1ないし3のいずれか一項に記載の方法。 - 前記ソフトウェア・モジュールをRAMディスクに記憶することと、RAMディスクに記憶された前記ソフトウェア・モジュールを実行するように命令することとを行うステップの前に、
前記ユーザ信頼デバイスから受信された入力に従って、ソフトウェア・モジュールのいくつかの候補の組からソフトウェア・モジュールの1つの最終的な組を特定するステップをさらに含む、請求項3または4に記載の方法。 - 前記コンピュータで実行される前記ブートローダのある部分とインタラクティブに前記ユーザ信頼デバイスで実行される前記ブートローダの他の部分とにより、ソフトウェア・モジュールの1つの最終的な組を特定する、請求項5に記載の方法。
- RAMディスクとして記憶され得るソフトウェア・モジュールの1つまたは複数の候補の組を決定するステップが、ソフトウェア・モジュールを優先順位付けするステップを含む、請求項1ないし6のいずれか一項に記載の方法。
- 前記ソフトウェア・モジュールを優先順位付けするステップが、所与のセキュリティの基準に従ってソフトウェア・モジュールを優先順位付けする、請求項7に記載の方法。
- 前記コンピュータのハードウェアの仕様にアクセスするステップが、
− 前記コンピュータの前記メイン・メモリの容量と、
− 前記コンピュータのプロセッサ・アーキテクチャと、
− 前記コンピュータのストレージ媒体の容量と、
− 仮想化がサポートされるかどうかと
のうちの1つまたは複数に関してテストを実行するステップを含み、
前記テストの少なくとも一部が、前記最初の組のソフトウェア・モジュールに論理的にリンクされ、
RAMディスクとして記憶され得るソフトウェア・モジュールの1つまたは複数の候補の組を決定するステップが、実行された前記テストの結果に従ってソフトウェア・モジュールを優先順位付けするステップを含む、請求項1ないし8のいずれか一項に記載の方法。 - RAMディスクとして記憶され得るソフトウェア・モジュールの前記1つまたは複数の候補の組を決定するステップの前に前記RAMディスクのためのメモリを割り当てるステップをさらに含み、
前記ソフトウェア・モジュールを記憶する前記ステップが、
前記最終的な組の前記ソフトウェア・モジュールに応じて前記RAMディスクのためのファイル・システムのメタデータを計算するステップであって、前記メタデータが、前記ソフトウェア・モジュールを構成するどのファイルが記憶されるべきであるか、および前記ソフトウェア・モジュールが前記ファイル・システムのどこに記憶されるべきであるかを指定する、前記計算するステップと、
前記メタデータを、前記RAMディスクの個々のメモリ・セクション、例えば、メモリ・ブロックに書き込むステップと、
前記最終的な組のソフトウェア・モジュールのファイルを、前記ファイル・システムで1つずつ前記メモリ・セクションに前記メタデータに従ってコピーするステップとを含む、請求項1ないし7のいずれか一項に記載の方法。 - ブートローダであって、コンピュータのメイン・メモリにおいて少なくとも部分的に実行可能であり、前記コンピュータにより実行されることにより、
ソフトウェア・モジュールの最初の組に関する要件、および
前記コンピュータのハードウェアの仕様
にアクセスすることと、
前記最初の組の中で、前記ハードウェアの仕様に適合し、RAMディスクとして記憶され得るソフトウェア・モジュールの1つまたは複数の候補の組を決定することと、
最終的な組の前記ソフトウェア・モジュールをRAMディスクに記憶することであって、前記最終的な組が、前記1つまたは複数の候補の組のうちの1つである、前記記憶することと、
前記RAMディスクに記憶された前記ソフトウェア・モジュールを実行するように命令することと、
前記RAMディスクで実行されるソフトウェア・モジュールの前記最終的な組に入っていないソフトウェア・モジュールの追加の組を決定することと、
暗号化された前記追加の組のソフトウェア・モジュールを、その後実行するために前記コンピュータの物理的なストレージ媒体に記憶することと
を引き起こすように構成され、
ソフトウェア・モジュールの前記最初の組および前記最終的な組のそれぞれが、アプリケーション・コンポーネントおよびオペレーティング・システム・イメージ・コンポーネントを含む、ブートローダ。 - ユーザ信頼デバイスであって、
コンピュータとの接続を可能にする接続インターフェースと、
請求項11に記載のブートローダ、ならびに
アプリケーション・コンポーネント、およびオペレーティング・システム・イメージ・コンポーネントを含むソフトウェア・モジュール
を記憶する永続的なメモリとを含む、ユーザ信頼デバイス。 - 前記永続的なメモリが、
アプリケーション・コンポーネント、およびオペレーティング・システム・イメージ・コンポーネントを含むソフトウェア・モジュールと、
前記ソフトウェア・モジュールが前記ハードウェアの仕様に適合し、RAMディスクとして記憶され得るかどうかを決定するためのソフトウェア・モジュールのテストとをさらに記憶し、
前記ソフトウェア・モジュールのテストが、前記ソフトウェア・モジュールに論理的にリンクされる、請求項12に記載のユーザ信頼デバイス。 - 前記永続的なメモリが、
前記ブートローダの第1の部分が記憶される第1のメモリと、
前記ブートローダの前記第1の部分とは異なる第2の部分が記憶され、前記第1のメモリに比べて安全性が劣る第2のメモリとを含み、
前記第2のメモリに暗号化された前記ブートローダの前記第2の部分が存在し、対応する暗号化鍵または復号鍵が前記第1のメモリに記憶される、請求項12または13に記載のユーザ信頼デバイス。 - 前記ブートローダが、前記ソフトウェア・モジュールが前記ハードウェアの仕様に適合し、RAMディスクとして記憶され得るかどうかを決定するためのソフトウェア・モジュールのテストの一部として、
仮想化に反応するコードを実行し、実行が完了すると完了データを発するように前記コンピュータのプロセッサに命令することと、
そのような完了データに基づいて、前記実行が仮想化された環境で行われたかどうかを決定することと、
前記仮想化に反応するコードの前記実行が仮想化された環境で行われたかどうかにも応じてソフトウェア・モジュールの前記1つまたは複数の候補の組を決定することとを引き起こすようにさらに構成される、請求項12ないし14のいずれかに記載のユーザ信頼デバイス。 - 前記ブートローダが、前記ソフトウェア・モジュールが前記ハードウェアの仕様に適合し、RAMディスクとして記憶され得るかどうかを決定するためのソフトウェア・モジュールのテストの一部として、
ファームウェア・データをコードにマッピングすることであって、前記ファームウェア・データが、前記コンピュータの初期化ファームウェアのプログラム・コードまたは前記初期化ファームウェアによってアクセスされ得るデータあるいはその両方を含む、前記マッピングすることと、
前記コードの信用性を証明することと、
前記コードが証明されたかどうかにも従ってソフトウェア・モジュールの前記1つまたは複数の候補の組を決定することと
を引き起こすようにさらに構成される、請求項12ないし15のいずれか一項に記載のユーザ信頼デバイス。 - システムであって、
請求項12ないし16のいずれか一項に記載のユーザ信頼デバイスと、
前記ユーザ信頼デバイスが接続可能なコンピュータとを含む、システム。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
GB1305727.8A GB2512376A (en) | 2013-03-28 | 2013-03-28 | Secure execution of software modules on a computer |
GB1305727.8 | 2013-03-28 | ||
PCT/IB2014/059804 WO2014155229A1 (en) | 2013-03-28 | 2014-03-14 | Secure execution of software modules on a computer |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2016517976A JP2016517976A (ja) | 2016-06-20 |
JP5970141B2 true JP5970141B2 (ja) | 2016-08-17 |
Family
ID=48444958
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2016504781A Expired - Fee Related JP5970141B2 (ja) | 2013-03-28 | 2014-03-14 | コンピュータでソフトウェア・モジュールを実行するための方法、ブートローダ、ユーザ信頼デバイス、およびシステム |
Country Status (5)
Country | Link |
---|---|
US (1) | US9824220B2 (ja) |
JP (1) | JP5970141B2 (ja) |
DE (1) | DE112014000337T5 (ja) |
GB (1) | GB2512376A (ja) |
WO (1) | WO2014155229A1 (ja) |
Families Citing this family (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10798108B2 (en) * | 2014-11-14 | 2020-10-06 | Marvell Asia Pte, Ltd. | Apparatus and method for a multi-entity secure software transfer |
US9524249B2 (en) * | 2014-12-23 | 2016-12-20 | Intel Corporation | Memory encryption engine integration |
WO2016109558A1 (en) * | 2014-12-29 | 2016-07-07 | Rubicon Labs, Inc. | System and method for secure code entry point control |
US10127137B2 (en) * | 2015-06-03 | 2018-11-13 | Fengwei Zhang | Methods and systems for increased debugging transparency |
DE102015225270A1 (de) * | 2015-12-15 | 2017-06-22 | Siemens Aktiengesellschaft | Verfahren und Sicherheitsmodul zum Bereitstellen einer Sicherheitsfunktion für ein Gerät |
US10541816B2 (en) | 2016-06-01 | 2020-01-21 | International Business Machines Corporation | Controlling execution of software by combining secure boot and trusted boot features |
US10579465B1 (en) | 2018-03-29 | 2020-03-03 | Keep Security LLC | Systems and methods for self correcting secure computer systems |
US11231988B1 (en) | 2018-03-29 | 2022-01-25 | Keep Security, Llc | Systems and methods for secure deletion of information on self correcting secure computer systems |
US11175981B1 (en) | 2018-03-29 | 2021-11-16 | Keep Security LLC | Systems and methods for dynamic self correcting secure computer systems |
US11263074B1 (en) | 2018-03-29 | 2022-03-01 | Keep Security, Llc | Systems and methods for self correcting secure computer systems |
US11669389B1 (en) | 2018-03-29 | 2023-06-06 | Keep Security, Llc | Systems and methods for secure deletion of information on self correcting secure computer systems |
US11080400B2 (en) | 2019-08-28 | 2021-08-03 | Palo Alto Networks, Inc. | Analyzing multiple CPU architecture malware samples |
CN112631666B (zh) * | 2020-12-29 | 2023-01-31 | 杭州雾联科技有限公司 | 一种硬盘启动转网卡引导的无盘启动方法 |
CN115480835A (zh) * | 2021-05-31 | 2022-12-16 | 合肥杰发科技有限公司 | 程序启动方法和设备、存储介质 |
CN113254089B (zh) * | 2021-06-04 | 2021-10-29 | 深圳市科力锐科技有限公司 | 系统引导方式修正方法、装置、设备及存储介质 |
Family Cites Families (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TW314289U (en) | 1996-08-08 | 1997-08-21 | Nat Science Council Co Ltd | Device for converting parallel two light intensities difference into pulse width modulation |
US20100146256A1 (en) * | 2000-01-06 | 2010-06-10 | Super Talent Electronics Inc. | Mixed-Mode ROM/RAM Booting Using an Integrated Flash Controller with NAND-Flash, RAM, and SD Interfaces |
JP2003004455A (ja) | 2001-06-15 | 2003-01-08 | Mitsubishi Electric Corp | 車載用ナビゲーション装置 |
US6907522B2 (en) | 2002-06-07 | 2005-06-14 | Microsoft Corporation | Use of hashing in a secure boot loader |
US7073013B2 (en) * | 2003-07-03 | 2006-07-04 | H-Systems Flash Disk Pioneers Ltd. | Mass storage device with boot code |
WO2005055072A1 (en) * | 2003-11-26 | 2005-06-16 | Hewlett-Packard Development Company, L.P. | System and method for management and installation of operating system images for computers |
TW200604819A (en) | 2004-07-16 | 2006-02-01 | Mitac Technology Corp | Method for fast initializing and playing multi-media A/V function with non-hard-disk storage medium |
US20060277546A1 (en) | 2005-06-02 | 2006-12-07 | Rothman Michael A | Detecting virtualization |
US8695102B2 (en) | 2006-05-01 | 2014-04-08 | International Business Machines Corporation | Controlling execution of executables between partitions in a multi-partitioned data processing system |
FR2901038A1 (fr) * | 2006-05-15 | 2007-11-16 | France Telecom | Procede et dispositif de configuration securisee d'un terminal au moyen d'un dispositif de stockage de donnees de demarrage |
US7743242B2 (en) * | 2006-10-16 | 2010-06-22 | Scalent Systems Inc. | Method and system for automatic generation of operating system boot images |
US7788477B1 (en) * | 2007-01-31 | 2010-08-31 | Hewlett-Packard Development Company, L.P. | Methods, apparatus and articles of manufacture to control operating system images for diskless servers |
AU2008241369A1 (en) * | 2007-04-24 | 2008-10-30 | Cbb International Pty Ltd | A computer operating device |
JP2009301504A (ja) | 2008-06-17 | 2009-12-24 | Sharp Corp | コンピュータ、記録媒体および情報処理方法 |
TW201013418A (en) * | 2008-09-23 | 2010-04-01 | Asustek Comp Inc | Computer system and method for connecting remote disk through internet |
JP5354189B2 (ja) | 2009-04-27 | 2013-11-27 | 凸版印刷株式会社 | セキュア媒体 |
US20120011354A1 (en) * | 2010-07-02 | 2012-01-12 | Encryptakey, Inc. | Boot loading of secure operating system from external device |
US8499142B1 (en) * | 2010-07-22 | 2013-07-30 | American Megatrends, Inc. | UEFI boot loader for loading non-UEFI compliant operating systems |
US8468334B1 (en) * | 2011-01-28 | 2013-06-18 | American Megatrends, Inc. | Efficient initial RAM disk creation |
-
2013
- 2013-03-28 GB GB1305727.8A patent/GB2512376A/en not_active Withdrawn
-
2014
- 2014-03-14 US US14/780,920 patent/US9824220B2/en not_active Expired - Fee Related
- 2014-03-14 WO PCT/IB2014/059804 patent/WO2014155229A1/en active Application Filing
- 2014-03-14 JP JP2016504781A patent/JP5970141B2/ja not_active Expired - Fee Related
- 2014-03-14 DE DE112014000337.9T patent/DE112014000337T5/de active Pending
Also Published As
Publication number | Publication date |
---|---|
WO2014155229A1 (en) | 2014-10-02 |
US9824220B2 (en) | 2017-11-21 |
GB201305727D0 (en) | 2013-05-15 |
GB2512376A (en) | 2014-10-01 |
US20160070914A1 (en) | 2016-03-10 |
JP2016517976A (ja) | 2016-06-20 |
DE112014000337T5 (de) | 2015-09-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5970141B2 (ja) | コンピュータでソフトウェア・モジュールを実行するための方法、ブートローダ、ユーザ信頼デバイス、およびシステム | |
US10318724B2 (en) | User trusted device for detecting a virtualized environment | |
CN108509250B (zh) | 具有受保护的访客机验证主机控制的安全公共云 | |
EP3582129B1 (en) | Technologies for secure hardware and software attestation for trusted i/o | |
JP4971466B2 (ja) | コンピューティング・デバイスの安全なブート | |
US10592670B2 (en) | Technologies for provisioning and managing secure launch enclave with platform firmware | |
KR101458780B1 (ko) | 다단계 락스텝 무결성 보고 메커니즘 제공 | |
US9256442B2 (en) | Network updatable user trusted device | |
US9639690B2 (en) | User trusted device to attest trustworthiness of initialization firmware | |
JP5346608B2 (ja) | 情報処理装置およびファイル検証システム | |
WO2011114655A1 (ja) | 情報処理装置、仮想マシン生成方法及びアプリ配信システム | |
JP6095796B2 (ja) | 「ブリング・ユア・オウン」管理のための起動機構 | |
JP2010073193A (ja) | モバイルインターネットデバイス(mid)でuefiファームウェア及びuefiアウェアなオペレーティングシステムのセキュアなブートのためのシステム及び方法 | |
JP2010073193A5 (ja) | ||
KR20090005219A (ko) | 점대점 상호연결 시스템 상에서의 보안 환경 초기화 명령의실행 | |
JP2008171389A (ja) | ドメイン・ログオンの方法、およびコンピュータ | |
CN111201553B (zh) | 一种安全元件及相关设备 | |
JP2022522678A (ja) | セキュア実行ゲスト所有者環境制御 | |
US20200293662A1 (en) | Unsecure to secure transition of mutable core root of trust | |
JP6769999B2 (ja) | セキュア計算環境 | |
US20180089415A1 (en) | User trusted device for detecting a virtualized environment | |
CN103870302B (zh) | 可网络更新的用户信任装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A975 | Report on accelerated examination |
Free format text: JAPANESE INTERMEDIATE CODE: A971005 Effective date: 20160415 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20160426 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20160513 |
|
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: 20160614 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20160708 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 5970141 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
LAPS | Cancellation because of no payment of annual fees |