DSCおよびMCUを使用して組み込みシステムのセキュリティを確保する方法
DigiKeyの北米担当編集者の提供
2023-07-25
モノのインターネット(IoT)への移行に伴い、セキュリティは組込みアプリケーションのオプション機能をはるかに超え、システムの完全性を確保するために必須の機能へと進化しています。増え続けるセキュリティ仕様に対応するため、開発者は、低消費電力や高性能といったアプリケーション要件に適合するだけでなく、認証、暗号化、セキュアストレージ、セキュアブートといったハードウェアベースのセキュリティ機能を提供できるソリューションを必要としています。
この記事では、組み込みセキュリティの原則について簡単に紹介します。ここでは、 Microchip Technology の高性能 デジタルシグナルコントローラ (DSC)と低消費電力 PIC24F マイクロコントローラユニット(MCU)、およびMicrochipの特殊なセキュリティデバイスを使用することで、厳しい組み込みセキュリティに対する新たな需要に対応する方法を紹介します。
4つの主要原則に基づいて構築されている組み込みセキュリティ
公衆インターネットに接続されたスマート製品は、単体の製品ではほとんど対応できないような高度なアプリケーションに結びつけることができます。しかし、同じ接続経路を利用したサイバー攻撃の脅威は、スマート製品の価値を制限する可能性があるだけでなく、これらの製品、関連アプリケーション、そしてユーザーを無限の脅威にさらすことになります。
システムレベルのサイバーセキュリティに対する消費者の継続的な要求に直面するだけでなく、開発者は国や地域の組織によるセキュリティ仕様に対応する必要性が高まっています。最も影響力のある2つの仕様、欧州のETSI EN 303 645「コンシューマ用モノのインターネットのためのサイバーセキュリティ:ベースライン要件」と米国のNIST IR 8259「IoTデバイス製造業者のための基礎的サイバーセキュリティ活動」は、サイバーセキュリティの実践が次の4つの主要原則に依存することを示唆しています。
- ユニークなパスワードを使用すること
- 機密性の高いセキュリティパラメータをデバイス上に安全に保管できること
- 相互認証と暗号化通信による安全な通信
- 安全なブートと安全なファームウェアアップデートによるファームウェアの完全性と信頼性を確保する能力
これらの基本原則に基づいたシステムを提供するには、ハッカーが通信、ストレージ、ファームウェア、あるいはセキュリティメカニズムそのものを改ざんするような危険なコードを注入するのを防ぐ、信頼できるプラットフォームを使用する必要があります。
信頼されるプラットフォームは、不変のハードウェアベースのセキュリティメカニズムを使用して、システムレベルのセキュリティを一から構築することにより、セキュリティを確保するのに役立ちます。コンセプトとしては単純ですが、システムレベルのセキュリティの実装は、システムのどの部分にセキュリティ上の弱点があってもサイバー攻撃を受ける可能性があるため、難しいです。Microchip Technologyの高性能dsPIC33C DSCと低消費電力PIC24F MCUをMicrochipのコンパニオンセキュリティデバイスと組み合わせて使用することで、開発者はシステムレベルのセキュリティを確保する組み込み設計をより簡単に実装できます。
性能および電源要件への対応
MicrochipのdsPIC33C DSCおよびPIC24F MCUファミリのデバイスは、幅広いユースケースをサポートするように設計されており、それぞれ堅牢な実行プラットフォームと、アナログ、波形制御、および通信ペリフェラルの広範な統合を含むアプリケーション固有の機能を兼ね備えています。実際、dsPIC33C DSCに搭載された複数のパルス幅変調(PWM)、プログラマブルゲインアンプ(PGA)、A/Dコンバータ(ADC)、その他のペリフェラルを使用することで、開発者は最小限のコンポーネントを追加(一般的にこのような設計においては電源だけは必要)するだけで複雑なシステムを実装できます。その一例として、 DSPIC33CK512MP608 シングルコアDSCを使用したオフライン無停電電源装置(UPS)の設計が挙げられます(図1)。
図1:他のdsPIC33C DSCと同様に、DSPIC33CK512MP608シングルコアDSCは、包括的なペリフェラルのセットを統合し、図示したオフラインUPSのような複雑なシステムの設計を簡素化します。(画像提供:Microchip Technology)
リアルタイム制御機能とデジタル信号処理の両方を必要とするアプリケーションのために、dsPIC33C DSCはMCUとDSCの機能を組み合わせ、その特殊な命令とハードウェア機能を備えています。セーフティクリティカルな設計のために、dsPIC33C DSCはIEC 60730機能安全対応およびISO 26262準拠で、オートモーティブセーフティインテグリティレベルB(ASIL-B)、SIL-2オートモーティブおよび産業用セーフティクリティカルアプリケーションの機能安全認証を簡素化するように設計された複数のハードウェア機能を提供します。
dsPIC33C DSCは性能が最優先されるアプリケーション向けに設計されていますが、PIC24F MCUは、汎用組み込みシステム、民生用電子機器、産業用オートメーション、医療機器、および制御とコネクティビティは必要ですがDSP機能は不要なその他のアプリケーション向けに、性能と電力効率のバランスを提供します。dsPIC33C DSCと同様に、PIC24F MCUは、家庭用アプリケーションを構築するためのクラスB安全診断ライブラリを備えたIEC 60730機能安全対応デバイスです。
先に述べたように、ファームウェアの完全性は、組込み型サイバーセキュリティの中核的原則です。開発者がファームウェアの整合性と全体的なコード保護を確保できるように、MicrochipはdsPIC33C DSCデバイスにインサーキットシリアルプログラミング(ICSP)Write Inhibitによるフラッシュワンタイムプログラマブル(OTP)およびCodeGuardフラッシュセキュリティを提供しています。たとえば、DSPIC33CK512MP608シングルコアDSCや DSPIC33CH512MP508 デュアルコアDSC などのdsPIC33C DSCデバイスや、PIC24FJ512GU405 MCUなどのPIC24F MCUデバイスなど、さまざまなアプリケーション固有のペリフェラルで構成されています。
デバイスファームウェアの保護
ICSP Write InhibitによるフラッシュOTP により、開発者はフラッシュメモリの一部をOTPメ モリとして構成し、フラッシュメモリをリード/ライトプロテクトすることができます。Microchip独自のICSP機能により、これらのデバイスはエンドアプリケーションで動作させながら、1対のピンを介してシリアルプログラミングが可能です。この機能により、メーカーは生産ボード上でプログラミングを完了することができます。ICSPではフラッシュOTPプロセスを制御するために外部プログラミングデバイスを使用する必要がありますが、Enhanced ICSPではオンボードブートローダでフラッシュOTPプロセスを制御できます。また、これらのデバイスはランタイムセルフプログラミング(RTSP)をサポートしており、フラッシュのユーザーアプリケーションコードを実行中に更新することができます。
開発者は生産デバイスをプログラミングした後、ICSP Write Inhibitを有効にすることができ、これ以上ICSPのプログラミングや消去を行うことができません。しかし、RTSPフラッシュ消去とプログラミング操作は、ICSP Write Inhibitが有効になっていても、その前に適切なフラッシュ更新コードがデバイスにプログラムされていれば、実行することができます。その結果、開発者は、ICSP Write Inhibit が有効になっている場合でも、信頼されたブートローダを使用してフラッシュを変更することができ、ファームウェアを安全に更新しながら、量産システムでフラッシュを更新する外部からの試みを軽減することができます。
CodeGuardフラッシュセキュリティは、独立したブートセグメントと一般セグメントを使用することで、プログラムフラッシュをきめ細かく保護します。開発者は、デバイスの BSLIM レジスタにブートセグメント(BS)制限(BSLIM)のアドレスを設定することで、これらのセグメントのサイズを定義します。一般セグメント(GS)は残りのメモリを占有します。機密情報をさらに保護するため、各セグメントにはさらにパーティションがあります。例えば、BSには、割り込みベクタテーブル(IVT)、オプションの代替割り込みベクタテーブル(AIVT)、追加の命令ワード(IW)空間が含まれ、重要なデバイスのユーザー設定データを含むコンフィギュレーションセグメント(CS)は、GSのユーザーアドレス空間内にあります(図2)。
図2:dsPIC33C DSCおよびPIC24F MCUファミリは、BSやGSなどの個別のパーティションでコード保護をサポートしています。(画像提供:Microchip Technology)
セグメントパーティションを設定した後、開発者は、デバイスのファームウェアセキュリティ(FSEC)レジスタを使用して、書き込み保護をオプションで有効にし、各セグメントに必要なコード保護レベルを設定することができます。実行中、デバイスは、コード保護レベルの低いセグメントに含まれるコードが、コード保護レベルの高いセグメントに含まれるコードにアクセスするのを防ぎます。典型的なシステムでは、開発者はBSをライトプロテクトし、そのコードプロテクトを高いレベルに設定し、ブートローダを含むBSを外部から変更しようとする試みを緩和します。
安全な無線ファームウェア更新の実装
ソフトウェア開発者は、新たに発見されたソフトウェアのバグ、競合他社による機能強化、新たに出現したセキュリティ上の脅威などが重なった場合、必然的にソフトウェアをアップデートする必要に迫られます。モバイルアプリのアップデートとは異なり、組み込みシステムでファームウェアの安全なアップデートを実行することは、良くて現在実行中のアプリケーションに影響を及ぼすリスク、悪ければシステムを 「ブリック」させるリスクがあります。MicrochipのdsPIC33C DSCと低消費電力PIC24F MCUファミリは、開発者がこのような問題を回避できるように設計されたデュアルパーティションメカニズムを備えています。
標準的な動作モードでは、これらのデバイスは利用可能なすべての物理メモリを連続した単一パーティションのメモリ空間として使用し(図3、左)、BSとGSに分割して構成することができます。デュアルパーティションモードでは、開発者は物理メモリをアクティブなパーティションと非アクティブなパーティションに分けます(図3、右)。
図3:開発者は、dsPIC33C DSCおよびPIC24F MCUファミリをデフォルトのシングルパーティションモードまたはデュアルパーティションモードで動作させることができます。(画像提供:Microchip Technology)
デュアルパーティションモードで動作するこれらのデバイスは、アクティブパーティションでアプリケーションコードを実行し続けながら、非アクティブパーティションをプログラミングすることができます。プログラミングが完了した後、ブートスワップ(BOOTSWP)ランタイム命令を実行すると、デバイスはブートターゲットを更新されたパーティションに切り替えます。更新されたパーティションのコードが失敗したり、欠陥が見つかったりした場合、デバイスリセットにより、デバイスは自動的に元のパーティションで起動します(図4)。
図4:デュアルパーティションモードでは、dsPIC33C DSCとPIC24F MCUは、一方のパーティションでアプリケーションコードをロードしながら、もう一方のパーティションでアプリケーションコードを実行し続けることができます。(画像提供:Microchip Technology)
更新されたパーティションの成功が保証された後、更新されたパーティションのフラッシュブートシーケンス(FBTSEQ)を元のパーティションより低い値に設定することができます。その後のデバイスのリセットで、デバイスはFBTSEQ値の低い更新されたパーティションをブートします(図5)。
図5:デュアルパーティションモードでは、開発者はデバイスリセット後に希望のパーティションで起動する順序を指定できます。(画像提供:Microchip Technology)
ICSP Write InhibitとCodeGuardによるフラッシュOTPフラッシュセキュリティは、スタティックコードセキュリティとランタイムコードセキュリティに対し重要なサポートを提供しますが、包括的な組込みセキュリティには、安全なキーストレージ、コード認証、安全な通信などの追加の仕組みが必要です。
組込みシステムのセキュリティを確保するためのコンパニオンセキュリティデバイスの使用
dsPIC33C DSCおよびPIC24FマイクロコントローラをMicrochipの ATECC608 CryptoAuthenticationまたはTrustAnchor100(TA100)CryptoAutomotiveセキュリティICと組み合わせることで、開発者はハードウェアベースのセキュリティ機能をフル装備した製品をより簡単に導入できます。
これらのセキュリティICは、セキュアストレージ、ハードウェアアクセラレーション暗号エンジン、真の乱数発生器、暗号アルゴリズムが必要とするその他のメカニズムを含む、ハードウェアベースの耐タンパセキュリティメカニズムを提供します。コンパニオンデバイスとして特別に設計されたこのICは、DSCまたはMCUシステム設計に簡単に追加でき、完全な組み込みシステムセキュリティの実装を完了します(図6)。
図6:ATECC608やTA100などのセキュリティICは、dsPIC33C DSCやPIC24F MCUのセキュリティ機能を補完し、安全な組み込みシステムの実装を簡素化します。(画像提供:Microchip Technology)
安全なファームウェアアップデートのような重要な操作の実行により、dsPIC33C DSCとPIC24Fマイクロコントローラが、これらのコンパニオンセキュリティICと連携して、補完的なセキュリティ機能を発揮します。開発者は、ファームウェアのアップデート作業を完了する前に、コードの信頼性と完全性を検証するために、コード署名技術を使用します。ここで開発者は、開発システムを使用して、コード、コードメタデータ、および検証に使用される署名を含む更新パッケージを作成します(図7)。
図7:コード署名は、ターゲットシステム上で更新する前にコードの信頼性と完全性を検証するために日常的に使用される重要なプロトコルです。(画像提供:Microchip Technology)
ターゲットシステム上では、ハードウェアベースの署名検証は、過去に使用したソフトウェアベースの署名検証で可能だった検証プロトコルの危殆化のリスクを取り除きます。その代わりに、MicrochipのATECC608やTA100のようなコンパニオンセキュリティICが、危殆化のリスクなしに署名検証処理を迅速かつ安全に実行します(図8)。
図8:ターゲットシステムでは、ATECC608やTA100のようなセキュリティICが提供するハードウェアベースの検証は、ブートローダによるファームウェア更新の前にコードの検証を確実に行うために不可欠です。(画像提供:Microchip Technology)
安全なシステムの実装を短縮するために、Microchipはソフトウェアとハードウェアを組み合わせた開発ツールを提供しています。
ソフトウェアおよびハードウェア開発の短縮
MPLAB X統合開発環境 (IDE)が開発者に完全なソフトウェア開発環境を提供する一方で、 MPLAB XC Cコンパイラ は既存のツールチェーンの開発サポートを提供します。Microchip MPLAB Code Configurator (MCC)を使用すると、どちらの環境でも開発を短縮するために、グラフィックインターフェイスを使用して、イニシャライザの自動生成、ドライバのビルド、ピンの割り当て、ライブラリの実装など、組み込みソフトウェア開発プロジェクトに関連する重要な低レベルのセットアップ手順やプロセスの多くを短縮することができます。
適切なセキュアブートローダの実装を短縮するため、Microchipの dsPIC33 DSCおよびPIC24 MCU用ブートローダ は、開発者がアプリケーションに必要なカスタムブートローダを迅速に設定および生成できるグラフィカルインターフェースを提供しています。関連するブートローダホストアプリケーションは、ターゲットデバイスへのアプリケーションコードの転送をさらに簡素化します。
ハードウェア開発のために、MicrochipはdsPIC33C DSCまたはPIC24F MCUをベースとしたシステムを構築するためのいくつかの関連開発ボードを提供しています。実際、Microchipの PIC-IoTボードEV54Y39A と PIC-IoTボード AC164164 (図9)は、それぞれAmazon Web Services(AWS)とGoogle Cloudのセキュリティ認証情報を事前にプロビジョニングしたセキュリティICを搭載しています。
図9:PIC-IoTボードAC164164のようなボードは、AWSやGoogle Cloudの認証情報を事前にプロビジョニングしたセキュリティICを搭載することで、組み込みセキュリティ開発の短縮化に貢献します。(画像提供:Microchip Technology)
カスタム設計向けに、MicrochipはdsPIC33CH512MP508デュアルコアDSCをベースとしたdsPIC33CH Curiosity開発ボード(DM330028-2)を提供しています。また、MicrochipのdsPIC33CH128MP508ベースのプラグインモジュール(MA330040)をMicrochip Explorer Embedded評価ボード(DM240001-2)に接続して、安全な組込みシステムの開発を短縮することもできます。
まとめ
組み込みシステムのセキュリティは、ファームウェアの完全性、認証、暗号化、安全なストレージを含むサイバーセキュリティの中核となる原則をサポートできるハードウェアベースのメカニズムが利用できるかどうかにかかっています。MicrochipのdsPIC33C DSCおよびPIC24F MCUは、コード保護を簡素化しますが、ATECC608およびTA100セキュリティICは効果的なセキュリティプラットフォームに必要な追加セキュリティメカニズムを提供します。これらのデバイスを組み合わせて使用することで、開発者は、IoT、自動車、産業、民生、医療アプリケーション向けの組み込みソリューションにおけるシステムレベルのセキュリティのニーズに応えることができます。

免責条項:このウェブサイト上で、さまざまな著者および/またはフォーラム参加者によって表明された意見、信念や視点は、DigiKeyの意見、信念および視点またはDigiKeyの公式な方針を必ずしも反映するものではありません。