連載
マイコンのセキュリティ機能を詳細解説 〜ソフトウェア編〜:ハイレベルマイコン講座【セキュリティ編】(2)(4/4 ページ)
マイコンを使い込んでいる上級者を対象にさらなるスキルアップ、知識習得を目指す連載「ハイレベルマイコン講座」。前回に引き続き、マイコンで実現されるセキュリティ機能について詳しく解説する。
(2)外部攻撃に対する保護
外部攻撃とは、デバッガやプローブなどの外部ツールによってトリガーされた攻撃または直接の攻撃(デバイスへのアクセス)を指す。メモリの読み出しおよび、書き込み保護、タンパ検出機能、デバッグアクセスポート遮断および、ウォッチドッグタイマーは、外部の攻撃からデバイスを保護するために使用される。
- メモリの読み出しおよび書き込み保護
- フラッシュメモリなどのマイコンの内蔵メモリへの外部アクセスは禁止される。これにより、X-CUBE-SBSFUコードを変更して信頼ルートを掘り起こすことを目的とした攻撃を防ぐことが可能だ。
- タンパ検出機能
- タンパ検出機能を使用して、デバイスの物理的な改ざん動作を検出し、関連する対策を講じることができる。タンパを検出した場合、X-CUBE-SBSFUはマイコンの再起動を強制する。
- デバッグアクセスポート遮断
- JTAGやSW(Serial Wire)が使えなくなり、外部からマイコンの内部バスに接続できなくなる。
- ウォッチドッグタイマー(Watchdog Timer)
- ウォッチドッグタイマーはフリーランニングカウンターであり、いったんカウントを開始すると停止させることはできないので、リセットが発生する前に定期的に更新する必要がある。このメカニズムは、不正なプログラムコードの実行と無限ループでブロックされることを防止することが可能だ。
(3)内部攻撃に対する保護
内部攻撃とは、マイコンで実行されているプログラムコードによって引き起こされる攻撃を指す。攻撃は、悪意のあるファームウェアがバグやセキュリティ違反を使用した場合や、または望ましくない操作が原因である可能性がある。X-CUBE-SBSFUでは、メモリの書き込み保護、ファイアウォール、独自コード読み出し保護(PCROP:Proprietary Code Read Out Protection)および、MPU(Memory Protect Unit)を活用し、内部攻撃からマイコンを保護する。
- ファイアウォール
- 内蔵メモリ(フラッシュメモリ、RAM、EEPROM、周辺機能のレジスタなど)の内容を保護するように設定できる。アクセスされたくないメモリ空間を前もって設定しておくと、プログラムコード実行の読み出し以外の対象アドレスのアクセスによって、マイコンがリセットされる。
- PCROP(プロプライエタリコード読み出し保護)
- PCROPは、実行専用領域を定義するため、暗号鍵をPCROPで保護することができる。PCROPで定義されたエリア内の暗号鍵を読み出そうとすると、リセットがかかる仕組みだ。また、特定エリアを実行すると、暗号鍵を移動させるプログラムコードをPCROPで保護されたエリアに埋め込むことも可能なので、暗号鍵の位置を特定されることもなくなる。
- 書き込み保護機能(WRP)
- 書き込み保護は、外部からの攻撃だけでなく、内部からの攻撃(改ざんなどの不要な書き込みおよび、消去)からも重要なプログラムコードやデータを保護することができる。
- MPU(メモリ保護ユニット)
- MPUを使用して、フラッシュメモリとSRAMのメモリマップを独自の領域に分割することでアクセス権を定義できる。X-CUBE-SBSFUを使用すると、MPUはX-CUBE-SBSFUコード実行中に、他のプログラムコードがメモリから実行されないように保護する。X-CUBE-SBSFUが終了し、ユーザーアプリケーション・プログラムが開始されると、MPUは解除される。
筆者プロフィール
菅井 賢(すがい まさる)
(STマイクロエレクトロニクス マイクロコントローラ製品部 アプリケーション・マネージャー)
日系半導体メーカーにて、25年以上にわたりマイコンの設計業務に携わる。その後、STマイクロエレクトロニクスに入社し、現在までArm Cortex-Mプロセッサを搭載したSTM32ファミリの技術サポート業務に従事。Armマイコン以外にも精通しており、一般的な4ビットマイコンから32ビットマイコンまで幅広い知識を有する。業務の傍らマイコンに関する技術論文や記事の執筆を行っており、複雑な技術を誰にでも分かりやすい文章で解説することがモットー。
Copyright © ITmedia, Inc. All Rights Reserved.
関連記事
- マイコンのセキュリティ機能を詳細解説 〜ハードウェア編
マイコンを使い込んでいる上級者を対象にさらなるスキルアップ、知識習得を目指す連載「ハイレベルマイコン講座」。今回から2回にわたって、マイコンで実現されるセキュリティ機能について詳しく解説する。 - ESDによる不具合発生メカニズムと対策のヒント
今回から2回にわたり、マイコンを使用する上で必要不可欠な「ESD対策」について解説していく。第1回は「ESDの破壊モード(メカニズム)」と「ESDの主な発生要因とその対策」を取り上げる。 - データシートを正しく理解するなら「凡例」から気を抜くな
今回から3回にわたり、マイコン製品のデータシートを正しく理解することを目的に、実際のデータシートを見ながら、データシートの注意点を紹介していこう。第1回は、おろそかにされがちな「凡例」をはじめ、「絶対最大定格」「一般動作条件」「電源電圧立ち上がり/立ち下がり時間」の各項目について解説していく。 - 不良解析レポートを理解するための基礎知識 ―― 一次物理解析&電気的特性評価
マイコンをより深く知ることを目指す新連載「マイコン講座」。今回から3回にわたって、マイコンメーカーが行っている「不良解析」を取り上げる。メーカーから送られてくる不良解析レポートの内容を理解するための、不良解析に関する基礎知識を紹介していく。 - CISCとRISC、何が違う?
マイコンユーザーのさまざまな疑問に対し、マイコンメーカーのエンジニアがお答えしていく本連載。記念すべき1回目は、マイコン初心者の方からよく質問される「CISCとRISCの違い」についてです。 - MCUとMPUの違いって何?
マイコンユーザーのさまざまな疑問に対し、マイコンメーカーのエンジニアがお答えしていく本連載。今回は、初級者の方からよく質問される「MCUとMPUの違いって何?」です。