【課題を解決するための手段】
【0005】
第1の態様によれば、本発明は、データ処理装置を提供し、
プログラム命令に応答して、データ処理オペレーションを実施するための処理回路を備え、処理回路は、セキュアドメインおよび低セキュアドメインを含むオペレーションの複数のドメインを有し、セキュアドメインで動作するときに、処理回路は、低セキュアドメインで動作するときにアクセス可能でないデータにアクセスでき、
制御フロー変更命令の実行に応答して、処理回路は、制御フロー変更命令によって指示されるターゲットアドレスのプログラム命令を処理することに切換え、また、ターゲットアドレスのプログラム命令について処理回路が動作する選択ドメインを決定するためのドメイン選択を実施するように構成され、
少なくとも、セキュアドメインで動作している間に、制御フロー変更命令が実行される場合、処理回路は、
(i)複数のドメインのどのドメインが、ターゲットアドレスのプログラム命令についてドメイン選択によって決定される選択ドメインであることを許容されるかを決定するためのドメインチェッキングを実施し、
(ii)ドメイン選択で決定された選択ドメインが、ドメインチェッキングで決定された許容選択ドメインでない場合、ドメインチェックエラーを引き起こす(trigger)ように構成される。
【0006】
本技法では、制御フロー変更命令は、複数のドメイン間で処理を切換えるために使用することができる。これは、ドメイン間の変更を制御する、したがって、性能を改善するために、例外および対応するソフトウェア例外ハンドラを使用することが必要でないことを意味する。しかし、制御フロー変更命令が、システムのセキュリティセーフガードを迂回しないことが重要である。
【0007】
制御フロー変更命令の後で、ターゲットアドレスのプログラム命令がそこで処理される選択ドメインが、ドメイン選択技法を使用して決定される。したがって、同じ制御フロー変更命令は、使用されるドメイン選択技法に応じて、異なるドメインにおける処理に切換えるために使用されうる。
【0008】
1つのドメイン内のプログラム命令の処理に切換えることをプログラマによって意図される制御フロー変更命令の挙動が、低セキュアドメイン内のコードによって変更される場合に、セキュリティリスクが生じうるため、制御フロー変更命令は、代わりに、異なるドメイン内のプログラム命令の処理に切換えることを本技法は認識する。たとえば、低セキュアドメイン内のコードは、制御フロー変更命令のターゲットアドレスを変更する場合がある。例として、低セキュアドメイン内の命令への切換えをもたらすことを意図される、セキュアドメイン内で実行される制御フロー変更命令が存在する場合がある。しかし、制御フロー変更命令のターゲットアドレスは、セキュアドメイン内で処理されるプログラム命令を指すように、低セキュアドメイン内のコードによって設定されるため、今度は、制御フロー変更命令は、代わりにセキュアドメイン内での処理に切換えることができる。これは、ハッカーが低セキュアドメイン内のコードを使用して、セキュアドメインからセキュアコードへの制御されない移行を引き起こすことを可能にしうる。その理由は、通常、セキュア処理が信頼されると予想されるため、セキュア−セキュア切換えが監視されないことになるためである。これは、セキュリティ違反(breach)をもたらしうる。
【0009】
この問題に対処するために、処理回路は、少なくともセキュアドメイン内にある間に制御フロー変更命令が実行されるときに、ドメインチェッキングを実施することができる。ドメインチェッキングは、複数のドメインのどのドメインが、ターゲットアドレスのプログラム命令について、ドメイン選択によって決定される選択ドメインであることを許容されるかを決定する。実際のドメインがドメイン選択によって決定されるため、ドメインチェッキングは、ターゲットアドレスのプログラム命令についてシステムが動作することになる実際のドメインに影響を及ぼさない。しかし、ドメインチェッキングは、制御フロー変更命令が、予想されるドメイン移行をもたらしたことを、システムが検証することを可能にする。ドメイン選択で決定されたドメインが、ドメインチェッキングで決定された許容選択ドメインでない場合、ドメインチェックエラーが引き起こされうる。こうして、低セキュアコードが、制御フロー変更命令を予想されない方法で作用させる場合、セキュアデータに対する権限のないアクセスを防ぐために、エラーが引き起こされうる。
【0010】
制御フロー変更命令は、処理される命令の非順次移行をもたらす任意の命令とすることができる。最も一般的には、制御フロー変更命令は、分岐命令を含むことができる。しかし、制御フロー変更命令はまた、他の種類の命令、たとえば、処理される次の命令を指示するプログラムカウンタを記憶するレジスタに値をロードするロード命令を含むことができる。
【0011】
低セキュアドメインにある間に実行される制御フロー変更命令についてドメインチェッキングを実施することは必須ではない。低セキュアドメイン内の命令がより厳格なチェックを受けるべきであることが一般に予想されるため、これは反直観的である場合がある。しかし、しばしば、低セキュアドメインからセキュアドメインへの移行を調節するための何らかの他のメカニズムが存在するであろう。一方、上述したタイプの攻撃が最も問題になるのは、セキュアドメイン内にあるときである。その理由は、一般に、システムが既にセキュアドメイン内にあるとき、コードは、信頼され、正しく働いていると仮定されることになるため、このことが、低セキュアコードを使用するハッカーによって利用されて、セキュアドメイン内の制御フロー変更命令の挙動が変更されうるからである。したがって、ドメインチェッキングは、少なくとも、セキュアドメイン内にある間に実行される制御フロー変更命令について実施される。
【0012】
それでも、所望される場合、ドメインチェッキングはまた、低セキュアドメインで動作している間に制御フロー変更命令が実行されるときに実施されうる。セキュリティ違反を防ぐと共に、ドメインチェッキングはまた、そのビット値が、パーティクルストライク(particle strike)または他の種類のエラーのせいで、今や命令が予想通りに作用しないように状態を変更した、破損した命令またはターゲットアドレスを検出するために使用されうる。これは、セキュアドメインと低セキュアドメインの両方において有用でありうる。
【0013】
制御フロー変更命令に加えて、ドメイン選択はまた、他の命令について実施されうる。たとえば、いくつかのシステムでは、処理回路は、各命令について、命令がどのドメインで処理されるべきかを決定しうる。
【0014】
ドメイン選択およびドメインチェッキングは、選択ドメインおよび許容ドメイン(複数可)を決定するために異なる技法を使用するため、ドメイン選択は、異なる形態のドメインチェッキングによって検証されうる。たとえば、第1の決定法は、ドメイン選択およびドメインチェッキングの一方のために使用され、第2の決定法は、他方のために使用されうる。一実施形態でドメイン選択のために使用される技法は、別の実施形態ではドメインチェッキングのために使用されることができる、また、その逆も同じである。
【0015】
一実施形態では、セキュア領域および低セキュア領域を含む複数の領域を有するデータ記憶装置(data store)が存在する場合があり、セキュア領域は、セキュアドメインで動作するときに処理回路によってアクセス可能であり、低セキュアドメイン内にあるときにアクセス可能でないデータを記憶するためのものである。低セキュア領域は、セキュアドメイン内にあるとき、および、低セキュアドメイン内にあるとき、の両方において、アクセス可能である。
【0016】
したがって、第1の決定法は、複数の領域の少なくともどの領域が、ターゲットアドレスのプログラム命令の命令アドレスに対応するかに応じて、少なくとも1つの選択ドメインを決定することを含むことができる。一般に、低セキュアドメインは、プログラム命令の命令アドレスが低セキュア領域に対応する場合、選択ドメインとして選択されることができ、セキュアドメインは、命令アドレスがセキュア領域に対応する場合、選択されることができる。この技法は、ドメイン選択またはドメインチェッキングのいずれかのために使用されることができる。
【0017】
どの領域が命令アドレスに対応するかは、第1の決定法における唯一の基準でない場合がある。たとえば、いくつかの命令について、第1の決定法はまた、ターゲットアドレスのプログラム命令のタイプに依存する場合がある。同様に、第1の決定法がドメインチェッキングのために使用される場合、複数のドメインが、許容選択ドメインとして選択されうる。
【0018】
第2の決定法は、選択ドメイン(または、ドメインチェッキングの場合、いくつかの許容選択ドメインのうちの1つの選択ドメイン)として、ターゲットドメイン値によって指示される複数のドメインのうちの1つのドメインを決定することを含むことができる。ターゲットドメイン値は、ターゲットアドレスのプログラム命令がどのドメインで処理されることを予想されるかを指示するために、プロセッサによって維持されることができる。これは、ドメイン選択またはドメインチェッキングの一部とすることができる。
【0019】
したがって、一例では、ドメイン選択は、ターゲットアドレスのプログラム命令の命令アドレスに対応するデータ記憶装置の領域に基づいて実施されることができ、ドメインチェッキングは、ターゲットドメイン値に基づいて実施されることができる。この場合、ターゲットドメイン値は、制御フロー変更命令が正しい領域内のプログラム命令に切換わったかどうかを検証するためのチェックを提供する。別の例では、ターゲットドメイン値は、ターゲットアドレスのプログラム命令が処理される実際のドメインを制御するために使用されることができ、ドメインチェッキングは、その後、ターゲットアドレスがデータ記憶装置の正しい領域内にあることを検証することができる。
【0020】
ターゲットドメイン値は、異なる方法で表されることができる。一例では、ターゲットドメイン値は、制御フロー変更命令のエンコーディングにおいて指定されることができる。たとえば、選択ドメインとして異なるセキュリティドメインを指示する異なるターゲットドメイン値に対応するいくつかのバージョンの制御フロー変更命令が存在する場合がある。プログラムを書くとき、プログラマは、変更命令の制御フローによって、選択ドメイン(ドメイン選択の場合)または許容ドメイン(複数可)(ドメインチェッキングの場合)として適切なドメインが選択されるように、どのバージョンの制御フロー変更命令を使用すべきかを選択できる。
【0021】
あるいは、ターゲットドメイン値は、制御フロー変更命令によって使用されるターゲットアドレスの一部において指定されることができる。この形態のターゲットドメイン値は、ターゲットアドレスを記憶するレジスタを特定する間接制御フロー変更命令について有用でありうる。
【0022】
ターゲットドメイン値は、ターゲットドメイン値設定命令に応答して設定されることができる。これは、制御フロー変更命令の前に実行されるターゲットドメイン値設定命令を含むことによって、プログラマが、後続の制御フロー変更命令の予想される移行を制御することを可能にする。たとえば、低セキュアドメイン内にある間に関数ポインタがセットされる場合、セキュアドメイン内で関数ポインタを使用する前に、ターゲットドメイン設定命令が、制御フロー変更命令について予想される挙動を設定するために実行されうる。
【0023】
ターゲットドメイン値設定命令の一例は、低セキュアドメインからセキュアドメインへの移行を防ぐために使用されるガード命令を含む。セキュア関数の中央への制御されない切換えを回避することがしばしば重要である。その理由は、このことが、時として、セキュア関数において予め実施されるセキュリティチェックを迂回しうるためである。こうした切換えを防止するために、システムは、低セキュアドメインからセキュアドメインに処理が切換わる時点で、ガード命令が存在しなければならないことを必要としうる。セキュア領域内のターゲットアドレスのプログラム命令を処理することに切換える前に、処理回路が低セキュアドメインでそれについて動作していた制御フロー変更命令の後で、ターゲットアドレスのプログラム命令がガード命令でない場合、エラーが引き起こされうる。したがって、ガード命令は、セキュアコードへの信頼されるエントリポイントをマーク付けするために使用されるべきである。ガード命令は、ターゲットドメイン値を設定するのに有用でありうる。その理由は、ターゲットアドレスが、セキュアドメイン内で使用するために低セキュアドメイン内で設定されると、セキュアドメインへのエントリが存在しなければならず、したがって、ガード命令が実行されることになるからである。ガード命令を使用してターゲットドメイン値を設定することにより、この目的のためのさらなる命令の実行を実行する必要がない。
【0024】
特に、ガード命令は、後続の制御フロー変更命令が処理を切換えることになる戻りアドレス用のターゲットドメイン値を設定するのに有用である場合がある。ガード命令の存在は、しばしば、セキュアドメイン内の関数が低セキュアコードによって呼出された可能性があるというリスクが存在するため、低セキュアドメインによって指定された戻りアドレスのプログラム命令に切換えるように処理を引き起こす後続の関数戻り制御フロー変更命令が存在しうることをプログラマが予想することを意味する。この可能性を防ぐために、関数戻り用の予想される移行をセットアップするために、戻りアドレス用のターゲットドメイン値を設定するためにガード命令が使用されうる。
【0025】
一例では、ターゲットドメイン値設定命令が実施される前に、処理回路が低セキュアドメインで動作していた場合、ターゲットドメイン値は、低セキュアドメインを指示するために設定されうる。たとえば、ターゲットドメイン値設定命令がガード命令である場合、そして、ガード命令に切換える前にシステムが低セキュアドメイン内にあった場合、後続の関数戻りは、低セキュアドメインに戻るように切換えるべきであることが予想される。
【0026】
データ記憶装置は、セキュアスタックおよび低セキュアスタックを含む複数のスタックを有することができ、セキュアスタックは、セキュアドメイン内にあるときにアクセス可能であり、低セキュアドメイン内にあるときにアクセス可能でない。低セキュアスタックは、セキュアドメインおよび低セキュアドメインからアクセスされうる。
【0027】
関数が制御フロー変更命令を使用して呼出されるとき、時として、関数呼出しの後に実行されるコードが使用するために、関数呼出しの前に実行されているコードから関数引数(データ値)を渡すことが望ましい場合がある。スタックは、関数引数を渡すために使用されることができる。関数呼出しがセキュアドメインから低セキュアドメインへの移行をもたらす場合、セキュアスタックが処理回路にとってアクセス可能でないため、引数は、低セキュアスタック上に配置される必要があることになる。一方、関数呼出しがセキュアドメインからセキュアドメインへの移行をもたらす場合、引数は、低セキュアコードがこれらのデータ値にアクセスすることを防止するために、セキュアスタック内に配置されるべきである。したがって、セキュアドメイン内で関数呼出しを実行すると、どのスタックを使用すべきかについての決定は、関数呼出しの後のオペレーションのドメインに依存することになる。ターゲットドメイン値は、ターゲットアドレスなどに基づいて、関数呼出しがどのドメインを他の技法に切換えると予想されるかについての迅速な指示を提供しうる。したがって、関数引数を渡すためにどのスタックを使用すべきかを決定するためにターゲットドメイン値を再使用することは、その関数への迅速な切換え、したがって、処理性能の改善を可能にする。
【0028】
ターゲットドメイン値についての別の使用は、関数戻りアドレスを設定することにある。一般に、関数を呼出すとき、第1の制御フロー変更命令が実行され、関数から戻るとき、第2の制御フロー変更命令が実行されることになる。第1の制御フロー変更命令が発生すると、戻りアドレスは、通常、第2の制御フロー変更命令に応答して処理が戻るべきであるロケーションを指示するために所定の記憶ロケーション(たとえば、リンクレジスタ)に記憶される。セキュアドメイン内のコードから低セキュアドメイン内の関数を呼出すときに生じる1つの問題は、戻りアドレスが機密である場合があることであるため、低セキュアドメインが戻りアドレスにアクセスすることを防止することが望ましい場合がある。
【0029】
この問題に対処するために、第1の制御フロー変更命令が、セキュアドメインで実行され、低セキュアドメインへの移行をもたらすことに応答して、ダミー戻りアドレスであって、有効命令アドレスでない、ダミー戻りアドレスは、所定の記憶ロケーションに記憶されることができる。実際の戻りアドレスは、低セキュアドメイン内にある間、アクセス可能でないセキュア記憶ロケーション(たとえば、セキュアスタックまたはセキュアメモリ領域)に記憶されることができる。第2の制御フロー変更命令が実行されると、プロセッサは、戻りアドレスがダミー戻りアドレスであることを検出し、その後、セキュア記憶ロケーションから実際の戻りアドレスを取出させる。処理は、その後、その関数から戻るために、実際の戻りアドレスに切換えられうる。
【0030】
したがって、セキュアドメインから関数を呼出すとき、実際の戻りアドレスが所定の記憶ロケーションに記憶されるべきか、ダミー戻りアドレスが所定の記憶ロケーションに記憶されるべきかを判定するために、関数が、セキュアドメイン内で処理されることになるか、低セキュアドメイン内で処理されることになるかを判定することができることが有用である。これは、ターゲットドメイン値を使用して迅速かつ容易に行われうる。
【0031】
ターゲットドメイン値は、種々の方法で表されうる。制御フロー変更命令のエンコーディングまたは制御フロー変更命令によって使用されるターゲットアドレスのエンコーディングのいずれかにおいて冗長データフィールドを使用することが有用でありうる。たとえば、所与の機能のために元々意図されたフィールドは、その機能がデータ処理装置によってサポートされない場合、重要でない場合があるため、このフィールドは、ターゲットドメイン値を指示するために再使用されうる。これは、ターゲットドメイン値のためにさらなるビットフィールドを付加する必要性を回避させる。
【0032】
たとえば、一部のシステムは、複数の命令セットからの命令を実行しうる。こうしたシステムでは、制御フロー変更命令またはターゲットアドレスは、ターゲットアドレスの命令が、第1の命令セットからのものであるか、第2の命令セットからのものであるかを指示するターゲット命令セットフィールドを含むことができる。これは、プロセッサが、制御フロー変更命令を実行するときにターゲットアドレスの命令をどのように復号するかを決定することを可能にする。他のシステムは、これらの命令セットのうちの1つの命令セットを実行できるだけであるが、2つの命令セットをサポートするシステム用に設計された命令を依然として実行する場合がある。この場合、命令のターゲット命令フィールドまたはターゲットアドレスは、冗長になる場合がある。したがって、このフィールドは、ターゲットドメイン値を指示するために再使用されうる。
【0033】
ターゲット命令セットフィールドは、第1の命令セットを指示する第1の値および第2の命令セットを指示する第2の値を有することができる。第1の命令セットが処理回路によってサポートされる命令セットであり、第2の命令が処理回路によってサポートされない場合、第1の値が選択ドメインとしてセキュアドメインを指示し、第2の値が選択ドメインとして低セキュアドメインを指示するように、ターゲット命令セットフィールドの値をターゲットドメイン値の値にマッピングすることが有用でありうる。第1の命令セットだけがサポートされるため、これは、第1の命令セットの命令を使用して書かれたソフトウェア内の既存の制御フロー変更命令が、ターゲット命令セットフィールドの第1の値を指定することを意味することになる。一般にセキュアドメインで実行されるほとんどの制御フロー変更命令は、セキュアドメイン内の他のロケーションへの移行をもたらすことを意図されるため、異なるターゲットドメイン値を指示するために比較的少数の命令またはターゲットアドレスが修正される必要があるように、この値を、セキュアドメインを指示するターゲットドメイン値にマッピングすることが有用である。低セキュアドメインに切換えることを意図される、セキュアドメイン内の制御フロー変更命令用のターゲットドメイン値だけが、(たとえば、選択ドメインとして低セキュアドメインを指示するために、先のターゲットドメイン値設定命令を付加することによって)変更される必要があることになる。したがって、ターゲットドメイン値に対するターゲット命令セットフィールドのこのマッピングを採用することは、レガシーコードに関する後方互換性を可能にする。
【0034】
ターゲットドメイン値のこのマッピングが使用されるとき、レガシーコードに関する後方互換性を改善するために制御フロー変更命令が低セキュアドメインで実施されるときにドメインチェッキングを実施することを省略することが有用である。低セキュアドメイン内のほとんどの制御フロー変更命令は、同様に低セキュアドメイン内の別の命令への移行をもたらすことになる。しかし、ターゲットドメイン値の上記マッピングを使用して、第1の命令セットのレガシー命令は、セキュアドメインが選択ドメインであると予想されることを指示することになる、ターゲット命令セットフィールド内の第1の値を指示することになる。したがって、ドメインチェッキングが同様に低セキュアドメインで実施される場合、低セキュアドメインで実施されるほとんどの制御フロー変更命令に関連するターゲットドメイン値は、ドメインチェックエラーを防止するために修正される必要があることになる。これは、レガシーコードに関するシステムの後方互換性を減少させることになる。低セキュアドメインからセキュアドメインへの移行を制御するためにガード命令などの他のメカニズムが既に設けられうるため、いずれにしても、ドメインチェッキングが、低セキュアドメイン内の命令にとってあまり重要でないことから、前もって書かれたコードが修正される必要がないように、低セキュアドメイン内にあるときドメインチェッキングを省略することがより効率的でありうる。
【0035】
しばしば、ドメインチェッキングは、プログラム命令について許容選択ドメインとして単一ドメインを決定することになる。たとえば、セキュアコードにおいて、低セキュアドメインに戻るように切換えると考えられる制御フロー変更命令が存在する場合があるため、低セキュアドメインだけが許容ドメインとして選択されうる。
【0036】
しかし、他の場合には、同じプログラム命令用の許容選択ドメインとして複数のドメインを決定することが有用である場合がある。たとえば、時としてセキュアドメインに切換えるために使用され、時として低セキュアドメインに切換えるために使用されることができるセキュアドメイン内のいくつかの制御フロー変更命令が存在する場合がある。この場合、複数の許容ドメインを選択することによって、この命令は、命令がどのドメインに切換わるかによらず、ドメインチェックエラーを引き起こすことなく実行されうる。別の例では、低セキュアドメイン内にあるときにドメインチェックエラーはそれほど重大でないため、低セキュアドメイン内の制御フロー変更命令について、両方のドメインが許容ドメインとして設定されうる。
【0037】
複数の許容ドメインを選択することが有用でありうる別の命令は、ガード命令である。たとえば、同じプログラム関数が、セキュアドメインまたは低セキュアドメインのいずれかから呼出されることができ、その場合、ガード命令は、通常、低セキュアドメインからの許容エントリポイントを指示するために関数の始めに存在することになる。低セキュアドメインから関数を呼出す場合、ガード命令が存在しない場合、セキュアドメインへの切換えが存在しないように、ガード命令が存在するかどうか判定されるまで、低セキュアドメインからの切換えを延期することが望ましい場合がある。したがって、ガード命令は、関数が、セキュアドメインから呼出されるか、低セキュアドメインから呼出されるかに応じていずれかのドメインで働くことができる場合がある。この場合に起こるドメインチェックエラーを防止するために、ガード命令がメモリのどの領域に存在するか、または、ターゲットドメイン値の値によらず、ガード命令についてセキュアドメインと低セキュアドメインの両方を許容ドメインとして設定することが好都合である場合がある。
【0038】
セキュアドメインで実行される少なくとも1つの制御フロー変更命令の場合、時として、ターゲットアドレスのプログラム命令を処理することに切換える前に、セキュアドメイン内で動作することから非セキュアドメイン内で動作することへ切換えることが有用でありうる。これは、切換えの後で、システムが、低セキュアドメイン内の命令に由来するように見えるため、ガード命令が、エラーを回避することを必要とされることを意味する。これは、セキュアドメイン内の安全エントリポイントへの切換えを当てにされない制御フロー変更命令、たとえば、ターゲットドメイン値が許容ドメインとして低セキュアドメインを指示する制御フロー変更命令について有用である(この場合、低セキュアコードが、制御フロー変更命令についてターゲットアドレスを設定した可能性がある)。
【0039】
別の態様から見ると、本発明は、データ処理装置を提供し、データ処理装置は、
プログラム命令に応答して、データ処理オペレーションを実施するための処理手段を備え、処理手段は、セキュアドメインおよび低セキュアドメインを含むオペレーションの複数のドメインを有し、セキュアドメインで動作するときに、処理手段は、低セキュアドメインで動作するときにアクセス可能でないデータにアクセスでき、
制御フロー変更命令の実行に応答して、処理手段は、制御フロー変更命令によって指示されるターゲットアドレスのプログラム命令を処理することに切換え、また、処理手段が、ターゲットアドレスのプログラム命令について動作する選択ドメインを決定するためのドメイン選択を実施するように構成され、
少なくとも、セキュアドメインで動作している間に、制御フロー変更命令が実行される場合、処理手段は、
(i)複数のドメインのどのドメインが、ターゲットアドレスのプログラム命令について、ドメイン選択によって決定される選択ドメインであることを許容されるかを決定するためのドメインチェッキングを実施し、ドメインチェッキングは、ドメイン選択とは異なる技法を使用し、
(ii)ドメイン選択で決定された選択ドメインが、ドメインチェッキングで決定された許容選択ドメインでない場合、ドメインチェックエラーを引き起こすように構成される。
【0040】
さらなる態様から見ると、本発明は、プログラム命令に応答して、データ処理オペレーションを実施するための処理回路を備える装置用のデータ処理方法を提供し、処理回路は、セキュアドメインおよび低セキュアドメインを含むオペレーションの複数のドメインを有し、セキュアドメインで動作するときに、処理回路は、低セキュアドメインで動作するときにアクセス可能でないデータにアクセスでき、前記方法は、
制御フロー変更命令の実行に応答して、制御フロー変更命令によって指示されるターゲットアドレスのプログラム命令を処理することに切換えること、
ターゲットアドレスのプログラム命令について処理回路が動作する選択ドメインを決定するためのドメイン選択を実施すること、
少なくとも、セキュアドメインで動作している間に、制御フロー変更命令が実行される場合、
(i)複数のドメインのどのドメインが、ターゲットアドレスのプログラム命令について、ドメイン選択によって決定される選択ドメインであることを許容されるかを決定するためのドメインチェッキングを実施し、ドメインチェッキングは、ドメイン選択とは異なる技法を使用すること、および、
(ii)ドメイン選択で決定された選択ドメインが、ドメインチェッキングで決定された許容選択ドメインでない場合、ドメインチェックエラーを引き起こすことを含む。
【0041】
本発明の上記のまた他の目的、特徴、および利点は、添付図面に関連して読まれる、例証的な実施形態の以下の詳細な説明から明らかになるであろう。