マルツTOP > APPLICATION LAB TOPページ おすすめ技術記事アーカイブス > DSCとMCUを使用し組込みシステムのセキュリティを確保する方法

DSCとMCUを使用し組込みシステムのセキュリティを確保する方法

著者 Stephen Evanczuk 氏
DigiKeyの北米担当編集者の提供
2023-07-25

マルツ掲載日:2023-11-06


 IoTのセキュリティは、組込みアプリケーションのオプションとしての機能をはるかに超え、システムの完全性を確保する必須の機能へと進化しています。増え続けるセキュリティ仕様に対応するために、低消費電力で高性能といった要件に適合するだけでなく、認証、暗号化、セキュアストレージ、セキュアブートといったハードウェアベースのセキュリティ機能を提供できるソリューションが必要とされています。

 この記事では、組込みセキュリティの原則について簡単に紹介します。ここでは、Microchip Technologyの高性能なデジタルシグナルコントローラ(DSC)と低消費電力のPIC24Fマイクロコントローラユニット(MCU)、およびMicrochipのセキュリティデバイスを使用することで、厳しい組込みセキュリティに対する新たな需要に対応する方法を紹介します。

4つの主要原則に基づいて構築される組込みセキュリティ

 インターネットに接続できるスマート製品は、単体では対応できないような高度なアプリケーションに結びつけることができます。しかし、同じ接続経路を利用したサイバー攻撃の脅威は、スマート製品の価値を制限する可能性があるだけでなく、これらの製品や関連アプリケーション、そしてユーザーを無限の脅威にさらすことになります。

 開発者は、サイバーセキュリティに対するユーザーの継続的な要求に直面するだけでなく、国や地域の組織によるセキュリティ仕様に対応する必要性が高まっています。最も影響力のある2つの仕様である、欧州のETSI EN 303 645「コンシューマ用IoTのためのサイバーセキュリティ:ベースライン要件」と米国の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はIEC60730機能安全対応とISO26262準拠で、オートモーティブセーフティインテグリティレベルB(ASIL-B)、SIL-2オートモーティブおよび産業用セーフティクリティカルアプリケーションの機能安全認証を簡素化するように設計された複数のハードウェア機能を提供します。

 dsPIC33C DSCは性能を最優先するアプリケーション向けに設計されていますが、PIC24F MCUは汎用組込みシステム、すなわち民生用電子機器、産業用オートメーション、医療機器、制御など、コネクティビティは必要ですがDSP機能は不要なアプリケーション向けに性能と電力効率のバランスを考慮して設計されています。

 また、PIC24F MCUはdsPIC33C DSCと同様に、家庭用アプリケーションを構築するためのクラスB安全診断ライブラリを備えたIEC60730機能安全対応デバイスです。

 先に述べたように、ファームウェアの完全性は、組込み型サイバーセキュリティの中核的原則です。開発者がファームウェアの整合性と全体的なコードの保護を確保できるように、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 MCUをMicrochipのATECC608CryptoAuthenticationやTrustAnchor100(TA100)CryptoAutomotiveセキュリティICと組み合わせることで、ハードウェアベースのセキュリティ機能をフルに装備した製品をより簡単に導入することができます。

 これらのセキュリティICは、セキュアストレージ、ハードウェアアクセラレーション暗号エンジン、真の乱数発生器、暗号アルゴリズムが必要とするその他のメカニズムを含む、ハードウェアベースの耐タンパセキュリティメカニズムを提供します。

 コンパニオンデバイスとして特別に設計されたこのICは、DSCやMCUシステム設計に簡単に追加でき、完全な組込みシステムセキュリティの実装を完了できます(図6)。


図6:ATECC608やTA100などのセキュリティICは、dsPIC33C DSCやPIC24F MCUのセキュリティ機能を補完し、安全な組み込みシステムの実装を簡素化します。(画像提供:Microchip Technology)

 安全なファームウェアアップデートなどの重要な操作の実行は、これらのコンパニオンセキュリティICと組み合わせたdsPIC33C DSCとPIC24F MCUの補完的なセキュリティ機能です。

 開発者はコード署名技術を使用して、ファームウェアの更新操作が完了する前にコードの信頼性と整合性を検証します。ここで、開発者は開発システムを使用して、コード、コードメタデータ、検証に使用される署名を含む更新パッケージを作成します(図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をベースとしたシステムを構築するためのいくつかの関連する開発ボードを提供しています。例えば、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)を提供しています。また、dsPIC33CH128MP508ベースのプラグインモジュール(MA330040)をMicrochip Explorer Embedded評価ボード(DM240001-2)に接続して、安全な組込みシステムの開発を簡素化することもできます。

まとめ

 組込みシステムのセキュリティは、ファームウェアの完全性、認証、暗号化、安全なストレージを含むサイバーセキュリティの中核となる原則をサポートできるハードウェアベースのメカニズムが利用できるかどうかにかかっています。

 MicrochipのdsPIC33C DSCとPIC24F MCUは、コード保護を簡素化しますが、ATECC608とTA100セキュリティICは効果的なセキュリティプラットフォームに必要な追加セキュリティメカニズムを提供します。

 これらのデバイスを組み合わせて使用することで、IoT、自動車、産業、民生、医療アプリケーション向けの組込みソリューションにおけるシステムレベルのセキュリティのニーズに応えることができます。




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

 

このページのコンテンツはDigi-Key社より提供されています。
英文でのオリジナルのコンテンツはDigi-Keyサイトでご確認いただけます。
   


Digi-Key社の全製品は 1個からマルツオンラインで購入できます

※製品カテゴリー総一覧はこちら



ODM、OEM、EMSで定期購入や量産をご検討のお客様へ【価格交渉OK】

毎月一定額をご購入予定のお客様や量産部品としてご検討されているお客様には、マルツ特別価格にてDigi-Key社製品を供給いたします。
条件に応じて、マルツオンライン表示価格よりもお安い価格をご提示できる場合がございます。
是非一度、マルツエレックにお見積もりをご用命ください。


ページトップへ