ブログ

FFRI BLOG

Monthly Research 「ARMv8-M TrustZone:組み込みデバイス向けアーキテクチャとセキュリティ機能」

ARMは、ARM社(正確にはARM ホールディングスの事業部門であるARM Ltd)※1 によって開発されているRISC CPUのアーキテクチャの1つで、近年ではiPhoneやAndroidなどのモバイル端末やRaspberry Piで使用されていることで知られています。現在のARMアーキテクチャは分野別に大きく3つに整理されたアーキテクチャを展開しており、今回はその中でも2015年末に発表されたARMv8-Mアーキテクチャに搭載されているセキュリティ機能である、TrustZoneについてご紹介します。(表1)

表 1
ARMv7-A, ARMv8-A アプリケーション向け(Cortex-Aファミリ)
ARMv7-R, ARMv8-R リアルタイム制御向け(Cortex-Rファミリ)
ARMv6-M, ARMv7-M, ARMv8-M (New!) マイクロコントローラ向け(Cortex-Mファミリ

※1 出典:https://ja.wikipedia.org/wiki/ARM%E3%82%A2%E3%83%BC%E3%82%AD%E3%83%86%E3%82%AF%E3%83%81%E3%83%A3

TrustZoneとは?

 TrustZoneは、ARMプロセッサ(Cortex-Aファミリまたは、今回紹介するARMv8-Mアーキテクチャを採用した次世代のCortex-Mプロセッサ)が提供するセキュリティ機能で、「セキュリティ状態」を追加することによるセキュリティの分離を実現する機能になります。(現在市場に出回っているCortex-Aファミリプロセッサの場合、Monitorモードと呼ばれる状態を追加することで、Normal WorldとSecure Worldへの分離を行います(図 1))

図1
図1

ARMv8-MのTrustZone

 ARMv8-MのTrustZoneは従来のTrustZoneとは異なり、組み込み向けに最適化された仕組みになっています。従来までのTrustZoneは、セキュリティレベルの分離にMonitorモードを追加するというアプローチで、これは一種の仮想化技術に近い概念でしたが、ARMv8-MのTrustZoneはSecureステートの追加によって、従来のHandler Mode/Thread Modeを2種類のステータスに分離するアプローチを採用しています。(図 2)

図2
図2

 また、TrustZoneが有効な状態では、大きく分けて3種類にメモリ領域を分類することが可能です。(図 3)

図3
図3

 ここで、新たに登場したセキュアゲートウェイ(SG命令)について紹介したいと思います。ARMv8-Mが提供するTrustZoneのルールとして、Non-Secure側からSecure側の処理(例えば暗号処理など)を呼び出す場合、最初の命令は必ずNon-Secure Callableに定義されているSG命令でなければいけません。直接Secure側の処理を呼び出そうとした場合はハードウェア例外が発生します。逆に、Secure側からNon-Secure側の処理(例えばドライバ操作など)を呼び出す場合は、Secure側のスタックに現在の状態をプッシュし、リンクレジスタに予約値であるFNC_RETURNがセットされた上でNon-Secure側への遷移が行われます。Secure側に再び戻るときは、リンクレジスタに設定されたFNC_RETURNへ分岐することで呼び出し元の位置に復帰します。(図 4)

図4
図4

まとめ

 今回はARMv8-Mの新しいTrustZoneについて紹介しました。しかし、これら情報の一部はベータ版扱い(2016年2月現在)のため、今後仕様が変わる可能性もありえます。また、ARMv8-Mのライセンス供与は既に開始されている模様ですが、現時点でこのアーキテクチャを採用しているプロセッサは販売されておらず、市場に登場するまでにしばらく時間がかかりそうです
 従来のTrustZoneはCortex-Aファミリプロセッサに搭載されていたこともあり、モバイルデバイスでの応用が多かった印象ですが、ARMv8-Mアーキテクチャでもサポートされたことから、今後はIoT機器にも普及する可能性があるといえます。
 車載機器向けの同様の仕組みとしてはHSM(Hardware Security Module)規格が業界標準として存在しており、多くの半導体メーカーはこの規格に準拠したマイコン製品を開発・出荷していることから、TrustZoneを活用した車載向け製品が登場するかどうかは現時点では不透明といえますが、今後も引き続き動向に注目していきたいと思います。


関連記事

Monthly Research 「不正な開発環境によるマルウェアの拡散」

Monthly Research 「セキュリティカンファレンスから見る自動車セキュリティ」

Monthly Research 「CODE BLUE 2015 参加レポート」

pagetop