ここで 3 つのまったく異なるものを混同しました。
カーネル モード/ユーザー モードは実行権限に関するものです。x86 では「リング」という用語が使用されますが、ARM ではプロセッサ モードに権限レベルが組み込まれています。リング 3 と USR モード、およびリング 0 と SVC モード (明らかにアーキテクチャの違いは、それほど簡単ではないことを意味します)。
メモリ保護は別の概念であり、ハードウェアを CPU にボルトで固定して、そのメモリと MMIO アクセスを定義されたマッピング内に制限するか、それ以外の場合は障害を発生させます (これにより、デマンド ページ仮想メモリなどのさらなる開発が可能になります)。この点で、x86 での「保護モード」と「リアル モード」は、MMU/MPU をオンまたはオフにするのとほとんど同じです。明らかに、このアイデアを最初のアイデアと結合して、特権/非特権メモリの概念を許可することは十分に理にかなっていますが、x86 アーキテクチャとその進化の遺産により、その結合が人為的に強力になります。ARM では、MMU がオフです。
一方、TrustZone は、システム ベンダー/オペレーターとユーザーの間のまったく異なるレベルでのセキュリティと認証に関するものです。x86 システムでは、通常、安全なキー ストレージやブート検証などのためにハードウェア TPM を使用する場合があります。メイン プロセッサがアクセスできるものは、ユーザーがそこで実行されているソフトウェアを置き換えることができるため、安全とは見なされません (通常の実行特権メカニズムは役に立ちません。ユーザーは単にカーネル全体を悪意のあるものに切り替えることができます)。TrustZone のポイントは、システム全体のハードウェア サポートです。これにより、「通常の」システムの上に安全なプロセッサ/メモリ/周辺機器を仮想化できるようになり、余分なハードウェアの全負荷を詰め込む必要がなくなります。たとえば、RAM のチャンクを単純に分割して、通常の世界から物理的にアクセスできない*ようにし、「TPM」を、最も特権のある通常の世界のコードでさえ干渉できない検証済みの安全な世界のソフトウェアとして純粋に実装することができます。
x86 の世界では、ARM SoC で TrustZone が採用されているユースケースの一部に対応する (外部 TPM サポートを前提として) 最も関連性の高いものとして、Intel のTrusted Execution Technologyを検討する必要があります。これは直接的な比較ではないことに注意してください。TXT の CPU 中心の性質は、実際には単なるセキュア ブート ソリューションであることを意味します。TrustZone はシステム全体であり、より基本的なビルディング ブロックです。セキュア ブート ソリューションや TPM を構築できますが、CPU 中心のアプローチであるエンド ツー エンドのセキュア コンテンツ パスなどを構築することもできます。できません。
* ソフトウェアの観点からは「物理的」という意味であることに注意してください。つまり、それはハードウェアにあり、適切に実装されていれば、それを回避するためにソフトウェアができることは何もありません。TrustZone は明らかに実際の物理的なセキュリティ ソリューションではありません。チップからパッケージを外してシリコンを直接プロービングすることを決意した人々に対する保護を提供するものではなく、また提供することを意図したものでもありません。