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

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

▶ トヨタ自動車株式会社の特許一覧

特許7380530車両通信システム、通信方法及び通信プログラム
<>
  • 特許-車両通信システム、通信方法及び通信プログラム 図1
  • 特許-車両通信システム、通信方法及び通信プログラム 図2
  • 特許-車両通信システム、通信方法及び通信プログラム 図3
  • 特許-車両通信システム、通信方法及び通信プログラム 図4
  • 特許-車両通信システム、通信方法及び通信プログラム 図5
  • 特許-車両通信システム、通信方法及び通信プログラム 図6
  • 特許-車両通信システム、通信方法及び通信プログラム 図7
  • 特許-車両通信システム、通信方法及び通信プログラム 図8
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-11-07
(45)【発行日】2023-11-15
(54)【発明の名称】車両通信システム、通信方法及び通信プログラム
(51)【国際特許分類】
   H04L 9/32 20060101AFI20231108BHJP
   B60R 16/023 20060101ALI20231108BHJP
【FI】
H04L9/32 200A
B60R16/023 J
【請求項の数】 6
(21)【出願番号】P 2020189829
(22)【出願日】2020-11-13
(65)【公開番号】P2022078868
(43)【公開日】2022-05-25
【審査請求日】2022-10-18
(73)【特許権者】
【識別番号】000003207
【氏名又は名称】トヨタ自動車株式会社
(74)【代理人】
【識別番号】110001519
【氏名又は名称】弁理士法人太陽国際特許事務所
(72)【発明者】
【氏名】坂野 将秀
【審査官】中里 裕正
(56)【参考文献】
【文献】特開2020-137009(JP,A)
【文献】特開2013-048374(JP,A)
【文献】特開2017-168907(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
H04L 9/32
B60R 16/023
(57)【特許請求の範囲】
【請求項1】
複数の制御装置が相互に通信を行う車両通信システムであって、
送信側の前記制御装置である送信装置及び受信側の前記制御装置である受信装置は、暗号鍵及び所定の認証情報を記憶したメモリと、前記メモリに接続されたプロセッサ、とをそれぞれ含み、
前記送信装置の前記プロセッサは、
前記送信装置の前記メモリに記憶されている暗号鍵とメッセージとに基づいて第一の認証情報を生成し、
前記送信装置の前記メモリに記憶されている暗号鍵に異常がない場合、生成された前記第一の認証情報及び前記メッセージを前記受信装置に送信し、
前記送信装置の前記メモリに記憶されている暗号鍵に異常がある場合、前記送信装置の前記メモリに記憶されている前記所定の認証情報及び前記メッセージを前記受信装置に送信し、
前記受信装置の前記プロセッサは、
前記受信装置の前記メモリに記憶されている暗号鍵と前記送信装置から受信した前記メッセージとに基づいて第二の認証情報を生成し、
前記送信装置から受信した前記第一の認証情報と生成された前記第二の認証情報とを照合して前記メッセージを認証し、
前記受信装置の起動後、前記認証に一度も成功していない場合で、かつ前記送信装置から受信した認証情報が前記受信装置の前記メモリに記憶されている前記所定の認証情報と一致している場合に、前記認証の結果に関わらず受信している前記メッセージを受け付ける
車両通信システム。
【請求項2】
前記受信装置の前記プロセッサは、
今回の受信における前記認証に失敗し、かつ前記受信装置の起動後、前記認証に一度でも成功している場合、受信した前記メッセージを破棄する
請求項1に記載の車両通信システム。
【請求項3】
前記受信装置の前記プロセッサは、
前記認証に失敗し、かつ前記送信装置から受信した前記第一の認証情報と前記所定の認証情報とが不一致の場合、受信した前記メッセージを破棄する
請求項1又は2に記載の車両通信システム。
【請求項4】
前記送信装置の前記プロセッサは、
前記送信装置の起動から所定期間において、前記送信装置の前記メモリに記憶されている暗号鍵に異常がある場合、生成された前記第一の認証情報を前記送信装置の前記メモリに記憶されている前記所定の認証情報に書き換える
請求項1~3の何れか1項に記載の車両通信システム。
【請求項5】
暗号鍵及び所定の認証情報を記憶した複数の制御装置が相互に通信を行う車両通信システムにおける通信方法であって、
送信側の前記制御装置である送信装置は、
前記送信装置に記憶されている暗号鍵とメッセージとに基づいて第一の認証情報を生成し、
前記送信装置に記憶されている暗号鍵に異常がない場合、生成された前記第一の認証情報及び前記メッセージを受信側の前記制御装置である受信装置に送信し、
前記送信装置に記憶されている暗号鍵に異常がある場合、前記送信装置に記憶されている前記所定の認証情報及び前記メッセージを前記受信装置に送信し、
前記受信装置は、
前記受信装置に記憶されている暗号鍵と前記送信装置から受信した前記メッセージとに基づいて第二の認証情報を生成し、
前記送信装置から受信した前記第一の認証情報と生成された前記第二の認証情報とを照合して前記メッセージを認証し、
前記受信装置の起動後、前記認証に一度も成功していない場合で、かつ前記送信装置から受信した認証情報が前記受信装置に記憶されている前記所定の認証情報と一致している場合に、前記認証の結果に関わらず受信している前記メッセージを受け付ける
処理を各前記制御装置のコンピュータが実行する通信方法。
【請求項6】
暗号鍵及び所定の認証情報を記憶した複数の制御装置が相互に通信を行う車両通信システムにおいて、各前記制御装置の各々のコンピュータに実行させる通信プログラムであって、
送信側の前記制御装置である送信装置では、
前記送信装置に記憶されている暗号鍵とメッセージとに基づいて第一の認証情報を生成し、
前記送信装置に記憶されている暗号鍵に異常がない場合、生成された前記第一の認証情報及び前記メッセージを受信側の前記制御装置である受信装置に送信し、
前記送信装置に記憶されている暗号鍵に異常がある場合、前記送信装置に記憶されている前記所定の認証情報及び前記メッセージを前記受信装置に送信する処理を実行させ、
前記受信装置では、
前記受信装置に記憶されている暗号鍵と前記送信装置から受信した前記メッセージとに基づいて第二の認証情報を生成し、
前記送信装置から受信した前記第一の認証情報と生成された前記第二の認証情報とを照合して前記メッセージを認証し、
前記受信装置の起動後、前記認証に一度も成功していない場合で、かつ前記送信装置から受信した認証情報が前記受信装置に記憶されている前記所定の認証情報と一致している場合に、前記認証の結果に関わらず受信している前記メッセージを受け付ける処理を実行させる
処理を各コンピュータに実行させる通信プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、車両通信システム、通信方法及び通信プログラムに関する。
【背景技術】
【0002】
特許文献1には、複数のECUが通信を行う通信システムが開示されている。当該通信システムでは、送信側のECUにおいて、所持する暗号鍵に基づいてメッセージからMAC(Message Authentication Code)を生成し、メッセージと生成されたMACとが送信される。一方、メッセージ及びMACを受信した受信側のECUでは、受信したメッセージと所持する暗号鍵に基づいて検証用MACを生成し、受信したMACと生成された検証用MACとを照合してメッセージの認証を行う。
【0003】
また非特許文献1には、複数のECUが通信を行う場合の安全性に係る仕様が規定されている。当該仕様では、異なる暗号鍵が使用される場合など送信側のECUにおいて暗号鍵に異常が生じている場合に、予め記憶されている所定の値をMACに使用することが記載されている。
【先行技術文献】
【特許文献】
【0004】
【文献】特開2018-074435号公報
【非特許文献】
【0005】
【文献】Specification of Secure Onboard Communication、AUTOSAR、Release R19-11
【発明の概要】
【発明が解決しようとする課題】
【0006】
特許文献1の通信システムにおいて、送信側のECUを交換して暗号鍵が更新されておらず、マスタECUとは異なる場合、送信側のECUによりメッセージを暗号化して送信しても、受信側のECUではメッセージを復号できない。このような場合、特許文献1の通信システムに非特許文献1の技術を適用して、一時的な代替措置として、送信側のECUは所定の値をMACに適用してメッセージと共に送信することが考えられる。受信側のECUでは、受信したMACと所定のMACが一致した場合、暗号鍵の更新を要する鍵異常であると検出して、一時的にメッセージを受け付けられる。しかし、暗号鍵が更新された後でも、所定のMACによりメッセージが受け付けられた場合、暗号鍵の更新を要する鍵異常が生じていると誤検出して、破棄すべきメッセージを受け付けてしまう虞がある。
【0007】
本発明は、暗号鍵の更新が行われたにもかかわらず、暗号鍵の更新を要する鍵異常が生じていると誤検出して、破棄すべきメッセージを受け付けることを抑制する車両通信システムを提供することを目的とする。
【課題を解決するための手段】
【0008】
請求項1に記載の車両通信システムは、複数の制御装置が相互に通信を行う車両通信システムであって、送信側の前記制御装置である送信装置及び受信側の前記制御装置である受信装置は、暗号鍵及び所定の認証情報を記憶したメモリと、前記メモリに接続されたプロセッサ、とをそれぞれ含み、前記送信装置の前記プロセッサは、前記送信装置の前記メモリに記憶されている暗号鍵とメッセージとに基づいて第一の認証情報を生成し、前記送信装置の前記メモリに記憶されている暗号鍵に異常がない場合、生成された前記第一の認証情報及び前記メッセージを前記受信装置に送信し、前記送信装置の前記メモリに記憶されている暗号鍵に異常がある場合、前記送信装置の前記メモリに記憶されている前記所定の認証情報及び前記メッセージを前記受信装置に送信し、前記受信装置の前記プロセッサは、前記受信装置の前記メモリに記憶されている暗号鍵と前記送信装置から受信した前記メッセージとに基づいて第二の認証情報を生成し、前記送信装置から受信した前記第一の認証情報と生成された前記第二の認証情報とを照合して前記メッセージを認証し、前記受信装置の起動後、前記認証に一度も成功していない場合で、かつ前記送信装置から受信した認証情報が前記受信装置の前記メモリに記憶されている前記所定の認証情報と一致している場合に、前記認証の結果に関わらず受信している前記メッセージを受け付ける。
【0009】
請求項1に記載の車両通信システムは、相互に通信を行う複数の制御装置を含んで構成されている。送信側の制御装置である送信装置及び受信側の制御装置である受信装置は、それぞれ、メモリに暗号鍵及び所定の認証情報が記憶されている。送信装置のプロセッサは、暗号鍵とメッセージとに基づいて第一の認証情報を生成し、送信装置のメモリに記憶されている暗号鍵に異常がない場合、生成された第一の認証情報及びメッセージを受信装置に送信する。また、送信装置のプロセッサは、送信装置のメモリに記憶されている暗号鍵に異常がある場合、送信装置のメモリに記憶されている所定の認証情報及びメッセージを受信装置に送信する。ここで、「暗号鍵に異常がある場合」とは、記憶されている暗号鍵が本来第一の認証情報を生成するために使用する暗号鍵とは異なる場合であって、例えば、鍵値が異なる場合をいう。
【0010】
一方、受信装置のプロセッサは、受信装置のメモリに記憶されている暗号鍵と送信装置から受信したメッセージとに基づいて第二の認証情報を生成し、送信装置から受信した第一の認証情報と生成された第二の認証情報とを照合してメッセージを認証する。そして、受信装置のプロセッサは、受信装置の起動後、認証に一度も成功していない場合で、かつ受信した第一の認証情報と所定の認証情報とが一致している場合に、認証の結果に関わらず受信しているメッセージを受け付ける。
【0011】
当該車両通信システムでは、送信側の制御装置を交換した際に暗号鍵の更新が行われなかった場合、受信装置は認証には失敗する。ただし、暗号鍵の更新が行われて認証に成功するまでは、受信した認証情報が受信装置のメモリに記憶されている所定の認証情報と一致している限り、認証の結果に関わらず受信しているメッセージを受け付ける。他方、一旦、暗号鍵が更新されて認証に成功した場合は、その後、受信した認証情報が受信装置のメモリに記憶されている所定の認証情報と一致したとしても、受信しているメッセージを受け付けない。そのため、当該車両通信システムによれば、暗号鍵の更新が行われたにもかかわらず、暗号鍵の更新を要する鍵異常が生じていると誤検出して、破棄すべきメッセージを受け付けることが抑制される。
【0012】
請求項2に記載の車両通信システムは、請求項1に記載の車両通信システムにおいて、前記受信装置の前記プロセッサは、今回の受信における前記認証に失敗し、かつ前記受信装置の起動後、前記認証に一度でも成功している場合、受信した前記メッセージを破棄する。
【0013】
請求項2に記載の車両通信システムによれば、暗号鍵の更新が行われた後のセキュリティを確保することができる。
【0014】
請求項3に記載の車両通信システムは、請求項1又は2に記載の車両通信システムにおいて、前記受信装置の前記プロセッサは、前記認証に失敗し、かつ前記送信装置から受信した前記第一の認証情報と前記所定の認証情報とが不一致の場合、受信した前記メッセージを破棄する。
【0015】
請求項3に記載の車両通信システムによれば、暗号鍵の更新を要する鍵異常が生じていない場合にメッセージを破棄することで、セキュリティを確保することができる。
【0016】
請求項4に記載の車両通信システムは、請求項1~3の何れか1項に記載の車両通信システムにおいて、前記送信装置の前記プロセッサは、前記送信装置の起動から所定期間において、前記送信装置の前記メモリに記憶されている暗号鍵に異常がある場合、生成された前記第一の認証情報を前記送信装置の前記メモリに記憶されている前記所定の認証情報に書き換える。
【0017】
請求項4に記載の車両通信システムによれば、送信装置において暗号鍵に異常がある場合に、送信装置に暗号鍵の異常を示唆することができる。
【0018】
請求項5に記載の通信方法は、暗号鍵及び所定の認証情報を記憶した複数の制御装置が相互に通信を行う車両通信システムにおける通信方法であって、送信側の前記制御装置である送信装置は、前記送信装置に記憶されている暗号鍵とメッセージとに基づいて第一の認証情報を生成し、前記送信装置に記憶されている暗号鍵に異常がない場合、生成された前記第一の認証情報及び前記メッセージを受信側の前記制御装置である受信装置に送信し、前記送信装置に記憶されている暗号鍵に異常がある場合、前記送信装置に記憶されている前記所定の認証情報及び前記メッセージを前記受信装置に送信し、前記受信装置は、前記受信装置に記憶されている暗号鍵と前記送信装置から受信した前記メッセージとに基づいて第二の認証情報を生成し、前記送信装置から受信した前記第一の認証情報と生成された前記第二の認証情報とを照合して前記メッセージを認証し、前記受信装置の起動後、前記認証に一度も成功していない場合で、かつ前記送信装置から受信した認証情報が前記受信装置に記憶されている前記所定の認証情報と一致している場合に、前記認証の結果に関わらず受信している前記メッセージを受け付ける処理を各前記制御装置のコンピュータが実行する。
【0019】
請求項5に記載の通信方法は、相互に通信を行う複数の制御装置を含んで構成された車両通信システムにおいてコンピュータにより実行される。送信側の制御装置である送信装置及び受信側の制御装置である受信装置は、それぞれ、暗号鍵及び所定の認証情報が記憶されている。送信装置のコンピュータは、暗号鍵とメッセージとに基づいて第一の認証情報を生成し、送信装置に記憶されている暗号鍵に異常がない場合、生成された第一の認証情報及びメッセージを受信装置に送信する。また、送信装置のコンピュータは、送信装置に記憶されている暗号鍵に異常がある場合、送信装置に記憶されている所定の認証情報及びメッセージを受信装置に送信する。ここで、「暗号鍵に異常がある場合」とは、上述のとおりである。
【0020】
一方、受信装置のコンピュータは、受信装置に記憶されている暗号鍵と送信装置から受信したメッセージとに基づいて第二の認証情報を生成し、送信装置から受信した第一の認証情報と生成された第二の認証情報とを照合してメッセージを認証する。そして、受信装置のコンピュータは、受信装置の起動後、認証に一度も成功していない場合で、かつ受信した第一の認証情報と所定の認証情報とが一致している場合に、認証の結果に関わらず受信しているメッセージを受け付ける。
【0021】
当該通信方法では、送信側の制御装置を交換した際に暗号鍵の更新が行われなかった場合、受信装置は認証には失敗する。ただし、暗号鍵の更新が行われて認証に成功するまでは、受信した認証情報が受信装置に記憶されている所定の認証情報と一致している限り、認証の結果に関わらず受信しているメッセージを受け付ける。他方、一旦、暗号鍵が更新されて認証に成功した場合は、その後、受信した認証情報が受信装置に記憶されている所定の認証情報と一致したとしても、受信しているメッセージを受け付けない。そのため、当該通信方法によれば、暗号鍵の更新が行われたにもかかわらず、暗号鍵の更新を要する鍵異常が生じていると誤検出して、破棄すべきメッセージを受け付けることが抑制される。
【0022】
請求項6に記載の通信プログラムは、暗号鍵及び所定の認証情報を記憶した複数の制御装置が相互に通信を行う車両通信システムにおいて、各前記制御装置の各々のコンピュータに実行させる通信プログラムであって、送信側の前記制御装置である送信装置では、前記送信装置に記憶されている暗号鍵とメッセージとに基づいて第一の認証情報を生成し、前記送信装置に記憶されている暗号鍵に異常がない場合、生成された前記第一の認証情報及び前記メッセージを受信側の前記制御装置である受信装置に送信し、前記送信装置に記憶されている暗号鍵に異常がある場合、前記送信装置に記憶されている前記所定の認証情報及び前記メッセージを前記受信装置に送信する処理を実行させ、前記受信装置では、前記受信装置に記憶されている暗号鍵と前記送信装置から受信した前記メッセージとに基づいて第二の認証情報を生成し、前記送信装置から受信した前記第一の認証情報と生成された前記第二の認証情報とを照合して前記メッセージを認証し、前記受信装置の起動後、前記認証に一度も成功していない場合で、かつ前記送信装置から受信した認証情報が前記受信装置に記憶されている前記所定の認証情報と一致している場合に、前記認証の結果に関わらず受信している前記メッセージを受け付ける処理を実行させる処理を各コンピュータに実行させる。
【0023】
請求項6に記載の通信プログラムは、相互に通信を行う複数の制御装置を含んで構成された車両通信システムにおいてコンピュータに次の処理を実行させる。送信側の制御装置である送信装置及び受信側の制御装置である受信装置は、それぞれ、暗号鍵及び所定の認証情報が記憶されている。当該プログラムが実行される送信装置のコンピュータは、暗号鍵とメッセージとに基づいて第一の認証情報を生成し、送信装置に記憶されている暗号鍵に異常がない場合、生成された第一の認証情報及びメッセージを受信装置に送信する。また、送信装置のコンピュータは、送信装置に記憶されている暗号鍵に異常がある場合、送信装置に記憶されている所定の認証情報及びメッセージを受信装置に送信する。ここで、「暗号鍵に異常がある場合」とは、上述のとおりである。
【0024】
一方、当該プログラムが実行される受信装置のコンピュータは、受信装置に記憶されている暗号鍵と送信装置から受信したメッセージとに基づいて第二の認証情報を生成し、送信装置から受信した第一の認証情報と生成された第二の認証情報とを照合してメッセージを認証する。そして、受信装置のコンピュータは、受信装置の起動後、認証に一度も成功していない場合で、かつ受信した第一の認証情報と所定の認証情報とが一致している場合に、認証の結果に関わらず受信しているメッセージを受け付ける。
【0025】
当該通信プログラムでは、送信側の制御装置を交換した際に暗号鍵の更新が行われなかった場合、受信装置は認証には失敗する。ただし、暗号鍵の更新が行われて認証に成功するまでは、受信した認証情報が受信装置に記憶されている所定の認証情報と一致している限り、認証の結果に関わらず受信しているメッセージを受け付ける。他方、一旦、暗号鍵が更新されて認証に成功した場合は、その後、受信した認証情報が受信装置に記憶されている所定の認証情報と一致したとしても、受信しているメッセージを受け付けない。そのため、当該通信プログラムによれば、暗号鍵の更新が行われたにもかかわらず、暗号鍵の更新を要する鍵異常が生じていると誤検出して、破棄すべきメッセージを受け付けることが抑制される。
【発明の効果】
【0026】
本発明によれば、暗号鍵の更新が行われたにもかかわらず、暗号鍵の更新を要する鍵異常が生じていると誤検出して、破棄すべきメッセージを受け付けることを抑制することができる。
【図面の簡単な説明】
【0027】
図1】実施形態に係る車両通信システムの概略構成を示す図である。
図2】実施形態のECUのハードウェア構成を示すブロック図である。
図3】実施形態のROMの構成の例を示すブロック図である。
図4】実施形態のCPUの機能構成の例を示すブロック図である。
図5】送信側及び受信側のECUにおける通常時のデータの流れを説明する図である。
図6】送信側及び受信側のECUにおける鍵異常時のデータの流れを説明する図である。
図7】送信側のECUにおける送信処理の流れを示すフローチャートである。
図8】受信側のECUにおける受信処理の流れを示すフローチャートである。
【発明を実施するための形態】
【0028】
(車両通信システム)
図1は、実施形態に係る車両通信システム12の概略構成を示すブロック図である。図1に示されるように、本実施形態に係る車両通信システム12は、制御装置である複数のECU(Electronic Control Unit)10と、複数のECU10同士を接続する通信路であるバス14と、を含んで構成されている。本実施形態の車両通信システム12は、例えば、車両11に設けられた各ECU10を接続するネットワークとして形成されている。
【0029】
図1には、ECU10A、ECU10B及びECU10Cの3つのECU10が図示されている。ECU10Aは、マスタECUに相当する。また、ECU10B、10Cは、スレーブECUに相当する。以下の説明において、ECU10Bは通信フレームを送信する送信側のECU10とし、ECU10Cは通信フレームを受信する受信側のECU10として説明する。ECU10Bは送信装置の一例であり、ECU10Cは受信装置の一例である。
【0030】
なお、バス14には、ECU10A、10B及び10Cに限らず、さらに多くのECU10が接続されていてもよい。また、本実施形態の車両通信システム12は、バス型のバス構造を採用しているが、これに限らず、スター型、リング型、ライン型(ディジーチェーン接続)のバス構造を採用してもよい。
【0031】
本実施形態の車両通信システム12では、ECU10同士の通信を行うための通信方式にCAN(Controller Area Network)プロトコル、又はCANプロトコルよりも通信速度が高速であるCAN-FD(CAN With Flexible Data Rate)プロトコルを採用している。なお、通信方式はこれに限らず、イーサネット(登録商標)等のLAN規格を採用してもよい。
【0032】
(ECU)
図2に示されるように、本実施形態のECU10は、マイクロコントローラ20と、CANトランシーバ30と、を含んで構成されている。マイクロコントローラ20は、CPU(Central Processing Unit)22、ROM(Read Only Memory)24、RAM(Random Access Memory)26、及びCANコントローラ28を含んで構成されている。
【0033】
CPU22は、中央演算処理ユニットであり、各種プログラムを実行したり、各部を制御したりする。すなわち、CPU22は、ROM24からプログラムを読み出し、RAM26を作業領域としてプログラムを実行する。本実施形態では、ROM24に実行プログラム100が記憶されている(図3参照)。CPU22はプロセッサの一例であり、ROM24はメモリの一例である。また、実行プログラム100は通信プログラムの一例である。
【0034】
ROM24は、各種プログラム及び各種データを記憶している。図3に示されるように、ROM24は、実行プログラム100と、鍵データ110と、代替MACデータ115、メッセージデータ120と、コードデータ130が記憶されている。鍵データ110には、MAC(Message Authentication Code:メッセージ認証コード)を生成するための暗号鍵52(図5及び図6参照)のデータが記憶されている。また、代替MACデータ115には、後述する鍵異常状態において使用する代替MAC67が記憶されている(図6参照)。代替MAC67は所定の認証情報の一例である。
【0035】
メッセージデータ120には、ECU10が送信する又は受信したメッセージ62(図5及び図6参照)が記憶されている。コードデータ130には、装置の故障を示すDTC(Diagnostic Trouble Code)、及び通信の異常を示すRob(Record of Behavior)コードが記憶されている。また、ECU10がスレーブECUである場合、メッセージデータ120は、自装置又は通信データ60を送信した他のスレーブECUの暗号鍵52に異常があることを検出した場合に、異常を示す情報を記憶することができる。
【0036】
RAM26は、作業領域として一時的にプログラム又はデータを記憶する。
【0037】
CANコントローラ28は、CANプロトコル及びCAN-FDプロトコルに係る機能、例えば、通信調停やエラーチェック等の機能を実現する。
【0038】
CANトランシーバ30は、マイクロコントローラ20、及びバス14と接続され、マイクロコントローラ20から入力される通信フレームをバス14に送信し、バス14によって転送される通信フレームをマイクロコントローラ20に入力する機能を有している。
【0039】
図4は、CPU22の機能構成の例を示すブロック図である。図4に示されるように、CPU22は、送信部200、受信部210、生成部220、認証部230、鍵監視部240、受付処理部250、タイマ260を有している。各機能構成は、CPU22がROM24に記憶された実行プログラムを100読み出し、これを実行することによって実現される。
【0040】
送信部200は、他のECU10に向けて通信フレームを送信する機能を有している。
【0041】
受信部210は、他のECU10から通信フレームを受信する機能を有している。本実施形態の送信部200及び受信部210は、CANプロトコル又はCAN-FDプロトコルの通信方式に基づいて通信が制御される。そのため、通信フレームはCANID及び通信データ60を含んでいる。図5及び図6に示されるように、通信データ60はメッセージ62と、当該メッセージ62から生成されたMAC64と、を含んでいる。なお、通信データ60は、再送攻撃を防ぐためのメッセージカウンタであるフレッシュネスバリュー(Freshness Value)をメッセージ62の下位ビットに含めてもよい。MAC64は第一の認証情報の一例である。
【0042】
生成部220は、暗号鍵52を使用して所定のデータからMAC64を生成する機能を有している。図5に示されるように、送信側のECU10における生成部220は、車両11に搭載されたセンサや通信装置から入力されたメッセージ62と暗号鍵52とに基づいて演算処理を実行してMAC64を生成する。また、受信側のECU10における生成部220は、送信側のECU10から受信したメッセージ62と暗号鍵52とに基づいて演算処理を実行して検証用MAC66を生成する。本実施形態の暗号鍵52は、送信側と受信側とで共通とされる共通鍵が使用される。検証用MAC66は、第二の認証情報の一例である。
【0043】
認証部230は、メッセージ62を認証する機能を有している。認証部230は、受信した通信データ60に含まれるMAC64と、受信したメッセージ62から生成された検証用MAC66とを比較して一致した場合にメッセージ62を認証する。認証部230は、MAC64と検証用MAC66とが一致した場合は認証に成功したと判定し、MAC64と検証用MAC66とが不一致の場合は認証に失敗したと判定する。
【0044】
鍵監視部240は、スレーブECUであるECU10B、10Cに記憶されている暗号鍵52B、52Cが、マスタECUであるECU10Aにおける暗号鍵52Aと一致しているか否かを監視する機能を有している。具体的に、ECU10Bの鍵監視部240は、ECU10Aから受信した暗号鍵52Aを用いて送信されたメッセージ50により、鍵データ110に記憶されている暗号鍵52Bの鍵値が暗号鍵52Aの鍵値と一致するか否かを判定する(図5参照)。また、ECU10Cの鍵監視部240も同様に、暗号鍵52Bの鍵値が暗号鍵52Aの鍵値と一致するか否かを判定する。
【0045】
鍵監視部240は、自装置の暗号鍵52がマスタECUであるECU10Aの暗号鍵52Aと一致した場合、自装置の暗号鍵52は正常であると判定し、暗号鍵52Aと一致しない場合、自装置の暗号鍵52が異常であると判定する。
【0046】
受付処理部250は、他のECU10や各部のセンサから取得したメッセージ62を受け付けて、対応するアプリケーションに提供する機能を有している。受付処理部250が受け付けたメッセージ62をアプリケーションが取得することにより、車両11は制御される。例えば、ECU10が車両11の情報を表示させるメータECUである場合、受付処理部250が受け付けたメッセージ62に基づいて、メータパネルに情報を表示させることができる。また、受付処理部250は、所定の条件時に受信処理において受信したメッセージ62をROM24又はRAM26から消去する機能を有している。
【0047】
タイマ260は、時間を計時する機能を有している。本実施形態のタイマ260は、ECU10が起動してからの所定期間をカウントする。
【0048】
(処理の流れ)
次に、本実施形態においてECU10BからECU10Cに向けて通信データ60を送信する場合において、各ECU10で実行される処理の流れについて図7及び図8のフローチャート、並びに図6の例を用いて説明する。なお、ECU10BからECU10Aに通信データ60を送信する場合、ECU10AからECU10B及びECU10Cに通信データ60を送信する場合、ECU10CからECU10A及びECU10Bに通信データ60を送信する場合においても同様の処理が実行可能である。
【0049】
送信側のECU10BではCPU22により以下の送信処理が実行される。
【0050】
図7のステップS100において、CPU22はメッセージ62を取得する。取得されたメッセージ62は、通信データ60に付与される(図6参照)。
【0051】
ステップS101において、CPU22はMAC64を生成すると共に、MAC64をメッセージ62に付与する。すなわち、CPU22は、メッセージ62及び暗号鍵52に基づく演算処理を行ってMAC64を生成し、生成したMAC64をメッセージ62の下位ビットに付与する(図6参照)。
【0052】
ステップS102において、CPU22は、ECU10Bが起動してから所定期間内であるか否かの判定を行う。CPU22は起動してから所定期間内であると判定した場合(ステップS102でYesの場合)、ステップS103に進む。一方、CPU22は起動してから所定期間内ではない、すなわち、所定期間を経過した場合(ステップS102でNoの場合)、ステップS105に進む。
【0053】
ステップS103において、CPU22は、ECU10Bの暗号鍵52BがマスタECUであるECU10Aの暗号鍵52Aと一致しているか否かの判定を行う。CPU22は暗号鍵52Bが暗号鍵52Aと一致している、すなわち暗号鍵52Bが正常であると判定した場合(ステップS103でYesの場合)、ステップS105に進む。一方、CPU22は暗号鍵52Bが暗号鍵52Aと一致していない、すなわち暗号鍵52Bが異常であると判定した場合(ステップS103でNoの場合)、ステップS104に進む。
【0054】
ステップS104において、CPU22は、MAC64を代替MAC67に書き換える。
【0055】
ステップS105において、CPU22は通信データ60を受信側のECU10Cに送信する。ここで、ECU10Bが起動してから所定期間を経過した場合、暗号鍵52Bが暗号鍵52Aと一致して正常である場合の通信データ60は、メッセージ62及びMAC64を含む(図5参照)。一方、ECU10Bが起動してから所定期間内であって、暗号鍵52Bが異常である場合の通信データ60は、メッセージ62及び代替MAC67を含む(図6参照)。
【0056】
続けて受信側のECU10CではCPU22により、受信処理が実行される。
【0057】
図8のステップS200において、CPU22は通信データ60を送信側のECU10Bから受信する。
【0058】
ステップS201において、CPU22は認証処理を実行する。つまり、CPU22はメッセージ62及び暗号鍵52Cに基づく演算処理を行って検証用MAC66を生成し、当該検証用MAC66と通信データ60に含まれるMAC64とを比較する(図5及び図6参照)。
【0059】
ステップS202において、CPU22は認証に成功したか否かの判定を行う。すなわち、CPU22は認証に成功したと判定した場合(ステップS202でYesの場合)、ステップS203に進む。一方、CPU22は認証に成功していない、すなわち失敗したと判定した場合(ステップS202でNoの場合)、ステップS204に進む。
【0060】
ステップS203において、CPU22は通常受信処理を実行する。つまり、図5に示されるように、CPU22は受信したメッセージ62を受け付ける。そして、受信処理は終了する。
【0061】
図8のステップS204において、CPU22はECU10Cが起動してから所定期間内であるか否かの判定を行う。CPU22は起動してから所定期間内であると判定した場合(ステップS204でYesの場合)、ステップS205に進む。一方、CPU22は起動してから所定期間内ではない、すなわち、所定期間を経過した場合(ステップS204でNoの場合)、ステップS207に進む。
【0062】
ステップS205において、CPU22はECU10Cが起動してから一度でも認証が成功した受信履歴があるか否かの判定を行う。換言すると、CPU22は起動後全ての受信において認証に失敗しているか否かを判定する。CPU22は起動してから一度でも認証が成功した受信履歴があると判定した場合(ステップS205でYesの場合)、ステップS207に進む。一方、CPU22は起動してから一度も認証が成功した受信がないと判定した場合(ステップS205でNoの場合)、ステップS206に進む。
【0063】
ステップS206において、受信したMAC64が代替MAC67と一致したか否かの判定を行う。CPU22は受信したMAC64が代替MAC67と一致したと判定した場合(ステップS206でYesの場合)、ステップS208に進む。一方、CPU22は受信したMAC64が代替MAC67と一致していないと判定した場合(ステップS206でNoの場合)、ステップS207に進む。
【0064】
ステップS207において、CPU22はメッセージ62を破棄する。つまり、CPU22は受信したメッセージ62をROM24又はRAM26から消去する。そして、受信処理は終了する。
【0065】
ステップS208において、CPU22は異常時受信処理を実行する。つまり、図6に示されるように、CPU22は、ECU10Bの鍵異常を検出すると共に、受信したメッセージ62を受け付ける。そして、受信処理は終了する。
【0066】
(作用)
本実施形態の車両通信システム12は、相互に通信を行う複数のECU10を含んで構成されている。送信側及び受信側のECU10には、それぞれ、ROM20Bに暗号鍵52及び所定の認証情報である代替MAC67が記憶されている。
【0067】
本実施形態の車両通信システム12では、暗号鍵52Bに異常が無い通常時の場合、図5に示されるように、送信側のECU20Bと受信側のECU10Cとの通信において、次の処理が実行される。ECU20BのCPU22は、暗号鍵52Bとメッセージ62とに基づいてMAC64を生成し、生成されたMAC64及びメッセージ62を通信データ60としてECU10Cに送信する。
【0068】
一方、ECU10CのCPU22は、暗号鍵52CとECU10Bから受信したメッセージ62とに基づいて第二の認証情報である検証用MAC66を生成し、ECU10Bから受信したMAC64と生成された検証用MAC66とを照合してメッセージ62を認証する。この場合、ECU10Bにおける暗号鍵52Bと、ECU10Cにおける暗号鍵52Cとが対応関係にある場合、つまり共通鍵である場合は暗号鍵52Bの鍵値と暗号鍵52Cの暗号鍵とが一致する場合、認証に成功する。メッセージ62の認証に成功することにより、メッセージ62はアプリケーションで受け付けられ、ECU10Cではメッセージ62に基づく制御が実行される。
【0069】
これに対して、本実施形態の車両通信システム12では、暗号鍵52Bに異常がある鍵異常時の場合、図6に示されるように、送信側のECU20Bと受信側のECU10Cとの通信において、次の処理が実行される。ここで、暗号鍵52Bに異常がある場合とは、例えば、ECU10Bを交換した結果、鍵値がマスタECUであるECU10Aの暗号鍵52Aの鍵値と異なる場合が挙げられる。まず、ECU10BのCPU22は、暗号鍵52Bに異常がある場合、MAC64を代替MAC67に書き換え、代替MAC67及びメッセージ62をECU10Cに送信する。
【0070】
一方、ECU10CのCPU22は、ECU10Cの起動後所定期間内に認証に一度も成功していない場合で、かつ受信したMAC64と代替MAC67とが一致している場合に、ECU10Bの暗号鍵52Bに異常があることを検出する。そして、鍵異常が検出された通知と共にメッセージ62はアプリケーションで受け付けられ、ECU10Cではメッセージ62に基づく制御が暫定的に実行される。
【0071】
(まとめ)
本実施形態の車両通信システム12は、CANプロトコル及びCAN-FDプロトコルによる通信を行うが、一方向の通信であるため、受信側のECU10Cにおいて認証に失敗しても送信側のECU10Bが故障なのか暗号鍵52Bが違うのかを知る由が無い。
【0072】
一方、MAC64付きの通信データ60に加えて暗号鍵52Bの状態を示す通信フレームを同時にECU10Cに送信することが考えられる。しかし、状態を示す通信フレームが攻撃されてしまうと、ECU10Cは、ECU10Bは単に鍵違いであるにもかかわらず故障を誤検出してしまう。また、メッセージ62の通信フレームと、暗号鍵52B用の通信フレームとで、通信が二重になることにより、バス14の負荷が増加する。その結果、通信自体が成り立たなくなるリスクがある。
【0073】
これに対して、本実施形態によれば、一方向の通信であっても、通信フレーム数を増やすことなく、送信側のECU10Bにおける暗号鍵52Bの状態を把握することができる。具体的に、本実施形態では、送信側のECU10Bを交換した際に暗号鍵52Bの更新が行われなかった場合、ECU10Cでは認証に失敗する。ただし、暗号鍵52Bの更新が行われて認証に成功するまでは、受信したMAC64と代替MAC67とが一致している限り、暗号鍵52Bの更新を要する鍵異常を検出する。
【0074】
他方、一旦、暗号鍵52Bが更新されて認証に成功した場合は、その後、受信したMAC64と代替MAC67とが一致したとしても、暗号鍵52Bの更新を要する鍵異常は検出しない。そのため、本実施形態によれば、暗号鍵52Bの更新が行われたにもかかわらず、その後、代替MAC67を受信した場合であっても暗号鍵52Bの更新を要する鍵異常が生じていると誤検出することが抑制される。
【0075】
また、本実施形態では、暗号鍵52Bの更新を要する鍵異常を検出している場合は、メッセージ62を受け付けることを特徴としている。すなわち、ECU10Cの起動後所定期間内において、暗号鍵52Bの更新が行われて認証に成功するまでは、受信したMAC64と代替MAC67とが一致している限り、メッセージ62を受け付ける。ここで、上記の「所定期間」とはECU10が起動してから認証に係る装置の準備が完了するまでに必要とする時間を想定している。本実施形態によれば、起動後所定期間内は、暗号鍵52Bが正規のものと異なる場合であっても、暫定的な措置としてメッセージ62を受け付ける。そのため、本実施形態によれば、暗号鍵52Bの更新が行われるまでの車両11の制御を担保することができる。
【0076】
また、一旦、暗号鍵52Bが更新されて認証に成功した場合は、その後、受信したMAC64と代替MAC67とが一致したとしても、暗号鍵52Bの更新を要する鍵異常は検出されず、メッセージ62は受け付けられない。そのため、本実施形態によれば、暗号鍵52Bの更新が行われたにもかかわらず、暗号鍵52Bの更新を要する鍵異常が生じていると誤検出して、破棄すべきメッセージ62が受け付けられることが抑制される。
【0077】
なお、所定期間を経過した後において、認証に失敗した場合はメッセージ62が破棄される。また、受信したMAC64と代替MAC67とが一致しない場合、メッセージ62が破棄される。これにより、暗号鍵52Bの更新を要する鍵異常が生じていない場合にメッセージ62を破棄することで、セキュリティを確保することができる。
【0078】
また、一旦、暗号鍵52Bが更新されて認証に成功した場合は、所定期間内に受信したMAC64と代替MAC67とが一致したとしても、メッセージ62は破棄される。したがって、本実施形態によれば、暗号鍵52Bの更新が行われた後のセキュリティを確保することができる。
【0079】
(備考)
なお、上記実施形態でCPU22がソフトウェア(プログラム)を読み込んで実行した各種処理を、CPU以外の各種のプロセッサが実行してもよい。この場合のプロセッサとしては、FPGA(Field-Programmable Gate Array)等の製造後に回路構成を変更可能なPLD(Programmable Logic Device)、及びASIC(Application Specific Integrated Circuit)等の特定の処理を実行させるために専用に設計された回路構成を有するプロセッサである専用電気回路等が例示される。また、上述した受付処理を、これらの各種のプロセッサのうちの1つで実行してもよいし、同種又は異種の2つ以上のプロセッサの組み合わせ(例えば、複数のFPGA、及びCPUとFPGAとの組み合わせ等)で実行してもよい。また、これらの各種のプロセッサのハードウェア的な構造は、より具体的には、半導体素子等の回路素子を組み合わせた電気回路である。
【0080】
また、上記実施形態において、プログラムはコンピュータが読み取り可能な非一時的記録媒体に予め記憶(インストール)されている態様で説明した。例えば、実行プログラム100は、ROM24に予め記憶されている。しかしこれに限らず、実行プログラム100は、CD-ROM(Compact Disc Read Only Memory)、DVD-ROM(Digital Versatile Disc Read Only Memory)、及びUSB(Universal Serial Bus)メモリ等の非一時的記録媒体に記録された形態で提供されてもよい。また、実行プログラム100は、ネットワークを介して外部装置からダウンロードされる形態としてもよい。
【0081】
上記実施形態で説明した処理の流れは、一例であり、主旨を逸脱しない範囲内において不要なステップを削除したり、新たなステップを追加したり、処理順序を入れ替えたりしてもよい。
【符号の説明】
【0082】
10 ECU(制御装置)
10B ECU(送信装置)
10C ECU(受信装置)
12 車両通信システム
22 CPU(プロセッサ)
24 ROM(メモリ)
52 暗号鍵
62 メッセージ
100 実行プログラム(通信プログラム)
64 MAC(第一の認証情報)
66 検証用MAC(第二の認証情報)
67 代替MAC(所定の認証情報)
図1
図2
図3
図4
図5
図6
図7
図8