説明

セキュアな実行中のリソースのデッドロックなしのバス保護のシステム及び方法

セキュアな実行中のメモリ・リソース及びI/Oリソースのデッドロックのないバス保護の方法及びシステム。バス・サイクルによって、セキュア実行モードへバス・エージェントが入ることが起動される。チップセットは、セキュア・モード・プロセッサの識別子を記録する。その後、チップセットは、セキュア・モード・プロセッサがセキュア・モードを出る前に別のバス・エージェントが、セキュリティ面で配慮を要するバス・サイクルを試行する場合、仲裁する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明の実施例は、セキュアな実行環境に関する。特に、本発明の実施例は、セキュアな実行モードにおいて実行する少なくとも1つのプロセッサを有するマルチプロセッサ・システムにおけるデッドロック状態を回避することに関する。
【背景技術】
【0002】
複数のプロセッサ・システムは、今日の情報主導型社会において広く普及している。特定の場合、システム内の1つのプロセッサが、セキュリティ面での配慮を要する情報を、そのシステム内の他のプロセッサによるその情報へのアクセスを制限する一方で処理することが可能であることが望ましい。その目的で、セキュアなデータをアクセスする可能性がある者を認証し、そのデータを共有メモリや他の共有リソースにおいて露呈させる一方で他のエージェントによってアクセスされないようにするための種々のセキュアな環境が確立されている。特定の場合、共有バス上のアービトレータは、セキュアなモードにおいて実行していないプロセッサの何れにバスを付与することも妨げられる。
【発明の開示】
【発明が解決しようとする課題】
【0003】
残念ながら、特定の大局的な動作(クロック停止動作など)によって、クロック停止動作の実行に対する用意があることを示す旨の肯定応答がプロセッサ全てから必要になる。アービトレータが、セキュアなモード内のプロセッサ以外のバス・エージェント全てにバスを付与しない状態を維持している場合、残りのバス・エージェントはクロック停止要求に肯定応答することができず、よって、クロック停止動作は一切行われない。このことによって、電力面でかなり非効率になり、かつ/又は、デッドロック状態がもたらされる。
【課題を解決するための手段】
【0004】
本発明は、添付図面の図において、限定ではなく例として示す。同じ参照符号は同じ構成要素を示す。
【発明を実施するための最良の形態】
【0005】
本明細書中の「an embodiment」又は「one embodiment」への言及は必ずしも同じ実施例に対してではなく、前述の言及は少なくとも1つを意味する。
【実施例】
【0006】
図1は、本発明の一実施例のシステムの構成図である。第1のバス・エージェント(プロセッサ100など)がバス112に結合される。バス112は、1つ又は複数の更なるバス・エージェント(プロセッサ160など)と共有される。バス・エージェントの数は、任意的に大きく、バス112の物理的制限及び電気的制限によって制限され得る。アービトレーション装置114は、種々のバス・エージェント間(プロセッサ100とプロセッサ160との間など)のバス112へのアクセスのアービトレーションを行う。特定の実施例では、別個の物理バスが、存在し得るが、単一のバスとして論理的にアービトレーションが行われる。チップセット120はバス112上に存在している。チップセット120は、バス・エージェント共有バス112とシステム・メモリ140と入出力(I/O)デバイス150との間のインタフェースを供給する。一実施例では、各プロセッサは、システム・メモリ140や入出力デバイスなどのシステム・リソースへアクセスするためにチップセット120に対して専用のバス及びインタフェースを有し得る。
【0007】
各プロセッサ100、160はそれぞれ、キャッシュ102及びキャッシュ162を含む。マルチプロセッサ・システムにおけるキャッシュのコヒーレンシは、伝統的にキャッシュ・コヒーレンシがマルチプロセッサ・システムにおいて維持されるライトバック、ライトスルーや何れかの他のやり方をはじめとする何れかの通常のやり方で行うことができる。プロセッサ100は、適切なバス・サイクルを発行することによって、セキュアな実行モードをプロセッサが出入りすることを可能にするためのマイクロコード110を含む。認証エンジン108は、プロセッサ100が、外部ソースから受け取られるコードを認証して、コードが信頼されなければならないことを確実にするよう備えられる。一実施例では、認証エンジン108は、コードをハッシングし、このハッシュ値を、公開鍵/秘密鍵対のうちの公開鍵を用いて復号されたディジタル署名ハッシュ値と比較することによって、コード・モジュールに対する認証を行うことができる。別の実施例では、認証はマイクロコード110によって行うことができる。コードが首尾良く認証されると、プロセッサ100は、セキュアなモードへ入る旨のバス・サイクルをブロードキャストし得る。一旦セキュアなモードに入ると、プロセッサ100は、セキュアなモードをリリースする旨のバス・サイクルを発行するまでセキュアなモード内で動作することができる。
【0008】
一実施例では、マイクロコード110は、バス112とのリエゾンとしてバス・コントローラ104を用いて、セキュア実行モードに入る旨のバス・サイクルを生成する。セキュア実行モードでは、プロセッサ100は、内部のランダム・アクセス・メモリ(RAM)106からの認証コードを実行する。RAM106が内部データであり、そこにおいて続けられるコードは通常、外部エージェントによるアクセスが可能でない。しかし、そのコードは、システム・メモリ140からの、セキュリティ面での配慮を要するデータを用いるか、又は、他のバス・エージェントがアクセスを付与されてはならないデータに関係する、セキュリティ面での配慮を要するI/O動作を行うことができる。よって、プロセッサ100は、セキュアなモードにおいて動作しているが、セキュリティ面での配慮を要するバス・サイクルをプロセッサ160がバス112上で実行することが可能でないことが重要である。しかし、前述の通り、アービトレータ114においてアービトレーションを行う権利を拒否することによってプロセッサ160がバスをアクセスすることを制限することは、デッドロック状態につながり得る。
【0009】
よって、セキュアなモードに入る旨の要求を構成する信号をバス・コントローラ104が出すと、チップセット120内のバス・コントローラ124はそのサイクルを受信し、識別ロジック126は、プロセッサ100の識別子を抽出し、この識別子はプロセッサ100を、システム内の他のバス・エージェントに対して一意に識別する。識別子は、後続バス・サイクルとの比較に用いるために記憶装置128に記録される。別の実施例では、プロセッサは全て、セキュアなモードに入るプロセッサに対する事前要求としてキャッシュ無効化ハンドシェークを行う。プロセッサ100及び160それぞれに存在しているキャッシュ無効化ロジック130、131は、キャッシュ無効化を行う。このことによって、セキュアな実行モード中のライトバックの必要がなくなる。別の実施例では、キャッシュ無効化は行われないが、スヌープ・サイクルに応じた、セキュアでないバス・エージェントからのバス書き込みは、「セキュリティ面での配慮を要する」サイクルとみなされない。
【0010】
プロセッサ100がセキュア実行モードにおいて動作している間、チップセット120は、セキュリティ面での配慮を要するサイクルを求めてバス112を監視する。セキュリティ面での配慮を要するサイクルが識別された場合、チップセットは、ロジック122を用いて、発信元バス・エージェントの識別子を、記憶装置128に記録された識別子と比較する。前述の識別子が一致する場合(例えば、セキュリティ面での配慮を要するバス・サイクルの発信元が、セキュアなモードで動作しているバス・エージェントの場合)、トランザクションの完了が可能になる。しかし、前述の識別子が一致しない場合(例えば、プロセッサ100が、セキュアな実行モードにおいて実行している間に、プロセッサ160がシステム・メモリ140との間で読み書きを行おうとする場合)、チップセット120は、仲裁し、そのトランザクションが完了するのを妨げようとするか、又は、セキュアでないバス・エージェントによる更なるトランザクションを妨げる。仲裁を容易にするために、チップセット120は、リセット/割り込みロジック132を含み得る。一実施例では、チップセット120は、セキュアでないバス・エージェントによって発行されたセキュリティ・バス・サイクルに応じてシステム・リセットをアサートすることによって仲裁する。別の実施例では、チップセット120は、バス・エージェント(例えば、セキュアなモードにおいて実行しているプロセッサ100)に対して高優先度割り込みをアサートする。各プロセッサが専用バスを有するが、特定のシステム・リソースを共有する実施例では、共有リソース(システム・メモリ140やI/Oデバイス150など)のアクセスのみが、セキュリティ面での配慮を要するとみなし得る。違ったふうに述べれば、プロセッサは、別のバス・エージェントが、セキュアなモードにある場合でも、チップセットによる介入なしでその専用リソースを自由に用いることができる。
【0011】
特定の場合、チップセット120は、大局的な動作を行おうとし得る。例えば、電力管理の意味合いでは、チップセットには、クロック停止動作のアサートのタスクが課される場合が多い。しかし、その大局的な動作が行われ得る前に、バス上のエージェント(例えば、プロセッサ100やプロセッサ160)それぞれは、特定の状態(例えば、そのクロックを停止させることが可能である状態)にあることを肯定応答しなければならない。クロック停止肯定応答は、セキュリティ面で配慮を要するトランザクションとみなされないので、一エージェントがセキュア実行モードにおいて動作している際にも、バス上のエージェント全てから完了させることが可能である。このようにして、電力管理や他の事務的作業は、セキュア実行モードのセキュリティを脅かすことなく効果的に実現することができる。
【0012】
特定の実施例では、他のバス・エージェント(直接メモリ・アクセス(DMA)コントローラ、ネットワーク・カードや他のI/Oバス・マスタなど)は、セキュリティ面で配慮を要するトランザクションを試行し得る。一実施例では、前述のデバイスによるセキュリティ違反を防止することは、前述のデバイスを制御しているプロセッサに任せられる。別の実施例では、チップセットは、前述のバス・エージェントをプロセッサ・バス・エージェントと同様に扱う(例えば、別のエージェントが、セキュアなモードにある一方で、前述のエージェントが、セキュリティ面で配慮を要するサイクルをアサートする場合、介入する)。
【0013】
図2は、本発明の一実施例のチップセット内の動作の流れ図である。判定ブロック202では、バス・サイクルが、セキュアなモードに入る旨の要求を構成しているかについての判定を行う。否定の場合、チップセットは、セキュアなモードに対する要求であるバス・サイクルが受信されるまで、通常の過程において完了することを可能にして、更なるバス・サイクルを求めて監視する。セキュアなモードに対する要求であるバス・サイクルが受信されると、チップセットは、ブロック204で、要求バス・エージェントの識別子を記録する。
【0014】
ブロック210は、大局的な動作をチップセットが起動させることができることを反映するために極めて細い線で描いているが、流れ図を通じた各繰り返しにおいてそうしなくてよい。前述の大局的な動作は、例えば、クロック停止状態のアサート、又は応答を必要とするコントローラ割り込みメッセージ・サイクルを含む。
【0015】
ブロック212では、チップセットはバス・サイクルを受け取る。判定ブロック214では、チップセットは、サイクルがセキュリティ面で配慮を要するとみなされることを判定する。例えば、一実施例では、システム・メモリ又はI/Oデバイスとの間の読み取りサイクル及び書き込みサイクルは全て、セキュリティ面で配慮を要するとみなされる。更に、種々の制御サイクルが、セキュリティ面で配慮を要するとみなされ得る。逆に、例えば、割り込み肯定応答や、大局的な動作の肯定応答はセキュリティ面で配慮を要しないとみなされる。例えば、(別のプロセッサが、セキュアなモードにおいて既に実行している場合に)セキュアなモードに入る旨の第2の要求は、攻撃として扱うことができる。サイクルが、セキュリティ面で配慮を要しない場合、未処理の大局的な動作にサイクルが肯定応答するかを判定する。否定の場合、サイクルは、ブロック218で完了することが可能になる。肯定の場合、全てのエージェントから肯定応答が受け取られたかを判定ブロック220で判定する。エージェント全てに肯定応答された場合、チップセットはブロック222で、大局的な動作を完了させる。
【0016】
判定ブロック214で、サイクルがセキュリティ面で配慮を要することが判定された場合、サイクルがセキュア・エージェントからかが224で判定される。サイクルがセキュア・エージェントからの場合、ブロック226で、バス・サイクルが、セキュア・モードのリリースかの判定が行われる。否定の場合、バス・サイクルは、ブロック218でこれを完了させることが可能になる。肯定の場合、セキュア・モードに現在いる、システム内のエージェントはその場合、何らない。判定ブロック224で、サイクルが、セキュア・モードにおけるエージェントからでないことが判定された場合、チップセットは228で、バス・アクセスにおいて仲裁する。種々の実施例では、この仲裁は、セキュアなモードで動作しているバス・エージェントへの高優先度割り込みのアサートの形態を呈し得るか、又は、システム全体をリセットするためのシステム・リセットのアサートの形態を呈し得る。
【0017】
図3は、本発明の一実施例における、プロセッサ内の動作の流れ図である。ブロック302では、プロセッサはコード・ブロックを認証する。ブロック304では、プロセッサは、セキュア・モードに入ることを要求するバス・サイクルをブロードキャストする。判定ブロック306は、キャッシュ・コヒーレンシのためのライトバックがセキュア実行モード中に可能であるか否かが判定される設計期間中に行われる暗黙的な判定が行われる。別の実施例では、認証コードは、判定ブロック306において判定を行うための基礎を備え得る。例えば、認証コードは、ライトバックが可能であるか否かを示すようプロセッサ内のレジスタを設定することができる。ライトバックが可能でない場合、キャッシュ・バス・エージェントは全て、ブロック307においてキャッシュを無効化して、セキュアな実行中のキャッシュ・コヒーレンシを確実にする。キャッシュ無効化は、セキュアなモードに入るための事前要求としてキャッシュ内の最も直近の情報をシステム・メモリにもう一度書き込むことを事実上必要とする種々のハンドシェーク手法を用いて行うことができる。ブロック308では、プロセッサは、内部ランダム・アクセス・メモリ(RAM)からの認証コードを実行する。プロセッサは、不定の期間、セキュア・モードに留まり得る。一実施例では、セキュアなプロセッサが、セキュアな実行モードを出る旨のリリース・サイクルをバス上に出すまで、チップセットはそのセキュアな警戒を維持する。プロセッサは、そのセキュアな実行を終えると、ブロック310で、セキュア・モードを出る旨のリリース・サイクルを発行する。
【0018】
上記明細書では、その特定の例示的な実施例を参照して本発明を説明している。しかし、種々の修正及び変更をそれに対して、特許請求の範囲に記載した本発明の更に広い趣旨及び範囲から逸脱することなく行うことが可能である。本明細書及び添付図面はよって、限定的な意味合いでなく例証的な意味合いで解するものとする。
【図面の簡単な説明】
【0019】
【図1】本発明の一実施例のシステムの構成図である。
【図2】本発明の一実施例のチップセット内の動作の流れ図である。
【図3】本発明の一実施例における、プロセッサ内の動作の流れ図である。

【特許請求の範囲】
【請求項1】
方法であって、
セキュア実行モードに入る旨の要求として第1のバス・エージェントからのバス・サイクルを識別する工程と、
前記第1のバス・エージェントの識別子を記録する工程と、
別のバス・エージェントが、セキュリティ面で配慮を要するバス・サイクルを起動させる場合に仲裁する工程とを備える方法。
【請求項2】
請求項1記載の方法であって、仲裁する工程は、
前記第1のバス・エージェントに高優先度割り込みを送出する工程及び
システム・リセットを起動させる工程のうちの一方を備える方法。
【請求項3】
請求項1記載の方法であって、仲裁する工程は、
前記セキュリティ面で配慮を要するバス・サイクルの完了を妨げる工程を備える方法。
【請求項4】
請求項1記載の方法であって、仲裁する工程は、
他のバス・エージェントによって起動された後続トランザクションを妨げる工程を備える方法。
【請求項5】
請求項1記載の方法であって、
何れかのバス・エージェントからの、セキュリティ面で配慮を要しないバス・サイクルを可能にする工程を更に備える方法。
【請求項6】
請求項1記載の方法であって、
バスに対する大局的な動作を起動させる工程と、
前記第1のバス・エージェントがセキュア・モードにある間に各バス・エージェントから前記バスを介して前記大局的な動作の肯定応答を受け付ける工程と、
前記大局的な動作を完了させる工程とを更に備える方法。
【請求項7】
請求項1記載の方法であって、ライトバック・サイクル以外のシステム・メモリ及び入出力デバイスに向けられた読み取りサイクル及び書き込みサイクルは全て、セキュリティ面で配慮を要するサイクルであるとみなされる方法。
【請求項8】
請求項1記載の方法であって、
前記セキュア実行モードのリリースを示すバス・サイクルを前記第1のバス・エージェントから受信する工程と、
前記リリースに応じて仲裁を中断する工程とを備える方法。
【請求項9】
システムであって、
バスと、
前記バスに結合された第1のバス・エージェントであって、セキュア実行モードに入ることを可能にするためのロジックを有する第1のバス・エ―ジェントと、
前記バスに結合された第2のバス・エージェントと、
前記バスに結合され、第1のプロセッサからのバス・サイクルを識別して、前記セキュア実行モードを起動させるためのチップセットであって、前記第1のプロセッサの識別子を記録するためであり、前記第1のプロセッサが前記セキュア実行モードを出るまで第2のプロセッサからの、セキュリティ面で配慮を要するバス・サイクルを制限するためのチップセットとを備えるシステム。
【請求項10】
請求項9記載のシステムであって、前記第1のプロセッサは、
内部ランダム・アクセス・メモリと、
認証エンジンと、
第2のバス・サイクルに入って前記セキュア実行モードを出る旨の第1のバス・サイクルを生成するためのマイクロコードと、
前記第1のバス・サイクル及び前記第2のバス・サイクルを起動させるためのバス・コントローラとを備えるシステム。
【請求項11】
請求項9記載のシステムであって、前記チップセットは、
前記第1のプロセッサ及び前記第2のプロセッサからのバス・サイクルを受け付けるためのバス・コントローラと、
前記セキュア実行モードへ入ることを要求するサイクルを識別するためのロジックと、
前記サイクルのソースの識別子を保持するための記憶エレメントと、
前記識別子を、セキュリティ面で配慮を要する後続サイクルのソースの識別子と比較するためのロジックとを備えるシステム。
【請求項12】
請求項9記載のシステムであって、前記第1のバス・エージェント及び前記第2のバス・エージェントはそれぞれ、前記セキュア実行モードに入ろうとすることに応じて局所キャッシュを無効にするためのキャッシュ無効化ロジックを含むシステム。
【請求項13】
請求項9記載のシステムであって、前記第2のバス・エージェントが、
直接メモリ・アクセス・コントローラ、ネットワーク・プロセッサ、汎用プロセッサ、及び入出力バス・マスタのうちの1つであるシステム。
【請求項14】
装置であって、
セキュア実行モードに入ることを要求するバス・サイクルを識別するためのバス・コントローラと、
前記バス・サイクルのソースの識別子を記録するための記憶装置と、
セキュリティ面で配慮を要するバス・サイクルが前記ソースからであるかを識別するための比較ロジックとを備える装置。
【請求項15】
請求項14記載の装置であって、
前記比較ロジックが、前記セキュリティ面で配慮を要するバス・サイクルが前記ソースから発信されたものでないことを識別することに応じてシステム・リセットを強いるためのリセット・ロジックを更に備える装置。
【請求項16】
請求項14記載の装置であって、
前記セキュリティ面で配慮を要するバス・サイクルが別のソースから発信された場合に、前記セキュリティ面で配慮を要するバス・サイクルに応じて前記バス・サイクルの前記ソースに向けられた高優先度割り込みを生成するための割り込み生成器を更に備える装置。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate


【公表番号】特表2008−512787(P2008−512787A)
【公表日】平成20年4月24日(2008.4.24)
【国際特許分類】
【出願番号】特願2007−531318(P2007−531318)
【出願日】平成17年9月2日(2005.9.2)
【国際出願番号】PCT/US2005/031940
【国際公開番号】WO2006/033837
【国際公開日】平成18年3月30日(2006.3.30)
【出願人】(593096712)インテル コーポレイション (931)
【Fターム(参考)】