Microsoft は、独自の Linux フレーバーを実行し、Azure でホストされるバックエンドに安全に接続する IoT (モノのインターネット) デバイス向けの Arm ベースのシステム オン チップ ファミリを設計しました。
Azure Sphere と名付けられたこのプラットフォームは、ガジェットメーカーを巧みにクラウドサブスクリプションに閉じ込めながら、流行のエッジコンピューティング分野への Microsoft の進出となる。
仕組みは次の通りです。Microsoftはシステムオンチップ(SoC)の設計図をチップ設計者に提供し、設計者はチップセットを製造してIoTデバイスメーカーに販売します。メーカーはチップセットを自社製品に組み込み、MicrosoftのLinuxベースのSphere OSと自社ソフトウェアをチップ上で実行します。そして、このチップはレドモンドのクラウド上で稼働するMicrosoftのAzure Sphereに接続します。
Sphereは、デバイスが公式ファームウェアのみを実行するようにしたり、リモートデバイスにバグ修正を自動的にプッシュしてインストールしたりするなど、様々な機能を提供します。このプロセスを通じて、チップメーカーはより多くのシリコンを製造し、デバイスベンダーは顧客に提示できるターンキー型のセキュリティサービスを獲得し、Microsoftはデバイスの寿命全体にわたってクラウド顧客を獲得します。
マイクロソフトに寛大な態度を取らないなら、これは基本的にArmのMbed Cloudのパクリです。Windowsの巨人である同社は、自社のチップをMCU(マイクロコントローラーユニット)と呼んでいますが、ほとんどの企業はシステムオンチップと呼ぶでしょう。一体何が入っているのか見てみましょう…
それで、チップには何が入っているのでしょうか?
Azure Sphere MCU 自体は、Arm プロセッサ コア、ワイヤレス接続、メモリ、一部の IO、Microsoft のカスタム セキュリティ コントローラーとコア サンドボックスの組み合わせです。
デバイスのアプリケーションコードとレドモンドのカスタムLinux OSを実行するArm Cortex-A CPUが、処理の大部分を担います。2つのCortex-MコアはI/O処理を担当し、ガジェットのエンジニアがアクセスできるため、必要なコードを実行できます。
3つ目のCortex-Mコアは、システムを監視するMicrosoft自社製セキュリティコプロセッサ「Pluton」の基盤を形成します。このコプロセッサは、Cortex-A CPU上のアプリケーションソフトウェアや他のCortex-M CPU上で実行されるコードにはアクセスできません。Plutonは、MicrosoftがSoC内のハードウェアIOファイアウォールと呼ぶものによって隔離されています。
どのようなファームウェアがロードされていても、また実行中にハッキングされたかどうかに関係なく、Pluton 部分は影響を受けず、妨害されないままになるはずです。
Plutonはセキュアブートメカニズムを提供し、正式に承認されたファームウェアのみが実行されます。また、Azureバックエンドとの通信を暗号化・保護するために暗号証明書を使用し、機器を認証することで、サーバーが正規の改ざんされていないハードウェアと通信していることを確信できるようにします。その目的は、第三者や悪意のある人物によるファームウェアの改ざんを阻止し、偽造品の接続を防ぎ、データトラフィックを暗号化し、信頼できるソフトウェアアップデートを受信してインストールすることなどです。
これを保証するため、PlutonセクションはWi-Fiハードウェアのみを監視します。アプリケーション側のコードが外部と通信する必要がある場合、セキュリティコプロセッサにAPI経由で適切に要求する必要があります。アプリは無線機器に直接指示を出すことはできません。これにより、不正なアプリケーションコードが悪意のある目的で無線接続を乗っ取るのを阻止します。
もちろん、すべて理論上の話です。コンピューターのセキュリティメカニズムや防御策には、悪用可能なバグが存在することが知られています。初代Microsoft Xboxをご存知ですか?
MCUのレイアウト図
発売時点でハードウェアを提供している唯一のハードウェアパートナーはMediaTekで、同社のチップファミリーのスピンオフはMT3620です。Cortex-A7コアとCortex-M4Fコアに加え、PlutonコプロセッサとウォールオフWi-Fiトランシーバーを搭載しています。シリアルインターフェース、A/Dコンバータ、パルス幅変調出力、汎用入出力ピンを備え、センサーやボタンからの読み取り、モーターの制御、LEDなどの点灯などに利用できます。
Microsoft によれば、Pluton SoC のリファレンス ブループリントは柔軟性があるため、チップ スリンガーは使用する Arm コアと IO 周辺機器をある程度選択できるという。
一方、Armは、PlutonとSphere OSコンポーネントを除いた自社の機能をプラットフォーム・セキュリティ・アーキテクチャとして売り出しています。つまり、IoTセキュリティチップを独自に開発したい場合、Cortex-AコアとCortex-MコアをArmの設計キットと組み合わせて、同様のチップを開発できるということです。
マイクロソフトのArm Linux
中央にはAzure Sphere OSが配置されています。これはMicrosoftのカスタムLinuxカーネルで、SoCのアプリケーションコア上で動作し、デバイスのメインソフトウェアを実行します。また、チップのPluton部分と通信して、隔離されたWi-Fiコントローラーを介してネットワークトラフィックを送受信できるように設計されています。
Azure Sphere OS のセキュリティレベル
マイクロソフトは、アプリケーションのCPUコア上で実行されるコードを作成するためのVisual Studio拡張機能を開発しました。マイクロソフトは、今年半ばまでに開発キットを提供し、この技術を搭載した最初のデバイスを2018年末までに出荷する予定だと述べています。
そこから、MCU を搭載した IoT は、Azure Sphere Security Service バックエンドに接続します。Azure Sphere Security Service バックエンドは、Microsoft がインシデント レポート、ソフトウェア更新、障害報告などを処理する実際のクラウド サービスです。
マイクロソフトはクラウドサービスを通じて収益を上げており、チップの設計図はロイヤリティフリーで提供されています。Azure Sphereは、主要製品にコネクティビティを組み込み、セキュリティをあまり気にしたくない企業向けに、「ターンキー」サービスとして販売されます。そこから他のAzureサービス(クラウドコンピューティング、SQLサーバーなど)が自然と連携し、サブスクリプション収入をさらに増やすことになります。
マイクロソフトは、より広範な網を網羅し、様々な悪質な行為者を捕捉できるというメリットも得られます。レドモンドは、IoTデバイスを監視し、注目を集めるボットネットや大きなニュースで報じられた脅威を捕捉できると、企業顧客に説明できるようになりました。数十億もの新たな情報源を傘下に収めることは、マイクロソフトの他の高額なセキュリティ製品の販売を促進することにもつながります。®