JP7364668B2 - 遷移無効インジケータ - Google Patents
遷移無効インジケータ Download PDFInfo
- Publication number
- JP7364668B2 JP7364668B2 JP2021517656A JP2021517656A JP7364668B2 JP 7364668 B2 JP7364668 B2 JP 7364668B2 JP 2021517656 A JP2021517656 A JP 2021517656A JP 2021517656 A JP2021517656 A JP 2021517656A JP 7364668 B2 JP7364668 B2 JP 7364668B2
- Authority
- JP
- Japan
- Prior art keywords
- exception
- secure
- transition
- mode
- stack
- 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.)
- Active
Links
- 230000007704 transition Effects 0.000 title claims description 301
- 238000012545 processing Methods 0.000 claims description 208
- 238000000034 method Methods 0.000 claims description 170
- 230000008569 process Effects 0.000 claims description 148
- 230000004044 response Effects 0.000 claims description 62
- 230000006870 function Effects 0.000 claims description 38
- 238000004590 computer program Methods 0.000 claims description 22
- 230000011664 signaling Effects 0.000 claims description 15
- 230000009471 action Effects 0.000 claims description 11
- 238000012360 testing method Methods 0.000 claims description 11
- 238000012795 verification Methods 0.000 claims description 6
- 238000003672 processing method Methods 0.000 claims description 5
- 230000001960 triggered effect Effects 0.000 description 12
- 230000006399 behavior Effects 0.000 description 9
- 238000004321 preservation Methods 0.000 description 7
- 230000001681 protective effect Effects 0.000 description 5
- 230000008901 benefit Effects 0.000 description 4
- 238000004088 simulation Methods 0.000 description 4
- 238000011161 development Methods 0.000 description 3
- 230000007246 mechanism Effects 0.000 description 3
- 230000009286 beneficial effect Effects 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 230000000116 mitigating effect Effects 0.000 description 2
- 230000008859 change Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000005242 forging Methods 0.000 description 1
- 238000007689 inspection Methods 0.000 description 1
- 230000000873 masking effect Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000000926 separation method Methods 0.000 description 1
- 238000000638 solvent extraction Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR 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/71—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
- G06F21/74—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information operating in dual or compartmented mode, i.e. at least one secure mode
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR 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/52—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
- G06F21/54—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow by adding security routines or objects to programs
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR 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
- G06F12/1458—Protection against unauthorised use of memory or access to memory by checking the subject access rights
- G06F12/1491—Protection against unauthorised use of memory or access to memory by checking the subject access rights in a hierarchical protection system, e.g. privilege levels, memory rings
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR 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
- G06F12/1458—Protection against unauthorised use of memory or access to memory by checking the subject access rights
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR 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/554—Detecting local intrusion or implementing counter-measures involving event detection and direct action
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/64—Protecting data integrity, e.g. using checksums, certificates or signatures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/30076—Arrangements for executing specific machine instructions to perform miscellaneous control operations, e.g. NOP
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30181—Instruction operation extension or modification
- G06F9/30189—Instruction operation extension or modification according to execution mode, e.g. mode flag
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3861—Recovery, e.g. branch miss-prediction, exception handling
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/468—Specific access rights for resources, e.g. using capability register
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4812—Task transfer initiation or dispatching by interrupt, e.g. masked
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR 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/52—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/48—Indexing scheme relating to G06F9/48
- G06F2209/481—Exception handling
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30098—Register arrangements
- G06F9/30101—Special purpose registers
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- Mathematical Physics (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Storage Device Security (AREA)
- Executing Machine-Instructions (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Debugging And Monitoring (AREA)
- Hardware Redundancy (AREA)
- Signal Processing For Digital Recording And Reproducing (AREA)
- Stereo-Broadcasting Methods (AREA)
Description
本技法は、データ処理の分野に関する。
●あまりセキュアでないドメインでの処理からセキュアなドメイン及びスレッド・モードでの処理への関数呼出し(function call)。これは、不一致のスタック・フレームのスタック解除をトリガするための予想される例外復帰遷移の代わりに関数呼出しを使用することを試み得る攻撃者から保護するのを助けることができる。
●あまりセキュアでないドメインでの処理からセキュアなドメイン及びスレッド・モードでの処理への関数復帰。これは、不一致のスタック・フレームのスタック解除をトリガするための予想される例外復帰遷移の代わりに関数復帰を使用することを試み得る攻撃者から保護するのを助けることができる。
●セキュアなドメイン及びスレッド・モードでの命令の処理。いくつかのイベントのみが危険であることがあり得るが、いくつかの実装形態は、危険を引き起こし得るイベントを検出するための特定の回路論理を与えるのではなく、代わりに、遷移無効インジケータが設定されたときに命令がセキュアなドメイン及びスレッド・モードで実行される場合、単に障害をトリガし得る。
●スレッド・モードで処理され、あまりセキュアでないドメインからセキュアなドメインへの遷移に関連するとき、セキュアなドメインへの有効なエントリ・ポイントを示すセキュア・ゲートウェイ・データ処理命令。いくつかのアーキテクチャは、セキュアなドメインへの関数呼出しが、関数呼出しの後に実行される第1の命令がセキュア・ゲートウェイ・データ処理命令以外の命令である場合、障害をトリガすることを必要とし得る。セキュア・ゲートウェイ・データ処理命令自体が、様々な検査を実施するようにセキュリティ検査ハードウェアをトリガするように命令デコーダを制御することができる。したがって、遷移無効インジケータの検査は、セキュア・ゲートウェイ・データ処理命令のために実施される検査の一部として含まれ得る。
●セキュアなドメインとスレッド・モードとの組合せにあるとき、処理回路にとってアクセス可能なセキュア・プロセス・スタック・ポインタへの、セキュアなドメインとスレッド・モードとの組合せへの遷移に続く、第1のアクセス。
所与のアーキテクチャ実装形態は、これらのオプションのうちのいずれか1つ又は複数をサポートし得る。これらのシナリオにおいて障害をトリガすることによって、これはまた、前の例外エントリ遷移が関連のあるスタック・フレームに完全性署名を保存しなかった場合の検出を可能にするために、セキュアでない(non-secure)スレッド・モードからのセキュア・スレッド・モードへの関数復帰又はあまりセキュアでないスレッド・モードからセキュア・スレッド・モードへの関数呼出しを使用する攻撃者など、他の潜在的攻撃から保護することができる。
●セキュア・スレッド・モード(セキュアなドメインとスレッド・モードとの組合せの略記)
●あまりセキュアでないスレッド・モード(あまりセキュアでないドメインとスレッド・モードとの組合せ)
●セキュア・ハンドラ・モード(セキュアなドメインとハンドラ・モードとの組合せ)及び
●あまりセキュアでないハンドラ・モード(あまりセキュアでないドメインとハンドラ・モードとの組合せ)。
以下で説明されるように、例外条件及び例外復帰条件に応答して、行われるアクションは、セキュリティ・ドメインとモードとのこれらのそれぞれの組合せの間で行われている特定の遷移に依存し得る。
1. 割込み(IRQ1)が、セキュア・ハンドラ・モードへの遷移を引き起こす。呼出し側の保存されるレジスタは、例外制御ハードウェア28によって(PSP_Sによって示される)セキュア・プロセス・スタックに自動的に保存される。割込みハンドリング・レイテンシを低減するために、被呼出し側の保存されるレジスタは保存されず、したがって、図4に示されているタイプの第1の例外スタック・フレームが保存される(完全性署名を省略する)。これは、ターゲット状態がセキュアであるので許容可能であり、したがって、それは、これらのレジスタを破損しないと確信され得る。
2. 別の割込み(IRQ2)が、セキュアでないハンドラ・モードへの遷移を引き起こす。この時点で、ハードウェアは、遷移がセキュアでない状態へのものであるので、呼出し側の保存されるレジスタと被呼出し側の保存されるレジスタの両方を保持し、これは、セキュア値をハンドリングすると確信され得ない。したがって、図5に示されているタイプの第2の例外スタック・フレームが、MSP_Sによって示されるセキュア・メイン・スタックに保存される。メイン・スタックは、この例外がハンドラ・モードでの処理中に生じたとき、使用される。
3. セキュアでないドメインに対する制御をもつ攻撃者は、次いで、(IRQ2から復帰するためのセキュア・ハンドラ・モードへの予想される例外復帰の代わりに)セキュア・スレッド・モードへの例外復帰又は関数復帰を捏造することができる。ステップ1においてセキュア・プロセス・スタックに保存されたスタック・フレームは、そのスタック上に完全性署名を有しないので、セキュア・スレッド・モードへの復帰におけるスタック解除が、ステップ1においてセキュア・プロセス・スタックに保存された、呼出し側のみの例外スタック・フレームをスタック解除することを試みる場合、セキュリティ違反の可能性がある。
●呼出し側レジスタと被呼出し側レジスタの両方をスタック解除する例外復帰、たとえば、あまりセキュアでない状態からの例外復帰。
●あまりセキュアでないスレッド・モードからのセキュア・スレッド・モードへの関数復帰
●あまりセキュアでないスレッド・モードからセキュア・スレッド・モードへの関数呼出し。
(1)
少なくともセキュアなドメインとあまりセキュアでないドメインとを含む複数のセキュリティ・ドメインのうちの1つでのデータ処理を実施するための、及び所与のセキュリティ・ドメイン内で例外処理のためのハンドラ・モードとバックグラウンド処理のためのスレッド・モードとを含む複数のモードのうちの1つでのデータ処理を実施するための、処理回路と、
処理回路の現在のセキュリティ・ドメインに依存してメモリ・アクセスが可能にされるかどうかを検査するためのメモリ・アクセス検査回路と、
アーキテクチャ状態データを記憶するための複数のレジスタと、
メモリ・システムにおける対応するスタック・データ構造をポイントするための少なくとも1つのスタック・ポインタを記憶するための少なくとも1つのスタック・ポインタ・レジスタであって、前記少なくとも1つのスタック・ポインタが、セキュア・プロセス・スタック・データ構造に関連するセキュア・プロセス・スタック・ポインタを含み、前記セキュア・プロセス・スタック・ポインタが、セキュアなドメインとスレッド・モードとの組合せにあるとき、処理回路にとってアクセス可能である、少なくとも1つのスタック・ポインタ・レジスタと、
例外条件に応答して、レジスタからのアーキテクチャ状態データの少なくともサブセットを、前記少なくとも1つのスタック・ポインタのうちの1つによって識別されるスタック・データ構造に保存して、第1の例外スタック・フレーム及び第2の例外スタック・フレームのうちの1つをそのスタック・データ構造上に与える、例外制御回路であって、第2の例外スタック・フレームが、第1の例外スタック・フレームよりも大量の、レジスタからのアーキテクチャ状態データを含む、例外制御回路と
を備える装置であって、
例外制御回路は、どのセキュリティ・ドメインが、例外条件の前に実施される第1の処理に関連し、例外条件の後に実施されるべき第2の処理に関連するかに基づいて、第1の例外スタック・フレーム及び第2の例外スタック・フレームのうちのどちらがスタック・データ構造上に与えられるべきであるかを選択するように構成され、
第1の例外スタック・フレームがセキュア・プロセス・スタック・ポインタによって識別されるセキュア・プロセス・スタック上に与えられるべきである例外条件に応答して、例外制御回路が、セキュア・プロセス・スタック・ポインタ無効インジケータを設定するように構成され、
セキュアなドメインとスレッド・モードとの組合せでの処理への少なくとも1つのタイプの遷移について、セキュア・プロセス・スタック・ポインタ無効インジケータが設定されたとき、例外制御回路が、障害のシグナリングをトリガするように構成された、
装置。
(2)
少なくともセキュアなドメインとあまりセキュアでないドメインとを含む複数のセキュリティ・ドメインのうちの1つでのデータ処理を実施することが可能な処理回路であって、メモリ・アクセスが可能にされるかどうかの検査が処理回路の現在のセキュリティ・ドメインに依存し、所与のセキュリティ・ドメイン内で、処理回路が、例外処理のためのハンドラ・モードとバックグラウンド処理のためのスレッド・モードとを含む複数のモードのうちの1つでのデータ処理を実施することが可能である、処理回路と、
アーキテクチャ状態データを記憶するための複数のレジスタと、
メモリ・システムにおける対応するスタック・データ構造をポイントするための少なくとも1つのスタック・ポインタを記憶するための少なくとも1つのスタック・ポインタ・レジスタであって、前記少なくとも1つのスタック・ポインタが、セキュア・プロセス・スタック・データ構造に関連するセキュア・プロセス・スタック・ポインタを含み、前記セキュア・プロセス・スタック・ポインタが、セキュアなドメインとスレッド・モードとの組合せにあるとき、処理回路にとってアクセス可能である、少なくとも1つのスタック・ポインタ・レジスタと
を備える装置のためのデータ処理方法であって、
本方法は、
例外条件に応答して、
どのセキュリティ・ドメインが、例外条件の前に実施される第1の処理に関連し、例外条件の後に実施されるべき第2の処理に関連するかに基づいて、第1の例外スタック・フレーム及び第2の例外スタック・フレームのうちの1つを選択することであって、第2の例外スタック・フレームが、第1の例外スタック・フレームよりも大量の、レジスタからのアーキテクチャ状態データを含む、選択することと、
レジスタからのアーキテクチャ状態データの少なくともサブセットを、前記少なくとも1つのスタック・ポインタのうちの1つによって識別されるスタック・データ構造に保存して、第1の例外スタック・フレーム及び第2の例外スタック・フレームのうちの選択された1つをそのスタック・データ構造上に与えることと、
第1の例外スタック・フレームがセキュア・プロセス・スタック・ポインタによって識別されるセキュア・プロセス・スタック上に設けられるべきであるとき、セキュア・プロセス・スタック・ポインタ無効インジケータを設定することと、
セキュアなドメインとスレッド・モードとの組合せでの処理への少なくとも1つのタイプの遷移に応答して、セキュア・プロセス・スタック・ポインタ無効インジケータが設定されたとき、障害をシグナリングすることと
を含む、データ処理方法。
(3)
命令の実行のための命令実行環境を与えるようにホスト・データ処理装置を制御するためのコンピュータ・プログラムであって、本コンピュータ・プログラムは、
少なくともセキュアなドメインとあまりセキュアでないドメインとを含む複数のセキュリティ・ドメインのうちの1つでのデータ処理をサポートするための、及び所与のセキュリティ・ドメイン内で例外処理のためのハンドラ・モードとバックグラウンド処理のためのスレッド・モードとを含む複数のモードのうちの1つでのデータ処理をサポートするための、処理プログラム論理と、
処理プログラム論理の現在のセキュリティ・ドメインに依存してメモリ・アクセスが可能にされるかどうかを検査するためのメモリ・アクセス検査プログラム論理と
を含み、
処理実行論理が、アーキテクチャ状態データを記憶するためのレジスタ・データ構造を使用してデータ処理をサポートするように構成され、レジスタ・データ構造が、メモリ・システムにおける対応するスタック・データ構造をポイントするための少なくとも1つのスタック・ポインタを記憶するための少なくとも1つのスタック・ポインタ・レジスタを備え、前記少なくとも1つのスタック・ポインタが、セキュア・プロセス・スタック・データ構造に関連するセキュア・プロセス・スタック・ポインタを含み、前記セキュア・プロセス・スタック・ポインタが、セキュアなドメインとスレッド・モードとの組合せにあるとき、処理プログラム論理にとってアクセス可能であり、
本コンピュータ・プログラムが、例外条件に応答して、レジスタ・データ構造からのアーキテクチャ状態データの少なくともサブセットを、前記少なくとも1つのスタック・ポインタのうちの1つによって識別されるスタック・データ構造に保存して、第1の例外スタック・フレーム及び第2の例外スタック・フレームのうちの1つをそのスタック・データ構造上に与えるための、例外制御プログラム論理を含み、第2の例外スタック・フレームが、第1の例外スタック・フレームよりも大量の、レジスタ・データ構造からのアーキテクチャ状態データを含み、
例外制御プログラム論理は、どのセキュリティ・ドメインが、例外条件の前に実施される第1の処理に関連し、例外条件の後に実施されるべき第2の処理に関連するかに基づいて、第1の例外スタック・フレーム及び第2の例外スタック・フレームのうちのどちらがスタック・データ構造上に与えられるべきであるかを選択するように構成され、
第1の例外スタック・フレームがセキュア・プロセス・スタック・ポインタによって識別されるセキュア・プロセス・スタック上に与えられるべきである例外条件に応答して、例外制御プログラム論理が、セキュア・プロセス・スタック・ポインタ無効インジケータを設定するように構成され、
セキュアなドメインとスレッド・モードとの組合せでの処理への少なくとも1つのタイプの遷移について、セキュア・プロセス・スタック・ポインタ無効インジケータが設定されたとき、例外制御プログラム論理が、障害のシグナリングをトリガするように構成された、
コンピュータ・プログラム。
Claims (19)
- 少なくともセキュアなドメインとあまりセキュアでないドメインとを含む複数のセキュリティ・ドメインのうちの1つでのデータ処理を実施するための、及び所与のセキュリティ・ドメイン内で例外処理のためのハンドラ・モードとバックグラウンド処理のためのスレッド・モードとを含む複数のモードのうちの1つでのデータ処理を実施するための、処理回路と、
前記処理回路の現在のセキュリティ・ドメインに依存してメモリ・アクセスが可能にされるかどうかを検査するためのメモリ・アクセス検査回路と、
例外条件に応答して、前記処理回路の現在のモード及び前記現在のセキュリティ・ドメインと、前記例外条件に関連するセキュリティ・ドメインとに基づいて選択された複数の例外エントリ遷移のうちの1つを実施するための例外制御回路であって、前記複数の例外エントリ遷移が、少なくとも1つの、セキュア・スレッド・モードからセキュア・ハンドラ・モードへの例外エントリ遷移を含む、例外制御回路と
を備える装置であって、
前記例外制御回路が、例外復帰条件に応答して、前記モードと、前記例外復帰条件に関連するセキュリティ・ドメインとに基づいて選択された複数の例外復帰遷移のうちの1つを実施し、
前記少なくとも1つの、セキュア・スレッド・モードからセキュア・ハンドラ・モードへの例外エントリ遷移に応答して、前記例外制御回路が、遷移無効インジケータを設定するように構成され、
前記遷移無効インジケータが設定されたときの前記セキュアなドメイン及び前記スレッド・モードでの処理への少なくとも1つのタイプの例外復帰遷移について、前記例外制御回路が、障害のシグナリングをトリガするように構成された、
装置。 - 前記セキュアなドメイン及び前記スレッド・モードでの処理への前記少なくとも1つのタイプの例外復帰遷移は、
前記あまりセキュアでないドメイン及び前記ハンドラ・モードでの処理から前記セキュアなドメイン及び前記スレッド・モードでの処理への遷移と、
前記例外復帰遷移が、前記例外復帰遷移が前記あまりセキュアでないドメイン及び前記ハンドラ・モードへの前の例外エントリ条件に対応することを指定する例外復帰情報に関連するときの、前記セキュアなドメイン及び前記ハンドラ・モードでの処理から前記セキュアなドメイン及び前記スレッド・モードでの処理への遷移と
のうちの少なくとも1つを含む、請求項1に記載の装置。 - 少なくとも1つの、セキュア・スレッド・モードからあまりセキュアでないハンドラ・モードへの例外エントリ遷移に応答して、前記例外制御回路が、前記少なくとも1つの、セキュア・スレッド・モードからセキュア・ハンドラ・モードへの例外エントリ遷移について省略された少なくとも1つの保護アクションを実施するように構成された、請求項1及び2のいずれか一項に記載の装置。
- メモリ・システムにおける対応するスタック・データ構造をポイントするための少なくとも1つのスタック・ポインタを記憶するための少なくとも1つのスタック・ポインタ・レジスタを備え、前記少なくとも1つのスタック・ポインタ・レジスタが、セキュア・プロセス・スタック・データ構造に関連するセキュア・プロセス・スタック・ポインタを格納するためにセキュア・プロセス・スタック・ポインタ・レジスタを含み、前記セキュア・プロセス・スタック・ポインタが、前記セキュアなドメインと前記スレッド・モードとの組合せにあるとき、前記処理回路にとってアクセス可能である、請求項1から3までのいずれか一項に記載の装置。
- アーキテクチャ状態データを記憶するための複数のレジスタを備え、
前記例外制御回路が、前記例外条件に応答して、前記レジスタからのアーキテクチャ状態データの少なくともサブセットを、前記少なくとも1つのスタック・ポインタのうちの1つによって識別されるスタック・データ構造に保存して、第1の例外スタック・フレーム及び第2の例外スタック・フレームのうちの1つを前記スタック・データ構造上に与え、前記第2の例外スタック・フレームが、前記第1の例外スタック・フレームから省略された前記レジスタからのアーキテクチャ状態データのサブセットを含む、
請求項4に記載の装置。 - 前記第2の例外スタック・フレームが、前記第1の例外スタック・フレームから省略された完全性署名を含み、
前記複数の例外復帰遷移のサブセットについて、前記例外制御回路は、前記例外復帰遷移のために選択された所与のスタック・データ構造からのスタック・フレームにアクセスすることと、スタック解除されたスタック・フレーム中の所定の位置における値と前記完全性署名との間の不一致が検出されたときに障害をトリガすることとを含む完全性署名検査を実施するように構成された、
請求項5に記載の装置。 - 前記例外制御回路は、完全性署名検査が実施されず、スタック解除が前記セキュア・プロセス・スタック・ポインタを使用して実施される、前記セキュアなドメイン及び前記スレッド・モードでの処理への例外復帰遷移に応答して、前記遷移無効インジケータをクリアするように構成された、請求項6に記載の装置。
- 前記セキュアなドメイン及び前記スレッド・モードでの処理への前記少なくとも1つのタイプの例外復帰遷移は、アーキテクチャ状態が前記セキュア・プロセス・スタック・データ構造から復元されるべきであり、前記完全性署名検査が実施されるべきである、例外復帰遷移を含む、請求項6及び7のいずれか一項に記載の装置。
- 前記少なくとも1つの、セキュア・スレッド・モードからセキュア・ハンドラ・モードへの例外エントリ遷移は、前記第1の例外スタック・フレームが前記セキュア・プロセス・スタック・データ構造上に与えられた、前記セキュアなドメイン及び前記スレッド・モードから前記セキュアなドメイン及び前記ハンドラ・モードへの例外エントリ遷移を含む、請求項5から8までのいずれか一項に記載の装置。
- 前記例外制御回路は、前記セキュア・プロセス・スタック・データ構造上に前記第2の例外スタック・フレームを与えるために、前記セキュア・プロセス・スタック・データ構造に記憶された前記第1の例外スタック・フレームがアップグレードされたとき、前記遷移無効インジケータをクリアするように構成された、請求項5から9までのいずれか一項に記載の装置。
- 前記遷移無効インジケータは、設定されたとき、前記セキュア・プロセス・スタック・ポインタへのアクセスが無効にされたことを示す、セキュア・プロセス・スタック無効インジケータを含む、請求項4から10までのいずれか一項に記載の装置。
- セキュア・プロセス・スタック・ポインタ限界値を記憶するためのセキュア・プロセス・スタック・ポインタ限界レジスタを備え、
前記例外制御回路は、
前記セキュア・プロセス・スタック・データ構造が前記セキュア・プロセス・スタック・ポインタ限界値を超えて拡張することと、
前記セキュア・プロセス・スタック・ポインタ・レジスタを前記セキュア・プロセス・スタック・ポインタ限界値を超える値に調整する試みと
のうちの1つを検出したことに応答して、障害のシグナリングをトリガするように構成され、
前記遷移無効インジケータが、前記セキュア・プロセス・スタック・ポインタ限界レジスタに記憶される、
請求項4から11までのいずれか一項に記載の装置。 - 前記遷移無効インジケータが、前記セキュア・プロセス・スタック・ポインタ・レジスタに記憶される、請求項4から11までのいずれか一項に記載の装置。
- 構成インジケータを記憶するための構成レジスタを備え、前記例外制御回路は、前記構成インジケータが第1の値を有するとき、前記少なくとも1つの、セキュア・スレッド・モードからセキュア・ハンドラ・モードへの例外エントリ遷移に応答して、前記遷移無効インジケータを設定するように構成された、請求項1から13までのいずれか一項に記載の装置。
- メモリ・システムにおける対応するスタック・データ構造をポイントするための複数のスタック・ポインタを記憶するための複数のスタック・ポインタ・レジスタを備え、前記複数のスタック・ポインタは、
セキュア・プロセス・スタック・データ構造に関連するセキュア・プロセス・スタック・ポインタであって、前記セキュア・プロセス・スタック・ポインタが、前記セキュアなドメインと前記スレッド・モードとの組合せにあるとき、前記処理回路にとってアクセス可能である、セキュア・プロセス・スタック・ポインタと、
前記ハンドラ・モードでの処理からの例外エントリ遷移に応答して保存されるアーキテクチャ状態データを記憶するための少なくとも1つのメイン・スタック・データ構造に関連する少なくとも1つのメイン・スタック・ポインタと
を含み、
前記少なくとも1つの、セキュア・スレッド・モードからセキュア・ハンドラ・モードへの例外エントリ遷移に応答して、前記構成インジケータが第2の値を有するとき、前記例外制御回路は、前記セキュア・プロセス・スタック・データ構造へのアーキテクチャ状態の保存をトリガすることと、前記少なくとも1つのメイン・スタック・データ構造のうちの1つが、前記スレッド・モードでの処理への後続の例外復帰遷移に応答してアーキテクチャ状態データをスタック解除するために使用されるべきであることを示すようにスタック選択値を更新することとを行うように構成された、
請求項14に記載の装置。 - 前記遷移無効インジケータが設定されたとき、前記例外制御回路が、
前記あまりセキュアでないドメインでの処理から前記セキュアなドメイン及び前記スレッド・モードでの処理への関数呼出しと、
前記あまりセキュアでないドメインでの処理から前記セキュアなドメイン及び前記スレッド・モードでの処理への関数復帰と、
前記セキュアなドメイン及び前記スレッド・モードでの命令の処理と、
前記スレッド・モードで処理され、前記あまりセキュアでないドメインから前記セキュアなドメインへの遷移に関連するとき、前記セキュアなドメインへの有効なエントリ・ポイントを示すセキュア・ゲートウェイ・データ処理命令と、
前記セキュアなドメインと前記スレッド・モードとの組合せにあるとき、前記処理回路にとってアクセス可能なセキュア・プロセス・スタック・ポインタへの、前記セキュアなドメインと前記スレッド・モードとの組合せへの遷移に続く、第1のアクセスと
のうちの少なくとも1つに応答して障害のシグナリングをトリガするように構成された、請求項1から15までのいずれか一項に記載の装置。 - 少なくともセキュアなドメインとあまりセキュアでないドメインとを含む複数のセキュリティ・ドメインのうちの1つでのデータ処理を実施することが可能な処理回路のためのデータ処理方法であって、メモリ・アクセスが可能にされるかどうかの検査が前記処理回路の現在のセキュリティ・ドメインに依存し、所与のセキュリティ・ドメイン内で、前記処理回路が、例外処理のためのハンドラ・モードとバックグラウンド処理のためのスレッド・モードとを含む複数のモードのうちの1つでのデータ処理を実施することが可能であり、
前記方法は、
例外条件に応答して、前記処理回路の現在のモード及び現在のセキュリティ・ドメインと、前記例外条件に関連するセキュリティ・ドメインとに基づいて選択された複数の例外エントリ遷移のうちの1つを実施することであって、前記複数の例外エントリ遷移が、少なくとも1つの、セキュア・スレッド・モードからセキュア・ハンドラ・モードへの例外エントリ遷移を含む、実施することと、
例外復帰条件に応答して、前記モードと、前記例外復帰条件に関連するセキュリティ・ドメインとに基づいて選択された複数の例外復帰遷移のうちの1つを実施することと
を含み、
前記少なくとも1つの、セキュア・スレッド・モードからセキュア・ハンドラ・モードへの例外エントリ遷移に応答して、遷移無効インジケータが設定され、
前記遷移無効インジケータが設定されたときの前記セキュアなドメイン及び前記スレッド・モードでの処理への少なくとも1つのタイプの例外復帰遷移について、障害がシグナリングされる、
データ処理方法。 - 命令の実行のための命令実行環境を与えるようにホスト・データ処理装置を制御するためのコンピュータ・プログラムであって、前記コンピュータ・プログラムは、
少なくともセキュアなドメインとあまりセキュアでないドメインとを含む複数のセキュリティ・ドメインのうちの1つでのデータ処理をサポートするための、及び所与のセキュリティ・ドメイン内で例外処理のためのハンドラ・モードとバックグラウンド処理のためのスレッド・モードとを含む複数のモードのうちの1つでのデータ処理をサポートするための、処理プログラム論理と、
前記処理プログラム論理の現在のセキュリティ・ドメインに依存してメモリ・アクセスが可能にされるかどうかを検査するためのメモリ・アクセス検査プログラム論理と、
例外条件に応答して、前記処理プログラム論理の現在のモード及び現在のセキュリティ・ドメインと、前記例外条件に関連するセキュリティ・ドメインとに基づいて選択された複数の例外エントリ遷移のうちの1つを実施するための例外制御プログラム論理であって、前記複数の例外エントリ遷移が、少なくとも1つの、セキュア・スレッド・モードからセキュア・ハンドラ・モードへの例外エントリ遷移を含む、例外制御プログラム論理と
を含み、
前記例外制御プログラム論理が、例外復帰条件に応答して、前記モードと、前記例外復帰条件に関連するセキュリティ・ドメインとに基づいて選択された複数の例外復帰遷移のうちの1つを実施し、
前記少なくとも1つの、セキュア・スレッド・モードからセキュア・ハンドラ・モードへの例外エントリ遷移に応答して、前記例外制御プログラム論理が、遷移無効インジケータを設定するように構成され、
前記遷移無効インジケータが設定されたときの前記セキュアなドメイン及び前記スレッド・モードでの処理への少なくとも1つのタイプの例外復帰遷移について、前記例外制御プログラム論理が、障害のシグナリングをトリガするように構成された、
コンピュータ・プログラム。 - 請求項18に記載のコンピュータ・プログラムを記憶するコンピュータ可読記憶媒体。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
GB1816354.3A GB2577878B (en) | 2018-10-08 | 2018-10-08 | Transition disable indicator |
GB1816354.3 | 2018-10-08 | ||
PCT/GB2019/052363 WO2020074853A1 (en) | 2018-10-08 | 2019-08-22 | Transition disable indicator |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2022503921A JP2022503921A (ja) | 2022-01-12 |
JP7364668B2 true JP7364668B2 (ja) | 2023-10-18 |
Family
ID=64397424
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2021517656A Active JP7364668B2 (ja) | 2018-10-08 | 2019-08-22 | 遷移無効インジケータ |
JP2021517598A Active JP7432586B2 (ja) | 2018-10-08 | 2019-09-03 | スタック・ポインタを検証すること |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2021517598A Active JP7432586B2 (ja) | 2018-10-08 | 2019-09-03 | スタック・ポインタを検証すること |
Country Status (9)
Country | Link |
---|---|
US (2) | US11354404B2 (ja) |
EP (2) | EP3864554B1 (ja) |
JP (2) | JP7364668B2 (ja) |
KR (2) | KR20210068006A (ja) |
CN (2) | CN112805709B (ja) |
GB (2) | GB2577878B (ja) |
IL (1) | IL280715A (ja) |
TW (2) | TWI808261B (ja) |
WO (2) | WO2020074853A1 (ja) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB2589895B (en) * | 2019-12-11 | 2022-03-16 | Advanced Risc Mach Ltd | Intermodal calling branch instruction |
US11784786B2 (en) | 2020-08-14 | 2023-10-10 | Intel Corporation | Mitigating security vulnerabilities with memory allocation markers in cryptographic computing systems |
GB2611823B (en) * | 2021-10-18 | 2023-10-11 | Advanced Risc Mach Ltd | Technique for handling sealed capabilities |
US20230315457A1 (en) * | 2022-03-31 | 2023-10-05 | Mellanox Technologies, Ltd. | Processor with Instructions for Resetting Multiple Registers |
GB2623800A (en) * | 2022-10-27 | 2024-05-01 | Advanced Risc Mach Ltd | Stack pointer switch validity checking |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20140373171A1 (en) | 2013-06-12 | 2014-12-18 | Arm Limited | Security protection of software libraries in a data processing apparatus |
JP2015534186A (ja) | 2012-10-01 | 2015-11-26 | エイアールエム リミテッド | 安全なドメインとより安全性の低いドメインの間で切り替えるときに安全ではないアクセスから安全なデータ及びプログラム・コードを保護するためのデータ処理装置及び方法 |
JP2015534689A (ja) | 2012-10-01 | 2015-12-03 | エイアールエム リミテッド | データ・プロセッサ内の異なる操作ドメイン間を切り替える安全な手段 |
Family Cites Families (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5701493A (en) * | 1995-08-03 | 1997-12-23 | Advanced Risc Machines Limited | Exception handling method and apparatus in data processing systems |
US6363473B1 (en) * | 1999-04-01 | 2002-03-26 | Compaq Information Technologies Group, L.P. | Simulated memory stack in a stackless environment |
EP1329787B1 (en) | 2002-01-16 | 2019-08-28 | Texas Instruments Incorporated | Secure mode indicator for smart phone or PDA |
GB0226874D0 (en) * | 2002-11-18 | 2002-12-24 | Advanced Risc Mach Ltd | Switching between secure and non-secure processing modes |
GB2396034B (en) * | 2002-11-18 | 2006-03-08 | Advanced Risc Mach Ltd | Technique for accessing memory in a data processing apparatus |
JP4447471B2 (ja) * | 2002-11-18 | 2010-04-07 | エイアールエム リミテッド | 安全処理システムにおける例外タイプ |
EP1865435A1 (en) * | 2006-06-06 | 2007-12-12 | Texas Instruments France | Enhanced exception handling |
US9002014B2 (en) * | 2008-05-24 | 2015-04-07 | Via Technologies, Inc. | On-die cryptographic apparatus in a secure microprocessor |
US8516577B2 (en) * | 2010-09-22 | 2013-08-20 | Intel Corporation | Regulating atomic memory operations to prevent denial of service attack |
TW201234206A (en) * | 2011-02-15 | 2012-08-16 | Ying-Hwi Chang | Digital storage device for providing data security and the operation method thereof |
US8615614B2 (en) * | 2011-11-30 | 2013-12-24 | Freescale Semiconductor, Inc. | Message passing using direct memory access unit in a data processing system |
GB2501343A (en) * | 2012-02-08 | 2013-10-23 | Advanced Risc Mach Ltd | Data processing apparatus and method using secure domain and less secure domain |
US10210349B2 (en) * | 2012-02-08 | 2019-02-19 | Arm Limited | Data processing apparatus and method using secure domain and less secure domain |
US9477834B2 (en) | 2012-02-08 | 2016-10-25 | Arm Limited | Maintaining secure data isolated from non-secure access when switching between domains |
US9116711B2 (en) | 2012-02-08 | 2015-08-25 | Arm Limited | Exception handling in a data processing apparatus having a secure domain and a less secure domain |
US9262320B2 (en) * | 2012-06-15 | 2016-02-16 | International Business Machines Corporation | Tracking transactional execution footprint |
EP2923478B1 (en) * | 2012-11-21 | 2019-08-14 | Apple Inc. | Policy-based techniques for managing access control |
GB2525596B (en) * | 2014-04-28 | 2021-05-26 | Arm Ip Ltd | Access control and code scheduling |
US9501667B2 (en) * | 2014-06-20 | 2016-11-22 | Arm Limited | Security domain prediction |
-
2018
- 2018-10-08 GB GB1816354.3A patent/GB2577878B/en active Active
- 2018-11-23 GB GB1819123.9A patent/GB2577947B/en active Active
-
2019
- 2019-08-22 JP JP2021517656A patent/JP7364668B2/ja active Active
- 2019-08-22 WO PCT/GB2019/052363 patent/WO2020074853A1/en unknown
- 2019-08-22 EP EP19759706.5A patent/EP3864554B1/en active Active
- 2019-08-22 CN CN201980064656.0A patent/CN112805709B/zh active Active
- 2019-08-22 US US17/266,855 patent/US11354404B2/en active Active
- 2019-08-22 KR KR1020217004820A patent/KR20210068006A/ko active Search and Examination
- 2019-09-03 EP EP19766306.5A patent/EP3864555B1/en active Active
- 2019-09-03 CN CN201980064661.1A patent/CN112805710A/zh active Pending
- 2019-09-03 US US17/269,205 patent/US11727110B2/en active Active
- 2019-09-03 KR KR1020217005759A patent/KR20210060443A/ko unknown
- 2019-09-03 JP JP2021517598A patent/JP7432586B2/ja active Active
- 2019-09-03 WO PCT/GB2019/052449 patent/WO2020074854A1/en unknown
- 2019-09-25 TW TW108134514A patent/TWI808261B/zh active
- 2019-09-25 TW TW108134526A patent/TWI811456B/zh active
-
2021
- 2021-02-08 IL IL280715A patent/IL280715A/en unknown
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2015534186A (ja) | 2012-10-01 | 2015-11-26 | エイアールエム リミテッド | 安全なドメインとより安全性の低いドメインの間で切り替えるときに安全ではないアクセスから安全なデータ及びプログラム・コードを保護するためのデータ処理装置及び方法 |
JP2015534689A (ja) | 2012-10-01 | 2015-12-03 | エイアールエム リミテッド | データ・プロセッサ内の異なる操作ドメイン間を切り替える安全な手段 |
US20140373171A1 (en) | 2013-06-12 | 2014-12-18 | Arm Limited | Security protection of software libraries in a data processing apparatus |
Also Published As
Publication number | Publication date |
---|---|
EP3864554A1 (en) | 2021-08-18 |
KR20210068006A (ko) | 2021-06-08 |
GB2577947A (en) | 2020-04-15 |
WO2020074853A1 (en) | 2020-04-16 |
JP7432586B2 (ja) | 2024-02-16 |
US11727110B2 (en) | 2023-08-15 |
GB201816354D0 (en) | 2018-11-28 |
US20210294924A1 (en) | 2021-09-23 |
GB2577947B (en) | 2023-07-05 |
EP3864554B1 (en) | 2023-09-27 |
IL280715A (en) | 2021-03-25 |
KR20210060443A (ko) | 2021-05-26 |
US11354404B2 (en) | 2022-06-07 |
WO2020074854A1 (en) | 2020-04-16 |
CN112805710A (zh) | 2021-05-14 |
TWI811456B (zh) | 2023-08-11 |
EP3864555A1 (en) | 2021-08-18 |
GB201819123D0 (en) | 2019-01-09 |
CN112805709A (zh) | 2021-05-14 |
EP3864555B1 (en) | 2023-10-25 |
GB2577878A (en) | 2020-04-15 |
TW202030634A (zh) | 2020-08-16 |
US20210224380A1 (en) | 2021-07-22 |
CN112805709B (zh) | 2023-08-29 |
TWI808261B (zh) | 2023-07-11 |
JP2022503899A (ja) | 2022-01-12 |
JP2022503921A (ja) | 2022-01-12 |
GB2577878B (en) | 2020-11-11 |
TW202029045A (zh) | 2020-08-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP7364668B2 (ja) | 遷移無効インジケータ | |
US20220366036A1 (en) | An apparatus and method for handling exceptions | |
US20220366037A1 (en) | Domain transition disable configuration parameter | |
JP2023038361A (ja) | 命令セット内の変更を制御する装置及び方法 | |
EP3765957B1 (en) | Branch target variant of branch-with-link instruction | |
EP4073635B1 (en) | Intermodal calling branch instruction | |
TW202418067A (zh) | 堆疊指標切換有效性檢查 | |
GB2623800A (en) | Stack pointer switch validity checking |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20220815 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20230530 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20230608 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20230901 |
|
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: 20230912 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20231005 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 7364668 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |