OP-TEE for Linux/AndroidのiWaveの専門知識でエッジIoTデバイスを保護する


この記事では、Trusted Execution Environment(TEE)の概要とOP-TEEによる実現方法、ARM Trust-Zoneの仕組み、OP-TEEを使用したi.MX 8のブートフロー、OP-TEEに関するiWaveの専門知識について説明します。

OP-TEEは、Android/Linux向けにTrusted Execution Environment(TEE)を提供するセキュアなオペレーティングシステム(OS)です。TEEは、セキュアなアプリケーションの開発と実行のために、アプリケーションプロセッサ内に安全な環境を提供します。アプリケーションプロセッサ上で動作するAndroid/Linuxは、リッチOSと呼ばれます。OP-TEEは、Android/Linuxが動作するのと同じプロセッサ上で動作しますが、OP-TEEは、ハードウェアとソフトウェアの両方によって、システムの他の部分から分離されています。OP-TEEは、デバイスのメインプロセッサとメモリのフルパワーにアクセスできますが、完全に分離されています。OP-TEE OSの分離により、ユーザーによってインストールされた悪意のあるアプリケーションや、Android/Linuxで発見される可能性のある潜在的な脅威から保護されます。

トラストゾーンは、ほとんどのARM Cortex A/Mプロセッサで利用可能なシステムオンチップ・セキュリティ機能である。これは、セキュアな世界(TEE)と通常の世界(REE/Rich Execution Environment)の間の厳格なハードウェア分離を提供します。この技術により、各物理プロセッサ・コアは、通常の世界とセキュアな世界の2つの仮想コアを提供することができます。

OP-TEEは、Trusted Execution Environmentのオープンソーススタックです。このスタックはARM-v7とARM-v8アーキテクチャをサポートしています。このオープンソースプロジェクトには以下が含まれます:

  • OP-TEE OS:TEEの信頼される側
  • OP-TEEクライアント:TEEの通常の世界のクライアント側
  • OP-TEE Test (または x-test):OP-TEE テストスイート

OP-TEEの主な設計目標は以下の通り:

  • 分離 - TEE は、非セキュア OS からの分離を提供し、基礎となるハードウェアサポートを使用 して、ロードされたトラステッドアプリケーション(TA)を互いに保護します。
  • 小さなフットプリント - TEE は、ARM ベースのシステムに見られるような合理的な量のオンチップ・メモリに常駐するのに十分な大きさを維持する必要があります。
  • 移植性 - TEEは、異なるアーキテクチャや利用可能なハードウェアに簡単にプラグインできることを目指し、複数のクライアントOSや複数のTEEなど、さまざまなセットアップをサポートする必要があります。

OP-TEEアーキテクチャ:

図1:OP-TEEアーキテクチャ

図1:OP-TEEアーキテクチャ

 

In a system with a TEE, untrusted applications run on a Rich Execution Environment (REE) and trusted applications (TAs) runs on a Trusted Execution Environment (TEE).
Only trusted applications running on a TEE (Secure World) have complete access to the main processor, peripherals, and memory, while hardware isolation protects these from untrusted applications running on the main operating system (Non-Secure World).

TEEでは、すべての信頼されたアプリケーション(TA)と関連するデータは、通常の(信頼されていない)オペレーティングシステムとそのアプリケーションから完全に分離されます。また、信頼されたアプリケーションは、他の信頼されたアプリケーションや TEE 自体から分離された状態で実行されなければなりません。

ARMのTrustZoneの仕組みは?

ハードウェアは、TrustZoneテクノロジーのもと、セキュアワールドとノン・セキュアワールドに分かれている。

システム・オン・チップのセキュアな状態を実現するために、保護された資産/データを利用する信頼されたソフトウェア(信頼されたOS)を開発する必要がある。トラステッド・ブート、セキュア・ワールド・スイッチ・モニタ、小型トラステッド・OS、トラステッド・アプリは、トラステッド・ソフトウェアとして実装される。

ARMのTrustZoneはセキュア・モニター・モードを導入している。

セキュア・モニター・コール(SMC)は、セキュア・ワールドからノン・セキュア・ワールドへ移行するための専用命令である。SMC 命令が実行されると、CPU はセキュアモニタモードに入り、保護されたペリフェラルやメモリ領域を含むすべてのハードウェアにアクセスできるようになる。この時、TEE ファームウェア/オペレーティングシステムを実行することができます。信頼されたアプリケーションは、セキュアワールドの TEE 上で実行される。

例として、Linux 上で動作する通常の世界(信頼されない)アプリケーションが、TEE OS 上で動作する信頼されたアプリケーションからサービスを受けたいとします。信頼されないアプリケーションは、グローバルプラットフォーム API 仕様に基づく API を使用して、TEE サプリカントの助けを借りて Linux カーネル(Linux TEE ドライバ)に要求を送信し、TEE カーネルは TrustZone ドライバを使用して SMC 命令を介して TEE OS に要求を送信します。

下図は、主要なOP-TEE組み込みコンポーネント、すなわち、セキュア側のOP-TEE OS、OP-TEEクライアント、Trustedアプリケーション、および非セキュア側のOP-TEE Linuxカーネルドライバを示しています。

図2:ARM Trust-zone対応チップセット上のOP-TEE

図2:ARM Trust-zone対応チップセット上のOP-TEE

 

(参考リンクはこちら)

i.MX 8(ARM V8)上でのOP-TEEとAndroid/Linuxのブートフロー:

The below section describes how OP-TEE boots on i.MX 8 platform along with Linux/Android.
Files and binaries required in the boot partition:

  • flash.bin:U-BootとATF、OP-TEEを含むイメージ。
  • zイメージ:カーネルイメージ
  • zImage-*.dtb:デバイスツリー
図3:i.MX 8上でのOP-TEEとAndroid/Linuxの起動フロー

図3:i.MX 8上でのOP-TEEとAndroid/Linuxの起動フロー

 

ARM V8では、ARMはARMトラステッド・ファームウェア(ATF)を使用してセキュア・コンポーネントをブートする優先方法を指定しています。ATF は最初に OP-TEE OS をロードします。OP-TEE OSは、セキュアワールドを初期化します。次に、ATF は U-Boot をロードし、DTB をオンザフライで変更し、Linux TEE ドライバをロードする特定のノードを追加します。その後、Linux OS が起動する。ソフトウェアの詳細なフローを下図に示す:

ARMv8-A comes with ARM Trusted Firmware (ATF).
ATF runs at EL3 (Exception Level 3) and is responsible for

  • トラステッド・ブート
  • 電源状態調整インターフェース(PSCI)
  • セキュアモニタコール(SMC)通話規約

OP-TEE OS は、セキュア EL1(S-EL1:Secure Exception Level 1)で動作し、ATF と協調する必要がある。セキュアモニタ関連の実装は、ATF 内にある。ATF 内のセキュアモニタは、Dispatcher と呼ばれる。Dispatcher は、セキュアモニタとして動作し、ARMv8 プラットフォームの OP-TEE OS とのインタフェースを担当します。OP-TEE OSとのインタフェースに必要なOP-TEE Dispatcher(OP-TEED)。

iWave OP-TEEの専門知識:

iWave is having rich experience in providing secure software solutions for embedded products.
Below diagram shows a sample of what is implemented by iWave:

  • Android/LinuxによるOP-TEEのセキュアブート
  • i.MX 8やi.MX 6シリーズSOMなど、異なるプラットフォームへのOP-TEE OSの移植
  • ドライバをOP-TEEに移植し、ドライバの機能にアクセスするためのAPIを提供する。
  • OP-TEEでサポートされるドライバをテストするための信頼できるアプリケーション。
図4:OP-TEEにおけるiWaveの専門知識

図4:OP-TEEにおけるiWaveの専門知識

 

iWaveは、OP-TEEに取り組み、組み込み製品にセキュリティ層を提供した経験があります。以下は、OP-TEEに関してiWaveが提供するサポートです:

  • OP-TEE Trustedアプリケーションの実装。ホストアプリケーション、Trustedアプリケーション、およびOP-TEEドライバ開発のためのAPIです。
  • インターフェイスドライバのOP-TEEへの移植
  • CSU(セントラル・セキュリティ・ユニット)を使用して、異なる周辺機器へのセキュア/ノン・セキュア・アクセスのためのAPIを提供する。
  • タンパー検出
  • OP-TEE/通常OSからのみアクセス可能なTZASCを使用したセキュア/非セキュア領域の設定
  • 安全な保管:
    • REEファイルシステムの安全なストレージ
    • リプライ・プロテクト・メモリ・ブロック(RPMB)セキュア・ストレージ
    • キー・マネージャー
  • OP-TEEを他のブータブルバイナリと一緒に署名し、HABを通じて検証し、信頼の連鎖を維持する。

iWaveは、i.MX 6ULプラットフォーム上でOP-TEEを使用したセキュアBSPを提供しています

概要

OP-TEEは、エッジIoTデバイスのセキュリティ層として使用されます。OP-TEEはオープンソースであるため、OP-TEE OSとTrustedアプリケーションの導入が容易です。iWaveは、最新のOP-TEEの異なるプラットフォームへの移植、OP-TEEへのドライバの移植、およびTrustedアプリケーションの記述の経験があります。

また、iWaveは接続されたデバイスを保護するセキュリティ・スイートを提供し、暗号化、ストレージ、データ伝送、証明書管理などのセキュリティ機能を可能にする。統合が容易なこのソリューションは、安全でセキュアな環境を構築するためのセキュリティ上の課題に対処するのに役立ちます。セキュリティ・スイートには、セキュア・ブート、Wi-Fiセキュリティ、イベント・ロギング、OSハードニング、アクセス・コントロール、ソフトウェア・ファイアウォール、セキュア・ファームウェア・アップデートなどが含まれる。

セキュリティ・スイートの詳細については、こちらをご覧ください。

詳しい情報やお問い合わせは、mktg@iwavesystems.com、または地域パートナーまでご連絡ください。

著作権 © 2022 iWave Systems Technologies Pvt.