セキュリティ機能の研究

IoT
IoT 時代はデータ漏えいの危険がいっぱい…
ワンチップ Cortex-M でここまで!
マイコン内蔵最新
セキュリティ機能の研究
第5回
(最終回)
イーサ /USB/SD/ デバッグ・ポート…
外部からの盗み見を防ぐメモリ保護ユニット MPU
MPUからの指定でアクセスを制限する
リージョン1:リードと実行のみ可能
今回解説する
Kinetisマイコン
(フリースケール・セミコンダクタ)
バス・マスタ・モジュール
CPU
コア
保護対象
(メモリ・デバイス)
バス・マスタ:
CPUコア
r/x
CPUコアはリージョン1にはライトできない
バス・エラー
リード/ライト
DMA
リージョン2:
リードとライトのみ可能
メモリ保護ユニット
MPU
クロスバー・スイッチ
リード/命令フェッチ
ライト
中森 章
フラッシュ・
メモリ
バス・
マスタ:
DMA
r/w
DMAは領域2をリード/ライトできる
リード/ライト
CPUコアはリージョン2をアクセスできない
バス・エラー
リード/ライト/
命令フェッチ
バス・エラー
SRAM
リード/ライト/
命令フェッチ
設定されていない領域にはアクセスできない
リード/ライト/
命令フェッチ
CPUコアはリージョン3をリード/ライト/
実行できる
r=リード許可/w=ライト許可/x=実行許可
バス・
マスタ:
CPUコア
r/w/x
リージョン3:リード/ライト/実行すべて可能
図 1 メモリへのアクセスを制限! 内容の盗み見を防ぐ Memory Protection Unit(MPU)
メモリ保護はクロスバー・スイッチでメモリへのアクセスを制限することによって行う
本稿では Cortex-M マイコン Kinetis( フリースケー
ル)の周辺機能として実装されているメモリ保護ユ
ニット MPU(Memory Protection Unit)について解説
します.
Cortex-M シリーズの CPUコアにもMPU が内蔵され
ていますが,本稿で説明するMPUとは別物です.しか
し,提供している機能は,メモリ保護という観点では,
同様です.しかし,CPU 内蔵の MPU は,CPUという
バス・マスタからのアクセス保護しか実現できません.
Kinetis では周辺機能として MPU を実装すること
で,CPU からのメモリ保護のほかに,CPU 以外のバ
ス・マスタ,すなわちイーサネットや DMA からのメ
モリ保護を実現します.
メモリや SRAM,あるいは FlexBus( メモリに接続す
ることを仮定)などのメモリ領域です.外部からの侵
略行為に対してメモリ内容を保護する意味があります.
これは耐タンパ機能そのものです.
これらのメモリを盗み見する場合,侵略者はデバッ
グ・ポートやイーサネットなどのバス・マスタを経由
して侵入することが考えられます.Kinetis の提供する
MPU にはこれらのバス・マスタからメモリ領域を保護
する機能を第一に考えられています.これは CPU コア
のみを対象としている Cortex-M シリーズ CPU 内蔵の
MPU 機能とは一線を画する機能です.
● デバッグ・ポートや SD,イーサネットなど外
部からの侵略行為にも有効!
● メモリ保護方法…クロスバー・スイッチでアク
セスを制限
Kinetis が備える MPU の保護対象は,フラッシュ・
MPU は MCU のクロスバー・スイッチに対して,
2015 年 7 月号
メモリ保護ユニット MPU
第 1 回 通信の認証などによく使う! 暗号高速化ユニット CAU(2015 年 3 月号)
第 2 回 暗号化通信に欠かせない ! 乱数生成器 RNG(2015 年 4 月号)
第 3 回 エラー検出によく使う CRC(2015 年 5 月号)
141