JP5081056B2 - Information leakage reduction between cache sharing processes - Google Patents
Information leakage reduction between cache sharing processes Download PDFInfo
- Publication number
- JP5081056B2 JP5081056B2 JP2008119461A JP2008119461A JP5081056B2 JP 5081056 B2 JP5081056 B2 JP 5081056B2 JP 2008119461 A JP2008119461 A JP 2008119461A JP 2008119461 A JP2008119461 A JP 2008119461A JP 5081056 B2 JP5081056 B2 JP 5081056B2
- Authority
- JP
- Japan
- Prior art keywords
- section
- processing
- cache
- confidential
- data
- 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 OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/70—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
- G06F21/78—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data
- G06F21/79—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data in semiconductor storage media, e.g. directly-addressable memories
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0891—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches using clearing, invalidating or resetting means
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/14—Protection against unauthorised use of memory or access to memory
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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/55—Detecting local intrusion or implementing counter-measures
- G06F21/556—Detecting local intrusion or implementing counter-measures involving covert channels, i.e. data leakage between processes
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Computer Hardware Design (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Storage Device Security (AREA)
Description
本発明は、データ処理システムの分野に関する。特に、本発明は、1つのキャッシュを共用する処理の間の情報漏洩を削減する分野に関する。 The present invention relates to the field of data processing systems. In particular, the present invention relates to the field of reducing information leakage during processing that shares one cache.
あるデータ処理装置上で実行中の1つのアプリケーションに関連するデータ値が、他のアプリケーションに対してアクセス可能であるべきでない機密データ値である場合が、多く起りえる。そうした状況において、そうした機密データが安全に保持されて、たとえばこの機密データへのアクセスを追及する目的でデータ処理装置へロードされるハッキング・アプリケーションなど、そのデータ処理装置へロードされているかもしれない他のアプリケーションによりアクセスできないようにすることが明らかに重要である。1つのキャッシュを複数のアプリケーションで共用する場合に、これは特別な問題になり得る。 There are many cases where the data values associated with one application running on a data processing device are sensitive data values that should not be accessible to other applications. In such situations, such sensitive data may be kept secure and loaded into the data processing device, for example, a hacking application that is loaded into the data processing device for the purpose of pursuing access to this sensitive data. Clearly it is important to make it inaccessible by other applications. This can be a particular problem when a cache is shared by multiple applications.
データ処理装置が複数の別々のドメインを備え、これらのドメインがハードウエア・レベルでセキュリティを取り扱うメカニズムを提供するシステムを提供することが知られている。そうしたシステムは、たとえば同一譲受人の同時係属米国特許出願No.10/714,561に記述され、この出願はセキュア・ドメインとノン・セキュア・ドメインを有するシステムを記述している。そのシステムにおいては、ノン・セキュア・ドメインとセキュア・ドメインは実際別々な世界を確立し、セキュア・ドメインはハードウエアで強制された境界により他の実行空間から分離された高信頼性実行空間を提供し、また同様にノン・セキュア・ドメインは信頼されていない実行空間を提供する。 It is known to provide a system in which a data processing device comprises a plurality of separate domains, and these domains provide a mechanism for handling security at the hardware level. Such a system is described, for example, in co-pending US Patent Application No. 10 / 714,561 of the same assignee, which describes a system having a secure domain and a non-secure domain. In that system, non-secure domains and secure domains actually establish separate worlds, and secure domains provide a reliable execution space separated from other execution spaces by hardware-enforced boundaries. And similarly, a non-secure domain provides an untrusted execution space.
共用キャッシュを使用するマルチ処理システム上のソフトウエア暗号システムは、1つのキャッシュを両方の処理が共用するために、それら処理の間で情報の漏洩が起る可能性があるので、一般に安全でないと見られている。キャッシュはデータを記憶する場所をそれ自体決定することにおいて、プログラマに対してある程度トランスペアレントである。上述したような既知の安全システムは、キャッシュへデータを記憶するノン・セキュア処理がセキュア処理によりキャッシュへ記憶されたデータへアクセスするのを、防止できる。しかしながら、1つの処理のデータ・アクセス・パターンに関する情報が他の処理により引き出されるかも知れず、そしてこの情報はたとえば暗号システムの安全性を相殺できるのに充分であるかも知れない。 A software cryptographic system on a multi-processing system that uses a shared cache is generally not secure because both processes are shared by one process and information leakage may occur between the processes. It has been seen. The cache is somewhat transparent to the programmer in determining itself where to store the data. The known safety system as described above can prevent the non-secure process for storing data in the cache from accessing the data stored in the cache by the secure process. However, information about the data access pattern of one process may be derived by other processes, and this information may be sufficient to offset the security of the cryptographic system, for example.
図1は、システムのセキュア部分で実行する暗号処理および、システムのノン・セキュア部分で実行する信頼されていない部分を図式的に示す。処理時間について各々競合するたびに、処理の間で切り替えが起る。信頼されていない処理は、暗号処理によりキャッシュ60へ記憶されたデータへアクセスできない。しかしながら、キャッシュ60を飽和させることにより、それは暗号処理のアクセス・パターンを引き出すことができ、それから暗号処理の一部分の実行に従ってキャッシュ60へアクセスして、それがキャッシュ60を飽和させたデータを読み取ることができる。このデータへのアクセス時間により、この信頼されていないまたはこの場合ハッキングの処理が暗号化処理であってもなくても、そのデータの一部を上書きしたかどうかを知ることができ、こうして暗号処理によりアクセスされた1組のキャッシュ・ラインをハッキング処理により識別することができる。暗号化処理がデータ・ルックアップ・テーブルを使用するものである場合は、これは暗号を破るのに充分な能力がある。これは、BonneauとMironovによる「AESに対するキャッシュ・コリージョン・タイミング攻撃」、http://www.stanford.edu/~jbonneau/AES_timing.ppt、およびOsvik、ShamirおよびTromerによる「キャッシュ攻撃と対策:AESの場合」、http://www.wisdom.weizmann.ac.il/tromer/に詳述されている。
FIG. 1 schematically illustrates cryptographic processing performed in the secure part of the system and untrusted part performed in the non-secure part of the system. Each time there is a conflict in processing time, a switch occurs between the processes. Untrusted processes cannot access data stored in the
この問題に対しては可能な多くの解決法があり、そのいくつかはこれらの書類に記述されている。たとえば、安全な高信頼性を実行するためのセキュア・ドメインと信頼されていない処理を実行するためのノン・セキュア・ドメインを有するシステムにおいて、これらドメインの間の切り替えに際してキャッシュを一気に消去することができる。これは、明らかに性能と電力において不経済である。 There are many possible solutions to this problem, some of which are described in these documents. For example, in a system having a secure domain for performing secure high reliability and a non-secure domain for performing untrusted processing, the cache can be erased at once when switching between these domains. it can. This is clearly uneconomical in performance and power.
代わりにキャッシュを分割して、キャッシュの一部分を性能に影響のある特定領域へ静的に割り当てることができる。代わりに、キャッシュを使用すべきでない場合には、キャッシュを全く使用せずに、その代わり緊密に結合されたメモリをルックアップ・テーブルとして使用できる。これの欠点は、これらのメモリは典型的に大きくないことである。テーブルが、緊密に結合されたメモリ内に永久的に記憶されている場合は、これは限られたメモリ空間の多くを使用するが、しかし必要なときにそれらがコピーされるならば、性能および電力において不経済なものになる。 Instead, the cache can be split and a portion of the cache can be statically assigned to specific areas that affect performance. Alternatively, if a cache is not to be used, then no cache is used and instead a tightly coupled memory can be used as a lookup table. The disadvantage of this is that these memories are typically not large. If the tables are permanently stored in tightly coupled memory, this uses much of the limited memory space, but if they are copied when needed, performance and It becomes uneconomical in electricity.
もう1つの代替手段は、動作中にルックアップ・テーブルを計算することであるが、これはのろくて、かなりの電力コストを引き起こす。 Another alternative is to calculate a look-up table during operation, which is slow and causes significant power costs.
大きすぎる電力または性能のオーバーヘッドを引き起こすことなしに、機密処理のセクションのキャッシュ・アクセス動作に関する情報が信頼されていない処理へ漏洩するのを防止することが望ましい。 It would be desirable to prevent leakage of information regarding cache access operations in the sensitive processing section into untrusted processing without causing too much power or performance overhead.
本発明の第1の面は、機密処理のセクションのキャッシュ・アクセス動作に関する情報が信頼されていない処理に漏洩するのを防止する方法を提供し、前記機密処理および前記信頼されていない処理はデータ処理装置内のプロセッサにより遂行され、前記データ処理装置は更に、前記機密処理と前記信頼されていない処理を遂行しながら前記プロセッサにより要求される情報を記憶するように動作可能な少なくとも1つのキャッシュを含み、前記方法は:前記プロセッサにより前記機密処理のセクションの処理を開始するのに先立って、前記少なくとも1つのキャッシュ内の前記機密処理の前記セクションにより要求され得る前記機密処理ローディング情報により、さもなければ追い出されるであろう前記少なくとも1つのキャッシュのロケーションに記憶された情報を追い出すステップを含む。 A first aspect of the present invention provides a method for preventing information related to cache access operations in a section of confidential processing from leaking to untrusted processing, wherein the confidential processing and untrusted processing are data Performed by a processor in the processing device, the data processing device further comprising at least one cache operable to store information required by the processor while performing the confidential processing and the untrusted processing. The method comprises: prior to initiating processing of the confidential processing section by the processor, by means of the confidential processing loading information that may be requested by the section of the confidential processing in the at least one cache. if it will be driven away location of the at least one cache Comprising the step of expelling the stored information to the Deployment.
1つのプロセッサ上で実行されてキャッシュを共用する異なった処理ができるようにすることには多くの利点がある。いくつかの処理が機密処理であって、その他が信頼されていない処理である場合は、機密処理を操作中のデータに信頼されていない処理がアクセスするのを防止するように、機構が工夫されてきた。しかしながら、この方法によりデータを保護することが知られていても、それらが1つのキャッシュを共用するという事実は、機密処理のキャッシュ・アクセス動作のような他の情報が、注意しなければ信頼されていない処理により引き出され得ることを意味する。本発明の方法は、機密処理のセクションが必要とする情報をキャッシュがロードするときに、機密処理によりさもなければ追い出されるであろうキャッシュのロケーション内に記憶されたあらゆる情報を、機密処理のセクションの処理を開始するときに最初に追い出すことにより、この情報漏洩を防止する手段を提供する。機密セクションの処理の開始にあたりこの情報を追い出すことにより、機密処理のこのセクションがデータをロードするべき全てのキャッシュ・ロケーションが追い出し済みであるので、機密処理のこのセクションのアクセス動作を信頼されていない処理が引き出すことはできない。こうして、機密処理が処理されたそれらのセクションをたどって、これらのロケーションが実際に機密処理によりアクセスされたかどうかを、これらのロケーションの各々に信頼されていない処理が記入することが必要であり、そしてそれだけで各キャッシュ・ロケーションについて、何の特定情報も引き出すことができない。キャッシュ・ライン追い出し手順が割り込みされた場合でも、割り込みが起きたときにどれほど多くの追い出しが完了したかについての情報を攻撃者が得られるとしても、これからどんな機密データを推論することもできないので、これはセキュリティ・リスクではない。 There are many advantages to allowing different processes to execute on one processor and share a cache. If some processes are confidential and others are untrusted, the mechanism is devised to prevent untrusted processes from accessing the data being manipulated. I came. However, even though it is known to protect data in this way, the fact that they share a single cache is that other information, such as sensitive cache access operations, can be trusted without care. It means that it can be withdrawn by not processing. The method of the present invention, when a section of the confidential process loads the cache information required, any information stored in the would will in the location of the cache to be driven away or otherwise by secret processing, confidential treatment A means to prevent this information leakage is provided by first expelling the processing of the section of the first. By expelling the information Upon start of the processing of sensitive section, this section of the confidential process has already been expelled all cache locations to load data, untrusted access operation of this section of the confidential process Processing cannot be pulled out. Thus, it is necessary to follow those sections where confidential processing has been processed and an untrusted process fills in each of these locations whether these locations were actually accessed by confidential processing, And by itself, no specific information can be retrieved for each cache location. Even if the cache line eviction procedure is interrupted, no sensitive data can be inferred from now on, even if the attacker gets information about how much eviction was completed when the interrupt occurred. This is not a security risk.
処理は、それ自体のメモリ・アドレッシングを有する一連の命令である。処理は、いくつかのオペレーションのスレッドを有し得る。 A process is a sequence of instructions with its own memory addressing. A process may have several threads of operations.
いくつかの実施例において、前記方法は更に:前記プロセッサにより前記機密処理の前記セクションの処理を開始するステップと;切り替え要求に応答して、前記機密処理の前記セクションの処理中に、前記信頼されていない処理へ前記プロセッサを切り替えるステップと;前記信頼されていない処理から前記機密処理の前記セクションへのスイッチ・バックに際して、前記機密処理の前記セクションの処理を再開するのに先立って、前記少なくとも1つのキャッシュ内の前記機密処理の前記処理によって要求される前記機密処理ローディング情報によりさもなければ追い出される、前記少なくとも1つのキャッシュのロケーション内に記憶された情報を追い出すステップとを含む。 In some embodiments, the method further includes: initiating processing of the section of the confidential processing by the processor; and in response to a switch request, during the processing of the section of the confidential processing. Switching the processor to an untrusted process; upon switching back from the untrusted process to the section of the confidential process, prior to resuming the process of the section of the confidential process, the at least one one of the required by the processing of the confidential processing in the cache are driven away or otherwise by the confidential process loading information, and a step of expelling the at least one location information stored in the cache.
さらに、このセクションの処理の開始における追い出しを遂行することにより、このセクションから信頼されていない処理へ戻る切り替えを要求するあらゆる割り込みは、これら更なるステップを直ちに実行する必要がない。これら更なるステップは、信頼されていない処理からのスイッチ・バックが起っても必ずしも遂行される必要がないが、しかし機密の安全な処理へのスイッチ・バックまで、これらのステップを遅らせることができるという事実は、信頼されていない切り替えレイテンシイを削減することを可能にする。 Furthermore, any interrupt requesting a switch back from this section to untrusted processing by performing eviction at the start of processing in this section need not immediately perform these additional steps. These additional steps do not necessarily have to be performed if a switchback from untrusted processing occurs, but may delay these steps until switchback to a secure and secure process. The fact that it can make it possible to reduce untrusted switching latencies.
いくつかの実施例において、前記機密処理によりさもなければ追い出されるかも知れない前記少なくとも1つのキャッシュのロケーションに記憶された情報を追い出す前記ステップは、前記少なくとも1つのキャッシュ内の前記機密処理の前記セクションにより要求されるかも知れない前記情報を記憶することを含む。 In some embodiments, the step of expelling the information stored in said at least one cache locations that may be driven away or otherwise by secret processing, the confidential processing of the at least one cache Storing the information that may be required by the section.
重要なことは、これらロケーション内に記憶された信頼されていない情報を追い出すことであるが、それを実行する好ましい方法は、機密プロセッサのセクションにより要求されるかも知れない情報によりこの情報を追い出し置き換えることである。これは、必要とされる情報がキャッシュへあらかじめロードされており、従って処理のそのセクションが実際にそれを要求してもキャッシュを利用可能である点において、性能上の利点を明らかに有する。こうして、この情報がこのセクションにより後に必要とされても、関連のロケーションを追い出すステップを非常に僅かな追加コストにより遂行できる。 The important thing is to evict untrusted information stored in these locations, but the preferred way to do this is to evict and replace this information with information that may be required by a section of the confidential processor. That is. This clearly has a performance advantage in that the required information is pre-loaded into the cache so that the cache is available even if that section of the process actually requires it. Thus, even if this information is needed later by this section, the step of evicting the associated location can be performed with very little additional cost.
いくつかの実施例において、前記プロセッサはセキュア・ドメインおよびノン・セキュア・ドメインにおいて動作可能であり、前記プロセッサがノン・セキュア・ドメイン内で動作中にアクセスできないセキュア・データへのアクセスを、前記プログラムが前記プロセッサ・セキュア・ドメイン内でプログラムを実行中に有するように動作可能であり、前記機密処理は前記セキュア・ドメイン内で実行されるセキュア処理であり、また、前記信頼されていない処理はノン・セキュア・ドメイン内で実行される処理である。 In some embodiments, the processor is operable in a secure domain and a non-secure domain, and the program provides access to secure data that the processor cannot access while operating in the non-secure domain. The confidential process is a secure process executed in the secure domain, and the untrusted process is a non-trusted process. A process executed in the secure domain.
機密処理および信頼されていない処理は、多数の異なった処理であり得るが、たとえばそれらが特定環境で実行する通常の処理であっても良く、いくつかの実施例ではそれらはさらに分離されて、機密処理がセキュア・ドメイン内で実施されるセキュア処理であり、また信頼されていない処理はノン・セキュア処理である。 Confidential and untrusted processes can be a number of different processes, for example they can be normal processes that run in a particular environment, in some embodiments they are further separated, The confidential processing is secure processing performed in the secure domain, and the untrusted processing is non-secure processing.
いくつかの実施例において、前記プロセッサはノン・セキュア・ドメイン内で複数の信頼されていない処理を処理し、またセキュア・ドメイン内で複数の機密処理するように動作可能であり、前記方法は少なくとも1つの前記機密処理の1セクションのキャッシュ・アクセス動作に関する情報を前記複数の信頼されていない処理へ漏洩することを妨げる。 In some embodiments, the processor is operable to process a plurality of untrusted processes within the non-secure domain and a plurality of sensitive processes within the secure domain, the method comprising at least Preventing leakage of information regarding cache access operations of a section of one of the sensitive processes to the plurality of untrusted processes.
セキュア・ドメインおよびノン・セキュア・ドメインは、セキュア・ドメイン内で実行する全ての処理の信頼性があるように設定することができ、こうしてこの方法が関連するのが機密処理と信頼されていない処理の間の情報漏洩のみであり、複数のセキュア処理の間での情報漏洩は許容される。 Secure and non-secure domains can be configured to be reliable for all processes running within the secure domain, and this method is relevant for sensitive and untrusted processes Information leakage between the plurality of secure processes is allowed.
いくつかの実施例において、前記セキュア・ドメインおよびノン・セキュア・ドメイン内での処理の間を切り替える前記ステップは、モニタ・モードを介して遂行され、前記モニタ・モードは、複数のドメインの間の切り替えが前記機密処理の前記セクションへの切り替えを含む事を検出すると、前記機密処理の前記セクションによりさもなければ追い出される前記少なくとも1つのキャッシュのロケーション内に記憶された情報の前記追い出しを開始する。 In some embodiments, the step of switching between processing within the secure domain and non-secure domain is performed via a monitor mode, wherein the monitor mode is between multiple domains. When the switching is detected that includes a switching to the section of the confidential process, start the eviction of the said section by otherwise follow out to be the at least one information stored in the location of the cache confidential treatment To do.
セキュア・ドメインとノン・セキュア・ドメインの間を切替える制御は、モニタ・モードにより有利に遂行できる。モニタ・モードは、ドメインの間のデータ漏洩を防止するように作用できて、情報の追い出しを開始するために使用できる。 Control for switching between the secure domain and the non-secure domain can be advantageously performed by the monitor mode. The monitor mode can act to prevent data leakage between domains and can be used to initiate information eviction .
いくつかの実施例において、前記機密処理の前記セクションはセキュリティ・クリティカル・セクションである。 In some embodiments, the section of the confidential processing is a security critical section.
この方法によりキャッシュ・アクセス動作が保護される機密処理のセクションは、機密処理の全体であるか、または特にセキュリティがクリティカルなセクションである。これは、極度に機密なデータの処理が遂行されるセクションである。たとえば、それは暗号キーを含む処理である。 The section of the confidential process in which the cache access operation is protected by this method is the entire confidential process, or a section in which security is particularly critical. This is the section where extremely sensitive data is processed. For example, it is a process that includes a cryptographic key.
いくつかの実施例では、前記機密処理の前記セキュリティ・クリティカル・セクションは、暗号処理を含む。 In some embodiments, the security critical section of the confidential processing includes cryptographic processing.
暗号処理は、暗号キーを引き出すために、キャッシュ・アクセス・パターンが使用される計算を含む。こうして、そうした場合は信頼されていない処理によりこれらアクセス・パターンが引き出されないことが、極度に重要である。 Cryptographic processing involves computations where a cache access pattern is used to derive a cryptographic key. Thus, it is extremely important that in these cases these access patterns are not derived by untrusted processing.
いくつかの実施例において、前記セキュリティ・クリティカル・セクションの処理に先立って前記少なくとも1つのキャッシュ内に記憶された前記情報は、前記セキュリティ・クリティカル・セクションがデータから要求する少なくとも1つのルックアップ・テーブルである。 In some embodiments, the information stored in the at least one cache prior to processing of the security critical section is stored in at least one lookup table that the security critical section requests from data. It is.
本発明の諸実施例は、暗号法で使用される種々なタイプの情報を記憶するキャッシュのために使用でき、たとえば、それは暗号命令を記憶する命令キャッシュのために使用できるが、しかし、それは特にデータ・ルックアップ・テーブルを使用する暗号処理に応用可能である。そうした暗号処理は、キャッシュ・アクセス・パターン攻撃に対して傷つきやすく、そこでは暗号キーがキャッシュ・アクセス・パターンの分析から引き出される。こうして、この技法はこれらルックアップ・テーブルを記憶するキャッシュに応用されるとき、特に有用である。 Embodiments of the present invention can be used for caches that store various types of information used in cryptography, for example, it can be used for instruction caches that store cryptographic instructions, It is applicable to cryptographic processing using a data lookup table. Such cryptographic processing is vulnerable to cache access pattern attacks, where cryptographic keys are derived from the analysis of cache access patterns. Thus, this technique is particularly useful when applied to caches that store these lookup tables.
いくつかの実施例においては、1つだけの安全な機密処理が前記データ処理装置により処理されるが、他の実施例においては、複数の機密処理が前記データ処理装置により処理され、各々暗号処理セクションを含み、これら暗号処理セクションは複数のルックアップ・テーブルからデータを要求し、前記データ処理装置はさらに前記複数のルックアップ・テーブルの各々に対応する複数のルックアップ・フラグを含み、そこで前記方法はさらに下記の諸ステップを含む:前記セキュア・モードにおける処理を開始するのに先立って、前記複数のルックアップ・フラグを第1の所定値へセットするステップと;前記プロセッサにより前記複数のセキュア処理の1つのセキュリティ・クリティカル・セクションの処理を開始または再開するのに先立って:前記対応するルックアップ・フラグが前記第1所定値へセットされるときに、前記少なくとも1つのキャッシュにおいて、前記機密処理の前記セキュリティ・クリティカル・セクションがそこからデータを要求する前記複数のルックアップ・テーブルの少なくとも1つを記憶して、前記対応するルックアップ・フラグを第2の所定値へ設定するステップと;および前記対応するルックアップ・フラグが前記第2の所定値セットされるならば、前記少なくとも1つのキャッシュへ前記情報を記憶しないステップとを含む。 In some embodiments, only one secure confidential process is processed by the data processing device, while in other embodiments, multiple confidential processes are processed by the data processing device, each with cryptographic processing. Sections, wherein the cryptographic processing sections request data from a plurality of lookup tables, and the data processing device further includes a plurality of lookup flags corresponding to each of the plurality of lookup tables, wherein The method further includes the steps of: setting the plurality of lookup flags to a first predetermined value prior to initiating processing in the secure mode; Before starting or resuming processing of one security critical section of processing I: wherein when a corresponding look-up flag is set to the first predetermined value, in said at least one cache, said plurality of said security critical section of the confidential process requests data from it Storing at least one of the look-up tables and setting the corresponding look-up flag to a second predetermined value; and the corresponding look-up flag is set to the second predetermined value And not storing the information in the at least one cache.
遂行される複数の暗号処理があって、複数のルックアップ・テーブルを要求する場合は、どのルックアップ・テーブルが既にキャッシュ内に記憶済みであるかを記録するのが有利であり、それによりキャッシュ・アクセス・パターンの漏洩を防止するために、キャッシュにこのデータをロードする必要があるかどうか、または、このデータが既にキャッシュ内に存在するので、このデータをロードする必要があるかどうかを知ることができる。 If there are multiple cryptographic processes to be performed and request multiple lookup tables, it is advantageous to record which lookup tables are already stored in the cache, so that the cache Know if this data needs to be loaded into the cache to prevent access pattern leakage, or if this data needs to be loaded because it already exists in the cache be able to.
いくつかの実施例においては、前記機密処理の前記セクションを実行するのに先立って、所定のステップが遂行されて前記セクションが実行されることを指示し、また前記セクションの完了に続いて更なるステップが遂行されて前記セクションが完了済みであることを指示する。 In some embodiments, prior to executing the section of the confidential process, a predetermined step is performed to indicate that the section is to be executed, and further following completion of the section A step is performed to indicate that the section has been completed.
処理の間で切り替えるときに、機密処理の特定セクションが再開されるかどうかをデータ処理装置に知らせるために、この情報を記録するステップが取られて、必要な時間に処理装置に利用可能であるようにされる。これは、情報漏洩の削減を確実にするために取る必要があるステップを、プロセッサが能率的に制御するのを支援する。 When switching between processes, a step of recording this information is taken and available to the processing unit at the required time to inform the data processing unit whether a particular section of confidential processing is resumed. To be done. This helps the processor to efficiently control the steps that need to be taken to ensure reduced information leakage.
いくつかの実施例において、前記所定のステップの1つは前記処理の前記セクションが実行されていることを示すインディケータ値を設定することを含み、また前記更なるステップの1つは、前記処理の前記セクションがもはや実施されていないことを示すために、前記インディケータ値をリセットすることを含む;前記機密処理へスイッチ・バックするに際して、前記インディケータ値から前記セクションが処理されるかどうかを決定して、もしそうならばハンドラ・ルーチンを開始して、前記ハンドラ・ルーチンは、前記機密処理の前記セクションを再開するのに先立って、前記少なくとも1つのキャッシュ内で前記機密処理の前記セクションにより要求されるであろう情報を記憶するステップを含む。 In some embodiments, one of the predetermined steps includes setting an indicator value indicating that the section of the process is being performed, and one of the further steps is a step of the process. Resetting the indicator value to indicate that the section is no longer implemented; upon switching back to the sensitive process, determining whether the section is processed from the indicator value; , If so, start a handler routine that is requested by the section of the confidential process in the at least one cache prior to resuming the section of the confidential process. Storing the information that would be.
機密処理の特定セクションが処理されるかどうかを記録するのに便利な方法は、インディケータ値の使用により処理されることであり、インディケータ値は、セクションが開始されまたは完了されるときにセットおよびリセットされることができる。 A convenient way to record whether a particular section of sensitive processing is processed is to be handled by using indicator values, which are set and reset when the section is started or completed Can be done.
いくつかの実施例において前記情報は命令を含み、一方他の実施例では前記情報はデータを含む。 In some embodiments, the information includes instructions, while in other embodiments, the information includes data.
機密処理のキャッシュ・アクセス動作の詳細は、データ・キャッシュ・アクセスと命令キャッシュ・アクセスの両方について、望ましくない情報漏洩へ導くかも知れない。したがって、本発明の諸実施例は両方の種類のキャッシュへ応用できる。 The details of the confidential processing cache access operations may lead to undesirable information leakage for both data cache and instruction cache accesses. Thus, embodiments of the present invention can be applied to both types of caches.
いくつかの実施例において、前記少なくとも1つのキャッシュの前記ロケーションは、キャッシュ・ラインを含む。 In some embodiments, the location of the at least one cache includes a cache line.
本発明のさらなる面は、データ・プロセッサ上で実行するときにデータ・プロセッサを制御して、本発明の第1の面による方法のステップを遂行するように動作できるコンピュータ・プログラム製品を含む。 A further aspect of the invention includes a computer program product operable to control a data processor when executing on the data processor to perform the steps of the method according to the first aspect of the invention.
本発明のなお更なる面は、機密処理および信頼されていない処理を遂行するようにされた少なくとも1つのプロセッサ、および前記機密処理および信頼されていない処理を遂行中に前記プロセッサ中により必要とされる情報を記憶するようにされた少なくとも1つのキャッシュとを含むデータ処理装置を提供し、前記データ処理装置はさらに:処理されるべき前記機密処理のセクションを検出するように構成された制御ロジックを含み、前記セクションの検出に応答しまた前記セクションの処理を開始または再開するのに先立って、前記制御ロジックは前記少なくとも1つのキャッシュ内の前記機密処理の前記セクションにより要求されるべき前記機密処理ローディング情報により、さもなければ追い出されるべき前記少なくとも1つのキャッシュのロケーションに記憶された情報を追い出すように構成されている。 Still further aspects of the present invention are required by at least one processor adapted to perform confidential processing and untrusted processing, and in the processor during performing the confidential processing and untrusted processing. And at least one cache adapted to store information, the data processing device further comprising: control logic configured to detect the section of the confidential processing to be processed Including, prior to initiating or resuming processing of the section in response to detection of the section, the control logic is responsible for loading the confidential processing to be requested by the section of the confidential processing in the at least one cache. the information, otherwise follow out to the at least one calibration to be It is configured to expel the information stored in the shoe locations.
本発明の上記およびその他の目的、特徴および長所は、例示的な実施例の下記の詳細な説明を添付図面と共に読むことにより、明らかになるであろう。 These and other objects, features and advantages of the present invention will become apparent upon reading the following detailed description of exemplary embodiments in conjunction with the accompanying drawings.
図2は、ノン・セキュア・ドメイン内で実行される信頼されていない処理10、およびセキュア・ドメイン内で実行される機密処理20を、図式的に示す。機密処理20は、たとえばルックアップ・テーブルを含む暗号処理であるセキュリティ・クリティカル・セクション22を有する。このセクションに入るのに先立って、ハンドラ・ルーチン24が遂行される。このハンドラ・ルーチン24は、処理の間にクリティカル・セクションによりどの情報が必要とされようとしているかを分析し、たとえばそれが暗号処理であれば、そのときはどのルックアップ・テーブルが必要であるかを評価して、それからこのクリティカル・セクションの処理を開始するのに先立って、この情報をキャッシュへプレロードするように動作する。それから図は、セクション22が割り込みされて信頼されていない処理10が再開されるのを示す。セキュリティ・クリティカル・セクション22により必要とされるかも知れないあらゆる情報をハンドラ・ルーチンがプレロードするので、機密処理のこの部分のアクセス・パターンに関する情報は、何も信頼されていない処理10により引き出すことができず、それはそのときキャッシュの適当な部分は、部分22に実行するのに先立って実際に飽和されているからである。機密処理20が再開されると、セキュリティ・クリティカル・セクション22が再開される。このセクションの処理を再開するのに先立って、ハンドラ・ルーチンがもう一度実行される。これは、クリティカルな機密部分のキャッシュ・アクセス動作に関する情報が信頼されていない処理10により引き出すことができないことをもう一度確実にする。さらに、セキュリティ・クリティカル・セクションの処理から立ち去るのに際してでなくそこへ戻るのに際して、ハンドラ・ルーチンを実行することにより、割り込みIRQのレイテンシイが影響されない。
FIG. 2 schematically illustrates an
図3は、プロセッサ12上で図2に示したような、信頼されていない処理10およびセキュア処理20を処理するように動作できる本発明の実施例によるデータ処理装置を示す。このデータ処理装置は、ノン・セキュアすなわち信頼されていないドメイン30とセキュア・ドメイン40を含み、モニタ・モード50により制御されて、これらドメインの間で切り替わる。ノン・セキュア・ドメイン30は、プロセッサ12上で、信頼されていない処理10の実行を制御できるOS32を有する。信頼されていない処理10(図2参照)が、機密処理20(図2参照)へ切り替わるときには、この切替えはモニタ・モード50を介して遂行される。
FIG. 3 illustrates a data processing apparatus according to an embodiment of the present invention operable to process
セキュア・ドメイン40は、セキュリティ・クリティカル・セクション・インディケータ72を有するセキュア・カーネル70を含み、セキュリティ・クリティカル・セクション・インディケータ72はコードのセキュリティ・クリティカル・セクションが処理されるときにセットされ、またそれが完了するときにリセットされる。こうして、ノン・セキュア・ドメインからセキュア・ドメインへの切替えに際して、それがセットされていれば、これはセキュリティ・クリティカル・セクションがまだ完了していないことを示し、したがって再開されることを示す。
The
セキュア・カーネル70はまたハンドラ・ルーチン74を含み、ハンドラ・ルーチン74は、セキュリティ・クリティカル・セクションを開始または再開するときに実行されて、キャッシュ・アクセス・パターンに関する情報の漏洩を防止するのに必要なセキュリティ・ステップを遂行するように動作する。セキュア・ドメイン40はまた、暗号ルックアップ・テーブルに関係するデータを記憶するように動作可能なスコアボード76を含む。暗号ルックアップ・テーブルがキャッシュ60に記憶されるたびに、スコアボード76内の対応するインディケータ・ビットがセットされることにより、セキュリティ・クリティカル・セクションによりあるルックアップ・テーブルが要求されているとハンドラ・ルーチン74が決定しても、このデータをロードする必要があるかどうかをスコアボードから知ることができる。データをロードする必要がない場合は、これを記録するためにスコアボード76内に対応するインディケータ・ビットをセットするデータをロード済みである。モニタ・モードを介してノン・セキュア・ドメインへスイッチ・バックするときに、スコアボード76内の値がリセットされ、代わりに、セキュア処理のセキュリティ・クリティカル・セクションを処理するのを先立ってそれらをリセットすることもできる。いずれの場合もノン・セキュア・ドメインの処理とセキュア・ドメインのセキュリティ・クリティカル・セクションにおける処理の再開の間でリセットしなければならない。
信頼されていない処理19のモニタ50を介して、セキュア処理20へ切り替える際に、モニタ・モードはセキュア・カーネル70へ処理の制御を切り替える。セキュア・カーネル70はセキュリティ・クリティカル・セクション・インディケータ72を注目して、機密処理20がセキュリティ・クリティカル・セクション22内に現在あるかどうかを調べる(図2参照)。これが該当することをセキュリティ・インディケータ72が指示すれば、セキュリティ・カーネル70が動作して、プログラムのこの部分が再開する以前に、ハンドリング・ルーチン74を開始する。ハンドラ・ルーチン74は、処理20のセキュリティ・クリティカル・セクション22がどのルックアップ・テーブルからデータを要求するかを監視する。それからこれらのルックアップ・テーブルをキャッシュ60へプレロードして、対応するルックアップ・テーブル・インディケータ・ビットをスコア・ビット76へセットして、これらルックアップがプレロード済みであることを指示する。この時点でセキュリティ・クリティカル・セクション22を暗号ロジック80により処理することができる。暗号ロジック80がこのセクションを処理し終わると、それは制御をカーネル70へ返して、セキュリティ・クリティカル・セクション・インディケータ・ビット72がリセットされる。処理20内に更なるセキュリティ・クリティカル・セクションがある場合は、もう一度ビット72がセットされて、制御ロジック74によりハンドラ機能が実行される。このハンドラ機能は次のセキュリティ・クリティカル・セクションに注目して、どのルックアップ・テーブルが必要かを監視する。それからそれはスコアボード76に注目して、キャッシュ60内にすでにプレロードされているかどうかを監視する。これが該当すると、それにプレロードする必要はない。以前のセクションにより要求されたものに対して追加のルックアップ・テーブルが要求される場合は、これらがキャッシュ60へプレロードされ、スコアボード76内の対応するルックアップ・テーブル・ビットがセットされる。その場合暗号ロジックが進行して、処理20のこの部分を処理する。注意すべきは、これら種々のセキュリティ・クリティカル・セクションが、処理20の単一スレッド内または別々のスレッド内に存在し得ることである。
When switching to the
プロセッサのノン・セキュア・セクションから割り込みが起って、処理10を再開すべきことを指示する場合は、モニタ・モード50が処理を処理10へ返す。この時点で、スコアボード・ビットがリセットされる。これは処理を処理10へ返すこととは独立に実行され、それにより割り込みのレイテンシイに影響しないようにされる。代わりに、セキュア処理への戻りで、それらをリセットしてもよい。
If an interrupt occurs from the non-secure section of the processor to indicate that
この実施例においては、どのセキュリティ・クリティカル・セクションが入力済みであるかに関連するキャッシュ内のルックアップ・テーブルのローディングを追跡するためにスコアボードが使用されるが、他の方法においてこれがなしうることは当業者が明らかである。たとえば、セキュア・カーネル70内のロジックにどのルックアップ・テーブルをロード済みであるかを、セキュア・カーネル70が追跡することができる。
In this example, the scoreboard is used to track the loading of lookup tables in the cache related to which security critical sections have been entered, but this can be done in other ways. It will be apparent to those skilled in the art. For example, the
図4は、図3に記述したようなデータ処理装置により遂行される1つの処理を図式的に示す。見られるとおり、処理10は処理20へ切り替わり、処理10は信頼されていない処理であり、また処理20が機密処理である。切り替えに際して、処理20の処理がセキュリティ・クリティカル・セクション22内にあることをインディケータ・ビット72が指示すると、ハンドラ・ルーチン24が呼ばれて実行される。ドメインの切替えに応答して、ハンドラ・ルーチン24はスコアボード76内の値をリセットする。
FIG. 4 schematically shows one process performed by a data processing apparatus as described in FIG. As can be seen,
セキュリティ・クリティカル・セクション22は処理20のスレッドT1であって、ルックアップ・テープル1とルックアップ・テーブル2を要求する。ハンドラ・ルーチン24はスレッドT1がルックアップ・テーブル1とルックアップ・テーブル2を必要とすることを評価して、スコアボード76内にこれらのビット適当にセットして、このデータをこれらのテーブルからキャッシュへロードする。それからセキュリティ・クリティカル・セクション22を処理することができる。割り込みIRQに続いて、処理は処理10へ戻る。処理がスイッチ・バックしてセクション22を再開すると、インディケータ・ビット72がセットされるのに応答して、ハンドラ・ルーチン24がもう一度実行される。この例で示すようにハンドラ・ルーチンは、それ自体割り込みされることがあり、もしこれが起きるとプロセッサは単純に処理10へスイッチ・バックするだけであるが、しかしインディケータ・ビットがセットされてハンドラが割り込み済みであることを指示する。処理20へスイッチ・バックの際に、処理2を再開する以前にハンドラ・ルーチン24をふたたび開始しなければならない。これはスコアボードをリセットして、それからルックアップ・テーブル1とルックアップ・テーブル2をロードすることによりT1を再開して、スコアボード76に適当なビットをセットすることを含む。
The security
これは、割り込みされたハンドラ・ルーチンを処理する1つの方法であるが、他の実施例においてハンドラを打ち切りまたは再始動できない場合、または再帰的に実行できない場合は、ハンドラ・ルーチンを実行中に割り込みが単純に動作不能にされる。これは、明らかに単純な解決であるが、しかしレイテンシイの欠点を有する。 This is one way to handle an interrupted handler routine, but if in other embodiments the handler cannot be aborted or restarted, or if it cannot be executed recursively, an interrupt will occur during execution of the handler routine. Is simply disabled. This is clearly a simple solution, but has the disadvantage of latency.
このスレッドT1が完了済みになると、スレッドT2がそれから処理されて、これもまた機密処理であって、ルックアップ・テーブル1とルックアップ・テーブル3を必要とする。したがって、ハンドラ・ルーチン24が遂行されてルックアップ・テーブル3がロードされ、またルックアップ・テーブル3のためのビットがスコアボード76にセットされるが、その理由はルックアップ・テーブルがすでにキャッシュ内にロードされていることをスコアボード76が指示済みであり、こうしてハンドラ・ルーチン24はこのテーブルの再びのロードが不要であることを知っているからである。スレッドT2が完了すると、次はノン・セキュリティ・クリティカル・セクションであり、こうしてインディケータ・ビット72がリセットされる。
When this thread T1 has been completed, thread T2 is then processed, which is also a confidential process and requires lookup table 1 and lookup table 3. Thus, the
上述の諸実施例において、セキュア・ドメインとノン・セキュア・ドメインの間の情報漏洩が制御され、また全てのセキュア処理が信頼できると仮定されている。これは常に該当するとは限らず、いくつかの実施例においてセキュア・ドメイン内のスレッドの切り替えもまたスコアボード76の消去を引き起こすように動作して、それにより次の処理に必要な全てのルックアップ・テーブルをプレロードすることが必要になる。同様に2つの処理が異なったセキュリティ・ドメイン内にあるがしかし1つのキャッシュ・アクセス動作情報を他の処理により観察できないことが望ましい場合は、以前の例と同様に処理1から処理2への切り替えに際してハンドラ・ルーチンが実行される。
In the embodiments described above, it is assumed that information leakage between the secure domain and the non-secure domain is controlled and that all secure processes are reliable. This may not always be the case, and in some embodiments, switching threads in the secure domain also operates to cause the
図5は、本発明の実施例が採用されるデータ処理システムのブロック図である。このシステム図は、2つのプロセッサ・コア110および120を含む。プロセッサコア110と120の各々は、その固有の関連レベル・ワン・キャッシュ112および122を有する。システム・バスを介して種々のデバイスが接続されている。詳しくは、システム・キャッシュ130が供給されて、これはプロセッサ・コア110またはプロセッサ・コア120によるアクセスのためにデータ値を記憶でき、従ってこれらのプロセッサ・コアはシステム・コア130へのアクセスを共有する。
FIG. 5 is a block diagram of a data processing system in which an embodiment of the present invention is employed. This system diagram includes two
さらにまた供給されるのは、1つまたはそれ以上の周辺デバイス(図示なし)であって、これらは周辺インターフェイス(図示なし)を介してアクセスされ、システム・バス90を周辺バス(図示なし)に相互接続している。これら周辺デバイスは、オフ・チップで存在し得るし、またはオン・チップで供給され得る。
Also provided are one or more peripheral devices (not shown) that are accessed via a peripheral interface (not shown) to connect the
本発明の1つの実施例によれば、データ処理装置は複数のドメインを有し、これらドメイン内でデータ処理装置が動作できる。1つの特定の実施例において、複数のドメインは1つのセキュア・ドメインと1つのノン・セキュア・ドメインを含み、所定のアクセス権は各ドメインに関連している。詳しくは、1つの実施例において、ノン・セキュア・ドメインで動作中に、デバイスはそのノン・セキュア・ドメインに関連するノン・セキュア・データのみにアクセスできる。したがって、このノン・セキュア・ドメインで動作するあらゆるデバイスは、セキュア・ドメインに属するセキュア・データへアクセスすることができない。セキュア・ドメインに関連する所定のアクセス権は多様な形式を取り得るが、しかし典型的にセキュア・ドメイン内で動作中のデバイスが、セキュア・ドメインのセキュア・データおよびノン・セキュア・ドメインのノン・セキュア・データの両方へアクセスするのを許容する。 According to one embodiment of the present invention, the data processing apparatus has a plurality of domains, and the data processing apparatus can operate in these domains. In one particular embodiment, the plurality of domains includes a secure domain and a non-secure domain, and a predetermined access right is associated with each domain. Specifically, in one embodiment, while operating in a non-secure domain, a device can only access non-secure data associated with that non-secure domain. Therefore, any device operating in this non-secure domain cannot access secure data belonging to the secure domain. A given access right associated with a secure domain may take a variety of forms, but typically a device operating within a secure domain may have secure data in the secure domain and non-secure domain non- Allow access to both secure data.
コア110および120の各々は、ひと時に1つのドメインにおいてのみ動作できるが、しかしいずれの時点でもそれら個別のプロセッサ・コアは、互いに対して別々のドメインにおいて動作できる。
Each of the
データ処理装置内のキャッシュ112、122、130は、セキュア・データおよびノン・セキュア・データの両方に記憶するように配置することができ、また1つのビットを各キャッシュ・ラインに関連させて、そのキャッシュ・ライン内に記憶されたデータがセキュア・データまたはノン・セキュア・データであることを識別するようにすることができる。そうした方法で配置されたキャッシュの一層の詳細は、共通の譲受人である同時係属米国特許出願No.10/714,481に記述され、その内容は本書に参考文献として組み込まれている。
本発明の実施例によれば、コア110、120の各々は、そのマスタ・デバイスがその中で現在動作中であるドメインを識別するドメインID信号を出力するように配置される。これは、キャッシュのドメインおよびセキュリティ・ステータスに応じて、キャッシュ内の一定のデータへのアクセスを許容しまたは拒否するために使用できる。こうして、コア1 110またはコア2 120上で動作するノン・セキュア処理によるセキュア・データへのアクセスを拒否することができる。しかしながら、無許可アクセスからセキュア・データを保護することができても、キャッシュ・アクセス・パターンが傷つく可能性があり、またセキュア・ドメインにより処理されているセキュア・データに関する情報が漏れる可能性がある。ある特定のコアに特有なL1キャッシュにアクセスする場合は、上記のようにハンドラ・ルーチンの使用によりアクセス・パターンを保護することができ、そこでセキュア・ルーチンによりアクセスされるかも知れないキャッシュ・ロケーションが、セキュア・ルーチンの実行に先立って追い出され、または少なくともそのセキュア・ルーチンの特定のクリティカル・セクションの実行に先立って追い出され、それによりキャッシュ・アクセス・パターンの観察から何のセキュア・データを引き出すこともできないようにされる。
In accordance with an embodiment of the present invention, each of the
しかしながら、コードのセキュリティ・クリティカル・セクションによるシステム・キャッシュ130の使用は、ひと時に二つ以上のプロセッサがキャッシュにアクセスするので問題を生ずる可能性があり、キャッシュ・アクセス・パターンを保護するのが困難である。この問題を処置するために、本発明の実施例は、コードのセキュリティ・クリティカル・セクションにおいて、ローカルL1キャッシュのみを使用することを確実にするように動作できる。代わりにそうすることにより付加的なリスクがあると評価される限り、システム・キャッシュを使用するように決定することができる。共用キャッシュのあらゆる使用は、リスク(恐らくは、受け入れ可能な)を追加するが、それは他の処理タスクがシステム・キャッシュ内のラインを追い出すかも知れず、そしてその時にそれらが再ロードされる時をスポットするかも知れないからである。
However, the use of the
ハンドラ・ルーチンに対する更なるオプションは、ある「セキュリティ・クリティカル・セクション」を実行中に、任意のセキュリティ制限を強制することである。単一のプロセッシング・コアの場合は、これらの制限はキャッシュのサイド・チャネルを閉じなければならないことだけである。これは、ある信頼されていない処理によりセキュア処理の機密セクションのキャッシュ・アクセス動作を観察する結果として、何の機密データも得られないことを確実にすることによって達成される。しかしながら、(図6に示すような)マルチ・コアの場合には、これはセキュリティ・クリティカル・セクションが完了するまで、他のコア内の全ての信頼されていない処理タスクを停止させることを含むかも知れない。そうした場合、1つのセキュリティ・クリティカル・セクションによりシステム・レベル・キャッシュを使用することを許容するのを受け入れるべきであろう。 A further option for the handler routine is to enforce any security restrictions while executing certain “security critical sections”. In the case of a single processing core, these limits are only that the cache side channel must be closed. This is accomplished by ensuring that no sensitive data is available as a result of observing the cache access behavior of the secure process's sensitive section by some untrusted process. However, in the case of multi-core (as shown in FIG. 6), this may involve stopping all untrusted processing tasks in other cores until the security critical section is complete. I don't know. In such a case, it should be accepted to allow the use of system level cache by one security critical section.
図6は、本発明の1つの実施例に使用されるコードの例を示す。一つのセキュリティ・クリティカル・セクションSCSが実行または再開される時(ノン・セキュア・ドメインへの切替えの後)、セキュリティ・クリティカル・セクションに先立って、そのセクションのためのハンドラ・ルーチンが実行される。こうして、EnterSCS命令に応答してSCSが実行されると、ハンドラ1が最初に実行される。これは、データ・キャッシュ内へセキュリティ・クリティカル・セクションSCSにより要求されるいずれかのルックアップ・テーブルのプレローディングを含み、それによりハッキング処理に対してこのデータのアクセス・パターンに関する情報利用を防止するようにされる。このセクションは、命令LeavSCSに応答して、それからそのままにして置かれる。 FIG. 6 shows an example of code used in one embodiment of the present invention. When a security critical section SCS is executed or resumed (after switching to a non-secure domain), the handler routine for that section is executed prior to the security critical section. Thus, when the SCS is executed in response to the EnterSCS instruction, the handler 1 is executed first. This includes preloading any lookup table required by the security critical section SCS into the data cache, thereby preventing the use of information about the access pattern of this data for the hacking process. To be done. This section is then left in response to the instruction LeavSCS.
それから、ノン・セキュア処理が実行される。そのとき、enterSCSに応答して(ハンドラ2)、このセクションの実行に先立って次のセキュリティ・クリティカル・セクションに対するハンドラが実行される。このハンドラ・ルーチンは、Iキャッシュへのセキュリティ・セクションにより要求される命令シーケンスのプレローディングを含み、それにより信頼されていない処理がセキュリティ・クリティカル・セクションの命令アクセス・パターンに関する情報を引き出せるようになることを防止する。代わりに、実行されるSCSによりアクセスされるかも知れないキャッシュの一部分を無効にすることだけを含むことも有り得る。注意すべきは、セキュリティ・クリティカル・セクションSCS2の処理中に、この処理がノン・セキュア・ドメインへドメインを切り替える場合には、セキュア・ドメイン内のセキュリティ・クリティカル・セクションSCSを再開するのに先立って、ハンドラ・ルーチン(ハンドラ2)を再び実行する必要があることである。 Then, non-secure processing is executed. At that time, in response to the enterSCS (handler 2), the handler for the next security critical section is executed prior to the execution of this section. This handler routine includes pre-loading of the instruction sequence required by the security section into the I-cache so that untrusted processes can retrieve information about the instruction access pattern of the security critical section. To prevent that. Alternatively, it may involve only invalidating a portion of the cache that may be accessed by the SCS being executed. It should be noted that during the processing of security critical section SCS2, if this process switches the domain to a non-secure domain, prior to resuming the security critical section SCS in the secure domain. The handler routine (handler 2) needs to be executed again.
添付図面を参照しながら本発明の例示的な実施例を本書に詳細に説明してきたが、理解すべきは、本発明はそれらの厳密な実施例に限定されるものではなく、添付の特許請求の範囲に定義される本発明の範囲と精神から離れることなく、当業者がそこに種々の変更と修正を実行し得ることである。 Although exemplary embodiments of the present invention have been described in detail herein with reference to the accompanying drawings, it should be understood that the invention is not limited to those precise embodiments, and is not limited to the appended claims. It will be understood by those skilled in the art that various changes and modifications can be made therein without departing from the scope and spirit of the invention as defined in this section.
10 信頼されていない処理
20 機密処理
22 セキュリティ・クリティカル・セクション
24 ハンドラ・ルーチン
30 ノン・セキュア・ドメイン
32 信頼されていない処理のOS
40 セキュア・ドメイン
50 モニタ・モード
60 キャッシュ
70 セキュア・カーネル
72 セキュリティ・クリティカル・セクション・インディケータ
74 ハンドラ・ルーチン
76 スコアボード
90 システム・バス
110 プロセッサ・コア
112 レベル・ワン・キャッシュ
120 プロセッサ・コア
122 レベル・ワン・キャッシュ
130 システム・キャッシュ
T1 スレッド
T2 スレッド
10
40
Claims (19)
前記少なくとも1つのキャッシュ内の前記機密処理の前記セクションにより要求され得る機密処理ローディング情報によって前記少なくとも1つのキャッシュのロケーション内に記憶された情報が追い出されることがないように、前記プロセッサにより前記機密処理の1セクションの処理を開始するのに先立って、前記少なくとも1つのキャッシュのロケーション内に記憶された情報を追い出すステップと前記少なくとも1つのキャッシュ内の前記機密処理の前記セクションにより要求され得る前記情報を記憶するステップを含む前記方法。 A method of preventing cache access operation information of a confidential processing section from leaking to an untrusted process, wherein the confidential process and the untrusted process are performed by a processor in a data processing device, and the data processing apparatus further comprises said confidential processing and trusted to have no treatment of at least one operable to store the information required by the processor during the performance cache, the method comprising:
The confidential processing by the processor so that information stored in the location of the at least one cache is not evicted by confidential processing loading information that may be required by the section of the confidential processing in the at least one cache. Prior to initiating processing of one section of the at least one cache, the information stored in the location of the at least one cache and the information that may be requested by the section of the confidential processing in the at least one cache Said method comprising the step of storing .
前記プロセッサにより前記機密処理の前記セクションの処理を開始するステップと、
切替え要求に応答して前記機密処理の前記セクションの処理中に前記プロセッサを前記信頼されていない処理へ切り替えるステップと、
前記信頼されていない処理から前記機密処理の前記セクションへのスイッチング・バックに際して、前記少なくとも1つのキャッシュ内の前記機密処理の前記セクションにより要求されるかも知れない前記機密処理ローディング情報によって前記少なくとも1つのキャッシュのロケーション内に記憶された情報が追い出されることがないように、前記機密処理の前記セクションの処理を再開するのに先立って、前記少なくとも1つのキャッシュのロケーション内に記憶された情報を追い出すステップとを含む請求項1記載の方法。 The method further
Initiating processing of the section of the confidential processing by the processor ;
Switching the processor to the untrusted process during processing of the section of the confidential process in response to a switch request ;
Upon switching back from the untrusted process to the section of the confidential process, the at least one of the confidential process loading information that may be required by the section of the confidential process in the at least one cache. Evicting information stored in the at least one cache location prior to resuming processing of the section of the sensitive process so that information stored in the cache location is not evicted. The method of claim 1 comprising:
前記セキュア・モードで処理を開始するのに先立って、前記複数のルックアップ・フラグが第1所定値に設定され、
前記プロセッサにより前記複数のセキュア処理の1つのセキュリティ・クリティカル・セクションの処理を再開するのに先立って、前記対応するルックアップ・フラグが前記第1所定値にセットされるときに、前記少なくとも1つのキャッシュにおいて、前記機密処理の前記セキュリティ・クリティカル・セクションがデータを要求する前記複数のルックアップ・テーブルの少なくとも1つを記憶して、前記対応するルックアップ・フラグが第2所定値にセットされ、前記対応するルックアップ・フラグが前記第2所定値へセットされるならば、前記少なくとも1つのキャッシュへ前記情報を記憶しない、請求項9の記載の方法。 A plurality of confidential processes are processed by the data processing device, each including a cryptographic processing section, wherein the cryptographic processing section requests data from a plurality of lookup tables, and the data processing device further includes the plurality of lookup tables. A plurality of lookup flags corresponding to each of the
Prior to initiating processing in the secure mode, the plurality of lookup flags are set to a first predetermined value ,
Prior to resume processing of one security critical section of the plurality of secure processing by the processor, when the front SL corresponding lookup flag is set to the first predetermined value, said at least one In one cache, the security critical section of the sensitive process stores at least one of the plurality of lookup tables requesting data, and the corresponding lookup flag is set to a second predetermined value. if prior SL corresponding lookup flag is set to the second predetermined value, the do not store the information to at least one cache, the method according to claim 9.
前記機密処理へスイッチング・バックするときに、前記セクションが前記インディケータ値から処理されるべきであるかどうかを決定して、もしそうであるならばハンドラ・ルーチンを開始し、前記ハンドラ・ルーチンは、前記機密処理の前記セクションを再開するのに先立って、前記少なくとも1つのキャッシュ内に前記機密処理の前記セクションにより要求されるであろう情報を記憶するステップを含む前記請求項11の方法。 One of the predetermined steps includes setting an indicator value to indicate that the section of the process is being processed, and one of the further steps is to reset the indicator value and 12. The method of claim 11 , comprising indicating that the section is no longer processed .
When switching back to the sensitive process, it determines if the section should be processed from the indicator value and if so starts a handler routine, 12. The method of claim 11 , comprising storing information that would be required by the section of the confidential process in the at least one cache prior to resuming the section of the confidential process.
処理されるべき前記機密処理のセクションを検出するように構成された制御ロジックであって、前記少なくとも1つのキャッシュ内の前記機密処理の前記セクションにより要求され得る前記機密処理ローディング情報によって前記少なくとも1つのキャッシュのロケーション内に記憶された情報が追い出されることがないように、前記セクションの検出に応答して前記セクションの処理を開始または再開するのに先立って、前記少なくとも1つのキャッシュのロケーション内に記憶された情報を追い出しそして前記少なくとも1つのキャッシュ内の前記機密処理の前記セクションにより要求され得る前記情報を記憶する前記制御ロジックが構成されている前記データ処理装置。 At least one processor adapted to perform confidential processing and untrusted processing; and at least one processor adapted to store information required of the processor during the confidential processing and untrusted processing. A data processing device including a cache, the data processing device further comprising control logic configured to detect a section of the confidential processing to be processed, the confidential processing in the at least one cache Initiating processing of the section in response to detection of the section, such that information stored in the at least one cache location is not evicted by the sensitive processing loading information that may be required by the section of Prior to resuming, said at least one It said data processing apparatus, wherein the control logic for storing the information that may be requested by the section of the confidential processing of the at least one cache and basil driven away the information stored in the cache location is configured.
前記対応するルックアップ・フラグが前記第1所定値にセットされるときに、前記少なくとも1つのキャッシュにおいて、前記機密処理の前記セキュリティ・クリティカル・セクションがデータを要求する前記複数のルックアップ・テーブルの少なくとも1つに記憶して、前記対応するルックアップ・フラグを第2所定値へセットし、
前記対応するルックアップ・フラグが第2所定値へセットされるならば、前記少なくとも1つのキャッシュへ前記情報を記憶しない、請求項17記載のデータ処理装置。 The data processing device further includes a scoreboard configured to store a plurality of lookup flags, the plurality of lookups prior to the control logic initiating processing in the secure mode. Prior to starting or resuming processing of one security critical section of the plurality of secure processes by setting a flag to a first predetermined value ;
The plurality of lookup tables for which the security critical section of the sensitive process requests data in the at least one cache when the corresponding lookup flag is set to the first predetermined value. Storing in at least one and setting the corresponding lookup flag to a second predetermined value;
18. The data processing apparatus of claim 17 , wherein the information is not stored in the at least one cache if the corresponding lookup flag is set to a second predetermined value.
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| GB0708506A GB2448907B (en) | 2007-05-02 | 2007-05-02 | Reducng information leakage between processes sharing a cache |
| GB0708506.1 | 2007-05-02 |
Publications (3)
| Publication Number | Publication Date |
|---|---|
| JP2008276778A JP2008276778A (en) | 2008-11-13 |
| JP2008276778A5 JP2008276778A5 (en) | 2012-04-19 |
| JP5081056B2 true JP5081056B2 (en) | 2012-11-21 |
Family
ID=38198618
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP2008119461A Expired - Fee Related JP5081056B2 (en) | 2007-05-02 | 2008-05-01 | Information leakage reduction between cache sharing processes |
Country Status (4)
| Country | Link |
|---|---|
| US (1) | US8549325B2 (en) |
| JP (1) | JP5081056B2 (en) |
| CN (1) | CN101303721B (en) |
| GB (1) | GB2448907B (en) |
Families Citing this family (13)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US8553876B1 (en) * | 2007-10-23 | 2013-10-08 | Oracle America, Inc. | High performance cryptography on chip multithreading processors |
| US9058180B2 (en) * | 2009-06-29 | 2015-06-16 | Oracle America, Inc. | Unified high-frequency out-of-order pick queue with support for triggering early issue of speculative instructions |
| US8850573B1 (en) * | 2010-04-14 | 2014-09-30 | Google Inc. | Computing device with untrusted user execution mode |
| EP2416251B1 (en) * | 2010-08-06 | 2013-01-02 | Alcatel Lucent | A method of managing computer memory, corresponding computer program product, and data storage device therefor |
| US9110838B2 (en) | 2013-07-31 | 2015-08-18 | Honeywell International Inc. | Apparatus and method for synchronizing dynamic process data across redundant input/output modules |
| US9824225B1 (en) * | 2013-09-20 | 2017-11-21 | EMC IP Holding Company LLC | Protecting virtual machines processing sensitive information |
| CN104778415B (en) * | 2015-02-06 | 2018-02-27 | 北京北信源软件股份有限公司 | A kind of leakage-preventing system and method for data based on computer behavior |
| CN107004098B (en) * | 2015-05-28 | 2020-10-16 | 宇龙计算机通信科技(深圳)有限公司 | A system switching method, device and terminal |
| GB2540543B (en) * | 2015-07-20 | 2020-03-11 | Advanced Risc Mach Ltd | Graphics processing |
| CN105677581A (en) * | 2016-01-05 | 2016-06-15 | 上海斐讯数据通信技术有限公司 | Internal storage access device and method |
| CN109670312A (en) * | 2017-10-13 | 2019-04-23 | 华为技术有限公司 | Method of controlling security and computer system |
| CN110059482A (en) * | 2019-04-26 | 2019-07-26 | 海光信息技术有限公司 | The exclusive update method and relevant apparatus of exclusive spatial cache unit |
| CN115470532A (en) * | 2021-06-10 | 2022-12-13 | 华为技术有限公司 | Method and device for defending channel attack on cache side |
Family Cites Families (11)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP3733695B2 (en) * | 1997-02-05 | 2006-01-11 | 富士ゼロックス株式会社 | Database management system |
| US6014757A (en) * | 1997-12-19 | 2000-01-11 | Bull Hn Information Systems Inc. | Fast domain switch and error recovery in a secure CPU architecture |
| US6397301B1 (en) * | 1999-12-29 | 2002-05-28 | Intel Corporation | Preventing access to secure area of a cache |
| JP3503638B1 (en) * | 2002-09-26 | 2004-03-08 | 日本電気株式会社 | Cryptographic device and cryptographic program |
| WO2004046934A2 (en) | 2002-11-18 | 2004-06-03 | Arm Limited | Secure memory for protecting against malicious programs |
| US7171539B2 (en) * | 2002-11-18 | 2007-01-30 | Arm Limited | Apparatus and method for controlling access to a memory |
| US7739521B2 (en) * | 2003-09-18 | 2010-06-15 | Intel Corporation | Method of obscuring cryptographic computations |
| EP1870814B1 (en) * | 2006-06-19 | 2014-08-13 | Texas Instruments France | Method and apparatus for secure demand paging for processor devices |
| US8332653B2 (en) * | 2004-10-22 | 2012-12-11 | Broadcom Corporation | Secure processing environment |
| US7996644B2 (en) * | 2004-12-29 | 2011-08-09 | Intel Corporation | Fair sharing of a cache in a multi-core/multi-threaded processor by dynamically partitioning of the cache |
| GB2422926B (en) * | 2005-02-04 | 2008-10-01 | Advanced Risc Mach Ltd | Data processing apparatus and method for controlling access to memory |
-
2007
- 2007-05-02 GB GB0708506A patent/GB2448907B/en not_active Expired - Fee Related
-
2008
- 2008-04-30 CN CN2008101287107A patent/CN101303721B/en not_active Expired - Fee Related
- 2008-05-01 JP JP2008119461A patent/JP5081056B2/en not_active Expired - Fee Related
- 2008-05-02 US US12/149,525 patent/US8549325B2/en active Active
Also Published As
| Publication number | Publication date |
|---|---|
| CN101303721B (en) | 2013-02-13 |
| US20080288789A1 (en) | 2008-11-20 |
| GB2448907B (en) | 2011-07-27 |
| GB0708506D0 (en) | 2007-06-13 |
| GB2448907A (en) | 2008-11-05 |
| CN101303721A (en) | 2008-11-12 |
| US8549325B2 (en) | 2013-10-01 |
| JP2008276778A (en) | 2008-11-13 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JP5081056B2 (en) | Information leakage reduction between cache sharing processes | |
| JP4872001B2 (en) | Memory access safety management | |
| US7392415B2 (en) | Sleep protection | |
| JP5179257B2 (en) | Modification of control data in cache memory | |
| US7673152B2 (en) | Microprocessor with program and data protection function under multi-task environment | |
| US9524240B2 (en) | Obscuring memory access patterns in conjunction with deadlock detection or avoidance | |
| JP5091877B2 (en) | Data processing apparatus and data processing method including data processor for processing data in secure mode and non-secure mode | |
| CN100361039C (en) | Secure processor | |
| US9298894B2 (en) | Cache structure for a computer system providing support for secure objects | |
| RU2513909C1 (en) | Restricting memory areas for instruction reading depending on hardware mode and security flag | |
| JP5068737B2 (en) | Providing safety services for non-safety applications | |
| JP2008276778A5 (en) | ||
| US8799673B2 (en) | Seamlessly encrypting memory regions to protect against hardware-based attacks | |
| KR20040106352A (en) | Protection against memory attacks following reset | |
| JP2008047129A (en) | Data processing apparatus and system control register protecting method | |
| US20250371174A1 (en) | Memory page management methods and apparatuses | |
| JP6944444B2 (en) | Memory access instruction | |
| US8108905B2 (en) | System and method for an isolated process to control address translation | |
| CN120493238A (en) | Method, system, chip and storage medium for constructing secure execution environment |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20100609 |
|
| A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20111003 |
|
| A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20120104 |
|
| A602 | Written permission of extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A602 Effective date: 20120110 |
|
| A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20120203 |
|
| A602 | Written permission of extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A602 Effective date: 20120208 |
|
| A524 | Written submission of copy of amendment under article 19 pct |
Free format text: JAPANESE INTERMEDIATE CODE: A524 Effective date: 20120305 |
|
| A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20120327 |
|
| A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20120627 |
|
| A602 | Written permission of extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A602 Effective date: 20120702 |
|
| A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20120727 |
|
| 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: 20120817 |
|
| 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: 20120831 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20150907 Year of fee payment: 3 |
|
| R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
| LAPS | Cancellation because of no payment of annual fees |