JP2008257734A - メモリドメインを基にしたデータ処理システム内のセキュリティ制御 - Google Patents

メモリドメインを基にしたデータ処理システム内のセキュリティ制御 Download PDF

Info

Publication number
JP2008257734A
JP2008257734A JP2008096483A JP2008096483A JP2008257734A JP 2008257734 A JP2008257734 A JP 2008257734A JP 2008096483 A JP2008096483 A JP 2008096483A JP 2008096483 A JP2008096483 A JP 2008096483A JP 2008257734 A JP2008257734 A JP 2008257734A
Authority
JP
Japan
Prior art keywords
domain
access control
secure
operating system
memory address
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
JP2008096483A
Other languages
English (en)
Other versions
JP4989543B2 (ja
Inventor
Daniel Kershaw
ダニエル・カーショー
Stuart David Biles
スチュアート・デイヴィッド・ビルス
Richard Roy Grisenthwaite
リチャード・ロイ・グリセンスウェイト
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 JP2008257734A publication Critical patent/JP2008257734A/ja
Application granted granted Critical
Publication of JP4989543B2 publication Critical patent/JP4989543B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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
    • G06F12/1458Protection against unauthorised use of memory or access to memory by checking the subject access rights
    • G06F12/1483Protection against unauthorised use of memory or access to memory by checking the subject access rights using an access-table, e.g. matrix or list
    • 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
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1458Protection against unauthorised use of memory or access to memory by checking the subject access rights
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/3005Arrangements for executing specific machine instructions to perform operations for flow control
    • G06F9/30054Unconditional branch instructions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30098Register arrangements
    • G06F9/30101Special purpose registers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30181Instruction operation extension or modification
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30181Instruction operation extension or modification
    • G06F9/30189Instruction operation extension or modification according to execution mode, e.g. mode flag
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline, look ahead
    • G06F9/3802Instruction prefetching

Abstract

【課題】アクセス制御データに応じて所定のメモリアドレスへのアクセスを制御する。
【解決手段】メモリアドレス空間へのアクセスは、アクセス制御データを使用したメモリアクセス制御回路によって制御される。アクセス制御データを変更する権限は、ドメイン制御回路によって制御される。メモリアドレスの集合である特定のドメイン内に記憶される命令がアクセス制御データを修正することができるか否かは当該ドメインに依存する。従って、アクセス制御データを変更する権限は、メモリアドレス空間内の特定の定義された位置の中に記憶された命令に制限することが可能であり、セキュリティを向上させる。この権限は、OSへの呼び出し転送が呼び出し転送コードを介して強制され、非セキュアOSの制御の下で実行する信頼されたソフトウェアによってのみ当該データがアクセス可能であり、メモリアドレス空間の信頼された領域を確立することができる。
【選択図】図7

Description

本発明は、データ処理システムの分野に関する。より詳しくは、本発明は、アクセス制御データに応じて所定のメモリアドレスへのアクセスを制御するセキュリティメカニズムを有するデータ処理システムに関する。
アクセス制御データに応じて所定のメモリアドレスへのアクセスが許可されるか否かを制御するためにメモリアクセス制御回路が使用されるデータ処理システムを提供することが知られている。一例として、英国ケンブリッジのARM社によって製造されているARMプロセッサのような周知のシステムは特権モード動作およびユーザモード動作を提供し、メモリアドレス領域は、特権モードで動作するときのみアクセス可能であるように、アクセス制御データによって定義することが可能である。他の周知のコンピュータシステムはハードウェア権限リストを実装し、それによって重要なCPU制御リソースにアクセスする権限は、リソース毎またはアプリケーション毎に許可することが可能である。そのようなシステムは、マルチユーザオペレーティングシステムをサポートするためにセグメント化されたメモリシステムを使用し、仮想アドレス指定の形態についてのサポートを提供するとともに上述したユーザ/特権の分離に類似の、しかし、よりきめ細かい権限階層を実装する。そのようなコンピュータアーキテクチャの説明は、デジタルイクイップメント社のHenry M Levyによる“Capability-Based Computer Systems”(1984年)に見出すことができる。
メモリアクセス制御回路による使用のためにアクセス制御データをプログラムすることができる柔軟性は、ハードウェアが、アクセス制御データの必要なプログラミングに従う各種の異なるソフトウェアとともに使用されることを可能とするので、望ましい。しかし、そのようなシステム内の重大な脆弱さは、所定のメモリアドレスへの望ましくないアクセスを与えるようにアクセス制御データを変更する権限のないコードである。特権モードで動作するとき、システムの全ての部分へのアクセスが通常は可能である。それは、ユーザモードにおいて、特権モードのコードによって提供される特権モードにおけるサービスについての呼び出しのために必要であり得る。特権モードへのエントリは、例外ベクタによるものであり、厳重に制御される。
上記課題に取り組む1つの方法は、英国ケンブリッジのARM社のいくつかのプロセッサによって提供されるトラストゾーン(TrustZone)機能(これは特権の特別の階層と考えることができる)のようなメカニズムを提供することである。これらのプロセッサは、動作のセキュア状態を提供し、セキュア状態の中で発生する動作へのメモリアクセス制御データを変更する権限を制限し、そして、セキュア状態への進入および退出を行うことができる方法とともに、セキュア状態で動作することができるコードを厳しく制御することができる。そのようなメカニズムは高度のセキュリティを提供することができるが、典型的に、ソフトウェアコードが動作の非セキュア状態の多数の異なる形態を適切に制御する権限を有するように、セキュア状態において動作する適切なソフトウェアコードを書くことにかなりの量の投資を必要とする。さらに、セキュア状態で実行するコードがより大きく、より複雑に、より権限が大きくなるに連れて、それは一般にそれ自身、セキュリティの問題に、より脆弱にもなる。一般原則として、小さく簡単なコードはより安全であり、コードの複雑さが増加するに連れて無意識に導入されるセキュリティの脆弱さを含むことがより少ない。
一態様から見て、本発明は、データを処理するための装置を提供し、前記装置は、
メモリアドレス空間内の値を有するメモリアドレスを用いてアドレス指定可能なメモリを具備し、前記メモリアドレス空間は複数のドメインを有し、ドメインはメモリアドレスの集合を含み、各メモリアドレスは少なくとも1つのドメインに属し、
前記メモリに結合され、それぞれのメモリアドレスと対応付けされた一連のプログラム命令に応答してデータ処理動作を実行する処理回路と、
前記メモリおよび前記処理回路のうち少なくとも1つに結合され、前記メモリアドレス空間の異なる領域についてのアクセス制御データに応答して前記処理回路が所定のメモリアドレスをアクセスできるか否かを制御するメモリアクセス制御回路と、
前記処理回路に結合され、処理される命令のメモリアドレスが前記複数のドメインのいずれと対応付けされるかに応答して前記命令が前記アクセス制御データを変更できるか否かを制御するドメイン制御回路と、
をさらに具備する。
本発明は、アクセス制御データに応答してメモリアクセス制御回路の使用を継続するが、当該アクセス制御データの変更を要求する命令が記憶されるドメイン(ドメインは連続または不連続のメモリアドレスの集合である)に応じて、アクセス制御データを変更する権限を制限することによって、過度の付加的なオーバーヘッドおよび再プログラミング(例えば、コードを区分し、特定目的のコードを書き、セキュア状態のコードを書く、等)なしで全体のセキュリティの向上が達成できることを認識している。アクセス制御データを変更可能であることが正規に意図されている、実行される全体のソフトウェア内の位置は比較的限定され、従って、ドメイン制御回路は、アクセス制御データを変更する権限を、これらの比較的小さい領域内から実行するコードに制限するように構成することができる。一例として、システム設計者は、命令がアクセス制御データの変更の要求を実行するシステム内の唯一の正規の位置はオペレーティングシステムカーネルコード内からであることを保証することが可能であり得る。従って、システム内の他の場所に記憶された権限のないソフトウェアは、ドメイン制御回路によってアクセス制御データを変更することが防止され、従って、メモリアクセス制御回路は、正規のアクセス制御データに基づいて適切な保護を提供し続けることができる。
メモリアクセス制御回路は、例えば、特定のプログラム命令が実行しているメモリ位置を含む、各種のシステム状態パラメータに応じて、所定のメモリアドレスへのアクセスの制御において各種の異なる方法で動作することができるが、本技術は、システムの現在の動作モードに応じてアクセス権限を指定するアクセス制御データを用いて複数のモードで動作する、例えば、特権モード処理にのみあるメモリ位置へのアクセスを提供し、ユーザモード処理にそのようなアクセスを拒否するシステムによく適合している。
アクセス制御データに応じて提供されるアクセスのレベルは変化し、アクセス不可、全てのアクセス、他のパラメータによって制御される(例えば、処理モードに関するパラメータによって制御される)アクセスのように、複数のレベルを含むことができる。
また、アクセス制御データは、あるドメイン内からある命令、例えば、非セキュア状態からセキュア状態への切り替えの一部として使用することができる種類の(監視呼び出し命令のような)ソフトウェア割り込み命令を実行することができるか否かを制御するために使用することができる。
本技術は、単に物理的にマッピングされるメモリアドレス空間を利用するシステム内で使用することができるが、本技術は、仮想メモリアドレス空間内のドメインである複数のドメインとともに仮想メモリアドレス空間を利用するシステムによく適合しており、メモリ管理回路は、アクセス制御データである変換テーブルデータを使用して仮想メモリアドレスから物理メモリアドレスにマッピングするために使用される。上述したドメイン制御回路を使用して変換テーブルデータを再プログラムする権限を保護することは、システムのセキュリティにかなりの向上を与え、既存のコードに比較的少ない変更を要求し、セキュリティのレベルが減少するが、下位互換性を可能とする。上述した変換テーブルデータは、変換テーブルポインタによって指定される位置において記憶することが可能であり、当該変換テーブルポインタへのアクセスは、ドメイン制御回路によって制御される。一例として、変換テーブルデータはセキュアドメイン内に記憶することが可能であり、不正なコードの権限が、他の場所に記憶される代替の変換テーブルデータを単に指し示し、当該代替の変換テーブルデータがあるメモリアドレスへの権限のないアクセスを与えることを防止することによって、セキュリティの破壊を防止することが望ましい。
ドメインが、他の権限とともにアクセス制御データを変更する権限に関して固定された権限を有することは可能であるが、これらの権限がプログラム可能であるときシステムの柔軟性は向上する。従って、各ドメインについてのプログラム可能な権限は、主要な制御回路が、当該ドメイン内から実行するコードがアクセス制御データを変更することを許可するまたは許可しない方法を制御する1つまたは複数の権限指定パラメータを含むことができる。
ドメイン毎に与えることができるさらなるプログラム可能な権限は、ドメイン内のプログラム命令が、プログラム可能な権限それ自身を変更する権限である。この方法において、全体としてシステムについてのプログラム可能な権限を安全な方法で設定することができるドメインにブートし、そして、それら自身へのそれらの権限を変更する権限を制限するようにシステムを構成することができる。上述した技術に従ってアクセス制御データを変更することが許可される信頼されたソフトウェアの一例は、オペレーティングシステムのカーネル部分である。そのようなカーネル部分は、アクセス制御データを変更する権限を有するドメイン内に記憶することができるが、数が多数で大きさが大きいオペレーティングシステムの他の部分は、アクセス制御データを変更することが許可されているドメイン内に記憶されない。従って、アクセス制御データを変更することが可能なコードを検証および制御する必要性は、オペレーティングシステムのカーネル部分の検証および制御に制限することができ、その部分は比較的安定し小さい。オペレーティングシステムの他の部分の大きく比較的頻繁に変動する特性は、主要な制御回路によって提供されるセキュリティ基準を弱めるとは限らない。
上記の場合において、アプリケーションプログラムがアクセス制御データを変更する通常のプログラミング習慣ではないが、典型的に、アクセス制御データを変更することが許可されていないドメイン内にアプリケーションプログラムが記憶されることが理解される。これは、オペレーティングシステムのより正しい責任である。
オペレーティングシステムのカーネルの完全性は、カーネルへのアクセスを有するメモリ領域内に記憶される呼び出し転送プログラムを介して行われる代わりに、アプリケーションプログラムがカーネルそれ自身を直接に読み出し、そのような呼び出しを用いてカーネルそれ自身への呼び出しを行う権利を有さないように、アクセス制御データを配置することによって向上させることができる。そのような呼び出し転送プログラムは比較的小さく、従って、安全に書き、権限のない書き替えを検査することが比較的容易である。
他の実施形態によれば、よい品質の権限のない複製が行われることを可能とする復号されたソース著作権素材のような、保護を必要とすると考えられるデータは、非セキュアオペレーティングシステム内から、または、信頼された領域それ自身の中から実行する信頼された伸長されたコードのような非セキュア状態内の信頼されたソフトウェアによって操作することができるようにメモリの信頼された領域に書き込むことが可能である。従って、階層化されたセキュリティのレベルを達成することが可能である。
もう1つの態様から見て、本発明は、データを処理する方法を提供し、前記方法は、
メモリアドレス空間内の値を有するメモリアドレスを用いてアドレス指定可能なメモリ内にプログラム命令を記憶するステップを有し、前記メモリアドレス空間は複数のドメインを有し、ドメインはメモリアドレスの集合を含み、各メモリアドレスは少なくとも1つのドメインに属し、
それぞれのメモリアドレスと対応付けされた一連のプログラム命令に応答してデータ処理動作を実行するステップと、
前記メモリアドレス空間の異なる領域についてのアクセス制御データに応答して所定のメモリアドレスをアクセスできるか否かを制御するステップと、
処理される命令のメモリアドレスが前記複数のドメインのいずれと対応付けされるかに応答して前記命令が前記アクセス制御データを変更できるか否かを制御するステップと、
をさらに有する。
さらなる態様から見て、本発明は、上述した技術に従って実行するようにコンピュータを制御するためのコンピュータプログラムを記憶するコンピュータプログラム記憶媒体を提供する。
本発明の上記および他の目的、特徴、効果は、添付図面とともに読まれるべき、続く実施形態の詳細な説明から明らかになる。
図1は、複数のメモリドメインに分割された仮想メモリアドレス空間を表わし、各メモリドメインは、対応付けされたドメイン指示子(domain specifier)を有する。これらのドメインは変動するサイズを有するこができ、連続または不連続とすることが可能であることが分かる。また、その仮想メモリアドレス空間の特定の領域が、特権モードのプロセスによってのみアクセス可能であるか、または、ユーザモードまたは特権モードの両方のプロセスによってアクセス可能であるかを示す、仮想メモリアドレスと対応付けされたアクセス制御データパラメータが表わされている(Pは特権モードのみ、Uは特権モードまたはユーザモード)。表わされているように、仮想メモリアドレス空間内の様々なメモリアドレスは、物理アドレス空間内の物理アドレスにマッピングされる。この技術分野の当業者によく知られているように、幅広く多様なマッピングが可能である。メモリアドレス空間それ自身の中に記憶され、変換テーブルポインタレジスタ内に記憶された変換テーブルポインタによって指し示される変換テーブルデータ(ページテーブルデータ)に応じて、仮想から物理へのマッピングが実行される。また、そのような変換テーブルデータに従って動作し、(特権のみ、特権/ユーザデータのような)アクセス制御データを個々のメモリ領域と対応付けるために、メモリ管理ユニットを設けることが可能である。ドメイン指示子は、英国ケンブリッジのARM社によって提供されているARMアーキテクチャリファレンスマニュアルに説明されているARMプロセッサアーキテクチャに従って動作するプロセッサによって提供される形態のドメイン指示子であり得る。本技術の目的とは異なる他の目的のために利用する方法で、仮想メモリアドレス空間内のメモリアドレスの異なる集合の間で識別する手段として、既にこれらのドメイン指示子(例えば、16個の異なるドメイン指示子)が設けられている。これらのドメイン指示子は本技術のための再使用することができる。
図2は、メモリ6に結合されたプロセッサコア4を有するデータ処理システム2を表わす。メモリ6は、データおよび命令の両方を記憶する、物理的にアドレス指定されるメモリアドレス空間を提供する。プロセッサコア4は、仮想メモリアドレス空間を利用するプログラム命令を実行し、プロセッサコア4内のMMU(メモリ管理ユニット)8は、仮想アドレスと物理アドレスとの間のマッピングの処理を制御する役割を果たす。レジスタバンク10、乗算器12、シフタ14、加算器16を含むデータ経路を利用するプログラム命令に応答してデータ処理動作が実行される。これらのデータ経路要素10、12、14、16は、命令デコーダ18によって生成される制御信号の制御の下で動作し、そして、命令デコーダ18は命令(Instruction(I))パイプライン20内の命令に応答する。メモリ6から命令を取得する命令取り込みユニット22によって命令パイプライン20に命令が供給される。データ処理システム2を構成定義するために使用される各種の構成定義レジスタ26を含む構成定義コプロセッサCP15・24が設けられている。これらの構成定義レジスタ26は、命令取り込みユニット22を介してメモリ6から取り込まれたコプロセッサ伝達命令を使用して、書き込みおよび読み出しすることが可能である。そのような構成定義レジスタ26を書き込みおよび読み出しする権限は、ドメインアクセス制御回路によって制限される。ドメインアクセス制御回路は、メモリ管理ユニット8から読み出される、構成定義レジスタ26の変更を要求するプログラム命令が取り込まれたアドレスのドメインに応答する。この情報は、命令パイプライン20内の当該命令とともに、実行されるポイントに当該命令が到達するまで、ドメイン指示子として渡される。構成定義レジスタ26は、後述するメモリ内の異なるドメインの各々と対応付けされた権限を指定するプログラム可能な権限レジスタを含む。
ドメイン番号は、取り込まれた命令の仮想アドレスのためにMMU8によって使用されるセクション記述子から導き出される。概念的には、CP15・24に存在する適切な構成定義レジスタ(ドメイン権限記述子レジスタ)26を探索することによってそのドメインに与えられた権限を取得するためにドメイン番号が使用される。命令、取り込まれたドメイン、そのドメインに与えられた権限の記述が、デコーダ18に(直接または間接に)与えられ、デコーダ18は、取り込まれた命令が実行を許されているか、または、例外を生成すべきかを決定し、例えば、命令が権限を持たないCP15レジスタに書き込みを試みるならば、例外が生成されるべきである。
ある実施形態において、ドメイン番号それ自身は、命令デコーダ18に送信される必要はなく、特定のドメインに権限が割り当てられるのみである。しかし、コードの局所性の特性を考慮すると、ある実施形態は、ドメインの権限のローカルコピーを“キャッシュ”し、新たなドメインの権限が取り込まれないならば、取り込まれた命令の実際のドメイン番号がキャッシュされたコピーのドメイン番号と一致するか否かを確認する状態機械を実現することが可能である。この構成は、ある設計が実行することができる最大周波数(maximum frequency)を向上させるために役立ち得る。
また、命令パイプライン20と結合された命令取り込みユニット22およびメモリ管理ユニット8は、命令が実行されるドメイン間で変更がいつ行われたかを示し、そのような遷移のための管理が実行されたものとして示されたならば、新たなドメイン内の第1命令(またはそれへの固定された関係における命令)が許容命令(permitted instruction)(例えば、許容命令の集合の一要素)であることを検査する役割を果たす命令アクセス制御回路である。命令アクセス制御回路以外のデータ処理システム2内の要素についてノーオペレーション命令に対応する符号化を有するようにこれらの許容命令を選択することができる。ドメイン制御回路は、変換テーブルへのポインタを含む構成定義レジスタ26へのアクセスを制御することによって、メモリ管理ユニット8によって利用されるアクセス制御データへの変更を制限するための手段を提供する。従って、あるメモリ領域への権限のないアクセスを与える新たな変換テーブルを指し示す変換テーブルデータポインタの再プログラミングに起因する、メモリ管理ユニット8によって与えられるセキュリティを破壊する権限のない試みを阻止することができる。この技術分野の当業者は、図2に表わされているデータ処理システム2は典型的に多くのさらなる回路要素を含むことを理解するが、明瞭にする目的のためにそれらは図2から省略され、本技術の理解に必要でない。
図3は、命令アクセス制御回路の動作を表わすフロー図である。ステップ28において、処理は、次の命令が取り込み/実行されることを要求されるまで待つ。ステップ28において次の命令が要求されると、ステップ30において、メモリ6から次の命令が取り込まれ、メモリ管理ユニット8から当該次の命令のドメインが読み出される。ステップ32は、次の命令のドメインが前の命令(または、次の命令に先行する、ある固定のまたはプログラム可能な位置における命令)のドメインと同一か否かを判定する。ドメインが同一であり、変更されていないならば、処理はステップ34に進み、さらなる処理のために次の命令が渡される。しかし、ステップ32における判定が、ドメインが変更された、ならば、処理はステップ36に進む。
ステップ36は、次の命令のドメインと前の命令のドメインから、当該ドメイン間の遷移が、ターゲット命令が許容ターゲット命令(permitted target instruction)であることを確認する制御を必要とするか否かを判定する。どのドメイン間の遷移が管理されるかの選択は、各ドメインと対応付けされ、かつ、各ドメインについて他のドメインへのドメイン遷移のいずれが許容分岐ターゲット命令検査を必要とするか、または、必要としないかを示すプログラム可能な権限レジスタを使用して行うことができる。ステップ36における判定が、ドメイン遷移が分岐ターゲット命令検査を生じさせるものでないならば、処理はステップ38に進み、(ドメインの変更が発生したことを反映するために)前のドメインとして記憶されたドメインの値が更新され、そして、処理はステップ34に進み、上述したようにさらなる処理に次の命令を渡す。
ステップ36における判定が、ドメイン遷移が分岐ターゲット命令検査が実行されるべきものであるならば、処理はステップ40に進み、次の命令が、当該次の命令についてアクティブである命令セットについての許容分岐ターゲットであるか否かに関して判定が行われる。図2に記載されたデータ処理システム2は、複数命令セット(例えば、ARMプロセッサの場合におけるARMおよびThumb命令セット)をサポートすることが可能であり、これらの命令セットの各々は、1つまたは複数の許容分岐ターゲット命令のそれ自身の集合を有する。異なるターゲット命令セットについての許容分岐ターゲット命令は異なる符号化を有する。これは、分岐ターゲットポイントにおいてどの命令セットがアクティブにされるかに関してどのような不明確さも防止する。また、ある分岐は、分岐命令の一部として命令セット切り替え(例えば、ARM/Thumb BLX命令)を含むことが可能であり、許容分岐ターゲット命令が検査されるアクティブな命令セットは、分岐動作を伴う任意の命令セット切り替えを考慮する当該分岐ターゲットについて、どの命令セットがアクティブになるかに基づく。ステップ40における判定が、次の命令が許容分岐ターゲット命令でないならば、処理はステップ42に進み、アクセス違反応答が引き起こされる。このアクセス違反応答は、特定のアクセス違反応答コードの実行、ドメインがさらなる分岐ターゲット検査のために使用されるときの他のドメイン違反と共有するドメイン違反コードの実行、(必要ならば適切な例外コードを伴う)メモリアボート、または、未定義の命令例外を含む各種の異なる形態をとり得る。多くの他の種類の可能なアクセス違反応答も存在し、これらはシステム設計者によって選択することが可能である。特に深刻な応答はシステムをリセットすることである。
ステップ40における判定が、次の命令が許容分岐ターゲット命令であったならば、処理はステップ44に進み、前の命令が許容分岐命令であったか否かに関して判定が行われる。この方法において、許容命令からの、および、許容命令への、新たなドメインへの適切なエントリを検証するために、分岐命令および分岐ターゲット命令の両方が検査されることができる。ステップ44において実行される分岐命令検査のステップは望むならば省略可能であることが理解される。ステップ44において実行される分岐命令検査が、前の命令が許容分岐命令でないことを示すならば、処理は上述したステップ42に進む。前の命令が許容分岐命令であるならば、処理は上述したステップ38に進み、将来の比較において前の命令についてのドメインの値として使用される値が更新され、次の命令がさらなる処理のために渡される。
図4は、アプリケーションプログラム46とオペレーティングシステムのカーネル48との間で呼び出し転送プログラムを使用するシステムを表わす。アクセス制御データ51を含むメモリ管理ユニットデータは、メモリアドレス空間内に記憶され、このアクセス制御データへのアクセスは、カーネル48にのみ許可されている。これはアクセス制御データ51を効果的にロックし、アプリケーションコード46によって、または、オペレーティングシステムコード本体50によってさえ変更することができない。アプリケーションコードが実行されるときにメモリアボートが発生するならば、アクセス制御データ51を通してページテーブルウォークが実行されることを要求するメモリアボートについての例外処理は、物理アドレス空間を基にして、従ってアプリケーションコード46がアクセス制御データ51へのアクセスを有することを要求することなく、生成されるアドレスを使用して実行される。
また、アクセス制御データの構成部分は、制御レジスタおよびポインタ54を含むデータ要素52である。これら両方は、他のアクセス制御パラメータ(例えば、MMUイネーブル/ディスエーブル、変換テーブルポインタ、エンディアン構成定義、ドメインの権限制御レジスタへのアクセス、現在選択されている権限制御レジスタへのアクセス、等)の制御および表示とともに、変換テーブルデータ51を指し示す。アクセス制御データ52を変更する権限は、この例において、図4に表わされているドメイン“0”に予約されており、これはオペレーティングシステムカーネル48および変換テーブルデータ51を含む。ドメイン権限を変更する権限は、アクセス制御データ52の一部を構成するので、オペレーティングシステムカーネルに予約されている。これは、権限のないアプリケーションコードまたはオペレーティングシステム本体50の一部を構成するコードの権限のない部分による破壊への耐性を向上させる。
上述したように、アプリケーションコード46は、カーネル48への呼び出しを行うことを望み得る。カーネル48のセキュリティを向上させるために、アプリケーション46を実行しているドメイン(すなわち、ドメイン3)からカーネル48へのアクセス(読み出しアクセスさえも)を提供しないように、アクセス制御データを構成定義することが可能である。従って、アプリケーション46からカーネル48への直接の呼び出しを行うどのような試みも、ユーザモードのアプリケーションプログラム46によるアクセスについて、そのメモリ領域は単にマッピングされないか、または、拒否されるので、結果としてメモリアボートとなる。従って、アプリケーションコード46がカーネル48への呼び出しを行うことを望むとき、まず呼び出し転送プログラム56への呼び出しを行うことによって行う。この呼び出し転送プログラムは、アプリケーションコード46に認識でき、別個のドメイン(この例においてドメイン2)に存在する。ドメイン2はカーネルが存在するドメイン0へのアクセスを有し、従って、呼び出し転送をカーネル48に渡し、カーネル48の所望の機能をアクセスすることができる。呼び出し転送プログラム56は呼び出し転送のこの機能に専用である比較的簡単な構成を有するので、小さく、かつ、安全で改変されていないものとして容易に検証できる。従って、カーネル48の動作の詳細は隠すことができ、カーネルへのアクセスは許可されたエントリポイントを介するように制御することができ、上記のセキュリティ向上を制御するメカニズムは、簡単、かつ、それ自身の完全性について容易に検査される形態とすることができる。
図5は、上述した呼び出し転送処理を表わすフロー図である。本技術は、上述した分岐ターゲット命令制御に代えて、または、それに加えて使用することができる。ステップ58において、カーネル48を呼び出すことが必要となるまで処理は待機する。ステップ60において、呼び出し転送プログラム56への呼び出しが行われる。ステップ61は、呼び出し転送コードの権限を使用してアクセス制御データを書き込み、カーネルコードが認識可能となるようにこのデータを変更する。ステップ62において、呼び出し転送プログラム56は、アプリケーションコード46に代わってカーネル48への呼び出しを行う。転送を戻すときカーネルは呼び出し転送コードに渡し、ユーザコードにジャンプして戻る前に呼び出し転送コードはカーネルコードを認識できないようにする。
図6は、セキュア状態で動作するセキュアオペレーティングシステム64および非セキュア状態で動作する非セキュアオペレーティングシステム66、68を含むオペレーティングシステムを表わす図である。セキュア状態および非セキュア状態は、英国ケンブリッジのARM社によって製造されたTrustZoneアーキテクチャおよびプロセッサメカニズムに従って提供される。セキュアおよび非セキュアな物理アドレス空間の各々について、仮想メモリアドレス空間70は複数のドメインに分割される。ドメイン0は非セキュア(non-secure(NS))オペレーティングシステムのカーネル66および信頼されたメモリ領域72を含む。非セキュアオペレーティングシステムのカーネル66は、上述したアクセス制御データ74を制御する役割を果たす。このアクセス制御データ74は、どのメモリ領域が、どの特権レベルによって、および、どのドメインによってアクセスすることができるかを制御する。信頼された領域72へのアクセスは、非セキュアカーネル66に制限され、これらは共有ドメイン、すなわち、ドメイン0を共有する。非セキュアオペレーティングシステム本体68は、伸長されたデータを記憶するために使用されるメモリ領域76とともにドメイン1に存在する。領域76におけるこの伸長されたデータは、オペレーティングシステム本体68によってアクセス可能であるが、ドメイン2内に記憶されるアプリケーションプログラム78、80によってアクセス可能でない。
図6のシステムは、階層化されたセキュリティレベルを提供することができる。暗号鍵に対応する最も安全なデータは、セキュアオペレーティングシステム64によってのみアクセス可能であるように制限され、安全な物理アドレス空間に存在する。セキュアオペレーティングシステム64は、要求されたデータを復号するためにこれらの暗号鍵を使用し、この復号され圧縮されたデータを、非セキュアオペレーティングシステム66に属する信頼された領域72に書き込む。この復号され圧縮されたデータは暗号鍵ほど特性において重要ではないが、それにもかかわらず、保護することが望まれる資産を表わし、対応付けされたセキュリティレベルを有する。従って、信頼された領域72は、最も高いセキュリティレベルを有するドメイン0内で実行するプログラム命令にのみアクセス可能である。これらの信頼されたプログラムは、カーネル66、および、信頼された領域72それ自身の中に記憶されるMPEGデコーダプログラム82を含む。MPEGデコーダプログラム82は、復号され圧縮されたデータを伸長し、これを伸長されたデータ領域76に書き込む。この伸長されたデータ領域76は、アプリケーションプログラム78、80によってアクセス可能でないが、非セキュアオペレーティングシステム本体68によってアクセス可能である。従って、非セキュアオペレーティングシステム本体68と結合された再生メカニズムは、例えば、伸長されたデータを再生し、それを画面に描画するために使用することができる。
セキュアオペレーティングシステム64が復号されたデータを信頼された領域72に書き込むに先立って、カーネル66、および、(後述するドメイン権限レジスタ内に記憶される)ドメイン権限データ84において指定されるドメインの構成定義について完全性検査を実行することができる。この完全性検査は、非セキュア状態で実行するソフトウェアのどれが信頼された領域72にアクセスすることができるかを制御するアクセス制御データにアクセスする権限がカーネル66にのみ与えられていることを確認することを含むドメイン権限データ84についての構成定義の検査とともに、比較的小さなカーネル66について実行されるチェックサム、ハッシュ、または、署名検査の動作の形態とすることが可能である。カーネル66が検証され、かつ、カーネル66のみがアクセス制御データを変更するために必要な権限を有するならば、信頼された領域72が安全であることの合理的な信頼度を有することができる。従って、セキュアオペレーティングシステム64は、要求される処理のいくつかを非セキュアドメインに譲り、従って、セキュアオペレーティングシステムがより小さく、従って、より安全とすることを可能とする。
図7は、図6のシステムの動作を表わすフロー図である。ステップ86において、安全な復号化が要求されているか判定される。ステップ88において、セキュア状態への切り替えが行われ、セキュアオペレーティングシステムが実行される。ステップ90において、セキュアオペレーティングシステムは、非セキュアオペレーティングシステムカーネル66を完全性検査する。この検査に失敗すると、処理は終了する。この検査に合格すると、処理はステップ92に進み、非セキュアオペレーティングシステムカーネル66を記憶するドメインがアクセス制御データ74を変更することができる唯一のドメインであるかを確認するために、ドメイン権限データ84の判定が行われる。この検査に失敗すると、処理は終了する。この検査に合格すると、処理はステップ94に進み、信頼されたソフトウェア(例えば、非セキュアオペレーティングシステム66およびMPEGデコーダ82)のみが信頼された領域72にアクセスすることができることをアクセス制御データ74が示すか判定が行われる。この検査に失敗すると、処理は終了する。この検査に合格すると、処理はステップ96に進み、セキュアオペレーティングシステム64によって暗号鍵が読み出され(または、適切な暗号エンジンに供給され)、信頼された領域72に書き込まれる復号され圧縮されたデータを生成するために、復号が実行される。そして、ステップ98は、非セキュア状態に切り替え、非セキュアオペレーティングシステムが実行される。ステップ100は、信頼された領域72において実行する信頼されたソフトウェア82(MPEGデコーダ)を使用して、復号され圧縮されたデータを伸長し、伸長されたデータを、非セキュアオペレーティングシステム本体68によってアクセス可能な伸長されたデータ領域76に書き込む。そして、ステップ102は、非セキュアオペレーティングシステム本体68内のプログラムコードを使用して、伸長されたデータを再生し、それを例えばコンピュータ画面に描画する。
図8は、ドメイン権限レジスタ(domain capability register(DCR))104およびドメイン権限レジスタ選択レジスタ(domain capability register select register(DCRS))106を表わす。メモリアドレス空間(仮想または物理)が分割され得る16個の異なるドメインの各々について設けられる16個のドメイン権限レジスタ104が存在する。各々のドメインについてのドメインアクセスデータ108は、15個の他のドメインの各々に関して、当該他のドメインへのアクセスが自由であるか否か、管理されているか、または、許可されていないか、を示す。管理されたアクセスは、当該制御レジスタ104に対応する現在のドメインからそのドメインへの遷移が、許容分岐ターゲット命令へのものであるか、許容分岐命令からのものであるかを確認するために、上述した命令アクセス検査を含む。また、主要な制御レジスタ104内の各種フラグは、MMUイネーブル/ディスエーブル、変換テーブルポインタ、レジスタアクセス権限、エンディアンを変更する権限、ドメイン権限レジスタ104それ自身またはドメイン権限レジスタ選択レジスタ106を変更する権限のような、一般メモリ管理に関する設定を指定する。また、ドメイン権限レジスタ104は、例えば、そのドメイン内で実行するプログラム命令が、ベクタテーブルポインタを変更することができるか否か、例外および他の動作と対応付けされた特定の応答をスイッチオンまたはオフすることができるか否かを制御する例外制御フラグを含む。ドメイン権限レジスタ104内のドメイン毎に制御することが望まれるシステム管理の項目に対応するさらなるフラグは、そのドメイン内でキャッシュ管理がターンオンまたはオフすることができるか否かのような権限を含むことができる。1つのフラグ、Sは、セキュア状態と非セキュア状態との間で変更するために使用されるソフトウェア割り込みであるSMC命令を実行する権限を制御する。
ドメイン権限レジスタ選択レジスタ106は、該当するドメインがそのドメイン権限レジスタ(フラグMを参照)を読み出しおよび書き込みするために適切な権限を有するならば、読み出しおよび書き込みのために現在マッピングされたドメイン権限レジスタ104の番号を指定するドメイン番号フィールド110を含む。
本発明の実施形態が添付図面を参照して詳細に説明されたが、本発明はそれらの詳細な実施形態に限定されず、特許請求の範囲に規定された本発明の範囲および思想から逸脱することなく、この技術分野の当業者によって各種の変更および変形が生み出され得ることを理解すべきである。
仮想メモリアドレス空間と物理メモリアドレス空間との間の関係を表わす図である。 メモリアクセス制御回路、命令アクセス制御回路、ドメインアクセス制御回路を組み込んだデータ処理システムを表わす図である。 1つのドメインからもう1つのドメインへ移動するときに許容分岐ターゲット命令について検査する動作を表わすフロー図である。 アプリケーション呼び出しをオペレーティングシステムのカーネルに転送するために呼び出し転送プログラムが使用されるシステムを表わす図である。 呼び出し転送コードの使用を表わすフロー図である。 セキュアオペレーディングシステムがデータを書き込むことができ、非セキュア状態で動作するとき信頼されたプログラムがデータを読み出すことができるメモリ空間の信頼された領域の使用を表わす図である。 図6に表わされたシステムを使用して実行される一連の処理動作を表わすフロー図である。 メモリアドレス空間内の異なるドメイン内に対応付けされたプログラム可能な権限データを表わす図である。
符号の説明
2 データ処理システム
4 プロセッサコア
6 メモリ
8 メモリ管理ユニット
10 レジスタバンク
12 乗算器
14 シフタ
16 加算器
18 命令デコーダ
20 命令パイプライン
22 命令取り込みユニット
24 構成定義コプロセッサCP15
26 構成定義レジスタ

Claims (41)

  1. データを処理するための装置であって、
    メモリアドレス空間内の値を有するメモリアドレスを用いてアドレス指定可能なメモリを具備し、前記メモリアドレス空間は複数のドメインを有し、ドメインはメモリアドレスの集合を含み、各メモリアドレスは少なくとも1つのドメインに属し、
    前記メモリに結合され、それぞれのメモリアドレスと対応付けされた一連のプログラム命令に応答してデータ処理動作を実行する処理回路と、
    前記メモリおよび前記処理回路のうち少なくとも1つに結合され、前記メモリアドレス空間の異なる領域についてのアクセス制御データに応答して前記処理回路が所定のメモリアドレスをアクセスできるか否かを制御するメモリアクセス制御回路と、
    前記処理回路に結合され、処理される命令のメモリアドレスが前記複数のドメインのいずれと対応付けされるかに応答して前記命令が前記アクセス制御データを変更できるか否かを制御するドメイン制御回路と、
    をさらに具備する装置。
  2. 前記処理回路は、複数の動作モードの中から選択された現在の動作モードを有し、
    前記メモリアクセス制御回路は、さらに、アクセス制御データに応答して前記現在の動作モードに応じてアクセス権限を指定する請求項1に記載の装置。
  3. 前記複数のモードはユーザモードおよび特権モードを含む請求項2に記載の装置。
  4. 前記アクセス制御データは、処理される前記命令の現在のドメインに応じて前記処理回路が前記所定のメモリアドレスについて、
    アクセスを有さない、
    全てのアクセスを有する、
    他のパラメータによって制御されるアクセスを有する、
    のうちいずれの1つであるかを指定する請求項1に記載の装置。
  5. 前記アクセス制御データは、また、前記処理回路が少なくともいくつかの種類の命令を実行することを許可されているか否かを制御する請求項1に記載の装置。
  6. 前記メモリアドレス空間は、前記メモリと対応付けされた仮想メモリアドレス空間であり、
    前記複数のドメインは前記仮想メモリアドレス空間内のドメインであり、
    メモリ管理回路は、変換テーブルデータを使用して仮想メモリアドレスから物理メモリアドレスへマッピングし、
    前記変換テーブルデータはアクセス制御データである請求項1に記載の装置。
  7. 前記変換テーブルデータは、変換テーブルポインタ値レジスタ内に記憶される変換テーブルポインタ値によって指定される位置に記憶され、
    前記変換テーブルポインタ値は、前記メモリアクセス制御回路がアクセスを制御するアクセス制御データである請求項1に記載の装置。
  8. 前記複数のドメインは、それぞれ対応付けされたプログラム可能な権限を有する請求項1に記載の装置。
  9. 各ドメインについての前記プログラム可能な権限は、該ドメインが前記ドメイン制御回路によって前記アクセス制御データを変更することが許可されているか否かに関して前記ドメイン制御回路を制御する1つまたは複数の権限指定値を含む請求項8に記載の装置。
  10. 各ドメインについての前記プログラム可能な権限は、該ドメインと対応付けされたプログラム命令が前記複数のドメインについて前記プログラム可能な権限を変更することができるか否かを含む請求項8に記載の装置。
  11. 前記装置上で実行するオペレーティングシステムのカーネル部分は、前記アクセス制御データを変更することが許可されたドメイン内に記憶される請求項1に記載の装置。
  12. 前記オペレーティングシステムの残りの部分は、前記アクセス制御データを変更することが許可されていないドメイン内に記憶される請求項11に記載の装置。
  13. アプリケーションプログラムは、前記アクセス制御データを変更することが許可されていないドメイン内に記憶される請求項11に記載の装置。
  14. アプリケーションプログラムは、前記カーネルへの読み出しアクセスを有さないメモリ領域内に記憶され、
    前記アプリケーションプログラムは、前記カーネルへの読み出しアクセスを有するメモリ領域内に記憶される呼び出し転送プログラムを介して前記カーネルへの呼び出しを行う請求項11に記載の装置。
  15. セキュアオペレーティングシステムはセキュア状態において前記装置上で実行され、
    非セキュアオペレーティングシステムは非セキュア状態において前記装置上で実行される請求項1に記載の装置。
  16. 前記非セキュア状態において前記非セキュアオペレーティングシステムは、前記メモリアクセス制御回路が、信頼されたソフトウェアによってアクセスでき、かつ、信頼されていないソフトウェアによってアクセスできない前記メモリアドレス空間の信頼された領域を提供するように、前記アクセス制御データを書き込み、
    前記ドメイン制御回路は、前記非セキュアオペレーティングシステムを記憶するドメイン以外のドメイン内に記憶されるソフトウェアが前記アクセス制御データを変更することを防止する役割を果たし、従って、前記信頼された領域へのアクセスを信頼されていないソフトウェアに提供する請求項15に記載の装置。
  17. 前記セキュア状態において前記セキュアオペレーティングシステムは、前記メモリアドレス空間の前記信頼された領域にセキュアデータを書き込む請求項16に記載の装置。
  18. 前記信頼された領域に前記セキュアデータを書き込む前に、前記セキュアオペレーティングシステムは、前記非セキュアオペレーティングシステムを完全性検査し、かつ、前記非セキュアオペレーティングシステムを記憶する前記ドメインを用いて記憶されたソフトウェアが前記アクセス制御データを変更することのみ可能とするように前記ドメイン制御回路が構成されていることを検査する請求項17に記載の装置。
  19. 前記セキュアオペレーティングシステムは、前記非セキュアオペレーティングシステム上で、
    チックサム動作、
    ハッシュ動作、
    署名検査動作、
    のうち1つまたは複数を実行することによって前記非セキュアオペレーティングシステムを完全性検査する請求項18に記載の装置。
  20. 第1セキュリティレベルのセキュアデータは、前記セキュア状態で前記セキュアオペレーティングシステムによってのみアクセス可能であり、
    第2セキュリティレベルのセキュアデータは、前記非セキュア状態で前記信頼されたプログラムによってアクセス可能であるように前記セキュアオペレーティングシステムによって前記信頼された領域に書き込まれ、
    前記第2セキュリティレベルは前記第1セキュリティレベルよりセキュリティが低い請求項16に記載の装置。
  21. データを処理する方法であって、
    メモリアドレス空間内の値を有するメモリアドレスを用いてアドレス指定可能なメモリ内にプログラム命令を記憶するステップを有し、前記メモリアドレス空間は複数のドメインを有し、ドメインはメモリアドレスの集合を含み、各メモリアドレスは少なくとも1つのドメインに属し、
    それぞれのメモリアドレスと対応付けされた一連のプログラム命令に応答してデータ処理動作を実行するステップと、
    前記メモリアドレス空間の異なる領域についてのアクセス制御データに応答して所定のメモリアドレスをアクセスできるか否かを制御するステップと、
    処理される命令のメモリアドレスが前記複数のドメインのいずれと対応付けされるかに応答して前記命令が前記アクセス制御データを変更できるか否かを制御するステップと、
    をさらに有する方法。
  22. 複数の動作モードの中から現在の動作モードを選択するステップを有し、
    前記アクセス制御データは、さらに、前記現在の動作モードに応じてアクセス権限を指定する請求項21に記載の方法。
  23. 前記複数のモードはユーザモードおよび特権モードを含む請求項21に記載の方法。
  24. 前記アクセス制御データは、処理される前記命令の現在のドメインに応じて前記所定のメモリアドレスが、
    読み出しおよび書き込みアクセス、
    読み出しのみのアクセス、
    アクセス不可、
    のうちいずれの1つに従うかを指定する請求項21に記載の方法。
  25. 前記アクセス制御データは、また、前記処理回路が少なくともいくつかの種類の命令を実行することを許可されているか否かを制御する請求項21に記載の方法。
  26. 前記メモリアドレス空間は、前記メモリと対応付けされた仮想メモリアドレス空間であり、
    前記複数のドメインは前記仮想メモリアドレス空間内のドメインであり、
    仮想メモリアドレスは、変換テーブルデータを使用して物理メモリアドレスにマッピングされ、
    前記変換テーブルデータはアクセス制御データである請求項21に記載の方法。
  27. 前記変換テーブルデータは、変換テーブルポインタ値レジスタ内に記憶される変換テーブルポインタ値によって指定される位置に記憶され、
    前記変換テーブルポインタ値は、アクセスが制御されるアクセス制御データである請求項21に記載の方法。
  28. 前記複数のドメインは、それぞれ対応付けされたプログラム可能な権限を有する請求項21に記載の方法。
  29. 各ドメインについての前記プログラム可能な権限は、該ドメインが前記アクセス制御データを変更することが許可されているか否かの1つまたは複数の権限指定値を含む請求項28に記載の方法。
  30. 各ドメインについての前記プログラム可能な権限は、該ドメインと対応付けされたプログラム命令が前記複数のドメインについて前記プログラム可能な権限を変更することができるか否かを含む請求項28に記載の方法。
  31. オペレーティングシステムのカーネル部分は、前記アクセス制御データを変更することが許可されたドメイン内に記憶される請求項21に記載の方法。
  32. 前記オペレーティングシステムの残りの部分は、前記アクセス制御データを変更することが許可されていないドメイン内に記憶される請求項31に記載の方法。
  33. アプリケーションプログラムは、前記アクセス制御データを変更することが許可されていないドメイン内に記憶される請求項31に記載の方法。
  34. アプリケーションプログラムは、前記カーネルへの読み出しアクセスを有さないメモリ領域内に記憶され、
    前記アプリケーションプログラムは、前記カーネルへの読み出しアクセスを有するメモリ領域内に記憶される呼び出し転送プログラムを介して前記カーネルへの呼び出しを行う請求項31に記載の方法。
  35. セキュアオペレーティングシステムはセキュア状態において実行され、
    非セキュアオペレーティングシステムは非セキュア状態において実行される請求項21に記載の方法。
  36. 前記非セキュア状態において前記非セキュアオペレーティングシステムは、信頼されたソフトウェアによってアクセスでき、かつ、信頼されていないソフトウェアによってアクセスできない前記メモリアドレス空間の信頼された領域を提供するように、前記アクセス制御データを書き込み、
    前記非セキュアオペレーティングシステムを記憶するドメイン以外のドメイン内に記憶されるソフトウェアが前記アクセス制御データを変更することを防止し、従って、前記信頼された領域へのアクセスを信頼されていないソフトウェアに提供する請求項35に記載の方法。
  37. 前記セキュア状態において前記セキュアオペレーティングシステムは、前記メモリアドレス空間の前記信頼された領域にセキュアデータを書き込む請求項36に記載の方法。
  38. 前記信頼された領域に前記セキュアデータを書き込む前に、前記セキュアオペレーティングシステムは、前記非セキュアオペレーティングシステムを完全性検査し、かつ、前記非セキュアオペレーティングシステムを記憶する前記ドメインを用いて記憶されたソフトウェアが前記アクセス制御データを変更することのみ可能とする構成定義について検査する請求項37に記載の方法。
  39. 前記セキュアオペレーティングシステムは、前記非セキュアオペレーティングシステム上で
    チックサム動作、
    ハッシュ動作、
    署名検査動作、
    のうち1つまたは複数を実行することによって前記非セキュアオペレーティングシステムを完全性検査する請求項38に記載の方法。
  40. 第1セキュリティレベルのセキュアデータは、前記セキュア状態で前記セキュアオペレーティングシステムによってのみアクセス可能であり、
    第2セキュリティレベルのセキュアデータは、前記非セキュア状態で前記信頼されたプログラムによってアクセス可能であるように前記セキュアオペレーティングシステムによって前記信頼された領域に書き込まれ、
    前記第2セキュリティレベルは前記第1セキュリティレベルよりセキュリティが低い請求項36に記載の方法。
  41. 請求項21に記載の方法を実行するようにコンピュータを制御するためのコンピュータプログラムを記憶するコンピュータプログラム記憶媒体。
JP2008096483A 2007-04-03 2008-04-02 メモリドメインを基にしたデータ処理システム内のセキュリティ制御 Active JP4989543B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
GB0706504.8 2007-04-03
GB0706504A GB2448151B (en) 2007-04-03 2007-04-03 Memory domain based security control within data processing systems

Publications (2)

Publication Number Publication Date
JP2008257734A true JP2008257734A (ja) 2008-10-23
JP4989543B2 JP4989543B2 (ja) 2012-08-01

Family

ID=38050778

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008096483A Active JP4989543B2 (ja) 2007-04-03 2008-04-02 メモリドメインを基にしたデータ処理システム内のセキュリティ制御

Country Status (4)

Country Link
US (1) US7966466B2 (ja)
JP (1) JP4989543B2 (ja)
CN (1) CN101281506B (ja)
GB (1) GB2448151B (ja)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013533567A (ja) * 2010-08-11 2013-08-22 アーム・リミテッド メモリアクセス制御
JP2015060249A (ja) * 2013-09-17 2015-03-30 株式会社東芝 情報処理装置及びプログラム実行方法
US9032174B2 (en) 2012-03-15 2015-05-12 Fujitsu Limited Information processing apparatus for restricting access to memory area of first program from second program
JP2015530672A (ja) * 2012-10-01 2015-10-15 エイアールエム リミテッド 安全なドメイン及びより安全性の低いドメインを有するデータ処理装置における例外処理
JP2015534186A (ja) * 2012-10-01 2015-11-26 エイアールエム リミテッド 安全なドメインとより安全性の低いドメインの間で切り替えるときに安全ではないアクセスから安全なデータ及びプログラム・コードを保護するためのデータ処理装置及び方法
JP2020523680A (ja) * 2017-06-15 2020-08-06 エイアールエム リミテッド 命令セット内の変更を制御する装置及び方法

Families Citing this family (47)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2447154B (en) * 2005-10-04 2009-05-27 Nec Corp Information processing device, information processing method, and program
US8078817B2 (en) * 2008-02-27 2011-12-13 Lsi Corporation Method and system for secured drive level access for storage arrays
US8127131B2 (en) * 2008-04-10 2012-02-28 Telefonaktiebolaget Lm Ericsson (Publ) System and method for efficient security domain translation and data transfer
US8307353B2 (en) * 2008-08-12 2012-11-06 Oracle America, Inc. Cross-domain inlining in a system virtual machine
JP5582971B2 (ja) 2009-12-15 2014-09-03 キヤノン株式会社 メモリ保護方法および情報処理装置
US20120216281A1 (en) * 2011-02-22 2012-08-23 PCTEL Secure LLC Systems and Methods for Providing a Computing Device Having a Secure Operating System Kernel
CN102736983B (zh) * 2011-04-14 2016-05-25 上海华虹集成电路有限责任公司 控制智能卡flash空间大小的方法
US9712495B2 (en) * 2011-05-03 2017-07-18 International Business Machines Corporation Methods and systems for selective encryption and secured extent quota management for storage servers in cloud computing
GB2497736A (en) * 2011-12-16 2013-06-26 St Microelectronics Ltd Hardware monitor with context selector for selecting from multiple contexts
CN102592083B (zh) * 2011-12-27 2014-12-10 深圳国微技术有限公司 用于提高soc芯片系统安全的存储保护控制器及方法
US10210349B2 (en) * 2012-02-08 2019-02-19 Arm Limited Data processing apparatus and method using secure domain and less secure domain
GB2499287A (en) 2012-02-08 2013-08-14 Advanced Risc Mach Ltd Exception handling in data processing with different security domains
US9477834B2 (en) 2012-02-08 2016-10-25 Arm Limited Maintaining secure data isolated from non-secure access when switching between domains
US9202071B2 (en) 2012-02-08 2015-12-01 Arm Limited Exception handling in a data processing apparatus having a secure domain and a less secure domain
US9703950B2 (en) * 2012-03-30 2017-07-11 Irdeto B.V. Method and system for preventing and detecting security threats
KR101954733B1 (ko) 2012-10-26 2019-03-06 삼성전자주식회사 보안 콘텐츠를 처리하는 시스템 온 칩 및 그것을 포함하는 모바일 장치
JP5920595B2 (ja) * 2013-07-16 2016-05-18 横河電機株式会社 電子機器、オペレーティングシステム、アクセス管理方法
KR102126563B1 (ko) * 2013-08-13 2020-06-25 삼성전자주식회사 보안 확인을 위한 전자 장치 및 방법
FR3016456B1 (fr) * 2014-01-13 2017-06-23 Morpho Procede de saisie de donnees confidentielles sur un terminal
US11228427B2 (en) * 2014-02-11 2022-01-18 Ericsson Ab System and method for securing content keys delivered in manifest files
US9990505B2 (en) 2014-08-12 2018-06-05 Redwall Technologies, Llc Temporally isolating data accessed by a computing device
CN105787376A (zh) * 2014-12-26 2016-07-20 深圳市中兴微电子技术有限公司 一种数据安全存取方法和装置
US9537833B2 (en) 2014-12-31 2017-01-03 Google Inc. Secure host communications
US9547773B2 (en) 2014-12-31 2017-01-17 Google Inc. Secure event log management
US9760727B2 (en) * 2014-12-31 2017-09-12 Google Inc. Secure host interactions
GB2543520B (en) * 2015-10-20 2019-06-19 Advanced Risc Mach Ltd Memory access instructions
GB2544996B (en) * 2015-12-02 2017-12-06 Advanced Risc Mach Ltd An apparatus and method for managing bounded pointers
CN105354155A (zh) * 2015-12-03 2016-02-24 上海高性能集成电路设计中心 一种基于页表检查机制的存储器访问权限控制方法
US10409600B1 (en) 2016-01-25 2019-09-10 Apple Inc. Return-oriented programming (ROP)/jump oriented programming (JOP) attack protection
US10275365B1 (en) * 2016-03-21 2019-04-30 Apple Inc. Cryptographic signatures for capability-based addressing
US10671744B2 (en) * 2016-06-23 2020-06-02 Intel Corporation Lightweight trusted execution for internet-of-things devices
EP3264317B1 (en) * 2016-06-29 2019-11-20 Arm Ltd Permission control for contingent memory access program instruction
GB2563010B (en) * 2017-05-25 2019-12-25 Advanced Risc Mach Ltd An apparatus and method for managing a capability domain
DE112018003358T5 (de) * 2017-06-28 2020-03-12 Nvidia Corporation Speichertyp, der cache-fähig und dennoch durch spekulative anweisungen unzugänglich ist
US10872043B2 (en) * 2017-08-17 2020-12-22 Microchip Technology Incorporated Systems and methods for integrity checking of code or data in a mixed security system while preserving confidentiality
PL3820065T3 (pl) * 2018-07-06 2023-07-24 Beijing Xiaomi Mobile Software Co., Ltd. Sposób i urządzenie do przekazywania informacji
US11500665B2 (en) 2018-08-30 2022-11-15 Micron Technology, Inc. Dynamic configuration of a computer processor based on the presence of a hypervisor
US11182507B2 (en) 2018-08-30 2021-11-23 Micron Technology, Inc. Domain crossing in executing instructions in computer processors
US11481241B2 (en) 2018-08-30 2022-10-25 Micron Technology, Inc. Virtual machine register in a computer processor
US10915465B2 (en) * 2018-08-30 2021-02-09 Micron Technology, Inc. Memory configured to store predefined set of domain registers for instructions being executed in computer processors
US10942863B2 (en) 2018-08-30 2021-03-09 Micron Technology, Inc. Security configurations in page table entries for execution domains using a sandbox application operation
US10915457B2 (en) 2018-08-30 2021-02-09 Micron Technology, Inc. Memory access control through permissions specified in page table entries for execution domains
US11914726B2 (en) 2018-08-30 2024-02-27 Micron Technology, Inc. Access control for processor registers based on execution domains
GB2589897B (en) * 2019-12-11 2022-03-23 Advanced Risc Mach Ltd Domain transition disable configuration parameter
GB2591490B (en) * 2020-01-30 2022-03-02 Advanced Risc Mach Ltd An apparatus and method for controlling access to a set of memory mapped control registers
CN112329019A (zh) * 2020-11-02 2021-02-05 歌尔科技有限公司 基于TrustZone的编程方法、终端设备及存储介质
TWI768829B (zh) * 2021-04-14 2022-06-21 宏碁股份有限公司 記憶體裝置的參數調整方法與記憶體儲存系統

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040158736A1 (en) * 2002-11-18 2004-08-12 Arm Limited Exception types within a secure processing system
US20040250055A1 (en) * 2003-06-03 2004-12-09 Gateway, Inc. Method and system for changing software access level within or outside a host protected area
US20050114616A1 (en) * 2002-11-18 2005-05-26 Arm Limited Access control in a data processing apparatus
US20050262568A1 (en) * 2004-05-18 2005-11-24 Hansen Mark D System and method for managing access to protected content by untrusted applications

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4087856A (en) * 1976-06-30 1978-05-02 International Business Machines Corporation Location dependence for assuring the security of system-control operations
JPS5783850A (en) 1980-11-12 1982-05-25 Mitsubishi Electric Corp Data processing device
US4545012A (en) * 1981-05-22 1985-10-01 Data General Corporation Access control system for use in a digital computer system with object-based addressing and call and return operations
US4809160A (en) * 1985-10-28 1989-02-28 Hewlett-Packard Company Privilege level checking instruction for implementing a secure hierarchical computer system
US5107443A (en) * 1988-09-07 1992-04-21 Xerox Corporation Private regions within a shared workspace
GB2260004B (en) 1991-09-30 1995-02-08 Apple Computer Memory management unit for a computer system
JPH10228421A (ja) 1997-02-14 1998-08-25 Nec Ic Microcomput Syst Ltd メモリアクセス制御回路
US6449699B2 (en) * 1999-03-29 2002-09-10 International Business Machines Corporation Apparatus and method for partitioned memory protection in cache coherent symmetric multiprocessor systems
US6633963B1 (en) * 2000-03-31 2003-10-14 Intel Corporation Controlling access to multiple memory zones in an isolated execution environment
US7266658B2 (en) * 2002-09-12 2007-09-04 International Business Machines Corporation System, method, and computer program product for prohibiting unauthorized access to protected memory regions
JP2004280801A (ja) 2003-02-24 2004-10-07 Matsushita Electric Ind Co Ltd プロセッサおよびこのプロセッサ用のプログラムを生成するコンパイラ装置
US20040168047A1 (en) * 2003-02-24 2004-08-26 Matsushita Electric Industrial Co., Ltd. Processor and compiler for creating program for the processor
DE10335643B4 (de) * 2003-08-04 2007-10-31 Infineon Technologies Ag Vorrichtung und Verfahren zum Steuern des Zugriffs von mehreren Datenverarbeitungseinrichtungen auf einen Speicher

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040158736A1 (en) * 2002-11-18 2004-08-12 Arm Limited Exception types within a secure processing system
US20050114616A1 (en) * 2002-11-18 2005-05-26 Arm Limited Access control in a data processing apparatus
US20040250055A1 (en) * 2003-06-03 2004-12-09 Gateway, Inc. Method and system for changing software access level within or outside a host protected area
US20050262568A1 (en) * 2004-05-18 2005-11-24 Hansen Mark D System and method for managing access to protected content by untrusted applications

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013533567A (ja) * 2010-08-11 2013-08-22 アーム・リミテッド メモリアクセス制御
US8788775B2 (en) 2010-08-11 2014-07-22 Arm Limited Memory access control using redundant and non-redundant encoding
KR101861544B1 (ko) 2010-08-11 2018-05-28 에이알엠 리미티드 메모리 액세스 제어
US9032174B2 (en) 2012-03-15 2015-05-12 Fujitsu Limited Information processing apparatus for restricting access to memory area of first program from second program
JP2015530672A (ja) * 2012-10-01 2015-10-15 エイアールエム リミテッド 安全なドメイン及びより安全性の低いドメインを有するデータ処理装置における例外処理
JP2015534186A (ja) * 2012-10-01 2015-11-26 エイアールエム リミテッド 安全なドメインとより安全性の低いドメインの間で切り替えるときに安全ではないアクセスから安全なデータ及びプログラム・コードを保護するためのデータ処理装置及び方法
JP2015060249A (ja) * 2013-09-17 2015-03-30 株式会社東芝 情報処理装置及びプログラム実行方法
JP2020523680A (ja) * 2017-06-15 2020-08-06 エイアールエム リミテッド 命令セット内の変更を制御する装置及び方法

Also Published As

Publication number Publication date
US20080250217A1 (en) 2008-10-09
CN101281506B (zh) 2011-10-26
CN101281506A (zh) 2008-10-08
GB2448151A (en) 2008-10-08
JP4989543B2 (ja) 2012-08-01
GB2448151B (en) 2011-05-04
GB0706504D0 (en) 2007-05-09
US7966466B2 (en) 2011-06-21

Similar Documents

Publication Publication Date Title
JP4989543B2 (ja) メモリドメインを基にしたデータ処理システム内のセキュリティ制御
JP5000573B2 (ja) 保護された関数呼び出し
US10360411B2 (en) Secure processing unit systems and methods
US8132254B2 (en) Protecting system control registers in a data processing apparatus
US9547779B2 (en) Method and apparatus for secure execution using a secure memory partition
US8301856B2 (en) Restricting memory areas for an instruction read in dependence upon a hardware mode and a security flag
US7353404B2 (en) Tamper resistant microprocessor
US6651171B1 (en) Secure execution of program code
US7272832B2 (en) Method of protecting user process data in a secure platform inaccessible to the operating system and other tasks on top of the secure platform
US8751797B2 (en) Integrated circuit with restricted data access
JP6944444B2 (ja) メモリアクセス命令

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20100527

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120104

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120315

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

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

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

Ref document number: 4989543

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20150511

Year of fee payment: 3

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250