freescale powerpoint templatecache.freescale.com/files/training/doc/dwf/jnk-aut-t1168.pdf · evita...

28
TM September 2013

Upload: duongquynh

Post on 10-Apr-2018

232 views

Category:

Documents


5 download

TRANSCRIPT

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