Login

TrustZone

TrustZone Image
ARM TrustZone®テクノロジは、高性能コンピューティング プラットフォーム上の多数のアプリケーション(電子決済、デジタル著作権管理(DRM)、Webサービスなど)に対する、システム全体のセキュリティのアプローチです。

TrustZoneテクノロジは、Cortex™-Aプロセッサと密に統合され、AMBA® AXI™バスおよび特定のTrustZoneシステムIPブロックを介してシステム全体に展開されます。 このシステムのアプローチにて、セキュア メモリ、暗号ブロック、キーボードや画面などペリフェラルの安全性も確保できるようになり、ソフトウェア攻撃からも保護されるようになることを意味します。

TrustZone Readyプログラムの推奨に従って開発され、TrustZoneテクノロジを使用するデバイスは、完全に信頼できる実行環境(TEE)およびセキュリティ認識アプリケーションとセキュア サービスのサポートに対応するプラットフォームを提供しています。 

 


モバイル デバイスは、多彩なアプリケーションをインターネットからダウンロードできるオープン ソフトウェア プラットフォームへと進化してきました。 これらのアプリケーションは、多くの場合、デバイスOEMによる検証で品質が確認されますが、すべての機能をテストすることはできません。このクラスのデバイスをターゲットに作成された悪質なコードは増え続けています。

同時に、モバイル デバイスで高価なサービスの処理をすることへの要求も高まってきました。 有料でハリウッドのヒット作品をダウンロードして一定期間のみ視聴できる機能や、ハンドセットを使用して離れた場所から請求に対する支払いを行ったり、銀行口座を管理したりする機能など、新しいビジネス モデルが生まれています。

このトレンドから見ると、携帯電話は、マルウェアやトロイの木馬、ルートキットなどのようなソフトウェア攻撃の新たな標的となることが予測されます。 ただし、ARM TrustZoneテクノロジをベースとした高度なセキュリティ テクノロジのアプリケーションを使用し、不正使用を防ぐSecurCore™要素を統合することにより、多彩な機能を持つオープン オペレーティング環境と堅牢なセキュリティ ソリューションを両方とも備えたデバイスを開発できます。

アプリケーションの例

- モバイルでの支払いおよびバンキングのユーザ認証を強化する、安全なPIN入力
- ソフトウェア攻撃から保護されているアンチマルウェア
- デジタル著作権管理
- ソフトウェア ライセンス管理
- ロイヤリティ ベースのアプリケーション
- クラウド ベースのドキュメントのアクセス制御
- モバイルTVの電子チケット発行

メインのOSとは別の信頼される実行環境で動作する、TrustZoneテクノロジを用いたアプリケーションは、SoC上でソフトウェア/マルウェアの攻撃から保護されます。 TrustZoneはセキュア モードに切り替わり、ハードウェアでアイソレーションされた環境を提供します。 信頼されるアプリケーションは、通常、隔離された領域で保護されるため、別の決済会社からの信頼されるアプリケーションをデバイス上で共存させることができます。 プロセッサのサポート

ARM TrustZoneテクノロジは、すべてのCortex-Aクラス プロセッサに実装される機能であり、ARMアーキテクチャ セキュリティ拡張機能により導入されました。 これらの拡張機能は、ベンダ、プラットフォーム、およびアプリケーションで一貫性のあるプログラマ モデルを可能にし、ハードウェアでサポートされる真のセキュリティ環境を実現します。

TrustZoneをサポートするARMプロセッサは以下のとおりです。

GlobalPlatformのAPIサポート

ARMがTrustZone APIをGlobalPlatformに提供したのがきっかけで、TEEクライアントAPIが開発されました。 ARMはまた、他の会社とも協力して、信頼されるOSと信頼されるアプリケーションの間のインタフェースを取るTEE内部APIを開発しました。 詳細については、GlobalPlatformのWebサイトを参照してください。 TEEの標準化の結果、信頼されるアプリケーションの導入が急速に進むことが期待されています。 


TrustZoneハードウェア アーキテクチャ

TrustZoneハードウェア アーキテクチャの目的は、想定される特定の脅威にデバイスが対抗できるように、セキュリティ フレームワークを提供することです。 TrustZoneテクノロジにより、SoC設計者は、一般的なセキュリティ ソリューションの代わりに、セキュリティ環境内で特定の役割を満たす各種コンポーネントから必要なものを選択することができます。

このアーキテクチャのセキュリティ上の主な目標は、特定の攻撃から資産の機密性および整合性を保護するための、プログラム可能な環境を構築できるようにすることです。 これらの特性を持つプラットフォームを使用して、従来の方法ではコスト効率が低かった、さまざまなセキュリティ ソリューション セットを構築できます。 

システムのセキュリティを確保するには、すべてのSoCハードウェアおよびソフトウェアのリソースをパーティション分割して、それらがセキュリティ サブシステムのためのセキュア ワールドと、その他あらゆる対象用の通常環境のいずれかに存在できるようにします。 TrustZone対応AMBA3 AXI™バス ファブリックに存在するハードウェア ロジックにより、通常環境のコンポーネントからセキュア ワールドのリソースへのアクセスを遮断し、これら2つの間に強力な境界を構築します。 セキュア ワールドにセンシティブなリソースを格納して、セキュア プロセッサ コアで動作する堅牢なソフトウェアを実装する設計では、想定される多数の攻撃から資産を保護できます。キーボードやタッチ スクリーンを使用して入力されるパスワードなど、通常は安全を確保するのが困難なものも保護できます。 ハードウェアを通してセキュリティを重視したペリフェラルを分離することにより、設計者はセキュリティ評価の実行が必要なサブシステムの数を制限できるので、デバイスをセキュリティ認証に提出する場合にコストを削減できます。

TrustZoneハードウェア アーキテクチャの2つ目の側面は、ARMプロセッサ コアの一部に実装された拡張機能です。 これらの追加機能により、シングル フィジカル プロセッサ コアでは、通常環境およびセキュア ワールドの両方から安全かつ効率的にタイム スライス方式でコードを実行できます。これにより、ダイサイズおよび消費電力を節約する専用のセキュリティ プロセッサ コアが必要なくなり、通常のオペレーティング環境で高性能なセキュリティ ソフトウェアを実行できます。

2つの仮想プロセッサは、現在動作している仮想プロセッサを変更する場合、監視モードと呼ばれる新しいプロセッサ モード経由でコンテキスト切り替えを行います。

フィジカル プロセッサが通常環境から監視モードに入ることができるメカニズムは、厳密に制御され、すべて監視モード ソフトウェアに対して例外として示されます。監視モードへの切り替えは、SMC(セキュア モニタ コール)命令という専用の命令を実行するソフトウェアで、またはハードウェア例外メカニズムのサブセットで行うことができます。 IRQ、FIQ、外部データ アボート、および外部プリフェッチ アボートの各例外は、いずれもプロセッサがセキュア モニター モードに切り替わるように構成できます。

セキュア モニター モード内で実行されるソフトウェアは実装済みですが、通常は現在の環境の状態を保存して、切り替える環境の状態を復元します。 次に、例外からの復帰が実行されて、復元後の環境で処理が再開されます。 TrustZoneハードウェア アーキテクチャの最後の側面は、通常環境のデバッグに影響を与えずに、セキュア ワールドのデバッグへのアクセスを制御できる、セキュリティ対応デバッグ インフラストラクチャです。


TrustZoneソフトウェア アーキテクチャ

 

SoCハードウェアでのセキュア ワールドの実装には、セキュア ワールド内で動作し、格納されているセンシティブな資産を活用できるセキュリティ ソフトウェアが必要です。

セキュア ソフトウェア アーキテクチャ

TrustZone対応プロセッサ コア上のセキュア ワールド ソフトウェア スタックに実装可能な、多数のソフトウェア アーキテクチャが存在します。 最も高度なアーキテクチャは、専用のセキュア ワールド オペレーティング システムです。最もシンプルなアーキテクチャは、セキュア ワールドに配置されたコードの同期ライブラリです。 これらの2つの中間に位置するオプションも多数あります。

セキュア カーネル

専用のセキュア カーネルは、複雑になる可能性が高いものですが、強力な設計です。 複数の独立したセキュア ワールド アプリケーションの同時実行、新しいセキュリティ アプリケーションの実行時ダウンロード、および通常環境から完全に独立したセキュア ワールド タスクをシミュレートできます。

これらの設計は、AMP(非対称型マルチプロセシング)(またはTrustZoneセキュリティ ホワイト ペーパー(685 KB)のダウンロードPDFファイル(685 KB)のダウンロード)構成で2つの別個のフィジカル プロセッサを持つSoCに見られる、ソフトウェア スタックと非常によく似ています。 各仮想プロセッサで動作するソフトウェアは、スタンドアロン オペレーティング システムであり、各ワールドはハードウェア割り込みを使用し、現在動作しているワールドにプリエンプションを実行して、プロセッサ タイムを取得します。

通信プロトコルを使用して、セキュア ワールド タスクを通常環境のスレッド(タスクを要求したスレッド)に関連付ける緊密に統合された設計では、SMP(対称型マルチプロセシング)設計の多くの利点を活用できます。 これらの設計でセキュア ワールド アプリケーションは、たとえば、支援する通常環境タスクの優先度を継承できます。 これにより、メディア アプリケーションに対して、特定の形式のソフトのリアル タイム応答が有効になります。

セキュリティ拡張機能は、ARMアーキテクチャのオープン コンポーネントであり、あらゆる開発者が要件に応じて独自のセキュア ワールド ソフトウェア環境を作成できます。

完全なセキュアOSの実装には固有の複雑さがあり、機能およびパフォーマンスを保証する必要があるため、多数のパートナーが、この領域を専門とする企業(Gieseke & DevrientやTrusted Logicなど)とのパートナーシップに基づいて業務を行うようになります。


TrustZoneシステムの例

TrustZone対応デバイスを実装する方法は無数にありますが、ターゲット アプリケーションと、パフォーマンス、電力およびコストのエンジニアリング トレード オフに基づいて、大きく3つのグループ(ソリューションの階層)に分類できます。

階層1

TrustZone階層1システム アーキテクチャ ブロック図 - 大きいサイズのバージョンを表示するにはここをクリック

TrustZone階層1システム アーキテクチャ ブロック図(1200ピクセル幅)

階層1ソリューションは、オープン ソフトウェア プラットフォーム デバイスでキーパッドおよび画面からPIN(個人識別番号)を入力する場合の安全性の確保を目的とした、ベースライン ソリューションを表します。 ノンセキュア モードでは、オープンOS(WindowsCE、Linux、Symbianなど)の制御下でキーボードおよび画面は通常どおり動作しますが、アプリケーションで支払いが要求されると、これらのペリフェラルがセキュア カーネルの制御下に置かれます。

このタイプのソリューションはできる限りコストを抑える必要があります。TrustZoneメモリ アダプタ ファブリック コンポーネントの追加のみで、オン チップSRAMの連続ブロックの安全を確保できます。 マスタ キーおよびSIMインタフェース ブロックは、AXI2AHBブリッジをセキュアな状態に関連付けることにより、安全が確保されます。 同様に、キーボード マスタ インタフェースおよびLECコントローラのブリッジは、プロセッサによって動的に制御して、領域全体をセキュア モードまたはノンセキュア モードに設定することができます。

デバイスの起動時は、完全な「ルート オブ トラスト」プロセスを通して起動する必要があります。 多くのケースでは、ブートROMによってベースOSを起動し、モニターおよびセキュアOSをロードします。 ロードが完了すると、セキュアOSは従来のオープンOSを起動し、悪質なコードがプロセスを開始できないことを確認します。

階層2

TrustZone階層2システム アーキテクチャ ブロック図 - 大きいサイズのバージョンを表示するにはここをクリック

TrustZone階層2システム アーキテクチャ ブロック図(1200ピクセル幅)

階層2ソリューションは、階層1システムの完全なスーパーセットであり、コード移植性および決済サービスを簡単に組み込めるようになっています。階層2システムは、TrustZoneアドレス空間コントローラ(TZASC)の統合により、基本的なデジタル著作権管理(DRM)用のコスト効果の高いプラットフォームを提供して、貴重なコンテンツを保持するために使用されるRAMの領域を保護します。 さらに、オフチップ デコーダ エンジンを使用すると、コストの最小化や、特定のデコード テクノロジの提供、またはノンセキュア ソフトウェアからのアクセスの防止も行うことができます。

完全なDRMを有効にするために、通常はオンチップSRAMのサイズを大きくして、ダイナミックなコードの安全な実行領域を確保する必要があります。 アクセス可能な対象コンテンツ、アクセスできる期間、または、維持する再生の数について詳細を保持するためにE2PROMを実装することができます。

このタイプのソリューションでは、通常、中間または復号化されたコンテンツのストリーミング オフを回避するためにTrustZone保護コントローラを制御するか、ノンセキュアなコードおよびペリフェラルによってメディアを制御して、より多くのペリフェラルの安全を動的に確保することも必要になります。

階層3

階層3

TrustZone階層3システム アーキテクチャ ブロック図(1200ピクセル幅)

既存のソリューションの上に構築された階層3は、ビデオ ストリーミングおよびオンザフライ解凍を可能にする、高性能なDRMソリューションを提供します。この場合、デバイスを完全にセキュアな状態にして、コンテンツ プロバイダが認証できるプラットフォームを提供できます。認証では、キーが保護され、許可された情報の表示のみが許可されることを確認します。 いろいろな意味で似ていますが、さらにコスト効率が高く、セキュア ワールドとノンセキュア ワールドが完全に並列している2コア実装です。

より動的でセキュアなペリフェラルに加えて、このソリューションでは、DMAコントローラおよびメディア アクセラレータが(アクセラレータ コヒーレンス ポート(ACP)経由で)マルチコア プロセッサに接続されています。

 


システムIPのサポート

セキュリティは、1つのコンポーネントではなくシステム全体の属性です。 ARM® TrustZone®テクノロジを導入したシステムでは、セキュリティのためのパーティション分割をより簡単に行えるだけでなく、セキュリティ サブシステムのためのハードウェアによる保護を維持できます。 TrustZoneテクノロジを使用してセキュリティ サブシステムを設計するには、TrustZone対応プロセッサ コアだけではなく、バス ファブリック、セキュア メモリ、およびセキュア ペリフェラルも必要です。 ARMでは、セキュリティ サブシステムの基盤となる、さまざまなファブリックおよびペリフェラル コンポーネントを提供しています。

 

TrustZoneシステムIPに必要なコンポーネント
高度なAMBA 3インターコネクト ARM AMBA® 3.0 AXIバスは、プロセッサ コアのセキュア ステ―タスをSoCのメモリおよびペリフェラルなどに伝播できます。 NIC-301 
TrustZoneアドレス空間コントローラ TZ ASCは、セキュリティが強化されたメモリ保護ユニットとして動作し、DRAMの領域にセキュア状態でのみアクセスできるようにします。  PL380
 TrustZoneメモリ アダプタ  TZ MAは、セキュア モードでのみアクセスする必要がある、オンチップ メモリ用の単一領域TZ ASCとして動作します。  BP141
 TrustZone保護コントローラ  TZ PCは、ペリフェラルのセキュアな状態をソフトウェア制御で動的に維持します。  BP147
TrustZone割り込みコントローラ GIC(MPCore対応プロセッサ)がない場合に、通常およびセキュアな割り込みの優先度付けを有効にします。  

 


Maximise