連載
» 2018年05月29日 11時00分 公開

ハイレベルマイコン講座(1)【セキュリティ編】:マイコンのセキュリティ機能を詳細解説 〜ハードウェア編 (4/5)

[菅井賢(STマイクロエレクトロニクス),EDN Japan]

2. 内蔵メモリに関するアクセス保護

 マイコンはフラッシュメモリ以外にRAMやEEPROMなどのメモリを内蔵している。また、最近のマイコンはメモリマップドIO方式が多いので、周辺機能のレジスタもメモリにアクセスするのと同じ方法でアクセスする。

 これらのメモリやレジスタの値を読み出されたり、改ざんされたりしても大きな問題になる。STM32は、ファイアウォール(Firewall:防火壁)という機能があり、アクセスされたくないメモリ空間を前もって設定しておくと、プログラムコード実行の読み出し以外の対象アドレスのアクセスで、マイコンがリセットされるという機能だ。

図6:ファイアウォール(STM32ファミリの場合)

 WRPやPCROPのページやセクターごとの設定ではなく、アドレス単位で設定可能なので、小刻みな設定が可能だ。もちろん、この機能はフラッシュメモリにも適用される。フラッシュメモリに関しては、独自コード読み出し保護(PCROP)と似た機能なのだが、もっと小刻みな保護が可能な機能だ。

 また、CPUがデータにアクセスしてもリセットがかかるため、トロイの木馬のような攻撃からもマイコンを守ることができる。Arm Cortex-Mのオプション機能のMPU(Memory Protect Unit)を使えば、同じようにアドレス単位で、保護をかけることは可能だが、MPUは特権モードの時のみ有効である。

3. システムの侵入者を検知するタンパ検出機能

 もともと、タンパ(Tamper)とは「不法に手を加えて変える」「改ざんする」という意味である。さまざまなデータが電子化されて、保存されている場合に、保存データを改ざんしようとして、電子システムを改造したり破壊しようとする攻撃のことを指す。例えば、電子化された電力メーター(スマートメーター)では、測定したデータをいったんマイコンの内蔵メモリに保存し、その後、集中管理センターに送る。これらのデータを改ざんして、電力料金をごまかそうとするハッカーが、電力メーターの筐体を改造しようと試みた際に、タンパ信号が生成されてマイコンに送られる。マイコンは、緊急事態の動作として割り込み処理や保存しているデータの消去などを行い、さらにその後、集中管理のセンターに緊急信号を送る。

 STM32では、これら一連の動作をハードウェアが担っており、全て自動で行われる。これをタンパ検出機能と呼んでいる。

4. デバッグアクセスポート遮断

 JTAGなどのデバッガー(Arm Cortex-Mの場合はSW[Serial Wire])は、マイコンの内部状態を知り、変更を加えることができる。さらに、フラッシュメモリのプログラム書き込み、読み出し、消去ができ、RAMなどの内蔵メモリのデータも変更できる。非常に便利な機能であるが、これはハッカーにとっても都合のよい機能である。

 また、デバッガーの機能を遮断することも、有効なセキュリティ機能の1つである。STM32では、前述したRDP2がこれに当たる。RDP2が有効になると、フラッシュメモリの内容を読めなくなると同時に、デバッグ機能が一切使えなくなる。ハードウェアのオプションを設定するレジスタのオプションバイトもアクセスができなくなる。

Copyright © ITmedia, Inc. All Rights Reserved.

RSSフィード

EDN 海外ネットワーク

All material on this site Copyright © ITmedia, Inc. All Rights Reserved.
This site contains articles under license from UBM Electronics, a division of United Business Media LLC.