自 動 車

車載ネットワークのセキュリティ監視システム
Security Authentication System for In-Vehicle Network＊＊

上田浩史

倉地亮

高田広章

水谷友洋

井上雅之

堀端啓史

Hiroshi Ueda

Ryo Kurachi

Tomohiro Mizutani

Hiroaki Takada

Masayuki Inoue

Satoshi Horihata

車載制御ネットワークに広く利用されているController Area Network（CAN）に対して、なりすましメッセージを注入することで、車の制御を乗っ取る攻撃事例が報告されている。このため、リアルタイム性やコスト制約の厳しい車載制御ネットワーク特有の要件を満たしたセキュリティ対策手法が望まれている。本稿では、改良したCANコントローラを用いたCANのセキュリティ監視システムについて提案する。さらに、試作基板を用いて評価を行った結果についても報告する。
One of the main concerns for the security of in-vehicle data is spoofing messages on the in-vehicle network. Controller
Area Network (CAN) is the most extensively embedded network protocol in vehicles. In the last decade, security attacks
in vehicles have been increasing and have been reported in several papers. Therefore, security measures are expected thatmeet the requirements of real time and cost constraint for in-vehicle control network. In this paper, we propose
centralized authentication system in CAN with improved CAN controller. Our experimental results demonstrate that ourproposed method is effective on real in-vehicle network environments.
キーワード：車載セキュリティ、車載制御ネットワーク、Controller Area Network（CAN）

1.

緒言

OSI 参照モデルの第1層と第2層を中心に規定されており、現 在 の 自 動 車 に は、1台 あ た り お よ そ70個 以 上 のElectronic Control Unit（ECU）と呼ばれる電子制御ユニット（2）が搭載されており（1）、Controller Area Network（CAN）、（3）
Local Interconnect Network（LIN）、FlexRay™（4）などに接続され、その制御を実現している。特にCANは、車載制

その特徴は以下のとおり挙げられる。
（a）バストポロジ
1つの通信線に複数のECUが接続されるバストポロジで広く使用されている。
（b）マルチマスタ

御ネットワークの中で最も広く使われているプロトコルであ

各ノードは、送信したいメッセージがあるとすぐにCANり、現在販売されている車両の多くに搭載されている。とこバス上へとメッセージを送信することができる。このため、

ろが、CANはセキュリティに対しては脆弱であることが指摘

容易にCANメッセージやノードを追加することができる。

されている。CANへの攻撃事例として、なりすましメッセー（c）送信権の調停

ジを注入することで、メーターの表示改ざんや、ブレーキの複数のノードが同時にCANバス上へメッセージを送信す。

ると、CAN-IDを用いた送信権の調停が実施される。この結一方で、CANは最大転送速度が1Mbpsであり、1メッセー果、最も優先度の高いメッセージを持つCANメッセージがジのペイロードも最大8バイトであることから、これまで民優先的に送信されるため、優先度の低いメッセージはより生技術で培われてきた対策手法をそのまま適用することが難

高い優先度のメッセージの送出が完了するまで遅延させらしいという制約も存在する。

れる。

無効化といった不正制御が可能なことが実証されている（5）

そこで本稿では、改良したCANコントローラ※1を用いたCANの集中型セキュリティ監視システムを提案する。
FPGA（Field-Programmable Gate Array）を用いた試作基

2−2

CANのセキュリティリスク

これまでの攻撃事例（5）より、CANにおける、なりすまし攻撃には以下の2つのユースケースが想定される。

板でタイミング検証を行い、本提案方式が実現可能であることを実証した。

ユースケース1：ECUソフトウェアの不正書き換え図1は正規ECUが悪意あるプログラムに書き換えられ、2.

CANにおけるセキュリティリスク

2−1

CANの特徴車載制御システムで広く使用されるCANは、ISO11898

なりすましメッセージを送信する例である。
ユースケース2：不正機器の接続
図 2はCANバス上につながれた不正機器がなりすましメッセージを送信する例である。

およびISO11519で標準化された通信プロトコルであり、2015 年 7 月・S E I テクニカルレビュー・第 187 号

1

悪意あるプログラムに書き換えられているの特別なCANコントローラがなりすましメッセージをリアルタイムにエラーフレームを用いて上書きする。本提案手法の優れている点はCANバス上に存在する監視ノードの正規のECU 2

正規のECU 1

正規のECU 3

正規のECU4

みハードウェアの改造を行えばよいという点である。それゆえ、他のECUはノード認証や鍵交換を行うためのソフト
ウェアの改修のみで実現できる。

CAN
CANメッセージ

図1

正規ECUの悪意あるプログラムへの書き換え

送信ノード（正規のECU）は暗号鍵を用いて計算したMACの一部をペイロードに付与し、データフレームを送信する。
監視ノードではCRC※3 を照合したのち各送信ノードと同じ暗号鍵を用いてMACを検証する。改良したCANコントロー
ラがなりすましメッセージを検知した場合は、エラーフレー

正規の
ECU 2

正規のECU 1

正規のECU 3

不正機器

ムを用いて上書きする。本提案手法は次の2つのフェーズにより成り立っている。
（a）ノード認証と鍵配布のフェーズ

CAN
CANメッセージ

図2（b）なりすましメッセージのモニタリングとそれをリアルタイムにエラーフレームで上書きするフェーズ

不正機器の接続

従来研究における手法では、鍵配布のメカニズムは非常に複雑でCANバス上に高い通信負荷をかけるものであり、リアルタイム性が要求される車載制御システムでは受け入れら3.

れにくいと考えられる。実車に適用するためには、計算時間CANのセキュリティ対策手法

3−1の観点から軽量な認証と鍵配送のプロトコルが必要となる。
3−3

従来研究

近年、車載制御システムに対する多くの攻撃事例が報告される一方、これらの攻撃に対抗するための対策手法についても数多く検討されている（6）～（10）。しかしながら、これらの手法では、ネットワーク上に配置されるすべてのノードに対策を実施する必要があることが課題である。
3−2

ノードの相互認証と鍵交換

我々が提案するセキュリティ監視システムでは、データフ
レームのペイロードは暗号化しないため、すべてのノードで同じ暗号鍵を持つ必要はない。それゆえ、我々は監視ノードと各送信ノード（ECU）間の認証にチャレンジレスポンス方式を用いることとした。より具体的には、以下の相互認証のシーケンスを適用する（図4）。

提案手法：セキュリティ監視システム

本稿で提案するセキュリティ監視システムの概要を図3に示す。前述のようにCANプロトコルは認証が存在しないため、なりすまし攻撃に対して脆弱である。本提案手法ではなりすましに対して一般的に効果があるといわれている
メッセージ認証コード（MAC：Message Authentication

1）監視ノードは送信ノードにランダムシードを送信する。
2）送信ノードが監視ノードからランダムシードを受け取った後、両ノードはダイジェストの計算を行う。ダイジェストは一般的にハッシュ関数※4 によって導出される。

Code） を用いることとした。
※2

本提案手法では監視ノードが各ECUを認証し、CANメッセージに付与されるメッセージ認証コードを検証することでなりすまし攻撃に対抗することを目的としている。監視ノー

監視ノード

ドには特別なCANコントローラを実装する必要がある。こ送信ノード

1)ダイジェスト生成のためのランダムシードを送信

2)ダイジェストの生成

3)認証の要求（ダイジェストの一部を送信）

正規のECU3
正規のECU2
正規のECU1

監視ノード
各ECUの鍵情報
改良した
CAN
コントローラ

Keyi
Keyj

Msgi送信処理開始

認証時に生成された鍵MACiを計算

Keyi

MACiを付与

Keyk
データ

CAN

MAC

CRC

正常送信

監視ノードがエラーフレームを用いて上書きする

図3

22)ダイジェストの生成

提案手法

車載ネットワークのセキュリティ監視システム

悪意のある機器

CANメッセージ

4)送信ノードからのレスポンス（ダイジェストの続きを送信）NO

ダイジェストが一致？

ダイジェストが一致？

不正送信
認証エラー

相互認証と鍵交換の成功

図4

相互認証と鍵交換のプロトコル

NO

認証エラー

3）‌監視ノードは送信ノードにダイジェストの一部を送信する。
4）‌送信ノードは監視ノードから送付されたダイジェストの一部と自身で計算したダイジェストの比較を行う。
一致すれば、続きのダイジェストを監視ノードに送信する。

Payloads
通常のCAN(message)

CAN Header

Payloads

提案手法(message)

CAN Header

Payloads

提案手法
CAN Header(authentication)

5）‌監視ノードは受信したダイジェストの一部と自身の計図5算したダイジェストを比較し認証を行う。
3−4

MAC

Authentication

CRC

A
C
K

EOF

CRC

A
C
K

EOF

CRC

A
C
K

EOF

提案手法のCANプロトコル

事前共有情報と暗号鍵

本提案手法では、送信ノードには耐タンパ ※5 メモリが搭載されていないことを想定する。それゆえプログラムコードとユニークIDを含むROMの情報を事前共有鍵として利用する

CAN Header

こととした。これは監視ノードがすべての送信ノードのプロPayloads

MACCRCACKEOF

HMAC keys（512bits）

グラムを持つ必要があることを意味する。しかし実際には、監視ノードは予め計算された数種類の認証コードをもつことによりメモリ使用量を減らすことが可能である。また我々はHMAC results（256bits）

実証においてSHA-256のハッシュ関数を用いたが、これに限定しているわけではない。暗号鍵の詳細を以下に示す。

図6（a）事前共有情報

監視ノードはこの期間でMACをチェックする

HMACの計算タイミング

我々の実証では簡単のためプログラムコードを事前共有情報として使用した。それゆえ、認証コードの生成時間はプログラムサイズに依存する。プログラムコードの流出は本方式の欠点となるので、コードの流出による影響を低減する必要がある。そのために実際の環境下では共有情報としてすべてのECUが個々に鍵を持つことを推奨する。
認証コードの生成を下記の式に示す。

AUTHKEYI＝SHA256（MSG｜｜NONCE）
AUTHKEYI は送信ノードI の認証コードでSHA256 関数はSHA-256のハッシュ計算の関数である。MSG は送信ノードのプログラムコードでNONCE はランダムシードとなる。
（b）MAC生成／検証鍵
本提案手法では、MAC生成／検証鍵は、前述のAUTHKEYIの残りを使用することとしている。このため、今回の実装では128ビットのMAC生成鍵を使用することとした。
3−5

認証メッセージ

本提案手法では、メッセージを送信するフレームと認証情報を送信するフレームを分けている。図5に一般的なCANメッセージと本提案手法との違いを示す。本提案手法におけるCANメッセージには、ペイロードの一部にMACの一部を付与するが、ペイロードの暗号化は行わないものとする。また図4で示した相互認証時には、ペイロード全体に生成されたダイジェストの一部を付与する。
3−6

監視ノードの動作

一般的なCANプロトコルでは伝送エラーを検出するた
めに、すべての受信ノードはCANコントローラを利用してCRCチェックを行う。CANメッセージの完全性を保証するために本提案手法では、図6に示すようにペイロードの一部にMACを付与する。MACは車載ネットワーク上でのなりすましからデータを保護することを目的とする。本提案手法
では実存するCANコントローラとの互換を維持するためにCRCをMACに置き換えることはしない。
監視ノードはメッセージを受信すると、CAN-IDのチェックを行いメッセージにMACが付与されているか否かを判別する。メッセージにMACが付与されている場合には、監視ノードは直ちにHMACの計算を行い、MACの検証を行う。
この時点では、どのノードもCANバスにACKを送信していない。しかしながら、監視ノードがMACエラーを検知した場合には、EOF（End Of Frame）までの間に監視ノードがなりすましメッセージをエラーフレームで上書きする。これにより、監視ノードがMACを代理で検証することで、すべての受信ノードでMACを検証することなく、不正ななりすましメッセージの送信を阻止することが可能になる。
なお、本提案手法でもペイロードにモノトニックカウン
タ※6 の一部を付与することで、再送攻撃を防止することも可能になる。
3−7

HMACアルゴリズム

本提案手法では、以下に示すHMAC関数を使用している。

CalcMACi＝HMAC（IDi , Di , FCi , Keyi ）HMAC 関数はHMAC-SHA256のようなハッシュ関数である。IDi はCAN-IDである。Di は受信したペイロードからMACi とLCi を除いた部分、FCi は完全なモノトニックカウンタである。Keyi は送信ノードi の暗号鍵（AUTHKEYi）である。

2015 年 7 月・S E I テクニカルレビュー・第 187 号

3

4.

セキュリティとパフォーマンスの分析

4−1

メッセージの完全性

HMACのセキュリティ強度はMAC長が長くなるほど強度があがる。SHA-256を使用するPCなどで利用されるプロト
コルでは32バイトのMAC長を利用している。しかしCANのペイロードは最大で8バイトであるのでMACのすべてを1フレームに格納することはできない。我々はMAC長を1バイトと設定することとした。
1バイトのMAC長では特定のメッセージに対する総当たり攻撃は、28 の回数が必要となる。ランダムな攻撃でなりすましが成功する確率は1/28 であり、これは攻撃が成功するまでに28 のメッセージを送信する必要があることを意味

写真1している。これはセキュリティ上十分とはいえないが、数評価環境

メッセージを送信した後に鍵をローテーションさせるなどの手法を講じれば、なりすましを行うことは困難になるものと考えられる。
4−2

実時間制約

実時間制約はセキュリティには直接関係しないが、車載制御システムにとっては重要な項目である。
（a）認証と鍵交換に要するメッセージ数
1つのノードを増やした場合、認証と鍵交換に要するメッセージ数は2増える。1つは監視ノードから送信されるメッセージ（図4中の認証の要求）であり1つは追加したノードから送信されるメッセージ（図4中の認証のレスポンス）である。このようにメッセージの数は認証を行うノードの数により変動する。メッセージの数は2×n（nは認証を行うノード数）により計算できる。
（b）MACによるオーバヘッド
MAC長はシステム設計者によって決定できるが、我々は1バイトとして計算している。また、再送攻撃防止用のカウンタ長は4ビットであるので全体としては12ビットのオーバヘッドが発生する。これはペイロード全体の19％であり、フレームの拡張識別子（18ビット）の範囲内であるたビット時間内に収まっていた。すなわち、CANメッセージのCRCを計算した後で、MAC の検査を開始し、MACを検査しエラーフレームで上書きするために必要な時間である9ビット時間（ACK（2ビット時間）とEOF（7ビット時間）の合計）にエラーフレームの送信が可能であり、十分に実現可能な性能であることがわかった。

6.

結言

近年、車載制御ネットワークを通じた攻撃事例が報告されており、これまでに様々な車載制御システム向けセキュリティ対策手法が提案されている。しかしながら、それらの手法の多くはすべてのノードに分散して対策が必要になる。本稿では、集中型セキュリティ監視システムを提案し、実証結果についても論じた。
今後は鍵交換などの実証を行い、より車載環境に近い条件において検証を進めていく予定である。

め、実車でも十分に受容可能なオーバヘッドであると考えられる。

用 語 集 ーーーーーーーーーーーーーーーーーーーーーーーーーーーー※15.

提案手法の実装評価結果

先に示したプロトコルとシステムの実証のため、我々はAltera FPGA開発ボードとCANトランシーバボードを使用した。我々のシステムの最大の特徴であるHMAC内蔵CANコントローラをFPGA上に実装した。
使用したFPGA開発ボード（DE2-115 Development andEducation Board）は512KbyteのFLASHメ モ リ を 持 ち、20KbyteのRAMを持っている。写真1に実際の評価環境を示す。
この評価環境を用いた計測により、1つの受信フレームのMACを検査する時間はおおよそ2.12µsであることがわかった。CANの転送レートを1Mbpsとした場合において、34車載ネットワークのセキュリティ監視システム

CANコントローラ

CANプロトコルの機能を実現するコントローラ。
※2

メッセージ認証コード（MAC：Message Authentication Code）

通信相手からのメッセージが改ざんされていないことを確かめる認証技術。メッセージの完全性を検証し、認証を行うために用いられる。
※3

CRC

Cyclic Redundancy Checkの略。主にデータ転送などに伴う誤り検出に使用される。異なるデータから同一の値が出力される可能性が常に存在するため、ハッシュ値の代用として使用することは望ましくない。

※4ハッシュ関数

文字列の羅列から一定長のデータに要約するための関数。関者 ----------------------------------------------------------------------------------

執筆

上田浩 史 ：㈱オートネットワーク技術研究所
情報ネットワーク研究部 グループ長

倉地亮 ：名古屋大学 大学院情報科学研究科
附属組込みシステム研究センター
特任助教 博士（情報科学）高田広 章 ：名古屋大学 大学院情報科学研究科
附属組込みシステム研究センターセンター長 博士（理学）水谷友 洋 ：㈱オートネットワーク技術研究所
情報ネットワーク研究部

井上雅 之 ：㈱オートネットワーク技術研究所
情報ネットワーク研究部 主席

堀端啓 史 ：㈱オートネットワーク技術研究所
情報ネットワーク研究部 室長

数を通して出力される値は、「ハッシュ値」、または単に「ハッ＊シュ」と呼ぶ。SHA-1やSHA-256といったハッシュ関数が代表的であり、いずれも1方向関数であるため、生成データから原文を推定することは不可能である。
※5

＊

耐タンパ

内部構造や記憶しているデータなどの解析の困難さ。非正規な手段による機密データの読み取りを防ぐ能力を耐タンパ性という。
※6

モノトニックカウンタ

単調に増加していくカウンタのこと。
・	‌FlexRay™は、ドイツDaimler AGのドイツ及びその他の国における商標、または登録商標です。

参 考 文 献（1） J. Leohold, Communication Requirements for AutomotiveSystems, 5th IEEE Workshop Factory Communication Systems（2004）（2） International Organization for Standardization, Road vehicles- Controller area network（CAN）- Part 1: Data link layer andphysical signaling, ISO11898-1（2003）（3） International Organization for Standardization, Road vehicles Local Interconnect Network（LIN）- Part 1: General information
and use case definition, ISO/DIS 17987-1.
（4） International Organization for Standardization, Road vehicles Communication on FlexRay - Part 1: General information and use
case definition, ISO10681-1（2010）（5） K. Koscher, A. Czeskis, F. Roesner, S. Patel, T. Kohno, S. Checkoway,
D. McCoy, B. Kantor, D. Anderson, H. Shacham, S. Savage,
Experimental Security Analysis of a Modern Automobile, IEEE
Symposium on Security and Privacy（2010）（6） A. V. Herrewege, D. Singelee, I. Verbauwhede, CANAuth - A
Simple, Backward Compatible Broadcast Authentication Protocol
for CAN bus, Embedded Security in Cars 9th, Dresden, Germany（Nov. 2011）（7） A. Hazem, Hossam. A. H. Fahm, LCAP - A Lightweight CAN
Authentication Protocol for Security In-Vehicle-Networks,Embedded Security in Cars 10th, Berlin, Germany（Nov. 2012）（8） O. Hartkopp, C. Reuber, R. Schilling, MaCAN - Message
Authenticated CAN, Embedded Security in Cars 10th, Berlin,Germany（Nov. 2012）（9） T. Hoppe, S. Kiltz, J. Dittmann, Security threats to automotive
CAN networks - Practical examples and selected short-term
countermeasures, Proceedings of the 27th international
conference on Computer Safety, Reliability, and Security,
SAFECOMP '08, pp. 235-248（2009）（10） T. Matsumoto, M. Hata, M. Tanabe, K. Yoshioka, A Method ofPreventing Unauthorized Data Transmission in Controller Area
Network, Vehicular Technology Conference（VTC Spring）, 2012
IEEE 75th（2012）---------------------------------------------------------------------------------------------------------＊主執筆者

2015 年 7 月・S E I テクニカルレビュー・第 187 号

5