後藤弘茂のWeekly海外ニュース
1ドルのMCUにもセキュリティ機能を提供するARMのIoT向け新命令「ARMv8-M」
(2015/11/13 12:23)
CEO自らがIoTでのセキュリティの重要性を訴える
「IoT(The Internet of Things)に必須の要素はセキュリティ」。
組み込み用途のMCU(Micro Controller)で圧倒的な強味を持つARMは、IoTも支配しようとしている。しかし、ARMの現在のIoTソリューションには弱点がある。それはセキュリティだ。IoTデバイス向けのMCUコアの「Cortex-M」ファミリには、アーキテクチャ的に組み込まれたセキュリティ基盤が欠けている。そこで、ARMは、次世代のCortex-Mアーキテクチャからは、セキュリティ機能をオプションとして用意することにした。
ARMの技術カンファレンス「ARMTechcon 2015」のキーノートスピーチに立ったSimon Segars氏(Chief Executive Officer, ARM)は、IoT時代が本格化しつつあると説明。IoTを実現するための必須の要素として、共通のスタンダードに準じたデバイス開発、あらゆるレベルでのセキュリティの実現、エコシステムを包括するパートナーシップだと語った。今回のARMTechconでは、その中でも特にセキュリティに焦点が当てられた。
Segars氏はIoTの例として、医療や車載、都市公共サービスなどを示した。医療データの漏洩は大きな問題になり、車載ではハッキングが事故に繋がる。IoTでは、セキュリティはクリティカルだ。Segars氏はIoTでのセキュリティは、ソフトウェア層や通信だけでなく、デバイスハードウェア自体にも必要だと指摘。IoTのセキュリティ実現のために、ARMのセキュリティソリューションであるTrustZoneやCryptoCellを、IoT向けのMCUにまでもたらすことを示した。
Segars氏のスピーチの途中で、突然、会場にセキュリティアラームが鳴り響いた。まるで、セキュリティの重要さを刻み込む演出のようだが、消防士を父に持つというSegars氏は「このアラームは本物だ」と言って、即座に聴衆全員を屋外に待避させた。ハプニングを挟んで続いたスピーチは、緊張したものになった。
1ドル以下のMCUのセキュリティソリューション
セキュリティの必要性は、ARMTechcon 2015の初日に行なわれたMike Muller(マイク ミュラー )氏(CTO, ARM)のキーノートスピーチでもスポットライトを当てられた。Muller氏は、ARMの創業から25年経った今、昔と変わった点として、デバイスからクラウドまで、あらゆるレベルで攻撃を受けるようになり、セキュリティが重要になったと説明。IoTデバイスにセキュリティを普及させるためには、セキュリティに対する経験が全くないエンジニアでも扱うことができる、1ドル以下のセキュアなMCU設計が必要だと宣言した。
アーキテクチャ的に統合されハードウェア設計やソフトウェア開発が容易なセキュリティ機能を、最小のコストで実現する。これが、ARMのIoTセキュリティのビジョンだ。ARMは、Cortex-M向けのTrustZoneとしてアーキテクチャ化し、次期Cortex-Mファミリ向けの新命令セットアーキテクチャ「ARMv8-M」に組み込んだ。この「ARM TrustZone for ARMv8-M」が、IoT時代のデバイス側のARMのセキュリティ基盤となる。
ARMv8-M自体は、従来のCortex-Mファミリの命令セットアーキテクチャである「ARMv6-M」「ARMv7-M」に替わる新しい命令セットだ。モバイルなどパフォーマンスCPU向けのCortex-Aファミリの命令セットアーキテクチャ「ARMv8-A」と異なり、同じARMv8世代でも、ARMv8-Mは64-bit命令ではなく、32-bitまでの命令だ。T32/Thumb命令ベースで、命令セットが拡張される。
ベースラインとメインラインの2階層の命令セットプロファイルとなり、メインラインにはさまざまな命令オプションが含まれる。セキュリティだけでなく、さまざまな機能拡張が新命令には盛り込まれている。ARMの通例のパターンとして、新命令セットARMv8-Mをベースに、複数のCortex-Mファミリの実装が設計され、そのコアをライセンスしたベンダによって多数のMCUが作られることになる。
Cortex-A向けとは大きく異なるTrustZoneアーキテクチャ
ARMは、上位のCortex-Aファミリなどの向けて、以前からTrustZoneセキュリティ技術を提供している。Cortex-A向けのTrustZoneには、複数の実装形態があるが、いずれも実装コストが相対的に高いソリューションだ。付加するハードウェアの規模が大きく、メモリフットプリントを増やし、レイテンシを増す場合が多い。そのため、Cortex-AのTrustZoneは、そのままでは組み込み向けのCortex-Mに適用できない。チップ上のダイエリアもメモリ量も増えるため、チップコストが上がり、性能にも影響が出るからだ。
そこで、ARMは、Cortex-M向けには、よりコストの低いセキュリティ機能をオプションとして開発した。Cortex-Mコア自体にセキュアステイトを設けて、ステイト遷移を行なうことで、セキュアワールドとノーマルワールドを設ける。セキュリティコプロセッサは使わない。メモリマップにもセキュア領域を設けて、メモリやストレージのセキュア領域やセキュアペリフェラルにアクセスできるようにする。セキュアステイトへの遷移は割り込みでハンドルし、レジスタもセキュアにプッシュ&ポップする。Cortex-M向けのTrustZoneは、名前こそCortex-A向けと同じTrustZoneだが、中身は大きく異なる。
セキュアハイパーバイザーを不要にするアーキテクチャ
Cortex-A向けのTrustZoneでは、セキュアモニターソフトウェアがHypervisorとしてセキュアOSとノンセキュアOSをハンドルする。しかし、Cortex-M向けTrustZoneではセキュアステイトとノーマルステイトの間のステイトスイッチ自体はハードウェアベースで制御する。そのため、セキュアハイパーバイザーを必要としない。メモリ空間もセキュアとノーマルに分離し、ハードウェア「Secure Attribution Unit (SAU)」でアクセスを制御する。
「IoT市場では、メモリマネージメントユニット(MMU)などハードウェアが増えるのは望ましくない。ハイパーバイザーソフトウェアも、小さくても30~40KBのメモリを占めるし、ソフトウェアでは10サイクル以上切り替えにかかる。これも望ましくない。セキュリティ機能を、できるかぎり短いレイテンシで、ソフトウェアのメモリ占有量を小さく、ハードウェアの規模を最小に実装する。それが、TrustZone for ARMv8-Mのコンセプトだ」とARMのNandan Nayampally(Vice President, Marketing, CPU Group, ARM)氏は説明する。
こうしたARMのCortex-Mセキュリティソリューションは、同じMCUでもImagination TechnologiesのMIPSアーキテクチャ系とは大きく異なる。Imagination Technologiesは、同社のMIPSベースのMCUに、バーチャライゼーションベースのセキュリティソリューションを導入した。これは、同社がMCUクラスの製品にまでMMUを搭載して、バーチャライゼーションのハードウェア支援を容易にしているために実現できた。ARMは、MIPSとは異なる解決策を選択した。
TrustZoneオプションを含めたARMv8-M命令セットに準拠したCortex-M設計は、今後ARMから登場する。ARMv8-MベースのMCU製品が市場に出るのは、その後になる。セキュリティを含めたことで、Cortex-Mは、ついにIoTに向けた最後の関門を抜けようとしている。