JP7512097B2 - リソース保護 - Google Patents
リソース保護 Download PDFInfo
- Publication number
- JP7512097B2 JP7512097B2 JP2020102691A JP2020102691A JP7512097B2 JP 7512097 B2 JP7512097 B2 JP 7512097B2 JP 2020102691 A JP2020102691 A JP 2020102691A JP 2020102691 A JP2020102691 A JP 2020102691A JP 7512097 B2 JP7512097 B2 JP 7512097B2
- Authority
- JP
- Japan
- Prior art keywords
- secure
- master
- resource
- state
- soc
- 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
- 230000004224 protection Effects 0.000 title claims description 69
- 230000007704 transition Effects 0.000 claims description 71
- 230000015654 memory Effects 0.000 claims description 17
- 230000008859 change Effects 0.000 claims description 6
- 238000000034 method Methods 0.000 description 26
- 238000010586 diagram Methods 0.000 description 10
- 230000007246 mechanism Effects 0.000 description 3
- 230000002093 peripheral effect Effects 0.000 description 3
- 238000012545 processing Methods 0.000 description 3
- 238000013459 approach Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 230000006978 adaptation Effects 0.000 description 1
- 230000009956 central mechanism Effects 0.000 description 1
- 230000001010 compromised effect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 239000000758 substrate Substances 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Images
Description
背景技術
SoC(System-on-Chip)には、プロセッサコアによってアクセス可能なリソースが含まれている。SoCはマイクロコントローラであってよい。プロセッサコアは、CPU(Central Processing Unit)であってよい。リソースには、メモリ、メモリ内の設定可能なアドレス範囲、周辺装置または周辺副機能(例えばクロック制御システム)が含まれていてよい。SoCがセーフかつセキュアであるためには、そのリソースのアクセスおよび制御がセーフかつセキュアでなければならない。
SoC(System-on-Chip)には、プロセッサコアによってアクセス可能なリソースが含まれている。SoCはマイクロコントローラであってよい。プロセッサコアは、CPU(Central Processing Unit)であってよい。リソースには、メモリ、メモリ内の設定可能なアドレス範囲、周辺装置または周辺副機能(例えばクロック制御システム)が含まれていてよい。SoCがセーフかつセキュアであるためには、そのリソースのアクセスおよび制御がセーフかつセキュアでなければならない。
ハードウェアおよびソフトウェアが異なれば、セーフティ特性およびセキュリティ特性およびリスクが異なり得る。セキュアかつ保護されたハードウェア上で動作するセキュアソフトウェアは、一般に、セキュアであるがセーフではない。セーフなハードウェア(例えばロックステップCPU)上で動作するセーフなソフトウェアは、セーフではあるが、悪意的であることがある。SoCが脆弱(compromised)である場合、他のすべてのソフトウェアは、悪意的であり得る。SoCリソースの保護は、SoC上で動作するソフトウェアのセーフ特性、セキュア特性および悪意的な特性を考慮すると、セーフかつセキュアであるべきである。
本開示は、SoC(System on Chip)上のリソースのセーフかつセキュアな保護を対象としている。
リソース保護は、例えば2つのレベルの保護を有する。第1レベルが定めるのは、リソース保護の設定の変更が、どのバスマスタ(セーフまたはセキュアバスマスタ)に許可されるかである。第2レベルは、セーフバスマスタおよびセキュアバスマスタ間の相互作用を制御することによるリソースそれ自体のための保護である。本開示の対象ではない2つ以上の付加的な保護レベルが存在することもある。
保護メカニズムは、ステートマシンによって制御され、ここでは特定の状態遷移は、セーフバスマスタだけによって行うことができ、他の遷移はセキュアバスマスタによって行うことができる。ステートマシンによって保証されるのは、保護される各リソースが、設定中にセーフかつセキュアな状態にあり、セキュアバスマスタがこの設定をチェックしている間はリソースがもはや変更できないことである。この説明全体にわたって、バスマスタは、一般に、より簡単にマスタと称される。
図1には、本開示の複数の態様によるSoC100が示されている。
SoCは、コンピュータまたは他の電子システムのすべてのコンポーネントを一体化する集積回路である。これらのコンポーネントは、常ではないが一般に、CPU(Central Processing Unit)、メモリ、入出力ポートおよび2次記憶装置のすべてを単一の基板またはチップ上に含んでいる。SoCは、デジタル信号、アナログ信号、ミックスト・シグナル、またアプリケーションに応じて多くの場合に高周波信号処理機能を含んでいてよい。
SoC100は、複数のプロセッサコア110、リソース120、ステートマシン130、バス/インターコネクト140、複数のインタフェース150、グローバルメモリ160、オプションの保護レジスタ170、およびオプションの側波帯信号路180を有する。
この実施例における複数のプロセッサコア110は、CPUであり、またプロセッサコア110-0(CPU0)、プロセッサコア110-1(CPU1)、プロセッサコア110-2(CPU2)、プロセッサコア110-3(CPU3)、およびプロセッサコア110-cs(CPUcs)を含んでいる。プロセッサコア110は、択一的には、携帯電話用のベースバンドプロセッサであってよい。複数のプロセッサコア110の各プロセッサコアは、それぞれのマスタインタフェース150(150-0、150-1、150-2、150-3および150-cs)によってバス140に接続されている。メモリ160、リソース120、ステートマシン130、およびオプションの保護レジスタ170は、スレーブインタフェース150-2を介してバス140に接続されている。
プロセッサコア110-csは、セキュリティソフトウェアを実行するように設定されているセキュアマスタとして指定されている。この開示全体にわたり、「cs」は、サイバーセキュリティを意味する。セキュアマスタ110-csは、例えば、HSM(Hardware Security Module)であってよい。プロセッサコア110-0は、この実施例において、非セキュリティソフトウェアを実行するように設定されている非セキュアマスタとして指定されている。この非セキュアマスタ110-0は、セーフティソフトウェアを実行するように設定されているセーフマスタとして指定されていてよい。この説明全体にわたり、非セキュアマスタ110-0は、セーフマスタとして説明されるが、この本開示は、この点において必ずしも限定されないことは明らかである。
リソース120は、セキュアマスタ110-csと非セキュアマスタ110-0とで共有されるように設定されている。共有されるリソース120は、レジスタ、メモリ、状態、入力信号、出力信号などであってよい。択一的には、リソース120は、セーフティ上の観点からも、またセキリュティ上の観点からも適切に設定されるべきであるクロックシステムであってよい。
リソース120は、この実施例において、バスメモリ保護ユニット(MPU: Memory Protection Unit)である。バスMPUには、メモリ160の特定の範囲への書込みアクセスを制限することなどによって、メモリ160へのアクセスを制御するように設定されているレジスタの集合が含まれる。メモリ160は、例えば、RAM(Random Access memory)であってよいが、本開示はこの点において限定されない。
ステートマシン130は、ステートマシン130の特定の状態へのリソース120の遷移がセキュアマスタ110-csだけに許可され、かつステートマシン130の別の特定の状態へのリソース120の遷移がセーフマスタ110-0だけに許可されることによって、リソース120が保護される、ように設定されている。このことを以下で、さらに詳細に説明する。
セキュアマスタ110-csまたはセーフマスタ110-0は、マスタ識別子により、リソース120に、それぞれのセキュアマスタまたはセーフマスタとして名乗り出るように設定可能であり、このマスタ識別子は、バストランザクションの一部でありかつリソース120に格納された設定可能な、またはハードコーディングされた参照マスタ識別子に相当する。オプションの保護レジスタ170は、この設定可能な、またはハードコーディングされた参照マスタ識別子を格納するように構成されており、保護レジスタ170は書込み保護可能である。リソース120には、どのマスタがセキュアマスタ110-csであるかについてのローカルな知識は不要であり、これにより、セキュアマスタアクティビティのトレースの回避が単純化される。保護レジスタ170は、任意のマスタにより、任意の時点に読み出し可能である。セーフマスタ110-0またはセキュアマスタ110-csとは別のマスタによる保護レジスタ170への書込みにより、アラームがトリガされ得る。同様に、有効でないステートマシン遷移を表す、セーフマスタ110-0またはセキュアマスタ110-csの保護レジスタ170への書き込みの試みは、なにもせずに無視され得る。セーフマスタ110-0はまた、第2保護レジスタを使用して定義できることを理解されたい。
バス140ルートとは択一的に、セキュアマスタ110-csは、バストランザクションの一部として、側波帯信号路180上の側波帯信号を介し、セキュアマスタ110-csとしてのその識別子をリソース保護レジスタ170に伝送するように構成可能である。側波帯信号は、ハードコーディングされるため、この信号がセキュアマスタ110-csからであることは明らかである。保護レジスタ170により、セキュアマスタ110-csおよび/またはセーフマスタ110-0の定義が許可され、またこの保護レジスタ170は、4つまでのステートマシン130の制御ビットを有し得る。
図示した実施例のセキュアマスタ110-csは、バストランザクションの一部であることにより、側波帯信号によって定義される。択一的にはセキュアマスタ110-csは、第2保護レジスタ170を用い、セーフティマスタ110-0と同様の仕方で定義可能である。
複数のプロセッサコア110のうちの別の1つをセキュアマスタまたはセーフマスタとしてそれぞれ識別するために、参照マスタ識別子に合致するマスタ識別子によって識別可能なセキュアマスタ110-csまたはセーフマスタ110-0だけに、参照マスタ識別子の変更が許可される。
セキュアマスタ110-csは、オプションとして、複数のバーチャルマシン110-cs-vmを有していてよい。これらのバーチャルマシン110-cs-vmには、セキュリティソフトウェアを実行するように設定されたセキュアマスタ110-cs-vmcsに指定されたバーチャルマシンと、オプションとして、セーフソフトウェアを実行するように設定されたセーフバーチャルマシン110-cs-vm0と、が含まれていてよい。セーフバーチャルマシン110-cs-vm0は、セーフソフトウェアを実行するように設定されたセーフマスタとして指定可能である。
セキュアマスタおよび/またはセーフマスタがバーチャルマシンであることは、上記のように、プロセッサコアであることと同様である。リソース120は、セキュアバーチャルマシン110-cs-vmcsとセーフバーチャルマシン110-cs-vm0とによって共有されるように構成可能である。ステートマシン130は、ステートマシン130の特定の状態へのリソース120の遷移がセキュアバーチャルマシン110-cs-vmcsだけに許可され、ステートマシン130の別の特定の状態へのリソース120の遷移がセーフバーチャルマシン110-cs-vm0だけに許可されることにより、リソース120が保護される、ように構成可能である。セキュアバーチャルマシンは、セキュアバーチャルマシン識別子によって識別可能であり、このセキュアバーチャルマシン識別子は、バストランザクションの一部でありかつ保護レジスタ170などのようなリソース120に格納された設定可能な、またはハードコーディングされた参照識別子に相当する。
SoCは、複数のリソース120(図示せず)および複数のステートマシン130(図示せず)を有してよい。各リソース120は、それ自体のステートマシン130を有していてよい。
図2には、本開示の複数の態様にしたがって、ステートマシン遷移図200が示されている。
ステートマシン遷移図200は、図1のステートマシン130の遷移図である。ステートマシン遷移図200には、特定のリソース120のリソース保護が示されている。この実施例において、ステートマシン遷移図200は、7つの状態、すなわち、初期状態210、実行状態220、設定状態230、実行ロック状態240、セキュア実行状態250、セキュア設定状態260およびセキュアチェック状態270を有する。
ステートマシン130の基本的な動作は、すべての設定が、セーフマスタM(110-0)によって実行されることである。このことは、リソース120それ自体だけに当てはまるのではなく、リソース120の保護メカニズムの制御についても当てはまる。唯一の例外は、純粋にセキュアなリソースであり、ここでは、セキュアマスタCSM(Cyber Security Master;110-cs)が、意図せずにセーフリソースに影響を及ぼし得ないことが一旦保証されれば、すべての動作は、セキュアマスタCSMによって処理可能である。
設定のようなクリティカルな動作は、通常の動作状態とは異なる特定の状態においてのみ実行可能である。これらのクリティカルな状態には、セキュアマスタCSM(110-cs)またはセーフマスタM(110-0)のような、認証されたマスタだけによって実行可能な遷移によってのみ到達可能である。各状態遷移は、セーフマスタMまたはセキュアマスタCSMのいずれかである単一のマスタだけによって実行可能である。唯一の例外は、初期状態210から実行ロック状態240への遷移であり、この遷移は、セキュアマスタCSM(110-cs)またはセーフマスタM(110-0)のいずれかによって実行可能である。
共有され、セーフであり、かつセキュアであるリソース120についての基本的なコンセプトは、設定がセーフマスタM(110-0)によって実行され、次に、リソース120がアクティブになる前に、セキュアマスタCSM(110-cs)によってチェックされることである。このコンセプトは、セキュア実行状態250、セキュア設定状態260およびセキュアチェック状態270を有する、ステートマシン遷移図200の右側によって示されている。
基本的に、セーフマスタM(110-0)は、セーフティ上の観点からセキュアマスタCSM(110-cs)を信頼することができず、セキュアマスタCSM(110-cs)は、セキュリティ上の観点からセーフマスタM(110-0)を信頼することができない。それゆえに共有リソース120については、再設定がセーフマスタM(110-0)によって実行され、セキュアマスタCSM(110-cs)がこれを監督する。
以下では、図2のステートマシン遷移図200を参照して、ステートマシン130の状態および遷移をより詳細に説明する。
ステートマシン130の状態および遷移により、リソース120の操作および設定が、セーフかつセキュアに可能になる。リセット後、すべてのリソース120は、何らの制限なしにリソース120が設定可能な初期状態210にある。この初期状態210は、信頼されたセーフかつセキュアなソフトウェアだけが動作しているという仮定の下で、初期スタートアップフェーズにおいてのみ使用される。
純粋にセーフなリソースは、セーフでないセキュアマスタCSM(110-cs)によって設定してはならない。共有リソース120は、セーフマスタM(110-0)によって設定される。というのは、結果的に、より単純なシステム設計が得られるからである。通常に動作するSoC100は、任意のアプローチで処理可能である。しかしながら、2つのクリティカルなケースは、セキュアマスタCSM(110-cs)が、セーフでない仕方で振る舞っている場合、およびセーフマスタが悪意的である場合である。2つのケースは、セキュア実行状態250、セキュア設定状態260およびセキュアチェック状態270を有する、ステートマシン遷移図200の右側によって取り扱われる。
初期状態210:
初期状態210は、リセット後に発生する。リソース120にとって、この状態は、設定状態230と同様である。初期状態210と設定状態230との違いは、初期状態210では、セキュア実行状態250または実行ロック状態240への状態遷移がなおも可能であることである。
初期状態210は、リセット後に発生する。リソース120にとって、この状態は、設定状態230と同様である。初期状態210と設定状態230との違いは、初期状態210では、セキュア実行状態250または実行ロック状態240への状態遷移がなおも可能であることである。
実行ロック状態204:
実行ロック状態240は、すべてのリソース120がセーフかつセキュアにロックされた状態である。アプリケーションは、使用するすべてのリソース120を設定し、次に初期化完了信号「init_done」信号をトリガする。このinit_done信号は、中枢機構を使用して、いまなお初期状態210にあるすべてのリソース120を実行ロック状態240に遷移させる。これは、必要でないものも含めてすべてリソース120を強制的にセーフかつセキュアな実行ロック状態240にするのに都合のよい仕方である。この場合、次のリセットの前にリソース設定を変更することはできない。
実行ロック状態240は、すべてのリソース120がセーフかつセキュアにロックされた状態である。アプリケーションは、使用するすべてのリソース120を設定し、次に初期化完了信号「init_done」信号をトリガする。このinit_done信号は、中枢機構を使用して、いまなお初期状態210にあるすべてのリソース120を実行ロック状態240に遷移させる。これは、必要でないものも含めてすべてリソース120を強制的にセーフかつセキュアな実行ロック状態240にするのに都合のよい仕方である。この場合、次のリセットの前にリソース設定を変更することはできない。
実行状態220および設定状態230:
実行状態220は、リソース120の通常の動作状態である。一般的なアプローチは、初期状態210における初期スタートアップフェーズにおいて、セーフマスタM(110-0)だけがセットされ、この特定のセーフマスタM(110-0)により、後の設定状態230中にリソース設定が制御される、ことである。実行状態220から設定状態230への変更は、主に、ソフトウェアによる単一の、意図しない書き込みにより、クリティカルなリソースが変更されてはならないというセーフティ面を満足する。ステートマシン130を使用することにより、付加的な前提条件は、セーフマスタM(110-0)により、実行状態220から設定状態230へのリソース120の遷移がローカルに制御されることである。というのは、個別のリソース120だけが影響を受け、リソース状態のグローバルな制御のような一般的なタイムアウトメカニズムは、不要であるためである。
実行状態220は、リソース120の通常の動作状態である。一般的なアプローチは、初期状態210における初期スタートアップフェーズにおいて、セーフマスタM(110-0)だけがセットされ、この特定のセーフマスタM(110-0)により、後の設定状態230中にリソース設定が制御される、ことである。実行状態220から設定状態230への変更は、主に、ソフトウェアによる単一の、意図しない書き込みにより、クリティカルなリソースが変更されてはならないというセーフティ面を満足する。ステートマシン130を使用することにより、付加的な前提条件は、セーフマスタM(110-0)により、実行状態220から設定状態230へのリソース120の遷移がローカルに制御されることである。というのは、個別のリソース120だけが影響を受け、リソース状態のグローバルな制御のような一般的なタイムアウトメカニズムは、不要であるためである。
セキュア実行状態250、セキュア設定状態260およびセキュアチェック状態270:
これらの状態の間、セーフマスタM(110-0)は、セキュアマスタCSM(110-cs)と相互に影響し合う。というのはリソース120が、セーフティとセキュリティとの間で共有されるからである。このことは、左側に類似して、図2の右側に示されている。より具体的にいうと、セキュア実行状態250およびセキュア設定状態260は、実行状態220および設定状態230にそれぞれ類似している。違いは、付加的なセキュアチェック状態270と、右側の遷移のうちのいくつかが、異なるマスタ、すなわちセーフマスタM(110-0)ではなくセキュリティマスタCSM(110-cs)によって制御されることとである。セーフティ的にクリティカルな遷移は、セーフマスタM(110-0)によって制御され、セキュリティ的にクリティカルな遷移は、セキュアマスタCSM(110-cs)によって制御される。
これらの状態の間、セーフマスタM(110-0)は、セキュアマスタCSM(110-cs)と相互に影響し合う。というのはリソース120が、セーフティとセキュリティとの間で共有されるからである。このことは、左側に類似して、図2の右側に示されている。より具体的にいうと、セキュア実行状態250およびセキュア設定状態260は、実行状態220および設定状態230にそれぞれ類似している。違いは、付加的なセキュアチェック状態270と、右側の遷移のうちのいくつかが、異なるマスタ、すなわちセーフマスタM(110-0)ではなくセキュリティマスタCSM(110-cs)によって制御されることとである。セーフティ的にクリティカルな遷移は、セーフマスタM(110-0)によって制御され、セキュリティ的にクリティカルな遷移は、セキュアマスタCSM(110-cs)によって制御される。
これらの状態においてセキュアマスタCSM(110-cs)は、側波帯信号によって定義可能であるか、または、セーフティマスタM(110-0)を定義するための1つのレジスタと、セキュアマスタCSM(110-cs)を定義するための別の1つのレジスタと、の2つの保護レジスタが存在する。
セキュア実行状態250からセキュア設定状態260へ:
ステートマシン130は、セキュア実行状態250からセキュア設定状態260へのリソース120の遷移をセーフマスタM(110-0)だけに許可するように設定されている。というのは、この設定は、安全性に関連しているからである。これは、実行設定状態ビットを保護レジスタ170に格納するセーフマスタM(110-0)によって行われる。
ステートマシン130は、セキュア実行状態250からセキュア設定状態260へのリソース120の遷移をセーフマスタM(110-0)だけに許可するように設定されている。というのは、この設定は、安全性に関連しているからである。これは、実行設定状態ビットを保護レジスタ170に格納するセーフマスタM(110-0)によって行われる。
セキュア設定状態260は、セキュアかつセーフな状態である。セーフマスタM(110-0)が悪意的である場合、いずれにせよ安全性は保証されない。セキュア設定状態260中、リソース120の再設定は、セーフマスタM(110-0)だけに許可される。このリソース120がクリティカルであると仮定されるため、新たな設定は、直ちに有効にはならない。クリティカルなリソースは、例えばクロックシステムである。セキュアマスタCSM(110-cs)は、以下で考察するセキュアチェック状態270中に新たな設定をチェックする機会を有する。
セキュア設定状態260には、セキュアマスタCSM(110-cs)によってチェックされる前に、許容されない設定がアクティブにならないようにするために、シャドウレジスタ(図示せず)に新たな設定データを書き込むことが含まれる。
セキュア設定状態260からセキュアチェック状態270へ:
ステートマシン130は、セキュア設定状態260からセキュアチェック状態270へのリソース120の遷移がキュアマスタCSM(110-cs)だけに許可されるように設定されている。セキュアチェック状態270中、新たな設定は、もはや変更できないが、まだアクティブではない可能性がある。これにより、セキュアマスタCSM(110-cs)は、セキュアチェック状態270からセキュア実行状態250へと遷移することによって新たな設定がアクティブ化される前に、この新たな設定をチェックすることができる。このチェックは、セキュアマスタCSM(110-cs)を使用することによって行われるが、択一的にはセーフマスタ110-0または別のマスタ110によって実行可能である。
ステートマシン130は、セキュア設定状態260からセキュアチェック状態270へのリソース120の遷移がキュアマスタCSM(110-cs)だけに許可されるように設定されている。セキュアチェック状態270中、新たな設定は、もはや変更できないが、まだアクティブではない可能性がある。これにより、セキュアマスタCSM(110-cs)は、セキュアチェック状態270からセキュア実行状態250へと遷移することによって新たな設定がアクティブ化される前に、この新たな設定をチェックすることができる。このチェックは、セキュアマスタCSM(110-cs)を使用することによって行われるが、択一的にはセーフマスタ110-0または別のマスタ110によって実行可能である。
セキュア設定状態260およびセキュアチェック状態270によって保証されるのは、リソース120の考えられ得る任意の悪意的な設定が、攻撃を検出して対処するセキュアマスタCSM(110-cs)の能力に影響を及ぼすことがないようにすることである。
セキュアチェック状態270からセキュア実行状態へ:
ステートマシン130は、セキュアチェック状態270からセキュア実行状態250へのリソース120の遷移をセキュアマスタCSM(110-cs)だけに許可するように構成されており、セキュア実行状態250中、リソース120は、通常に、チェックされた設定でセキュアに動作する。
ステートマシン130は、セキュアチェック状態270からセキュア実行状態250へのリソース120の遷移をセキュアマスタCSM(110-cs)だけに許可するように構成されており、セキュア実行状態250中、リソース120は、通常に、チェックされた設定でセキュアに動作する。
セキュアチェック状態270からセキュア実行状態250へのこの遷移120により、設定状態から実行状態への「c2r」遷移信号がアクティブ化され、この信号により、複数のシャドウレジスタから実際の制御レジスタへの並列転送がトリガされる。c2r遷移信号は、設定状態230から実行状態220への、またはセキュアチェック状態270からセキュア実行状態250への遷移中の1クロックサイクルの間、アクティブである。これらのシャドウレジスタは、単一のレジスタでないこともあり、むしろ好ましくは個別に書き込みできない複数のレジスタである。これらのレジスタが個別に書き込める場合、これらのレジスタの一部が旧い設定を有し、別の一部分が新しい設定を有する期間が存在することになってしまう。
オプションのサイバーセキュリティ保護信号(「csprot」)は、強いセキュリティ要求で、リソース120をセーフかつセキュアな状態にする中央制御信号である。このようなリソース120は、例えば、上記のバスMPUであってよい。クロックグリッチまたは電圧攻撃のような攻撃をハードウェアが検出した場合、このハードウェア(例えばイベント管理ユニット)は、リソース120を直接的にセキュア設定状態260に遷移させるサイバーセキュリティ保護信号を生成する。
図3には、本開示の複数の態様にしたがい、ステートマシン330のハードウェア実装が示されている。
ステートマシン330のこのハードウェア実装には、タグ識別フィルタ(TIF)310.M、TIF310.Rx、保護レジスタ320、ステートマシン330、インバータ、書き込みイネーブルゲート340、書き込みイネーブルゲート350、TIF360、TIF370、アクセスイネーブルレジスタ380、およびリソース390が含まれている。
TIF310.Mは、アクセスイネーブル信号から、リソース120の再設定が可能な、セキュアマスタCSM(110-cs)の識別子をフィルタリングする。TIF310.Rxは、アクセス信号から、ステートマシン130用の制御ビットをフィルタリングする。
保護レジスタ320は、図1の保護レジスタ170に相当する。この実施例において、保護レジスタ320は、2つの部分、すなわちセキュアマスタCSM(110-cs)の識別子を格納するPROT.Mと、制御ビットを格納するPROT.Rxと、を有する。この実施例のレジスタ320は、単一のレジスタであるが、択一的には複数のレジスタを有していてよい。
ステートマシン330は、図1のステートマシン130に相当する。上述のように、ステートマシン330は、状態遷移がセーフマスタだけによって行われ得るか、またはセキュアマスタだけによって行われ得るか、またはその両方であるかを制御することによってリソースを保護する。ステートマシン330は、フリップフロップによって実装可能であり、複数のレジスタを有する。
ステートマシン330は、2つの出力信号、すなわちconfig_state信号およびcs_config_state信号を有するように図示されている。config_state信号は、設定状態230、セキュア設定状態260および初期状態210の間、アクティブであり、書き込みゲート340をイネーブルする。cs_config_state信号は、サイバーセキュリティに固有であり、セキュアマスタCSM(110-cs)またはバスMPUのような強いセキュリティ要求を有するリソースに対してセキュア状態を強制し、この信号により、例えば、再構成中にインバータおよび書き込みイネーブルゲート350を介するリソースアクセスが行われないようにする。
アクセスイネーブルレジスタ380は、例えば32ビットを有する。それぞれのビットは、1つのマスタを表し、したがってマスタの任意の組み合わせを設定可能である。アクセスイネーブルレジスタ380は、セキュアチェック状態270中に非アクティブ化可能である。ステートマシン330により、セキュア実行状態250からセキュア設定状態260へのリソース390の遷移が、セーフマスタM(110-0)に許可される場合、セーフマスタM(110-0)は、アクセスイネーブルレジスタ380をアクティブ化し、セキュアマスタCMS(110-cs)に通知する。アクセスイネーブルレジスタ(ACCEN)380の書き込みアクセスは、TIF370によって特定のマスタに制限可能である。またアクセスイネーブルレジスタ380それ自体は、周辺装置またはメモリ範囲についての保護である。
リソース390は、図1のリソース120に相当する。リソース390は、例えば、RAM(Random Access Memory)であってよい。リソース390へのアクセスは、ACCEN380およびTIF360によって、特定のマスタまたはマスタの集合に制限可能である。
図4Aには、本開示の複数の態様にしたがい、リソース保護レジスタ170のビットフィールド400Aが示されている。図4Bには、本開示の複数の態様にしたがい、図4Aのリソース保護レジスタ170のビットフィールド定義の表400Bが示されている。
リソース保護レジスタ170のビットフィールド400Aの上側部分には、以下のビットフィールドを有するマスタプロセッサコア110が定義されている。すなわち、VM(バーチャネルマシン(VM)用の3ビット)と、VME(VMのイネーブル用の1ビット)と、PRS(PRotection Set用の3ビット)と、PRSE(PRSのイネーブル用の1ビット)と、TAG_ID(マスタを識別するタグ識別子用の6ビット)と、MEN(マスタ設定がイネーブルされていることを示す1ビット、セットされていない場合、初期状態210中のように、任意のマスタがイネーブルされている)と、M_P(保護レジスタ170が書き込まれる場合、1でなければならない1ビット)と、が定義されている。
リソース保護レジスタ170のビットフィールド400Aの下側部分には、4つのリソース120(R0、R1、R2、R3)用の保護(R0_P、R1_P、R2_P、R3_P、R4_P)が定義されている。ステート制御毎に4つのビットを有する4つのステート制御フィールド(x=0…3)が設けられている。これらのステート制御フィールドにより、1つのマスタを共通に有する異なるリソース120について、異なるステートマシン130が可能になる。ステート制御フィールド(R0、R1、R2、R3)毎に、状態は3ビットで識別される。7つの状態、すなわち0(000、初期状態)、1(001、実行状態)、2(010、設定状態)、4(100、実行ロック状態)、5(101、セキュア実行状態)、6(110、セキュア設定状態)および7(111、セキュアチェック状態)が設けられている。それぞれの保護は、1つの保護ビット(R0_P、R1_P、R2_P、R3_P)によって識別され、この保護ビットは、この実施例において、読み出しについては0に、書き込みについては1にセットされる。
図4Bの表4Bには、図4Aに示したリソース保護レジスタ170のフィールド、ビット、タイプおよび説明が含まれている。簡略にするため、この情報をここでは繰り返さない。
図5Aには、本開示の複数の態様によるリソース保護方法500Aのフローチャートが示されている。
ステップ510Aでは、セキュリティソフトウェアを実行するように設定されているセキュアマスタ110-csになるように、複数のプロセッサコア110のうちの1つのプロセッサコアを指定する。
ステップ520Aでは、セーフソフトウェアを実行するように設定されているセーフマスタ110-0になるように、複数のプロセッサコア110のうちの別の1つのプロセッサコアを指定する。このセーフマスタ110-0は、セーフソフトウェアを実行するように設定されているセーフマスタであってよい。
ステップ530Aでは、ステートマシン130の特定の状態へのリソース120の遷移をこのセキュアマスタ110-csだけに許可し、かつステートマシン130の別の特定の状態へのリソース120の遷移をこのセーフマスタ110-0だけに許可することによって、ステートマシン130により、セキュアマスタ110-csとセーフマスタ110-0とによって共有されるように設定されているリソース120を保護する。
図5Bには、本開示の複数の態様による別のリソース保護方法500Bのフローチャートが示されている。
ステップ510Bでは、セキュリティソフトウェアを実行するように設定されているセキュアバーチャルマシン110-cs-vmcsになるように、複数のプロセッサコア110のうちの1つのプロセッサコアの1つのマスタの複数のバーチャルマシン110-cs-vmのうちの1つのバーチャルマシンを指定する。
ステップ520Bでは、セーフソフトウェアを実行するように設定されているセーフバーチャルマシン110-cs-vm0になるように、複数のバーチャルマシン100-cs-vmのうちの別の1つのバーチャルマシンを指定する。このセーフマスタ110-cs-vm0は、セーフソフトウェアを実行するように設定されたセーフマスタであってよい。
ステップ530Bでは、ステートマシン130の特定の状態へのリソース120の遷移をこのセキュアバーチャルマシン110-cs-vmcsだけに許可し、かつステートマシン130の別の特定の状態へのリソース120の遷移をこのセーフバーチャルマシン110-cs-vm0だけに許可することによって、ステートマシン130により、セキュアバーチャルマシン110-cs-vmcsとセーフバーチャルマシン110-cs-vm0とによって共有されるように設定されているリソース120を保護する。
本開示の技術はまた、以下の実施例においても説明可能である。
実施例1.SoC(System on Chip)であって、SoCは、セキュリティソフトウェアを実行するように設定されているセキュアマスタおよび非セキュリティソフトウェアを実行するように設定されている非セキュアマスタを含む複数のプロセッサコアと、セキュアマスタと非セキュアマスタとによって共有されるように設定されているリソースと、ステートマシンの特定の状態へのリソースの遷移がセキュアマスタだけに許可され、かつステートマシンの別の特定の状態へのリソースの遷移が非セキュアマスタだけに許可されることによって、リソースが保護されるように設定されているステートマシンと、を有する。
実施例2.非セキュアマスタは、セーフティソフトウェアを実行するように設定されたセーフマスタである、実施例1のSoC。
実施例3.セキュアマスタは、バストランザクションの一部として、リソースにセキュアマスタとして名乗り出るように設定されている、実施例1~2の任意の組み合わせのSoC。
実施例4.セキュアマスタまたは非セキュアマスタは、バストランザクションの一部でありかつリソースに格納された設定可能な、またはハードコーディングされた参照マスタ識別子に相当するマスタ識別子によって識別可能である、実施例1~3の任意の組み合わせのSoC。
実施例5.設定可能な参照マスタ識別子は、書き込み保護されている、実施例1~4の任意の組み合わせのSoC。
実施例6.複数のプロセッサコアのうちの別の1つをセキュアマスタまたは非セキュアマスタとしてそれぞれ識別するために、参照マスタ識別子に合致するマスタ識別子によって識別可能なセキュアマスタまたは非セキュアマスタだけに、参照マスタ識別子の変更が許可される、実施例1~5の任意の組み合わせのSoC。
実施例7.セキュアマスタは、バストランザクションの一部として、側波帯信号を介し、セキュアマスタとしてのその識別子をリソース保護レジスタに伝送するように設定されている、実施例1~6の任意の組み合わせのSoC。
実施例8.リソースはレジスタである、実施例1~7の任意の組み合わせのSoC。
実施例9.さらに、複数のリソースと複数のステートマシンとを有し、各ステートマシンは、複数のリソースのうちのそれぞれ1つのリソースに対応する、実施例1~8の任意の組み合わせのSoC。
実施例10.ステートマシンは、実行状態から設定状態へのリソースの遷移を非セキュアマスタだけに許可するように設定されており、設定状態中は、非セキュアマスタだけにリソースの再設定が許可される、実施例1~9の任意の組み合わせのSoC。
実施例11.再設定では、セキュアマスタによってチェックされる前に、許可されない設定がアクティブにならないようにするために、新たな設定データがシャドウレジスタに書き込まれる、実施例1~10の任意の組み合わせのSoC。
実施例12.ステートマシンは、設定状態からチェック状態へのリソースの遷移をセキュアマスタだけに許可するように設定されており、チェック状態中は、リソースまたはリソースのシャドウレジスタの設定は、変更不可であり、かつチェックされる、実施例1~11の任意の組み合わせのSoC。
実施例13.ステートマシンは、チェック状態から実行状態へのリソースの遷移をセキュアマスタだけに許可するように設定されており、実行状態中は、リソースは、通常に、チェックされた設定でセキュアに動作する、実施例1~12の任意の組み合わせのSoC。
実施例14.リソースは、メモリへのアクセスを制御するように構成されているバスメモリ保護ユニット(MPU:Memory Protection Unit)である、実施例1~13の任意の組み合わせのSoC。
実施例15.SoC(System on Chip)であって、SoCは、セキュリティソフトウェアを実行するように設定されているセキュアバーチャルマシンおよび非セキュリティソフトウェアを実行するように設定されている非セキュアバーチャルマシンを含む複数のバーチャルマシンを有するマスタを含む複数のプロセッサコアと、セキュアバーチャルマシンと非セキュアバーチャルマシンとによって共有されるように設定されているリソースと、ステートマシンの特定の状態へのリソースの遷移がセキュアバーチャルマシンだけに許可され、ステートマシンの別の特定の状態へのリソースの遷移が非セキュアバーチャルマシンだけに許可されることにより、リソースが保護されるように設定されているステートマシンと、を有する。
実施例16.バストランザクションの一部でありかつリソースに格納された設定可能な、またはハードコーティングされた参照識別子に相当するセキュアバーチャルマシン識別子によってセキュアバーチャルマシンが識別可能である、実施例15のSoC。
実施例17.セキュアバーチャルマシンは、バストランザクションの一部として、リソースにセキュアバーチャルマシンとして名乗り出るように設定されている、実施例15~16の任意の組み合わせのSoC。
実施例18.SoC(System on Chip)であって、SoCは、セキュリティソフトウェアを実行するように設定されているセキュアマスタを含む複数のプロセッサコアと、ステートマシンの特定の状態へのリソースの遷移がセキュアマスタだけに許可されることにより、リソースが保護されるように設定されているステートマシンと、を有するSoC(System on Chip)。
実施例19.セキュアマスタは、HSM(Hardware Security Module)である、実施例18のSoC。
実施例20.リソース保護方法であって、リソース保護方法では、複数のプロセッサコアのうちの1つのプロセッサコアが、セキュリティソフトウェアを実行するように構成されているセキュアマスタになるように指定し、複数のプロセッサコアのうちの別の1つのプロセッサコアが、非セキュリティソフトウェアを実行するように構成されている非セキュアマスタになるように指定し、ステートマシンの特定の状態へのリソースの遷移をこのセキュアマスタだけに許可し、かつステートマシンの別の特定の状態へのリソースの遷移をこの非セキュアマスタだけに許可することにより、セキュアマスタと非セキュアマスタとによって共有されるように設定されているリソースをステートマシンによって保護する、リソース保護方法。
実施例21.非セキュアマスタは、セーフティソフトウェアを実行するように設定されたセーフティマスタである、実施例20のリソース保護方法。
実施例22.さらに、セキュアマスタは、バストランザクションの一部として、リソースにセキュアマスタとして名乗り出る、実施例20~21の任意の組み合わせのリソース保護方法。
実施例23.セキュアマスタまたは非セキュアマスタは、バストランザクションの一部であるマスタ識別子によって識別可能であり、さらに、この方法では、マスタ識別子と、リソースに格納された設定可能な、またはハードコーティングされた参照マスタ識別子と、を比較する、実施例20~22の任意の組み合わせのリソース保護方法。
実施例24.さらに、設定可能な参照マスタ識別子を書き込み保護する、実施例20~23の任意の組み合わせのリソース保護方法。
実施例25.さらに、複数のプロセッサコアのうちの別の1つをセキュアマスタまたは非セキュアマスタとしてそれぞれ識別するために、参照マスタ識別子に合致するマスタ識別子によって識別可能なセキュアマスタまたは非セキュアマスタだけに、参照マスタ識別子の変更を許可する、実施例20~24の任意の組み合わせのリソース保護方法。
実施例26.さらに、セキュアマスタにより、バストランザクションの一部として、側波帯信号を介し、セキュアマスタとしてのその識別子をリソース保護レジスタに伝送する、実施例20~26の任意の組み合わせのリソース保護方法。
実施例27.リソースは、レジスタである、実施例20~26の任意の組み合わせのリソース保護方法。
実施例28.さらに、複数のステートマシンにより、複数のそれぞれのリソースを保護する、実施例20~27の任意の組み合わせのリソース保護方法。
実施例29.さらに、ステートマシンにより、実行状態から設定状態へのリソースの遷移を非セキュアマスタだけに許可し、設定状態中は、非セキュアマスタだけにリソースの再設定を許可する、実施例20~28の任意の組み合わせのリソース保護方法。
実施例30.再設定では、セキュアマスタによってチェックされる前に、許可されない設定がアクティブにならないようにするために、新たな設定データをシャドウレジスタに書き込む、実施例20~29の任意の組み合わせのリソース保護方法。
実施例31.さらに、ステートマシンにより、設定状態からチェック状態へのリソースの遷移をセキュアマスタだけに許可し、チェック状態中は、リソース、またはリソースのシャドウレジスタの設定は、変更不可であり、かつチェックされる、実施例20~30の任意の組み合わせのリソース保護方法。
実施例32.さらに、ステートマシンにより、チェック状態から実行状態へのリソースの遷移をセキュアマスタだけに許可し、実行状態中は、リソースは、通常に、チェックされた設定でセキュアに動作する、実施例20~31の任意の組み合わせのリソース保護方法。
実施例33.さらに、リソースであるバスMPU(Memory Protection Unit)によってメモリへのアクセスを制御する、実施例20~32の任意の組み合わせのリソース保護方法。
実施例34.リソース保護方法であって、リソース保護方法では、複数のプロセッサコアのうちの1つのプロセッサコアのマスタの複数のバーチャルマシンのうちの1つのバーチャルマシンを、セキュリティソフトウェアを実行するように設定されているセキュアバーチャルマシンに指定し、複数のバーチャルマシンのうちの別の1つのバーチャルマシンを、非セキュリティソフトウェアを実行するように設定されている非セキュアバーチャルマシンに指定し、ステートマシンの特定の状態へのリソースの遷移をこのセキュアバーチャルマシンだけに許可し、かつステートマシンの別の特定の状態へのリソースの遷移をこの非セキュアバーチャルマシンだけに許可することによって、セキュアバーチャルマシンと非セキュアバーチャルマシンとによって共有されるように設定されているリソースをステートマシンによって保護する、リソース保護方法。
実施例35.セキュアバーチャルマシンは、バストランザクションの一部であるセキュアバーチャルマシン識別子によって識別可能であり、この方法ではさらに、セキュアバーチャルマシン識別子と、リソースに格納された設定可能な、またはハードコーティングされた参照識別子と、を比較する、実施例34のリソース保護方法。
実施例36.セキュアバーチャルマシンは、バストランザクションの一部として、リソースにセキュアバーチャルマシンとして名乗り出るように設定されている、実施例34~35の任意の組み合わせのリソース保護方法。
実施例37.セキュリティソフトウェアを実行するように設定されたセキュアマスタとして、複数のプロセッサコアのうちの1つのプロセッサコアを指定し、ステートマシンの特定の状態へのリソースの遷移をセキュアマスタだけに許可することにより、リソースをステートマシンによって保護するリソース保護方法。
実施例38.セキュアマスタは、HSM(Hardware Security Module)である、実施例37のリソース保護方法。上述のことは、例示的な実施形態に関連して説明されているが、「例示的」という語は、最善または最適ではなく、単なる例を意味することは明らかである。したがって本開示は、本開示の範囲内に含まれ得る択一的な形態、変更形態および等価形態を含むことを意図している。
ここでは特定の実施形態を例示しかつ説明して来たが、多種多様な択一的かつ/または等価的な実装により、本開示の範囲を逸脱することなく、ここに示しかつ説明した特定の実施形態が置き換えられ得ることを当業者は理解されたい。本開示は、ここで説明した特定の実施形態の任意の適合化または変化形態を含むことを意図している。
Claims (15)
- SoC(System on Chip)であって、前記SoCは、
セキュリティソフトウェアを実行するように設定されているセキュアマスタおよび非セキュリティソフトウェアを実行するように設定されている非セキュアマスタを含む複数のプロセッサコアと、
前記セキュアマスタと前記非セキュアマスタとによって共有されるように設定されているリソースと、
ステートマシンであって、前記ステートマシンの特定の状態への前記リソースの遷移が前記セキュアマスタだけに許可され、かつ、前記ステートマシンの別の特定の状態への前記リソースの遷移が前記非セキュアマスタだけに許可されることによって、前記リソースが保護されるように設定されているステートマシンと、
を有し、
前記セキュアマスタは、バストランザクションの一部として、前記リソースに前記セキュアマスタとして名乗り出るように設定されている、
SoC。 - 前記非セキュアマスタは、セーフティソフトウェアを実行するように設定されたセーフマスタである、
請求項1記載のSoC。 - SoC(System on Chip)であって、前記SoCは、
セキュリティソフトウェアを実行するように設定されているセキュアマスタおよび非セキュリティソフトウェアを実行するように設定されている非セキュアマスタを含む複数のプロセッサコアと、
前記セキュアマスタと前記非セキュアマスタとによって共有されるように設定されているリソースと、
ステートマシンであって、前記ステートマシンの特定の状態への前記リソースの遷移が前記セキュアマスタだけに許可され、かつ、前記ステートマシンの別の特定の状態への前記リソースの遷移が前記非セキュアマスタだけに許可されることによって、前記リソースが保護されるように設定されているステートマシンと、
を有し、
前記セキュアマスタまたは前記非セキュアマスタは、バストランザクションの一部でありかつ前記リソースに格納された設定可能な、または、ハードコーディングされた参照マスタ識別子に相当するマスタ識別子によって識別可能である、
SoC。 - 設定可能な前記参照マスタ識別子は、書き込み保護されている、
請求項3記載のSoC。 - 前記参照マスタ識別子に合致する前記マスタ識別子によって識別可能な前記セキュアマスタまたは前記非セキュアマスタだけに、前記参照マスタ識別子の変更が許可され、前記複数のプロセッサコアのうちの別の1つを前記セキュアマスタまたは前記非セキュアマスタとしてそれぞれ識別する、
請求項4記載のSoC。 - 前記セキュアマスタは、前記バストランザクションの一部として、側波帯信号を介し、前記セキュアマスタとしてのその識別子をリソース保護レジスタに伝送するように設定されている、
請求項1記載のSoC。 - 前記リソースは、レジスタである、
請求項1または3記載のSoC。 - 前記SoCは、さらに、
複数のリソースと、
複数のステートマシンと、
を有し、各ステートマシンは、前記複数のリソースのうちのそれぞれ1つに対応する、
請求項1または3記載のSoC。 - SoC(System on Chip)であって、前記SoCは、
セキュリティソフトウェアを実行するように設定されているセキュアマスタおよび非セキュリティソフトウェアを実行するように設定されている非セキュアマスタを含む複数のプロセッサコアと、
前記セキュアマスタと前記非セキュアマスタとによって共有されるように設定されているリソースと、
ステートマシンであって、前記ステートマシンの特定の状態への前記リソースの遷移が前記セキュアマスタだけに許可され、かつ、前記ステートマシンの別の特定の状態への前記リソースの遷移が前記非セキュアマスタだけに許可されることによって、前記リソースが保護されるように設定されているステートマシンと、
を有し、
前記ステートマシンは、実行状態から設定状態への前記リソースの遷移を前記非セキュアマスタだけに許可するように設定されており、設定状態中は、前記非セキュアマスタだけに前記リソースの再設定が許可される、
SoC。 - 前記再設定では、前記セキュアマスタによってチェックされる前に、許可されない設定がアクティブにならないようにするために、新たな設定データがシャドウレジスタに書き込まれる、
請求項9記載のSoC。 - SoC(System on Chip)であって、前記SoCは、
セキュリティソフトウェアを実行するように設定されているセキュアマスタおよび非セキュリティソフトウェアを実行するように設定されている非セキュアマスタを含む複数のプロセッサコアと、
前記セキュアマスタと前記非セキュアマスタとによって共有されるように設定されているリソースと、
ステートマシンであって、前記ステートマシンの特定の状態への前記リソースの遷移が前記セキュアマスタだけに許可され、かつ、前記ステートマシンの別の特定の状態への前記リソースの遷移が前記非セキュアマスタだけに許可されることによって、前記リソースが保護されるように設定されているステートマシンと、
を有し、
前記ステートマシンは、設定状態からチェック状態への前記リソースの遷移が前記セキュアマスタだけに許可されるように設定されており、チェック状態中は、前記リソースまたは前記リソースのシャドウレジスタの設定は、変更不可であり、かつチェックされる、
SoC。 - 前記ステートマシンは、前記チェック状態から実行状態への前記リソースの遷移が前記セキュアマスタだけに許可されるように設定されており、実行状態中は、前記リソースは、通常に、チェックされた前記設定でセキュアに動作する、
請求項11記載のSoC。 - 前記リソースは、メモリへのアクセスを制御するように構成されているバスメモリ保護ユニット(MPU:Memory Protection Unit)である、
請求項1、3、9、11のいずれかに記載のSoC。 - SoC(System on Chip)であって、前記SoCは、
セキュリティソフトウェアを実行するように設定されているセキュアバーチャルマシンおよび非セキュリティソフトウェアを実行するように設定されている非セキュアバーチャルマシンを含む複数のバーチャルマシンを有するマスタを含む複数のプロセッサコアと、
前記セキュアバーチャルマシンと前記非セキュアバーチャルマシンとによって共有されるように設定されているリソースと、
ステートマシンあって、前記ステートマシンの特定の状態への前記リソースの遷移が前記セキュアバーチャルマシンだけに許可され、前記ステートマシンの別の特定の状態への前記リソースの遷移が前記非セキュアバーチャルマシンだけに許可されることにより、前記リソースが保護されるように設定されているステートマシンと、
を有し、
前記セキュアバーチャルマシンは、バストランザクションの一部でありかつ前記リソースに格納された設定可能な、または、ハードコーティングされた参照識別子に相当するセキュアバーチャルマシン識別子によって識別可能である、
SoC。 - SoC(System on Chip)であって、前記SoCは、
セキュリティソフトウェアを実行するように設定されているセキュアバーチャルマシンおよび非セキュリティソフトウェアを実行するように設定されている非セキュアバーチャルマシンを含む複数のバーチャルマシンを有するマスタを含む複数のプロセッサコアと、
前記セキュアバーチャルマシンと前記非セキュアバーチャルマシンとによって共有されるように設定されているリソースと、
ステートマシンあって、前記ステートマシンの特定の状態への前記リソースの遷移が前記セキュアバーチャルマシンだけに許可され、前記ステートマシンの別の特定の状態への前記リソースの遷移が前記非セキュアバーチャルマシンだけに許可されることにより、前記リソースが保護されるように設定されているステートマシンと、
を有し、
前記セキュアバーチャルマシンは、バストランザクションの一部として、前記リソースに前記セキュアバーチャルマシンとして名乗り出るように設定されている、
SoC。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/441,227 US11288404B2 (en) | 2019-06-14 | 2019-06-14 | Resource protection |
US16/441,227 | 2019-06-14 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2020205050A JP2020205050A (ja) | 2020-12-24 |
JP7512097B2 true JP7512097B2 (ja) | 2024-07-08 |
Family
ID=
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040153672A1 (en) | 2002-11-18 | 2004-08-05 | Arm Limited | Switching between secure and non-secure processing modes |
US20080163359A1 (en) | 2007-01-03 | 2008-07-03 | Texas Instruments Incorporated | Static And Dynamic Firewalls |
JP2011511383A (ja) | 2008-02-07 | 2011-04-07 | アナログ・デバイシズ・インコーポレーテッド | 保護された動作モードの間にシステムアクセスを制御するための方法および装置 |
JP2014086089A (ja) | 2012-10-19 | 2014-05-12 | Samsung Electronics Co Ltd | セキュリティ管理ユニットとそれを含むホストコントローラインターフェース及びその動作方法、並びにホストコントローラインターフェースを含むコンピュータシステム |
JP2016091554A (ja) | 2014-10-30 | 2016-05-23 | ローベルト ボッシュ ゲゼルシャフト ミット ベシュレンクテル ハフツング | 制御装置を駆動する方法 |
US20190044976A1 (en) | 2018-03-30 | 2019-02-07 | Intel Corporation | Systems and methods for security protocol execution in a hierarchical state machine-driven execution plan |
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040153672A1 (en) | 2002-11-18 | 2004-08-05 | Arm Limited | Switching between secure and non-secure processing modes |
US20080163359A1 (en) | 2007-01-03 | 2008-07-03 | Texas Instruments Incorporated | Static And Dynamic Firewalls |
JP2011511383A (ja) | 2008-02-07 | 2011-04-07 | アナログ・デバイシズ・インコーポレーテッド | 保護された動作モードの間にシステムアクセスを制御するための方法および装置 |
JP2014086089A (ja) | 2012-10-19 | 2014-05-12 | Samsung Electronics Co Ltd | セキュリティ管理ユニットとそれを含むホストコントローラインターフェース及びその動作方法、並びにホストコントローラインターフェースを含むコンピュータシステム |
JP2016091554A (ja) | 2014-10-30 | 2016-05-23 | ローベルト ボッシュ ゲゼルシャフト ミット ベシュレンクテル ハフツング | 制御装置を駆動する方法 |
US20190044976A1 (en) | 2018-03-30 | 2019-02-07 | Intel Corporation | Systems and methods for security protocol execution in a hierarchical state machine-driven execution plan |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8458791B2 (en) | Hardware-implemented hypervisor for root-of-trust monitoring and control of computer system | |
US7444668B2 (en) | Method and apparatus for determining access permission | |
US10235515B2 (en) | Method and apparatus for on-demand isolated I/O channels for secure applications | |
US10489332B2 (en) | System and method for per-task memory protection for a non-programmable bus master | |
JP5975629B2 (ja) | メモリ保護ユニットおよび記憶素子へのアクセスコントロール方法 | |
US11675526B2 (en) | Memory-access control | |
US11698995B2 (en) | Peripheral access on a secure-aware bus system | |
US11366940B2 (en) | Secure-aware bus system | |
US11537762B2 (en) | Secure peripheral interconnect | |
JP2005520231A (ja) | 周辺素子へのアクセス保護を含むデータプロセッシングシステムとその方法 | |
CN112818327A (zh) | 基于TrustZone的用户级代码和数据安全可信保护方法及装置 | |
WO2008030727A2 (en) | Access control of memory space in microprocessor systems | |
JP7001670B2 (ja) | コンテキストベースの保護システム | |
JP7512097B2 (ja) | リソース保護 | |
US11288404B2 (en) | Resource protection | |
US11188640B1 (en) | Platform firmware isolation | |
US10592663B2 (en) | Technologies for USB controller state integrity protection | |
US12013931B2 (en) | Method and system for freedom from interference (FFI) | |
TW202324158A (zh) | 以安全分區記憶體空間於系統單晶片中錯誤管理 | |
ES2803209T3 (es) | Procedimiento de control sistemático de direcciones de zonas de memoria en el marco de una transferencia por acceso directo | |
EP3314516B1 (en) | System management mode privilege architecture | |
US20230342187A1 (en) | Processing of interrupts | |
WO2023283004A1 (en) | Debug in system on a chip with securely partitioned memory space | |
CN115905108A (zh) | 一种用于risc-v芯片的iopmp架构实现方法 |