多少なりとも具体的な話が出た初日のDipesh Patel氏による「The Road to 1 Trillion Devices: Simple, Secure and Scalable」の内容を以下にダイジェストとして紹介したい。
Patel氏はまずさまざまなIoTサービスがすでに普及を開始していることを簡単に触れた上で(Photo08)、今後5Gの普及に伴いこれは加速するだろうと説明(Photo09)。これに向けた基礎を構築するための3つのキーワードとして「Simple」、「secure」、「Scalable」という3つのキーワードを掲げた。実はこの3つのキーワード(Simple, secure and Scalable)という単語は基調講演のサブタイトルでもあり、ここからがPatel氏の本題となっている。要するにこの3つの要素を兼ね備えていないと、IoTを普及するためのファウンデーション(土台)にはなりえない(というか、ファウンデーションとなるためのものには、この3つの要素が不可欠)という話であり、Petal氏の講演は「mbed」がこれを備えたものである、という事を説明するものになった。
Photo08:事例は当然ではあるがmbedをベースとしたものだけが取り上げられている |
Photo09:今後10年、あるいは20年でどれだけ累積台数が増えるのかははっきりしないとしつつ、向こう20年で最大で1兆個に達するという予測を示した(最小の見積もりだと620億個なので、ずいぶん開きがある) |
まず最初のSimpleについて。mbedをベースとしたIoTファウンデーションに対してarmが提供するものがこちら(Photo10)である。このうち物理層(Physical Needs)はこれまでも同社が広範に提供してきたCortex-MをはじめとするIPが、セキュリティ層(Security Needs)がTrust ZoneやMbed TLS&MicroVisorなど、コネクティビティ層(Connectivity Needs)がmbed OSが提供する広範なNetworking Stack、データ層(Data Needs)がゲートウェイやエッジで、こうしたレイヤをarmが提供するので、開発者は一番上のアプリケーション(Smart Needs)に専念すれば良い、とする。
では2つ目のSecutityをどうするか? ここでarmがTechCon開催直前の10月23日に発表した、新しい概念であるPSAが簡単に説明された(Photo11)。これは当たり前の話で、いくら通信だけ秘匿していても、末端のノードのMCUにデバッグプローブを付けると中が覗き放題、などということでは根本的なところで巨大なセキュリティホールが空いてることになる。1兆個のデバイスが世の中にバラ巻かれるということは、単純に言っても人間一人当たり100個以上のデバイスがあるという意味で、そうしたものを悪意のある人から物理的に遠ざけるのは無理である。つまり、デバイス1つひとつに対してもセキュア化を施す必要がある。
PSAはAnalyze/Architect/Imprementの3つのパートから構成される。まず分析し、それに基づきアーキテクチャを整え、最後にインプリメントを行うという形だ(Photo12)。
Photo12:右の4つが、具体的にPSAの対象となるシナリオである。デバイスの特定とかセキュアブート、OTAアップデート認証といったシーンでの成りすまし、あるいはこれを狙っての侵入をどう防ぐかという話 |
このPSAでarmは何を提供するのか? というのはExpo会場で展示されていたこちらのスライド(Photo13)が判り易い。要するにこれに関しては、MCUベンダ各社のインプリメントがまったく異なっている(既存のCortex-MコアのIPの外の話)から、一律にアーキテクチャを規定したら既存の製品が使えなくなってしまう。また、どの程度の強固さを求めるか、というのも製品によって異なってくる。すべてのMCUにスマートカード向けの「SecuCore SC000/SC300」並みの堅牢性をインプリメントするのは、コスト的にも性能的にも無謀だからであり、このあたりはまず分析のステージとして、いくつかのコンポーネントに対してガイドラインを設け、次にアーキテクトとしてそのガイドラインを達成するためのいくつかのインプリメント手法を論じることで、顧客が製品に望むレベルのセキュリティ性を自由に選べるようにしよう、という話だ。最後のインプリメントに関しては、すでにarmはARM-v8MとしてMCU向けのTrustZoneの提供を開始しているが、これに加えてarmは「TrustZone CryptoIsland Family」と、「CoreSight SDC-600」を新たに発表した。
CryptoIslandはCryptoCellの上位版とでもいうべきもの。CryptoCellは既存のIPの中でセキュアな処理を行うための仕組みだが、CryptoIslandは既存のエリアと隔絶した状態でセキュア処理を行わせる、より強固な仕組みである。はっきりとは説明されなかったが、この領域はフィジカルIPの形で提供され、アンチタンパリング性(例えばプローブを当てて内部情報を読み取るといった事への対策)まで含めた、それこそSecuCore SC000/SC300に近いセキュリティの堅牢さを持たせた領域を提供するものの様だ。CoreSight SDC-600の方は、このCryptoIsland搭載したSoCの開発中に利用されるデバッグ用IPである。要するにARM-v8Mを採用したコアはTrustZoneを、ARM-v7MまでのコアあるいはARM-v8Mベースのコアでもより耐久性を持たせたい場合はCryptoIslandを利用することで、PSAを実現できるというものだ。もちろんすでに多くのMCUベンダの中には、独自のセキュリティメカニズムを搭載しているとことも珍しくない。こうした場合は、そのセキュリティのメカニズムに対し、PSAに対応する形にAPIを提供することでmbed OSから利用できるようになる訳だ。