JP2008276778A - キャッシュ共用処理間の情報漏洩削減 - Google Patents

キャッシュ共用処理間の情報漏洩削減 Download PDF

Info

Publication number
JP2008276778A
JP2008276778A JP2008119461A JP2008119461A JP2008276778A JP 2008276778 A JP2008276778 A JP 2008276778A JP 2008119461 A JP2008119461 A JP 2008119461A JP 2008119461 A JP2008119461 A JP 2008119461A JP 2008276778 A JP2008276778 A JP 2008276778A
Authority
JP
Japan
Prior art keywords
section
processing
cache
confidential
information
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.)
Granted
Application number
JP2008119461A
Other languages
English (en)
Other versions
JP5081056B2 (ja
JP2008276778A5 (ja
Inventor
Peter William Harris
ウィリアム ハリス ピーター
David Paul Martin
ポール マーティン デーヴィッド
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.)
ARM Ltd
Original Assignee
ARM Ltd
Advanced Risc Machines Ltd
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 ARM Ltd, Advanced Risc Machines Ltd filed Critical ARM Ltd
Publication of JP2008276778A publication Critical patent/JP2008276778A/ja
Publication of JP2008276778A5 publication Critical patent/JP2008276778A5/ja
Application granted granted Critical
Publication of JP5081056B2 publication Critical patent/JP5081056B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/78Protecting 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/79Protecting 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0891Addressing 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • G06F21/556Detecting 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)

Abstract

【課題】機密処理のセクションのキャッシュ・アクセス動作情報が信頼されていない処理へ漏洩するのを妨害する方法。
【解決手段】前記機密処理および信頼されていない処理はデータ処理装置内の一つのプロセッサにより遂行され、前記データ処理装置はさらに前記機密処理および信頼されていない処理を遂行中に前記プロセッサにより要求される情報を記憶するように動作可能な少なくとも1つのキャッシュを含み、前記方法は:
前記プロセッサにより前記機密処理の1セクションの処理を開始するのに先立って、前記少なくとも1つのキャッシュ内の前記機密処理の前記セクションにより要求され得る前記機密処理ローディング情報によりさもなければ立ち退かされる、前記少なくとも1つのキャッシュのロケーション内に記憶された情報を立ち退かせるステップを含む前記方法。
【選択図】図3

Description

本発明は、データ処理システムの分野に関する。特に、本発明は、1つのキャッシュを共用する処理の間の情報漏洩を削減する分野に関する。
あるデータ処理装置上で実行中の1つのアプリケーションに関連するデータ値が、他のアプリケーションに対してアクセス可能であるべきでない機密データ値である場合が、多く起りえる。そうした状況において、そうした機密データが安全に保持されて、たとえばこの機密データへのアクセスを追及する目的でデータ処理装置へロードされるハッキング・アプリケーションなど、そのデータ処理装置へロードされているかもしれない他のアプリケーションによりアクセスできないようにすることが明らかに重要である。1つのキャッシュを複数のアプリケーションで共用する場合に、これは特別な問題になり得る。
データ処理装置が複数の別々のドメインを備え、これらのドメインがハードウエア・レベルでセキュリティを取り扱うメカニズムを提供するシステムを提供することが知られている。そうしたシステムは、たとえば同一譲受人の同時係属米国特許出願No.10/714,561に記述され、この出願はセキュア・ドメインとノン・セキュア・ドメインを有するシステムを記述している。そのシステムにおいては、ノン・セキュア・ドメインとセキュア・ドメインは実際別々な世界を確立し、セキュア・ドメインはハードウエアで強制された境界により他の実行空間から分離された高信頼性実行空間を提供し、また同様にノン・セキュア・ドメインは信頼されていない実行空間を提供する。
共用キャッシュを使用するマルチ処理システム上のソフトウエア暗号システムは、1つのキャッシュを両方の処理が共用するために、それら処理の間で情報の漏洩が起る可能性があるので、一般に安全でないと見られている。キャッシュはデータを記憶する場所をそれ自体決定することにおいて、プログラマに対してある程度トランスペアレントである。上述したような既知の安全システムは、キャッシュへデータを記憶するノン・セキュア処理がセキュア処理によりキャッシュへ記憶されたデータへアクセスするのを、防止できる。しかしながら、1つの処理のデータ・アクセス・パターンに関する情報が他の処理により引き出されるかも知れず、そしてこの情報はたとえば暗号システムの安全性を相殺できるのに充分であるかも知れない。
図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/に詳述されている。
この問題に対しては可能な多くの解決法があり、そのいくつかはこれらの書類に記述されている。たとえば、安全な高信頼性を実行するためのセキュア・ドメインと信頼されていない処理を実行するためのノン・セキュア・ドメインを有するシステムにおいて、これらドメインの間の切り替えに際してキャッシュを一気に消去することができる。これは、明らかに性能と電力において不経済である。
代わりにキャッシュを分割して、キャッシュの一部分を性能に影響のある特定領域へ静的に割り当てることができる。代わりに、キャッシュを使用すべきでない場合には、キャッシュを全く使用せずに、その代わり緊密に結合されたメモリをルックアップ・テーブルとして使用できる。これの欠点は、これらのメモリは典型的に大きくないことである。テーブルが、緊密に結合されたメモリ内に永久的に記憶されている場合は、これは限られたメモリ空間の多くを使用するが、しかし必要なときにそれらがコピーされるならば、性能および電力において不経済なものになる。
もう1つの代替手段は、動作中にルックアップ・テーブルを計算することであるが、これはのろくて、かなりの電力コストを引き起こす。
大きすぎる電力または性能のオーバーヘッドを引き起こすことなしに、機密処理のセクションのキャッシュ・アクセス動作に関する情報が信頼されていない処理へ漏洩するのを防止することが望ましい。
本発明の第1の面は、機密処理のセクションのキャッシュ・アクセス動作に関する情報が信頼されていない処理に漏洩するのを防止する方法を提供し、前記機密処理および前記信頼されていない処理はデータ処理装置内のプロセッサにより遂行され、前記データ処理装置は更に、前記機密処理と前記信頼されていない処理を遂行しながら前記プロセッサにより要求される情報を記憶するように動作可能な少なくとも1つのキャッシュを含み、前記方法は:前記プロセッサにより前記機密処理のセクションの処理を開始するのに先立って、前記少なくとも1つのキャッシュ内の前記機密処理の前記セクションにより要求される前記機密処理ローディング情報により、さもなければ立ち退かされるであろう前記少なくとも1つのキャッシュのロケーションに記憶された情報を立ち退かせるステップを含む。
1つのプロセッサ上で実行されてキャッシュを共用する異なった処理ができるようにすることには多くの利点がある。いくつかの処理が機密処理であって、その他が信頼されていない処理である場合は、機密処理を操作中のデータに信頼されていない処理がアクセスするのを防止するように、機構が工夫されてきた。しかしながら、この方法によりデータを保護することが知られていても、それらが1つのキャッシュを共用するという事実は、機密処理のキャッシュ・アクセス動作のような他の情報が、注意しなければ信頼されていない処理により引き出され得ることを意味する。本発明の方法は、機密処理のセクションが必要とする情報をキャッシュがロードするときに、機密処理によりさもなければ立ち退かされるであろうキャッシュのロケーション内に記憶されたあらゆる情報を、機密処理のセクションの処理を開始するときに最初に立ち退かせることにより、この情報漏洩を防止する手段を提供する。機密セクションの処理の開始にあたりこの情報を立ち退かせることにより、機密処理のこのセクションがデータをロードするべき全てのキャッシュ・ロケーションが立退き済みであるので、機密処理のこのセクションのアクセス動作を信頼されていない処理が引き出すことはできない。こうして、機密処理が処理されたそれらのセクションをたどって、これらのロケーションが実際に機密処理によりアクセスされたかどうかを、これらのロケーションの各々に信頼されていない処理が記入することが必要であり、そしてそれだけで各キャッシュ・ロケーションについて、何の特定情報も引き出すことができない。キャッシュ・ライン立退き手順が割り込みされた場合でも、割り込みが起きたときにどれほど多くの立退きが完了したかについての情報を攻撃者が得られるとしても、これからどんな機密データを推論することもできないので、これはセキュリティ・リスクではない。
処理は、それ自体のメモリ・アドレッシングを有する一連の命令である。処理は、いくつかのオペレーションのスレッドを有し得る。
いくつかの実施例において、前記方法は更に:前記プロセッサにより前記機密処理の前記セクションの処理を開始するステップと;切り替え要求に応答して、前記機密処理の前記セクションの処理中に、前記信頼されていない処理へ前記プロセッサを切り替えるステップと;前記信頼されていない処理から前記機密処理の前記セクションへのスイッチ・バックに際して、前記機密処理の前記セクションの処理を再開するのに先立って、前記少なくとも1つのキャッシュ内の前記機密処理の前記処理によって要求される前記機密処理ローディング情報によりさもなければ立ち退かされる、前記少なくとも1つのキャッシュのロケーション内に記憶された情報を立ち退かせるステップとを含む。
さらに、このセクションの処理の開始における立退きを遂行することにより、このセクションから信頼されていない処理へ戻る切り替えを要求するあらゆる割り込みは、これら更なるステップを直ちに実行する必要がない。これら更なるステップは、信頼されていない処理からのスイッチ・バックが起っても必ずしも遂行される必要がないが、しかし機密の安全な処理へのスイッチ・バックまで、これらのステップを遅らせることができるという事実は、信頼されていない切り替えレイテンシイを削減することを可能にする。
いくつかの実施例において、前記機密処理によりさもなければ立ち退かされるかも知れない前記少なくとも1つのキャッシュのロケーションに記憶された情報を立ち退かせる前記ステップは、前記少なくとも1つのキャッシュ内の前記機密処理の前記セクションにより要求されるかも知れない前記情報を記憶することを含む。
重要なことは、これらロケーション内に記憶された信頼されていない情報を立ち退かせることであるが、それを実行する好ましい方法は、機密プロセッサのセクションにより要求されるかも知れない情報によりこの情報を立ち退かせ置き換えることである。これは、必要とされる情報がキャッシュへあらかじめロードされており、従って処理のそのセクションが実際にそれを要求してもキャッシュを利用可能である点において、性能上の利点を明らかに有する。こうして、この情報がこのセクションにより後に必要とされても、関連のロケーションを立ち退かせるステップを非常に僅かな追加コストにより遂行できる。
いくつかの実施例において、前記プロセッサはセキュア・ドメインおよびノン・セキュア・ドメインにおいて動作可能であり、前記プロセッサがノン・セキュア・ドメイン内で動作中にアクセスできないセキュア・データへのアクセスを、前記プログラムが前記プロセッサ・セキュア・ドメイン内でプログラムを実行中に有するように動作可能であり、前記機密処理は前記セキュア・ドメイン内で実行されるセキュア処理であり、また、前記信頼されていない処理はノン・セキュア・ドメイン内で実行される処理である。
機密処理および信頼されていない処理は、多数の異なった処理であり得るが、たとえばそれらが特定環境で実行する通常の処理であっても良く、いくつかの実施例ではそれらはさらに分離されて、機密処理がセキュア・ドメイン内で実施されるセキュア処理であり、また信頼されていない処理はノン・セキュア処理である。
いくつかの実施例において、前記プロセッサはノン・セキュア・ドメイン内で複数の信頼されていない処理を処理し、またセキュア・ドメイン内で複数の機密処理するように動作可能であり、前記方法は少なくとも1つの前記機密処理の1セクションのキャッシュ・アクセス動作に関する情報を前記複数の信頼されていない処理へ漏洩することを妨げる。
セキュア・ドメインおよびノン・セキュア・ドメインは、セキュア・ドメイン内で実行する全ての処理の信頼性があるように設定することができ、こうしてこの方法が関連するのが機密処理と信頼されていない処理の間の情報漏洩のみであり、複数のセキュア処理の間での情報漏洩は許容される。
いくつかの実施例において、前記セキュア・ドメインおよびノン・セキュア・ドメイン内での処理の間を切り替える前記ステップは、モニタ・モードを介して遂行され、前記モニタ・モードは、複数のドメインの間の切り替えが前記機密処理の前記セクションへの切り替えを含む事を検出すると、前記機密処理の前記セクションによりさもなければ立ち退かされる前記少なくとも1つのキャッシュのロケーション内に記憶された情報の前記立退きを開始する。
セキュア・ドメインとノン・セキュア・ドメインの間を切替える制御は、モニタ・モードにより有利に遂行できる。モニタ・モードは、ドメインの間のデータ漏洩を防止するように作用できて、情報の立退きを開始するために使用できる。
いくつかの実施例において、前記機密処理の前記セクションはセキュリティ・クリティカル・セクションである。
この方法によりキャッシュ・アクセス動作が保護される機密処理のセクションは、機密処理の全体であるか、または特にセキュリティがクリティカルなセクションである。これは、極度に機密なデータの処理が遂行されるセクションである。たとえば、それは暗号キーを含む処理である。
いくつかの実施例では、前記機密処理の前記セキュリティ・クリティカル・セクションは、暗号処理を含む。
暗号処理は、暗号キーを引き出すために、キャッシュ・アクセス・パターンが使用される計算を含む。こうして、そうした場合は信頼されていない処理によりこれらアクセス・パターンが引き出されないことが、極度に重要である。
いくつかの実施例において、前記セキュリティ・クリティカル・セクションの処理に先立って前記少なくとも1つのキャッシュ内に記憶された前記情報は、前記セキュリティ・クリティカル・セクションがデータから要求する少なくとも1つのルックアップ・テーブルである。
本発明の諸実施例は、暗号法で使用される種々なタイプの情報を記憶するキャッシュのために使用でき、たとえば、それは暗号命令を記憶する命令キャッシュのために使用できるが、しかし、それは特にデータ・ルックアップ・テーブルを使用する暗号処理に応用可能である。そうした暗号処理は、キャッシュ・アクセス・パターン攻撃に対して傷つきやすく、そこでは暗号キーがキャッシュ・アクセス・パターンの分析から引き出される。こうして、この技法はこれらルックアップ・テーブルを記憶するキャッシュに応用されるとき、特に有用である。
いくつかの実施例においては、1つだけの安全な機密処理が前記データ処理装置により処理されるが、他の実施例においては、複数の機密処理が前記データ処理装置により処理され、各々暗号処理セクションを含み、これら暗号処理セクションは複数のルックアップ・テーブルからデータを要求し、前記データ処理装置はさらに前記複数のルックアップ・テーブルの各々に対応する複数のルックアップ・フラッグを含み、そこで前記方法はさらに下記の諸ステップを含む:前記セキュア・モードにおける処理を開始するのに先立って、前記複数のルックアップ・フラッグを第1の所定値へセットするステップと;前記プロセッサにより前記複数のセキュア処理の1つのセキュリティ・クリティカル・セクションの処理を開始または再開するのに先立って:前記対応するルックアップ・フラッグが前記第1所定値へセットされるときに、前記少なくとも1つのキャッシュにおいて、前記機密処理の前記セキュリティ・クリティカル・セクションがそこからデータを要求する前記複数のルックアップ・テーブルの少なくとも1つを記憶して、前記対応するルックアップ・フラッグを第2の所定値へ設定するステップと;および前記対応するルックアップ・フラッグが前記第2の所定値セットされるならば、前記少なくとも1つのキャッシュへ前記情報を記憶しないステップとを含む。
遂行される複数の暗号処理があって、複数のルックアップ・テーブルを要求する場合は、どのルックアップ・テーブルが既にキャッシュ内に記憶済みであるかを記録するのが有利であり、それによりキャッシュ・アクセス・パターンの漏洩を防止するために、キャッシュにこのデータをロードする必要があるかどうか、または、このデータが既にキャッシュ内に存在するので、このデータをロードする必要があるかどうかを知ることができる。
いくつかの実施例においては、前記機密処理の前記セクションを実行するのに先立って、所定のステップが遂行されて前記セクションが実行されることを指示し、また前記セクションの完了に続いて更なるステップが遂行されて前記セクションが完了済みであることを指示する。
処理の間で切り替えるときに、機密処理の特定セクションが再開されるかどうかをデータ処理装置に知らせるために、この情報を記録するステップが取られて、必要な時間に処理装置に利用可能であるようにされる。これは、情報漏洩の削減を確実にするために取る必要があるステップを、プロセッサが能率的に制御するのを支援する。
いくつかの実施例において、前記所定のステップの1つは前記処理の前記セクションが実行されていることを示すインディケータ値を設定することを含み、また前記更なるステップの1つは、前記処理の前記セクションがもはや実施されていないことを示すために、前記インディケータ値をリセットすることを含む;前記機密処理へスイッチ・バックするに際して、前記インディケータ値から前記セクションが処理されるかどうかを決定して、もしそうならばハンドラ・ルーチンを開始して、前記ハンドラ・ルーチンは、前記機密処理の前記セクションを再開するのに先立って、前記少なくとも1つのキャッシュ内で前記機密処理の前記セクションにより要求されるであろう情報を記憶するステップを含む。
機密処理の特定セクションが処理されるかどうかを記録するのに便利な方法は、インディケータ値の使用により処理されることであり、インディケータ値は、セクションが開始されまたは完了されるときにセットおよびリセットされることができる。
いくつかの実施例において前記情報は命令を含み、一方他の実施例では前記情報はデータを含む。
機密処理のキャッシュ・アクセス動作の詳細は、データ・キャッシュ・アクセスと命令キャッシュ・アクセスの両方について、望ましくない情報漏洩へ導くかも知れない。したがって、本発明の諸実施例は両方の種類のキャッシュへ応用できる。
いくつかの実施例において、前記少なくとも1つのキャッシュの前記ロケーションは、キャッシュ・ラインを含む。
本発明のさらなる面は、データ・プロセッサ上で実行するときにデータ・プロセッサを制御して、本発明の第1の面による方法のステップを遂行するように動作できるコンピュータ・プログラム製品を含む。
本発明のなお更なる面は、機密処理および信頼されていない処理を遂行するようにされた少なくとも1つのプロセッサ、および前記機密処理および信頼されていない処理を遂行中に前記プロセッサ中により必要とされる情報を記憶するようにされた少なくとも1つのキャッシュとを含むデータ処理装置を提供し、前記データ処理装置はさらに:処理されるべき前記機密処理のセクションを検出するように構成された制御ロジックを含み、前記セクションの検出に応答しまた前記セクションの処理を開始または再開するのに先立って、前記制御ロジックは前記少なくとも1つのキャッシュ内の前記機密処理の前記セクションにより要求されるべき前記機密処理ローディング情報により、さもなければ立ち退かされるべき前記少なくとも1つのキャッシュのロケーションに記憶された情報を立ち退かせるように構成されている。
本発明の上記およびその他の目的、特徴および長所は、例示的な実施例の下記の詳細な説明を添付図面と共に読むことにより、明らかになるであろう。
図2は、ノン・セキュア・ドメイン内で実行される信頼されていない処理10、およびセキュア・ドメイン内で実行される機密処理20を、図式的に示す。機密処理20は、たとえばルックアップ・テーブルを含む暗号処理であるセキュリティ・クリティカル・セクション22を有する。このセクションに入るのに先立って、ハンドラ・ルーチン24が遂行される。このハンドラ・ルーチン24は、処理の間にクリティカル・セクションによりどの情報が必要とされようとしているかを分析し、たとえばそれが暗号処理であれば、そのときはどのルックアップ・テーブルが必要であるかを評価して、それからこのクリティカル・セクションの処理を開始するのに先立って、この情報をキャッシュへプレロードするように動作する。それから図は、セクション22が割り込みされて信頼されていない処理10が再開されるのを示す。セキュリティ・クリティカル・セクション22により必要とされるかも知れないあらゆる情報をハンドラ・ルーチンがプレロードするので、機密処理のこの部分のアクセス・パターンに関する情報は、何も信頼されていない処理10により引き出すことができず、それはそのときキャッシュの適当な部分は、部分22に実行するのに先立って実際に飽和されているからである。機密処理20が再開されると、セキュリティ・クリティカル・セクション22が再開される。このセクションの処理を再開するのに先立って、ハンドラ・ルーチンがもう一度実行される。これは、クリティカルな機密部分のキャッシュ・アクセス動作に関する情報が信頼されていない処理10により引き出すことができないことをもう一度確実にする。さらに、セキュリティ・クリティカル・セクションの処理から立ち去るのに際してでなくそこへ戻るのに際して、ハンドラ・ルーチンを実行することにより、割り込みIRQのレイテンシイが影響されない。
図3は、プロセッサ12上で図2に示したような、信頼されていない処理10およびセキュア処理20を処理するように動作できる本発明の実施例によるデータ処理装置を示す。このデータ処理装置は、ノン・セキュアすなわち信頼されていないドメイン30とセキュア・ドメイン40を含み、モニタ・モード50により制御されて、これらドメインの間で切り替わる。ノン・セキュア・ドメイン30は、プロセッサ12上で、信頼されていない処理10の実行を制御できるOS32を有する。信頼されていない処理10(図2参照)が、機密処理20(図2参照)へ切り替わるときには、この切替えはモニタ・モード50を介して遂行される。
セキュア・ドメイン40は、セキュリティ・クリティカル・セクション・インディケータ72を有するセキュア・カーネル70を含み、セキュリティ・クリティカル・セクション・インディケータ72はコードのセキュリティ・クリティカル・セクションが処理されるときにセットされ、またそれが完了するときにリセットされる。こうして、ノン・セキュア・ドメインからセキュア・ドメインへの切替えに際して、それがセットされていれば、これはセキュリティ・クリティカル・セクションがまだ完了していないことを示し、したがって再開されることを示す。
セキュア・カーネル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の単一スレッド内または別々のスレッド内に存在し得ることである。
プロセッサのノン・セキュア・セクションから割り込みが起って、処理10を再開すべきことを指示する場合は、モニタ・モード50が処理を処理10へ返す。この時点で、スコアボード・ビットがリセットされる。これは処理を処理10へ返すこととは独立に実行され、それにより割り込みのレイテンシイに影響しないようにされる。代わりに、セキュア処理への戻りで、それらをリセットしてもよい。
この実施例においては、どのセキュリティ・クリティカル・セクションが入力済みであるかに関連するキャッシュ内のルックアップ・テーブルのローディングを追跡するためにスコアボードが使用されるが、他の方法においてこれがなしうることは当業者が明らかである。たとえば、セキュア・カーネル70内のロジックにどのルックアップ・テーブルをロード済みであるかを、セキュア・カーネル70が追跡することができる。
図4は、図3に記述したようなデータ処理装置により遂行される1つの処理を図式的に示す。見られるとおり、処理10は処理20へ切り替わり、処理10は信頼されていない処理であり、また処理20が機密処理である。切り替えに際して、処理20の処理がセキュリティ・クリティカル・セクション22内にあることをインディケータ・ビット72が指示すると、ハンドラ・ルーチン24が呼ばれて実行される。ドメインの切替えに応答して、ハンドラ・ルーチン24はスコアボード76内の値をリセットする。
セキュリティ・クリティカル・セクション22は処理20のスレッドT1であって、ルックアップ・テープル1とルックアップ・テーブル2を要求する。ハンドラ・ルーチン24はスレッドT1がルックアップ・テーブル1とルックアップ・テーブル2を必要とすることを評価して、スコアボード76内にこれらのビット適当にセットして、このデータをこれらのテーブルからキャッシュへロードする。それからセキュリティ・クリティカル・セクション22を処理することができる。割り込みIRQに続いて、処理は処理10へ戻る。処理がスイッチ・バックしてセクション22を再開すると、インディケータ・ビット72がセットされるのに応答して、ハンドラ・ルーチン24がもう一度実行される。この例で示すようにハンドラ・ルーチンは、それ自体割り込みされることがあり、もしこれが起きるとプロセッサは単純に処理10へスイッチ・バックするだけであるが、しかしインディケータ・ビットがセットされてハンドラが割り込み済みであることを指示する。処理20へスイッチ・バックの際に、処理2を再開する以前にハンドラ・ルーチン24をふたたび開始しなければならない。これはスコアボードをリセットして、それからルックアップ・テーブル1とルックアップ・テーブル2をロードすることによりT1を再開して、スコアボード76に適当なビットをセットすることを含む。
これは、割り込みされたハンドラ・ルーチンを処理する1つの方法であるが、他の実施例においてハンドラを打ち切りまたは再始動できない場合、または再帰的に実行できない場合は、ハンドラ・ルーチンを実行中に割り込みが単純に動作不能にされる。これは、明らかに単純な解決であるが、しかしレイテンシイの欠点を有する。
このスレッドT1が完了済みになると、スレッドT2がそれから処理されて、これもまた機密処理であって、ルックアップ・テーブル1とルックアップ・テーブル3を必要とする。したがって、ハンドラ・ルーチン24が遂行されてルックアップ・テーブル3がロードされ、またルックアップ・テーブル3のためのビットがスコアボード76にセットされるが、その理由はルックアップ・テーブルがすでにキャッシュ内にロードされていることをスコアボード76が指示済みであり、こうしてハンドラ・ルーチン24はこのテーブルの再びのロードが不要であることを知っているからである。スレッドT2が完了すると、次はノン・セキュリティ・クリティカル・セクションであり、こうしてインディケータ・ビット72がリセットされる。
上述の諸実施例において、セキュア・ドメインとノン・セキュア・ドメインの間の情報漏洩が制御され、また全てのセキュア処理が信頼できると仮定されている。これは常に該当するとは限らず、いくつかの実施例においてセキュア・ドメイン内のスレッドの切り替えもまたスコアボード76の消去を引き起こすように動作して、それにより次の処理に必要な全てのルックアップ・テーブルをプレロードすることが必要になる。同様に2つの処理が異なったセキュリティ・ドメイン内にあるがしかし1つのキャッシュ・アクセス動作情報を他の処理により観察できないことが望ましい場合は、以前の例と同様に処理1から処理2への切り替えに際してハンドラ・ルーチンが実行される。
図5は、本発明の実施例が採用されるデータ処理システムのブロック図である。このシステム図は、2つのプロセッサ・コア110および120を含む。プロセッサコア110と120の各々は、その固有の関連レベル・ワン・キャッシュ112および122を有する。システム・バスを介して種々のデバイスが接続されている。詳しくは、システム・キャッシュ130が供給されて、これはプロセッサ・コア110またはプロセッサ・コア120によるアクセスのためにデータ値を記憶でき、従ってこれらのプロセッサ・コアはシステム・コア130へのアクセスを共有する。
さらにまた供給されるのは、1つまたはそれ以上の周辺デバイス(図示なし)であって、これらは周辺インターフェイス(図示なし)を介してアクセスされ、システム・バス90を周辺バス(図示なし)に相互接続している。これら周辺デバイスは、オフ・チップで存在し得るし、またはオン・チップで供給され得る。
本発明の1つの実施例によれば、データ処理装置は複数のドメインを有し、これらドメイン内でデータ処理装置が動作できる。1つの特定の実施例において、複数のドメインは1つのセキュア・ドメインと1つのノン・セキュア・ドメインを含み、所定のアクセス権は各ドメインに関連している。詳しくは、1つの実施例において、ノン・セキュア・ドメインで動作中に、デバイスはそのノン・セキュア・ドメインに関連するノン・セキュア・データのみにアクセスできる。したがって、このノン・セキュア・ドメインで動作するあらゆるデバイスは、セキュア・ドメインに属するセキュア・データへアクセスすることができない。セキュア・ドメインに関連する所定のアクセス権は多様な形式を取り得るが、しかし典型的にセキュア・ドメイン内で動作中のデバイスが、セキュア・ドメインのセキュア・データおよびノン・セキュア・ドメインのノン・セキュア・データの両方へアクセスするのを許容する。
コア110および120の各々は、ひと時に1つのドメインにおいてのみ動作できるが、しかしいずれの時点でもそれら個別のプロセッサ・コアは、互いに対して別々のドメインにおいて動作できる。
データ処理装置内のキャッシュ112、122、130は、セキュア・データおよびノン・セキュア・データの両方に記憶するように配置することができ、また1つのビットを各キャッシュ・ラインに関連させて、そのキャッシュ・ライン内に記憶されたデータがセキュア・データまたはノン・セキュア・データであることを識別するようにすることができる。そうした方法で配置されたキャッシュの一層の詳細は、共通の譲受人である同時係属米国特許出願No.10/714,481に記述され、その内容は本書に参考文献として組み込まれている。
本発明の実施例によれば、コア110、120の各々は、そのマスタ・デバイスがその中で現在動作中であるドメインを識別するドメインID信号を出力するように配置される。これは、キャッシュのドメインおよびセキュリティ・ステータスに応じて、キャッシュ内の一定のデータへのアクセスを許容しまたは拒否するために使用できる。こうして、コア1 110またはコア2 120上で動作するノン・セキュア処理によるセキュア・データへのアクセスを拒否することができる。しかしながら、無許可アクセスからセキュア・データを保護することができても、キャッシュ・アクセス・パターンが傷つく可能性があり、またセキュア・ドメインにより処理されているセキュア・データに関する情報が漏れる可能性がある。ある特定のコアに特有なL1キャッシュにアクセスする場合は、上記のようにハンドラ・ルーチンの使用によりアクセス・パターンを保護することができ、そこでセキュア・ルーチンによりアクセスされるかも知れないキャッシュ・ロケーションが、セキュア・ルーチンの実行に先立って立ち退かされ、または少なくともそのセキュア・ルーチンの特定のクリティカル・セクションの実行に先立って立ち退かされ、それによりキャッシュ・アクセス・パターンの観察から何のセキュア・データを引き出すこともできないようにされる。
しかしながら、コードのセキュリティ・クリティカル・セクションによるシステム・キャッシュ130の使用は、ひと時に二つ以上のプロセッサがキャッシュにアクセスするので問題を生ずる可能性があり、キャッシュ・アクセス・パターンを保護するのが困難である。この問題を処置するために、本発明の実施例は、コードのセキュリティ・クリティカル・セクションにおいて、ローカルL1キャッシュのみを使用することを確実にするように動作できる。代わりにそうすることにより付加的なリスクがあると評価される限り、システム・キャッシュを使用するように決定することができる。共用キャッシュのあらゆる使用は、リスク(恐らくは、受け入れ可能な)を追加するが、それは他の処理タスクがシステム・キャッシュ内のラインを立ち退かせるかも知れず、そしてその時にそれらが再ロードされる時をスポットするかも知れないからである。
ハンドラ・ルーチンに対する更なるオプションは、ある「セキュリティ・クリティカル・セクション」を実行中に、任意のセキュリティ制限を強制することである。単一のプロセッシング・コアの場合は、これらの制限はキャッシュのサイド・チャネルを閉じなければならないことだけである。これは、ある信頼されていない処理によりセキュア処理の機密セクションのキャッシュ・アクセス動作を観察する結果として、何の機密データも得られないことを確実にすることによって達成される。しかしながら、(図6に示すような)マルチ・コアの場合には、これはセキュリティ・クリティカル・セクションが完了するまで、他のコア内の全ての信頼されていない処理タスクを停止させることを含むかも知れない。そうした場合、1つのセキュリティ・クリティカル・セクションによりシステム・レベル・キャッシュを使用することを許容するのを受け入れるべきであろう。
図6は、本発明の1つの実施例に使用されるコードの例を示す。一つのセキュリティ・クリティカル・セクションSCSが実行または再開される時(ノン・セキュア・ドメインへの切替えの後)、セキュリティ・クリティカル・セクションに先立って、そのセクションのためのハンドラ・ルーチンが実行される。こうして、EnterSCS命令に応答してSCSが実行されると、ハンドラ1が最初に実行される。これは、データ・キャッシュ内へセキュリティ・クリティカル・セクションSCSにより要求されるいずれかのルックアップ・テーブルのプレローディングを含み、それによりハッキング処理に対してこのデータのアクセス・パターンに関する情報利用を防止するようにされる。このセクションは、命令LeavSCSに応答して、それからそのままにして置かれる。
それから、ノン・セキュア処理が実行される。そのとき、enterSCSに応答して(ハンドラ2)、このセクションの実行に先立って次のセキュリティ・クリティカル・セクションに対するハンドラが実行される。このハンドラ・ルーチンは、Iキャッシュへのセキュリティ・セクションにより要求される命令シーケンスのプレローディングを含み、それにより信頼されていない処理がセキュリティ・クリティカル・セクションの命令アクセス・パターンに関する情報を引き出せるようになることを防止する。代わりに、実行されるSCSによりアクセスされるかも知れないキャッシュの一部分を無効にすることだけを含むことも有り得る。注意すべきは、セキュリティ・クリティカル・セクションSCS2の処理中に、この処理がノン・セキュア・ドメインへドメインを切り替える場合には、セキュア・ドメイン内のセキュリティ・クリティカル・セクションSCSを再開するのに先立って、ハンドラ・ルーチン(ハンドラ2)を再び実行する必要があることである。
添付図面を参照しながら本発明の例示的な実施例を本書に詳細に説明してきたが、理解すべきは、本発明はそれらの厳密な実施例に限定されるものではなく、添付の特許請求の範囲に定義される本発明の範囲と精神から離れることなく、当業者がそこに種々の変更と修正を実行し得ることである。
先行技術により1つのキャッシュを共有する信頼されていない処理とセキュア処理を図式的に示す。 本発明の実施例により実行されるノン・セキュア処理およびセキュア処理を図式的に示す。 本発明の実施例によるデータ処理装置を図式的に示す。 本発明の実施例により異なったスレッドを有するノン・セキュア処理とセキュア処理を図式的に示す。 本発明の諸実施例に採用され得るデータ処理システムのブロック図である。 例示的な暗号コードを示す。
符号の説明
10 信頼されていない処理
20 機密処理
22 セキュリティ・クリティカル・セクション
24 ハンドラ・ルーチン
30 ノン・セキュア・ドメイン
32 信頼されていない処理のOS
40 セキュア・ドメイン
50 モニタ・モード
60 キャッシュ
70 セキュア・カーネル
72 セキュリティ・クリティカル・セクション・インディケータ
74 ハンドラ・ルーチン
76 スコアボード
90 システム・バス
110 プロセッサ・コア
112 レベル・ワン・キャッシュ
120 プロセッサ・コア
122 レベル・ワン・キャッシュ
130 システム・キャッシュ
T1 スレッド
T2 スレッド

Claims (20)

  1. 機密処理のセクションのキャッシュ・アクセス動作情報が信頼されていない処理へ漏洩するのを妨害する方法であって、前記機密処理および信頼されていない処理はデータ処理装置内の一つのプロセッサにより遂行され、前記データ処理装置はさらに前記機密処理および信頼されていない処理を遂行中に前記プロセッサにより要求される情報を記憶するように動作可能な少なくとも1つのキャッシュを含み、前記方法は:
    前記プロセッサにより前記機密処理の1セクションの処理を開始するのに先立って、前記少なくとも1つのキャッシュ内の前記機密処理の前記セクションにより要求され得る前記機密処理ローディング情報によりさもなければ立ち退かされる、前記少なくとも1つのキャッシュのロケーション内に記憶された情報を立ち退かせるステップを含む前記方法。
  2. 前記方法はさらに:
    前記プロセッサにより前記機密処理の前記セクションの処理を開始するステップと:
    切替え要求に応答して前記機密処理の前記セクションの処理中に前記プロセッサを前記信頼されていない処理へ切り替えるステップと:
    前記信頼されていない処理から前記機密処理の前記セクションへのスイッチング・バックに際して、前記機密処理の前記セクションの処理を再開するのに先立って、前記少なくとも1つのキャッシュ内の前記機密処理の前記セクションにより要求されるかも知れない前記機密処理ローディング情報によりさもなければ立ち退かされる、前記少なくとも1つのロケーションに記憶された情報を立ち退かせるステップとを含む請求項1記載の方法。
  3. 前記機密処理によりさもなければ立ち退かされる前記少なくとも1つのキャッシュのロケーションに記憶された情報を立ち退かせる前記ステップは、前記少なくとも1つのキャッシュ内の前記機密処理の前記セクションにより要求される前記情報を記憶することを含む請求項1記載の方法。
  4. 前記プロセッサは、前記プロセッサがセキュア・ドメインおよびノン・セキュア・ドメインで動作可能であり、前記プロセッサは、セキュア・ドメインでプログラムを実行中に、前記プロセッサがノン・セキュア・ドメインで動作中にアクセスできないセキュア・データに対して前記プログラムがアクセスするように動作可能であり、前記機密処理は前記セキュア・ドメインで実行されるセキュア処理であり、また前記信頼されていない処理はノン・セキュア・ドメインで実行される処理である請求項1記載の方法。
  5. 前記プロセッサは、複数の信頼されていない処理をノン・セキュア・ドメインで処理しまた複数の機密処理をセキュア・ドメインで処理するように動作可能であり、前記方法は少なくとも1つの前記機密処理の1つのセクションのキャッシュ・アクセス動作に関する情報を、前記複数の信頼されていない処理へ漏洩するのを妨害する請求項4記載の方法。
  6. 前記セキュア・ドメインおよびノン・セキュア・ドメインの間の切り替えの前記のステップがモニタ・モードを介して遂行される請求項4記載の方法。
  7. ドメインの間の切り替えが前記機密処理の前記セクションへの切り替えを含むことを検出すると、前記機密処理の前記セクションによりさもなければ立ち退かされるであろう前記少なくとも1つのキャッシュのロケーションに記憶された情報の前記立退きを、前記モニタ・モードが開始する請求項6記載の方法。
  8. 前記機密処理の前記セクションがセキュリティ・クリティカル・セクションである請求項4記載の方法。
  9. 前記機密処理の前記セキュリティ・クリティカル・セクションが暗号処理を含む請求項8記載の方法。
  10. 前記セキュリティ・クリティカル・セクションの処理に先立って、前記少なくとも1つのキャッシュに記憶される前記情報は、前記セキュリティ・クリティカル・セクションがデータを要求する少なくとも1つのルックアップ・テーブルである請求項9記載の方法。
  11. 複数の機密処理が前記データ処理装置により処理され、各々暗号処理セクションを含み、前記暗号処理セクションは複数のルックアップ・テーブルからデータを要求し、前記データ処理装置はさらに前記複数のルックアップ・テーブルの各々に対応する複数のルックアップ・フラッグを含み、前記方法はさらに:
    前記セキュア・モードで処理を開始するのに先立って、前記複数のルックアップ・フラッグを第1所定値に設定するステップと;
    前記プロセッサにより前記複数のセキュア処理の1つのセキュリティ・クリティカル・セクションの処理を再開するのに先立って:
    前記対応するルックアップ・フラッグが前記第1所定値にセットされるときに、前記少なくとも1つのキャッシュにおいて、前記機密処理の前記セキュリティ・クリティカル・セクションがデータを要求する前記複数のルックアップ・テーブルの少なくとも1つを記憶して、前記対応するルックアップ・フラグを第2所定値にセットするステップと;
    前記対応するルックアップ・フラッグが前記第2所定値へセットされるならば、前記少なくとも1つのキャッシュへ前記情報を記憶しないステップとを含む請求項10の記載の方法。
  12. 前記機密処理の前記セクションを実行するのに先立って、所定のステップが遂行されて前記セクションが実行されることを指示し、続いて前記セクションの更なるステップの完了が遂行されて前記セクションが完了済みであることを指示する請求項1記載の方法。
  13. 前記所定のステップの1つがインディケータ値をセットして前記処理の前記セクションが処理されていることを指示することを含み、また、前記更なるステップの1つが前記インディケータ値をリセットして前記処理の前記セクションがもはや処理されていないことを指示することを含む請求項12記載の方法であって;
    前記機密処理へスイチィング・バックするときに、前記セクションが前記インディケータ値から処理されるべきであるかどうかを決定して、もしそうであるならばハンドラ・ルーチンを開始し、前記ハンドラ・ルーチンは、前記機密処理の前記セクションを再開するのに先立って、前記少なくともキャッシュ内に前記機密処理の前記セクションにより要求されるであろう情報を記憶するステップを含む前記請求項12の方法。
  14. 前記情報が命令を含む請求項1記載の方法。
  15. 前記情報がデータを含む請求項1記載の方法。
  16. 前記少なくとも1つのキャッシュの前記ロケーションがキャッシュ・ラインを含む請求項1記載の方法。
  17. データ・プロセッサ上で実行するときにデータ・プロセッサを制御して、請求項1記載のステップを遂行するように動作できるコンピュータ・プログラム製品。
  18. 機密処理および信頼されていない処理を遂行するようにされた少なくとも1つのプロセッサと、前記機密処理および信頼されていない処理を遂行中にプロセッサに要求される情報を記憶するようにされた少なくとも1つのキャッシュとを含むデータ処理装置であって、前記データ処理装置はさらに
    処理されるべき前記機密処理のセクションを検出するように構成された制御ロジックであって、また、前記セクションの検出に応答してまた前記セクションの処理を開始または再開するのに先立って、前記少なくとも1つのキャッシュ内の前記機密処理の前記セクションにより要求される前記機密処理ローディング情報によりさもなければ立ち退かされる、前記少なくともキャッシュのロケーションの記憶された情報を立ち退かせる前記制御ロジックが構成されている前記データ処理装置。
  19. 前記データ処理装置が更にインディケータ値ストアを含み、前記制御ロジックは、前記セクションの処理の開始に応答して、前記インディケータ値ストア内に所定の値を記憶し、また前記セクションの処理を完了するのに応答して、前記インディケータ値ストア内に異なった値を記憶するように構成されている請求項18記載のデータ記憶装置。
  20. 前記データ処理装置は、さらに複数のルックアップ・フラッグを記憶するように構成するようにスコアボードを含み、前記制御ロジックが前記セキュア・モードで処理を開始するのに先立って、前記複数のルックアップ・フラッグを第1所定値へセットし、前記プロセッサにより前記複数のセキュア処理の1つのセキュリティ・クリティカル・セクションの処理を開始または再開するのに先立って:
    前記対応するルックアップ・フラッグが前記第1所定値にセットされるときに、前記少なくとも1つのキャッシュにおいて、前記機密処理の前記セキュリティ・クリティカル・セクションがデータを要求する前記複数のルックアップ・テーブルの少なくとも1つに記憶して、前記対応するルックアップ・フラッグを第2所定値へセットし、
    前記対応するルックアップ・フラッグが第2所定値へセットされるならば、前記少なくとも1つのキャッシュへ前記情報を記憶しない、請求項18記載のデータ処理装置。
JP2008119461A 2007-05-02 2008-05-01 キャッシュ共用処理間の情報漏洩削減 Expired - Fee Related JP5081056B2 (ja)

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 true JP2008276778A (ja) 2008-11-13
JP2008276778A5 JP2008276778A5 (ja) 2012-04-19
JP5081056B2 JP5081056B2 (ja) 2012-11-21

Family

ID=38198618

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008119461A Expired - Fee Related JP5081056B2 (ja) 2007-05-02 2008-05-01 キャッシュ共用処理間の情報漏洩削減

Country Status (4)

Country Link
US (1) US8549325B2 (ja)
JP (1) JP5081056B2 (ja)
CN (1) CN101303721B (ja)
GB (1) GB2448907B (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013544380A (ja) * 2010-08-06 2013-12-12 アルカテル−ルーセント コンピュータ・メモリを管理する方法、対応するコンピュータ・プログラム製品、およびそのためのデータ・ストレージ・デバイス

Families Citing this family (11)

* Cited by examiner, † Cited by third party
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
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 (zh) * 2015-02-06 2018-02-27 北京北信源软件股份有限公司 一种基于计算机行为的数据防泄露系统及方法
CN107004098B (zh) * 2015-05-28 2020-10-16 宇龙计算机通信科技(深圳)有限公司 一种系统切换方法、装置和终端
GB2540543B (en) * 2015-07-20 2020-03-11 Advanced Risc Mach Ltd Graphics processing
CN105677581A (zh) * 2016-01-05 2016-06-15 上海斐讯数据通信技术有限公司 一种内存访问装置和方法
CN109670312A (zh) 2017-10-13 2019-04-23 华为技术有限公司 安全控制方法及计算机系统
CN110059482A (zh) * 2019-04-26 2019-07-26 海光信息技术有限公司 独占缓存空间单元的独占更新方法及相关装置

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006216012A (ja) * 2005-02-04 2006-08-17 Arm Ltd メモリへのアクセスを制御するためのデータ処理装置および方法

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3733695B2 (ja) * 1997-02-05 2006-01-11 富士ゼロックス株式会社 データベース管理システム
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 (ja) * 2002-09-26 2004-03-08 日本電気株式会社 暗号装置及び暗号プログラム
EP1563388A2 (en) 2002-11-18 2005-08-17 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

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006216012A (ja) * 2005-02-04 2006-08-17 Arm Ltd メモリへのアクセスを制御するためのデータ処理装置および方法

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013544380A (ja) * 2010-08-06 2013-12-12 アルカテル−ルーセント コンピュータ・メモリを管理する方法、対応するコンピュータ・プログラム製品、およびそのためのデータ・ストレージ・デバイス

Also Published As

Publication number Publication date
US20080288789A1 (en) 2008-11-20
US8549325B2 (en) 2013-10-01
JP5081056B2 (ja) 2012-11-21
GB2448907B (en) 2011-07-27
GB2448907A (en) 2008-11-05
GB0708506D0 (en) 2007-06-13
CN101303721A (zh) 2008-11-12
CN101303721B (zh) 2013-02-13

Similar Documents

Publication Publication Date Title
JP5081056B2 (ja) キャッシュ共用処理間の情報漏洩削減
KR102713620B1 (ko) 분기 예측회로에 대한 입력의 인코딩
JP4872001B2 (ja) メモリ・アクセス安全性管理
JP5179257B2 (ja) キャッシュメモリの中の制御データの修正
US9524240B2 (en) Obscuring memory access patterns in conjunction with deadlock detection or avoidance
US20190163902A1 (en) Encoding of input to storage circuitry
JP5581403B2 (ja) メモリのセキュア領域および非セキュア領域へのセキュアモードページテーブルデータの格納
JP6402034B2 (ja) コンピュータ内の情報を安全に保つシステム及び方法
US7673152B2 (en) Microprocessor with program and data protection function under multi-task environment
US9298894B2 (en) Cache structure for a computer system providing support for secure objects
US20040003273A1 (en) Sleep protection
EP1939752B1 (en) Obscuring memory access patterns
JP2008276778A5 (ja)
JP2009163738A (ja) 非安全アプリケーションへの安全サービスの提供
US20150205732A1 (en) Seamlessly encrypting memory regions to protect against hardware-based attacks
CN112818327A (zh) 基于TrustZone的用户级代码和数据安全可信保护方法及装置
JP6944444B2 (ja) メモリアクセス命令
CN116108454B (zh) 内存页面管理方法及装置
CN115905108A (zh) 一种用于risc-v芯片的iopmp架构实现方法

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