チュートリアル...ARM Writer or WATCHPOINT CPU外部フラッシュメモリへアクセス チップイレース → ライト → ブロックイレース → リード Figure
Freescale PowerPoint Template - nxp.com · セキュリティ規格 Evita Low HIS-SHE HIS-Medium...
Transcript of Freescale PowerPoint Template - nxp.com · セキュリティ規格 Evita Low HIS-SHE HIS-Medium...
TM
September 2013
TM 2
TM 3
• はじめに
−車載用マイコンのセキュリティの課題
−規格動向
• セキュリティ・ハードウェア
−暗号アルゴリズム
− 32ビット車載用マイコン暗号エンジン
• 32ビット車載用マイコン Qorivva
− MPC5646C CSE (Cryptographic Services Engine)のデモ
−応用例
• まとめ
TM
5 TM
• 安全性と信頼性
− 車内ネットワークのハッキングについて、いくつかの文献で報告されている。もはやネットワーク接続された車はどれもハッカーの攻撃対象となりえる。
− ソフトウェアは特に安全性に関するシステムでセキュアでなければいけない。
− 不正複製された部品やECUは乗用車の安全性と信頼性に影響する。
− 車内ネットワークは外部の民生電子機器経由の攻撃から保護されなければいけない。
• 資産の保護
− 走行距離情報の改ざんの保護
− 効果的な盗難防止と部品交換・改造からの保護
− 新機能ソフトウェアのダウンロードと実行可能化
• プライバシと機密保持
− 車内情報、個人情報、使用者の嗜好・場所などは、外部から見えないように、また追跡できないように保護されなければいけない。
6 TM
2012年4月 – ETAS (Bosch関連会社) は Escrypt を買収
Audi, BMW and
Escrypt
Freescale Product
with CSE first SHE
imp.
EVITA - NEC, IFX,
Bosch, Escrypt ...
55nm Freescale
Product with HSM
PRESERVE
Escrypt, Renault,
Fraunhofer
Tier1 author of
HIS-medium Spec.
2008 2009 2010 2011 2012
MPC5646C - CSE
MPC5746M / MPC5748G - HSM
EVITA - Low/Medium/High Sec. Modules
HIS - SHE
HIS - HSM
V2X Sec.System Mission
Design, implement, and test
a secure and scalable V2X
Security Subsystem
Mission
Design, verify, and prototype
an architecture for automotive
on-board networks
7 TM
• 欧州OEMがサードパーティescrypt に対しSHE 規格策定を指示
• SHE 規格は公式にHIS (OEM initiative software) 規格として取り込まれる
• SHE はオープンソース規格として開発される
• フリースケールは2008年からSHE規格策定に協力
• SHE 規格は技術部分についてのみ言及
その実装方法、過程、最終形態については触れていない
• SHE 規格リンク: http://portal.automotive-his.de/index.php?option=com_content&task=view&id=31&Itemid=41
8 TM
• SHEは機能についての規格で、実際にはMCUの周辺回路として実装する必要がある
• 暗号方式: AES-128 , ECB + CBC
• メッセージ認証符号(MAC): AESベース CMAC
• SecureBoot: フラッシュメモリ・サイズの5% (32-128 kBytes) 10ms以内で処理
• 鍵:
− 汎用鍵 KEY_<1..10> と付随する write protectionなど属性フラグ、28-bit カウンタ
− 120-bit UID value
− BOOT_MAC_KEY & BOOT_MAC
− MASTER_KEY
− RAM_KEY
• PRNG 疑似乱数生成器
• ユーザ・アクセス関数 19個(例えば、暗号化、復号化など)
• SHE規格では未対応
− セキュリティをより強化する特別なプロセス
− デバイスの物理解析に対する防備
9 TM
3つのレベルのハードウェア・セキュリティ・モジュール
プロジェクトの目標 セキュリティ関連部品とやりとりされる情報が外部からの攻撃に対し保護が必要な、車載向けネットワークの設計、検証、試作
2011年にプロジェクトは完了
High-Level (Vehicle Level)
ECC-256 NIST FIPS GF(p)
WHIRLPOOL AES based HASH
Medium-Level (ECU Level)
Internal Core 50-250 MHz
Sec. Counter
Low-Level (Sensor/Actuator Level)
AES-128 UTC Clock
AES-PRNG EVITA HW-IF
Internal RAM 64 KBytes
Internal NVM 32+10 KBytes
EVITA Security Modules Qorivvaは
Midレベルをサポート
AES-128, PRNG
コア処理 25-100MHz
10 TM
• Tier1 主導のセキュリティ・モジュール規格 : HSM
− First samples 2010年11月
• HISはMidレベルのセキュリティ・モジュール規格化を目標
− Evita MediumとTier 1の結果を再利用
− 2012年 Evita Medium/HSM が HIS規格に取り込まれることを期待
• Evita に続くプロジェクト
• PRESERVE (Preparing Secure Vehicle-to-x Communication Systems)
− ミッション
セキュアかつスケーラブルなV2X(車-他間通信系) セキュリティ・サブシステムの設計、実装、検証
− Evita Full moduleをベースにしている
− 2011年1月 – 2014年12月
11 TM
• フリースケールはこれらセキュリティ規格に
完全対応した製品を既に提供済み
セキュリティ規格 Evita Low HIS-SHE HIS-Medium
(EVIT-Medium) EVIT-High
主な機能 Unique ID
暗号エンジン
フラッシュメモリ
固定コマンド
ユーザ
プログラマブル
公開鍵暗号
HASH
CSE
モジュール
HSM
モジュール
supported by MPC5646C
supported by MPC5746M & MPC5748G
TM
13 TM
共通鍵暗号 公開鍵暗号
構成 One key for encoding and
decoding
Key pair (public/non-public) enc
長所 Compact implementation
High performance
Key lenght (<512 bits)
N
Supports verification
短所 Key exchange problem
Long calculation time
No message broadcasting
アルゴリズム DES, AES RSA, ECC
Alice Bob
共通鍵
Alice Bob
Aliceの
秘密鍵
Aliceの
公開鍵
実装が容易
高速
鍵長 (<512 bits)
DES, AES
1つの共通鍵で暗号化・復号化
鍵の交換が別途必要
公開/秘密の2つの鍵で
暗号化・復号化
鍵の配送問題を解決
計算量が大きい
多数の相手先への配信不向き
RSA, ECC
Qorivvaでは
共通鍵暗号
AESをサポート
14 TM
Electronic codebook (ECB)
電子コードブック・モード
Cipher-block chaining (CBC)
暗号ブロック連鎖モード
構成 Each block is encoded/decoded
indecently from the others
revious result is XORed with actual
plaintext
フロー
長所 Rando Secure for messages longer as block size
短所 Insecure for message longer as the block
size (statistical analysis)
No random access possible, (before the
last block can be decode all other must be
decode)
例
Block Cipher
Encryption
Ciphertext
Plaintext
Key
Key Block Cipher
Encryption
Ciphertext
Plaintext
Block Cipher
Encryption
Ciphertext
Plaintext
IV
CBC ECB
ブロック単位で暗号化・復号化
ランダム・アクセス可能
統計的にブロック・サイズより長いメッセージはセキュアではない
前回の暗号文と平文ブロックをXOR
ブロックサイズより長いメッセージに対応
ランダム・アクセス不可
(メッセージの途中から復号化できない)
15 TM
• メッセージ認証符号 (Message Authentication Code)
−メッセージを認証するための短い符号(コード、タグ)
送信者と受信者の共通鍵でメッセージを暗号処理して生成する短い符号
−メッセージの偽造や改ざんを検出
送信者の暗号化されていないメッセージが、他者から違法に改ざんされておらず信頼できると認証すること
−代表的な方式
CBC-MAC, CMAC, 以下のHMAC類
• QorivvaではSecure Bootに必要なCMACをサポート
16 TM
• NIST recommendation 800-38B
−暗号処理としてAES-128を使ったメッセージ認証符号
−インターネットで使われているIP Secと同じ方式
このCMAC符号がSecure Boot
等に使われる
Ek Ek Ek
Ci-1 Ci+1Ci
Pi-1 Pi+1Pi
IV
CMAC符号
(コード、タグ)
メッセージ
暗号文
L*u
送信者と受信者の共通鍵でメッセージを暗号処理
17 TM
• CSEモジュール - HIS規格であるSHE-
Specification (Version 1.1)を実装
• 120 MHz動作 32-bit セキュアコア
• AES
− 暗号モード ECB & CBC サポート
− 処理能力 100 Mbit/sec
− レイテンシ 2μs
• CSEモジュール・インタフェース
− クロスバー(XBAR)マスタ
− コアコマンド用IP SkyBule IF
• セキュア・フラッシュに鍵情報
− CSEしかアクセスできない
• PRNG 疑似乱数生成器
− アナログ乱数素子をシードにする
XBAR-IFIP SkyBlue-IF
CSE
Core
AES
XBARPeripheral
Bridge
BIUFLASH
RAM
SRAM
CSE Block
Sec. FLASH
INTC
Host
Inter.
Core eDMA FlexRay
MPU
MI
DEBUG
NEXUS
JTAG
UTI
ROMINTC
Masters
Slaves
Debugger
connected
Test Interface Array
Test Interface BIU
Host to CSE
Interrupt
on/
off
Secure „Firewall“
PB-IF
RNG
鍵のプログラミング
鍵の持ち主はセキュア・フラッシュに鍵を書くことはできるが、読むことはできない。書いた人しか鍵は知りえない仕組み
18 TM
• SHEコマンド例
− ENC_ECB(Key ID,平文ブロック) -> 暗号文ブロック
− DEC_ECB(Key ID,暗号文ブロック)->平文ブロック
− VERIFY_MAC(Key ID, メッセージ)-> CMAC符号
• SHEで規定する鍵の更新・管理方法
− 鍵のプログラム
LOAD_KEY(KDF、暗号化した鍵の値)
− 鍵の消去
DEBUG_AUTH(KDF)
− 鍵の持ち主しか知りえないMASTER_ECU_KEYを用いたオフライン計算による値KDFを使って、直接鍵の取り扱いをせずに鍵が入っているセキュア・フラッシュを更新・管理
SHEの鍵の定義
SHEのポイント
SHEエンジンだけが鍵を直接扱うことができる。MCUコアのソフトから
SHEエンジンを見るとブラックボックスで鍵を直
接扱えない
MCU
コア
CSE
(SHEエンジン)
鍵
コマンド
KDF
戻り値
このSHEエンジンを
CSEとして
Qorivvaに実装
鍵の代わりにKDFを使う
コアソースに鍵の値を直接書かない
19 TM
• e200z0h core @ 80MHz
• クロスバー(XBAR)内部バス
• 割り込みコントローラ
− ホスト から HSMへ
• メモリ
− 28 kByte 内部SRAM
− フラッシュ
データ用: 2x 16kBytes
命令用: 2x 64 kBytes; 1x 16kBytes
• 暗号処理コア C3
− AES-128
処理能力 67.2 Mbytes/sec
− TRNG 疑似乱数生成器
アナログ乱数素子をシードにする
− DMA機能
• モニタ監視用Sensor Interface
− 電源電圧
− 温度
− クロック周波数
Evita-Medium対応
ファームウェアは
ユーザ・プログラマブル
TM
21 TM
Bolero 3M
Secure Master
鍵A CAN
UART UART
PC Hyper Terminal
Bolero_master.ht
Sending
>XdTpg1&G$eA
Receiving
>ACK
PC Hyper Terminal
Bolero_slave.ht
Receiving
>Hello
Sending
>D4j
起動時は
Secure boot
Un-censoredで
デバッガ接続可能
起動時は
Secure boot
Censoredで
デバッガ接続にはパスワードが必要
CAN 暗号通信
CAN
Bolero 3M
Secure Slave
鍵A UID 2
UART
CAN
Bolero 512k
Fake Slave 鍵を持っていないハッカーが、
Slaveになりすましてアクセスするが通信成立しない
22 TM
• MACはブート用鍵で生成されブート・ローダの改ざんを検出
ブートローダの信頼性を認証
• MAC計算値とセキュア・フラッシュのブートMAC が合致するとSecure Boot成功
AES-128
Random
number
generator
Unique ID Keys
Bus master
CSE module
Flash
Step 1: 電源起動後はCPUコアはまだ停止していて、CSEがブート・ローダコードを読む
Step 2: CSEモジュールはブート用の鍵でブート・ローダコードのMACを計算
Step 3: CSEモジュールは計算したMACとセキュア・フラッシュのブートMACを比較。合致していたらホストI/F経由でそれを知ら
せて、他の鍵のロックを解除
Step 4: CPUコアがブート・ローダ実行開始
MAC value
ブート・ローダコード
Secure Boot成功の表示フラグを1
Host Interface
MPC5646C
Boot key
1
2a
2b
2c 3a
3b
鍵のロック解除
Boot MAC
3c
ブート・ローダ実行開始 4
暗号エンジン
CSE moduleは
ブラックボックスで
外から鍵を直接扱えない
23 TM
• Master ECUとSlave ECUの共通鍵を使って通信相手を認証する。
• この方法により違法な部品交換・改造を検出できる。
AES-128
Random
number
generators
Unique ID
CSE module
Step 1: Master ECUは
乱数を生成し
Slave ECUに送信
Step 2: Slave ECUは
受け取った乱数を
鍵#9で暗号化し、
Master ECUに送信
Step 3: Master ECUは
受信したメッセージを
鍵#9で復号化
Step 4: Master ECUは復号化した乱数と、期待す
る値と比較。
合致すればSlave ECUはOKとみなす
Keys
①乱数
③復号化(乱数)
②暗号化(乱数)
Master ECU with MPC5646C
AES-128
Random
number
generators
Unique ID
CSE module
Keys
Slave ECU with MPC5646C
E.g.
CAN Key #9 Key #9
暗号エンジン
CSE moduleは
ブラックボックスで
外から鍵を直接扱えない
24 TM
• MCU毎に異なるUnique IDを使った通信相手の認証。
• この方法により違法な部品交換・改造を検出できる。
AES-128
Random
number
generators
Unique ID
CSE module
Step 1: Master ECUは
乱数を生成し
Slave ECUに送信
Step 2: Slave ECUは
受け取った乱数と自身のUIDを鍵#2で暗号化し、
Master ECUに送信
Step 3: Master ECUは
受信したメッセージを
鍵#2で復号化
Step 4: Master ECUは復号化した乱数とUIDと、期待する値と比較。
合致すればSlave ECUはOKとみなす
Keys
Flash
①乱数
UID期待値 ③復号化(乱数;UID)
②暗号化(乱数;UID)
Master ECU with MPC5646C
AES-128
Random
number
generators
Unique ID
CSE module
Keys
Slave ECU with MPC5646C
E.g.
CAN Key #2 Key #2
暗号エンジン
CSE moduleは
ブラックボックスで
外から鍵を直接扱えない
25 TM
• 乱数により再試行攻撃から保護
• 暗号により傍聴から保護
AES-128
Random
number
generators
Unique ID
CSE module
Step 2: Slave ECUは
乱数をIVとして鍵#6を
使い平文メッセージを
暗号化して送信
Step 3: Master ECUは受け取った暗号メッセージを
鍵#6で復号化
Keys
②暗号化
(暗号文メッセージ)
Master ECU with MPC5646C
AES-128
Random
number
generators
Unique ID
CSE module
Keys
Slave ECU
E.g.
CAN Key #6 Key #6
平文
メッセージ
③復号化
(平文メッセージ)
Step 1: Master ECUは
乱数をSlave ECUに送る
①乱数
暗号エンジン
CSE moduleは
ブラックボックスで
外から鍵を直接扱えない
26 TM
MPC5646C
JTAG
Censorship
Password
Register
Shadow Flash領域 Censorship
Password
NVPWD0 &1
デバッガからpasswordを
コマンド入力
SYStem.Option KEYCODE
0x89ABCDEF01234567
JTAG
Port
パスワードが
一致すれば
デバッガ接続可能
NVSCC0&1
Censorship制御コード
1)Un-censored パスワード保護無効
2)Censoredパスワード保護有効
3)Lockout デバッガ接続不可能
27 TM
• 車載用マイコンのセキュリティの課題と必要性
• 車載向け部品市場における規格動向
• 32ビット車載用マイコンのセキュリティ・ソリューション
• MPC5646C CSEのデモの紹介
セキュリティ規格 Evita Low HIS-SHE HIS-Medium
(EVIT-Medium) EVIT-High
主な機能 Unique ID
暗号エンジン
フラッシュメモリ
固定コマンド
ユーザ
プログラマブル
公開鍵暗号
HASH
CSE
モジュール
HSM
モジュール
supported by MPC5646C
supported by MPC5746M & MPC5748G
TM