IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 国立大学法人名古屋大学の特許一覧 ▶ 株式会社オートネットワーク技術研究所の特許一覧 ▶ 住友電装株式会社の特許一覧 ▶ 住友電気工業株式会社の特許一覧

特許7328419車載通信システム、車載通信装置、コンピュータプログラム及び通信方法
<>
  • 特許-車載通信システム、車載通信装置、コンピュータプログラム及び通信方法 図1
  • 特許-車載通信システム、車載通信装置、コンピュータプログラム及び通信方法 図2
  • 特許-車載通信システム、車載通信装置、コンピュータプログラム及び通信方法 図3
  • 特許-車載通信システム、車載通信装置、コンピュータプログラム及び通信方法 図4
  • 特許-車載通信システム、車載通信装置、コンピュータプログラム及び通信方法 図5
  • 特許-車載通信システム、車載通信装置、コンピュータプログラム及び通信方法 図6
  • 特許-車載通信システム、車載通信装置、コンピュータプログラム及び通信方法 図7
  • 特許-車載通信システム、車載通信装置、コンピュータプログラム及び通信方法 図8
  • 特許-車載通信システム、車載通信装置、コンピュータプログラム及び通信方法 図9
  • 特許-車載通信システム、車載通信装置、コンピュータプログラム及び通信方法 図10
  • 特許-車載通信システム、車載通信装置、コンピュータプログラム及び通信方法 図11
  • 特許-車載通信システム、車載通信装置、コンピュータプログラム及び通信方法 図12
  • 特許-車載通信システム、車載通信装置、コンピュータプログラム及び通信方法 図13
  • 特許-車載通信システム、車載通信装置、コンピュータプログラム及び通信方法 図14
  • 特許-車載通信システム、車載通信装置、コンピュータプログラム及び通信方法 図15
  • 特許-車載通信システム、車載通信装置、コンピュータプログラム及び通信方法 図16
  • 特許-車載通信システム、車載通信装置、コンピュータプログラム及び通信方法 図17
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-08-07
(45)【発行日】2023-08-16
(54)【発明の名称】車載通信システム、車載通信装置、コンピュータプログラム及び通信方法
(51)【国際特許分類】
   H04L 12/28 20060101AFI20230808BHJP
   H04L 12/22 20060101ALI20230808BHJP
   H04L 43/10 20220101ALI20230808BHJP
   H04L 9/14 20060101ALI20230808BHJP
【FI】
H04L12/28 200Z
H04L12/22
H04L43/10
H04L9/14
【請求項の数】 5
(21)【出願番号】P 2022134013
(22)【出願日】2022-08-25
(62)【分割の表示】P 2019002124の分割
【原出願日】2019-01-09
(65)【公開番号】P2022172215
(43)【公開日】2022-11-15
【審査請求日】2022-08-25
(73)【特許権者】
【識別番号】504139662
【氏名又は名称】国立大学法人東海国立大学機構
(73)【特許権者】
【識別番号】395011665
【氏名又は名称】株式会社オートネットワーク技術研究所
(73)【特許権者】
【識別番号】000183406
【氏名又は名称】住友電装株式会社
(73)【特許権者】
【識別番号】000002130
【氏名又は名称】住友電気工業株式会社
(74)【代理人】
【識別番号】100114557
【弁理士】
【氏名又は名称】河野 英仁
(74)【代理人】
【識別番号】100078868
【弁理士】
【氏名又は名称】河野 登夫
(72)【発明者】
【氏名】倉地 亮
(72)【発明者】
【氏名】高田 広章
(72)【発明者】
【氏名】足立 直樹
(72)【発明者】
【氏名】上田 浩史
【審査官】安藤 一道
(56)【参考文献】
【文献】特開2017-028345(JP,A)
【文献】特開2016-116075(JP,A)
【文献】特開平09-214556(JP,A)
【文献】特開2016-021623(JP,A)
【文献】特開2017-050719(JP,A)
【文献】米国特許出願公開第2018/0131522(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
H04L 12/28
H04L 12/22
H04L 43/10
H04L 9/14
(57)【特許請求の範囲】
【請求項1】
共通の通信線に接続される複数の車載通信装置と、前記共通の通信線に接続され、前記複数の車載通信装置の通信に係る制御を行う車載通信制御装置とを備える車載通信システムであって、
前記車載通信装置毎に暗号鍵が定められており、
前記車載通信装置は、
自身に対して定められた暗号鍵を記憶する第1記憶部と、
前記第1記憶部に記憶された暗号鍵を用いて、送信するメッセージに対して付す認証子を生成する第1認証子生成部と
受信したメッセージに付された認証子の正否を前記第1記憶部に記憶された暗号鍵を用いて判定する第1認証子判定部と
を有し、
前記車載通信制御装置は、
各車載通信装置の暗号鍵を記憶する第2記憶部と、
受信したメッセージに付された認証子の正否を、前記第2記憶部に記憶された対応する暗号鍵を用いて判定する第2認証子判定部と
前記第2認証子判定部が受信したメッセージに付された認証子が正しいと判定した場合に、当該認証子の判定に用いられた暗号鍵とは異なる暗号鍵を用いて、別の認証子を生成する第2認証子生成部と、
前記受信したメッセージに前記第2認証子生成部が生成した別の認証子を付して送信することで、異なるセキュリティレベルの車載通信装置間のメッセージ送受信を中継する中継部と
を有する、車載通信システム。
【請求項2】
共通の通信線に接続される車載通信装置であって、
前記共通の通信線に接続される複数の車載通信装置は複数のセキュリティレベルに分類され、前記セキュリティレベル毎に共通鍵が定められており、
自身のセキュリティレベルに応じた共通鍵を記憶する記憶部と、
前記記憶部に記憶された共通鍵を用いて、送信するメッセージに対して付す認証子を生成する認証子生成部と、
受信したメッセージに付された認証子の正否を前記記憶部に記憶された共通鍵を用いて判定する認証子判定部と、
受信したメッセージに付された認証子が正しくないと前記認証子判定部が判定した場合に、前記共通の通信線に接続された他の装置に対して通知を行う通知部と
を備え
メッセージには複数の認証子を付すことが可能であり、
前記記憶部は、自身のセキュリティレベルに対して定められた共通鍵と、当該セキュリティレベルより低いセキュリティレベルに対して定められた共通鍵と記憶し、
前記認証子生成部は、前記記憶部に記憶された一又は複数の共通鍵を用いて、送信するメッセージに対して付す一又は複数の認証子を生成する、
車載通信装置。
【請求項3】
前記認証子判定部は、受信したメッセージに付された認証子のうち、自身の記憶部に記憶された一又は複数の共通鍵を用いて正否を判定可能な認証子について判定を行う、請求項に記載の車載通信装置。
【請求項4】
共通の通信線に接続される車載通信装置に、通信に係る処理を行わせるコンピュータプログラムであって、
前記車載通信装置が送受信するメッセージには複数の認証子を付すことが可能であり、
前記共通の通信線に接続される複数の車載通信装置は複数のセキュリティレベルに分類され、前記セキュリティレベル毎に共通鍵が定められており、自身のセキュリティレベルに対して定められた共通鍵及び当該セキュリティレベルより低いセキュリティレベルに対して定められた共通鍵を記憶部に記憶しておき、
前記記憶部に記憶された一又は複数の共通鍵を用いて、送信するメッセージに対して付す一又は複数の認証子を生成し、
受信したメッセージに付された認証子の正否を前記記憶部に記憶された共通鍵を用いて判定し、
受信したメッセージに付された認証子が正しくないと判定した場合に、前記共通の通信線に接続された他の装置に対して通知を行う
処理を実行させる、コンピュータプログラム。
【請求項5】
共通の通信線に接続される車載通信装置が通信に係る処理を行う通信方法であって、
前記車載通信装置が送受信するメッセージには複数の認証子を付すことが可能であり、
前記共通の通信線に接続される複数の車載通信装置は複数のセキュリティレベルに分類され、前記セキュリティレベル毎に共通鍵が定められており、
自身のセキュリティレベルに対して定められた共通鍵及び当該セキュリティレベルより低いセキュリティレベルに対して定められた共通鍵を記憶部に記憶しておき、
前記記憶部に記憶された一又は複数の共通鍵を用いて、送信するメッセージに対して付す一又は複数の認証子を生成し、
受信したメッセージに付された認証子の正否を前記記憶部に記憶された共通鍵を用いて判定し、
受信したメッセージに付された認証子が正しくないと判定した場合に、前記共通の通信線に接続された他の装置に対して通知を行う、
通信方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、車両に搭載された複数の装置が通信を行う車載通信システム、車載通信装置、コンピュータプログラム及び通信方法に関する。
【背景技術】
【0002】
近年、車両の自動運転又は運転補助等の技術が研究開発されており、車両の高機能化が推し進められている。車両の高機能化に伴って、車両に搭載されるECU(Electronic Control Unit)などの装置においては、ハードウェア及びソフトウェアが高機能化及び複雑化している。これに対して、車両システムに不正な装置又はソフトウェアの注入を行うことによって、例えば車両の乗っ取りなどの攻撃が行われ得るという問題がある。車両に対する不正な攻撃を防ぐため、例えば通信の暗号化などの種々の対策が検討されている。
【0003】
特許文献1においては、共通のCAN(Controller Area Network)バスに対して複数のECUと監視装置とが接続され、各ECUが認証情報を付した送信フレームをCANバスへ出力し、監視装置がCANバスへ出力されたフレームの認証情報の正否を判定して、認証情報が正しくないと判定したフレームをECUに破棄させる処理を行う通信システムが記載されている。
【先行技術文献】
【特許文献】
【0004】
【文献】特開2016-21623号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
特許文献1に記載の通信システムのように、共通の通信線に接続された各装置がメッセージに認証子等の情報を付して送信することがセキュリティの性能向上に有効である。しかし、車両に搭載される装置の増加及び高機能化等に伴い、装置毎に要求されるセキュリティレベルに差異が生じることが予想される。これまでは、車両内で異なるセキュリティレベルが設定された複数の装置が混在する状況は想定されていなかった。
【0006】
本発明は、斯かる事情に鑑みてなされたものであって、その目的とするところは、異なるセキュリティレベルが設定された複数の装置が混在することを可能とする車載通信システム、車載通信装置、コンピュータプログラム及び通信方法を提供することにある。
【課題を解決するための手段】
【0007】
本態様に係る車載通信システムは、共通の通信線に接続される複数の車載通信装置と、前記共通の通信線に接続され、前記複数の車載通信装置の通信に係る制御を行う車載通信制御装置とを備える車載通信システムであって、前記車載通信装置毎に暗号鍵が定められており、前記車載通信装置は、自身に対して定められた暗号鍵を記憶する第1記憶部と、前記第1記憶部に記憶された暗号鍵を用いて、送信するメッセージに対して付す認証子を生成する第1認証子生成部と、受信したメッセージに付された認証子の正否を前記第1記憶部に記憶された暗号鍵を用いて判定する第1認証子判定部とを有し、前記車載通信制御装置は、各車載通信装置の暗号鍵を記憶する第2記憶部と、受信したメッセージに付された認証子の正否を、前記第2記憶部に記憶された対応する暗号鍵を用いて判定する第2認証子判定部と、前記第2認証子判定部が受信したメッセージに付された認証子が正しいと判定した場合に、当該認証子の判定に用いられた暗号鍵とは異なる暗号鍵を用いて、別の認証子を生成する第2認証子生成部と、前記受信したメッセージに前記第2認証子生成部が生成した別の認証子を付して送信することで、異なるセキュリティレベルの車載通信装置間のメッセージ送受信を中継する中継部とを有する。
【0008】
なお、本願は、このような特徴的な処理部を備える車載通信制御装置又は車載通信装置として実現することができるだけでなく、かかる特徴的な処理をステップとする通信制御方法又は通信方法として実現したり、かかるステップをコンピュータに実行させるためのコンピュータプログラムとして実現したりすることができる。また、車載通信制御装置又は車載通信装置の一部又は全部を実現する半導体集積回路として実現したり、車載通信制御装置又は車載通信装置を含むその他の装置又はシステムとして実現したりすることができる。
【発明の効果】
【0009】
上記によれば、異なるセキュリティレベルが設定された複数の装置が混在することが可能となる。
【図面の簡単な説明】
【0010】
図1】本実施の形態に係る車載通信システムの概要を説明するための模式図である。
図2】本実施の形態に係る車載通信システムの概要を説明するための模式図である。
図3】DC及びECUによるメッセージ送受信の一例を示す模式図である。
図4】DCからECUへの通知の一例を示す模式図である。
図5】本実施の形態に係るDCの構成を示すブロック図である。
図6】テーブルに記憶される暗号鍵に関する情報の一例を示す模式図である。
図7】本実施の形態に係るECUの構成を示すブロック図である。
図8】DCの通知メッセージの送信タイミングを説明するための模式図である。
図9】本実施の形態に係るECUが行うメッセージの受信処理の手順を示すフローチャートである。
図10】本実施の形態に係るECUが行うキープアライブ信号の送信処理の手順を示すフローチャートである。
図11】本実施の形態に係るDCが行う通知メッセージの送信処理の手順を示すフローチャートである。
図12】本実施の形態に係るDCが行う通知メッセージの送信処理の手順を示すフローチャートである。
図13】実施の形態2に係るDC及びECUによるメッセージ送受信の一例を示す模式図である。
図14】実施の形態2に係るDCが行う処理の手順を示すフローチャートである。
図15】実施の形態3に係るDC及びECUによるメッセージ送受信の一例を示す模式図である。
図16】実施の形態3に係るDCによるメッセージの破棄を説明するための模式図である。
図17】実施の形態3に係るDCが行う処理の手順を示すフローチャートである。
【発明を実施するための形態】
【0011】
[本発明の実施の形態の説明]
最初に本発明の実施態様を列記して説明する。また、以下に記載する実施形態の少なくとも一部を任意に組み合わせてもよい。
【0012】
(1)本態様に係る車載通信システムは、共通の通信線に接続される複数の車載通信装置と、前記共通の通信線に接続され、前記複数の車載通信装置の通信に係る制御を行う車載通信制御装置とを備える車載通信システムであって、前記複数の車載通信装置は複数のセキュリティレベルに分類され、前記セキュリティレベル毎に共通鍵が定められており、前記車載通信装置は、自身のセキュリティレベルに応じた共通鍵を記憶する第1記憶部と、前記第1記憶部に記憶された共通鍵を用いて、送信するメッセージに対して付す認証子を生成する第1認証子生成部と、受信したメッセージに付された認証子の正否を前記第1記憶部に記憶された共通鍵を用いて判定する第1認証子判定部とを有し、前記車載通信制御装置は、各セキュリティレベルの共通鍵を記憶する第2記憶部と、受信したメッセージに付された認証子の正否を、前記第2記憶部に記憶された対応する共通鍵を用いて判定する第2認証子判定部と、受信したメッセージに付された認証子が正しくないと前記第2認証子判定部が判定した場合に、当該判定にて前記第2認証子判定部が用いた共通鍵を記憶していない車載通信装置に対して通知を行う第2通知部とを有する。
【0013】
本態様にあっては、共通の通信線に車載通信制御装置と複数の車載通信装置とが接続される。複数の車載通信装置は、複数のセキュリティレベルに分類され、セキュリティレベル毎に共通鍵が定められる。各車載通信装置は、自身のセキュリティレベルに応じた共通鍵を記憶しておき、記憶した共通鍵を用いて生成した認証子をメッセージに付して送信すると共に、受信したメッセージに付された認証子の正否を判定する。異なる共通鍵を用いて生成した認証子が付されたメッセージが共通の通信線にて送受信されるため、各車載通信装置は、自身の共通鍵と同じ共通鍵で生成された認証子が付されたメッセージの正否を判定できるが、自身の共通鍵と異なる共通鍵で生成された認証子が付されたメッセージの正否は判定できない。
車載通信制御装置は、各セキュリティレベルの共通鍵を記憶しておき、受信したメッセージに付された認証子に対応する共通鍵を用いて判定を行う。よって車載通信制御装置は、共通の通信線を介して送受信される全てのメッセージについて、メッセージに付された認証子の正否を判定できる。車載通信制御装置は、正しくない認証子が付されたメッセージを受信した場合、この認証子の判定に用いた共通鍵を記憶していない車載通信装置に対する通知を行う。
これにより各車載通信装置は、自身が記憶している共通鍵で認証子の正否を判定できるメッセージについては自身で判定を行い、自身で判定できないメッセージについては車載通信制御装置からの通知を受けることで、共通の通信線に正しくないメッセージが送信されたことを判断できるため、異なるセキュリティレベルの車載通信装置の混在が可能となる。
【0014】
(2)メッセージには複数の認証子を付すことが可能であり、前記車載通信装置は、自身のセキュリティレベルに対して定められた共通鍵と、当該セキュリティレベルより低いセキュリティレベルに対して定められた共通鍵とを前記第1記憶部に記憶し、前記第1認証子生成部は、前記第1記憶部に記憶された一又は複数の共通鍵を用いて、送信するメッセージに対して付す一又は複数の認証子を生成することが好ましい。
【0015】
本態様にあっては、メッセージに対して複数の認証子を付すことが可能である。車載通信装置は、自身のセキュリティレベルに対して定められた共通鍵と、自身のセキュリティレベルより低いセキュリティレベルに対して定められた共通鍵とを記憶しておく。複数の共通鍵を記憶している車載通信装置は、この複数の共通鍵を用いて複数の認証子を生成し、生成した複数の認証子をメッセージに付して送信する。これにより車載通信装置は、自身と同じセキュリティレベルの車載通信装置と、これより低いセキュリティレベルの車載通信装置とにメッセージを送信することが可能となる。
【0016】
(3)前記車載通信装置の第1認証子判定部は、受信したメッセージに付された認証子のうち、自身の第1記憶部に記憶された一又は複数の共通鍵を用いて正否を判定可能な認証子について判定を行うことが好ましい。
【0017】
本態様にあっては、複数の認証子が付されたメッセージを受信した車載通信装置は、自身が記憶している共通鍵を用いて正否を判定可能な少なくとも1つの認証子について正否判定を行う。これにより車載通信装置は、自身のセキュリティレベルより高いセキュリティレベルの車載通信装置が送信したメッセージであっても、自身が記憶している共通鍵で正否を判定可能な識別子が付されたメッセージであれば、メッセージの正否を判定して受信することが可能となる。よって、共通の通信線に接続された複数の車載通信装置は、異なるセキュリティレベルの車載通信装置を含む複数の車載通信装置に対して、メッセージの一斉送信(ブロードキャスト)を行うことが可能である。
【0018】
(4)メッセージには1つの認証子が付され、前記車載通信装置は、自身のセキュリティレベルに対して定められた1つの共通鍵を前記第1記憶部に記憶し、前記第1認証子生成部は、前記第1記憶部に記憶された1つの共通鍵を用いて、送信する他メッセージに対して付す1つの認証子を生成することが好ましい。
【0019】
本態様にあっては、メッセージに対して1つの認証子が付される。車載通信装置は、自身のセキュリティレベルに対して定められた1つの共通鍵を記憶しておき、この共通鍵を用いて1つの認証子を生成し、生成した1つの認証子をメッセージに付して送信する。これにより、各車載通信装置の構成を容易化することができる。また異なるセキュリティレベルの車載通信装置を分離して扱うことが容易化される。
【0020】
(5)前記車載通信制御装置は、前記第2認証子判定部が受信したメッセージに付された認証子が正しいと判定した場合に、当該認証子の判定に用いられた共通鍵とは異なる共通鍵を用いて、別の認証子を生成する第2認証子生成部と、前記受信したメッセージに前記第2認証子生成部が生成した別の認証子を付して送信することで、異なるセキュリティレベルの車載通信装置間のメッセージ送受信を中継する中継部とを有することが好ましい。
【0021】
本態様にあっては、各共通鍵を記憶している車載通信制御装置が、車載通信装置が送信したメッセージを受信して正否を判定し、正しいと判定したメッセージに対して判定に用いた共通鍵とは異なる共通鍵を用いて生成した識別を付し、新たな識別子が付されたメッセージを共通の通信線に対して送信する。これにより車載通信制御装置は、セキュリティレベルが異なる車載通信装置間のメッセージの送受信を中継することが可能となる。各車載通信装置は、車載通信制御装置を介して、共通の通信線に接続された全ての車載通信装置に対してメッセージを送信することが可能となる。
【0022】
(6)前記車載通信装置は、受信したメッセージに付された認証子が正しくないと前記第1認証子判定部が判定した場合に、前記車載通信制御装置に対して通知を行う第1通知部を有し、前記車載通信制御装置の前記第2通知部は、受信したメッセージに付された認証子が正しくないと前記第2認証子判定部が判定し、且つ、前記車載通信装置の前記第1通知部からの通知を受けた場合に、通知を行うことが好ましい。
【0023】
本態様にあっては、受信したメッセージに付された認証子が正しくないと判定した場合、各車載通信装置は車載通信制御装置に対する通知を行う。車載通信制御装置は、自身にてメッセージに付された認証子が正しくないと判定し、且つ、車載通信装置からの通知を受けた場合に、他の車載通信装置への通知を行う。これにより、車載通信制御装置から車載通信装置への通知の信頼性を高めることができる。
【0024】
(7)前記車載通信装置は、周期的にキープアライブ信号を前記共通の通信線に対して送信しており、前記第1通知部は、前記キープアライブ信号にて前記車載通信制御装置に対する通知を行うことが好ましい。
【0025】
本態様にあっては、車載通信装置から車載通信制御装置への通知を、車載通信装置が周期的に送信するキープアライブ信号を用いて行う。これにより車載通信装置から車載通信制御装置への通知が、通常のメッセージ送受信を阻害することを抑制できる。車載通信制御装置は、キープアライブ信号に含まれる情報を基に通信に関する異常を検出することができ、またキープアライブ信号が受信されない場合にも何らかの異常の発生を検出することができる。
【0026】
(8)本態様に係る車載通信システムは、共通の通信線に接続される複数の車載通信装置と、前記共通の通信線に接続され、前記複数の車載通信装置の通信に係る制御を行う車載通信制御装置とを備える車載通信システムであって、前記車載通信装置毎に暗号鍵が定められており、前記車載通信装置は、自身に対して定められた暗号鍵を記憶する第1記憶部と、前記第1記憶部に記憶された暗号鍵を用いて、送信するメッセージに対して付す認証子を生成する第1認証子生成部とを有し、前記車載通信制御装置は、各車載通信装置の暗号鍵を記憶する第2記憶部と、受信したメッセージに付された認証子の正否を、前記第2記憶部に記憶された対応する暗号鍵を用いて判定する第2認証子判定部とを有する。
【0027】
本態様にあっては、共通の通信線に接続された複数の車載通信装置に対し、個別の暗号鍵(共通鍵であってもよく、秘密鍵及び公開鍵であってもよい)が定められる。車載通信装置は、自身に定められた暗号鍵を記憶しておき、この暗号鍵を用いて生成した認証子をメッセージに付して送信する。車載通信制御装置は、共通の通信線に接続された各車載通信装置に対して定められた各暗号鍵を記憶しておき、受信したメッセージに付された認証子の正否を、記憶したいずれかの暗号鍵を用いて判定する。これにより、共通の通信線に接続された複数の車載通信装置がセキュリティ的に個別に分離され、各車載通信装置が車載通信制御装置とそれぞれ個別にメッセージの送受信を行う態様となるため、セキュリティを高めることができる。
【0028】
(9)前記車載通信装置は、受信したメッセージに付された認証子の正否を前記第1記憶部に記憶された暗号鍵を用いて判定する第1認証子判定部を有し、前記車載通信制御装置は、前記第2認証子判定部が受信したメッセージに付された認証子が正しいと判定した場合に、当該認証子の判定に用いられた暗号鍵とは異なる暗号鍵を用いて、別の認証子を生成する第2認証子生成部と、前記受信したメッセージに前記第2認証子生成部が生成した別の認証子を付して送信することで、異なるセキュリティレベルの車載通信装置間のメッセージ送受信を中継する中継部とを有することが好ましい。
【0029】
本態様にあっては、各車載通信装置が自身の暗号鍵を用いて、受信したメッセージに付された認証子の正否を判定する。車載通信制御装置は、受信したメッセージに付された認証子が正しいと判定した場合、判定に用いた暗号鍵とは異なる暗号鍵を用いて認証子を生成し、生成した認証子を付したメッセージを送信する。これにより車載通信制御装置は、車載通信装置間のメッセージの送受信を中継することができる。車載通信装置は、車載通信制御装置を介することで他の車載通信装置との間でメッセージを送受信することができる。
【0030】
(10)前記車載通信制御装置は、前記第2認証子判定部による判定をメッセージの送信完了前に行い、前記メッセージに付された認証子が正しくないと前記第2認証子判定部が判定した場合に、当該メッセージの送信完了前に、前記車載通信装置に当該メッセージを破棄させる処理を行う破棄処理部を有することが好ましい。
【0031】
本態様にあっては、車載通信装置のメッセージの送信完了前に、車載通信制御装置がこのメッセージに付された認証子の正否を判定する。車載通信制御装置は、認証子が正しくないと判定した場合、このメッセージの送信完了前に、共通の通信線に接続された複数の車載通信装置に対して、このメッセージを破棄させる処理を行う。これにより各車載通信装置は、メッセージに付された認証子の正否を判定する必要がなく、車載通信制御装置により破棄させられなかったメッセージについて認証子の正否を判定することなく受信してその後の処理に用いることができる。
【0032】
(11)本態様に係る車載通信制御装置は、複数の車載通信装置が接続される共通の通信線に接続され、前記複数の車載通信装置の通信に係る制御を行う車載通信制御装置であって、前記複数の車載通信装置は複数のセキュリティレベルに分類され、前記セキュリティレベル毎に共通鍵が定められており、各セキュリティレベルの共通鍵を記憶する記憶部と、受信したメッセージに付された認証子の正否を、前記記憶部に記憶された対応する共通鍵を用いて判定する認証子判定部と、受信したメッセージに付された認証子が正しくないと前記認証子判定部が判定した場合に、当該判定にて前記認証子判定部が用いた共通鍵を記憶していない車載通信装置に対して通知を行う通知部とを備える。
【0033】
本態様にあっては、態様(1)と同様に、異なるセキュリティレベルの車載通信装置の混在が可能となる。
【0034】
(12)前記認証子判定部が受信したメッセージに付された認証子が正しいと判定した場合に、当該認証子の判定に用いられた共通鍵とは異なる共通鍵を用いて、別の認証子を生成する認証子生成部と、前記受信したメッセージに前記認証子生成部が生成した別の認証子を付して送信することで、異なるセキュリティレベルの車載通信装置間のメッセージ送受信を中継する中継部とを備えることが好ましい。
【0035】
本態様にあっては、態様(5)と同様に、セキュリティレベルが異なる車載通信装置間のメッセージの送受信を車載通信制御装置が中継することが可能となる。
【0036】
(13)前記車載通信装置は、受信したメッセージに付された認証子が正しくないと判定した場合に通知を行い、前記通知部は、受信したメッセージに付された認証子が正しくないと前記認証子判定部が判定し、且つ、前記車載通信装置からの通知を受けた場合に、通知を行うことが好ましい。
【0037】
本態様にあっては、態様(6)と同様に、車載通信制御装置から車載通信装置への通知の信頼性を高めることができる。
【0038】
(14)本態様に係る車載通信装置は、共通の通信線に接続される車載通信装置であって、前記共通の通信線に接続される複数の車載通信装置は複数のセキュリティレベルに分類され、前記セキュリティレベル毎に共通鍵が定められており、自身のセキュリティレベルに応じた共通鍵を記憶する記憶部と、前記記憶部に記憶された共通鍵を用いて、送信するメッセージに対して付す認証子を生成する認証子生成部と、受信したメッセージに付された認証子の正否を前記記憶部に記憶された共通鍵を用いて判定する認証子判定部と、受信したメッセージに付された認証子が正しくないと前記認証子判定部が判定した場合に、前記共通の通信線に接続された他の装置に対して通知を行う通知部とを備える。
【0039】
本態様にあっては、態様(6)と同様に、車載通信制御装置から車載通信装置への通知の信頼性を高めることができる。
【0040】
(15)前記通知部は、前記共通の通信線に対して周期的に送信するキープアライブ信号にて通知を行うことが好ましい。
【0041】
本態様にあっては、態様(7)と同様に、これにより車載通信装置から車載通信制御装置への通知が、通常のメッセージ送受信を阻害することを抑制できる。
【0042】
(16)メッセージには複数の認証子を付すことが可能であり、前記記憶部は、自身のセキュリティレベルに対して定められた共通鍵と、当該セキュリティレベルより低いセキュリティレベルに対して定められた共通鍵と記憶し、前記認証子生成部は、前記記憶部に記憶された一又は複数の共通鍵を用いて、送信するメッセージに対して付す一又は複数の認証子を生成することが好ましい。
【0043】
本態様にあっては、態様(2)と同様に、車載通信装置は、自身と同じセキュリティレベルの車載通信装置と、これより低いセキュリティレベルの車載通信装置とにメッセージを送信することが可能となる。
【0044】
(17)前記認証子判定部は、受信したメッセージに付された認証子のうち、自身の記憶部に記憶された一又は複数の共通鍵を用いて正否を判定可能な認証子について判定を行うことが好ましい。
【0045】
本態様にあっては、態様(3)と同様に、共通の通信線に接続された複数の車載通信装置は、異なるセキュリティレベルの車載通信装置を含む複数の車載通信装置に対して、メッセージの一斉送信(ブロードキャスト)を行うことが可能である。
【0046】
(18)メッセージには1つの認証子が付され、前記記憶部は、自身のセキュリティレベルに対して定められた1つの共通鍵を記憶し、前記認証子生成部は、前記記憶部に記憶された1つの共通鍵を用いて、送信する他メッセージに対して付す1つの認証子を生成することが好ましい。
【0047】
本態様にあっては、態様(4)と同様に、各車載通信装置の構成を容易化することができ、異なるセキュリティレベルの車載通信装置を分離して扱うことが容易化される。
【0048】
(19)本態様に係るコンピュータプログラムは、複数の車載通信装置が接続される共通の通信線に接続される車載通信制御装置に、前記複数の車載通信装置の通信に係る制御を行わせるコンピュータプログラムであって、前記複数の車載通信装置は複数のセキュリティレベルに分類され、前記セキュリティレベル毎に共通鍵が定められており、各セキュリティレベルの共通鍵を記憶部に記憶しておき、前記車載通信制御装置に、受信したメッセージに付された認証子の正否を、前記記憶部に記憶された対応する共通鍵を用いて判定し、受信したメッセージに付された認証子が正しくないと判定した場合に、当該判定にて用いた共通鍵を記憶していない車載通信装置に対して通知を行う処理を実行させる。
【0049】
本態様にあっては、態様(11)と同様に、異なるセキュリティレベルの車載通信装置の混在が可能となる。
【0050】
(20)本態様に係るコンピュータプログラムは、共通の通信線に接続される車載通信装置に、通信に係る処理を行わせるコンピュータプログラムであって、前記共通の通信線に接続される複数の車載通信装置は複数のセキュリティレベルに分類され、前記セキュリティレベル毎に共通鍵が定められており、自身のセキュリティレベルに応じた共通鍵を記憶部に記憶しておき、前記記憶部に記憶された共通鍵を用いて、送信するメッセージに対して付す認証子を生成し、受信したメッセージに付された認証子の正否を前記記憶部に記憶された共通鍵を用いて判定し、受信したメッセージに付された認証子が正しくないと判定した場合に、前記共通の通信線に接続された他の装置に対して通知を行う処理を実行させる。
【0051】
本態様にあっては、態様(14)と同様に、車載通信制御装置から車載通信装置への通知の信頼性を高めることができる。
【0052】
(21)本態様に係る通信制御方法は、複数の車載通信装置が接続される共通の通信線に接続される車載通信制御装置が、前記複数の車載通信装置の通信に係る制御を行う通信制御方法であって、前記複数の車載通信装置は複数のセキュリティレベルに分類され、前記セキュリティレベル毎に共通鍵が定められており、各セキュリティレベルの共通鍵を記憶部に記憶しておき、受信したメッセージに付された認証子の正否を、前記記憶部に記憶された対応する共通鍵を用いて判定し、受信したメッセージに付された認証子が正しくないと判定した場合に、当該判定にて用いた共通鍵を記憶していない車載通信装置に対して通知を行う。
【0053】
本態様にあっては、態様(11)と同様に、異なるセキュリティレベルの車載通信装置の混在が可能となる。
【0054】
(22)本態様に係る通信方法は、共通の通信線に接続される車載通信装置が通信に係る処理を行う通信方法であって、前記共通の通信線に接続される複数の車載通信装置は複数のセキュリティレベルに分類され、前記セキュリティレベル毎に共通鍵が定められており、自身のセキュリティレベルに応じた共通鍵を記憶部に記憶しておき、前記記憶部に記憶された共通鍵を用いて、送信するメッセージに対して付す認証子を生成し、受信したメッセージに付された認証子の正否を前記記憶部に記憶された共通鍵を用いて判定し、受信したメッセージに付された認証子が正しくないと判定した場合に、前記共通の通信線に接続された他の装置に対して通知を行う。
【0055】
本態様にあっては、態様(14)と同様に、車載通信制御装置から車載通信装置への通知の信頼性を高めることができる。
【0056】
[本発明の実施形態の詳細]
本発明の実施形態に係る車載通信システムの具体例を、以下に図面を参照しつつ説明する。なお、本発明はこれらの例示に限定されるものではなく、特許請求の範囲によって示され、特許請求の範囲と均等の意味及び範囲内でのすべての変更が含まれることが意図される。
【0057】
<実施の形態1>
図1及び図2は、本実施の形態に係る車載通信システムの概要を説明するための模式図である。本実施の形態に係る車載通信システムは、車両1に搭載されたCGW(Central Gate Way)2と、3つのDC(Domain Controller)3A~3Cと、9つのECU(Electronic Control Unit)4A~4Iとを備えて構成されている。CGW2は、個別の通信線を介して3つのDC3A~3Cにそれぞれ接続されている。DC3Aは、共通の通信線(いわゆるバス)を介して、3つのECU4A~4Cに接続されている。DC3Bは、バスを介して3つのECU4D~4Fに接続されている。DC3Cは、個別の通信線を介して、3つのECU4G~4Iにそれぞれ接続されている。
【0058】
本実施の形態においては、例えば車両1の機能毎に複数のECU4A~4Iが分類され、機能毎に1つのDC3A~3Cが設けられて対応するECU4A~4Iが通信線を介して接続され、複数のDC3A~3CがCGW2を介して接続されるという態様でシステムが構築されている。各DC3A~3Cは、自身に接続されたECU4A~4Iの動作を制御し、車両1の各機能を実現する。またDC3A~3Cが互いに情報交換して協働することによって、各機能が連携し、車両1の全体としての機能が実現される。
【0059】
CGW2及び3つのDC3A~3Cは、例えばイーサネット(登録商標)の通信プロトコルに従った通信を行うことにより、メッセージを送受信する。CGW2は、例えば1つのDC3A~3Cから受信したメッセージを、他の2つのDC3A~3Cへ送信することにより、3つのDC3A~3Cの間のメッセージの送受信を中継する。これによりDC3A~3Cは、CGW2を介して他のDC3A~3Cとの間でメッセージの送受信を行うことができる。本実施の形態においてCGW2は、3つのDC3A~3Cの間のメッセージを単に中継する装置とするが、例えば一のDC3A~3Cからの受信メッセージに対して演算処理を行い、他のDC3A~3Cへ演算結果をメッセージとして送信するなど、より高度な処理を行ってもよい。
【0060】
DC3A及び3つのECU4A~4Cは、例えばCANの通信プロトコルに従った通信を行うことにより、CANバスを介したメッセージの送受信を行う。一のECU4A~4Cが送信したメッセージは、他のECU4A~4C及びDC3Aにて受信可能である。DC3Aが送信したメッセージは、ECU4A~4Cにて受信可能である。
【0061】
同様に、DC3B及び3つのECU4D~4Fは、例えばCANの通信プロトコルに従った通信を行うことにより、CANバスを介したメッセージの送受信を行う。一のECU4D~4Fが送信したメッセージは、他のECU4D~4F及びDC3Bにて受信可能である。DC3Bが送信したメッセージは、ECU4D~4Fにて受信可能である。
【0062】
DC3C及び3つのECU4G~4Iは、例えばイーサネットの通信プロトコルに従った通信を行うことにより、メッセージを送受信する。DC3CとECU4G~4Iとは、それぞれ個別の通信線を介して接続されており、一対一でのメッセージ送受信を行う。DC3Cは、一のECU4G~4Iから受信したメッセージを他のECU4G~4Iへ送信することにより、3つのECU4G~4Iの間のメッセージの送受信を中継することができる。これによりECU4G~4Iは、DC3Bを介して他のECU4G~4Iとの間でメッセージの送受信を行うことができる。
【0063】
また、例えばDC3Aに接続されたECU4AからDC3Cに接続されたECU4Iへメッセージを送信することも可能である。この場合、ECU4Aから送信されたメッセージは、DC3A、CGW2及びDC3にて中継され、ECU4Iに受信される。このようにCGW2及びDC3A~3Cがメッセージの中継を行うことによって、ECU4A~4Iはメッセージを送受信することが可能である。
【0064】
本実施の形態に係る車載通信システムでは、システムを構成する各装置に対してセキュリティレベルが定められている。図1に示すように、本例ではCGW2及び3つのDC3A~3Cに対してセキュリティレベル3が定められ、ECU4A,4G~4Iに対してセキュリティレベル2が定められ、ECU4B~4Fに対してセキュリティレベル1が定められている。なお図1においては、各装置のセキュリティレベルを「LV?」のラベルで示している。またセキュリティレベルは、その数値が大きい程、セキュリティ性能が高いことを示している。
【0065】
本実施の形態に係る車載通信システムでは、各装置が送受信するメッセージには、MAC(Message Authentication Code、メッセージ認証子)が付される。メッセージには、例えばメッセージの種別を示すID及び装置間で共有すべき情報等のデータが含まれている。MACは、メッセージに含まれるデータに対して所定の暗号鍵を用いた暗号化の処理を行うことで得られる情報である。各装置は、自身が有する暗号鍵を用いてMACを生成し、生成したMACを付したメッセージを送信する。このメッセージを受信した各装置は、メッセージに付されたMACの正否を自身が有する暗号鍵を用いて判定する。このときに各装置は、受信したメッセージに含まれるデータに対して暗号鍵を用いた暗号化の処理を行ってMACを生成し、自身が生成したMACとメッセージに付されたMACとが一致するか否かに応じて、MACの正否を判定することができる。
【0066】
本実施の形態においては、メッセージを送受信する装置間で共通の暗号鍵、即ち共有鍵を記憶しておき、MACの生成及び判定を行う。図2においては、各装置が有する暗号鍵を、破線で囲んだ鍵a~eとして図示している。例えばセキュリティレベル3のCGW2及びDC3A~3Cは、セキュリティレベル3の鍵eを用いてMACの生成及び判定を行う。セキュリティレベル3のDC3B及びセキュリティレベル1のECU4D~4Fは、セキュリティレベル1の鍵cを用いてMACの生成及び判定を行う。またDC3Bは、例えばECU4D~4FからのメッセージをCGW2へ中継する場合に、受信したメッセージから鍵cを用いて生成されたMACを削除し、鍵eを用いて生成したMACをメッセージに付してCGW2へ送信する。DC3Bは、例えばCGW2からのメッセージをECU4D~4Fへ中継する場合に、受信したメッセージから鍵eを用いて生成されたMACを削除し、鍵cを用いて生成したMACをメッセージに付してECU4D~4Fへ送信する。
【0067】
同様に、セキュリティレベル3のDC3C及びセキュリティレベル2のECU4G~4Iは、セキュリティレベル2の鍵dを用いてMACの生成及び判定を行う。またDC3Cは、例えばECU4G~4IからのメッセージをCGW2へ中継する場合に、受信したメッセージから鍵dを用いて生成されたMACを削除し、鍵eを用いて生成したMACをメッセージに付してCGW2へ送信する。またDC3Cは、例えばCGW2からのメッセージをECU4G~4Iへ中継する場合に、受信したメッセージから鍵eを用いて生成されたMACを削除し、鍵dを用いて生成したMACをメッセージに付してECU4G~4Iへ送信する。
【0068】
このように本実施の形態に係る車載通信システムでは、例えば車両1の機能等により分類されたDC3A~3C及びECU4A~4Iの各グループについて、グループ内の通信に用いるMACの生成及び判定のための暗号鍵をそれぞれ異なるものとすることができる。これにより、車載通信システムを構成する複数の装置をセキュリティ的に複数のグループに分離することができ、各グループに適したセキュリティレベルを設定することができる。セキュリティレベルは、例えばMACの生成に用いられる暗号化処理のアルゴリズムの強度、及び、暗号化処理に用いられる暗号鍵の情報量(ビット長)等に応じて定まる。用いられる暗号化処理のアルゴリズムの強度が高く、且つ、暗号鍵の情報量が多いほどセキュリティレベルは高い。
【0069】
また本実施の形態に係る車載通信システムでは、図1及び図2のDC3A及びECU4A~4Cに示すように、物理的なネットワーク構成は1つ(共通)であっても、複数のセキュリティレベルを混在させることが可能である。セキュリティレベル3のDC3A、セキュリティレベル2のECU4A及びセキュリティレベル1のECU4B,4Cでは、セキュリティレベル1の鍵a及びセキュリティレベル2の鍵bの2つの暗号鍵を用いたメッセージの送受信が行われる。以下、セキュリティレベルが混在したネットワークにおけるメッセージ送受信について説明する。
【0070】
図3は、DC3A及びECU4A~4Cによるメッセージ送受信の一例を示す模式図である。上述のように、DC3A及びECU4A~4Cは、共通のCANバスに接続されており、CANの通信プロトコルに従ったメッセージの送受信を行う。図示の例では、各装置のセキュリティレベルとしてレベル1又はレベル2が設定されている(図中、Lv1又はLv2と記載している)。本例では、セキュリティレベルはその数値が高いほどレベルが高いものとし、レベル1よりもレベル2はセキュリティレベルが高い。DC3A及びECU4Aがセキュリティレベル2に設定され、ECU4B,4Cがセキュリティレベル1に設定されている。また本例では、セキュリティレベル1に対する暗号鍵として鍵aが設定され、セキュリティレベル2に対する暗号鍵として鍵bが設定されている。例えば、鍵bは、鍵aよりもビット長が長い暗号鍵である。
【0071】
本実施の形態に係る車載通信システムにおいて各装置は、自身のセキュリティレベルに対応する暗号鍵と、自身のセキュリティレベルより低いセキュリティレベルに対応する暗号鍵とを記憶している。例えば、セキュリティレベル1のECU4B,4Cは、自身のセキュリティレベル1に対応する鍵aを記憶している。また例えば、セキュリティレベル2のDC3A及びECU4Aは、自身のセキュリティレベル2に対応する鍵bと、自身のセキュリティレベル2より低いセキュリティレベル1に対応する鍵aとを記憶している。
【0072】
例えば、2つの鍵a,bを記憶しているセキュリティレベル2のECU4Aは、送信すべきメッセージに対して鍵aを用いて生成したMAC(a)と、鍵bを用いて生成したMAC(b)とを付して、CANバスへ送信する。このメッセージを受信したセキュリティレベル1のECU4B,4Cは、自身が記憶している鍵aを用いてMAC(a)の正否を判定し、MAC(b)の成否は判定しない(判定できない)。ECU4B,4Cは、メッセージに付されたMAC(a)が正しい場合、このメッセージが正当なものであると判断する。また、このメッセージを受信したセキュリティレベル2のDC3Aは、自身が記憶している鍵bを用いてMAC(b)の正否を判定し、鍵aを用いてMAC(a)の正否を判定する。DC3Aは、MAC(b)及びMAC(a)が正しい場合、このメッセージが正当なものであると判断する。ただしDC3Aは、セキュリティレベルが高いMAC(b)の正否判定のみを行い、セキュリティレベルが低いMAC(a)の正否判定を行わなくてもよい。
【0073】
また例えば、1つの鍵aを記憶しているセキュリティレベル1のECU4Bは、送信すべきメッセージに対して鍵aを用いて生成したMAC(a)を付して、CANバスへ送信する。このメッセージを受信したDC3A及びECU4A,4Cは、自身が記憶している鍵aを用いてMAC(a)の正否を判定する。DC3A及びECU4A,4Cは、MAC(a)が正しい場合、このメッセージが正当なものであると判断する。
【0074】
なお、2つの鍵a,bを記憶しているセキュリティレベル2のECU4Aは、例えばセキュリティレベル1のECU4B,4Cに不要なメッセージについては、MAC(b)のみを付して送信してもよい。MAC(b)のみが付されたメッセージは、鍵bを記憶していないECU4B,4Cでは正否を判定できないため、破棄される。このメッセージは、鍵bを記憶しているDC3Aにて受信される。
【0075】
ここで、例えば悪意の装置がCANバスに接続された場合、又は、いずれかの装置が乗っ取られた場合等に、MACが正しくないメッセージがCANバス上に送信される可能性がある。不正なMAC(a)が付されたメッセージは、DC3A及びECU4A~4Cの全てにおいて不正であることが検出されるため、各装置においてメッセージを破棄する等の処理を行うことができる。これに対して、正当なMAC(a)が付され、不正なMAC(b)が付されたメッセージは、鍵bを記憶しているDC3A及びECU4Aにおいて不正であることが検出されるが、鍵bを記憶していないECU4B,4Cでは不正を検出することができない。
【0076】
そこで本実施の形態に係る車載通信システムでは、不正なMACが付されたメッセージを受信した場合に、DC3AがECU4A~4Cに対して通知を行う。DC3Aは、不正と判定したMACのセキュリティレベルよりも低いセキュリティレベルが設定されたECU4A~4Cに対して通知を行う。例えば、セキュリティレベル2のMAC(b)について不正と判定した場合、DC3Aは、セキュリティレベル2より低いセキュリティレベル1のECU4B,4Cに対して通知を行い、セキュリティレベル2のECU4Aに対しては通知を行わない。ただし、DC3Aがセキュリティレベルに関係なく全てのECU4A~4Cに対して通知を行う構成としてもよい。またセキュリティレベル1のMAC(a)について不正と判定した場合、DC3Aは、これより低いセキュリティレベルが存在しないため、通知を行わなくてよい。
【0077】
図4は、DC3AからECU4A~4Cへの通知の一例を示す模式図である。本実施の形態に係る車載通信システムでは、通常のメッセージの送受信に用いる暗号鍵とは別に、不正なMACの検出等の異常を通知する際の通知メッセージの送受信に用いる暗号鍵を各装置が記憶している。図示の例では、ECU4Aが鍵αを記憶し、ECU4Bが鍵βを記憶し、ECU4Cが鍵γを記憶している。即ち、通知メッセージを受信し得る装置は、それぞれ異なる通知用の暗号鍵を記憶している。DC3Aは、通知メッセージの送信先となり得る各ECU4A~4Cの鍵α,β,γを記憶している。鍵αはセキュリティレベル2の暗号鍵であり、鍵β,γはセキュリティレベル1の暗号鍵である。なお本実施の形態において、鍵α,β,γは共有鍵とするが、これに限るものではなく、ECU4A~4Cが有する鍵α,β,γを秘密鍵とし、DC3Aが有する鍵α,β,γを各秘密鍵に対応する公開鍵としてもよい。
【0078】
DC3Aは、何らかの異常等を検出してECU4A~4Cへ通知メッセージを送信する場合、通知を必要とするECU4A~4Cに対して個別に通知メッセージを送信する。DC3Aは、ECU4Aへ通知メッセージを送信する場合、ECU4Aが有する鍵αを用いて生成したMAC(α)を付した通知メッセージを送信する。MAC(α)が付された通知メッセージは、鍵αを有するECU4Aのみが正否を判定することができるため、ECU4Aのみで受信され、ECU4B,4Cでは破棄される。同様に、DC3Aは、ECU4Bへ通知メッセージを送信する場合、ECU4Bが有する鍵βを用いて生成したMAC(β)を付した通知メッセージを送信する。
【0079】
これにより、例えばいずれかのECU4A~4Cが乗っ取られた場合であっても、それ以外のECU4A~4Cが有する通知メッセージを送受信するための鍵が漏洩することがないため、DC3AからECU4A~4Cへの通知メッセージの送信が阻害されることを防止できる。
【0080】
なお、本例の場合には、ECU4AはMAC(α)及びMAC(b)のいずれについても正否判定を行うことができ、不正なMACの検出によるDC3Aからの通知メッセージを必要としないため、通知メッセージを送受信するための鍵αを記憶しておく必要はない。ただし、DC3Aが不正なMACの検出以外の通知を行う場合には、鍵αを用いたMAC(α)が付された通知メッセージをDC3Aが送信する可能性があり、ECU4Aは鍵αを記憶しておくことが好ましい。
【0081】
またDC3Aは、通知メッセージに複数のMACを付して送信する構成であってもよい。例えばECU4B,4Cへ通知メッセージを送信する場合、DC3Aは、MAC(β)及びMAC(γ)を付した通知メッセージを送信してもよい。この通知メッセージを受信したECU4B,4Cは、自身が記憶している鍵β,γを用いていずれのMACが正当であると判定した場合、この通知メッセージを正当なメッセージとして扱う。
【0082】
図5は、本実施の形態に係るDC3Aの構成を示すブロック図である。なお、他のDC3B,3Cについては、DC3Aと同様の構成であるため、図示及び説明を省略する。本実施の形態に係るDC3Aは、処理部(プロセッサ)31、記憶部(ストレージ)32、CAN通信部(トランシーバ)33及びイーサネット通信部(トランシーバ)34等を備えて構成されている。処理部31は、CPU(Central Processing Unit)又はMPU(Micro-Processing Unit)等の演算処理装置を用いて構成されている。処理部31は、記憶部32に記憶されたプログラム32aを読み出して実行することにより、CGW2及びECU4A~4C等とのメッセージの送受信、MACに基づく不正なメッセージの検出、及び、ECU4A~4Cへの通知等を行う。
【0083】
記憶部32は、例えばフラッシュメモリ又はEEPROM(Electrically Erasable Programmable Read Only Memory)等の不揮発性のメモリ素子を用いて構成されている。記憶部32は、処理部31が実行する各種のプログラム、及び、処理部31の処理に必要な各種のデータを記憶する。本実施の形態において記憶部32は、処理部31が実行するプログラム32aを記憶すると共に、MACの生成及び判定に用いる暗号鍵を記憶する鍵記憶部32bが設けられている。なおプログラム32aは、例えばDC3Aの製造段階において記憶部32に書き込まれてもよく、また例えば遠隔のサーバ装置などが配信するものをDC3Aが通信にて取得してもよく、また例えばメモリカード又は光ディスク等の記録媒体99に記録されたプログラム32aをDC3Aが読み出して記憶部32に記憶してもよく、また例えば記録媒体99に記録されたものを書込装置が読み出してDC3Aの記憶部32に書き込んでもよい。プログラム32aは、ネットワークを介した配信の態様で提供されてもよく、記録媒体99に記録された態様で提供されてもよい。
【0084】
記憶部32の鍵記憶部32bには、ECU4A~4Cとの間で送受信するメッセージに付されるMACの生成及び判定を行うための鍵a,bと、CGW2との間で送受信するメッセージに付されるMACの生成及び判定を行うための鍵eとが記憶される。また鍵記憶部32bには、ECU4A~4Cとの間で異常検知時に送受信する通知メッセージに付されるMACの生成及び判定を行うための鍵α,β,γが記憶される。なお鍵記憶部32bに記憶される暗号鍵は、DC3A~3Cでそれぞれ異なる。
【0085】
またDC3Aは、鍵記憶部32bに記憶された複数の暗号鍵に関する情報を、例えばテーブルとして記憶している。図6は、テーブルに記憶される暗号鍵に関する情報の一例を示す模式図である。例示するテーブルには、DC3Aのメッセージ送受信の相手となる装置と、この装置のセキュリティレベルと、この装置が送信するメッセージに付されるID(例えばCAN-ID)と、この装置が記憶している暗号鍵と、この装置が記憶している通知メッセージ用の暗号鍵との対応が記憶されている。DC3Aは、例えばECU4A~4Cからの例えばメッセージを受信した場合に、メッセージに付されたIDに基づいてメッセージの送信元の装置を判断し、対応する暗号鍵を鍵記憶部32bから読み出してMACを判定することができる。
【0086】
CAN通信部33は、CANの通信プロトコルに従う有線通信を行う。CAN通信部33は、いわゆるCANトランシーバのICを用いて構成され得る。CAN通信部33は、車両1内に配されたCANバスを介して複数のECU4A~4Cに接続され、これらのECU4A~4Cとの間でCANの通信プロトコルに従う通信を行う。CAN通信部33は、処理部31から与えられた送信用のメッセージをCANの通信プロトコルに応じた電気信号に変換して通信線へ出力することにより、ECU4A~4Cへのメッセージ送信を行う。またCAN通信部33は、通信線の電位をサンプリングして取得することによりECU4A~4Cからのメッセージを受信し、受信したメッセージを処理部31へ与える。
【0087】
イーサネット通信部34は、イーサネットの通信プロトコルに従う有線通信を行う。イーサネット通信部34は、車両1内に配されたイーサネット用の通信線を介してCGW2に接続され、CGW2との間でイーサネットの通信プロトコルに従う通信を行う。イーサネット通信部34は、処理部31から与えられた送信用のメッセージをイーサネットの通信プロトコルに応じた電気信号に変換して通信線へ出力することにより、CGW2へのメッセージ送信を行う。またイーサネット通信部34は、通信線の電位をサンプリングして取得することによりCGW2からのメッセージを受信し、受信したメッセージを処理部31へ与える。なお、図1及び図2に例示したシステム構成において、DC3CはCAN通信部33を備えず、複数のイーサネット通信部34を備える。
【0088】
また本実施の形態に係るDC3Aでは、記憶部32に記憶されたプログラム32aを処理部31が読み出して実行することにより、MAC生成部31a、MAC判定部31b、送受信処理部31c及び通知処理部31d等が処理部31にソフトウェア的な機能ブロックとして実現される。MAC生成部31aは、CGW2又はECU4A~4Cへ送信すべきメッセージに対して、鍵記憶部32bに記憶された暗号鍵を用いた暗号化処理を行うことで、このメッセージを認証するためのMACを生成する処理を行う。MAC生成部31aは、CGW2へ送信すべきメッセージに対して、鍵記憶部32bに記憶された鍵eを用いたMACの生成を行う。またMAC生成部31aは、ECU4A~4Cへ送信すべきメッセージに対して、鍵記憶部32bに記憶された鍵aを用いたMACの生成と、鍵bを用いたMACの生成とを行う。
【0089】
MAC判定部31bは、CGW2又はECU4A~4Cから受信したメッセージに付されたMACの正否を判定する処理を行う。MAC判定部31bは、受信したメッセージに含まれるIDに基づいて図5に示したテーブルを参照し、判定に用いる暗号鍵を判断する。MAC判定部31bは、受信したメッセージに対して暗号鍵を用いたMACの生成を行い、生成したMACと受信したメッセージに付されたMACとが一致するか否かに応じて、MACの正否を判定する。MAC判定部31bは、CGW2から受信したメッセージについて、鍵記憶部32bに記憶された鍵eを用いたMACの判定を行う。MAC判定部31bは、ECU4Aから受信したメッセージについて、鍵記憶部32bに記憶された鍵a,bを用いたMACの判定を行う。MAC判定部31bは、ECU4B,4Cから受信したメッセージについて、鍵記憶部32bに記憶された鍵aを用いたMACの判定を行う。
【0090】
送受信処理部31cは、CGW2又はECU4A~4Cとの間でメッセージを送受信する処理を行う。送受信処理部31cは、送信すべきメッセージに対してMAC生成部31aが生成したMACを付し、MACを付したメッセージをCAN通信部33又はイーサネット通信部34へ与えることにより、ECU4A~4C又はCGW2へメッセージを送信する。また送受信処理部31cは、CAN通信部33又はイーサネット通信部34にて受信したメッセージに付されたMACについて、MAC判定部31bにて成否の判定を行わせ、正規のMACが付されたメッセージを受信メッセージとして扱うと共に、不正なMACが付されたメッセージを破棄する。
【0091】
通知処理部31dは、MAC判定部31bにてMACが不正であると判定された場合に、ECU4A~4Cへ通知メッセージを送信する処理を行う。通知処理部31dは、MAC判定部31bにて不正と判定されたMACのセキュリティレベルを調べ、このセキュリティレベルに対応する暗号鍵を有していないECU4A~4C、本実施の形態ではこのセキュリティレベルより低いセキュリティレベルが設定されたECU4A~4Cに対して通知メッセージを送信する。通知メッセージには、例えば不正と判定されたMACのセキュリティレベル、このMACが付されていたメッセージに含まれるID、このメッセージの送信元のECU4A~4Cの識別情報等の情報が含まれ得る。通知メッセージを受信したECU4A~4Cは、通知メッセージに含まれる情報を記憶しておき、以降に同様のメッセージを受信した場合にはこれを破棄する等の処理を行うことができる。
【0092】
図7は、本実施の形態に係るECU4Aの構成を示すブロック図である。なお、他のECU4B~4Iについては、ECU4Aと同様の構成であるため、図示及び説明を省略する。本実施の形態に係るECU4Aは、処理部(プロセッサ)41、記憶部(ストレージ)42及びCAN通信部(トランシーバ)43等を備えて構成されている。処理部41は、CPU又はMPU等の演算処理装置を用いて構成されている。処理部41は、記憶部42に記憶されたプログラム42aを読み出して実行することにより、DC3A及び他のECU4B,4Cとのメッセージの送受信及びMACに基づく不正なメッセージの検出等を行う。
【0093】
記憶部42は、例えばフラッシュメモリ又はEEPROM等の不揮発性のメモリ素子を用いて構成されている。記憶部42は、処理部41が実行する各種のプログラム、及び、処理部41の処理に必要な各種のデータを記憶する。本実施の形態において記憶部42は、処理部41が実行するプログラム42aを記憶すると共に、MACの生成及び判定に用いる暗号鍵を記憶する鍵記憶部42bが設けられている。なおプログラム42aは、例えばECU4Aの製造段階において記憶部42に書き込まれてもよく、また例えば遠隔のサーバ装置などが配信するものをECU4Aが通信にて取得してもよく、また例えばメモリカード又は光ディスク等の記録媒体98に記録されたプログラム42aをECU4Aが読み出して記憶部42に記憶してもよく、また例えば記録媒体98に記録されたものを書込装置が読み出してECU4Aの記憶部42に書き込んでもよい。プログラム42aは、ネットワークを介した配信の態様で提供されてもよく、記録媒体98に記録された態様で提供されてもよい。
【0094】
記憶部42の鍵記憶部42bには、DC3A及び他のECU4B,4Cとの間で送受信するメッセージに付されるMACの生成及び判定を行うための鍵a,bが記憶される。また鍵記憶部42bには、DC3Aとの間で異常検知時に送受信する通知メッセージに付されるMACの生成及び判定を行うための鍵αが記憶される。なお鍵記憶部42bに記憶される暗号鍵は、ECU4A~4Iでそれぞれ異なる。
【0095】
CAN通信部43は、CANの通信プロトコルに従う有線通信を行う。CAN通信部43は、いわゆるCANトランシーバのICを用いて構成され得る。CAN通信部43は、車両1内に配されたCANバスを介してDC3A及び他のECU4B,4Cに接続され、これらのDC3A及びECU4B,4Cとの間でCANの通信プロトコルに従う通信を行う。CAN通信部43は、処理部41から与えられた送信用のメッセージをCANの通信プロトコルに応じた電気信号に変換して通信線へ出力することにより、DC3A及びECU4B,4Cへのメッセージ送信を行う。またCAN通信部43は、通信線の電位をサンプリングして取得することによりDC3A及びECU4B,4Cからのメッセージを受信し、受信したメッセージを処理部41へ与える。なお、図1及び図2に例示したシステム構成において、ECU4G~4IはCAN通信部43を備えず、代わりにイーサネットの通信プロトコルに従った通信を行うイーサネット通信部を備える。
【0096】
また本実施の形態に係るECU4Aでは、記憶部42に記憶されたプログラム42aを処理部41が読み出して実行することにより、MAC生成部41a、MAC判定部41b、送受信処理部41c及び通知処理部41d等が処理部41にソフトウェア的な機能ブロックとして実現される。MAC生成部41aは、DC3A及びECU4B,4Cへ送信すべきメッセージに対して、鍵記憶部42bに記憶された暗号鍵を用いた暗号化処理を行うことで、このメッセージを認証するためのMACを生成する処理を行う。MAC生成部41aは、鍵記憶部32bに記憶された鍵aを用いたMACの生成と、鍵bを用いたMACの生成とを行う。
【0097】
MAC判定部41bは、DC3A又はECU4B,4Cから受信したメッセージに付されたMACの正否を判定する処理を行う。MAC判定部41bは、受信したメッセージに対して暗号鍵を用いたMACの生成を行い、生成したMACと受信したメッセージに付されたMACとが一致するか否かに応じて、MACの正否を判定する。MAC判定部41bは、受信したメッセージに2つのMACが付されている場合、2つの鍵a,bをそれぞれ対応するMACに対して使用して正否判定を行う。またMAC判定部41bは、受信したメッセージに1つのMACが付されている場合、1つの鍵aを使用して正否判定を行う。
【0098】
送受信処理部41cは、DC3A及びECU4B,4Cとの間でメッセージを送受信する処理を行う。送受信処理部41cは、送信すべきメッセージに対してMAC生成部41aが生成したMACを付し、MACを付したメッセージをCAN通信部43へ与えることにより、DC3A及びECU4B,4Cへメッセージを送信する。また送受信処理部41cは、CAN通信部43にて受信したメッセージに付されたMACについて、MAC判定部41bにて成否の判定を行わせ、正規のMACが付されたメッセージを受信メッセージとして扱うと共に、不正なMACが付されたメッセージを破棄する。
【0099】
通知処理部41dは、所定の周期でCANバスに対する信号の送信を行うことによって、自身が正常に動作していることをDC3A及びECU4B,4Cに通知する処理を行う。この通知処理部41dによる周期的な信号送信は、いわゆるキープアライブの機能であり、以下ではこの周期的に送信される信号をキープアライブ信号と呼ぶ。本実施の形態において通知処理部41dは、MAC判定部41bにてMACが不正であると判定された場合に、不正判定に関する情報をキープアライブ信号に含めて送信することにより、DC3Aへ不正なMACを検出した旨を通知する。このときに通知処理部41dは、例えば不正なMACを検出した回数、不正と判定したMACのセキュリティレベル、又は、不正と判定したMACが付されたメッセージのID等の情報をキープアライブ信号に含めることができる。
【0100】
本実施の形態に係る車載通信システムでは、上述のようにDC3Aが不正なMACの検出に応じて通知メッセージの送信を行う。このDC3Aの通知メッセージの送信タイミングには、以下の3つのバリエーションが採用され得る。DC3Aは、通知メッセージに関する3つの送信タイミングについて、いずれを採用してもよい。
(1)即時通知
(2)単数合意通知
(3)複数合意通知
【0101】
図8は、DC3Aの通知メッセージの送信タイミングを説明するための模式図である。本図は横軸を時刻tとしたタイミングチャートであり、DC3Aが不正なMACを検出したタイミングを時刻t0としている。またDC3Aが、1番目のECUから不正なMACを検知した旨を通知するキープアライブ信号を受信したタイミングを時刻t1とし、2番目のECUから同様のキープアライブ信号を受信したタイミングを時刻t2とし、3番目のECUから同様のキープアライブ信号を受信したタイミングを時刻t3としている。なお本例では、図3及び図4等に示したネットワーク構成ではなく、より多くのECUがCANバスを介してDC3Aに接続されているネットワーク構成を想定している。
【0102】
(1)即時通知
DC3Aは、自身が受信したメッセージに付されたMACについて、MAC判定部31bが不正であると判定した後、速やかに通知メッセージを送信する。この場合にDC3Aは、自身のMAC判定部31bの判定のみに基づいて通知メッセージの送信を行う。通知メッセージを最も早いタイミングで送信することができる方法である。
【0103】
(2)単数合意通知
DC3Aは、自身が受信したメッセージに付されたMACについて、MAC判定部31bが不正であると判定した後、他のECUが定期的に送信するキープアライブ信号の受信を待つ。いずれかのECUから不正なMACを検出した旨の情報を含むキープアライブ信号を受信した場合、DC3Aは、通知の必要なECUに対して通知メッセージの送信を行う。ECUは、キープアライブ信号に、例えば検出した不正なMACのセキュリティレベル又はこのMACが付されていたメッセージのID等に対応付けて、前回のキープアライブ信号の送信後に不正なMACを検出した回数等の情報を含めて送信する。DC3Aは、いずれか1つのECUから、自身が不正なMACを検出したセキュリティレベルと同じセキュリティレベルについて、不正なMACを検出した旨の情報を含むキープアライブ信号を受信した場合に、このセキュリティレベルより低いセキュリティレベルが設定されたECUへ通知メッセージを送信する。DC3Aは、ECUからのキープアライブ信号の受信後、速やかに通知メッセージを送信する。DC3Aが自身の判断のみでなく、少なくとも他の1つのECUの判断を待って通知メッセージを送信する構成であり、通知メッセージの信頼性を高めることができる。
【0104】
(3)複数合意通知
DC3Aは、不正と判定したMACのセキュリティレベル以上のセキュリティレベルが設定された複数のECUについて、所定数(例えば過半数)のECUから不正なMACを検出した旨の情報を含むキープアライブ信号を受信した場合に、このセキュリティレベルより低いセキュリティレベルが設定されたECUへ通知メッセージを送信する。図示の例では、3つのECUからのキープアライブ信号を受信した後、DC3Aは速やかに通知メッセージを送信している。DC3Aが複数のECUからのキープアライブ信号を待って通知メッセージを送信することによって、通知メッセージの信頼性をより向上することができる。
【0105】
図9は、本実施の形態に係るECU4Aが行うメッセージの受信処理の手順を示すフローチャートである。なお、他のECU4B~4Iについても同様の処理を行っている。本実施の形態に係るECU4Aの処理部41の送受信処理部41cは、CAN通信部43にて他のECU4B,4C又はDC3Aからのメッセージを受信したか否かを判定する(ステップS1)。メッセージを受信していない場合(S1:NO)、送受信処理部41cは、メッセージを受信するまで待機する。メッセージを受信した場合(S1:YES)、送受信処理部41cは、受信したメッセージに付されたMACを取得する(ステップS2)。
【0106】
処理部41のMAC判定部41bは、ステップS2にて取得したMACが正しいものであるか否かを判定する(ステップS3)。このときにMAC判定部41bは、鍵記憶部42bに記憶された暗号鍵を用いて受信メッセージから生成したMACと、ステップS2にて取得したMACとが一致するか否かに応じて、MACの正否を判定する。MACが正しいものである場合(S3:YES)、送受信処理部41cは、メッセージの受信処理を終了する。
【0107】
MACが正しいものでない場合(S3:NO)、送受信処理部41cは、受信したメッセージを破棄する(ステップS4)。またECU4Aは、例えば記憶部42にセキュリティレベル毎のMACのエラー数を記憶している。送受信処理部41cは、ステップS3にて不正と判定したMACのセキュリティレベルに対応するエラー数を記憶し(ステップS5)、メッセージの受信処理を終了する。
【0108】
図10は、本実施の形態に係るECU4Aが行うキープアライブ信号の送信処理の手順を示すフローチャートである。本実施の形態に係るECU4Aの処理部41の通知処理部41dは、周期的に送信するキープアライブ(KA)信号の送信タイミングに至ったか否かを判定する(ステップS11)。キープアライブ信号の送信タイミングに至っていない場合(S11:NO)、通知処理部41dは、キープアライブ信号の送信タイミングに至るまで待機する。キープアライブ信号の送信タイミングに至った場合(S11:YES)、通知処理部41dは、記憶部42に記憶したセキュリティレベル毎のエラー数を参照することにより、MACに関するエラーの有無を判定する(ステップS12)。
【0109】
エラーが発生していない場合(S12:NO)、即ち前回のキープアライブ信号の送信から不正なMACを検出していない場合、通知処理部41dは、不正なMACに関する情報を含まない、通常のキープアライブ信号を送信する必要がある。そこで、処理部41のMAC生成部41aは、通常のキープアライブ信号についてMACを生成して付与する(ステップS15)。通知処理部41dは、MACが付与されたキープアライブ信号をCAN通信部43にて送信し(ステップS16)、処理を終了する。
【0110】
エラーが発生していた場合(S12:YES)、通知処理部41dは、例えば記憶部42に記憶していたセキュリティレベル毎のエラー数等のような、不正なMACの検出に係る情報をキープアライブ信号に付与する(ステップS13)。また通知処理部41dは、記憶部42に記憶していたセキュリティレベル毎のエラー数を初期化する(ステップS14)。その後、MAC生成部41aは、不正MACの情報が付与されたキープアライブ信号についてMACを生成して付与する(ステップS15)。通知処理部41dは、MACが付与されたキープアライブ信号をCAN通信部43にて送信し(ステップS16)、処理を終了する。
【0111】
図11は、本実施の形態に係るDC3Aが行う通知メッセージの送信処理の手順を示すフローチャートであり、上記の(1)即時通知の場合の手順である。本実施の形態に係るDC3Aの処理部31の送受信処理部31cは、CAN通信部33にてECU4A~4Cからのメッセージを受信したか否かを判定する(ステップS21)。メッセージを受信していない場合(S21:NO)、送受信処理部31cは、メッセージを受信するまで待機する。メッセージを受信した場合(S21:YES)、送受信処理部31cは、受信したメッセージに付されたMACを取得する(ステップS22)。
【0112】
処理部31のMAC判定部31bは、ステップS22にて取得したMACが正しいものであるか否かを判定する(ステップS23)。このときにMAC判定部31bは、図6に示したテーブルを参照することによって、受信したメッセージに付されたMACの正否判定に用いるべき暗号鍵を判断する。MAC判定部31bは、鍵記憶部32bに記憶された暗号鍵を用いて受信メッセージから生成したMACと、ステップS22にて取得したMACとが一致するか否かに応じて、MACの正否を判定する。MACが正しいものである場合(S23:YES)、送受信処理部41cは、通知メッセージを送信することなく、処理を終了する。
【0113】
MACが正しいものでない場合(S23:NO)、送受信処理部41cは、受信したメッセージを破棄する(ステップS24)。次いで処理部31の通知処理部31dは、不正なMACを検出した旨を通知する通知メッセージを生成する(ステップS25)。通知メッセージには、例えば不正と判定したMACのセキュリティレベル、又は、このMACが付されていたメッセージのID等の情報が含まれる。処理部31のMAC生成部31aは、ステップS25にて生成した通知メッセージに対してMACを生成して付与する(ステップS26)。このときにMAC生成部31aは、通知メッセージを送信すべきECU4A~4Cについて記憶している通知用の鍵情報を鍵記憶部32bから読み出し、ECU4A~4C毎にそれぞれ異なるMACを生成する。このため、複数のECU4A~4Cに対して通知メッセージを送信する場合には、異なるMACが付された複数の通知メッセージが生成される。通知処理部31dは、MACが付された通知メッセージをCAN通信部33にて送信し(ステップS27)、処理を終了する。
【0114】
図12は、本実施の形態に係るDC3Aが行う通知メッセージの送信処理の手順を示すフローチャートであり、上記の(2)単数合意通知の場合の手順である。本実施の形態に係るDC3Aの処理部31の送受信処理部31cは、CAN通信部33にてECU4A~4Cからのメッセージを受信したか否かを判定する(ステップS31)。メッセージを受信していない場合(S31:NO)、送受信処理部31cは、メッセージを受信するまで待機する。メッセージを受信した場合(S31:YES)、送受信処理部31cは、受信したメッセージに付されたMACを取得する(ステップS32)。処理部31のMAC判定部31bは、ステップS32にて取得したMACが正しいものであるか否かを判定する(ステップS33)。MACが正しいものである場合(S33:YES)、送受信処理部41cは、通知メッセージを送信することなく、処理を終了する。MACが正しいものでない場合(S33:NO)、送受信処理部31cは、受信したメッセージを破棄する(ステップS34)。
【0115】
その後、通知処理部31dは、ECU4A~4Cから送信されるキープアライブ信号をCAN通信部33にて受信したか否かを判定する(ステップ35)。キープアライブ信号を受信した場合(S35:YES)、通知処理部31dは、受信したキープアライブ信号に付されたMACが正しいものであることを確認した後、受信したキープアライブ信号に不正なMACの検出に係る情報が付されていたか否かを判定する(ステップS36)。キープアライブ信号に不正MACの情報が付されていた場合(S36:YES)、通知処理部31dは、キープアライブ信号に付された情報に示される不正MACの判定結果と、ステップS33にて行った自身の不正MACの判定結果とが一致するか否かを判定する(ステップS37)。
【0116】
ECU4A~4Cからキープアライブ信号を受信していない場合(S35:NO)、受信したキープアライブ信号に不正MACの情報が付されていない場合(S36:NO)、又は、キープアライブ信号に付された情報に示される判定結果が自身の判定結果と一致しない場合(S37:NO)、通知処理部31dは、ステップS35へ処理を戻し、自身の判定結果と一致する不正MACの情報が付されたキープアライブ信号を受信するまで待機する。
【0117】
キープアライブ信号に付された情報に示される判定結果が自身の判定結果に一致する場合(S37:YES)、通知処理部31dは、不正なMACを検出した旨を通知する通知メッセージを生成し、この通知メッセージに通知用の鍵情報を用いたMACを付して、MACが付された通知メッセージをCAN通信部33にて送信し(ステップS38)、処理を終了する。
【0118】
なお、上記(3)複数合意通知の場合の通知メッセージの送信処理の手順では、上記のステップS35~S37に示したキープアライブ信号に関する処理を、複数のECU4A~4Cについて繰り返し行えばよい。この場合のフローチャートの図示、及び、手順の詳細な説明は省略する。
【0119】
以上の構成の本実施の形態に係る車載通信システムは、共通のCANバスにDC3A及び複数のECU4A~4Cが接続される。複数のECU4A~4Cは、複数のセキュリティレベル(レベル1,2)に分類され、セキュリティレベル毎に共通鍵(鍵a,b)が定められる。各ECU4A~4Cは、自身のセキュリティレベルに応じて一又は複数の鍵a,bを鍵記憶部42bに記憶しておき、記憶した鍵a,bを用いて生成したMACをメッセージに付して送信すると共に、受信したメッセージに付されたMACの正否を判定する。異なる鍵a,bを用いて生成されたMACが付されたメッセージが共通のCANバス上で送受信されるため、各ECU4A~4Cは、自身が有する鍵a,bと同じ鍵a,bで生成されたMACが付されたメッセージの正否を判定できるが、自身が有しない鍵a,bで生成されたMACが付されたメッセージに成否は判定できない。
【0120】
DC3Aは、各セキュリティレベルの鍵a,bを鍵記憶部32bに記憶しておき、受信したメッセージに付されたMACに対応する鍵a,bを用いて判定を行う。DC3Aは、共通のCANバスを介して送受信される全てのメッセージについて、メッセージに付されたMACの正否を判定できる。DC3Aは、不正なMACが付されたメッセージを受信した場合、このMACの判定に用いた鍵a,bを有していないECU4A~4Cに対して通知メッセージを送信する。
【0121】
これにより各ECU4A~4Cは、自身が記憶している鍵a,bでMACの正否を判定できるメッセージについては自身で判定を行い、自身で判定できないメッセージについてはDC3Aからの通知メッセージを受信することで、共通のCANバスに不正なメッセージが送信されたことを判断できる。よって共通のCANバスに異なるセキュリティレベルのECU4A~4Cが混在することができる。
【0122】
また本実施の形態に係る車載通信システムでは、メッセージに対して複数のMACを付すことが可能である。ECU4A~4Cは、自身のセキュリティレベルに対して定められた鍵a,bと、自身のセキュリティレベルより低いセキュリティレベルに対して定められた鍵a,bとを記憶しておく。複数の鍵a,bを記憶しているECU4A~4Cは、この複数の鍵a,bを用いて複数のMACを生成し、生成した複数のMACをメッセージに付して送信する。これによりECU4A~4Cは、自身と同じセキュリティレベルのECU4A~4Cと、これより低いセキュリティレベルのECU4A~4Cとにメッセージを送信することが可能となる。
【0123】
また本実施の形態に係る車載通信システムでは、複数のMACが付されたメッセージを受信したECU4A~4Cは、自身が記憶している鍵a,bを用いて正否を判定可能な少なくとも1つのMACについて正否判定を行う。これによりECU4A~4Cは、自身のセキュリティレベルより高いセキュリティレベルのECU4A~4Cが送信したメッセージであっても、自身が記憶している鍵a,bで正否を判定可能なMACが付されたメッセージであれば、メッセージの正否を判定して受信することが可能となる。よって、共通のCANバスに接続された複数のECU4A~4Cは、異なるセキュリティレベルのECU4A~4Cを含む複数のECU4A~4Cに対して、メッセージの一斉送信を行うことが可能である。
【0124】
また本実施の形態に係る車載通信システムでは、受信したメッセージに付されたMACが正しくないと判定した場合、各ECU4A~4CはDC3Aに対する通知を、キープアライブ信号を用いて行う。DC3Aは、メッセージに付されたMACが正しくないと自身で判断し、且つ、ECU4A~4Cからの通知を受けた場合に、不正なMACを検出した旨の通知メッセージをECU4A~4Cに対して送信する。これによりDC3AからECU4A~4Cへの通知メッセージの信頼性を高めることができる。またキープアライブ信号を用いてECU4A~4CからDC3Aへの通知を行うことにより、ECU4A~4CからDC3Aへの通知が通常のメッセージ送受信を阻害することを防止できる。DC3Aは、キープアライブ信号に含まれる情報を基に通信に関する異常を検出することができ、またキープアライブ信号が受信されない場合にも何らかの異常の発生を検出することができる。
【0125】
なお本実施の形態においては、DC3AからECU4A~4Cへの通知メッセージに付すMACの生成及び判定のために、各ECU4A~4Cが個別の鍵α,β,γを記憶する構成としたが、これに限るものではない。DC3A及びECU4A~4Cが通知メッセージを送受信するために特別な暗号鍵を有していない構成であってもよい。また通知メッセージは、各ECU4A~4Cへ個別に送信されるのではなく、全ECU4A~4Cに一斉送信されてもよい。
【0126】
また、図示した車載通信システムの装置構成、ネットワーク構成及びシステム構成等は、一例であって、これに限るものではない。また図6のテーブルに示したセキュリティレベルの分類及び共通鍵の割り当て等は、一例であって、これに限るものではない。
【0127】
<実施の形態2>
図13は、実施の形態2に係るDC3A及びECU4A~4Cによるメッセージ送受信の一例を示す模式図である。実施の形態2に係る車載通信システムでは、各ECU4A~4Cは自身のセキュリティレベルに応じた1つの鍵a,bのみを記憶し、自身のセキュリティレベルより低いセキュリティレベルの鍵a,bを記憶しない。各ECU4A~4Cは、自身が記憶している1つの鍵a,bを用いてMACを生成し、1つのMACを付したメッセージを送信する。図示の例では、セキュリティレベル2に対応する鍵bを記憶したECU4Aは、鍵bを用いたMAC(b)を生成し、メッセージにMAC(b)を付して送信する。このメッセージは、鍵bを記憶していないECU4B,4Cでは受信されない。DC3Aは、全セキュリティレベルの鍵a,bを記憶しており、受信したメッセージに付されたMAC(b)に対応する鍵bを用いて、このメッセージの正否を判定することができる。
【0128】
実施の形態2に係る車載通信システムでは、ECU4A~4Cは、自身と同じ鍵a,bを有していない他のECU4A~4Cとの間で直接的なメッセージの送受信を行うことができない。そこで実施の形態2に係るDC3Aは、異なるセキュリティレベル間でのメッセージを中継する処理を行う。図示の例では、ECU4AからMAC(b)が付されたメッセージを受信したDC3Aは、自身が記憶している鍵bを用いてこのメッセージが正当なものであると判定した後、自身が記憶している鍵aを用いてこのメッセージにMAC(a)を生成して付与し、MAC(a)を付したメッセージをECU4B,4Cへ送信する。ECU4B,4Cは、自身が記憶している鍵aを用いて、DC3Aからのメッセージに付されたMAC(a)の正否を判定し、このメッセージを受信することができる。
【0129】
DC3Aは、受信したメッセージに付されたMACが不正と判定した場合に通知メッセージを送信する。実施の形態1においては、不正なMACのセキュリティレベルより低いセキュリティレベルのECU4A~4Cに対してDC3Aが通知メッセージを送信した。これに対して実施の形態2に係るDC3Aは、不正なMACのセキュリティレベルとは異なるセキュリティレベルのECU4A~4Cに対して通知メッセージを送信する。図示の例では、例えばECU4Bが送信したメッセージに付されたMAC(a)が不正であると判定した場合、DC3Aは、MAC(a)のセキュリティレベル1とは異なるセキュリティレベル2のECU4A、即ちMAC(a)の判定に必要な鍵aを有していないECU4Aに対して通知メッセージを送信する。
【0130】
図14は、実施の形態2に係るDC3Aが行う処理の手順を示すフローチャートである。実施の形態2に係るDC3Aの処理部31の送受信処理部31cは、CAN通信部33にてECU4A~4Cからのメッセージを受信したか否かを判定する(ステップS41)。メッセージを受信していない場合(S41:NO)、送受信処理部31cは、メッセージを受信するまで待機する。メッセージを受信した場合(S41:YES)、送受信処理部31cは、受信したメッセージに付されたMACを取得する(ステップS42)。
【0131】
処理部31のMAC判定部31bは、ステップS42にて取得したMACが正しいものであるか否かを判定する(ステップS43)。MACが正しいものでない場合(S43:NO)、送受信処理部41cは、受信したメッセージを破棄する(ステップ44)。次いで処理部31の通知処理部31dは、不正なMACを検出した旨を通知する通知メッセージを生成する(ステップS45)。処理部31のMAC生成部31aは、ステップS45にて生成した通知メッセージに大したMACを生成して付与する(ステップS46)。通知処理部31dは、MACが付された通知メッセージをCAN通信部33にて送信し(ステップS47)、処理を終了する。
【0132】
MACが正しいものである場合(S43:YES)、送受信処理部41cは、正しいと判定したMACとは異なるセキュリティレベルの暗号鍵を鍵記憶部32bから読み出して、受信したメッセージに対する異なるセキュリティレベルのMACを生成する(ステップS48)。送受信処理部41cは、受信したメッセージに付されたMACを削除し、ステップS48にて生成したMACをメッセージに付すことによって、メッセージのMACを交換する(ステップS49)。送受信処理部41cは、MACを交換したメッセージをCAN通信部33にて送信することで、異なるセキュリティレベル間でのメッセージを中継し(ステップS50)、処理を終了する。
【0133】
以上の構成の実施の形態2に係る車載通信システムでは、メッセージに対して1つのMACが付される。ECU4A~4Cは、自身のセキュリティレベルに対して定められた1つの鍵a,bを記憶しておき、この鍵a,bを用いて1つのMACを生成し、生成した1つのMACをメッセージに付して送信する。これにより、各ECU4A~4Cの構成を容易化することができる。また異なるセキュリティレベルのECU4A~4Cを分離して扱うことが容易化される。
【0134】
また実施の形態2に係るDC3Aは、ECU4A~4Cが送信したメッセージを受信してMACの正否を判定し、正しいと判定したメッセージ対して判定に用いた鍵a,bとは異なる鍵a,bを用いて生成したMACを付し、新たなMACが付されたメッセージをCANバスに対して送信する。これによりDC3Aは、セキュリティレベルが異なるECU4A~4C間のメッセージの送受信を中継することが可能となる。各ECU4A~4Cは、DC3Aを介して、CANバスに接続された全てのECU4A~4Cに対してメッセージを送信することが可能となる。
【0135】
なお、実施の形態2に係る車載通信システムのその他の構成は、実施の形態1に係る車載通信システムと同様であるため、同様の箇所には同じ符号を付し、詳細な説明を省略する。
【0136】
<実施の形態3>
図15は、実施の形態3に係るDC303A及びECU304A~304Cによるメッセージ送受信の一例を示す模式図である。実施の形態3に係る車載通信システムでは、共通のCANバスに接続された複数のECU304A~304Cは、それぞれ異なる鍵x~zを1つ記憶している。このCANバスに接続されたDC303Aは、ECU304A~304Cの鍵x~zを記憶している。各ECU304A~304Cは、自身が記憶している1つの鍵x~zを用いてMACを生成し、1つのMACを付したメッセージを送信する。図示の例では、鍵xを記憶したECU304Aは、鍵xを用いたMAC(x)を生成し、メッセージにMAC(x)を付して送信する。
【0137】
実施の形態3に係る車載通信システムでは、各ECU304A~304Cは、受信したメッセージに付されたMACの正否を判定しない。このため、ECU403Aが送信したMAC(x)が付されたメッセージは、鍵xを記憶していないECU304B,304Cでも受信することが可能である。ECU304B,304Cは、受信したメッセージに付されたMAC(x)の正否を判定することなく、このメッセージを自身の処理に用いる。
【0138】
実施の形態3に係る車載通信システムでは、ECU403A~403Cが送信したメッセージに付されたMACの正否判定は、DC303Aで行われる。実施の形態3に係る車載通信システムにて送受信されるメッセージは、CANの通信プロトコルのデータフレームの構成が採用され得る。CANのデータフレームは、例えばスタートオブフレーム、アービトレーションフィールド、コントロールフィールド、データフィールド、CRCフィールド、ACKフィールド及びエンドオブフレーム等の複数のフィールドで構成されている。MACは、例えばデータフィールドの一部に格納される。
【0139】
図16は、実施の形態3に係るDC303Aによるメッセージの破棄を説明するための模式図である。実施の形態3に係るDC303Aは、いずれかのECU304A~304CによるCANバスに対するメッセージの送信を監視している。メッセージの送信が開始された後、DC303Aは、データフィールドの送信が完了した時点で、データフィールドに含まれるMACの正否を判定する。DC303Aは、MACが不正であると判定した場合、このメッセージの送信が完了する前に、CANの通信プロトコルに規定されたエラーフレームを送信することによって、このメッセージの送信を阻害する。これにより不正なMACが付されたメッセージの送信は中断され、ECU304A~304Cではこのメッセージが破棄される。
【0140】
なお実施の形態3に係るDC303Aが行うMACの判定及びエラーフレームの送信等の処理は、ECU304A~304Cによりメッセージ送信が完了する前に実施される必要がある。このためこれらの処理は、DC303Aの処理部31が行うのではなく、CAN通信部33が行うことが好ましい。
【0141】
また、DC303AがECU304A~304Cに対してメッセージを破棄させる方法は、エラーフレームの送信に限らない。例えばDC303Aは、メッセージに含まれる所定ビットのデータを反転させる信号をCANバスに対して出力することで、ECU304A~304Cに破棄させる構成としてもよい。DC303Aは、メッセージの送信が完了する前に、このメッセージをECU304A~304Cが正当なメッセージと判断できないよう変化させることによって、ECU304A~304Cにメッセージを破棄させることができる。
【0142】
図17は、実施の形態3に係るDC303Aが行う処理の手順を示すフローチャートである。実施の形態3に係るDC303Aは、CANバスに接続されたいずれかのECU304A~304Cによるメッセージ送信の有無を判定する(ステップS61)。メッセージ送信がなされていない場合(S61:NO)、DC303Aは、メッセージ送信がなされるまで待機する。メッセージ送信がなされている場合(S61:YES)、DC303Aは、このメッセージに含まれるMACの送信が終了したか否かを判定する(ステップS62)。MACの送信が終了していない場合(S62:NO)、DC303Aは、MACの送信が終了するまで待機する。
【0143】
MACの送信が終了した場合(S62:YES)、DC303Aは、送信中のメッセージについてMACが正しいか否かの判定を行う(ステップS63)。MACが正しくないと判定した場合(S63:NO)、DC303Aは、このメッセージの送信が完了する前に、CANバスに対してエラーフレームを送信し(ステップS64)、処理を終了する。MACが正しいと判定した場合(S63:YES)、DC303Aは、このメッセージを受信して(ステップS65)、処理を終了する。
【0144】
以上の構成の実施の形態3に係る車載通信システムは、共通のCANバスに接続された複数のECU304A~304Cに対し、個別の鍵x,y,zが定められる。ECU304A~304Cは、自身に対して定められた鍵x,y,zを記憶しておき、この鍵x,y,zを用いて生成したMACをメッセージに付して送信する。DC303Aは、共通のCANバスに接続された各ECU304A~304Cに対して定められた鍵x,y,zを記憶しておき、CANバスに送信されたメッセージに付されたMACの正否を、記憶したいずれかの鍵x,y,zを用いて判定する。これにより、共通のCANバスに接続された複数のECU304A~304Cがセキュリティ的に個別に分離され、各ECU304A~304CがDC303Aとそれぞれ個別にメッセージの送受信を行う態様となるため、セキュリティ性を高めることができる。
【0145】
また実施の形態3に係る車載通信システムでは、各ECU304A~304Cが自身の鍵x,y,zを用いて、受信したメッセージに付されたMACの正否を判定する。DC303Aは、受信したメッセージに付されたMACが正しいと判定した場合、判定に用いた鍵x,y,zとは異なる鍵x,y,zを用いてMACを生成し、生成したMACを付したメッセージをCANバスへ送信する。これによりDC303Aは、ECU304A~304Cの間のメッセージ送受信を中継することができる。ECU304A~304Cは、DC303Aを介することで他のECU304A~304Cとの間でメッセージを送受信することができる。
【0146】
また実施の形態3に係る車載通信システムでは、ECU304A~304Cのメッセージ送信完了前に、DC303Aがこのメッセージに付されたMACの正否を判定する。DC303Aは、MACが正しくないと判定した場合、このメッセージの送信完了前にエラーフレームを送信することによって、ECU304A~304Cに対してこのメッセージを破棄させる。これにより各ECU304A~304Cは、メッセージに付されたMACの正否を判定する必要がなく、DC303Aにより破棄させられなかったメッセージについてMACの正否を判定することなく受信してその後の処理に用いることができる。
【0147】
なお実施の形態3においては、ECU304A~304Cがメッセージに付されたMACの正否を判定せず、DC303AがMACの正否を判定して不正なメッセージを破棄させる構成としたが、これに限るものではない。実施の形態1,2と同様に、各ECU304A~304C及びDC303AがMACの正否を判定し、不正なMACを検出した場合にDC303AがECU304A~304Cへ通知メッセージを送信する構成であってもよい。また逆に、実施の形態1,2に係る車載通信システムもDC3Aが通知メッセージを送信するのではなく、メッセージの送信完了前にエラーフレームを送信することによって不正なメッセージを破棄させる構成としてもよい。
【0148】
なお、実施の形態3に係る車載通信システムのその他の構成は、実施の形態1に係る車載通信システムと同様であるため、同様の箇所には同じ符号を付し、詳細な説明を省略する。
【0149】
今回開示された実施形態はすべての点で例示であって、制限的なものではないと考えられるべきである。本発明の範囲は、上記した意味ではなく、特許請求の範囲によって示され、特許請求の範囲と均等の意味及び範囲内でのすべての変更が含まれることが意図される。
【符号の説明】
【0150】
1 車両
2 CGW
3A~3C DC
4A~4I ECU
31 処理部
31a MAC生成部
31b MAC判定部
31c 送受信処理部
31d 通知処理部
32 記憶部
32a プログラム
32b 鍵記憶部
33 CAN通信部
34 イーサネット通信部
41 処理部
41a MAC生成部
41b MAC判定部
41c 送受信処理部
41d 通知処理部
42 記憶部
42a プログラム
42b 鍵記憶部
43 CAN通信部
98,99 記録媒体
303A DC
304A~304C ECU
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14
図15
図16
図17