Cortex-M23+mbed OS 5=セキュアIoT MCU

2017年1月13日発行“ARMの最新アーキテクチャ「ARMv8-M」が目指す「セキュアMCU」とは”の記事を読むと、ARMコアの新ラインアップCortex-M23の中身:ARMv8-Mが備えるセキュリティの概要が分かります。IoT向けマイコン:MCU実現には、Cortex-M23にARM RTOSのmbed OS 5実装が必須になりそうです。

Cortex-M0, M0+ and M23
Cortex-M0, M0+ and M23(出典:ARM)

既存MCUの脆弱箇所

IoT MCUにはセキュリティ対策が必須との記載をよく見かけます。しかし、具体的にどこが脆弱箇所で、それはなにかを目にしたにはこの記事が初めてです。Cortex-M23の謳い文句は、セキュリティに対する深い知識、経験が無くても扱えることですが、これら脆弱箇所は深くない常識?!として知らなければいけなかもしれません。

従来MCUの脆弱箇所(記事より)
従来MCUの脆弱箇所(記事より)

ARMv8-Mは、これら脆弱箇所に対して3段構えハードウエアで多段防御しています。詳細は、記事を読んでください。

ハード+ソフトのARM IoTセキュリティ戦略

重要なのは、これらの防御にもかかわらず外部との通信セキィリティ、具体的には通信データの暗号化処理は、別途IP:Cryptocell-312か、または、mbed OS 5(TLS部分)が必要になる点です。低価格IoT向けMCUでは、IP追加よりもmbed OS 5実装の方が現実的ですので、結局、下記公式が成り立ちそうです。

低価格セキュアIoT MCU=Cortex-M23+mbed OS 5

mbed OSの構造(記事より)
mbed OSの構造(記事より)

FreeRTOSなどの他社RTOSをCortex-Mコアへ適用しようか検討している方は、要注意です。Runesasは、SynergyでThreadXを使いそうです。

また、記事にあるようにMCUコードをOTA:Over The Airで更新を行うとなると従来MCUとは別次元の開発スキルが要求されます。RTOSがサポートしてくれれば良いですが、Windowsでさえも更新失敗が(たまに)ありますから…。

セキュアIoT MCU向けハード/ソフトが揃いつつあります。中小規模の従来MCU開発を長くやってきた開発者側としては、IoT MCUの構造は、従来とかなり異なる感触を得ます。Qualcomm(NXP)あたりから、IoT MCUレファレンスデザインを早期にリリースしてくれれば、よりハッキリすると思います。