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
© Copyright 2024 Paperzz