7

Armのトラストゾーンを使用するアプリケーションを開発するにはどうすればよいですか?具体的には、機密データを安全な世界に保存できるプログラムを開発したいと考えています。

このプログラムは通常の世界で実行する必要がありますか、それとも安全な世界で実行する必要がありますか?安全な世界にトラストレットがあることは知っていますが、トラストレットを開発する必要がありますか?既存のセキュアワールドOSと直接対話するために使用できるSDKまたはAPIはありますか、それとも独自のセキュアOSをコンパイルしてインストールする必要がありますか?

アドバイスをいただければ幸いです。

ありがとうございました!

4

4 に答える 4

7

2 つの極端な点があります。これらは、 ARMs Security Technology: Building a Secure System using TrustZone Technologyのソフトウェア概要の章に記載されています。

API

スペクトルの一端には、通常の世界から呼び出すことができるAPIのセットしかありません。これについては、LinuxのSMC 呼び出しで詳しく説明されています。たとえば、デバイスに公開鍵と秘密鍵が含まれている場合、API呼び出しでデータに署名できます。通常の世界では秘密鍵にアクセスすることはできませんが、署名を確認することで、誰でもデバイスがオリジナルであることを確認できます。したがって、通常の世界では、この要求を任意の通信インターフェイスを介して自由に転送できます。これは、デバイスの認証の一部である可能性があります。

協調OS

このモードでは、セキュアな世界と通常の世界の両方に本格的な OS があります (他の場所ではTEEおよびREEと呼ばれます)。OS は、割り込みおよびスケジューリングと連携する必要があります。また、 SMC呼び出し、ロック解放アルゴリズム、セマフォを共有メモリと共に使用する場合もあります。

ARMは、セキュアワールドにはFIQを使用し、通常のワールドにはIRQを残すことをお勧めします。具体的には、通常の世界がこれまでFIQをマスクしないようにするための設定があります。これらの問題はすべて、システムが必要とするIPCスケジューリング割り込み応答などのタイプに依存しています。

最も単純なセキュアスケジューラは、常に通常の世界を先取りします。アイドルタスクだけがCPU を通常の世界に譲ります。より柔軟なソリューションでは、両方の世界が優先度の高いタスクと低いタスクを持つことができるように、スケジューラが協力します。

于 2013-10-16T17:47:08.177 に答える
1

より良い方法は、REE OS と TEE OS を 1 つのデバイスにインストールすることです。プログラムが機密性の高い処理を行う場合、デバイスは TEE OS に変更されるため、機密性の高いデータを安全に処理できます。機密データの処理が完了すると、デバイスは REE OS に変わります。しかし、デバイスに 2 つの OS スイッチを実装するのは大変な作業です。

于 2013-10-04T07:51:52.733 に答える
1

MobiCoreなどのオペレーティング システムは既に存在し、Samsung Galaxy S3 などのマス マーケット デバイスに展開されています。

MobiCore はAndroidと並行して動作する OS であるため、トラストレット (= MobiCore アプリ) は、信頼できる実行環境との通信を担当する Android OS の一部であるMobiCore ドライバーへの一連のシステム コールを介して Android アプリと通信できます。

上で説明したように、MobiCore のトラストレットを開発しようとしている場合は、MobiCore の Trustonic ベンチャーの開発者としてサインアップすることで、理論的には MobiCore 開発者になる必要があります。

ARM の TrustZone テクノロジを、オープンソースのセキュア OS を搭載した自分のデバイス/開発ボードで使用したい場合は、おそらく OpenVirtualization のSierraTEEを使用できます。これは、Xilinx Zynq-7000 AP SOC 用にコンパイルされ、Android と互換性があるようです。 OS。

于 2013-11-12T11:01:44.953 に答える