あらゆるセキュアマイクロコントローラに必要な3つの機能

長年にわたって、組み込み機器の開発者には、セキュリティを無視する余裕がありました。組み込みシステムは、物理的な不正変更だけを気にすればよい、分離した独立システムでした。モノのインターネット(IoT)によって、こうした余裕は永遠に取り除かれました。現在、ほぼすべてのコネクテッドデバイスにとって、セキュリティは最重要課題となっています。デバイスを適切に保護するために、開発者はハードウェアベースの絶縁、メモリ保護ユニット(MPU)、暗号アクセラレータという、3つの重要なマイクロコントローラユニット(MCU)機能を目指す必要があります。これら3つの重要な機能について考察しましょう。

セキュアMCUの機能1:セキュアな処理環境

組み込みシステムの安全性を確保するための重要なコンセプトの1つは、絶縁を使用して設計することです。絶縁とは、共通の目標を達成するために一緒に動作するメモリ、部品、機能の周りに境界線やフェンスを設けることです。敵がシステムの1つの領域を悪用した場合、絶縁バリアは2つ目の領域を保護し、敵がすぐにアクセスできないようにします。

組み込みシステムは多くの場合、非セキュア処理環境(NSPE)とセキュア処理環境(SPE)という、2つの主要な領域に分離されます。これら2つの実行環境を実現するには、ハードウェアベースの絶縁を使用するのが最適です。これには、マルチコアMCUを使用する方法と、ArmのTrustZoneを搭載したシングルコアMCUを使用する方法があります。

マルチコアソリューションでは、1つのプロセッサをSPE専用とし、他方のプロセッサをNSPEの機能豊富なプロセッサとして専用化しています。2つのコアは物理的に絶縁されており、共有RAMとプロセス間通信(IPC)を通してのみ通信します。NSPEがハッキングされても、セキュリティコアの絶縁されたデータ、メモリ、機能はそのまま絶縁され、保護されます。敵は、セキュリティコアをハッキングする方法を見つける必要があります。マルチコア方式を採用するMCUの例として、Infineon TechnologiesのPSoC 64があります。

PSoC 64は、アプリケーションが豊富なNSPE用にArm Cortex-M4プロセッサ、SPE用にArm Cortex-M0+セキュリティコアを搭載しています。2つのコアは、IPCを介して通信することができます。マルチコアのセキュリティソリューションで実験を始めるための興味深い開発ボードは、CY8CKIT-064S0S2-4343W Wi-Fiおよび、Bluetooth対応PSoC 64パイオニアキットです(図1)。

図1:CY8CKIT-064S0S2-4343Wパイオニアキットは、開発者がマルチコアセキュリティソリューションに取り組むためのセキュアな開発プラットフォームを提供します。(画像提供:Infineon Technologies)

TrustZoneソリューションは、マルチコア絶縁モデルとは異なり、1つのプロセッシングコアを使用しますが、処理はNSPEとSPEに分かれています。セキュアな機能を実行する必要がある場合、プロセッサはNSPEからSPEへと、通常3クロックサイクル以下の決定論的な方法で切り替えます。TrustZone対応MCUの例として、STMicroelectronicsSTM32L562CET6があります。

ハードウェアベースの絶縁は、開発者がセキュアなMCUに求めるべき最初の機能です。次の機能は、MPUです。

セキュアMCUの機能2:MPU

MPUは、メモリを保護するために設計されたハードウェアペリフェラルです。組み込み機器の開発者がMPUを必要とするのは、アプリケーションコードの中にハードウェアベースの絶縁領域をさらに作成することができるからです。たとえば、開発者はSPEを活用しますが、MPUを使用してそのSPEを絶縁領域に分割することができます。敵はSPEに侵入したとしても、さらにMPUで保護されている各絶縁メモリ領域に侵入する必要があります。

MPUは、ソフトウェアを独立したプロセスに分割する方法を開発者に提供するメモリ管理ユニット(MMU)をスリム化したものと考えることができます。MPUは、フラッシュ、RAM、ペリフェラルなど、あらゆるメモリロケーションで使用することができます。MPUは、実行権限やアクセス権限の設定に使用されます。敵が1つのプロセスにアクセスできたとしても、MPUの設定に基づいてアクセスできる対象によって制限されます。敵がMPUの設定外のメモリ領域にアクセスしようとすると、MPUはエラーをスローします。その後、システムはリカバリやリセットを試みることができます。そのため、MPUは、開発者がシステムを保護するのに必要とする重要な機能となっています。

セキュアMCUの機能3:暗号アクセラレータ

開発者がセキュアMCUに求める3つ目の機能は、暗号アクセラレータです。暗号アクセラレータは、CPUでは処理に時間がかかる複雑な計算を高速化するために使用されます。CPUはその作業をアクセラレータにオフロードすることで、別の問題を並行して処理することができます。その結果、暗号処理にかかる時間が短縮され、CPUサイクルが節約され、さらにはバッテリ駆動デバイスのエネルギー使用量が減少する可能性があります。

開発者が暗号アクセラレータを使用できる操作はいくつかあります。まず、通信やデータの暗号化に使用することができます。一般的に使用される暗号化方式はAES-256ですが、MCUによっては他の暗号化方式にも対応しています。もう1つの用途は、データセットのハッシュを計算することです。これは、アプリケーションコードやデータの整合性を検証する際に役立つ場合があります

暗号アクセラレータは見落としがちですが、優れたセキュアMCUには必ず搭載されています。開発者にとって大切なのは、MCUのサポート内容を確認し、アプリケーションの予想ライフサイクルに必要な機能を備えているかどうかを確認することです。

まとめ

セキュリティは、開発者が開発サイクルの最後にただシステムに追加すればいいというものではありません。早い段階で、システムに対する脅威を理解し、それを保護するために必要なハードウェア機能をすべて備えたMCUを選択するように注意する必要があります。

著者について

Image of Jacob Beningo

Jacob Beningo氏は組み込みソフトウェアコンサルタントで、現在、製品の品質、コスト、市場投入までの時間を改善することで、ビジネスを劇的に変革するために数十か国以上のお客様と作業しています。同氏は、組み込みソフトウェア開発技術に関する200以上の記事を発表しており、引っ張りだこのスピーカーでありテクニカルトレーナです。ミシガン大学のエンジニアリングマスターを含む3つの学位を取得しています。気楽にjacob@beningo.comにメールするか、彼のウェブサイトwww.beningo.comから連絡してみてください。そして毎月のEmbedded Bytes Newsletterにサインアップしましょう。

More posts by Jacob Beningo
 TechForum

Have questions or comments? Continue the conversation on TechForum, Digi-Key's online community and technical resource.

Visit TechForum