Armの組み込みLinux「Mbed Linux OS」が目指すセキュアな世界Arm最新動向報告(4)(2/3 ページ)

» 2019年03月15日 10時00分 公開
[大原雄介MONOist]

なぜArmが組み込みLinuxを投入するのか

 さて、説明に戻ろう。Mbed Linux OSを簡単に言うと、「Cortex-A」向けの組み込みOS「Mbed OS」になる(図1)。Mbed OSの特徴を、LinuxベースとしながらそのままCortex-Aに持ち込んだのがMbed Linux OSということだ(図2)。

図1 図1 複雑なIoTデバイス(ゲートウェイやセンサーハブ、産業機器向け制御など)では「Cortex-A」クラスの性能が必要だが、標準的なソフトウェアプラットフォームがない、とする(クリックで拡大)
図2 図2 実はセキュリティ以外の機能は「Mbed Client」でもある程度は実装可能である。あえてここで新規にOSを導入する理由はセキュリティとして良いだろう(クリックで拡大)

 そのMbed Linux OSのメリットは? というのがこちら(図3)。組み込み機器向けのLinuxである「Yocto Linux」をベースとしており、すぐに取り掛かりやすいのが主な特徴とされる。ArmのIoT(モノのインターネット)プラットフォーム「Arm Pelion IoT Platform(以下、Pelion)」との融合もポイントであり、ArmからすればPelionの普及の促進もこれで見込める。

図3 図3 接続性はともかくとして、問題はそれ以外のデバイスのサポートということになるような気もする(クリックで拡大)

 ではMbed OSとの違いは? というのがこちらで(図4)、なんとなく順序が間違っている気はするが、ハードウェアの違いを無視してあえて比較すればこういうことになる。

図4 図4 普通はハードウェア側で「Cortex-M」か「Cortex-A」かをまず決めるわけで、「Mbed OS」と「Mbed Linux OS」の特徴の差でどちらを使うか決めるということは普通あり得ない(クリックで拡大)

 ここで、なぜMbed Linux OSが必要かという根本の話に戻ると、セキュリティの確保が目的になっている(図5)。このためにMbed Linux OSが利用するのは「Trusted Firmware」である(図6)。Trusted Firmwareがブートローダーの「U-Boot」を起動し、その後U-BootがMbed Linux OSを起動。そしてMbed Linux OSが「Trusted Application」を起動するという形で、アプリケーションやOSが不正でないことを担保する。

図5 図5 個々の問題に対する解決策はもちろんいろいろあるわけだが、それを個別にアプリケーション開発者が実装するのではなく「Mbed OS」の枠の中でまとめて提供しよう、という話(クリックで拡大)
図6 図6 右下に示されている通り、黄色の箇所が“Signed by Trusted World Signing Authority”、水色の箇所が“Signed by Normal World Signing Authority”、緑いろの箇所が“Signed by Application Signing Authority”である(クリックで拡大)

 また、信頼できる実行環境(Trusted Execution Environment)の提供も必要である(図7)。またTrusted Firmwareには署名を必要とさせる(図8)とか、プログラム自身も分離を可能にする(図9)ことが求められる。

図7 図7 これは、「U-Boot」が起動する前に「OP-TEE(Open Portable Trusted Execution Environment)」を起動し、信頼性が必要となる処理(キーとかユーザーデータを扱うもの)はOP-TEE側で分離して実行するという仕組み(クリックで拡大)
図8 図8 不正なファームウェアが動作されることを防止するための仕組み(クリックで拡大)
図9 図9 ここで「TrustZone」を使う以外にサンドボックスなどの方法も考えられるが、とにかく何かを用意する必要がある(クリックで拡大)

Copyright © ITmedia, Inc. All Rights Reserved.