Cipher-block chaining (CBC)

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