2019 年 10 月 23 日
Arm TrustZoneとOP-TEEの活用による組込みのセキュリテイ対策と課題
Arm® TrustZone® とTEE (OP-TEE) とは?
はじめに、Arm プロセッサの「TrustZone」と、その上に実装される「Trusted Execution Environment (TEE)」についての簡単な概要を説明します。
TrustZone は、コンピューターシステムのセキュリティを高めるための技術であり、非セキュアな環境とセキュアな環境にコンピューターリソースを分割して安全な実行環境を提供することを目的としています。TrustZone は、モバイルデバイスやマイクロコントローラーなどでの適用を含む様々なプラットフォームで利用できます。
この TrustZone が注目を集めるようになった理由の1つが、GlobalPlatform が、業界標準となる「Trusted Execution Environment(TEE)」を定義したことです。それまで、Trustzone の技術を使うためにユーザーは独自の実装を定義する必要がありましたが、TEE によって様々な企業や団体が協調して開発を行えるようになりました。
OP-TEE(Open Portable TEE)は 、TrustZone を用いてコードとデータの完全性と機密性を確保するための独立環境を提供するために実装されたオープンソースです。TEE 上で実行されているコードとデータが、汎用OSからアクセスや改竄できないようなセキュリティ層を追加するのです。OP-TEE は、TEE をオープンソースで実装したものです。それは、STMicroelectronics と Linaro Security Working Group の共同開発の成果です。 OP-TEE は、OS(optee_os)、クライアント(optee_client)、テストスイート(optee_test / xtest)および Linux ドライバで構成されています。
OP-TEE の構成を以下に示します。
TrustZone と OP-TEE を組込み機器で動作させるには
前節のおさらいですが、TrustZone は Arm プロセッサが持つセキュリティ機能であって、システムを Secure World(セキュアな環境) と Normal World(非セキュアな環境)に分離して、Normal World から Secure World へのアクセスを制限します。Normal World では、Linux や Android 等の従来からある OS やアプリケーションを動かし、Secure World では専用の OS やアプリケーションを動かします。その OS のひとつに、OP-TEE があります。
OP-TEE を組込み機器上で動作させるためには、OP-TEE のイメージを作成し、そのイメージで組込み機器を起動する必要があります。
イメージの作成
OP-TEE のイメージを作成するには、あなたの使用している SoC がすでに OP-TEE でサポートされているならば、ソフトウェアをビルドするだけです。OP-TEE は、様々な SoC やボードを想定されて開発されており、必要になるであろうイメージが用意されています(ブートローダ、OP-TEE OS、Linux カーネルドライバ、OP-TEE クライアント、最小限のルートファイルシステム)。
組込み機器の起動
次に、OP-TEE を起動します。OP-TEE を使用した一般的な起動の流れは、次のようになります。
- SPL(Secondary Program Loader)が OP-TEE と ブートローダー(U-Boot)をロード
- OP-TEE にジャンプし、OP- TEE を初期化
- 非セキュアなコンテキストに切り替え、汎用 OS(Linux等)を起動
※OP-TEE はメモリ内に常駐し、汎用 OS に対して安全なサービスを提供します
このとき、ブートシーケンスの脆弱性が機密データを危険にさらす可能性に注意する必要があります。多くの場合 SecureBoot などの仕組みを利用して、各シーケンスの安全を確保するなど対策が求められます。
OP-TEEの活用
OP-TEE を活用したセキュリティソリューションを構築するには、OP-TEE 上で Trusted Application(TA)を動作させます。TA は、TEE クライアントアプリケーションから呼び出され、Secure World で動作するセキュアな処理を実行するアプリケーションのことです。
ここで、暗号認証専用のセキュリティ・チップを考えてみましょう。ハードウェアにアクセスするために、セキュリティ・チップの多くは、ユーザースペース・アプリケーションへの OpenSSL エンジン・インタフェイスを提供しています。
TA を開発する場合でも同様に、OpenSSL エンジンとインタフェイスすることで、安価なコストで、ユーザースペース・アプリケーションへの変更を最小限に抑えることができるのです。 TA は、鍵管理および暗号化操作のためのハンドラを実装する必要がありますが、OP-TEE には、さまざまな対称/非対称/楕円曲線暗号関数を提供するライブラリが含まれています。TA は、入力の検証と適切な OP-TEE コア API の呼び出しをおこないます。
以下は、このようなアーキテクチャの例です。
Trusted Application の脆弱性
Trusted Application (TA) に脆弱性があると、攻撃者がそれを利用して TEE 側のデータを盗み取ったり制御を奪ったりすることが可能となってしまいます。
TrustZone と OP-TEE は安価にセキュリティソリューションを構築することが可能ですが、高セキュリティを実現するためにはさらなる工夫が必要です。
サイバートラストでは高いセキュリティを実現する手段として、物理的な耐タンパー性のある SE(Secure Element) に RoT(Root of Trust) を実装し、OP-TEE でのセキュアな処理を組合せた高度なセキュアワールドの実装を提案しています。
IoTのセキュリティやRoT(Root of Trust)についての詳細な資料は、お問い合わせフォームよりお申込みください。
サイバートラストは Arm TrustZone を利用し、セキュリティを強化し組込み機器に必要な長期サポートを提供する OP-TEE の商用実装版セキュア OS を提供しています。
特長
- OP-TEE を商用実装し、安心の長期サポートを提供
- Trusted Application の開発コンサルティング
- 最適な SoC の選択や活用方法などのコンサルティング
- Secure Boot Chain の実現によって、起動時の攻撃に対してもセキュリティを強化