固件セキュリティのための正しいメモリアーキテクチャを選択する

June 2, 2026
最新の会社ニュース 固件セキュリティのための正しいメモリアーキテクチャを選択する

IoT デバイスに対するネットワーク攻撃が増加しているにもかかわらず,ファームウェアセキュリティはしばしば次要に置かれています.攻撃者がシステムスタックに侵入し,起動プロセスと底辺のハードウェア構成をターゲットにすると検証可能な信頼チェーンを確立する上で重要な決定となりました.

ファイアウェアのセキュリティを確保するには,各コンポーネントが実行前に暗号化検証を受ける必要があります.この経路は,不変のブートローダーから始まります.主なファームウェアの読み込みと検証を担当するしかし,各ステップで使用されるメモリ技術は,非許可の修正に対するファームウェアの脆弱性をもたらす可能性があります.

内部および外部フラッシュメモリ
固件を格納するために使用される非揮発性メモリの物理的位置は,デバイス脅威モデルの最も重要な要因の一つです.固件エンジニアは,チップ内嵌フラッシュ (eFlash) とSPIやQSPIなどのシリアルインターフェイスで接続された外部フラッシュモジュール間で選択する必要があります..

埋め込みフラッシュメモリは,通常,マイクロコントローラーやSoCチップに直接組み込まれます.このアーキテクチャは,攻撃者が操作できる外部バスがないため,最高レベルの物理的セキュリティを提供します.内部のフラッシュメモリへのアクセスも専用レジスタとロックビットによって制御されます

特殊な安全シューズをショートカットすることで,開発者はJTAGやSWDデバッグインターフェースを無効にすることで,ハッカーがファームウェア画像を変更するのを防ぐことができます.しかし,SoCがより小さなノードに移動するにつれて,この技術は大きなスケーラビリティの課題に直面します.

対照的に,外部フラッシュメモリはメインプロセッサの外に配置され,高速シリアルインターフェイスを通じて通信する.このアーキテクチャ選択により,ストレージ容量は簡単にスケーリングできます.攻撃面を拡大しますプロセッサと外部フラッシュメモリとの間で送信されるデータは 盗聴や中途半端な攻撃や物理的な操作などの脅威に 脆弱です

これらのリスクに対処するために,ファームウェアエンジニアは健全なハードウェアおよびソフトウェア保護措置を実施する必要があります.多くの外部NORフラッシュメモリデバイスには物理的な書き込み保護ピンが装備されています.ピンが特定の電圧に置かれたとき,チップの内部ロジックは 削除や書き込みコマンドの実行を防止します.


図1:Winbond ElectronicsのW77Q32JWSSIR TRセキュアシリアルNORフラッシュメモリには複雑な通信チャネル暗号化機能があります. (画像源:Winbond Electronics)

しかし,データが読み取れる場合,フラッシュメモリをロックするだけでは不十分です.実行中に,攻撃者はまだアドレスとデータバスにアクセスできます.この脆弱性により 特殊な安全フラッシュデバイスが開発されましたハードウェアベースのルーツ・オブ・トラスト・メカニズム,暗号化された通信チャンネル,およびロールバック攻撃を防ぐ単調なカウンタを含む.

しかし,間違ったストレージアーキテクチャを選択すると,デバイスはソフトウェアのパッチによって完全に修正できない根本的な欠陥を残します.例えば,暗号化や検証なしで外部EEPROMにファームウェアを格納する設計は,常にハードウェア攻撃に脆弱である.逆に,過剰な制限を持つメモリを選択すると,その機能に影響を及ぼす可能性があります.

したがって,エンジニアは,メモリアーキテクチャを通じてファームウェアセキュリティを最大化するためにベストプラクティスと設計技術を理解する必要があります.

セキュアなファームウェアストレージ設計のベストプラクティス
起動から実行までの安全なファームウェアストレージ経路を設計する際には,ファームウェアエンジニアは以下の原則に従う必要があります.

1ハードウェアベースの信頼の根源

実行は常に不変なメモリ領域から開始する必要があります.例えば,起動ROMまたは永久にセキュアなフラッシュセクターは,他のすべてのファームウェアを検証するためのコードを含める必要があります.これは,攻撃者が初期パスワードを改変して検証を回避できないことを保証します..

2暗号化された署名を使用します.

安全な起動ロードを,信頼されるプライベートキーで署名されたファームウェアイメージのみを実行するように設定します.この方法で,攻撃者がメモリにアクセスしビットを変更しても,不正なコードを防ぐことができます.機密性が要求される場合保存されたファームウェアは暗号化できます

3ハードウェアのセキュリティ機能を使用

システムアーキテクチャが外部ストレージを使用している場合,エンジニアは,組み込みパスワード保護や単純な暗号化などのハードウェアセキュリティをサポートするデバイスを選択する必要があります.この装置は 完全なセキュリティ部品ほど 頑丈ではないかもしれませんが防護層が加わります


図2:マクロニックスは,シリアル周辺インターフェース付きの32 MbのシリアルNORフラッシュメモリMX25L3233FM2I-08Qをサポートしている. (画像源:マクロニックス)

4固件とデータを隔離する

MCUでは,重要なルータイン命令を安全なメモリ領域に配置します.特定のフラッシュメモリバンクを実行可能のみまたは読み込みのみとマークすることができます..

5セキュリティファームウェア更新計画

更新プロセスそのものが検証されていることを確認する (例えば,更新パッケージの署名を要求する).設計が一時的な更新のために外部ストレージを使用する場合は,主要ファームウェアストレージと同じセキュリティ対策が採用されるべきです..