JP6481900B2 - ハードウェア構成レポーティング用の装置、ハードウェア構成アービトレーションの方法、プログラム、機械可読記録媒体、及び、ハードウェア構成アービトレーション用の装置 - Google Patents

ハードウェア構成レポーティング用の装置、ハードウェア構成アービトレーションの方法、プログラム、機械可読記録媒体、及び、ハードウェア構成アービトレーション用の装置 Download PDF

Info

Publication number
JP6481900B2
JP6481900B2 JP2016567254A JP2016567254A JP6481900B2 JP 6481900 B2 JP6481900 B2 JP 6481900B2 JP 2016567254 A JP2016567254 A JP 2016567254A JP 2016567254 A JP2016567254 A JP 2016567254A JP 6481900 B2 JP6481900 B2 JP 6481900B2
Authority
JP
Japan
Prior art keywords
tee
logic
hardware configuration
request
processing device
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
JP2016567254A
Other languages
English (en)
Other versions
JP2017519281A (ja
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.)
Intel Corp
Original Assignee
Intel 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 Intel Corp filed Critical Intel Corp
Publication of JP2017519281A publication Critical patent/JP2017519281A/ja
Application granted granted Critical
Publication of JP6481900B2 publication Critical patent/JP6481900B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/577Assessing vulnerabilities and evaluating computer system security
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/52Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
    • G06F21/53Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow by executing in a restricted environment, e.g. sandbox or secure virtual machine
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • G06F9/4411Configuring for operating with peripheral devices; Loading of device drivers
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates

Landscapes

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

Description

本開示は、コンピューティング装置に関する。より具体的には、ハードウェア構成レポーティングに関する。
起動中に利用されるハードウェア構成レジスタの値は通常、ブートエンジニアによって最初に手動で構成される。その結果として、適切な構成はヒューマンエラーを受けやすく、多くの場合、手動構成におけるミスは見逃されることがある。
複数の実施形態は、添付の図面と共に、以下の詳細な説明によって容易に理解される。この説明を容易にする目的で、同様の構造要素が同様の参照番号によって指定されている。複数の実施形態は、添付の図面の複数の図において、例として図示されるのであって、限定するものとして図示されるのではない。
様々な実施形態による、ハードウェア構成レポーティングシステムのブロック図である。 様々な実施形態による、アービタ論理の1つ又は複数のインスタンシエイションを有するハードウェア構成レポーティングシステムのブロック図である。 様々な実施形態による、信頼できる実行環境としてシステム管理モードを有するハードウェア構成レポーティングシステムのブロック図である。 様々な実施形態による、複数のドライバを含むレポーティング論理のブロック図である。 様々な実施形態による、ハードウェア構成レポーティングの方法の流れ図である。 様々な実施形態による、ハードウェア構成アービトレーションの方法の流れ図である。 様々な実施形態による、ハードウェア構成レポーティングおよびアービトレーションの方法の流れ図である。 幾つかの実施形態による、ハードウェア構成レポーティングシステム100に含まれ得る更新システムのブロック図である。 様々な実施形態による、開示される複数の実施形態の様々なものを実施するのに適した例示的な装置のブロック図である。
ハードウェア構成レポーティングおよびアービトレーションに関連する複数の実施形態が本明細書で開示される。例えば、ハードウェア構成レポーティングの装置は、信頼できる実行環境(TEE)および信頼できない実行環境(non−TEE)を有するプロセッシングデバイスと、メモリに記憶され、ハードウェア構成レジスタを表わす要求の指標をアービタ論理から受信するようにTEE内で動作する要求サービス論理と、メモリに記憶され、TEE内で動作し、その要求によって表わされるハードウェア構成レジスタの値のインジケータをアービタ論理にレポートするレポーティング論理とを含んでもよい。
上記で述べたように、コンピューティング装置の複数のスタートアップ操作を担う技術者は、意図しないで又は故意に、(多くの場合に40又はそれより多くの数に達する)特定の複数のハードウェア構成レジスタを適切に設定し損なうことがある。これらのエラーは、極めてコストがかかるかもしれない。もしアクセス許可に対応するレジスタが「オープン」にされたまま(すなわち、改ざんに対してロックされていない)ならば、悪性コードが、そのオープンドアの足元を見て、全ての後続性能に影響する可能性がある複数の変更を行うかもしれない。例えば、もしフラッシュ部分ロックレジスタがアンロックにされたままならば、マザーボード上のリードオンリメモリ(ROM)は、悪性コードによる再書き込みに対してオープンにされたままであるかもしれない。起動中に、チップセットメモリマップは、中央処理装置(CPU)からフラッシュ部分までに対して、複数の第1命令を実行するように指示するかもしれない。これらの命令が悪意をもって変更されている場合、任意の他の保護が適切に行われる前にCPUがその悪性コードを実行してしまうかもしれない。
本明細書で開示される複数のハードウェア構成レポーティングシステム及び技術の様々な実施形態は、起動中および/またはランタイム中のそのようなエラーの検出を可能にし得、装置が、そのセキュリティリスクを軽減する、又は、ユーザにそのセキュリティリスクを警告する、といった複数のアクションを取ることを可能にし得る。幾つかの実施形態において、管理者又は権限を与えられた他のエンティティは、本明細書で開示される複数のハードウェア構成レポーティングシステム及び技術を用いて、ハードウェア構成情報を入手及びレビューして、(例えば予め定義されたセキュリティポリシーに従って)次の複数の段階を決定してもよい。
以下の詳細な説明では、その一部を形成し、全体を通じて同様の部分が同様の番号によって指定されている添付の図面が参照される。その一部は、添付の図面において、実施され得る複数の例示的な実施形態として示されている。複数の他の実施形態が使用され得ること、及び、本開示の範囲から逸脱することなく複数の構造的又は論理的変更が行われ得ることが理解される。従って、以下の詳細な説明は、限定する意味で解釈されるべきではなく、複数の実施形態の範囲は、添付の特許請求の範囲およびその複数の等価物により規定される。
様々な動作が、特許請求の範囲で主張される主題の理解に最も役立つ態様で、複数の個別のアクション又は動作として順に説明され得る。しかしながら、説明の順序は、これらの動作が必ず順序に左右されるということを暗に示すように解釈されるべきではない。とりわけ、これらの動作は、表示の順序で実行されなくてもよい。説明される複数の動作は、説明される実施形態と異なる順序で実行されてもよい。追加の複数の実施形態では、様々な追加の動作が実行されてもよく、および/または、説明される複数の動作が省略されてもよい。
本開示の目的のため、「Aおよび/またはB」という文言は、(A)、(B)または(AおよびB)を意味する。本開示の目的のため、「A、Bおよび/またはC」という文言は、(A)、(B)、(C)、(AおよびB)、(AおよびC)、(BおよびC)または(A、BおよびC)を意味する。
本明細書では、「ある実施形態において」または「複数の実施形態において」という文言を用いているが、これらは各々、複数の同じ実施形態または異なる実施形態の1つ又は複数を指していてもよい。更に、本開示の複数の実施形態に対して用いられる、「備える(comprising)」、「含む(including)」、「有する(having)」等の用語は類義語である。本明細書で用いられる、「論理」という用語は、ここで説明される機能を提供する、1つ又は複数のソフトウェアまたはファームウェアプログラム、組み合わせ論理回路、および/または、他の複数の適切なコンポーネントを実行する、特定用途向け集積回路(ASIC)、電子回路、(共有、専用またはグループ)プロセッサ、および/または、(共有、専用またはグループ)メモリを指し、または、その一部であり、または、それらを含んでもよい。
図1は、様々な実施形態による、ハードウェア構成レポーティングシステム100のブロック図である。ハードウェア構成レポーティングシステム100は、(図2に示されている)信頼できる実行環境(TEE)116または1つ又は複数の信頼できない実行環境(non−TEE)118で動作可能なプロセッシングデバイスを有する装置(例えば図9を参照して以下で検討される装置900)で実行される。プロセッシングデバイスがTEE116にある場合に実行されるメモリ記憶論理(TEEメモリと称される)は、プロセッシングデバイスがnon−TEE118にある場合に実行されるメモリ記憶論理から隔離されてもよい。これにより、プロセッシングデバイスがnon−TEE118にある場合に動作する論理は、TEEメモリにアクセスできない。プロセッシングデバイスは、インタラプトに応答して、TEE116とnon−TEE118との間で移行するように構成されてもよい。
幾つかの実施形態において、TEE116は、プロセッシングデバイスのシステム管理モード(SMM)であってもよい。SMMは、多くの場合、電力制御および熱調整などの複数の低レベル動作を管理するのに用いられる、プロセッシングデバイスモードである。SMMは、SMMの外部で動作している論理に不可視又はアクセス不可能である、独自の隠しメモリ空間および実行環境を有してもよい。幾つかの実施形態において、SMMは、装置の基本入出力オペレーティングシステム(BIOS)によってインストールされてもよく、プロセッシングデバイスがシステム管理インタラプト(SMI)を受信した場合に入力されてもよい。SMIを検出すると、非SMMのワーキングメモリが後の再インスタンシエイション用に記憶させられ、プロセッシングデバイスがSMMにエントリしてもよい。本明細書でBIOSに関して検討される複数の実施形態は、統一型拡張ファームウェアインタフェース(UEFI)に関して類似的に実行されてもよい。
ハードウェア構成レポーティングシステム100は、アービタ論理102とレポーティング論理104とを含んでもよい。レポーティング論理104は、TEEから動作可能であってもよく、プロセッシングデバイスがnon−TEE118にある場合に実行される論理から隔離されてもよい。とりわけ、レポーティング論理104は、TEEメモリに記憶されてもよい。図2を参照して以下で検討されるように、アービタ論理102は、TEE116内で動作してもよく、または、non−TEE118内で動作してもよい。アービタ論理102は、レポーティング論理104と通信可能に結合されてもよい。
アービタ論理102は、要求論理106と、セキュリティ論理108と、アクション論理110とを含んでもよい。アービタ論理102はまた、メモリ156を含んでもよく、メモリ156は、アービタ論理102の複数のコンポーネントの何れかによって使用され、アービタ論理102の動作に関連するデータを記憶してもよい。
要求論理106は、要求の指標をレポーティング論理104に提供するように構成されてもよい。要求は、1つ又は複数のハードウェア構成レジスタを表わしてもよく、アービタ論理102は、これについての情報を受信することを望んでいる。ハードウェア構成レポーティングシステム100は、1つ又は複数の異なるタイプの要求を認識してもよい。幾つかの実施形態において、要求は、1つ又は複数のハードウェア構成レジスタの値の「クエリ」であってもよい。レポーティング論理104は、これに応じて、複数の値のインジケータを提供してもよい。例えば、要求論理106によってレポーティング論理104に提供される要求は、フラッシュ部分ロックレジスタを表わすクエリであってもよい。これに応じて、レポーティング論理104は、フラッシュ部分ロックレジスタに記憶されているのが「0」の値であるか「1」の値であるかの指標を提供してもよい。一方の値は、フラッシュ部分がロックされ、従って、マザーボードROMを更新できないことを示し、その一方で、他方の値は、フラッシュ部分がアンロックされ、従って、任意のものがマザーボードROMを更新できることを示してもよい。幾つかの実施形態において、要求は、1つ又は複数のハードウェア構成レジスタの値が一組の規定値に等しいという「チェック」であってもよく、これに応答して、レポーティング論理104は、複数のハードウェア構成レジスタの複数の値がその一組の規定値に等しいか否かのバイナリインジケータを提供してもよい。例えば、要求論理106によってレポーティング論理104に提供される要求は、フラッシュ部分ロックレジスタと、「1」の規定値とを表すチェックであってもよく、これに応答して、レポーティング論理104は、フラッシュ部分ロックレジスタに記憶された値が「1」の規定値に等しい、又は、「1」の規定値に等しくないことの指標を提供してもよい。装置がSMMを含んでいる幾つかの実施形態において、要求論理106によってレポーティング論理104に提供される要求は、SMMロックレジスタを表わすクエリまたはチェックであってもよい。一方の値が、SMMメモリを更新できないことを示し、その一方で、他方の値が、SMMメモリがアンロックされ、従って、任意のものがSMMメモリを更新できることを示してもよい。幾つかの実施形態において、アービタ論理102は、クエリと複数のチェック要求とを選択的に提供するように構成されてもよく、その一方で、複数の他の実施形態では、アービタ論理102は、クエリのみを提供すること、又は、複数のチェック要求のみを提供することに制限されてもよい。
幾つかの実施形態において、要求論理106によって提供される要求の形態およびコンテンツは、開発者によって構成されてもよい。例えば、開発者は、(例えば、要求によって表わされる複数のハードウェア構成レジスタと要求のタイプといった)要求の形態およびコンテンツを指定する拡張マークアップ言語(XML)スクリプトを書き込んでもよく、そのスクリプトをメモリ156に記憶させてもよい。要求論理106は、メモリ156からXMLスクリプトを取得して、実行用にXMLスクリプトをバイナリスクリプトへと変換するように構成されてもよい。要求論理106は、バイナリスクリプトを記憶させるように構成されてもよい。要求論理106がバイナリスクリプトを実行する場合、要求がレポーティング論理104に提供されてもよい。
セキュリティ論理108は、要求論理106と結合されてもよく、要求論理106から要求の指標を受信したことに応答して、レポーティング論理104によって提供されたインジケータを評価するように構成されてもよい。とりわけ、セキュリティ論理108は、(要求論理106によって提供された要求により表わされる)ハードウェア構成レジスタの値のインジケータが、記憶されたセキュリティ要件を満たしていないか満たしているかを決定するように構成されてもよい。記憶されたセキュリティ要件は、管理者又は権限を与えられた他のエンティティによって設定された、予め定義されたセキュリティポリシーの一部であってもよい。1つ又は複数のセキュリティ要件は、メモリ156に記憶されてもよく、(例えば任意の適切なデータベース構造における)様々なハードウェア構成レジスタの、特定の複数の個別の値又は複数の値の複数のパターンと対応してもよい。例えば、メモリ156に記憶されたセキュリティ要件は、チップセット再マッピングレジスタの値が、チップセット再マッピングレジスタがロックされて改ざんされ得ないことを示す「1」でなければならないことを指定してもよい。「0」の値は、任意のものがメモリの複数の部分を再マッピングし得ることを示してもよい(例えば、TEE116に対応する部分のようなメモリの複数の隠し部分を、保護されていない複数のメモリ領域に再マッピングすること)。セキュリティ論理108は、要求論理106の要求に応答して、レポーティング論理104によって提供されたインジケータに基づいて、チップセット再マッピングレジスタの値のインジケータが「1」に等しいか等しくないかを決定するように構成されてもよい。
アクション論理110は、セキュリティ論理108と結合されてもよく、セキュリティ論理108による、自己の記憶されたセキュリティ要件が満たされているか満たされていないかの決定に応答して、アクションを実行するように構成されてもよい。様々な記憶されたセキュリティ要件が満たされているときに実行されるアクション、又は、満たされていないときに実行されるアクションは、メモリ156に記憶されてもよく、これによって、セキュリティ論理108による決定のうちの、各々の考え得る結果が、(例えば任意の適切なデータベース構造において)実行される1つ又は複数のアクションと対応して記憶されてもよい。アクション論理110は、セキュリティ論理108による決定の特定の結果をメモリ156に配置して、対応する1つ又は複数のアクションを識別してもよく、対応する1つ又は複数のアクションを実行してもよい。実行される複数のアクションは、ハードウェア構成レポーティングシステム100が危害を受けなくなるように、デバイス設計者によって選択されてもよい。例えば、幾つかの実施形態において、アクション論理110は、ハードウェア構成レポーティングシステム100と結合されたディスプレイデバイス上において、記憶されたセキュリティ要件が満たされているか満たされていないかのインジケータの表示を引き起こすように構成されてもよい。このインジケータは、グラフィカルユーザインタフェースの一部であってもよく、セキュリティ要件のステータスをユーザに通知してもよい。幾つかの実施形態において、アクション論理110は、ハードウェア構成レジスタと関連付けられたハードウェアに対して、記憶されたセキュリティ要件が満たされていないとの(セキュリティ論理108による)決定に応答してシャットダウンさせるように構成されてもよい。例えば、ハードウェア構成レジスタが並列通信ハードウェアと関連付けられている場合、アクション論理110は、並列通信ハードウェア用の記憶されたセキュリティ要件が満たされていないならば、並列通信ハードウェアに、一時的にシャットダウンさせてもよく、又は、複数の動作を中断させてもよい。これらのアクションは単に例示的なものであって、任意の適切なアクションが実行されてもよい。
レポーティング論理104は、要求サービス論理112と、プロビジョン論理114とを含んでもよい。レポーティング論理104はまた、レポーティング論理104の複数のコンポーネントの何れかによって使用されてレポーティング論理104の動作に関連するデータを記憶し得るメモリ158を含んでもよい。アービタ論理102に関して上記で検討したように、レポーティング論理104は、アービタ論理102から要求の指標を受信して、それに応答するようにTEE116内で動作するよう、構成されてもよい。とりわけ、(TEEメモリに記憶される)要求サービス論理112は、アービタ論理102から(例えば要求論理106から)要求の指標を受信するようにTEE116内で動作するよう、構成されてもよい。要求は、1つ又は複数のハードウェア構成レジスタを表わしてもよい。
(TEEメモリに記憶される)プロビジョン論理114は、要求サービス論理112に結合されてもよく、アービタ論理102に対して(例えばセキュリティ論理108に対して)、要求によって表わされるハードウェア構成レジスタの値のインジケータを提供するようにTEE116内で動作するよう、構成されてもよい。
上記で留意されたように、アービタ論理102は、non−TEE118またはTEE116内から動作可能であってもよい。幾つかの実施形態において、アービタ論理102の1つ又は複数のインスタンシエイションは、TEE116内で動作してもよく、アービタ論理102の1つ又は複数のインスタンシエイションは、non−TEE118において動作してもよい。図2は、そのようなハードウェア構成レポーティングシステム100の実施形態を示している。TEE116におけるアービタ論理102のインスタンシエイションは、例えば、起動したときに、起動中の様々なハードウェア構成レジスタの複数の値を評価することを実行し得る、基本入出力オペレーティングシステム(BIOS)フェーズアービタであってもよい。幾つかの実施形態において、BIOSフェーズアービタは、様々なハードウェア構成レジスタの複数の値が複数の記憶されたセキュリティ要件に従っているかをチェックすべくチェック要求を提供してもよく、もしその要件に従っていないならば、BIOSフェーズアービタは、装置が起動することを防げてもよい。non−TEE118におけるアービタ論理102のインスタンシエイションは、例えば、オペレーティングシステム内で動作して、(例えば、周期的に、又は、管理者のコマンドで)動作中の様々なハードウェア構成レジスタの複数の値を評価する、セキュリティコンソールアプリケーションであってもよい。幾つかの実施形態において、non−TEE118は、レポーティング論理104が動作するプロセッシングデバイスとは異なるプロセッシングデバイスで動作してもよく、従って、アービタ論理102は、レポーティング論理104が動作するプロセッシングデバイスと異なるプロセッシングデバイスで動作してもよい。幾つかの実施形態において、non−TEE118は、レポーティング論理104が動作するプロセッシングデバイスと同じプロセッシングデバイスで動作してもよい。
アービタ論理102が、レポーティング論理104がインスタンス化されているのと同じプロセッシングデバイスのnon−TEE118内で動作するアプリケーションに含まれる幾つかの実施形態において、ハードウェア構成レポーティングシステム100は、レポーティング論理104とアービタ論理102との間に、信頼できる「帯域内」チャンネルを確立してもよい。上記で留意されたように、アプリケーションは、セキュリティコンソール、ポリシーオーケストレータ、セキュリティドライバ、又は、他のセキュリティ関連ミドルウェアであってもよい。セキュリティコンソールは、アクション論理110からの複数の命令に応答して、任意のハードウェア構成レジスタ要求の複数の結果の視覚的表示をユーザに提供するように構成されてもよい。幾つかの実施形態において、この視覚的インジケータは、「合格/不合格」インジケータの形態を取ってもよい。ユーザが管理者であってより詳細な結果を望んでいる複数の実施形態において、セキュリティコンソールは、アクション論理110からの複数の命令に応答して、要求によって表わされる各ハードウェア構成レジスタの複数の値の視覚的インジケータを提供してもよい。
アービタ論理102が、レポーティング論理104がインスタンス化されているプロセッシングデバイスとは異なるプロセッシングデバイスのnon−TEE118内で動作するアプリケーションに含まれる幾つかの実施形態において、ハードウェア構成レポーティングシステム100は、レポーティング論理104とアービタ論理102との間に、信頼できる「帯域外」チャンネルを確立してもよい。幾つかのそのような実施形態において、アービタ論理102は、マネージャビリティエンジン(ME)、コンバージドセキュリティおよびマネージャビリティエンジン(CSME)、又は、アクティブマネージメントテクノロジ(AMT)においてインスタンス化されてもよい。
上記で留意されたように、幾つかの実施形態において、TEE116はSMMであってもよく、TEEメモリはSMMメモリ(例えば、システム管理ランダムアクセスメモリまたはSMRAM)であってもよい。図3は、そのようなハードウェア構成レポーティングシステム100の実施形態を示している。図3の実施形態において、SMM160は、TEE116として機能してもよく、レポーティング論理104は、SMM160内で動作してもよい。BIOS120は、SMM160を含んでもよく、また、1つ又は複数のドライバ実行環境(DXE)スクリプト122を含んでもよい。1つ又は複数のDXEスクリプト122は、図2のハードウェア構成レポーティングシステム100の実施形態におけるTEE116に含まれるアービタ論理102として機能してもよい。従って、DXEスクリプト122は、ハードウェア構成レジスタを表わす要求のインジケータを、(例えば起動中に)レポーティング論理104に提供してもよく、レポーティング論理104はそれに従って応答してもよい。オペレーティングシステム124は、non−TEE118として機能してもよく、(例えば図2に示されるように)non−TEE118に含まれるアービタ論理102として機能する1つ又は複数のアプリケーション126を含んでもよい。1つ又は複数のアプリケーション126は、本明細書で開示される複数のハードウェア構成レジスタ要求動作及び応答動作を実行すべく、SMM160のレポーティング論理104と通信可能に結合されてもよい。例えば、アプリケーション126は、ハードウェア構成レジスタを表わす要求のインジケータを、レポーティング論理104に提供してもよく、レポーティング論理104はそれに従って応答してもよい。オペレーティングシステム124が動作するプロセッシングデバイスが、BIOS120が動作するプロセッシングデバイスと同じである複数の実施形態において、要求のインジケータは、プロセッシングデバイスをSMM160にエントリさせるシステム管理インタラプトを伴ってもよく、その場合に、要求のインジケータはレポーティング論理104によって処理されてもよい。
TEE116用に可能性のある他の候補は、本明細書で説明される機能を有するレポーティング論理と共に構成可能でなくてもよい。例えば、トラステッドプラットフォームモジュール(TPM)は、通常は全てのチップセットレジスタ設定をレコードせず、代わりに、通常は現在のオペレーティングシステム構成情報を前のオペレーティングシステム構成情報と比較して、そのような情報における複数の変更を検出するのみである。しかしながら、TPMは通常、レポーティング論理104に関して上記で説明されたようなハードウェア構成レジスタの実際の値を提供することはできない。仮想マシンモニタ(VMM)といった他の候補は、多数のハードウェア構成レジスタ(例えばSMM関連ハードウェア構成レジスタ)にアクセスできず、通常は複数の異なるプラットフォームに一般的であり、従って、複数のプラットフォーム特有クエリを実行できない。
SMM160がTEE116として機能する複数の実施形態は、様々な利点を有し得る。SMM160は、複数のハードウェアレジスタにアクセスするために、他の複数のモード(例えばオペレーティングシステムが動作する複数のモード)に割り当てられるものより高いレベルの特権を有してもよい。幾つかの実施形態において、SMM160における場合には、プロセッシングデバイスは、任意のディスク部分を読み取り可能であってもよく、従って、複数のシステムリソースに完全にアクセス可能であってもよい。上記で検討されたように、SMM160は、別個の実行環境であり、従って、SMMメモリに記憶されるコード及びデータは、オペレーティングシステムカーネルに対して、又は、オペレーティングシステムにおいて動作している複数のアプリケーションに対して、可視ではなくてもよい。SMM160はインタラプトを介して入力されるので、SMM160は、ハードウェアレポーティング用のトリガ応答メカニズムを提供し、複数の外部ソースからの(例えばSMM160の外部のアービタ論理102からの)複数の要求を供給できる。更に、SMM160はまたプラットフォームファームウェアに組み込まれ、プラットフォームハードウェアのコンポーネントとして配送され、これにより、悪意のあるユーザがSMM160を除去する又は改ざんすることを困難にできる。
幾つかの実施形態において、アービタ論理102からの要求のインジケータは、プロセッシングデバイスのTEE116へのエントリをトリガするインタラプトのソースに、少なくとも部分的に基づいてもよい。例えば、non−TEE118におけるアプリケーションが指定の入出力(I/O)ポートにアクセスするならば、インタラプトがトリガされて、プロセッシングデバイスがTEE116にエントリしてもよい。メモリ158は、様々なI/Oポートの複数の位置を記憶してもよく、それらのポートへのアクセスによってインタラプトがトリガされる場合、そのインタラプトは、アービタ論理102からの要求を示している。幾つかの実施形態において、特定のI/Oポートは、特定のタイプの要求(例えばチェックまたはクエリ)に対応してもよい。
幾つかの実施形態において、アービタ論理102からの要求のインジケータは、non−TEE118において動作している場合にプロセッシングデバイスにアクセス可能な予め定められたレジスタに記憶されている値に、少なくとも部分的に基づいてもよい。例えば、特定のハードウェアレジスタ(例えばI/Oポート)が指定され、アービタ論理102によって、要求のインジケータとして特定の値でプログラムされてもよい。インタラプトが検出されてプロセッシングデバイスをTEE116にエントリさせた場合、レポーティング論理104は、特定のハードウェアレジスタの値を読み取るように構成されてもよい。幾つかの実施形態において、ハードウェアレジスタは、上記で検討されたように、自己のアクセスによって、プロセッシングデバイスをTEE116にエントリさせるインタラプトがトリガされたレジスタと同じである。特定のハードウェアレジスタの異なる複数の値は、異なる複数のタイプの要求(例えばチェック又はクエリ)と、要求インジケータによって表わされる異なる複数のハードウェア構成レジスタとに対応してもよい。特定のハードウェアレジスタの複数の値と、要求の複数のタイプおよび/またはハードウェア構成レジスタとの間の対応関係は、メモリ158に記憶され、レポーティング論理104によってアクセスされてもよい。幾つかの実施形態において、汎用レジスタが指定され、アービタ論理102によって特定の値でプログラムされてもよく、その特定の値は、レポーティング論理104に渡されるパラメータとして作用し得る。任意の適切なパラメータが、汎用レジスタを介して伝達されてもよい(例えば、レポーティング論理104がクエリ又はチェックの結果を提供する宛先の具体的なメモリ位置)。幾つかの実施形態において、この汎用レジスタの位置は、メモリ158に記憶されてもよく、レポーティング論理104は、要求を受信すると、この汎用レジスタをルックインするように構成されてもよい。
図4は、レポーティング論理104の実施形態を示しており、要求サービス論理112と、プロビジョン論理114と、メモリ158の機能が、複数のドライバ間に配布されている。複数のドライバのうちの異なるものは、異なる複数のハードウェア構成レジスタにアクセス可能であってもよく、従って、異なる複数のハードウェア構成レジスタを表す複数の要求は、異なる複数のドライバによって少なくとも部分的にサービスされてもよい。図4は、レポーティング論理104が、コアドライバ128と、チップセットドライバ130と、プラットフォームドライバ132とを含む実施形態を示している。
コアドライバ128は、多数の装置(例えば、単一の製造者によって製造された多数の装置)に共通の、一般的なチップセットであってもよい。レポーティング論理104で受信される複数の要求は、コアドライバ128で受信されてもよく、コアドライバ128は、レポーティング論理104の複数のドライバ(例えば、コアドライバ128、チップセットドライバ130、又は、プラットフォームドライバ132)のうち何れが、要求によって表わされるハードウェア構成レジスタにアクセス可能であるかを決定するように構成されてもよい。コアドライバ128は次に、決定されたドライバと通信して、要求をサービスしてもよい。例えば、コアドライバ128は、(コアドライバ128自体が要求をサービスしないならば、)要求を、チップセットドライバ130またはプラットフォームドライバ132にルーティングしてもよく、チップセットドライバ130またはプラットフォームドライバ132は、ハードウェア構成レジスタにアクセスして要求に応答してもよく、チップセットドライバ130またはプラットフォームドライバ132は、アービタ論理102への提供用に、コアドライバ128に応答を返してもよい。
幾つかの実施形態において、コアドライバ128は、(どのようにSMRAMがキャッシュされるかを決定し得る)システム管理範囲レジスタ、(様々なデバッグおよび性能モニタタスク用に用いられる)複数のモデル特有レジスタ(MSR)134、複数の周辺コンポーネント相互接続(PCI)レジスタ140、複数のメモリマップI/O(MMIO)レジスタ136、及び、複数のI/Oレジスタ138などの、基本システムリソースの複数のハードウェア構成レジスタにアクセス可能であってもよい。例えば、コアドライバ128は、システム管理範囲レジスタにアクセスして、(クエリに応答して、)システム管理範囲レジスタの値と、(例えばシステム管理範囲レジスタが8M整合アドレス(aligned address)として構成されているといった)システム管理範囲レジスタのデータタイプ構成とを含むデータを返すように構成されてもよい。
幾つかの実施形態において、チップセットドライバ130は、(チップセット再マッピング用の)複数のメモリコントローラハブ(MCH)レジスタ142、(VT−dレジスタ146のような)ダイレクトメモリアクセスに関連する複数のレジスタ、及び、(バックアップ起動ブロックを提供するためのRCBA.TOP_SWAP レジスタのような)複数のルートコンプレックスベースアドレス(RCBA)レジスタ144などの、チップセットリソースの複数のハードウェア構成レジスタにアクセス可能であってもよい。
幾つかの実施形態において、プラットフォームドライバ132は、複数のフラッシュ部分ロックレジスタ148、複数の埋め込みコントローラレジスタ、複数のパラレル及びシリアル通信レジスタ150、及び、キーボード、マウスまたは他の周辺機器に関連する複数のレジスタなどの、プラットフォームリソースの複数のハードウェア構成レジスタにアクセス可能であってもよい。
図5は、様々な実施形態による、ハードウェア構成レポーティングの方法500の流れ図である。方法500の複数の動作が、レポーティング論理104内に構成されたTEE116を有するプロセッシングデバイスによって実行されるように検討されるかもしれないが、これは単に複数の例示的目的のためであって、これらの動作は、任意の適切なハードウェアによって実行されてもよい。方法500に関して以下で検討される複数の動作の何れも、ハードウェア構成レポーティングシステム100に関して上記で検討された複数の実施形態の何れかに従って実行され得る。
段階502では、プロセッシングデバイスは、(例えばnon−TEE118から)TEE116にエントリしてもよい。プロセッシングデバイスは、インタラプトを受信したことに応答して、TEE116にエントリしてもよい。例えば、TEE116がSMM160である場合、プロセッシングデバイスは、システム管理インタラプトに応答してSMM160にエントリしてもよい。
段階504では、(TEE116において動作している)プロセッシングデバイスは、ハードウェア構成レジスタを表わしている要求の指標を受信してもよい。幾つかの実施形態において、レポーティング論理104の要求サービス論理112が、要求を受信してもよい。
段階506では、(TEE116において動作している)プロセッシングデバイスは、段階504の要求において表わされたハードウェア構成レジスタの値のインジケータを提供してもよい。幾つかの実施形態において、レポーティング論理104のプロビジョン論理114がインジケータを提供してもよい。
図6は、様々な実施形態による、ハードウェア構成アービトレーションの方法600の流れ図である。方法600の複数の動作が、アービタ論理102と共に構成されたプロセッシングデバイスによって実行されるように検討されるかもしれないが、これは単に複数の例示的目的のためであって、これらの動作は、任意の適切なハードウェアによって実行されてもよい。方法600に関して以下で検討される複数の動作の何れも、ハードウェア構成レポーティングシステム100に関して上記で検討された複数の実施形態の何れかに従って実行され得る。
段階602では、プロセッシングデバイスは、ハードウェア構成レジスタを表わしている要求の指標を、プロセッシングデバイスのTEEに位置するレポーティング論理(例えば、TEE116に位置するレポーティング論理104)に提供してもよい。幾つかの実施形態において、要求論理106は、段階602で、要求の指標を提供してもよい。幾つかの実施形態において、要求の指標は、要求を受信するプロセッシングデバイスのTEEと同じTEEにおいて動作しているアービタ論理102によって提供されてもよい。幾つかの実施形態において、要求の指標は、要求を受信するプロセッシングデバイスのnon−TEEにおいて動作しているアービタ論理102によって提供されてもよい。幾つかの実施形態において、要求の指標を提供するプロセッシングデバイスは、要求を受信するプロセッシングデバイスと異なるプロセッシングデバイスであってもよい。幾つかの実施形態において、TEEはSMMであってもよい。
段階604では、プロセッシングデバイスは、要求に応答してレポーティング論理によって提供されるハードウェア構成レジスタの値がセキュリティ要件を満たしていないと決定してもよい。幾つかの実施形態において、セキュリティ論理108は、段階604の決定を実行してもよい。
段階606では、プロセッシングデバイスは、セキュリティ要件が満たされていないとの決定に応答して、アクションを実行してもよい。幾つかの実施形態において、アクション論理110は、段階606のアクションを実行してもよい。セキュリティ要件が満たされていないとの決定について段階604および段階606に関して上記で検討されたが、セキュリティ要件が満たされているとの決定が実行されてもよく、それに従って、(例えばアクション論理110に関して上記で検討されたように)複数のアクションが実行されてもよい。
図7は、様々な実施形態による、ハードウェア構成レポーティングおよびアービトレーションの方法700の流れ図である。方法700は、方法500(図5)および方法600(図6)の複数の動作のうちの、様々なものの複数の実施形態を含んでもよい。とりわけ、方法700は、複数のレポーティング動作716と、複数のアービトレーション動作730とを含む。複数のレポーティング動作716および複数のアービトレーション動作730は、異なる論理によって実行されてもよい。例えば、幾つかの実施形態において、付k数のレポーティング動作716は、レポーティング論理104によって実行されてもよく、複数のアービトレーション動作730は、アービタ論理102によって実行されてもよい。方法700の複数の動作は図4のレポーティング論理104および図1のアービタ論理102によって様々に実行されるものとして検討されてもよいが、これは単に複数の例示的目的のためであって、これらの動作は、任意の適切なハードウェアによって実行されてもよい。方法700に関して以下で検討される複数の動作の何れも、ハードウェア構成レポーティングシステム100に関して上記で検討された複数の実施形態の何れかに従って実行され得る。
段階702では、レポーティング論理に含まれるコアドライバが起動されてもよい。段階702のコアドライバは、図4を参照して上記で検討されたコアドライバ128であってもよい。幾つかの実施形態において、起動は、ドライバエントリポイントの呼出しを含んでもよい。ドライバ(例えばコアドライバ128)は、メモリにおいて独自のデータ構造を準備してもよく、そのデータ構造におけるデータは、後になって使用されてもよい。幾つかの実施形態において、起動は、後で他の複数のドライバによって呼び出され得る、1つ又は複数のコールバック機能又はプロトコルを登録することを含んでもよい。例えば、(例えば以下で検討されるような)チップセットドライバが、コアドライバによる利用のために、ChipsetCheck()およびChipsetReport()機能を登録してもよい。コアドライバが(例えばBIOSまたはOSから)対応する機能要求を入手する場合、コアドライバは、その要求を適切なチップセットドライバ機能にディスパッチしてもよい。
段階704では、レポーティング論理に含まれるチップセットドライバが起動されてもよい。段階704のチップセットドライバは、図4を参照して上記で検討されたチップセットドライバ130であってもよい。
段階706では、レポーティング論理に含まれるプラットフォームドライバが起動されてもよい。段階706のプラットフォームドライバは、図4を参照して上記で検討されたプラットフォームドライバ132であってもよい。
段階708では、レポーティング論理が、要求が受信されたかどうかを決定してもよい。上記で検討されたように、要求は、1つ又は複数のハードウェア構成レジスタを表わしてもよく、その要求のプロバイダ(例えばアービタ論理102)は、1つ又は複数のハードウェア構成レジスタについての情報を受信することを望んでいる。幾つかの実施形態において、段階708の決定は、コアドライバ128によって実行されてもよい。
レポーティング論理が、要求が受信されていないと決定するならば、レポーティング論理は、段階708へと戻り、要求をモニタし続けてもよい。図7で破線矢印732によって示されているように、要求は、(以下で検討される)段階722の複数の動作を実行したことに応答して、アービタ論理によって提供されてもよい。レポーティング論理が、段階708で要求が受信されたと決定するならば、レポーティング論理は、段階710へと進み、要求がチェックされたかどうかを決定してもよい。要求論理106に関して上記で検討されたように、チェック要求は、1つ又は複数のハードウェア構成レジスタの値が一組の規定値に等しいかどうかを問い合わせてもよい。幾つかの実施形態において、段階710の決定は、コアドライバ128によって実行されてもよい。
段階710において、レポーティング論理が、要求がチェックではないと決定するならば、レポーティング論理は、段階712に進み、要求がクエリであるかどうかを決定してもよい。要求論理106に関して上記で検討されたように、クエリは、1つ又は複数のハードウェア構成レジスタの値を求めてもよい。幾つかの実施形態において、段階712の決定は、コアドライバ128によって実行されてもよい。段階712において、レポーティング論理が、要求がクエリではないと決定し、許可されている他の要求タイプが無いならば、レポーティング論理は、段階708へと戻り、有効な要求の受信をモニタし続けてもよい。レポーティング論理が、段階710で要求がチェックであると決定するならば、又は、段階712で要求がクエリであると決定するならば、レポーティング論理は、段階714に進み、要求によって表わされる1つ又は複数のハードウェア構成レジスタの値のインジケータを提供してもよい。幾つかの実施形態において、コアドライバ128は、レポーティング論理104に含まれる複数のドライバのうちの他のドライバ(例えばチップセットドライバ130またはプラットフォームドライバ132)が、要求において表わされるハードウェア構成レジスタにアクセス可能であると決定してもよく、要求を決定されたドライバにルーティングして、決定されたドライバと通信し、適切に、チェック又はクエリへの応答を受信してもよい。幾つかの実施形態において、段階702のコアドライバは、1つ又は複数のハードウェア構成レジスタの値のインジケータを提供してもよい。1つ又は複数のハードウェア構成レジスタの値のインジケータは、例えば、アービタ論理(例えばアービタ論理102)へと提供されてもよい。図7で破線矢印734によって示されるように、その値のインジケータは、アービタ論理へと提供されてもよい。
方法700の複数の動作730へと戻ると、段階718では、XMLスクリプトが生成されてもよい。要求論理106に関して上記で検討されたように、XMLスクリプトは、開発者によって生成されてもよく、(例えば要求論理106によって)自動的に生成されてもよい。XMLは開発者によって容易に理解されるシンタックスを用いているので、XMLスクリプトにより、開発者が、予期されるハードウェア構成を(例えば、1つ又は複数の記憶されたセキュリティ要件の形態で、又は、他のセキュリティポリシーの形態で)容易に定義することが可能になってもよい。XMLスクリプトは、特定の要求の形態およびコンテンツを指定してもよく、メモリ156に記憶されてもよい。
段階720では、段階718のXMLスクリプトは、バイナリスクリプトへと変換されてもよい。要求論理106に関して上記で検討されたように、バイナリスクリプトは、レポーティング論理(例えばレポーティング論理104)に要求の指標を提供すべく、要求論理106によって実行可能であってもよい。幾つかの実施形態において、バイナリスクリプトは、ファームウェアに含まれてもよく、アービタ論理102によって、BIOS起動中にレポーティング論理104へと送信されてもよい。
段階722では、段階720のバイナリスクリプトが実行されて、レポーティング論理(例えばレポーティング論理104)に要求の指標を提供してもよい。要求は、情報が求められているハードウェア構成レジスタを表わしてもよい。幾つかの実施形態において、要求は、レポーティング論理によって認識される特定のタイプの要求であってもよい(例えば、上記で検討されたようなチェック又はクエリ)。図7で破線矢印732によって示されているように、要求はレポーティング論理に提供されてもよい。
段階724において、(例えば矢印734によって示されているように)要求によって表わされるハードウェア構成レジスタの値のインジケータを受信したことに応答して、受信インジケータが評価され、記憶されたセキュリティ要件が満たされているかどうかを決定してもよい。幾つかの実施形態において、セキュリティ論理108は、上記で検討された複数の実施形態の何れかに従って、段階724の複数の動作を実行してもよい。
段階724において、何らかの記憶されたセキュリティ要件が満たされていると決定されるならば、アービタ論理は、段階728に進んでもよく、要求によって表わされるハードウェアレジスタと関連付けられたコンピューティングデバイスの通常動作が再開してもよい。幾つかの実施形態において、何らかの記憶されたセキュリティ要件が満たされていると決定したときに、1つ又は複数のアクションが実行されてもよい(例えば、複数の記憶されたセキュリティ要件が満たされていることを、ディスプレイデバイス上でレポーティングすること)。段階724において、複数の記憶されたセキュリティ要件が何ら満たされていないと決定されるならば、アービタ論理は、段階726に進んでもよく、アクションが実行されてもよい。そのアクションは、アクション論理110に関して上記で検討されたように、任意のセキュリティリスクミティゲーションまたは他の適切なアクションであってもよい。幾つかの実施形態において、アクション論理110が、段階726のアクションを実行してもよい。
幾つかの実施形態において、ハードウェア構成レポーティングシステム100は、自己の複数の動作を更新するための論理を含んでもよい。図8は、幾つかの実施形態による、ハードウェア構成レポーティングシステム100に含まれ得る更新システム800のブロック図である。更新システム800は、(例えば、図4を参照して上記で検討されたレポーティング論理104の実施形態に従って)レポーティング論理104のコアドライバ128においてスクリプト更新エージェント152を含む。スクリプト更新エージェントは、オペレーティングシステム124内で動作しているセキュリティコンソール154と通信可能に結合されてもよい。セキュリティコンソール154は、レポーティング論理104に、レポーティング論理104の基礎となるコードのバージョン番号またはデジタル署名を問い合わせる(query)ように構成されてもよく、このコードが最新バージョン(又は許容可能なバージョン)であるかどうかを決定してもよい。TEE116の外部で動作しているコンポーネントがTEE116のメモリを直接見ることができなくてもよいが、セキュリティコンソール154は、TEE116のハンドラに要求を送信して、デジタル署名またはバージョン番号をチェックするように構成されてもよい。幾つかの実施形態において、TEE116は、信頼できるソースから、レポーティング論理104の更新イメージを要求し、それに従ってレポーティング論理104を更新するように構成されてもよい。
ここで図9を参照すると、様々な実施形態に従って、開示される複数の実施形態を実施するのに適した例示的な装置のブロック図が提供されている。様々な実施形態において、装置900は、サーバ、デスクトップコンピュータ、ラップトップコンピュータ、タブレットコンピュータ、携帯電話、スマートフォン、パーソナルデジタルアシスタント、ゲームコンソール、インターネットアプライアンス、モバイルインターネットデバイスまたは他のコンピューティングデバイスであってもよい。
示されるように、装置900は、多数のプロセッシングデバイス902と、システムメモリ904とを含む。複数のプロセッシングデバイス902の任意の1つ又は複数は、ハードウェア構成レポーティングシステム(例えばハードウェア構成レポーティングシステム100)の一部として、(レポーティング論理104のような)レポーティング論理、および/または、(アービタ論理102のような)アービタ論理を含むように構成されてもよい。例えば、複数のプロセッシングデバイス902の1つ又は複数は、1つのTEEにおいて動作するように構成され、複数のプロセッシングデバイス902の1つ又は複数は、1つ又は複数のnon−TEEにおいて動作するように構成されてもよい。幾つかの実施形態において、TEEはSMMであってもよい。本明細書で開示される複数のハードウェア構成レポーティングシステムの何れかのコンポーネントの機能を実行している論理は、少なくとも部分的に、(TEEの複数の境界に従ってパーティション化され得る)システムメモリ904に記憶されてもよい。更に、装置900は、(ディスケット、ハードドライブ、コンパクトディスクリードオンリーメモリ(CD−ROM)等の)複数の大容量ストレージデバイス906、(ディスプレイ、キーボード、カーソル制御等の)複数の入出力デバイス908、及び、(複数のネットワークインタフェースカード、モデム等の)複数の通信インタフェース910を含んでもよい。複数の要素は、1つ又は複数のバスを表わしているシステムバス912を介して各々他に結合されてもよい。複数のバスの場合、それらは1つ又は複数のバスブリッジ(不図示)によって橋渡しされてもよい。
これらの要素のそれぞれは、この分野で既知である、自己の従来の機能を実行してもよい。とりわけ、システムメモリ904および大容量ストレージ906は、本明細書では計算論理922として集合的に示されている各プロセッシングデバイス902によって実行された場合に、図5−7の何れかの方法を実行する複数のプログラミング命令の作業用コピーおよび永久コピー、又は、それらの複数部分を記憶するのに使用されてもよい。様々なコンポーネントは、複数のプロセッシングデバイス902によってサポートされている複数のアセンブラ命令、又は、例えばそのような命令へとコンパイルされ得るCのような複数の高レベル言語によって実行されてもよい。複数のプロセッシングデバイス902およびシステムメモリ904は、様々な実行速度および電力消費の複数のプロセッシングコアと、(例えば1つ又は複数のレベルのキャッシュを備える)様々なアーキテクチャおよび様々なタイプ(例えばダイナミックランダムアクセス、FLASH等)のメモリとの複数の配置を含む、広範なプロセッシングデバイスおよびメモリ配置を表わしてもよい。例えば、システムメモリ904は、プロセッシングデバイス902がnon−TEEにおいて動作している場合にはアクセス不可能であるTEEメモリを含んでもよい。
複数のプログラミング命令の永久コピーは、ファクトリにおける大容量ストレージ906へと置かれてもよく、又は、例えば、コンパクトディスク(CD)のような機械アクセス可能配布媒体(不図示)を介して、若しくは、(例えば配信サーバ(不図示)から)通信インタフェース910を介して、フィールドに置かれてもよい。すなわち、エージェントプログラムの実装例を有している1つ又は複数の配布媒体は、そのエージェントプログラムを様々なコンピューティングデバイスに配布するのに使用されてもよい。幾つかの実施形態において、レポーティングおよび/またはアービタ論理は、更新メカニズム(例えば、図8を参照して上記で検討されたレポーティング論理更新メカニズム)に従って、更新されてもよい。複数の要素902−912の構成は既知であり、従って、更なる説明は行わない。
上記で説明された複数の技術を実行するための、(機械可読記憶媒体のような非一時的機械可読媒体を含む)機械可読媒体、複数の方法、システムおよびデバイスは、本明細書で開示される複数の実施形態の複数の用例である。追加して、上記で説明された複数のインタラクションにおける他の複数のデバイスは、開示される様々な技術を実行するように構成されてもよい。
本明細書で開示される複数のハードウェア構成レポーティングシステムの様々な実施形態は、任意の数の装置にレポーティングする機能およびハードウェア構成を提供するのに用いられてもよい。例えば、様々な実施形態が、BIOS整合性試験を提供するのに用いられてもよい。様々な実施形態が、ハードウェアおよびファームウェアセキュリティ状態情報を提供するのに用いられてもよい。
以下の複数の段落は、本明細書で開示された様々な実施形態の複数の例を記載している。例1は、TEEおよびnon−TEEを有し、特定のインタラプトに応答してnon−TEEからTEEにエントリするプロセッシングデバイスであって、TEEは、non−TEEからアクセス不可能なメモリから実行される、プロセッシングデバイスと、メモリに記憶され、ハードウェア構成レジスタを表わしている要求の指標をアービタ論理から受信するようにTEE内で動作する要求サービス論理と、メモリに記憶され、TEE内で動作し、要求によって表わされるハードウェア構成レジスタの値のインジケータをアービタ論理にレポートするレポーティング論理と、を備えるハードウェア構成レポーティング用の装置である。
例2は、例1の主題を含んでもよく、更に、アービタ論理からの要求の指標が、non−TEEにおいて動作している場合にプロセッシングデバイスにアクセス可能な予め定められたレジスタに記憶されている値に、少なくとも部分的に基づくことを特定してもよい。
例3は、例1−2の何れかの主題を含んでもよく、更に、アービタ論理からの要求の指標が、プロセッシングデバイスのTEEへのエントリをトリガした特定のインタラプトのソースに、少なくとも部分的に基づくことを特定してもよい。
例4は、例1−3の何れかの主題を含んでもよく、更に、アービタ論理がプロセッシングデバイスのnon−TEEにおいて動作することを特定してもよい。
例5は、例1−3の何れかの主題を含んでもよく、更に、アービタ論理が、プロセッシングデバイスと異なる第2のプロセッシングデバイス上で動作することを特定してもよい。
例6は、例1−3の何れかの主題を含んでもよく、更に、アービタ論理が、プロセッシングデバイスのTEEにおいて動作することを特定してもよい。
例7は、例1−6の何れかの主題を含んでもよく、更に、要求がハードウェア構成レジスタの値のクエリであり、ハードウェア構成レジスタの値のインジケータがハードウェア構成レジスタの値であることを特定してもよい。
例8は、例1−6の何れかの主題を含んでもよく、更に、要求が、ハードウェア構成レジスタの値が規定値に等しいことのチェックであり、ハードウェア構成レジスタの値のインジケータが、ハードウェア構成レジスタの値が規定値に等しいか否かのバイナリインジケータであることを特定してもよい。
例9は、例8の主題を含んでもよく、更に、アービタ論理が、プロセッシングデバイスの基本入出力オペレーティングシステム(BIOS)において動作しているドライバ実行環境(DXE)スクリプトであることを特定してもよい。
例10は、例1−9の何れかの主題を含んでもよく、更に、要求サービス論理が更に、複数のドライバのうちの何れが、要求によって表わされるハードウェア構成レジスタにアクセス可能であるかを決定し、決定されたドライバと通信して要求をサービスすることを特定してもよい。
例11は、例1−3および6−10の何れかの主題を含んでもよく、更に、アービタ論理が、起動したときに実行する基本入出力オペレーティングシステム(BIOS)フェーズアービタであることを特定してもよい。
例12は、例1−11の何れかの主題を含んでもよく、更に、TEEがシステム管理モードであることを特定してもよい。
例13は、コンピューティング論理が、アプリケーションからの要求の指標を、プロセッシングデバイスのTEEという信頼できる実行環境のレポーティング論理に提供する段階であって、プロセッシングデバイスが、TEEと、non−TEEという信頼できない実行環境とを有し、プロセッシングデバイスが、特定のインタラプトに応答してnon−TEEからTEEにエントリし、TEEが、non−TEEからアクセス不可能なメモリから実行され、レポーティング論理がメモリに記憶され、要求がハードウェア構成レジスタを表わしている、段階と、要求の指標を受信したことに応答してレポーティング論理によって提供された、要求によって表わされるハードウェア構成レジスタの値のインジケータが、記憶されたセキュリティ要件を満たしていないと、コンピューティング論理が決定する段階と、コンピューティング論理が、記憶されたセキュリティ要件が満たされていないとの決定に応答して、アクションを実行する段階と、を備えるハードウェア構成アービトレーションの方法である。
例14は、例13の主題を含んでもよく、更に、記憶されたセキュリティ要件が満たされていないとの決定に応答して、アクションを実行する段階が、記憶されたセキュリティ要件が満たされていないとの決定に応答して、記憶されたセキュリティ要件が満たされていないことのインジケータの表示をディスプレイデバイス上に引き起こす段階を含むことを特定してもよい。
例15は、例13−14の何れかの主題を含んでもよく、更に、記憶されたセキュリティ要件が満たされていないとの決定に応答して、アクションを実行する段階が、記憶されたセキュリティ要件が満たされていないとの決定に応答して、ハードウェア構成レジスタと関連付けられたハードウェアにシャットダウンさせる段階を含むことを特定してもよい。
例16は、例13−15の何れかの主題を含んでもよく、更に、ハードウェア構成レジスタがチップセット再マッピングレジスタであることを特定してもよい。
例17は、例13−15の何れかの主題を含んでもよく、更に、ハードウェア構成レジスタがシステム管理モードロックレジスタであることを特定してもよい。
例18は、例13−15の何れかの主題を含んでもよく、更に、ハードウェア構成レジスタがフラッシュ部分ロックレジスタであることを特定してもよい。
例19は、例13−18の何れかの主題を含んでもよく、更に、コンピューティング論理の少なくとも一部がプロセッシングデバイスのnon−TEEにおいて動作することを特定してもよい。
例20は、例13−19の何れかの主題を含んでもよく、更に、コンピューティング論理の少なくとも一部が、プロセッシングデバイスと異なる第2のプロセッシングデバイス上で動作することを特定してもよい。
例21は、例13−20の何れかの主題を含んでもよく、更に、コンピューティング論理の少なくとも一部がプロセッシングデバイスのTEEにおいて動作することを特定してもよい。
例22は、例13−21の何れかの主題を含んでもよく、更に、TEEがシステム管理モードであることを特定してもよい。
例23は、装置の1つ又は複数のプロセッシングデバイスによって実行されたことに応答して、装置に例13−22の何れかの方法を実行させる複数の命令を有する1つ又は複数の機械可読媒体である。
例24は、アプリケーションからの要求の指標を、プロセッシングデバイスのTEEという信頼できる実行環境のレポーティング論理に提供するための手段であって、プロセッシングデバイスが、TEEと、non−TEEという信頼できない実行環境とを有し、プロセッシングデバイスが、特定のインタラプトに応答してnon−TEEからTEEにエントリし、TEEが、non−TEEからアクセス不可能なメモリから実行され、レポーティング論理がメモリに記憶され、要求がハードウェア構成レジスタを表わしている、手段と、要求の指標を受信したことに応答してレポーティング論理によって提供された、要求によって表わされるハードウェア構成レジスタの値のインジケータが、記憶されたセキュリティ要件を満たしていないと決定するための手段と、記憶されたセキュリティ要件が満たされていないとの決定に応答して、アクションを実行するための手段と、を備えるハードウェア構成アービトレーション用の装置である。
例25は、例24の主題を含んでもよく、更に、記憶されたセキュリティ要件が満たされていないとの決定に応答して、アクションを実行するための手段が、記憶されたセキュリティ要件が満たされていないとの決定に応答して、記憶されたセキュリティ要件が満たされていないことのインジケータの表示をディスプレイデバイス上に引き起こすための手段を含むことを特定してもよい。
例26は、例24−25の何れかの主題を含んでもよく、更に、記憶されたセキュリティ要件が満たされていないとの決定に応答して、アクションを実行するための手段が、記憶されたセキュリティ要件が満たされていないとの決定に応答して、ハードウェア構成レジスタと関連付けられたハードウェアにシャットダウンさせるための手段を含むことを特定してもよい。
例27は、例24−26の何れかの主題を含んでもよく、更に、ハードウェア構成レジスタがチップセット再マッピングレジスタであることを特定してもよい。
例28は、例24−26の何れかの主題を含んでもよく、更に、ハードウェア構成レジスタがシステム管理モードロックレジスタであることを特定してもよい。
例29は、例24−26の何れかの主題を含んでもよく、更に、ハードウェア構成レジスタがフラッシュ部分ロックレジスタであることを特定してもよい。
例30は、例24−29の何れかの主題を含んでもよく、更に、装置の少なくとも一部がプロセッシングデバイスのnon−TEEにおいて動作することを特定してもよい。
例31は、例24−30の何れかの主題を含んでもよく、更に、装置の少なくとも一部が、プロセッシングデバイスと異なる第2のプロセッシングデバイス上で動作することを特定してもよい。
例32は、例24−31の何れかの主題を含んでもよく、更に、装置の少なくとも一部がプロセッシングデバイスのTEEにおいて動作することを特定してもよい。
例33は、例24−32の何れかの主題を含んでもよく、更に、TEEがシステム管理モードであることを特定してもよい。
例34は、アプリケーションからの要求の指標を、プロセッシングデバイスのTEEのレポーティング論理に提供する要求論理であって、プロセッシングデバイスが、TEEおよびnon−TEEを有し、プロセッシングデバイスが、特定のインタラプトに応答してnon−TEEからTEEにエントリし、TEEが、non−TEEからアクセス不可能なメモリから実行され、レポーティング論理がメモリに記憶され、要求がハードウェア構成レジスタを表わしている、要求論理と、要求の指標を受信したことに応答してレポーティング論理によって提供された、要求によって表わされるハードウェア構成レジスタの値のインジケータが、記憶されたセキュリティ要件を満たしていないと決定するセキュリティ論理と、記憶されたセキュリティ要件が満たされていないとの決定に応答して、アクションを実行するアクション論理と、を備えるハードウェア構成アービトレーション用の装置である。
例35は、例34の主題を含んでもよく、更に、記憶されたセキュリティ要件が満たされていないとの決定に応答して、アクションを実行することが、記憶されたセキュリティ要件が満たされていないとの決定に応答して、記憶されたセキュリティ要件が満たされていないことのインジケータの表示をディスプレイデバイス上に引き起こすことを含むことを特定してもよい。
例36は、例34−35の何れかの主題を含んでもよく、更に、記憶されたセキュリティ要件が満たされていないとの決定に応答して、アクションを実行することが、記憶されたセキュリティ要件が満たされていないとの決定に応答して、ハードウェア構成レジスタと関連付けられたハードウェアにシャットダウンさせることを含むことを特定してもよい。
例37は、例34−36の何れかの主題を含んでもよく、更に、ハードウェア構成レジスタがチップセット再マッピングレジスタであることを特定してもよい。
例38は、例34−36の何れかの主題を含んでもよく、更に、ハードウェア構成レジスタがシステム管理モードロックレジスタであることを特定してもよい。
例39は、例34−36の何れかの主題を含んでもよく、更に、ハードウェア構成レジスタがフラッシュ部分ロックレジスタであることを特定してもよい。
例40は、例34−39の何れかの主題を含んでもよく、更に、装置の少なくとも一部がプロセッシングデバイスのnon−TEEにおいて動作することを特定してもよい。
例41は、例34−40の何れかの主題を含んでもよく、更に、装置の少なくとも一部が、プロセッシングデバイスと異なる第2のプロセッシングデバイス上で動作することを特定してもよい。
例42は、例34−41の何れかの主題を含んでもよく、更に、装置の少なくとも一部がプロセッシングデバイスのTEEにおいて動作することを特定してもよい。
例43は、例34−42の何れかの主題を含んでもよく、更に、TEEがシステム管理モードであることを特定してもよい。
例44は、コンピューティング論理が、アービタ論理から要求の指標を受信する段階であって、コンピューティング論理はメモリ内に記憶され、プロセッシングデバイスのTEE内で動作し、プロセッシングデバイスは、TEEおよびnon−TEEを有し、プロセッシングデバイスは、特定のインタラプトに応答してnon−TEEからTEEにエントリし、TEEは、メモリから実行され、メモリは、non−TEEからアクセス不可能であり、要求は、ハードウェア構成レジスタを表わしている、段階と、コンピューティング論理が、要求によって表わされるハードウェア構成レジスタの値のインジケータをアービタ論理にレポーティングする段階と、を備えるハードウェア構成レポーティングの方法である。
例45は、例44の主題を含んでもよく、更に、アービタ論理からの要求の指標が、non−TEEにおいて動作している場合にプロセッシングデバイスにアクセス可能な予め定められたレジスタに記憶されている値に、少なくとも部分的に基づくことを特定してもよい。
例46は、例44−45の何れかの主題を含んでもよく、更に、アービタ論理からの要求の指標が、プロセッシングデバイスのTEEへのエントリをトリガした特定のインタラプトのソースに、少なくとも部分的に基づくことを特定してもよい。
例47は、例44−46の何れかの主題を含んでもよく、更に、アービタ論理がプロセッシングデバイスのnon−TEEにおいて動作することを特定してもよい。
例48は、例44−46の何れかの主題を含んでもよく、更に、アービタ論理が、プロセッシングデバイスと異なる第2のプロセッシングデバイス上で動作することを特定してもよい。
例49は、例44−46の何れかの主題を含んでもよく、更に、アービタ論理がプロセッシングデバイスのTEEにおいて動作することを特定してもよい。
例50は、例44−49の何れかの主題を含んでもよく、更に、要求がハードウェア構成レジスタの値のクエリであり、ハードウェア構成レジスタの値のインジケータがハードウェア構成レジスタの値であることを特定してもよい。
例51は、例44−49の何れかの主題を含んでもよく、更に、要求が、ハードウェア構成レジスタの値が規定値に等しいことのチェックであり、ハードウェア構成レジスタの値のインジケータが、ハードウェア構成レジスタの値が規定値に等しいか否かのバイナリインジケータであることを特定してもよい。
例52は、例51の主題を含んでもよく、更に、アービタ論理が、プロセッシングデバイスの基本入出力オペレーティングシステム(BIOS)において動作しているドライバ実行環境(DXE)スクリプトであることを特定してもよい。
例53は、例44−52の何れかの主題を含んでもよく、更に、コンピューティング論理が、複数のドライバのうちの何れが、要求によって表わされるハードウェア構成レジスタにアクセス可能であるかを決定する段階と、決定されたドライバと通信して要求をサービスする段階と、を更に含んでもよい。
例54は、例44−46および49−53の何れかの主題を含んでもよく、更に、アービタ論理が、起動したときに実行する基本入出力オペレーティングシステム(BIOS)フェーズアービタであることを特定してもよい。
例55は、例44−54の何れかの主題を含んでもよく、更に、TEEがシステム管理モードであることを特定してもよい。
例56は、アービタ論理から要求の指標を受信するための手段であって、受信するための手段はメモリ内に記憶され、プロセッシングデバイスのTEE内で動作し、プロセッシングデバイスは、TEEおよびnon−TEEを有し、プロセッシングデバイスは、特定のインタラプトに応答してnon−TEEからTEEにエントリし、TEEは、メモリから実行され、メモリは、non−TEEからアクセス不可能であり、要求は、ハードウェア構成レジスタを表わしている、手段と、要求によって表わされるハードウェア構成レジスタの値のインジケータをアービタ論理にレポーティングするための手段であって、受信するための手段はメモリ内に記憶され、プロセッシングデバイスのTEE内で動作する、手段と、を備えるハードウェア構成レポーティング用の装置である。
例57は、例56の主題を含んでもよく、更に、アービタ論理からの要求の指標が、non−TEEにおいて動作している場合にプロセッシングデバイスにアクセス可能な予め定められたレジスタに記憶されている値に、少なくとも部分的に基づくことを特定してもよい。
例58は、例56−57の何れかの主題を含んでもよく、更に、アービタ論理からの要求の指標が、プロセッシングデバイスのTEEへのエントリをトリガした特定のインタラプトのソースに、少なくとも部分的に基づくことを特定してもよい。
例59は、例56−58の何れかの主題を含んでもよく、更に、アービタ論理がプロセッシングデバイスのnon−TEEにおいて動作することを特定してもよい。
例60は、例56−58の何れかの主題を含んでもよく、更に、アービタ論理がプロセッシングデバイスと異なる第2のプロセッシングデバイス上で動作することを特定してもよい。
例61は、例56−58の何れかの主題を含んでもよく、更に、アービタ論理がプロセッシングデバイスのTEEにおいて動作することを特定してもよい。
例62は、例56−61の何れかの主題を含んでもよく、更に、要求がハードウェア構成レジスタの値のクエリであり、ハードウェア構成レジスタの値のインジケータがハードウェア構成レジスタの値であることを特定してもよい。
例63は、例56−61の何れかの主題を含んでもよく、更に、要求が、ハードウェア構成レジスタの値が規定値に等しいことのチェックであり、ハードウェア構成レジスタの値のインジケータが、ハードウェア構成レジスタの値が規定値に等しいか否かのバイナリインジケータであることを特定してもよい。
例64は、例63の主題を含んでもよく、更に、アービタ論理が、プロセッシングデバイスの基本入出力オペレーティングシステム(BIOS)において動作しているドライバ実行環境(DXE)スクリプトであることを特定してもよい。
例65は、例56−64の何れかの主題を含んでもよく、更に、複数のドライバのうちの何れが、要求によって表わされるハードウェア構成レジスタにアクセス可能であるかを決定するための手段と、決定されたドライバと通信して要求をサービスするための手段と、を含んでもよく、決定するための手段および通信するための手段は、メモリ内に記憶され、プロセッシングデバイスのTEE内で動作する。
例66は、例56−58および61−65の何れかの主題を含んでもよく、更に、アービタ論理が、起動したときに実行する基本入出力オペレーティングシステム(BIOS)フェーズアービタであることを特定してもよい。
例67は、例56−66の何れかの主題を含んでもよく、更に、TEEがシステム管理モードであることを特定してもよい。
例68は、装置の1つ又は複数のプロセッシングデバイスによって実行されたことに応答して、装置に例44−55の何れかの方法を実行させる複数の命令を有する1つ又は複数の機械可読媒体である。

Claims (29)

  1. TEEという信頼できる実行環境、および、non−TEEという信頼できない実行環境を有し、特定のインタラプトに応答して前記non−TEEから前記TEEにエントリするプロセッシングデバイスであって、前記TEEは、前記non−TEEからアクセス不可能なメモリから実行される、プロセッシングデバイスと、
    前記メモリに記憶され、ハードウェア構成レジスタを表わしている要求の指標をアービタ論理から受信するように前記TEE内で動作する要求サービス論理と、
    前記メモリに記憶され、前記TEE内で動作し、前記要求によって表わされる前記ハードウェア構成レジスタの値のインジケータを前記アービタ論理にレポートするレポーティング論理であり、前記アービタ論理レポートされた前記ハードウェア構成レジスタの値のインジケータを評価して、記憶されたセキュリティ要件が満たされていないと決定される場合にアクションを実行する、レポーティング論理と、
    を備える、ハードウェア構成レポーティング用の装置。
  2. 前記アービタ論理からの前記要求の前記指標は、前記non−TEEにおいて動作している場合に前記プロセッシングデバイスにアクセス可能な予め定められたレジスタに記憶されている値に、少なくとも部分的に基づく、
    請求項1に記載の装置。
  3. 前記アービタ論理からの前記要求の前記指標は、前記プロセッシングデバイスの前記TEEへのエントリをトリガした前記特定のインタラプトのソースに、少なくとも部分的に基づく、
    請求項1または2に記載の装置。
  4. 前記アービタ論理は、前記プロセッシングデバイスの前記non−TEEにおいて動作する、
    請求項1から3の何れか一項に記載の装置。
  5. 前記アービタ論理は、前記プロセッシングデバイスと異なる第2のプロセッシングデバイス上で動作する、
    請求項1から3の何れか一項に記載の装置。
  6. 前記アービタ論理は、前記プロセッシングデバイスの前記TEEにおいて動作する、
    請求項1から3の何れか一項に記載の装置。
  7. 前記要求は前記ハードウェア構成レジスタの値のクエリであり、前記ハードウェア構成レジスタの前記値の前記インジケータは前記ハードウェア構成レジスタの前記値である、
    請求項1から6の何れか一項に記載の装置。
  8. 前記要求は、前記ハードウェア構成レジスタの値が規定値に等しいことのチェックであり、前記ハードウェア構成レジスタの前記値の前記インジケータは、前記ハードウェア構成レジスタの前記値が前記規定値に等しいか否かのバイナリインジケータである、
    請求項1から6の何れか一項に記載の装置。
  9. 前記アービタ論理は、前記プロセッシングデバイスの基本入出力オペレーティングシステム(BIOS)において動作しているドライバ実行環境(DXE)スクリプトである、
    請求項8に記載の装置。
  10. 前記要求サービス論理は更に、複数のドライバのうちの何れが、前記要求によって表わされる前記ハードウェア構成レジスタにアクセス可能であるかを決定し、決定されたドライバと通信して前記要求をサービスする、
    請求項1から9の何れか一項に記載の装置。
  11. 前記アービタ論理は、起動したときに実行する基本入出力オペレーティングシステム(BIOS)フェーズアービタである、
    請求項1から10の何れか一項に記載の装置。
  12. 前記TEEは、システム管理モードである、
    請求項1から11の何れか一項に記載の装置。
  13. コンピューティング論理が、アプリケーションからの要求の指標を、プロセッシングデバイスのTEEという信頼できる実行環境のレポーティング論理に提供する段階であって、
    前記プロセッシングデバイスが、前記TEEと、non−TEEという信頼できない実行環境とを有し、
    前記プロセッシングデバイスが、特定のインタラプトに応答して前記non−TEEから前記TEEにエントリし、
    前記TEEが、前記non−TEEからアクセス不可能なメモリから実行され、
    前記レポーティング論理が前記メモリに記憶され、
    前記要求がハードウェア構成レジスタを表わしている段階と、
    前記要求の前記指標を受信したことに応答して前記レポーティング論理によって提供された、前記要求によって表わされる前記ハードウェア構成レジスタの値のインジケータが、記憶されたセキュリティ要件を満たしていないと、前記コンピューティング論理が決定する段階と、
    前記コンピューティング論理が、前記記憶されたセキュリティ要件が満たされていないとの決定に応答して、アクションを実行する段階と
    を備える、ハードウェア構成アービトレーションの方法。
  14. 前記記憶されたセキュリティ要件が満たされていないとの決定に応答して、アクションを実行する段階が、前記記憶されたセキュリティ要件が満たされていないとの決定に応答して、前記記憶されたセキュリティ要件が満たされていないことのインジケータの表示をディスプレイデバイス上に引き起こす段階を含む、
    請求項13に記載の方法。
  15. 前記記憶されたセキュリティ要件が満たされていないとの決定に応答して、アクションを実行する段階が、前記記憶されたセキュリティ要件が満たされていないとの決定に応答して、前記ハードウェア構成レジスタと関連付けられたハードウェアにシャットダウンさせる段階を含む、
    請求項13または14に記載の方法。
  16. 前記ハードウェア構成レジスタは、チップセット再マッピングレジスタである、
    請求項13から15の何れか一項に記載の方法。
  17. 前記ハードウェア構成レジスタは、システム管理モードロックレジスタである、
    請求項13から15の何れか一項に記載の方法。
  18. 前記ハードウェア構成レジスタは、フラッシュ部分ロックレジスタである、
    請求項13から15の何れか一項に記載の方法。
  19. 前記コンピューティング論理の少なくとも一部は、前記プロセッシングデバイスの前記non−TEEにおいて動作する、
    請求項13から18の何れか一項に記載の方法。
  20. 前記コンピューティング論理の少なくとも一部は、前記プロセッシングデバイスと異なる第2のプロセッシングデバイス上で動作する、
    請求項13から18の何れか一項に記載の方法。
  21. 前記コンピューティング論理の少なくとも一部は、前記プロセッシングデバイスの前記TEEにおいて動作する、
    請求項13から18の何れか一項に記載の方法。
  22. 前記TEEは、システム管理モードである、
    請求項13から21の何れか一項に記載の方法。
  23. 装置に請求項13から22の何れか一項に記載の方法を実行させるためのプログラム。
  24. 請求項23に記載のプログラムを格納している、1つ又は複数の機械可読記録媒体。
  25. アプリケーションからの要求の指標を、プロセッシングデバイスのTEEという信頼できる実行環境のレポーティング論理に提供するための手段であって、
    前記プロセッシングデバイスが、前記TEEと、non−TEEという信頼できない実行環境とを有し、
    前記プロセッシングデバイスが、特定のインタラプトに応答して前記non−TEEから前記TEEにエントリし、
    前記TEEが、前記non−TEEからアクセス不可能なメモリから実行され、
    前記レポーティング論理が前記メモリに記憶され、
    前記要求がハードウェア構成レジスタを表わしている手段と、
    前記要求の前記指標を受信したことに応答して前記レポーティング論理によって提供された、前記要求によって表わされる前記ハードウェア構成レジスタの値のインジケータが、記憶されたセキュリティ要件を満たしていないと決定するための手段と、
    前記記憶されたセキュリティ要件が満たされていないとの決定に応答して、アクションを実行するための手段と
    を備える、ハードウェア構成アービトレーション用の装置。
  26. 前記記憶されたセキュリティ要件が満たされていないとの決定に応答して、アクションを実行するための前記手段が、前記記憶されたセキュリティ要件が満たされていないとの決定に応答して、前記記憶されたセキュリティ要件が満たされていないことのインジケータの表示をディスプレイデバイス上に引き起こすための手段を含む、
    請求項25に記載の装置。
  27. TEEという信頼できる実行環境、および、non−TEEという信頼できない実行環境を有し、特定のインタラプトに応答して前記non−TEEから前記TEEにエントリするプロセッシングデバイスであって、前記TEEは、前記non−TEEからアクセス不可能なメモリから実行される、プロセッシングデバイスと、
    前記メモリに記憶され、ハードウェア構成レジスタを表わしている要求の指標をアービタ論理から受信するように前記TEE内で動作する要求サービス論理と、
    前記メモリに記憶され、前記TEE内で動作し、前記要求によって表わされる前記ハードウェア構成レジスタの値のインジケータを前記アービタ論理にレポートするレポーティング論理と、
    を備え、前記要求は、前記ハードウェア構成レジスタの値が規定値に等しいことのチェックであり、前記ハードウェア構成レジスタの前記値の前記インジケータは、前記ハードウェア構成レジスタの前記値が前記規定値に等しいか否かのバイナリインジケータである、ハードウェア構成レポーティング用の装置。
  28. TEEという信頼できる実行環境、および、non−TEEという信頼できない実行環境を有し、特定のインタラプトに応答して前記non−TEEから前記TEEにエントリするプロセッシングデバイスであって、前記TEEは、前記non−TEEからアクセス不可能なメモリから実行される、プロセッシングデバイスと、
    前記メモリに記憶され、ハードウェア構成レジスタを表わしている要求の指標をアービタ論理から受信するように前記TEE内で動作する要求サービス論理と、
    前記メモリに記憶され、前記TEE内で動作し、前記要求によって表わされる前記ハードウェア構成レジスタの値のインジケータを前記アービタ論理にレポートするレポーティング論理と、
    を備え、前記要求サービス論理は更に、複数のドライバのうちの何れが、前記要求によって表わされる前記ハードウェア構成レジスタにアクセス可能であるかを決定し、決定されたドライバと通信して前記要求をサービスする、ハードウェア構成レポーティング用の装置。
  29. TEEという信頼できる実行環境、および、non−TEEという信頼できない実行環境を有し、特定のインタラプトに応答して前記non−TEEから前記TEEにエントリするプロセッシングデバイスであって、前記TEEは、前記non−TEEからアクセス不可能なメモリから実行される、プロセッシングデバイスと、
    前記メモリに記憶され、ハードウェア構成レジスタを表わしている要求の指標をアービタ論理から受信するように前記TEE内で動作する要求サービス論理と、
    前記メモリに記憶され、前記TEE内で動作し、前記要求によって表わされる前記ハードウェア構成レジスタの値のインジケータを前記アービタ論理にレポートするレポーティング論理と、
    を備え、前記アービタ論理は、起動したときに実行する基本入出力オペレーティングシステム(BIOS)フェーズアービタである、ハードウェア構成レポーティング用の装置。
JP2016567254A 2014-06-25 2014-06-25 ハードウェア構成レポーティング用の装置、ハードウェア構成アービトレーションの方法、プログラム、機械可読記録媒体、及び、ハードウェア構成アービトレーション用の装置 Active JP6481900B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2014/080689 WO2015196381A1 (en) 2014-06-25 2014-06-25 Hardware configuration reporting systems

Publications (2)

Publication Number Publication Date
JP2017519281A JP2017519281A (ja) 2017-07-13
JP6481900B2 true JP6481900B2 (ja) 2019-03-13

Family

ID=54936452

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016567254A Active JP6481900B2 (ja) 2014-06-25 2014-06-25 ハードウェア構成レポーティング用の装置、ハードウェア構成アービトレーションの方法、プログラム、機械可読記録媒体、及び、ハードウェア構成アービトレーション用の装置

Country Status (6)

Country Link
US (1) US9870475B2 (ja)
EP (1) EP3161710B1 (ja)
JP (1) JP6481900B2 (ja)
KR (1) KR101881788B1 (ja)
CN (1) CN106415575B (ja)
WO (1) WO2015196381A1 (ja)

Families Citing this family (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10657262B1 (en) * 2014-09-28 2020-05-19 Red Balloon Security, Inc. Method and apparatus for securing embedded device firmware
US9509587B1 (en) * 2015-03-19 2016-11-29 Sprint Communications Company L.P. Hardware root of trust (HROT) for internet protocol (IP) communications
SG10201602449PA (en) 2016-03-29 2017-10-30 Huawei Int Pte Ltd System and method for verifying integrity of an electronic device
US10237198B2 (en) 2016-12-06 2019-03-19 Hewlett Packard Enterprise Development Lp Shared-credit arbitration circuit
US10452573B2 (en) * 2016-12-06 2019-10-22 Hewlett Packard Enterprise Development Lp Scripted arbitration circuit
US10721185B2 (en) 2016-12-06 2020-07-21 Hewlett Packard Enterprise Development Lp Age-based arbitration circuit
US10944694B2 (en) 2016-12-06 2021-03-09 Hewlett Packard Enterprise Development Lp Predictive arbitration circuit
US10402273B2 (en) 2016-12-14 2019-09-03 Microsoft Technology Licensing, Llc IoT device update failure recovery
US10416991B2 (en) * 2016-12-14 2019-09-17 Microsoft Technology Licensing, Llc Secure IoT device update
US10715526B2 (en) 2016-12-14 2020-07-14 Microsoft Technology Licensing, Llc Multiple cores with hierarchy of trust
US20190004818A1 (en) * 2017-06-29 2019-01-03 American Megatrends Inc. Method of UEFI Shell for Supporting Power Saving Mode and Computer System thereof
US11294898B2 (en) 2017-07-31 2022-04-05 Pearson Education, Inc. System and method of automated assessment generation
US10693811B2 (en) 2018-09-28 2020-06-23 Hewlett Packard Enterprise Development Lp Age class based arbitration
US11200187B2 (en) 2019-03-27 2021-12-14 Dell Products L.P. Configuring programmatic interfaces of bus bridges in computer systems
CN111967010B (zh) * 2019-05-20 2024-05-24 阿里巴巴集团控股有限公司 一种可信服务方法、装置、设备及存储介质
US11829477B2 (en) 2020-03-24 2023-11-28 Sony Corporation Concept for controlling access to a data memory
US20210110070A1 (en) * 2020-12-22 2021-04-15 Anjo Lucas Vahldiek-Oberwagner Reducing latency of hardware trusted execution environments

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4601557B2 (ja) * 2005-02-07 2010-12-22 株式会社ソニー・コンピュータエンタテインメント マルチプロセッサシステムにおいてプロセッサのセキュアな連携を行う方法および装置
US20090204823A1 (en) * 2008-02-07 2009-08-13 Analog Devices, Inc. Method and apparatus for controlling system access during protected modes of operation
JP4653230B2 (ja) * 2008-09-22 2011-03-16 株式会社エヌ・ティ・ティ・ドコモ Api検査装置及び状態監視装置
US8627464B2 (en) * 2010-11-02 2014-01-07 Microsoft Corporation Globally valid measured operating system launch with hibernation support
KR101874081B1 (ko) * 2012-06-07 2018-07-03 에스케이테크엑스 주식회사 개선된 보안 기능 기반의 클라우드 서비스 시스템 및 이를 지원하는 방법
US8955039B2 (en) * 2012-09-12 2015-02-10 Intel Corporation Mobile platform with sensor data security
US9292712B2 (en) 2012-09-28 2016-03-22 St-Ericsson Sa Method and apparatus for maintaining secure time
US9129071B2 (en) * 2012-10-24 2015-09-08 Texas Instruments Incorporated Coherence controller slot architecture allowing zero latency write commit
KR20140114263A (ko) * 2013-03-13 2014-09-26 삼성전자주식회사 어플리케이션 인증 방법 및 이를 구현하는 전자 장치
US9280655B2 (en) * 2013-03-13 2016-03-08 Samsung Electronics Co., Ltd Application authentication method and electronic device supporting the same
JP6067449B2 (ja) * 2013-03-26 2017-01-25 株式会社東芝 情報処理装置、情報処理プログラム

Also Published As

Publication number Publication date
CN106415575B (zh) 2020-03-20
KR101881788B1 (ko) 2018-07-25
US20160292423A1 (en) 2016-10-06
EP3161710B1 (en) 2019-12-04
US9870475B2 (en) 2018-01-16
CN106415575A (zh) 2017-02-15
WO2015196381A1 (en) 2015-12-30
EP3161710A1 (en) 2017-05-03
KR20160146967A (ko) 2016-12-21
JP2017519281A (ja) 2017-07-13
EP3161710A4 (en) 2017-11-29

Similar Documents

Publication Publication Date Title
JP6481900B2 (ja) ハードウェア構成レポーティング用の装置、ハードウェア構成アービトレーションの方法、プログラム、機械可読記録媒体、及び、ハードウェア構成アービトレーション用の装置
US8099574B2 (en) Providing protected access to critical memory regions
JP6063941B2 (ja) システム管理要求のための仮想高特権モード
CN113806745B (zh) 验证检查的方法、计算系统及机器可读存储介质
US10430589B2 (en) Dynamic firmware module loader in a trusted execution environment container
US9977682B2 (en) System management mode disabling and verification techniques
JP2008518367A (ja) 仮想マシン環境におけるタイマ・オフセット機構
CN109074321B (zh) 用于保护虚拟计算实例的存储器的方法和系统
WO2015174512A1 (ja) 情報処理装置、情報処理監視方法、プログラム、及び記録媒体
US20250111041A1 (en) Monitoring operating system invariant information
EP2433238B1 (en) Systems and methods of determining a trust level from system management mode
JP4249779B2 (ja) デバイス制御装置
US9727390B1 (en) Invoking a firmware function
US12443694B2 (en) Process credential protection
US7143281B2 (en) Method and apparatus for automatically changing kernel tuning parameters
US8745364B2 (en) Method and apparatus for enabling non-volatile content filtering
US20200142738A1 (en) Systems And Methods For Control Flow Integrity In System Management Mode (SMM)
US11995452B2 (en) Firmware memory map namespace for concurrent containers
US20260003970A1 (en) Firmware Level Intelligent Interrupts For Vulnerability Free User Presence Detection Experience
CN119377939A (zh) 根据基于文件属性的选择标准来度量文件
CN120604230A (zh) 用于处理至少一个容器实例对至少一个公共资源的至少一次未授权访问的方法和系统
CN121009548A (zh) 基于热添加内核监控设备的内核监控
JP2002091826A (ja) 情報処理装置
Clark Adoption of the Least Privilege Separation Kernel (LPSK) for the Atom Platform
Clark Adoption of the Least Privilege Separation Kernel (LPSK) for the Atom Platform, Research Report

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20170106

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20170106

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20171208

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20180116

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20180412

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20180821

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20181003

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20190131

R150 Certificate of patent or registration of utility model

Ref document number: 6481900

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250