スマホ端末、制御システムの堅牢化 ·...

32
2014 KDDI R&D Laboratories Inc. 1 ネットに繋がるスマホのリスク分析と課題 解決を進めてきた。この過程で、制御(組 込み)システムの堅牢化が見えてきた。 1章 スマホ端末への攻撃 2章 スマホ端末の堅牢化 3章 制御(組込み)システムへの攻撃 4章 制御(組込み)システムの堅牢化 スマホ端末、制御システムの堅牢化 ~2020年に向けた繋がる組込みシステム~ KDDI研究所 竹森 敬祐(Ph.D)

Upload: others

Post on 02-Feb-2020

2 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: スマホ端末、制御システムの堅牢化 · Android搭載のARMボードにTPMを接続して、完全性検証を試作。 端末起動時に、ブートローダ、Android

Ⓒ2014 KDDI R&D Laboratories Inc. 1

ネットに繋がるスマホのリスク分析と課題解決を進めてきた。この過程で、制御(組込み)システムの堅牢化が見えてきた。

1章 スマホ端末への攻撃 2章 スマホ端末の堅牢化 3章 制御(組込み)システムへの攻撃 4章 制御(組込み)システムの堅牢化

スマホ端末、制御システムの堅牢化~2020年に向けた繋がる組込みシステム~

KDDI研究所  竹森 敬祐(Ph.D)

Page 2: スマホ端末、制御システムの堅牢化 · Android搭載のARMボードにTPMを接続して、完全性検証を試作。 端末起動時に、ブートローダ、Android

Ⓒ2014 KDDI R&D Laboratories Inc. 2

スマホを取り巻く脅威 ■ 使い方  ◆ 様々なアプリをインストールし    て機能アップさせる携帯端末。 ■ スマホのセキュリティ    Market(アプリ)のセキュリティ  ◆ 安全なMarket/サービス利用    で、安心して楽しめます。 ■ 残る脅威は  ◆ リスクを伴うソフトウェア    (リスクウェア)  ◆ 利用者モラル  ◆ 紛失

紛失

デバイス(GPS、カメラ、NFC、SDカード、SIM/UIM)

OS(カーネル、ライブラリ、サンドボックス)

アプリデータ

(メール、写真、アドレス帳)

3G/LTE(電話/SMS、パケット)

WiFi、Bluetooth(パケット)

アプリ、コンテンツ

アプリ・マーケット

SNS、Webサービス

広告、アプリ管理

サービス提供

悪用

不正改造管理者権限奪取

感染

盗聴不正課金

ネットワーク

端末

利用者モラル悪性Webサイト(詐欺)

プライバシー侵害

情報漏洩

リスクウェア(悪用、悪意、プライバシー侵害、偽物)

Page 3: スマホ端末、制御システムの堅牢化 · Android搭載のARMボードにTPMを接続して、完全性検証を試作。 端末起動時に、ブートローダ、Android

Ⓒ2014 KDDI R&D Laboratories Inc.

公開されている一般の脆弱性DB

3

JVN        :  Japan  Vulnerability  Notes  (JPCERT/CC  ,  IPA  )  Android    : 103  

CVE : Common Vulnerability and Exposures (米国政府 , MITRE社)

Android : 187

Page 4: スマホ端末、制御システムの堅牢化 · Android搭載のARMボードにTPMを接続して、完全性検証を試作。 端末起動時に、ブートローダ、Android

Ⓒ2014 KDDI R&D Laboratories Inc. 4

◆ zergRush  exploit  oneclick  tool  (runme.bat)の実行プロセス      Ø  android  端末とPC  をusb  接続し、コマンドラインより  

   “runme.bat”  を実行、下記プロセスが実行される。    

   ①android  端末 作業用ディレクトリ作成      ②zergRush  exploit  code  送信、実行権付与、実行      ③root  権限の取得      ④system  領域のremount         ⑤su /  busybox  ツールのsystem領域への挿入      ⑦SuperUsr.apk  アプリのインストール      ⑥system  設定変更      ⑦端末reboot      ⑧adb  接続しsu  command  による id変更要求      ⑨superuser.apkが起動 ⇒ get  root  !!    

 Ø  上記①~⑦までを自動実行(runme.bat)  

・①~③まではzergrush  を利用したroot権限取得  ・④~⑦は恒久的はroot  権限を使用するための作業  

一時的  Root  奪取

恒久的  Root  奪取

runme.bat (root oneclick tool ) +files /adb.exe/busybox/su /superuser.apk/zergRush

脆弱性を突くJailbreak(root権限奪取とシステム改造)

Page 5: スマホ端末、制御システムの堅牢化 · Android搭載のARMボードにTPMを接続して、完全性検証を試作。 端末起動時に、ブートローダ、Android

Ⓒ2014 KDDI R&D Laboratories Inc. 5

スマホ・タブレットのリスク

■ スマホにウイルス*なし  ◆ PCのような自動的/伝播的なウイルス感染はない。**  ◆ PCのように、クリックするだけで感染することもない。    ⇒ Marketから駆除されることで、絶滅する。

  *ウイルスとは、ファイルやネットワークを媒介して自動感染(伝播)するもの。   **手動感染した後は、自動感染はありうる。 ■ アンインストールで元通りに  ◆ 殆どの悪意のアプリ(マルウェア)は一般権限で、/data領域にイ    ンストールされる。    ⇒ /system領域の改竄に至らずアンインストールで元通りになる。    ⇒ 但し、抜き取られた情報は元には戻らない。

 ◆ 希少なJailbreakアプリは管理者権限を持ち、端末改造に至る。

Page 6: スマホ端末、制御システムの堅牢化 · Android搭載のARMボードにTPMを接続して、完全性検証を試作。 端末起動時に、ブートローダ、Android

Ⓒ2014 KDDI R&D Laboratories Inc. 6

ネットに繋がるスマホのリスク分析と課題解決を進めてきた。この過程で、制御(組込み)システムの堅牢化が見えてきた。

1章 スマホ端末への攻撃 2章 スマホ端末の堅牢化 3章 制御(組込み)システムへの攻撃 4章 制御(組込み)システムの堅牢化

スマホ端末、制御システムの堅牢化~2020年に向けた繋がる組込みシステム~

KDDI研究所  竹森 敬祐(Ph.D)

Page 7: スマホ端末、制御システムの堅牢化 · Android搭載のARMボードにTPMを接続して、完全性検証を試作。 端末起動時に、ブートローダ、Android

Ⓒ2014 KDDI R&D Laboratories Inc. 7

分析:Jailbreak(root権限奪取とシステム改造)の流れ ■ 攻撃のシナリオ  Step1: root権限奪取アプリをユーザ領域にインストールする(感染)。  Step2: 実行され、OS等の脆弱性を突いてメモリ上でroot権限を奪う(攻撃)。  Step3: システム領域に恒久的にroot権限を利用できるようsuを置く(改造)。

展開されたシステム領域

メモリ:RAM

フラッシュ・ストレージ

システム

領域

ユーザ領域

MalwareStep1

実行(ロード)

一時的なroot権限奪取

脆弱性攻撃

Step2

改造

Step3

恒久的なroot権限奪取

su

感染

Page 8: スマホ端末、制御システムの堅牢化 · Android搭載のARMボードにTPMを接続して、完全性検証を試作。 端末起動時に、ブートローダ、Android

Ⓒ2014 KDDI R&D Laboratories Inc.

端末・OSの堅牢化 ~不正改造対策~

8

アプリ制御・ライブラリ

デバイス (WiFi, GPS, カメラ等)

サンドボックスDalvik(制限機構)

一般アプリ

root化アプリ

SELinuxの制限機構

サンドボックス連携の制限機構

Linuxカーネル

Linuxのr/w/x制御

カーネル層から堅牢にしておいたことで、完全乗っ取り型の遠隔制御の被害確認なし

■ 端末の堅牢化(Security Spiced Android)  ◆ 端末メーカ、通信キャリアの領域である/systemを保護する(例    /system/binにsuを置かせない)ことで攻撃の影響を最小化する。

Page 9: スマホ端末、制御システムの堅牢化 · Android搭載のARMボードにTPMを接続して、完全性検証を試作。 端末起動時に、ブートローダ、Android

Ⓒ2014 KDDI R&D Laboratories Inc.

SEAndroidの導入

9

■ Security Enhanced Android  ◆ アメリカ国家安念保障局(NSA)がSELinuxをAndroidに適用。    ⇒ root権限奪取の糸口を減らす。    ⇒ root権限を奪取されても、できることを減らし、被害を抑え込む。 ■ アクセス制御  ◆ 通常Linuxの任意アクセス制御(DAC: Discretionary Access Control)

リソースに対する所有者権限による制御 rwx r-x r-x 755 /data/aaa.txt owner group other    ⇒ rootは全てにアクセス可能 = rootが取られるとおしまい。

 ◆ SELinuxの強制アクセス制御(MAC: Mandatory Access Control)  ⇒ 「誰が」「何に対して」「何をできる」のホワイトなルールセット。  ⇒ 明示的な許可の無い組み合わせは、root権限であっても禁止

Page 10: スマホ端末、制御システムの堅牢化 · Android搭載のARMボードにTPMを接続して、完全性検証を試作。 端末起動時に、ブートローダ、Android

Ⓒ2014 KDDI R&D Laboratories Inc.

SEAndroidのモード

10

■ Disable (ver4.2)  ◆ SELinuxが無効なモード。  ◆ Android4.3からSEAndroidを無効にするオプションがない。 ■ Permissive Mode (ver4.3)  ◆ ポリシー違反をログ出力し、制御は行わない。    ⇒ dmesg or /data/misc/audit/audit.log

■ Enforcing Mode (ver4.4)  ◆ ポリシーに基づきアクセス制御を行う。    ⇒ 現在、AOSP*のmaster branchは、Enforcing Modeを採用。

*Android Open Source Project

Page 11: スマホ端末、制御システムの堅牢化 · Android搭載のARMボードにTPMを接続して、完全性検証を試作。 端末起動時に、ブートローダ、Android

Ⓒ2014 KDDI R&D Laboratories Inc. 11

KDDI研) Android(ARM)+TPMのセキュアブート ■ 世界初のAndroid端末のセキュアブート(2012年)  ◆ Android搭載のARMボードにTPMを接続して、完全性検証を試作。  ◆ 端末起動時に、ブートローダ、Android OS、アプリの状態を測定。  ◆ 測定結果を、遠隔の状態管理局に送付し、完全性をリモート検証する。

デモ構成

遠隔の状態管理局

Android(ARM), TPM

起動時の測定ログ

Boot Loader 1

TPM

Boot Loader 2

Linuxカーネル

外部の状態管理サーバ

Root of Trust端末(メモリ+CPU処理)

署名(秘密鍵)

Boot Loader 2の期待値

認証(秘密鍵)

測定

認証(公開鍵)

Step1

測定

検証

測定値(Android, アプリ)

Androidシステム/system, etc

測定

Init(+測定機能)起動用ファイルシステム

署名

署名

起動

起動

起動

署名

アプリ/data/app, /data/app-private, /sd_card

測定 起動

期待値(Android, アプリ)

Step2

Step3

Step3'

Step4

Page 12: スマホ端末、制御システムの堅牢化 · Android搭載のARMボードにTPMを接続して、完全性検証を試作。 端末起動時に、ブートローダ、Android

Ⓒ2014 KDDI R&D Laboratories Inc. 12

実装) SIMを活用したセキュアブート

SIM/UIM、3Gモデム(SIM/UIMドライバ)

Page 13: スマホ端末、制御システムの堅牢化 · Android搭載のARMボードにTPMを接続して、完全性検証を試作。 端末起動時に、ブートローダ、Android

Ⓒ2014 KDDI R&D Laboratories Inc.

Step 2) Linuxカーネル、Intramfsを測定、測定値をSIM/UIMへ保存。Linuxを起動。

13

2014年 ARM+SIM/UIMのセキュアブート

Step 3) Androidシステムを測定、SIM/UIMへ測定値を保存。Androidシステムを起動。

Step 1) SIM/UIMドライバを測定、SIM/UIM起動、測定値をSIM/UIMへ保存。

ROM化されたBoot Loaderから測定

Step4) 所望のアプリを測定、測定値をSIM/UIMへ保存。

Linuxカーネルのinitから測定

ROM化されたBoot Loaderから測定

Linuxカーネルのinitから測定

Step5) 署名付測定値を検証サーバへ送付。

Boot Loader

SIM/UIM

Linuxカーネル

外部の検証サーバ

Root of TrustARM端末

測定値(ハッシュ値)管理Javaアプリ

測定

署名検証(公開鍵)

Step 1保存

測定値

Androidシステム/system, etc

測定

init(+測定機能)Initramfs

署名

保存

起動

起動

アプリ/data/app, /data/app-private, /sd_card

測定 起動

期待値(3G/LTEモデム, Linux, Android)

Step 3

Step 4

Step 5

ハッシュ積算値+ + +

署名(秘密鍵)

SIM/UIMドライバ(3G/LTEモデム)

Step 2

+

Linuxカーネル,init

Androidシステム

アプリ

SIM/UIMドライバ

ハッシュ(測定値)

+

+

+

+

署名

Page 14: スマホ端末、制御システムの堅牢化 · Android搭載のARMボードにTPMを接続して、完全性検証を試作。 端末起動時に、ブートローダ、Android

Ⓒ2014 KDDI R&D Laboratories Inc. 14

SIM/UIMドライバ、Linuxカーネル、initramfs測定

Step 1

Step 2

Step 2

Page 15: スマホ端末、制御システムの堅牢化 · Android搭載のARMボードにTPMを接続して、完全性検証を試作。 端末起動時に、ブートローダ、Android

Ⓒ2014 KDDI R&D Laboratories Inc. 15

本研究におけるポイント

■ Root of Trustの構築  ◆ eMMCフラッシュメモリ搭載のARM端末は、ブートローダをROM    焼きすることができ、Root of Trustとして利用できる。 ■ 測定結果をSIM/UIMで担保  ◆ SIM/UIMをセキュアブート機構を持つ端末にのみバインドさせる。  ◆ 起動の初期段階(=ブートローダ)からSIM/UIMを起動させ、早々    に測定結果を保存する。  ◆ SIM/UIM内のTPMモドキのPCR(レジスタ)を設ける。 ■ ハッシュ測定にARM上のCPUをフル活用  ◆ SIM/UIM側でのハッシュ測定は、大きな時間を要する。

Page 16: スマホ端末、制御システムの堅牢化 · Android搭載のARMボードにTPMを接続して、完全性検証を試作。 端末起動時に、ブートローダ、Android

Ⓒ2014 KDDI R&D Laboratories Inc. 16

SIM/UIMの端末バインド ■ SIM/UIMの端末バインド  ◆ 悪意のARM端末が、正常起動した端末のように見せかける攻撃が想定される。    ⇒ 正規のセキュアブート機構を持つARM端末に当該SIM/UIMが挿入されたと      きのみハッシュ測定値を管理するようにしなければならない。

マスタ鍵:Km

SIM/UIMARM Secure World(揮発性メモリ(DRAM))=ブートローダ

プログラマブルROM(一度限りの書込)

ARMNormal World(揮発性メモリ(DRAM))

フラッシュメモリ(不揮発性メモリ)

暗号化された秘密鍵:Km(Ks)

署名:Ks(nonce)

秘密鍵の復号と管理 Ks=Km(Km(Ks))

スマホOS

スマホOS

端末認証

乱数生成:nonce

端末[メーカ,機種]の公開鍵Kpリスト

署名の復号: nonce=Kp(Ks(nonce))

各種アプリ

nonce

Ks(nonce)

Page 17: スマホ端末、制御システムの堅牢化 · Android搭載のARMボードにTPMを接続して、完全性検証を試作。 端末起動時に、ブートローダ、Android

Ⓒ2014 KDDI R&D Laboratories Inc. 17

ネットに繋がるスマホのリスク分析と課題解決を進めてきた。この過程で、制御(組込み)システムの堅牢化が見えてきた。

1章 スマホ端末への攻撃 2章 スマホ端末の堅牢化 3章 制御(組込み)システムへの攻撃 4章 制御(組込み)システムの堅牢化

スマホ端末、制御システムの堅牢化~2020年に向けた繋がる組込みシステム~

KDDI研究所  竹森 敬祐(Ph.D)

用語)本稿では、制御系システムを広く捉えることを念頭に、Electric Control Unit(ECU)を Micro Computing Unit(MCU)に置き換えて説明する。略語)Controller Area Network(CAN)

Page 18: スマホ端末、制御システムの堅牢化 · Android搭載のARMボードにTPMを接続して、完全性検証を試作。 端末起動時に、ブートローダ、Android

Ⓒ2014 KDDI R&D Laboratories Inc. 18

■ 制御システムを信じれますか?  ◆ 組込みシステムのH/Wや制御コードのセキュリティ対策が足りない?!    ⇒ Micro Control Unit(MCU)の制御コード、取替えは容易。    ⇒ 通信相手からのパケットを全て信じて動作する性善説のモデル。

社会インフラ(制御システム)が危ない?!

■ 2020年に向けた脅威  ◆ 様々な物がNWを介して繋がる。  ⇒ 社会インフラを狙ったテロ ■ ターゲット例  ◆ スマートメータ ⇒ 停電  ◆ 監視カメラ ⇒ 証拠性なし  ◆ 車載制御システム ⇒ 交通事故  ◆ 航空機・管制システム ⇒ 大事故  ◆ カーナビ ⇒ 渋滞誘発  ◆ プラント ⇒ 製品不具合

Internet

スマートメータ

監視カメラ車/飛行機

スマホ/カーナビ

プラント

Page 19: スマホ端末、制御システムの堅牢化 · Android搭載のARMボードにTPMを接続して、完全性検証を試作。 端末起動時に、ブートローダ、Android

Ⓒ2014 KDDI R&D Laboratories Inc. 19

電力網、プラントへの攻撃

■ ブラックアウト(角川文庫)   マルク・エルスべルグ (著)  猪股 和夫 (翻訳), 竹之内 悦子 (翻訳)

 ◆ スマートメータに感染し、一斉に電力消    費量を増加させることで、発電所・送電    網を停止させる。  ◆ 発電所システムの計器に感染し、周波    数の同期外れを誘発させ、停電させる。 ■ スタックスネット(2011年09月28日(水) 読売新聞・39頁)    http://www.takara-sign.com/r_blog_2011/s_images/2011-10-01-virus-001s.jpg

 ◆ イランの核施設システムに感染し、遠心    分離機の回転数を狂わせ、兵器に利用    できうる濃縮ウランを作らせない。

Page 20: スマホ端末、制御システムの堅牢化 · Android搭載のARMボードにTPMを接続して、完全性検証を試作。 端末起動時に、ブートローダ、Android

Ⓒ2014 KDDI R&D Laboratories Inc. 20

車載システムへの攻撃

偽チップ(複製) または、 ソフトウェアの改竄

MCUの改竄

⇒純正と偽った商品の流通    (EV/PHV用バッテリー、電源ケーブル等) 保証されていないバッテリーの使用 最悪は燃えるケースも

⇒自動車の盗難(イモビライザーへのアタック等) イモビライザーを攻撃  ⇒鍵が無くても車を盗難可能

偽造チップ Renaissance

偽造チップ Renaissance

偽造バッテリー

個人情報

偽造チップ Renaissance

クレジットカード情報、個人住所などの悪用 被害金額が膨大になる。

⇒バックドアを使った個人情報の流出

リミッターカット、燃料費調整など  ⇒重大事故への発展。車の寿命も短くなる。

⇒MCU内部の設定変更(リミッターカット等)

タコメーターの初期化  ⇒中古車市場における不正な金額での取引    最悪はカーメーカーの信用を落とすことも

⇒走行距離の偽造

Page 21: スマホ端末、制御システムの堅牢化 · Android搭載のARMボードにTPMを接続して、完全性検証を試作。 端末起動時に、ブートローダ、Android

Ⓒ2014 KDDI R&D Laboratories Inc. 21

攻撃者、ターゲット、攻撃術、被害

インフォテイメント系 AV、ナビ、ETC等

駆動系 エンジン、ミッション等

安全制御系 ブレーキ、ステアリング等

車体系 メータ、エアコン等

制御用車載ネットワーク CAN、LIN、RlexRay等

外部端末 スマホ、AVプレーヤ等

診断ポート 書換えツール等

車メーカ

悪性サイト

マルウェア

レンタル

利用者

窃盗団

車検

廃棄

内外GW

外部サイト 一般Web、管理サーバ等

不正制御[交通事故] WiFiパケット盗聴[プライバシ侵害]

イモビ・カッター[盗難] 距離メータ改竄[中古車不正販売]

廃棄品等の再利用[ニコイチ車の販売、メーカ(OEM)の信頼低下]

なりすまし リプレイ

改竄

取替

不正制御

Page 22: スマホ端末、制御システムの堅牢化 · Android搭載のARMボードにTPMを接続して、完全性検証を試作。 端末起動時に、ブートローダ、Android

Ⓒ2014 KDDI R&D Laboratories Inc. 22

欧州自動車市場でのセキュリティ要求

欧州を中心とした、自動車へのセキュリティ実装のニーズ高まり。 �   ⇒ MCUの不正改竄防止、リプログラミンクの保護  �   ⇒ MCUの認証/データの暗号化が必須�

世界規模で広範囲の�

車載用途に対して、 �

セキュリティ機能搭載が �

展開されていく方向�

アイデア/コンセプトのステージ �

計画の具体化要求�

2008年4月: “SHE” (H/Wによる暗号処理)のAudiによる議論開始�

2009年4月: “SHE” の仕様がHIS �(独のカーメーカー団体)を通じて公表される�

2008年7月:BMWをリーダー、Boschをパートナーに、 欧州プロジェクト “EVITA”スタート �

 2009年7月: “HSM” (HW Security Module)搭載要求�

  2010年6月: 車両プラットフォームに“SHE” 対応要求�

2010年7月: EVITAが3種類の “HSM”を � secure on-board architectureに規定�

2011年12月に耐タンパを 含めた議論(PRESERVE) が欧州でスタート

Page 23: スマホ端末、制御システムの堅牢化 · Android搭載のARMボードにTPMを接続して、完全性検証を試作。 端末起動時に、ブートローダ、Android

Ⓒ2014 KDDI R&D Laboratories Inc. 23

ネットに繋がるスマホのリスク分析と課題解決を進めてきた。この過程で、制御(組込み)システムの堅牢化が見えてきた。

1章 スマホ端末への攻撃 2章 スマホ端末の堅牢化 3章 制御(組込み)システムへの攻撃 4章 制御(組込み)システムの堅牢化

スマホ端末、制御システムの堅牢化~2020年に向けた繋がる組込みシステム~

KDDI研究所  竹森 敬祐(Ph.D)

用語)本稿では、制御系システムを広く捉えることを念頭に、Electric Control Unit(ECU)を Micro Computing Unit(MCU)に置き換えて説明する。略語)Controller Area Network(CAN)

Page 24: スマホ端末、制御システムの堅牢化 · Android搭載のARMボードにTPMを接続して、完全性検証を試作。 端末起動時に、ブートローダ、Android

Ⓒ2014 KDDI R&D Laboratories Inc. 24

提案) 脅威と対策

■ MCUとCANを狙う攻撃  ◆ MCUコードの改竄・感染、 MCUの取替えによるシステムの不正制御。  ◆ CANを流れるパケットのなりすまし、改竄、リプレイ攻撃。 ■ 対策(目標)  ★ 「MCUのセキュアブート」と「制御パケット単位での認証」が必要  ◆ MCUが完全な状態で起動したことを保証する(セキュアブート)。    ⇒ ROM(Root of Trust)とセキュアエレメント(Secure RAM、Secure ROM)で実現。  ◆ CANを流れるパケットが、本物のMCUから発信され、改竄やコピーされていな    いことを保証する。    ⇒ 送信元MCUの認証    ⇒ 送信パケットの完全性の検証    ⇒ リプレイ阻止のワンタイム性      ⇒ Media Authentication Code(MAC)        =hash(制御データ、認証のための秘密の情報、パケットカウンタ)

Page 25: スマホ端末、制御システムの堅牢化 · Android搭載のARMボードにTPMを接続して、完全性検証を試作。 端末起動時に、ブートローダ、Android

Ⓒ2014 KDDI R&D Laboratories Inc. 25

セキュアMCUを活用した対策

インフォテイメント系 AV、ナビ、ETC等

駆動系 エンジン、ミッション等

安全制御系 ブレーキ、ステアリング等

車体系 メータ、エアコン等

制御用車載ネットワーク CAN、LIN、RlexRay等

外部端末 スマホ、AVプレーヤ等

診断ポート 書換えツール等

内外GW

外部サイト 一般Web、管理サーバ等

なりすまし リプレイ

改竄

取替

不正制御

(1)  MCUのセキュアブート(完全性検証) (2)  MCUの認証 (3)  CANパケットの認証、リプレイ阻止

MCU認証 セキュアブート

パケット認証

Page 26: スマホ端末、制御システムの堅牢化 · Android搭載のARMボードにTPMを接続して、完全性検証を試作。 端末起動時に、ブートローダ、Android

Ⓒ2014 KDDI R&D Laboratories Inc. 26

■ 制御システムの保護  ◆ Root of Trustとセキュアエレメントを持つMCUで制御システムを構築    (1) Root of TrustからマスタMUC・エンドMCUの系全体のセキュアブート  (2) 起動後に、マスタMCUからエンドMCUをチャレンジレスポンス認証。  (3) エンドMCUをパケット単位で認証することでなりすまし/リプレイ検知

Secure RAM/ROM+Root of Trustを持つMCU

エンドMCU

Root of TrustBoot LoaderのROM化

セキュアエレメント:専用

マスタMCU

Root of TrustBoot LoaderのROM化

セキュアエレメント:eSIMSecRAM(暗号処理)SecROM(鍵管理)

ハンダ付け

Flashコード+署名

RAM実行領域

Flashコード+署名

RAM実行領域

偽エンドMCU

Flashコード+署名

RAM実行領域

制御バス

SecRAM(暗号処理)

SecROM(鍵管理)

エンドMCU

Root of TrustBoot LoaderのROM化

セキュアエレメント:専用

Flashコード+署名

RAM実行領域

SecRAM(暗号処理)

SecROM(鍵管理)

■ 攻撃 - 偽制御パケット送信 - リプレイパケット送信

■ 構成 - 鍵なし

Page 27: スマホ端末、制御システムの堅牢化 · Android搭載のARMボードにTPMを接続して、完全性検証を試作。 端末起動時に、ブートローダ、Android

Ⓒ2014 KDDI R&D Laboratories Inc. 27

(1) MCUのセキュアブート ~改竄対策~ ■ MCUの構成要件  ◆ セキュアブートの基点となるRoot of Trustに、Boot Loaderを組み込む。  ◆ 安全な情報管理領域(Secure ROM)と、安全な情報処理領域(Secure RAM)    から成るセキュアエレメントで、署名検証を行う。

■ 署名検証方式のセキュアブートの流れ Step 0) ROM化(Root of Trust)されたBoot Loaderを起動する。 Step 1) Boot Loaderは、Flashメモリから署名付き制御コードを読み込      み、制御コードのハッシュ値を算出する。 Step 2) ハッシュ値と署名をセキュアエレメントに送付し、Secure ROMで      管理されている署名検証鍵を用いて、ハッシュ値と、署名から取      り出したハッシュ値が一致するか、確認する。 Step 3) 一致した場合には、検証OKとして、Boot Loaderに通知する。 Step 4) Boot Loaderは、読み込んでいた制御コードをRAMに展開する。

エンドMCU

Root of TrustBoot LoaderのROM化

Flashコード+署名

RAM実行領域

セキュアエレメント:専用

SecRAM(暗号処理)

SecROM(鍵)

1.読込

2.ハッシュ値+署名

3.検証結果

4.ロード

■ 実装  ◆ ボード:HSBV850E2FG4-Lボート(CPU 60MHz)  ◆ CPU:TOPPERS/ATK2-SC1 1.3.0  ⇒ ハッシュ測定時間: 110msec/60KB

Page 28: スマホ端末、制御システムの堅牢化 · Android搭載のARMボードにTPMを接続して、完全性検証を試作。 端末起動時に、ブートローダ、Android

Ⓒ2014 KDDI R&D Laboratories Inc. 28

(1) MCUのセキュアブート ~改竄対策~ ■ 評価ボード  ◆ テセラ FL-850/F1L-176-S  http://www.tessera.co.jp/fl/f1l-176.html ■ MCU  ◆ ルネサスエレクトロニクス RH850F1L  http://japan.renesas.com/products/  mpumcu/rh850/rh850f1x/rh850f1l/index.jsp ■ 統合開発環境  ◆ ルネサスエレクトロニクス CubeSuite+ for V850  http://www.digikey.jp/product-search/ja?vendor  =0&keywords=CUBESUITE+for+V850 ■ OS  ◆ TOPPERS ATK2-SC1のRH850向け最新コード    をチューニング。  https://www.toppers.jp/atk2-download.html

Page 29: スマホ端末、制御システムの堅牢化 · Android搭載のARMボードにTPMを接続して、完全性検証を試作。 端末起動時に、ブートローダ、Android

Ⓒ2014 KDDI R&D Laboratories Inc. 29

(2)セキュアエレメントを用いたMCU認証 ~取替対策~ ■ チャレンジレスポンスによるMCU認証  ◆ システム起動時に、マスタMCUからエンドMCUをチャレンジレスポンスで認証。    ⇒ 認証用の公開鍵・秘密鍵は、セキュアエレメントで管理。  ◆ マスタMCUのセキュアエレメント内で秘密の情報を生成し、エンドMCUのセキュ    アエレメントに秘密の情報を、暗号化して渡す。

エンドMCU

セキュアエレメント:専用

マスタMCU

セキュアエレメント:eSIM

FlashRAM初期乱数

Flash RAM

SecRAM(暗号処理)

SecROM(鍵管理)

秘密鍵Ks

Step a)チャレンジ(初期乱数)

起動時認証(署名)

SecRAM(暗号処理)

SecROM(鍵管理)

秘密の情報(乱数)

公開鍵Kp

起動時認証

Step b)レスポンスKs(初期乱数)

Step c)Kp(乱数)

通信バス

秘密の情報(乱数)

Page 30: スマホ端末、制御システムの堅牢化 · Android搭載のARMボードにTPMを接続して、完全性検証を試作。 端末起動時に、ブートローダ、Android

Ⓒ2014 KDDI R&D Laboratories Inc. 30

(3)MACによるCANパケット認証 ~不正制御対策~ ■ カウンタ⇒セキュアエレメント  ◆ RAMでカウンタ値を管理しておき、セキュアエレメントに渡す。  ◆ セキュアエレメントで、MAC(データ、秘密の情報、パケットカウンタ)を算出する。

送信側MCU

セキュアエレメント

受信側MCU

セキュアエレメント

Flash RAMカウンタ

FlashRAMデータ、カウンタ

SecRAM(暗号処理)

SecROM(鍵管理)

Hash(データ,秘密の情報,カウンタ)に置き換えたMACパケット送信

パケット単位の認証情報(MAC)の生成

SecRAM(暗号処理)

SecROM(鍵管理)

パケット単位の認証情報(MAC)の検証

通信バス

秘密の情報(乱数) 秘密の情報(乱数)

Step Ⅰ)

Step Ⅱ)

Step Ⅲ)

Page 31: スマホ端末、制御システムの堅牢化 · Android搭載のARMボードにTPMを接続して、完全性検証を試作。 端末起動時に、ブートローダ、Android

Ⓒ2014 KDDI R&D Laboratories Inc. 31

Recessive

Dominant idle S

O

F 1

ID

11

RTR

1 6

Control Field

Data Field 0-8 Bytes

0 … 64

idle

CRC ↓

MAC

CRC Delimiter ACK Slot

ACK Delimiter

E O

F ITM

15 1 1 1 7 3

Data Frame Inter Frame

Space Inter Frame Space

IDE r d3 d2 d1 d0

0 0 Data Length Code / DLC

Reserved

CAN-L2SEC type1 Standard Format (ID 11 bit)

IV 64

HMAC Data

■ CANパケットのセキュリティ対策  ◆ 送信元MCU認証、データ改竄検知、リプレイ攻撃の阻止を行う。    ⇒ MAC hash(データ、秘密の情報、パケットカウンタ)  ◆ MACは、CANのデータ領域(Layer3)、もしくはCRC部(Layer2)に、MACの一    部を埋め込む。

(3)MACによるCANパケット認証 ~不正制御対策~

Page 32: スマホ端末、制御システムの堅牢化 · Android搭載のARMボードにTPMを接続して、完全性検証を試作。 端末起動時に、ブートローダ、Android

Ⓒ2014 KDDI R&D Laboratories Inc. 32

まとめ ~セキュアブート+MCU認証+パケット認証~ マスタMCU(通信GW)

エンドMCU/セキュアCAN

タミヤTT-01

(1)  MCUのセキュアブート(完全性検証) (2)  MCUの認証 (3)  CANパケットの認証、リプレイ阻止

エンドMCU

Root of TrustBoot LoaderのROM化

Flashコード+署名

RAM実行領域

セキュアエレメント:専用

SecRAM(暗号処理)

SecROM(鍵)

1.読込

2.ハッシュ値+署名

3.検証結果

4.ロード