携帯機器向けセキュリティ技術「TrustZone」に取り組んできた英ARM Ltd.。2003年5月の技術発表以来,同社はTrustZoneを利用したソフトウエアの普及に励んできた。2006年2月には,TrustZoneのライセンスをARM社から受けたオランダPhilips Software社が携帯電話機向けDRM規格「OMA DRM」に準拠したDRMをTrustZoneを使って実装するなど,いよいよ実用化も軌道に乗りつつある。来日したARM社 Software Marketing ManagerのClive Watts氏に,TrustZoneの狙いと技術の仕組みを聞いた。(聞き手は進藤 智則=日経エレクトロニクス


——TrustZoneが目指すセキュリティとは何か。

Watts氏 音楽配信のようなコンテンツ配信が始まったことを踏まえると,携帯電話機のような携帯機器でも高いセキュリティを確保する必要が出てきた。コンテンツが不正にコピーされると,コンテンツ制作者も通信事業者も共に売り上げが減ってしまう。ユーザーにとってもセキュリティが確保されないプラットフォームでは,ウイルス被害などが増える不安があるし,オンラインによる決済も心配だろう。Coral Consortiumが目指すように,複数のDRMを円滑に扱える仕組みを実現する上でも,マイクロプロセサ上に強固なセキュリティの体系を構築する必要があった。それを実現するのがTrustZoneだ。

——TrustZoneが提唱する「セキュア・ドメイン」という考え方は,マルチコア技術でARM社が提携するNECエレクトロニクスも同様に打ち出している。セキュリティの要求が異なるソフトウエアを別々のCPUコアで動作させることにより,セキュリティ・ドメインを物理的に分けてしまおうというものだ。TrustZoneとの違いは何か?

Watts氏 確かにTrustZoneのような技術が登場する以前は,セキュリティを向上させるには,複数のCPUコアを用意するのがいいと言われてきた。認証用IDのようにユーザーが所有する大事なデータはセキュア・ドメイン側のCPUコアで,一般のアプリケーション・ソフトウエアなどは非セキュア側のドメインに属するCPUコアで,それぞれ独立に実行するというわけだ。

 ただし,マルチコアでセキュリティを確保するアプローチの最大の問題はコストだ。性能を向上させたいなどセキュリティ以外の目的があるならばいいが,セキュリティを実現するためだけに,もう一つ別のCPUコアを搭載するというのでは,回路面積が大幅に増加してしまう。それぞれのCPUコアの動作周波数も事前に綿密に見積もった上で,タスクを静的に配置する必要があり,面倒だ。

 TrustZoneの目的は,マルチコアを使ったセキュリティ向上と同様のことを,一つのCPUコアでできるようにしようというものだ。大幅なハードウエアの増加なしに,一つのCPUコア上にセキュリティ・ドメインを区切って設けられるようにする。一つのCPUコアを区切れるようにすれば,それぞれのセキュリティ・ドメインに割り当てる動作周波数も柔軟に共有できる。

 TrustZoneは,ハードウエア技術とソフトウエア技術の両方で構成される。(1)アーキテクチャの拡張,(2)メモリコントローラや割り込み制御回路などシステムLSI用のIPコア,(3)TrustZoneソフトウエアとAPI,の三つが主要な技術要素だ。

 TrustZoneの実装には,三つのタイプがある。

(a)マイクロプロセサのモード切り替えを利用したタイプ:
セキュア・ドメインのソフトウエアは特権モードで,非セキュア・ドメインのソフトウエアはユーザー・モードで,それぞれ動作させるというもの。既存のCPUコアを流用しながら実現できるセキュリティ向上策である。

(b)マルチコアを利用したタイプ:
セキュリティ・ドメインごとに複数のCPUコアを用意するタイプ。前述したように,回路面積増加による高コストなどの欠点がある。これも既存のCPUコアを流用しながら実現できるセキュリティ向上策である。

(c)TrustZoneを支援するハードウエアを利用したタイプ:
一個のCPU上でセキュリティ・ドメインを区切るための仕組みを実装したCPUコアを利用する。セキュリティ・ドメインごとに,汎用レジスタなどを複数用意する。一種の仮想化技術の応用といえる。バスは複数のドメイン間で一つを共有するものの,バスの制御回路や割り込み制御回路は独立している。

 このように実装形態は複数あるものの,TrustZoneの仕組みを利用しようとするソフトウエアは,「TrustZone API」という共通のAPIを使うため,実装形態が変わってもアプリケーション・ソフトウエアの互換性は確保されるようになっている。これまでTrustZoneは,(A)や(B)のように主にソフトウエア側だけの技術として利用されてきたが,ARM1176とCortexになってようやく(C)の仕組みがハードウエアとして実装できた。

——しかし,(A)や(B)のようにソフトウエア側の工夫だけでは,TrustZoneが目指す本当のセキュリティ実現は難しいのではないか。

Watts氏 ARM1176やCortexで用いているハードウエア部分の設計は,4年前にスタートした。ハードウエアの変更にはそれだけの時間を要したのだ。ただし,ソフトウエア側の変更だけならば,そこまでの時間をかけずともすぐに実装できる。確かにソフトウエアだけでは高いセキュリティ確保は難しいが,TrustZoneが登場する前はこうしたセキュリティの仕組みはほとんどなかった。何もないより遙かにマシだという位置付けで,(A)や(B)のアプローチをこれまで用意してきた。

——TrustZoneで用いている仮想化の仕組みは,複数スレッドを並列実行する同時マルチスレッド(SMT:simultaneous multithreading)技術にも応用できそうに思える。ARM社と同じCPUコア・ベンダーの米MIPS Technologies, Inc.は,近年,とみにこのSMT技術に注力している。ARM社としては,STMは着手しないのか?

Watt氏 TrustZoneの仕組みを応用すれば,SMTのようなマルチスレッドを実現しやすいのは事実だろう。しかし,現時点ではそういう計画はない。ハードウエアだけならばすぐに流用可能だが,マルチスレッドの最大の課題はソフトウエアの設計。現状では,まだマルチスレッド対応のソフトウエアを開発することは,ハードルが高いと当社では認識している。