JP2010011400A - 共通鍵方式の暗号通信システム - Google Patents
共通鍵方式の暗号通信システム Download PDFInfo
- Publication number
- JP2010011400A JP2010011400A JP2008171538A JP2008171538A JP2010011400A JP 2010011400 A JP2010011400 A JP 2010011400A JP 2008171538 A JP2008171538 A JP 2008171538A JP 2008171538 A JP2008171538 A JP 2008171538A JP 2010011400 A JP2010011400 A JP 2010011400A
- Authority
- JP
- Japan
- Prior art keywords
- ecu
- vehicle
- configuration
- common key
- communication
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Abstract
【課題】車載環境に適合した態様で構成証明を実現することができる暗号通信システムの提供。
【解決手段】互いに通信する少なくとも2つ以上のECUが搭載される車両に適用される暗号通信システムであって、前記少なくとも2つ以上のECUの各ECUに対して、該各ECU間の共通鍵又は該共通鍵の生成源を発行する発行手段と、前記各ECUの構成証明を行う構成証明手段とを備え、前記各ECUは、前記共通鍵又は共通鍵の生成源を用いた共通鍵方式の暗号により通信を行うと共に、前記構成証明手段により構成証明を受けないECUとの間で通信を確立しないように構成されることを特徴とする。
【選択図】 図1
【解決手段】互いに通信する少なくとも2つ以上のECUが搭載される車両に適用される暗号通信システムであって、前記少なくとも2つ以上のECUの各ECUに対して、該各ECU間の共通鍵又は該共通鍵の生成源を発行する発行手段と、前記各ECUの構成証明を行う構成証明手段とを備え、前記各ECUは、前記共通鍵又は共通鍵の生成源を用いた共通鍵方式の暗号により通信を行うと共に、前記構成証明手段により構成証明を受けないECUとの間で通信を確立しないように構成されることを特徴とする。
【選択図】 図1
Description
本発明は、共通鍵方式の暗号通信技術に関する。
従来から、KPS方式を採用した暗号通信方法において、アルゴリズムの簡素化を図り、回路規模の小規模化を図る暗号通信システムにおける暗号化処理方法が提案されている(例えば、特許文献1参照)。
特開2000−286830公報
Trusted Computing Group, TPMSpecificationVersion 1.2, https://www.trustedcomputinggroup.org/downloads/specifications
ところで、近年、車両内の構成部品について電子制御対象となるものが急増している。また、それらをつなぐ通信部分についても標準化されたネットワーク技術の導入が進みつつある。この結果、車両内LANは、一般のオフィスや家庭にあるLAN と類似した姿になりつつある。ここで、車両内LANを悪意ある者による改竄や正当なユーザによる意図しない構成変更による悪影響等から守るためには、車両内に搭載されネットワーク化されているコンピュータノード(ECU:Electronic Control Unit)が、製造者によって提供された正しい意図したプログラムで動作していることを保証する仕組み、すなわち構成証明が必要となる。
一般のPCでは、Trusted Computing Groupが提唱したTrusted Platform Module (TPM)を用いた構成証明手法が実用化されている(例えば、非特許文献2参照)。しかしながら、車両内に搭載されるECUは、一般のPC等に比べて低リソースなものがほとんどであること、msecオーダーといった短時間での応答を要求されるものがあることから、それをそのまま利用することは難しい。
そこで、本発明は、車載環境に適合した態様で構成証明を実現することができるノード間認証(Attestation)方式を用いる暗号通信システム及びこれに用いる車載ECU並びに方法等の提供を目的とする。
上記目的を達成するため、本発明は、互いに通信する少なくとも2つ以上のECUが搭載される車両に適用される暗号通信システムであって、
前記少なくとも2つ以上のECUの各ECUに対して、該各ECU間の共通鍵又は該共通鍵の生成源を発行する発行手段と、
前記各ECUの構成証明を行う構成証明手段とを備え、
前記各ECUは、前記共通鍵又は共通鍵の生成源を用いた共通鍵方式の暗号により通信を行うと共に、前記構成証明手段により構成証明を受けないECUとの間で通信を確立しないように構成されることを特徴とする。
前記少なくとも2つ以上のECUの各ECUに対して、該各ECU間の共通鍵又は該共通鍵の生成源を発行する発行手段と、
前記各ECUの構成証明を行う構成証明手段とを備え、
前記各ECUは、前記共通鍵又は共通鍵の生成源を用いた共通鍵方式の暗号により通信を行うと共に、前記構成証明手段により構成証明を受けないECUとの間で通信を確立しないように構成されることを特徴とする。
本発明において、構成証明手段により構成証明を受けないECUとの間で通信を確立しないように構成される態様は、任意であり、例えば、構成証明手段により構成証明を受けないECUからの通信データを破棄してもよいし、構成証明手段により構成証明を受けないECUがバスマスタにより遮断されることで実現されてもよい。
本発明において、前記発行手段は、車両外部の遠隔位置に配置され車両と通信可能に構成されるセンターサーバに設けられもよい。また、前記構成証明手段は、前記センターサーバに設けられてもよいし、前記構成証明手段は、前記複数のECUのうちの特定のECUに設けられてもよいし、前記構成証明手段は、前記各ECUにそれぞれ設けられてもよい。尚、特定のECUは、必ずしも1つである必要はなく、前記複数のECUがN個である場合、1個以上、N−1個以下であればよい。
本発明において、前記共通鍵の生成源は、好ましくは、KPS方式の鍵関数である。
本発明による暗号通信システムは、既存のECUに特定の付加機能を付与したECUを用いて実現される。例えば、車載ECUは、他の車載ECUとの間の共通鍵又は該共通鍵の生成源を記憶する記憶手段と、
前記他の車載ECUが構成証明を受けたECUであるか否かを判断する判断手段と、
前記他の車載ECUが構成証明を受けていないECUであると判断した場合に、該他の車載ECUとの通信を無効化する通信無効化手段とを備えるものであってよい。この場合、前記判断手段は、好ましくは、前記他の車載ECUが車載マスタECUにより構成証明を受けたECUであるか否かを判断する。また、前記共通鍵の生成源は、好ましくは、KPS方式の鍵関数である。
前記他の車載ECUが構成証明を受けたECUであるか否かを判断する判断手段と、
前記他の車載ECUが構成証明を受けていないECUであると判断した場合に、該他の車載ECUとの通信を無効化する通信無効化手段とを備えるものであってよい。この場合、前記判断手段は、好ましくは、前記他の車載ECUが車載マスタECUにより構成証明を受けたECUであるか否かを判断する。また、前記共通鍵の生成源は、好ましくは、KPS方式の鍵関数である。
また、本発明のその他の局面では、車載マスタECUであって、
他の車載ECUから構成証明のための情報を取得し、該取得した情報に基づいて、該他の車載ECUが正当な構成を有していることを証明する構成証明手段を備える、車載マスタECUが提供される。本発明においても、前記共通鍵の生成源は、好ましくは、KPS方式の鍵関数である。
他の車載ECUから構成証明のための情報を取得し、該取得した情報に基づいて、該他の車載ECUが正当な構成を有していることを証明する構成証明手段を備える、車載マスタECUが提供される。本発明においても、前記共通鍵の生成源は、好ましくは、KPS方式の鍵関数である。
また、本発明のその他の局面では、車載ECUであって、
他の車載ECUとの間の共通鍵又は該共通鍵の生成源を記憶する記憶手段と、
自身の車載ECUが正当な構成を有していることを証明する構成証明を受ける手段と、
前記構成証明を受けたことを表す情報を送信メッセージに付加した送信データを、前記記憶手段に記憶された共通鍵又は該共通鍵の生成源を用いて暗号化して、他の車載ECUに送信する通信手段とを備える、車載ECUが提供される。本発明においても、前記共通鍵の生成源は、好ましくは、KPS方式の鍵関数である。
他の車載ECUとの間の共通鍵又は該共通鍵の生成源を記憶する記憶手段と、
自身の車載ECUが正当な構成を有していることを証明する構成証明を受ける手段と、
前記構成証明を受けたことを表す情報を送信メッセージに付加した送信データを、前記記憶手段に記憶された共通鍵又は該共通鍵の生成源を用いて暗号化して、他の車載ECUに送信する通信手段とを備える、車載ECUが提供される。本発明においても、前記共通鍵の生成源は、好ましくは、KPS方式の鍵関数である。
上述の本発明による車載ECU(車載マスタECUを含む)は、前記各手段の少なくとも1つを実現する耐タンパ性モジュールを実装することで実現されてもよい。例えば、通常のECUに、前記各手段の少なくとも1つを実現する耐タンパ性モジュールを実装することで実現されてもよい。
また、本発明のその他の局面では、車両外部の遠隔位置に配置され車両と通信可能に構成されるセンターサーバであって、車載ECUの記憶手段に記憶される共通鍵又は該共通鍵の生成源を生成し、該車載ECUに送信するセンターサーが提供される。
また、本発明のその他の局面では、車両に搭載されるECU間の通信を制御する通信制御方法であって、
制御対象となる各ECUに共通鍵又は該共通鍵の生成源を記憶するステップと、
制御対象となる各ECUの構成証明を行う構成証明ステップと、
ECU間で前記共通鍵又は共通鍵の生成源を用いた共通鍵方式に基づいて暗号通信を行うステップと、
前記構成証明ステップにより構成証明を受けないECU間の通信を無効化するステップとを含む、通信制御方法が提供される。
制御対象となる各ECUに共通鍵又は該共通鍵の生成源を記憶するステップと、
制御対象となる各ECUの構成証明を行う構成証明ステップと、
ECU間で前記共通鍵又は共通鍵の生成源を用いた共通鍵方式に基づいて暗号通信を行うステップと、
前記構成証明ステップにより構成証明を受けないECU間の通信を無効化するステップとを含む、通信制御方法が提供される。
本発明によれば、車載環境に適合した態様で構成証明を実現することができる暗号通信システム及びこれに用いる車載ECU並びに方法等が得られる。
以下、図面を参照して、本発明を実施するための最良の形態の説明を行う。
図1は、実施例1による暗号通信システム1の主要構成を示す図である。暗号通信システム1は、大きく分類して、車両側のシステム10と、センターサーバ30とからなる。センターサーバ30は、車両とは離れた遠隔位置に設置され、車両側のシステム10と無線及び/又は有線通信回線を介して通信可能である。センターサーバ30は、高いセキュリティ性が確保された構成で任意の場所に設置されてよく、例えば情報提供・管理センターのようなセンター施設に設置されてもよいし、それに類する他の施設に設置されてもよい。
車両側のシステム10では、例えばCAN(controller area network)やFlexRayなどの通信プロトコルに準拠した通信網を介して、車両内の各種のECUが接続される。
尚、車両内の各種のECUは、大きく、センサーECUと、判断・指示ECUと、アクチュエータECUとに分類できる。センサーECUは、車両の状態、周囲環境、あるいはユーザからの(インターフェースデバイスを通じた)指示情報を把握するためのセンサー群であり、判断・指示ECUは、ユーザからの指示、車両状態、周囲環境の情報に応じて、車両を適切な状態に導くための、何をどのように制御すればいいかを判断する頭脳の役割をするECU群であり、アクチュエータECUは、判断・指示ECUからの目標値にしたがって、車両を適切な状態にするため、アクチュエータの動作量を目標値になるよう出力・制御するECU群である。また、通信デバイスは、外部(センターサーバ30を含む)からの値の入手(input)と外部への値の伝達(output)の両方の機能を持っており、前者の機能は上記のセンサーECUに、後者はアクチュエータECUに分類することが可能である。尚、センサーECU、判断・指示ECU及びアクチュエータECUの幾つかが組み合わせて1つのECU筐体に組み込まれることもある。
ここで、このような車両側のシステム10において、偽の情報を自車に車両内通信により与えてあるいは他車に車車間通信により与えて誤った動作をさせることを防止するためには、以下の機能が必要である。
(1)情報の発生源であるセンサーECUにおいて、取得した値を改竄されることなく車両内ネットワークへ送信すること。
(2)センサーECUから判断・指示ECUへの通信においてその値が改竄されないこと。
(3)判断・指示ECUにおいて、所定のセンサーECUから情報を入手すること(なりすまされたECUからの情報を受け取らないこと)。
(4)判断・指示ECUにおいて、多数のセンサーECUから得られる情報をもとに、適切にアクチュエータ群に対する指示量を算出できること。
(5)判断・指示ECUからアクチュエータECUへの通信においてその値が改竄されないこと。
(6)アクチュエータECUにおいて、所定の判断・指示ECUから情報を入手すること(なりすまされたECUからの情報を受け取らないこと)。
(7)アクチュエータECUにおいて、指示された量に対して適切にアクチュエータを出力・制御すること。
(1)情報の発生源であるセンサーECUにおいて、取得した値を改竄されることなく車両内ネットワークへ送信すること。
(2)センサーECUから判断・指示ECUへの通信においてその値が改竄されないこと。
(3)判断・指示ECUにおいて、所定のセンサーECUから情報を入手すること(なりすまされたECUからの情報を受け取らないこと)。
(4)判断・指示ECUにおいて、多数のセンサーECUから得られる情報をもとに、適切にアクチュエータ群に対する指示量を算出できること。
(5)判断・指示ECUからアクチュエータECUへの通信においてその値が改竄されないこと。
(6)アクチュエータECUにおいて、所定の判断・指示ECUから情報を入手すること(なりすまされたECUからの情報を受け取らないこと)。
(7)アクチュエータECUにおいて、指示された量に対して適切にアクチュエータを出力・制御すること。
これらをまとめると、各ECUにおいて実現すべき、車両内通信におけるセキュリティに必要な機能は、(1)ソフトウェア構成の証明、(2)通信相手の認証、及び、(3)通信の秘匿あるいは改竄防止となる。
また、車両は多くの構成部品から形成されている機能組み合わせ型の製品である。また、走る、止まる、曲がるといったその基本機能を機械部品が動作することで実現していることから、使用にともなう経年劣化が大きい。そのため、予め想定して定期的に、あるいは消耗あるいは故障により不定期に、部品交換を頻繁に行うことによって機能を維持している。このような運用形態を考えると、前段落で述べた機能に加えて、部品交換等への拡張性も考慮することも望ましい。
次に、以上のような機能を実現できる本実施例1の概要を説明する。
車両側のシステム10には、車両内に従来から存在するECU群の他に構成証明のための情報をもつ専用のECU:Master AttestationECU20(以下単にマスタECU20という)が導入される。マスタECU20は、予め適切な段階で信頼できるセンターサーバ30との通信により、自車両に搭載される可能性のある全ECUの種別とプログラムの全バージョンに関する情報を得て、データベースとして保持する。各ECUは、起動時に自搭載プログラムのハッシュ値をマスタECU20に報告し、マスタECU20では保有データベースを参照し、それが許可されたバージョンのものであるかを確認する。確認された場合のみ、当該ECUに対しAttestation Tokenを発行する。各ECUはデータ送信時に全パケットにおいてAttestation Token を付加し、受信側ECUではAttestation Tokenを確認できた場合のみ、その通信内容を受理する。
車両側のシステム10では、各ECU間の秘匿通信を実現するにあたって共通鍵方式が利用される。ここで、公開鍵方式の利用も考え得るが、一般に公開鍵方式はより多くの計算リソースを要求するだけでなく、通信の際のパケットが冗長になるという問題がある。そこで、本実施例1では、共通鍵方式が採用される。ところで、共通鍵方式を利用する場合でも、次のような態様が考えられる。
(1)ある1台の車両に対してそれに搭載されるECU群に1つの共通鍵
(2)全てのECUのペアに対し、異なる共通鍵。
尚、(1)を選択した場合、共通鍵が漏洩した場合には、なりすましたECUを搭載することで、当該車両内のECUのいずれに対しても誤った情報を送り込むことで誤動作を引き起こすことが可能となるので、好ましくは、(2)が選択される。また、(2)を選択した場合、好ましくは、KPS(Key Predistribution System)が採用される。
(1)ある1台の車両に対してそれに搭載されるECU群に1つの共通鍵
(2)全てのECUのペアに対し、異なる共通鍵。
尚、(1)を選択した場合、共通鍵が漏洩した場合には、なりすましたECUを搭載することで、当該車両内のECUのいずれに対しても誤った情報を送り込むことで誤動作を引き起こすことが可能となるので、好ましくは、(2)が選択される。また、(2)を選択した場合、好ましくは、KPS(Key Predistribution System)が採用される。
[KPS方式の説明]
ここで、簡単にKPSついて説明する。KPS方式は、通信相手の公開情報(例えばMACアドレスやserial
ID等)を元に共通鍵を生成する技術である。共通鍵方式で暗号化および認証を行う場合には、それぞれの利用者(ECU)の間で固有の鍵を事前に共有しておく必要があり、n人の利用者(ECU)が存在している場合には利用者(ECU)は(n−1)個の鍵を保有しておく必要があるが、KPS方式では、共通鍵を生成する鍵関数(秘密鍵)を保持していれば、通信相手毎の鍵を管理する必要がない。KPS方式では、センターサーバ30と利用者(ECU)が存在し、センターサーバ30が(T+1)×(T+1)の鍵生成行列A={aij}を乱数で生成する。ただし、aij=ajiであり、Tはセキュリティパラメータ(結託閾値)とする。各利用者(ECU)kは、センターサーバ30から利用者(ECU)kに固有の鍵関数y=Fk(x)を初期化時に受け取る。この鍵関数y=Fk(x)は鍵生成行列から以下のようにして求められる。ここでqは素数のべき乗である。
利用者(ECU)k1とk2の間の通信に必要なセッションキーKは、互いに相手の識別子であるk1,k2をMACアドレス等から得ることにより、次式より求められる。
K=Fk1(k2)=Fk2(k1)
このようにKPS方式は、通信相手のIDがMACアドレス等から得られる場合に、鍵関数y = Fk(x)を計算することにより直ちに通信相手との共有鍵を求めることができるため、極めて少ない通信オーバーヘッドで鍵を共有することができる。また、利用者(ECU)は鍵関数y=Fk(x)を耐タンパ部などに格納してECU内で安全に管理する必要があるが、万が一、鍵関数が漏洩したとしても、システム全体の安全性に関わる鍵生成行列が解読されるためには(T+1)個の鍵関数が漏洩する必要があり、T個までの漏洩では他の利用者へのなりすましは情報量的に不可能である。鍵漏洩の台数に関わるセキュリティパラメータTとして大きな数を設定すると、鍵関数の計算により多くの時間を要するが、安全性はTに比例して高まる。
ここで、簡単にKPSついて説明する。KPS方式は、通信相手の公開情報(例えばMACアドレスやserial
ID等)を元に共通鍵を生成する技術である。共通鍵方式で暗号化および認証を行う場合には、それぞれの利用者(ECU)の間で固有の鍵を事前に共有しておく必要があり、n人の利用者(ECU)が存在している場合には利用者(ECU)は(n−1)個の鍵を保有しておく必要があるが、KPS方式では、共通鍵を生成する鍵関数(秘密鍵)を保持していれば、通信相手毎の鍵を管理する必要がない。KPS方式では、センターサーバ30と利用者(ECU)が存在し、センターサーバ30が(T+1)×(T+1)の鍵生成行列A={aij}を乱数で生成する。ただし、aij=ajiであり、Tはセキュリティパラメータ(結託閾値)とする。各利用者(ECU)kは、センターサーバ30から利用者(ECU)kに固有の鍵関数y=Fk(x)を初期化時に受け取る。この鍵関数y=Fk(x)は鍵生成行列から以下のようにして求められる。ここでqは素数のべき乗である。
K=Fk1(k2)=Fk2(k1)
このようにKPS方式は、通信相手のIDがMACアドレス等から得られる場合に、鍵関数y = Fk(x)を計算することにより直ちに通信相手との共有鍵を求めることができるため、極めて少ない通信オーバーヘッドで鍵を共有することができる。また、利用者(ECU)は鍵関数y=Fk(x)を耐タンパ部などに格納してECU内で安全に管理する必要があるが、万が一、鍵関数が漏洩したとしても、システム全体の安全性に関わる鍵生成行列が解読されるためには(T+1)個の鍵関数が漏洩する必要があり、T個までの漏洩では他の利用者へのなりすましは情報量的に不可能である。鍵漏洩の台数に関わるセキュリティパラメータTとして大きな数を設定すると、鍵関数の計算により多くの時間を要するが、安全性はTに比例して高まる。
[各ECUの機能]
各ECUは、構成証明機能を実現するためにそれぞれのECUがもともと持つ機能に加えて、
(1)自搭載プログラムのハッシュ値を計算する機能とそれを格納するレジスタ
(2)マスタECUに搭載されたプログラムのハッシュ値を格納するレジスタ
(3)ECUがi 番目の場合に、Fi(x)=Fx(i)となる多項式(鍵関数)を格納するレジスタ
(4)内積計算機能
(5)AES(Advanced Encryption
Standard)等の共通鍵暗号の暗号化/復号機能
(6)車両ID、センターサーバ30との通信に必要な共通鍵の保持(予め規定した値を書き込み、ROMとして保持)を付加機能として有する。この付加部分は、好ましくは、耐タンパ性を有し、攻撃者による改竄、盗聴は不可能である。例えば、各ECUは、耐タンパ技術(内部回路の隠蔽処理)が施されたICチップを耐タンパ部(図1のTrusted Hardware)として有してよい。
各ECUは、構成証明機能を実現するためにそれぞれのECUがもともと持つ機能に加えて、
(1)自搭載プログラムのハッシュ値を計算する機能とそれを格納するレジスタ
(2)マスタECUに搭載されたプログラムのハッシュ値を格納するレジスタ
(3)ECUがi 番目の場合に、Fi(x)=Fx(i)となる多項式(鍵関数)を格納するレジスタ
(4)内積計算機能
(5)AES(Advanced Encryption
Standard)等の共通鍵暗号の暗号化/復号機能
(6)車両ID、センターサーバ30との通信に必要な共通鍵の保持(予め規定した値を書き込み、ROMとして保持)を付加機能として有する。この付加部分は、好ましくは、耐タンパ性を有し、攻撃者による改竄、盗聴は不可能である。例えば、各ECUは、耐タンパ技術(内部回路の隠蔽処理)が施されたICチップを耐タンパ部(図1のTrusted Hardware)として有してよい。
[マスタECU20の機能]
マスタECU20上記の各ECUと同様の付加機能に加えて、自車に搭載される可能性のある全てのECUの{種別、搭載プログラムのバージョン、同ハッシュ値}のデータベースを保持する。
マスタECU20上記の各ECUと同様の付加機能に加えて、自車に搭載される可能性のある全てのECUの{種別、搭載プログラムのバージョン、同ハッシュ値}のデータベースを保持する。
[センターサーバ30の機能]
センターサーバ30は、
(1)各車両それぞれに固有のKPS行列A={aij}の生成
(2)全車両の{車両ID Pi(i=0、1、2、...)、KPS行列A={aij}のデータベース
(3)全ECU搭載プログラムの{種別、バージョン、ハッシュ値}のデータベース
(4)全ECUの{種別、ECU毎のserial ID、共有鍵、搭載プログラムのバージョン}のデータベースの機能を持つ。なお、センターサーバ30と各車両の各ECUとの間に信頼された通信パスを構築するため、全てのECUについて、個別の共有鍵を生成し、種別、その種別におけるserial ID、共有鍵をデータベースとして保持するが、このデータはECU製造ベンダーにおいて各ECU毎に予め乱数を書き込んで出荷し、そのデータを安全な経路で情報提供することを想定する。尚、serial ID及び共有鍵は、好ましくは、各ECUの耐タンパ部に書き込みされる。また、全ECUの{種別、ECU毎のserial ID、共有鍵、搭載プログラムのバージョン}のデータベースは、バージョンアップ等のような各種の変更に応じて、ECU製造ベンダー等からの安全な経路で提供された情報に基づいて、速やかに更新される。
センターサーバ30は、
(1)各車両それぞれに固有のKPS行列A={aij}の生成
(2)全車両の{車両ID Pi(i=0、1、2、...)、KPS行列A={aij}のデータベース
(3)全ECU搭載プログラムの{種別、バージョン、ハッシュ値}のデータベース
(4)全ECUの{種別、ECU毎のserial ID、共有鍵、搭載プログラムのバージョン}のデータベースの機能を持つ。なお、センターサーバ30と各車両の各ECUとの間に信頼された通信パスを構築するため、全てのECUについて、個別の共有鍵を生成し、種別、その種別におけるserial ID、共有鍵をデータベースとして保持するが、このデータはECU製造ベンダーにおいて各ECU毎に予め乱数を書き込んで出荷し、そのデータを安全な経路で情報提供することを想定する。尚、serial ID及び共有鍵は、好ましくは、各ECUの耐タンパ部に書き込みされる。また、全ECUの{種別、ECU毎のserial ID、共有鍵、搭載プログラムのバージョン}のデータベースは、バージョンアップ等のような各種の変更に応じて、ECU製造ベンダー等からの安全な経路で提供された情報に基づいて、速やかに更新される。
[プロトコルの詳細]
本節では、実際の動作シナリオに沿って、製造時の初期設定、稼動開始時における構成証明、稼働中における認証と秘匿通信、部品交換後の初期設定の各ケースについて、プロトコルの詳細を説明する。なお、ここで下記のように表記する。
{m}k メッセージmを鍵kでAES-CMAC等を例とする認証付き暗号で作成した暗号文
Sigk(m) メッセージmに対して、HMAC等を例とする鍵付きハッシュ関数に共通鍵kを用いて得たハッシュ値
H(A) Aのハッシュ値
Rx ECUxが電源投入時に生成する使い捨ての乱数(X=mの時はマスタECUを示す)
Kx ECUxに予め格納するセンターサーバ30との共通鍵
H(progx) ECUxの搭載プログラムの計測されたハッシュ値
Ver(prog) 搭載プログラムのバージョン
Typex ECUxの種別
IDx ECUxのserial
ID
C counter
と表記する。
本節では、実際の動作シナリオに沿って、製造時の初期設定、稼動開始時における構成証明、稼働中における認証と秘匿通信、部品交換後の初期設定の各ケースについて、プロトコルの詳細を説明する。なお、ここで下記のように表記する。
{m}k メッセージmを鍵kでAES-CMAC等を例とする認証付き暗号で作成した暗号文
Sigk(m) メッセージmに対して、HMAC等を例とする鍵付きハッシュ関数に共通鍵kを用いて得たハッシュ値
H(A) Aのハッシュ値
Rx ECUxが電源投入時に生成する使い捨ての乱数(X=mの時はマスタECUを示す)
Kx ECUxに予め格納するセンターサーバ30との共通鍵
H(progx) ECUxの搭載プログラムの計測されたハッシュ値
Ver(prog) 搭載プログラムのバージョン
Typex ECUxの種別
IDx ECUxのserial
ID
C counter
と表記する。
[製造時の初期設定(初期化プロセス)]
製造時の初期設定においては、まずセンターサーバ30側で、
(1)車両IDに応じてKPS行列A={aij}を生成し、保管し、
(2)該当車両に搭載される可能性のある全ECUについてECU製造ベンダー又は車両メーカーからの情報提供により、{typex、IDx、Kx}のデータベースの準備の準備作業を行った上で、下記に示すプロセスにより、マスタECUの初期化を行う。
製造時の初期設定においては、まずセンターサーバ30側で、
(1)車両IDに応じてKPS行列A={aij}を生成し、保管し、
(2)該当車両に搭載される可能性のある全ECUについてECU製造ベンダー又は車両メーカーからの情報提供により、{typex、IDx、Kx}のデータベースの準備の準備作業を行った上で、下記に示すプロセスにより、マスタECUの初期化を行う。
マスタECU20における初期化プロセスは、図2に示すように、以下の通り実行される。
(1)マスタECUからセンターに、{typem、IDm、Ver(progm)}を送信する(図2のMsg-1参照)。
(2)センターサーバ30では、受信したtypem、IDmによりデータベースを検索し、該当ECUとの共有鍵Kmを得る。
(3)センターサーバ30にて、乱数Rを生成する。そして、生成した乱数Rを元に{R}KmをマスタECUに送信する(図2のMsg-2参照)。
(4)マスタECUでは受信した内容を予め保持しているKmで復号し、Rを得る。
(5)マスタECUでは、搭載プログラムのハッシュ値H(progm)を計測し、{車両ID、H(progm)}Rをセンターサーバ30へ送信する(図2のMsg-3参照)。
(6)センターサーバ30では、受信した内容をRで復号する。その結果、車両ID、H(progm)を得て、これを先に届いているtypem、Ver(progm)によりデータベースを検索して得られる値と一致するかを検証する。一致しない場合には応答しない。
(7)センターサーバ30では、車両IDに対応するKPS行列A={aij}を得て、その中のマスタECUの鍵生成アルゴリズムFm(x)を以下のように計算し、{Fm(x)}RをマスタECUへ送信する(図2のMsg-4参照)。
(8)センターサーバ30では、さらに、その車両に搭載可能性のある全ての{ECU種別、搭載プログラムのバージョン、同ハッシュ値}のリストをRで暗号化して送信する(図2のMsg-5参照)。
(9)マスタECUでは、受信した内容をRで復号し、Fm(x)、{ECU種別、搭載プログラムのバージョン、同ハッシュ値}のリストをデータベースへ格納する。Fm(x)やこのリストは、好ましくは、マスタECUの耐タンパ部に格納される。但し、このリストは、実装では不揮発メモリに格納されてもよい。
(1)マスタECUからセンターに、{typem、IDm、Ver(progm)}を送信する(図2のMsg-1参照)。
(2)センターサーバ30では、受信したtypem、IDmによりデータベースを検索し、該当ECUとの共有鍵Kmを得る。
(3)センターサーバ30にて、乱数Rを生成する。そして、生成した乱数Rを元に{R}KmをマスタECUに送信する(図2のMsg-2参照)。
(4)マスタECUでは受信した内容を予め保持しているKmで復号し、Rを得る。
(5)マスタECUでは、搭載プログラムのハッシュ値H(progm)を計測し、{車両ID、H(progm)}Rをセンターサーバ30へ送信する(図2のMsg-3参照)。
(6)センターサーバ30では、受信した内容をRで復号する。その結果、車両ID、H(progm)を得て、これを先に届いているtypem、Ver(progm)によりデータベースを検索して得られる値と一致するかを検証する。一致しない場合には応答しない。
(7)センターサーバ30では、車両IDに対応するKPS行列A={aij}を得て、その中のマスタECUの鍵生成アルゴリズムFm(x)を以下のように計算し、{Fm(x)}RをマスタECUへ送信する(図2のMsg-4参照)。
(9)マスタECUでは、受信した内容をRで復号し、Fm(x)、{ECU種別、搭載プログラムのバージョン、同ハッシュ値}のリストをデータベースへ格納する。Fm(x)やこのリストは、好ましくは、マスタECUの耐タンパ部に格納される。但し、このリストは、実装では不揮発メモリに格納されてもよい。
マスタECU20の初期化が完了した後、各ECUについても、図3に示すように、下記の手順により初期化を行う。
(1)ECUxは、マスタECUに対し車両IDを問い合わせする。
(2)マスタECUは問い合わせに対し車両IDを応答する(図3のMsg-6参照)。
(3)ECUxは、{typex、IDx、Ver(progx)}をセンターサーバ30へ送信する(図3のMsg-7参照)。
(4)センターサーバ30では、受信したtypex、IDxによりデータベースを検索し、ECUxとの共有鍵Kxを得る。
(5)センターサーバ30にて、乱数Rxを生成する。そして、生成した乱数RxをKxで暗号化した{Rx}Kxを各ECUへ送信する(図3のMsg-8参照)。
(6)ECUxでは受信した内容をKxで復号し、Rxを得る。
(7)ECUxでは、{車両ID、H(progx)}Rxをセンターサーバ30へ送信する(図3のMsg-9参照)。
(8)センターサーバ30では、受信した内容をRxで復号する。その結果、車両ID、H(progx)を得て、typex、Ver(progx)によりデータベースを検索して得られる正規プログラムのハッシュ値と一致するかを検証する。一致しない場合には応答しない。
(9)センターサーバ30では、車両IDに対応するKPS行列A={aij}を得て、ECUxの鍵生成アルゴリズムFx(y)を以下のように計算し、{Fx(y)}RxをECUxへ送信する(図3のMsg-10参照)。
(10)さらに、当該車両のマスタECUの正規プログラムのハッシュ値{H(progm)}Rxを送信する(図3のMsg-11参照)。
(11)ECUxでは受信した内容をRxで復号する。そして、{Fx(y)、H(progm)}を格納する。これらの{Fx(y)、H(progm)}は、好ましくは、ECUxの耐タンパ部に格納される。
(1)ECUxは、マスタECUに対し車両IDを問い合わせする。
(2)マスタECUは問い合わせに対し車両IDを応答する(図3のMsg-6参照)。
(3)ECUxは、{typex、IDx、Ver(progx)}をセンターサーバ30へ送信する(図3のMsg-7参照)。
(4)センターサーバ30では、受信したtypex、IDxによりデータベースを検索し、ECUxとの共有鍵Kxを得る。
(5)センターサーバ30にて、乱数Rxを生成する。そして、生成した乱数RxをKxで暗号化した{Rx}Kxを各ECUへ送信する(図3のMsg-8参照)。
(6)ECUxでは受信した内容をKxで復号し、Rxを得る。
(7)ECUxでは、{車両ID、H(progx)}Rxをセンターサーバ30へ送信する(図3のMsg-9参照)。
(8)センターサーバ30では、受信した内容をRxで復号する。その結果、車両ID、H(progx)を得て、typex、Ver(progx)によりデータベースを検索して得られる正規プログラムのハッシュ値と一致するかを検証する。一致しない場合には応答しない。
(9)センターサーバ30では、車両IDに対応するKPS行列A={aij}を得て、ECUxの鍵生成アルゴリズムFx(y)を以下のように計算し、{Fx(y)}RxをECUxへ送信する(図3のMsg-10参照)。
(11)ECUxでは受信した内容をRxで復号する。そして、{Fx(y)、H(progm)}を格納する。これらの{Fx(y)、H(progm)}は、好ましくは、ECUxの耐タンパ部に格納される。
以上の初期設定方法によれば、マスタECUやECUxが共通鍵KmやKxを有していない場合や、正規プログラム等を実装していない等の場合には、マスタECUやECUxに、今後の通信に必要となる鍵生成アルゴリズムFm(x)やFx(y)が供給されないので、車両側のシステム10の構成の不正な変更等を無効化することができる。
[稼動開始時における構成証明]
稼動開始時、すなわちエンジンキーONによる電源投入時には、図4に示すように、下記のプロセスにより、各ECUにおいて構成証明が確認される。
(1)マスタECUmは、乱数R1、R2を生成する。尚、乱数R1、R2に加えて、第3の乱数R3が生成されてもよい。乱数R2は、好ましくは、マスタECUmの耐タンパ部に格納される。
(2)マスタECUmは、R1を車内全ECUへブロードキャストし(図4のMsg-12参照)、各ECUでは、R1を受信する。尚、このR1のブロードキャストは、ロストの可能性を考慮して、何度か実行されてもよい。また、R1と共に、マスタECUmのserial ID(IDm)がブロードキャストされてもよい。
(3)各ECUでは、使い捨ての乱数Rを生成する。
(4)ECUxでは、搭載プログラムのハッシュ値H(progx)を計測し、マスタECUに対して署名つきメッセージSigFx(m)(IDx、H(progx)、R1、R)を送信することで構成証明を開始する(図4のMsg-13参照)。
(5)マスタECUmでは、署名を検証した後、ECUxの搭載プログラムの計測されたハッシュ値を得る。そして、保持するデータベースを検索し、ECUxが搭載し得る正規搭載プログラムのハッシュ値リストに入っているかを確認する。これにより構成証明を完了する。
(6)マスタECUmでは、ECUxが搭載し得る正規搭載プログラムのハッシュ値リストに入っていることが確認された場合、{ステップ(1)で生成した乱数R2、復号して得たR、計測されたハッシュ値H(progm)}を、Fm(x)で暗号化したメッセージ{R2、R、H(progm)}Fm(x)を、返送する(図4のMsg-14参照)。この際、R2に加えて、第3の乱数R3が返送されてもよい。また、マスタECUmのserial ID(IDm)が平文で付加されてもよい。他方、ECUxが搭載し得る正規搭載プログラムのハッシュ値リストに入っていることが確認できない場合、上記の返送が実行されず、この結果、当該ECUxは構成証明を受けられないことになる。このような構成証明を受けられないECUxは、例えば故障と判断されてバスマスタにより遮断されることで、他のECUとの通信が事前に無効化されてもよい。
(7)ECUxでは、受信したメッセージをFx(m)で復号し、(7a)復号して得たH(progm) が初期化時に格納した値と一致していることを検証する。(7b)R2をAttestation
Tokenとして保持する。R2は、好ましくは、ECUxの耐タンパ部に格納される。また、第3の乱数R3が返送された場合には、counterをc=R3にセットしてもよい。なお、このR1、R2およびRは記録媒体には保存せず、稼動停止時には消滅させ、次の電源投入時に再生成する。
稼動開始時、すなわちエンジンキーONによる電源投入時には、図4に示すように、下記のプロセスにより、各ECUにおいて構成証明が確認される。
(1)マスタECUmは、乱数R1、R2を生成する。尚、乱数R1、R2に加えて、第3の乱数R3が生成されてもよい。乱数R2は、好ましくは、マスタECUmの耐タンパ部に格納される。
(2)マスタECUmは、R1を車内全ECUへブロードキャストし(図4のMsg-12参照)、各ECUでは、R1を受信する。尚、このR1のブロードキャストは、ロストの可能性を考慮して、何度か実行されてもよい。また、R1と共に、マスタECUmのserial ID(IDm)がブロードキャストされてもよい。
(3)各ECUでは、使い捨ての乱数Rを生成する。
(4)ECUxでは、搭載プログラムのハッシュ値H(progx)を計測し、マスタECUに対して署名つきメッセージSigFx(m)(IDx、H(progx)、R1、R)を送信することで構成証明を開始する(図4のMsg-13参照)。
(5)マスタECUmでは、署名を検証した後、ECUxの搭載プログラムの計測されたハッシュ値を得る。そして、保持するデータベースを検索し、ECUxが搭載し得る正規搭載プログラムのハッシュ値リストに入っているかを確認する。これにより構成証明を完了する。
(6)マスタECUmでは、ECUxが搭載し得る正規搭載プログラムのハッシュ値リストに入っていることが確認された場合、{ステップ(1)で生成した乱数R2、復号して得たR、計測されたハッシュ値H(progm)}を、Fm(x)で暗号化したメッセージ{R2、R、H(progm)}Fm(x)を、返送する(図4のMsg-14参照)。この際、R2に加えて、第3の乱数R3が返送されてもよい。また、マスタECUmのserial ID(IDm)が平文で付加されてもよい。他方、ECUxが搭載し得る正規搭載プログラムのハッシュ値リストに入っていることが確認できない場合、上記の返送が実行されず、この結果、当該ECUxは構成証明を受けられないことになる。このような構成証明を受けられないECUxは、例えば故障と判断されてバスマスタにより遮断されることで、他のECUとの通信が事前に無効化されてもよい。
(7)ECUxでは、受信したメッセージをFx(m)で復号し、(7a)復号して得たH(progm) が初期化時に格納した値と一致していることを検証する。(7b)R2をAttestation
Tokenとして保持する。R2は、好ましくは、ECUxの耐タンパ部に格納される。また、第3の乱数R3が返送された場合には、counterをc=R3にセットしてもよい。なお、このR1、R2およびRは記録媒体には保存せず、稼動停止時には消滅させ、次の電源投入時に再生成する。
尚、上述の図4に示す初期化プロセスでは、不正のマスタECUmを考慮しているため、図4のMsg-14において、マスタECUmのロムのハッシュ値H(progm)が追加されているが、不正のマスタECUmを考慮しない場合には、H(progm)を送信しない構成も可能である。
[稼働中における認証と秘匿通信の実現]
車両内の通信は、各種の状況に応じて、情報の秘匿/認証、ユニキャスト/ブロードキャストの4種類の態様で実行されてもよい。以下それぞれについて説明する。
車両内の通信は、各種の状況に応じて、情報の秘匿/認証、ユニキャスト/ブロードキャストの4種類の態様で実行されてもよい。以下それぞれについて説明する。
(1)署名つき通信(ユニキャスト)
送信側ECUxでは、{payload、c、SigFx(y)(payload、R2、c)}を受信側ECUyに送信する。尚、このメッセージには、送信側ECUxのserial ID(IDx)が平文で付加されてもよい。送信側ECUxでは、送信後、カウンタをインクリメントする。
送信側ECUxでは、{payload、c、SigFx(y)(payload、R2、c)}を受信側ECUyに送信する。尚、このメッセージには、送信側ECUxのserial ID(IDx)が平文で付加されてもよい。送信側ECUxでは、送信後、カウンタをインクリメントする。
受信側ECUyでは、受信した{payload、c}に、Attestation Tokenとして保持しているR2を付加して共通鍵Fy(x)により署名を計算し、当該計算で得た署名SigFy(x)(payload、R2、c)が、受信したSigFx(y)(payload、R2、c)と一致していることを確認する。一致している場合には、通常通り、例えば受信したメッセージに応答する等して、通信が有効化される。他方、一致していない場合、通信が無効化される。通信の無効化は、例えば受信したメッセージを破棄する(応答しない)ことで実現されてもよい。送信側ECUx又は受信側ECUyが構成証明を受けていないECUである場合には、R2が一致せず、その結果、署名が一致することがないので、当該送信側ECUxから当該受信側ECUyへの通信が無効化される。
尚、受信側ECUyでは、カウンタのチェックを実行してもよい。例えば送信側毎に用意されたカウンタ・テーブルにて受信したcの範囲をチェックしてもよい。例えば、各ECUは、相手毎に受信用カウンタ・テーブルを有し、メッセージを受信した際に、正常なメッセージであれば送信側ECU毎にカウンタを保持する。そして、カウンタのチェックは、例えばCprevious<Ccurrent<Cprevious+232を満たすか否かを判断することで、実行されてもよい。このようなカウンタはメッセージのフレッシュネスを保つために有用となる。尚、このようなカウンタのチェックは、後述するその他の通信形態においても、受信側ECUにおいて同様に実行されてもよい。
(2)秘匿通信(ユニキャスト)
送信側ECUxでは、{payload、R2、c}Fx(y)を受信側ECUyに送信する。尚、このメッセージには、送信側ECUxのserial ID(IDx)が平文で付加されてもよい。
送信側ECUxでは、{payload、R2、c}Fx(y)を受信側ECUyに送信する。尚、このメッセージには、送信側ECUxのserial ID(IDx)が平文で付加されてもよい。
受信側ECUyでは、受信内容をFy(x)で復号し、R2が保持していたものと一致するかを検証する。これにより、送信側ECU又は受信側ECUが構成証明を受けていないECUである場合には、R2が一致せず、その結果、受信した内容が復号されないので、当該送信側ECUから当該受信側ECUへの通信が無効化される。ただし、受信側ECUyの耐タンパ部において、初期化プロセスでR2が得られていない状態では、復号処理をしないこととする。
(3)署名つき通信(ブロードキャスト)
送信側ECUでは、{payload、c、SigR2(payload、c)}を送信(ブロードキャスト)する。尚、このメッセージには、送信側ECUxのserial ID(IDx)が平文で付加されてもよい。
送信側ECUでは、{payload、c、SigR2(payload、c)}を送信(ブロードキャスト)する。尚、このメッセージには、送信側ECUxのserial ID(IDx)が平文で付加されてもよい。
受信側ECUでは、受信したpayload、cと、稼動開始時に得たR2によりSigR2(payload、c)を計算し、受信したものと一致しているか確認する。同様に、一致している場合には、受信したpayloadに応答等して、通信が有効化される。他方、一致していない場合、受信したpayloadを破棄等して、通信が無効化される。これにより、送信側ECU又は受信側ECUが構成証明を受けていないECUである場合には、R2が一致せず、その結果、署名が一致することがないので、当該送信側ECUから当該受信側ECUへの通信が無効化される。
(4)秘匿通信(ブロードキャスト)
送信側ECUでは、{payload、c}R2を送信(ブロードキャスト)する。尚、このメッセージには、送信側ECUxのserial ID(IDx)が平文で付加されてもよい。
送信側ECUでは、{payload、c}R2を送信(ブロードキャスト)する。尚、このメッセージには、送信側ECUxのserial ID(IDx)が平文で付加されてもよい。
受信側ECUでは、受信した内容を、稼動開始時に得たR2により復号する。これにより、送信側ECU又は受信側ECUが構成証明を受けていないECUである場合には、R2が一致せず、その結果、受信した内容が復号されないので、当該送信側ECUから当該受信側ECUへの通信が無効化される。ただし、受信側ECUyの耐タンパ部では、初期化プロセスでR2が得られていない状態では、復号処理をしないこととする。
以上の各種通信においては、稼動開始時に構成証明を受けることによってのみ得られるAttestation Token(上記の例では、R2)を用いて互いを認証し合うので、改竄等により不正ないし不適当な構成を有するECUを確実に無効化することができる。
次に、ECU交換後の初期設定方法について説明する。
マスタECU20以外のECU交換が行われた場合には、基本的には、上述の製造時の初期設定と同様の処理を再度実行すればよい。即ち、マスタECU以外のECUを交換する際には、単純に当該ECUについてのみ、上述の各ECUにおける初期化プロセスの内容を繰り返せばよい。
マスタECUを交換する場合には、その中に車両IDを搭載しているため、以下の手順が実行されてもよい。
(1)販売店等を通じて、車両ID
を申告した上で交換用マスタECUを発注する。
(2)製造者側で同ID をROMに格納した上で、マスタECUを出荷する。
(3)マスタECUを交換した上で、上述のマスタECUにおける初期化プロセスを再実行する。
(4)上述の各ECUにおける初期化プロセスの内容を全ECUについて再実行する。
(1)販売店等を通じて、車両ID
を申告した上で交換用マスタECUを発注する。
(2)製造者側で同ID をROMに格納した上で、マスタECUを出荷する。
(3)マスタECUを交換した上で、上述のマスタECUにおける初期化プロセスを再実行する。
(4)上述の各ECUにおける初期化プロセスの内容を全ECUについて再実行する。
[評価]
本願発明者は、本実施例1の評価のため、TPM方式を用いて同様の機能を実現した場合との比較を行った。両者で最も大きな相違は、本実施例1ではKPSを用いており、TPMはRSAによるPKIを利用していることである。TPMにおいてもっと計算リソースを要求するのは、署名(TPM_ORD_Sign)と復号((TPM_ORD_UnBind)であり、この両者について比較を行った。実験では、16byteのペイロードをIntel Core2Duo1.06GHzを搭載したPCで暗号化および復号する際の時間を比較した。図5に比較結果を示す。ここで、RSA1280は2020年に世界のトップクラスのスーパーコンピュータを用いて1年で解読可能と推測される暗号強度である。一方、T=300は、2020年頃のECU数を600と仮定しその半数までのECUを破壊し鍵生成アルゴリズムを入手しても安全という想定で選択したセキュリティパラメータ値である。図5から、本実施例1の方が、TPMで使用しているRSAに比べて十分に高速であることが容易に読み取れる。
本願発明者は、本実施例1の評価のため、TPM方式を用いて同様の機能を実現した場合との比較を行った。両者で最も大きな相違は、本実施例1ではKPSを用いており、TPMはRSAによるPKIを利用していることである。TPMにおいてもっと計算リソースを要求するのは、署名(TPM_ORD_Sign)と復号((TPM_ORD_UnBind)であり、この両者について比較を行った。実験では、16byteのペイロードをIntel Core2Duo1.06GHzを搭載したPCで暗号化および復号する際の時間を比較した。図5に比較結果を示す。ここで、RSA1280は2020年に世界のトップクラスのスーパーコンピュータを用いて1年で解読可能と推測される暗号強度である。一方、T=300は、2020年頃のECU数を600と仮定しその半数までのECUを破壊し鍵生成アルゴリズムを入手しても安全という想定で選択したセキュリティパラメータ値である。図5から、本実施例1の方が、TPMで使用しているRSAに比べて十分に高速であることが容易に読み取れる。
以上の通り、本実施例1によれば、車内通信におけるセキュリティに着目し、一般のPC等で利用されているTPMに比べ低リソースで動作する、車両内のECUの構成証明に適した手法と、構成が証明されたECU間でのみ通信可能となるプロトコルを提供することができる。
図6は、上述の実施例1と本実施例2の比較図であり、図6(A)は、上述の実施例1の暗号通信システム1のシステム構成の概要を示し、図6(B)は、本実施例2の暗号通信システム2のシステム構成の概要を示す。実施例2は、マスタECU20が存在せず、その代わりにセンターサーバ30が構成証明を行う点が、主に上述の実施例1と異なる。以下では、実施例2に特有の構成を重点的に説明するが、他の構成は、適宜、上述の実施例1と同様であってよい。
[製造時の初期設定(初期化プロセス)]
製造時の初期設定においては、まずセンターサーバ30側で、
(1)該当車両に搭載される全ECU間の共通鍵Kを、車両IDに応じて生成し、保管し
(2)該当車両に搭載される可能性のある全ECUについてECU製造ベンダー又は車両メーカーからの情報提供により、{typex、IDx、Kx}のデータベースの準備の準備作業を行う。共通鍵Kは、該当車両に搭載される全ECU分の鍵セットであり、例えばKABと記述する場合は、2つのECUx(X=A,B)間の共通鍵を表す。そして、各ECUについて、図7に示すように、下記の手順により初期化を行う。
(1)各ECUxは、{typex、IDx、Ver(progx)}をセンターサーバ30へ送信する(図7のMsg-21参照)。
(2)センターサーバ30では、受信したtypex、IDxによりデータベースを検索し、ECUxとの共有鍵Kxを得る。
(3)センターサーバ30にて、乱数Rxを生成する。そして、生成した乱数RxをKxで暗号化した{Rx}Kxを各ECUへ送信する(図7のMsg-22参照)。
(4)各ECUxでは受信した内容をKxで復号し、Rxを得る。
(5)各ECUxでは、{車両ID、H(progx)}Rxをセンターサーバ30へ送信する(図7のMsg-23参照)。
(6)センターサーバ30では、受信した内容をRxで復号する。その結果、車両ID、H(progx)を得て、typex、Ver(progx)によりデータベースを検索して得られる正規プログラムのハッシュ値と一致するかを検証する。一致しない場合には応答しない。
(7)センターサーバ30では、車両IDに対応する全ECU分の共通鍵Kの暗号{K}RxをECUxへ送信する(図7のMsg-24参照)。
(8)各ECUxでは受信した内容をRxで復号する。そして、全ECU分の共通鍵Kを格納する。Kは、好ましくは、ECUxの耐タンパ部に格納される。
製造時の初期設定においては、まずセンターサーバ30側で、
(1)該当車両に搭載される全ECU間の共通鍵Kを、車両IDに応じて生成し、保管し
(2)該当車両に搭載される可能性のある全ECUについてECU製造ベンダー又は車両メーカーからの情報提供により、{typex、IDx、Kx}のデータベースの準備の準備作業を行う。共通鍵Kは、該当車両に搭載される全ECU分の鍵セットであり、例えばKABと記述する場合は、2つのECUx(X=A,B)間の共通鍵を表す。そして、各ECUについて、図7に示すように、下記の手順により初期化を行う。
(1)各ECUxは、{typex、IDx、Ver(progx)}をセンターサーバ30へ送信する(図7のMsg-21参照)。
(2)センターサーバ30では、受信したtypex、IDxによりデータベースを検索し、ECUxとの共有鍵Kxを得る。
(3)センターサーバ30にて、乱数Rxを生成する。そして、生成した乱数RxをKxで暗号化した{Rx}Kxを各ECUへ送信する(図7のMsg-22参照)。
(4)各ECUxでは受信した内容をKxで復号し、Rxを得る。
(5)各ECUxでは、{車両ID、H(progx)}Rxをセンターサーバ30へ送信する(図7のMsg-23参照)。
(6)センターサーバ30では、受信した内容をRxで復号する。その結果、車両ID、H(progx)を得て、typex、Ver(progx)によりデータベースを検索して得られる正規プログラムのハッシュ値と一致するかを検証する。一致しない場合には応答しない。
(7)センターサーバ30では、車両IDに対応する全ECU分の共通鍵Kの暗号{K}RxをECUxへ送信する(図7のMsg-24参照)。
(8)各ECUxでは受信した内容をRxで復号する。そして、全ECU分の共通鍵Kを格納する。Kは、好ましくは、ECUxの耐タンパ部に格納される。
以上の初期設定方法によれば、ECUxが共通鍵Kxを有していない場合や、正規プログラム等を実装していない等の場合には、ECUxに、今後の通信に必要となる共通鍵Kが供給されないので、車両側のシステム10の構成の不正な変更等を無効化することができる。
[稼動開始時における構成証明]
稼動開始時、すなわちエンジンキーONによる電源投入時には、図8に示すように、下記のプロセスにより、各ECUにおいて構成証明が確認される。
(1)センターサーバ30は、乱数R1、R2、R3を生成する。
(2)センターサーバ30は、R1を車内全ECUへブロードキャストし(図8のMsg-25参照)、各ECUでは、R1を受信する。尚、このR1のブロードキャストは、ロストの可能性を考慮して、何度か実行されてもよい。
(3)各ECUでは、使い捨ての乱数R4を生成する。
(4)各ECUxでは、搭載プログラムのハッシュ値H(progx)を計測し、センターサーバ30に対して署名つきメッセージSigKx(IDx、H(progx)、R1、R4)を送信することで構成証明を開始する(図8のMsg-26参照)。
(5)センターサーバ30では、署名を検証した後、ECUxの搭載プログラムの計測されたハッシュ値を得る。保持するデータベースを検索し、ECUxが搭載し得る正規搭載プログラムのハッシュ値リストに入っているかを確認する。これにより構成証明を完了する。
(6)センターサーバ30では、ECUxが搭載し得る正規搭載プログラムのハッシュ値リストに入っていることが確認された場合、{ステップ(1)で生成した乱数R2、R3、及び、復号して得たR4}を、Kxで暗号化したメッセージ{R2、R3、R4}Kxを、返送する(図8のMsg-27参照)。他方、ECUxが搭載し得る正規搭載プログラムのハッシュ値リストに入っていることが確認できない場合、上記の返送が実行されず、この結果、当該ECUxは構成証明を受けられないことになる。このような構成証明を受けられないECUxは、例えばバスマスタにより遮断されることで、他のECUとの通信が事前に無効化されてもよい。
(7)ECUxでは、受信したメッセージをKxで復号し、R2をAttestation Tokenとして保持する。R2は、好ましくは、ECUxの耐タンパ部に格納される。また、counterをc=R3にセットしてもよい。なお、このR1、R2およびR4は記録媒体には保存せず、稼動停止時には消滅させ、次の電源投入時に再生成する。
稼動開始時、すなわちエンジンキーONによる電源投入時には、図8に示すように、下記のプロセスにより、各ECUにおいて構成証明が確認される。
(1)センターサーバ30は、乱数R1、R2、R3を生成する。
(2)センターサーバ30は、R1を車内全ECUへブロードキャストし(図8のMsg-25参照)、各ECUでは、R1を受信する。尚、このR1のブロードキャストは、ロストの可能性を考慮して、何度か実行されてもよい。
(3)各ECUでは、使い捨ての乱数R4を生成する。
(4)各ECUxでは、搭載プログラムのハッシュ値H(progx)を計測し、センターサーバ30に対して署名つきメッセージSigKx(IDx、H(progx)、R1、R4)を送信することで構成証明を開始する(図8のMsg-26参照)。
(5)センターサーバ30では、署名を検証した後、ECUxの搭載プログラムの計測されたハッシュ値を得る。保持するデータベースを検索し、ECUxが搭載し得る正規搭載プログラムのハッシュ値リストに入っているかを確認する。これにより構成証明を完了する。
(6)センターサーバ30では、ECUxが搭載し得る正規搭載プログラムのハッシュ値リストに入っていることが確認された場合、{ステップ(1)で生成した乱数R2、R3、及び、復号して得たR4}を、Kxで暗号化したメッセージ{R2、R3、R4}Kxを、返送する(図8のMsg-27参照)。他方、ECUxが搭載し得る正規搭載プログラムのハッシュ値リストに入っていることが確認できない場合、上記の返送が実行されず、この結果、当該ECUxは構成証明を受けられないことになる。このような構成証明を受けられないECUxは、例えばバスマスタにより遮断されることで、他のECUとの通信が事前に無効化されてもよい。
(7)ECUxでは、受信したメッセージをKxで復号し、R2をAttestation Tokenとして保持する。R2は、好ましくは、ECUxの耐タンパ部に格納される。また、counterをc=R3にセットしてもよい。なお、このR1、R2およびR4は記録媒体には保存せず、稼動停止時には消滅させ、次の電源投入時に再生成する。
[稼働中における認証と秘匿通信の実現]
車両内の通信は、各種の状況に応じて、情報の秘匿/認証、ユニキャスト/ブロードキャストの4種類の態様で実行されてもよい。以下それぞれについて説明する。
車両内の通信は、各種の状況に応じて、情報の秘匿/認証、ユニキャスト/ブロードキャストの4種類の態様で実行されてもよい。以下それぞれについて説明する。
(1)署名つき通信(ユニキャスト)
送信側ECUxでは、上述の初期化プロセスで得た受信側ECUyとの共通鍵Kxyを用いて、{payload、c、SigKxy(payload、R2、c)}を受信側ECUyに送信する。尚、このメッセージには、送信側ECUxのserial ID(IDx)が平文で付加されてもよい。送信側ECUxでは、送信後、カウンタをインクリメントする。
送信側ECUxでは、上述の初期化プロセスで得た受信側ECUyとの共通鍵Kxyを用いて、{payload、c、SigKxy(payload、R2、c)}を受信側ECUyに送信する。尚、このメッセージには、送信側ECUxのserial ID(IDx)が平文で付加されてもよい。送信側ECUxでは、送信後、カウンタをインクリメントする。
受信側ECUyでは、受信した{payload、c}に、Attestation Tokenとして保持しているR2を付加して、同様に上述の初期化プロセスで得た共通鍵Kxyにより署名を計算し、受信したSigKxy(payload、R2、c)と一致していることを確認する。一致している場合には、通常通り、例えば受信したメッセージに応答する等して、通信が有効化される。他方、一致していない場合、通信が無効化される。通信の無効化は、例えば受信したメッセージを破棄する(応答しない)ことで実現されてもよい。これにより、送信側ECUx又は受信側ECUyが構成証明を受けていないECUである場合には、R2が一致せず、その結果、署名が一致することがないので、当該送信側ECUxから当該受信側ECUyへの通信が無効化される。
尚、受信側ECUyでは、上述の実施例1と同様、カウンタのチェックを実行してもよい。このようなカウンタのチェックは、後述するその他の通信形態においても、受信側ECUにおいて同様に実行されてもよい。
(2)秘匿通信(ユニキャスト)
送信側ECUxでは、{payload、R2、c}Kxyを受信側ECUyに送信する。尚、このメッセージには、送信側ECUxのserial ID(IDx)が平文で付加されてもよい。
送信側ECUxでは、{payload、R2、c}Kxyを受信側ECUyに送信する。尚、このメッセージには、送信側ECUxのserial ID(IDx)が平文で付加されてもよい。
受信側ECUyでは、受信内容をKxyで復号し、R2が保持していたものと一致するかを検証する。これにより、送信側ECU又は受信側ECUが構成証明を受けていないECUである場合には、R2が一致せず、その結果、受信した内容が復号されないので、当該送信側ECUから当該受信側ECUへの通信が無効化される。ただし、受信側ECUyの耐タンパ部では、初期化プロセスでR2が得られていない状態では、復号処理をしないこととする。
(3)署名つき通信(ブロードキャスト)
送信側ECUでは、稼動開始時に得たR2を用いて、{payload、c、SigR2(payload、c)}を送信(ブロードキャスト)する。尚、このメッセージには、送信側ECUxのserial ID(IDx)が平文で付加されてもよい。
送信側ECUでは、稼動開始時に得たR2を用いて、{payload、c、SigR2(payload、c)}を送信(ブロードキャスト)する。尚、このメッセージには、送信側ECUxのserial ID(IDx)が平文で付加されてもよい。
受信側ECUでは、受信したpayload、cと、稼動開始時に得たR2によりSigR2(payload、c)を計算し、受信したものと一致しているか確認する。同様に、一致している場合には、受信したpayloadに応答等して、通信が有効化される。他方、一致していない場合、受信したpayloadを破棄等して、通信が無効化される。これにより、送信側ECU又は受信側ECUが構成証明を受けていないECUである場合には、R2が一致せず、その結果、署名が一致することがないので、当該送信側ECUから当該受信側ECUへの通信が無効化される。
(4)秘匿通信(ブロードキャスト)
送信側ECUでは、稼動開始時に得たR2を用いて、{payload、c}R2を送信(ブロードキャスト)する。尚、このメッセージには、送信側ECUxのserial ID(IDx)が平文で付加されてもよい。
送信側ECUでは、稼動開始時に得たR2を用いて、{payload、c}R2を送信(ブロードキャスト)する。尚、このメッセージには、送信側ECUxのserial ID(IDx)が平文で付加されてもよい。
受信側ECUでは、受信した内容を、稼動開始時に得たR2により復号する。これにより、送信側ECU又は受信側ECUが構成証明を受けていないECUである場合には、R2が一致せず、その結果、受信した内容が復号されないので、当該送信側ECUから当該受信側ECUへの通信が無効化される。ただし、受信側ECUyの耐タンパ部では、初期化プロセスでR2が得られていない状態では、復号処理をしないこととする。
以上の各種通信においては、稼動開始時に構成証明を受けることによってのみ得られるAttestation Token(上記の例では、R2)を用いて互いを認証し合うので、改竄等により不正ないし不適当な構成を有するECUを確実に無効化することができる。
図9は、実施例3の暗号通信システム3のシステム構成の概要を示す。実施例3は、マスタECU20が存在せず、その代わりに各ECU間で構成証明を行う点が、主に上述の実施例1と異なる。以下では、実施例3に特有の構成を重点的に説明するが、他の構成は、適宜、上述の実施例1と同様であってよい。
[製造時の初期設定(初期化プロセス)]
製造時の初期設定においては、まずセンターサーバ30側で、
(1)該当車両に搭載される全ECU間の共通鍵Kを、車両IDに応じて生成し、保管し
(2)該当車両に搭載される可能性のある全ECUについてECU製造ベンダー又は車両メーカーからの情報提供により、{typex、IDx、Kx}のデータベースの準備の準備作業を行う。共通鍵Kは、該当車両に搭載される全ECU分の鍵セットであり、例えばKABと記述する場合は、2つのECUx(X=A,B)間の共通鍵を表す。そして、各ECUについて、図10に示すように、下記の手順により初期化を行う。
(1)各ECUxは、{typex、IDx、Ver(progx)}をセンターサーバ30へ送信する(図10のMsg-31参照)。
(2)センターサーバ30では、受信したtypex、IDxによりデータベースを検索し、ECUxとの共有鍵Kxを得る。
(3)センターサーバ30にて、乱数Rxを生成する。そして、生成した乱数RxをKxで暗号化した{Rx}Kxを各ECUへ送信する(図10のMsg-32参照)。
(4)各ECUxでは受信した内容をKxで復号し、Rxを得る。
(5)各ECUxでは、{車両ID、H(progx)}Rxをセンターサーバ30へ送信する(図10のMsg-33参照)。
(6)センターサーバ30では、受信した内容をRxで復号する。その結果、車両ID、H(progx)を得て、typex、Ver(progx)によりデータベースを検索して得られる正規プログラムのハッシュ値と一致するかを検証する。一致しない場合には応答しない。
(7)センターサーバ30では、車両IDに対応する全ECU分の共通鍵Kの暗号{K}RxをECUxへ送信する(図10のMsg-34a参照)。
(8)センターサーバ30では、さらに、その車両に搭載可能性のある全ての{ECU種別、搭載プログラムのバージョン、同ハッシュ値}のリストをRxで暗号化して送信する(図10のMsg-34b参照)。
(9)各ECUxでは、受信した内容をRxで復号。{K}、{ECU種別、搭載プログラムのバージョン、同ハッシュ値}のリストをデータベースへ格納する。{K}やこのリストは、好ましくは、各ECUxの耐タンパ部に格納される。但し、このリストは、実装では不揮発メモリに格納されてもよい。
製造時の初期設定においては、まずセンターサーバ30側で、
(1)該当車両に搭載される全ECU間の共通鍵Kを、車両IDに応じて生成し、保管し
(2)該当車両に搭載される可能性のある全ECUについてECU製造ベンダー又は車両メーカーからの情報提供により、{typex、IDx、Kx}のデータベースの準備の準備作業を行う。共通鍵Kは、該当車両に搭載される全ECU分の鍵セットであり、例えばKABと記述する場合は、2つのECUx(X=A,B)間の共通鍵を表す。そして、各ECUについて、図10に示すように、下記の手順により初期化を行う。
(1)各ECUxは、{typex、IDx、Ver(progx)}をセンターサーバ30へ送信する(図10のMsg-31参照)。
(2)センターサーバ30では、受信したtypex、IDxによりデータベースを検索し、ECUxとの共有鍵Kxを得る。
(3)センターサーバ30にて、乱数Rxを生成する。そして、生成した乱数RxをKxで暗号化した{Rx}Kxを各ECUへ送信する(図10のMsg-32参照)。
(4)各ECUxでは受信した内容をKxで復号し、Rxを得る。
(5)各ECUxでは、{車両ID、H(progx)}Rxをセンターサーバ30へ送信する(図10のMsg-33参照)。
(6)センターサーバ30では、受信した内容をRxで復号する。その結果、車両ID、H(progx)を得て、typex、Ver(progx)によりデータベースを検索して得られる正規プログラムのハッシュ値と一致するかを検証する。一致しない場合には応答しない。
(7)センターサーバ30では、車両IDに対応する全ECU分の共通鍵Kの暗号{K}RxをECUxへ送信する(図10のMsg-34a参照)。
(8)センターサーバ30では、さらに、その車両に搭載可能性のある全ての{ECU種別、搭載プログラムのバージョン、同ハッシュ値}のリストをRxで暗号化して送信する(図10のMsg-34b参照)。
(9)各ECUxでは、受信した内容をRxで復号。{K}、{ECU種別、搭載プログラムのバージョン、同ハッシュ値}のリストをデータベースへ格納する。{K}やこのリストは、好ましくは、各ECUxの耐タンパ部に格納される。但し、このリストは、実装では不揮発メモリに格納されてもよい。
[稼動開始時における構成証明]
稼動開始時、すなわちエンジンキーONによる電源投入時には、図11に示すように、下記のプロセスにより、各ECUにおいて構成証明が確認される。ここでは、形式的に、構成証明を受ける側のECUをECUxとし、構成証明を行う側のECUをECUyとして説明する。尚、各ECUは、ECUx及びECUyのいずれとしても機能することができる。
(1)ECUyは、乱数R1、R2、R3を生成する。
(2)ECUyは、R1を車内全ECUxへブロードキャストし(図11のMsg-35参照)、各ECUxでは、R1を受信する。尚、このR1のブロードキャストは、ロストの可能性を考慮して、何度か実行されてもよい。
(3)各ECUxでは、使い捨ての乱数R4を生成する。
(4)各ECUxでは、搭載プログラムのハッシュ値H(progx)を計測し、ECUyに対して署名つきメッセージSigKx(IDx、H(progx)、R1、R4)を送信することで構成証明を開始する(図11のMsg-36参照)。
(5)ECUyでは、署名を検証した後、ECUxの搭載プログラムの計測されたハッシュ値を得る。保持するデータベースを検索し、ECUxが搭載し得る正規搭載プログラムのハッシュ値リストに入っているかを確認する。これにより構成証明を完了する。
(6)ECUyでは、ECUxが搭載し得る正規搭載プログラムのハッシュ値リストに入っていることが確認された場合、{ステップ(1)で生成した乱数R2、R3、及び、復号して得たR4}を、Kxで暗号化したメッセージ{R2、R3、R4}Kxを、返送する(図11のMsg-37参照)。他方、ECUxが搭載し得る正規搭載プログラムのハッシュ値リストに入っていることが確認できない場合、上記の返送が実行されず、この結果、当該ECUxは構成証明を受けられないことになる。このような構成証明を受けられないECUxは、例えばバスマスタにより遮断されることで、他のECUとの通信が事前に無効化されてもよい。
(7)ECUxでは、受信したメッセージをKxで復号し、R2をECUyとの通信用のAttestation Tokenとして保持する。R2は、ECUy毎(即ち自身のECU以外の全てのECUのそれぞれに対して)保持される。R2は、好ましくは、ECUxの耐タンパ部に格納される。また、counterをc=R3にセットしてもよい。なお、このR1、R2およびR4は記録媒体には保存せず、稼動停止時には消滅させ、次の電源投入時に再生成する。
稼動開始時、すなわちエンジンキーONによる電源投入時には、図11に示すように、下記のプロセスにより、各ECUにおいて構成証明が確認される。ここでは、形式的に、構成証明を受ける側のECUをECUxとし、構成証明を行う側のECUをECUyとして説明する。尚、各ECUは、ECUx及びECUyのいずれとしても機能することができる。
(1)ECUyは、乱数R1、R2、R3を生成する。
(2)ECUyは、R1を車内全ECUxへブロードキャストし(図11のMsg-35参照)、各ECUxでは、R1を受信する。尚、このR1のブロードキャストは、ロストの可能性を考慮して、何度か実行されてもよい。
(3)各ECUxでは、使い捨ての乱数R4を生成する。
(4)各ECUxでは、搭載プログラムのハッシュ値H(progx)を計測し、ECUyに対して署名つきメッセージSigKx(IDx、H(progx)、R1、R4)を送信することで構成証明を開始する(図11のMsg-36参照)。
(5)ECUyでは、署名を検証した後、ECUxの搭載プログラムの計測されたハッシュ値を得る。保持するデータベースを検索し、ECUxが搭載し得る正規搭載プログラムのハッシュ値リストに入っているかを確認する。これにより構成証明を完了する。
(6)ECUyでは、ECUxが搭載し得る正規搭載プログラムのハッシュ値リストに入っていることが確認された場合、{ステップ(1)で生成した乱数R2、R3、及び、復号して得たR4}を、Kxで暗号化したメッセージ{R2、R3、R4}Kxを、返送する(図11のMsg-37参照)。他方、ECUxが搭載し得る正規搭載プログラムのハッシュ値リストに入っていることが確認できない場合、上記の返送が実行されず、この結果、当該ECUxは構成証明を受けられないことになる。このような構成証明を受けられないECUxは、例えばバスマスタにより遮断されることで、他のECUとの通信が事前に無効化されてもよい。
(7)ECUxでは、受信したメッセージをKxで復号し、R2をECUyとの通信用のAttestation Tokenとして保持する。R2は、ECUy毎(即ち自身のECU以外の全てのECUのそれぞれに対して)保持される。R2は、好ましくは、ECUxの耐タンパ部に格納される。また、counterをc=R3にセットしてもよい。なお、このR1、R2およびR4は記録媒体には保存せず、稼動停止時には消滅させ、次の電源投入時に再生成する。
[稼働中における認証と秘匿通信の実現]
車両内の通信は、各種の状況に応じて、情報の秘匿/認証、ユニキャストの2種類の態様で実行されてもよい。以下それぞれについて説明する。
車両内の通信は、各種の状況に応じて、情報の秘匿/認証、ユニキャストの2種類の態様で実行されてもよい。以下それぞれについて説明する。
(1)署名つき通信(ユニキャスト)
送信側ECUxでは、通信したい相手のECUyに係るR2を用いて、{payload、c、SigKxy(payload、R2、c)}を受信側ECUyに送信する。尚、このメッセージには、送信側ECUxのserial ID(IDx)が平文で付加されてもよい。送信側ECUxでは、送信後、カウンタをインクリメントする。
送信側ECUxでは、通信したい相手のECUyに係るR2を用いて、{payload、c、SigKxy(payload、R2、c)}を受信側ECUyに送信する。尚、このメッセージには、送信側ECUxのserial ID(IDx)が平文で付加されてもよい。送信側ECUxでは、送信後、カウンタをインクリメントする。
受信側ECUyでは、受信した{payload、c}に、Attestation Tokenとして保持しているR2を付加して共通鍵Kxyにより署名を計算し、受信したSigKxy(payload、R2、c)と一致していることを確認する。一致している場合には、通常通り、例えば受信したメッセージに応答する等して、通信が有効化される。他方、一致していない場合、通信が無効化される。通信の無効化は、例えば受信したメッセージを破棄する(応答しない)ことで実現されてもよい。これにより、送信側ECUx又は受信側ECUyが構成証明を受けていないECUである場合には、R2が一致せず、その結果、署名が一致することがないので、当該送信側ECUxから当該受信側ECUyへの通信が無効化される。
尚、受信側ECUyでは、上述の実施例1と同様、カウンタのチェックを実行してもよい。このようなカウンタのチェックは、後述するその他の通信形態においても、受信側ECUにおいて同様に実行されてもよい。
(2)秘匿通信(ユニキャスト)
送信側ECUxでは、通信したい相手のECUyに係るR2(上述の稼動開始時における構成証明で得たR2)を用いて、{payload、R2、c}Kxyを受信側ECUyに送信する。尚、このメッセージには、送信側ECUxのserial ID(IDx)が平文で付加されてもよい。
送信側ECUxでは、通信したい相手のECUyに係るR2(上述の稼動開始時における構成証明で得たR2)を用いて、{payload、R2、c}Kxyを受信側ECUyに送信する。尚、このメッセージには、送信側ECUxのserial ID(IDx)が平文で付加されてもよい。
受信側ECUyでは、受信内容をKxyで復号し、R2が保持していたものと一致するかを検証する。これにより、送信側ECU又は受信側ECUが構成証明を受けていないECUである場合には、R2が一致せず、その結果、受信した内容が復号されないので、当該送信側ECUから当該受信側ECUへの通信が無効化される。ただし、受信側ECUyの耐タンパ部では、初期化プロセスでR2が得られていない状態では、復号処理をしないこととする。
以上の各種通信においては、稼動開始時に構成証明を受けることによってのみ得られるAttestation Token(上記の例では、R2)を用いて互いを認証し合うので、改竄等により不正ないし不適当な構成を有するECUを確実に無効化することができる。
尚、本実施例3において、図11に示すECUyに対するECUxの構成証明は、ECUxからECUyへの通信に先立って、通信毎に実行されてもよいし、初回の通信時に一回実行され、以後、稼動が終了されない限り(即ち車両の電源がオフにならない限り)、その後の各通信時には省略されてもよい。また、ECUyに対するECUxの構成証明は、ECUxに対するECUyの構成証明と同時に実行されてもよい。このような構成証明の態様は、通信を行うペアのECU同士で個別に実行されてもよい。
以上、本発明の好ましい実施例について詳説したが、本発明は、上述した実施例に制限されることはなく、本発明の範囲を逸脱することなく、上述した実施例に種々の変形及び置換を加えることができる。
例えば、上述の実施例では、稼動開始時に構成証明が実行されているが、稼動開始時以外の適切なタイミングで構成証明が実行されてもよい。例えば、稼動開始後の所定時間経過毎若しくは車両の所定距離走行毎に構成証明が実行されてもよい。或いは、車両が所定時間以上停止していることが検出された場合等、特定の状況が検出された場合に、構成証明が実行(再実行)されてもよい。
また、上述の実施例1において、マスタECU20は、既存のECU(例えばEFI・ECU)の機能を拡張することで実現されてもよい。
また、上述の実施例1では、1つの車両にマスタECUが1つだけ設定されているが、1つの車両に複数のマスタECUが設定されてもよい。例えば、マスタECUは、通信プロトコル毎(例えば高速通信用バスとその他のバス)に設定されてもよいし、情報系システムや走行系システムといったシステムの種類毎に設定されてもよい。
また、上述の実施例では、各ECU(マスタECU20を含む)の耐タンパ部が、上述の各種機能を実現しているが、上述の各種機能の一部は、各ECUの他の構成要素(CPUやメモリ等)により実現されてもよい。
また、上述の実施例1では、KPS方式が用いられ、実施例2,3では、通常的な共通鍵Kを用いているが、逆に、上述の実施例1において、KPS方式に代えて、通常的な共通鍵Kを用いてもよいし、実施例2,3において、通常的な共通鍵Kに代えて、KPS方式を用いてもよい。更に、上述の実施例1,2,3において、1つの車両に搭載される全てのECUに対して唯一の共通鍵を用いる構成を採用してもよい。
1,2,3 暗号通信システム
20 マスタECU
30 センターサーバ
20 マスタECU
30 センターサーバ
Claims (16)
- 互いに通信する少なくとも2つ以上のECUが搭載される車両に適用される暗号通信システムであって、
前記少なくとも2つ以上のECUの各ECUに対して、該各ECU間の共通鍵又は該共通鍵の生成源を発行する発行手段と、
前記各ECUの構成証明を行う構成証明手段とを備え、
前記各ECUは、前記共通鍵又は共通鍵の生成源を用いた共通鍵方式の暗号により通信を行うと共に、前記構成証明手段により構成証明を受けないECUとの間で通信を確立しないように構成されることを特徴とする、暗号通信システム。 - 前記発行手段は、車両外部の遠隔位置に配置され車両と通信可能に構成されるセンターサーバに設けられる、請求項1に記載の暗号通信システム。
- 前記構成証明手段は、前記センターサーバに設けられる、請求項2に記載の暗号通信システム。
- 前記構成証明手段は、前記複数のECUのうちの特定のECUに設けられる、請求項1又は2に記載の暗号通信システム。
- 前記構成証明手段は、前記各ECUにそれぞれ設けられる、請求項1又は2に記載の暗号通信システム。
- 前記共通鍵の生成源は、KPS方式の鍵関数である、請求項1〜5のうちのいずれか1項に記載の暗号通信システム。
- 請求項1〜6のうちのいずれか1項に記載の暗号通信システムで用いられるECU。
- 車載ECUであって、
他の車載ECUとの間の共通鍵又は該共通鍵の生成源を記憶する記憶手段と、
前記他の車載ECUが構成証明を受けたECUであるか否かを判断する判断手段と、
前記他の車載ECUが構成証明を受けていないECUであると判断した場合に、該他の車載ECUとの通信を無効化する通信無効化手段とを備える、車載ECU。 - 前記判断手段は、前記他の車載ECUが車載マスタECUにより構成証明を受けたECUであるか否かを判断する、請求項8に記載の車載ECU。
- 請求項9に記載の車載ECUに接続される車載マスタECUであって、
他の車載ECUから構成証明のための情報を取得し、該取得した情報に基づいて、該他の車載ECUが正当な構成を有していることを証明する構成証明手段を備える、車載マスタECU。 - 車載ECUであって、
他の車載ECUとの間の共通鍵又は該共通鍵の生成源を記憶する記憶手段と、
自身の車載ECUが正当な構成を有していることを証明する構成証明を受ける手段と、
前記構成証明を受けたことを表す情報を送信メッセージに付加した送信データを、前記記憶手段に記憶された共通鍵又は該共通鍵の生成源を用いて暗号化して、他の車載ECUに送信する通信手段とを備える、車載ECU。 - 前記共通鍵の生成源は、KPS方式の鍵関数である、請求項8、9、及び11のうちのいずれか1項に記載の車載ECU。
- 請求項8、9、及び11のうちのいずれか1項に記載の車載ECU又は請求項10に記載の車載マスタECUに実装され、前記各手段の少なくとも1つを実現する耐タンパ性モジュール。
- 車両外部の遠隔位置に配置され車両と通信可能に構成されるセンターサーバであって、請求項8、9、及び11のうちのいずれか1項に記載の車載ECUの記憶手段に記憶される共通鍵又は該共通鍵の生成源を生成し、該車載ECUに送信するセンターサーバ。
- 請求項8、9、及び11のうちのいずれか1項に記載の車載ECUと、
車両外部の遠隔位置に配置され車両と通信可能に構成されるセンターサーバであって、前記車載ECUの記憶手段に記憶される共通鍵又は該共通鍵の生成源を生成し、該車載ECUに送信するセンターサーバとを備える、暗号通信システム。 - 車両に搭載されるECU間の通信を制御する通信制御方法であって、
制御対象となる各ECUに共通鍵又は該共通鍵の生成源を記憶するステップと、
制御対象となる各ECUの構成証明を行う構成証明ステップと、
ECU間で前記共通鍵又は共通鍵の生成源を用いた共通鍵方式に基づいて暗号通信を行うステップと、
前記構成証明ステップにより構成証明を受けないECU間の通信を無効化するステップとを含む、通信制御方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2008171538A JP2010011400A (ja) | 2008-06-30 | 2008-06-30 | 共通鍵方式の暗号通信システム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2008171538A JP2010011400A (ja) | 2008-06-30 | 2008-06-30 | 共通鍵方式の暗号通信システム |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2010011400A true JP2010011400A (ja) | 2010-01-14 |
Family
ID=41591277
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2008171538A Pending JP2010011400A (ja) | 2008-06-30 | 2008-06-30 | 共通鍵方式の暗号通信システム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2010011400A (ja) |
Cited By (27)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2013524587A (ja) * | 2010-03-31 | 2013-06-17 | ローベルト ボツシユ ゲゼルシヤフト ミツト ベシユレンクテル ハフツング | 認証された音声暗号化のための方法および装置 |
JP2013219710A (ja) * | 2012-04-12 | 2013-10-24 | Toyota Motor Corp | 車載制御装置の認証システム及び車載制御装置の認証方法 |
JP2014138380A (ja) * | 2013-01-18 | 2014-07-28 | Toyota Motor Corp | 車両不正状態検出方法、車載システムにおける制御方法、およびシステム |
US9132790B2 (en) | 2011-07-06 | 2015-09-15 | Hitachi Automotive Systems, Ltd. | In-vehicle network system |
WO2015186829A1 (ja) * | 2014-06-05 | 2015-12-10 | Kddi株式会社 | 送信ノード、受信ノード、通信ネットワークシステム、メッセージ作成方法およびコンピュータプログラム |
WO2015186825A1 (ja) * | 2014-06-05 | 2015-12-10 | Kddi株式会社 | 通信ネットワークシステム、送信ノード、受信ノード、メッセージ検査方法およびコンピュータプログラム |
KR101580548B1 (ko) * | 2014-07-24 | 2015-12-28 | 콘티넨탈 오토모티브 시스템 주식회사 | 차량용 ecu에 대한 보안 알고리즘 관리 방법 |
JP2016116075A (ja) * | 2014-12-15 | 2016-06-23 | トヨタ自動車株式会社 | 車載通信システム |
JP2016152623A (ja) * | 2015-02-18 | 2016-08-22 | ローベルト ボッシュ ゲゼルシャフト ミット ベシュレンクテル ハフツング | 操作から保護する方法 |
JP2016163265A (ja) * | 2015-03-04 | 2016-09-05 | Kddi株式会社 | 鍵管理システム、鍵管理方法およびコンピュータプログラム |
WO2017060979A1 (ja) * | 2015-10-06 | 2017-04-13 | 富士通株式会社 | 実装ユニット、実装ユニット検証方法及び実装ユニット検証プログラム |
CN106603483A (zh) * | 2015-10-19 | 2017-04-26 | 丰田自动车株式会社 | 车辆系统和认证方法 |
JP2017092807A (ja) * | 2015-11-13 | 2017-05-25 | 株式会社東芝 | 検査装置、通信システム、移動体および検査方法 |
JP2017163470A (ja) * | 2016-03-11 | 2017-09-14 | 日本電気株式会社 | 暗号通信システム、暗号通信方法、セキュリティチップ、通信装置およびその制御方法と制御プログラム |
JP2017532598A (ja) * | 2014-09-24 | 2017-11-02 | コーニンクレッカ フィリップス エヌ ヴェKoninklijke Philips N.V. | 公開鍵暗号化システム |
JP2018007049A (ja) * | 2016-07-04 | 2018-01-11 | 株式会社日立製作所 | 情報共有システム、計算機、及び、情報共有方法 |
JP2018026822A (ja) * | 2014-06-05 | 2018-02-15 | Kddi株式会社 | 通信ネットワークシステム及びメッセージ検査方法 |
JP2018078484A (ja) * | 2016-11-10 | 2018-05-17 | Kddi株式会社 | 再利用システム、鍵生成装置、データ保安装置、車載コンピュータ、再利用方法、及びコンピュータプログラム |
JP2018107622A (ja) * | 2016-12-26 | 2018-07-05 | トヨタ自動車株式会社 | 暗号通信システム |
JP2018116669A (ja) * | 2017-01-13 | 2018-07-26 | 株式会社オートネットワーク技術研究所 | 車載装置、中継装置及びコンピュータプログラム |
WO2020145086A1 (ja) * | 2019-01-09 | 2020-07-16 | 国立大学法人東海国立大学機構 | 車載通信システム、車載通信制御装置、車載通信装置、通信制御方法及び通信方法 |
WO2020209248A1 (ja) * | 2019-04-12 | 2020-10-15 | 株式会社東海理化電機製作所 | 通信システム及び通信機 |
JP2021027575A (ja) * | 2019-08-06 | 2021-02-22 | プファイファー・ヴァキューム・ゲーエムベーハー | 真空装置 |
JP2021083110A (ja) * | 2020-02-19 | 2021-05-27 | ベイジン バイドゥ ネットコム サイエンス テクノロジー カンパニー リミテッドBeijing Baidu Netcom Science Technology Co., Ltd. | 車内電子制御ユニットのアップグレード方法、装置、機器及び車両システム |
CN113544671A (zh) * | 2019-04-12 | 2021-10-22 | 株式会社东海理化电机制作所 | 通信系统和通信机 |
JP2022527759A (ja) * | 2019-03-25 | 2022-06-06 | マイクロン テクノロジー,インク. | 車両の電子制御ユニットの検証 |
JP7327731B2 (ja) | 2019-08-20 | 2023-08-16 | ホアウェイ・テクノロジーズ・カンパニー・リミテッド | 車載システムにおけるセキュリティ保護方法およびデバイス |
-
2008
- 2008-06-30 JP JP2008171538A patent/JP2010011400A/ja active Pending
Cited By (45)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2013524587A (ja) * | 2010-03-31 | 2013-06-17 | ローベルト ボツシユ ゲゼルシヤフト ミツト ベシユレンクテル ハフツング | 認証された音声暗号化のための方法および装置 |
US9132790B2 (en) | 2011-07-06 | 2015-09-15 | Hitachi Automotive Systems, Ltd. | In-vehicle network system |
DE112012002836B4 (de) * | 2011-07-06 | 2021-07-01 | Hitachi Automotive Systems, Ltd. | Fahrzeugbasiertes Netzwerksystem |
JP2013219710A (ja) * | 2012-04-12 | 2013-10-24 | Toyota Motor Corp | 車載制御装置の認証システム及び車載制御装置の認証方法 |
JP2014138380A (ja) * | 2013-01-18 | 2014-07-28 | Toyota Motor Corp | 車両不正状態検出方法、車載システムにおける制御方法、およびシステム |
US10681540B2 (en) | 2014-06-05 | 2020-06-09 | Kddi Corporation | Communication network system, transmission node, reception node, and message checking method |
WO2015186829A1 (ja) * | 2014-06-05 | 2015-12-10 | Kddi株式会社 | 送信ノード、受信ノード、通信ネットワークシステム、メッセージ作成方法およびコンピュータプログラム |
WO2015186825A1 (ja) * | 2014-06-05 | 2015-12-10 | Kddi株式会社 | 通信ネットワークシステム、送信ノード、受信ノード、メッセージ検査方法およびコンピュータプログラム |
JP2016012917A (ja) * | 2014-06-05 | 2016-01-21 | Kddi株式会社 | 通信ネットワークシステム、送信ノード、受信ノード、メッセージ検査方法およびコンピュータプログラム |
JP2016012912A (ja) * | 2014-06-05 | 2016-01-21 | Kddi株式会社 | 送信ノード、受信ノード、通信ネットワークシステム、メッセージ作成方法およびコンピュータプログラム |
JP2018026822A (ja) * | 2014-06-05 | 2018-02-15 | Kddi株式会社 | 通信ネットワークシステム及びメッセージ検査方法 |
KR101580548B1 (ko) * | 2014-07-24 | 2015-12-28 | 콘티넨탈 오토모티브 시스템 주식회사 | 차량용 ecu에 대한 보안 알고리즘 관리 방법 |
JP2017532598A (ja) * | 2014-09-24 | 2017-11-02 | コーニンクレッカ フィリップス エヌ ヴェKoninklijke Philips N.V. | 公開鍵暗号化システム |
JP2016116075A (ja) * | 2014-12-15 | 2016-06-23 | トヨタ自動車株式会社 | 車載通信システム |
CN105897423A (zh) * | 2015-02-18 | 2016-08-24 | 罗伯特·博世有限公司 | 用于操纵保护的方法 |
JP2016152623A (ja) * | 2015-02-18 | 2016-08-22 | ローベルト ボッシュ ゲゼルシャフト ミット ベシュレンクテル ハフツング | 操作から保護する方法 |
JP2016163265A (ja) * | 2015-03-04 | 2016-09-05 | Kddi株式会社 | 鍵管理システム、鍵管理方法およびコンピュータプログラム |
WO2017060979A1 (ja) * | 2015-10-06 | 2017-04-13 | 富士通株式会社 | 実装ユニット、実装ユニット検証方法及び実装ユニット検証プログラム |
JPWO2017060979A1 (ja) * | 2015-10-06 | 2018-07-26 | 富士通株式会社 | 実装ユニット、実装ユニット検証方法及び実装ユニット検証プログラム |
US10785034B2 (en) | 2015-10-06 | 2020-09-22 | Fujitsu Limited | Implementation unit, implementation unit verification method, and computer-readable recording medium |
CN106603483A (zh) * | 2015-10-19 | 2017-04-26 | 丰田自动车株式会社 | 车辆系统和认证方法 |
JP2017079369A (ja) * | 2015-10-19 | 2017-04-27 | トヨタ自動車株式会社 | 車両システムおよび認証方法 |
CN106603483B (zh) * | 2015-10-19 | 2020-05-01 | 丰田自动车株式会社 | 车辆系统和认证方法 |
JP2017092807A (ja) * | 2015-11-13 | 2017-05-25 | 株式会社東芝 | 検査装置、通信システム、移動体および検査方法 |
US11070365B2 (en) | 2016-03-11 | 2021-07-20 | Nec Corporation | Encryption communication system, encryption communication method, security chip, communication apparatus, and control method and control program of communication apparatus |
JP2017163470A (ja) * | 2016-03-11 | 2017-09-14 | 日本電気株式会社 | 暗号通信システム、暗号通信方法、セキュリティチップ、通信装置およびその制御方法と制御プログラム |
JP2018007049A (ja) * | 2016-07-04 | 2018-01-11 | 株式会社日立製作所 | 情報共有システム、計算機、及び、情報共有方法 |
WO2018087963A1 (ja) * | 2016-11-10 | 2018-05-17 | Kddi株式会社 | 再利用システム、鍵生成装置、データ保安装置、車載コンピュータ、再利用方法、及びコンピュータプログラム |
US11082228B2 (en) | 2016-11-10 | 2021-08-03 | Kddi Corporation | Reuse system, key generation device, data security device, in-vehicle computer, reuse method, and computer program |
JP2018078484A (ja) * | 2016-11-10 | 2018-05-17 | Kddi株式会社 | 再利用システム、鍵生成装置、データ保安装置、車載コンピュータ、再利用方法、及びコンピュータプログラム |
JP2018107622A (ja) * | 2016-12-26 | 2018-07-05 | トヨタ自動車株式会社 | 暗号通信システム |
JP2018116669A (ja) * | 2017-01-13 | 2018-07-26 | 株式会社オートネットワーク技術研究所 | 車載装置、中継装置及びコンピュータプログラム |
JP7132132B2 (ja) | 2019-01-09 | 2022-09-06 | 国立大学法人東海国立大学機構 | 車載通信システム、車載通信制御装置、車載通信装置、コンピュータプログラム、通信制御方法及び通信方法 |
JP2020113852A (ja) * | 2019-01-09 | 2020-07-27 | 国立大学法人東海国立大学機構 | 車載通信システム、車載通信制御装置、車載通信装置、コンピュータプログラム、通信制御方法及び通信方法 |
CN113273144A (zh) * | 2019-01-09 | 2021-08-17 | 国立大学法人东海国立大学机构 | 车载通信系统、车载通信控制装置、车载通信装置、通信控制方法及通信方法 |
WO2020145086A1 (ja) * | 2019-01-09 | 2020-07-16 | 国立大学法人東海国立大学機構 | 車載通信システム、車載通信制御装置、車載通信装置、通信制御方法及び通信方法 |
CN113273144B (zh) * | 2019-01-09 | 2022-10-25 | 国立大学法人东海国立大学机构 | 车载通信系统、车载通信控制装置、车载通信装置、通信控制方法及通信方法 |
JP2022527759A (ja) * | 2019-03-25 | 2022-06-06 | マイクロン テクノロジー,インク. | 車両の電子制御ユニットの検証 |
US11870779B2 (en) | 2019-03-25 | 2024-01-09 | Micron Technology, Inc. | Validating an electronic control unit of a vehicle |
WO2020209248A1 (ja) * | 2019-04-12 | 2020-10-15 | 株式会社東海理化電機製作所 | 通信システム及び通信機 |
CN113544671A (zh) * | 2019-04-12 | 2021-10-22 | 株式会社东海理化电机制作所 | 通信系统和通信机 |
JP7465127B2 (ja) | 2019-04-12 | 2024-04-10 | 株式会社東海理化電機製作所 | 通信システム及び通信機 |
JP2021027575A (ja) * | 2019-08-06 | 2021-02-22 | プファイファー・ヴァキューム・ゲーエムベーハー | 真空装置 |
JP7327731B2 (ja) | 2019-08-20 | 2023-08-16 | ホアウェイ・テクノロジーズ・カンパニー・リミテッド | 車載システムにおけるセキュリティ保護方法およびデバイス |
JP2021083110A (ja) * | 2020-02-19 | 2021-05-27 | ベイジン バイドゥ ネットコム サイエンス テクノロジー カンパニー リミテッドBeijing Baidu Netcom Science Technology Co., Ltd. | 車内電子制御ユニットのアップグレード方法、装置、機器及び車両システム |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2010011400A (ja) | 共通鍵方式の暗号通信システム | |
JP6454918B2 (ja) | 車載コンピュータシステム、車両、管理方法、及びコンピュータプログラム | |
US10382485B2 (en) | Blockchain-assisted public key infrastructure for internet of things applications | |
CN111010410B (zh) | 一种基于证书身份认证的拟态防御系统及证书签发方法 | |
JP5310761B2 (ja) | 車両ネットワークシステム | |
JP5136012B2 (ja) | データ送付方法 | |
CN110708388B (zh) | 用于提供安全服务的车身安全锚节点设备、方法以及网络系统 | |
WO2009147734A1 (ja) | 車両、メンテナンス装置、メンテナンスサービスシステム及びメンテナンスサービス方法 | |
TW201735578A (zh) | 受控的安全碼認證 | |
TW201732669A (zh) | 受控的安全碼鑑認 | |
CN112448941B (zh) | 认证系统和用于认证微控制器的方法 | |
CN106790045B (zh) | 一种基于云环境分布式虚拟机代理装置及数据完整性保障方法 | |
JP6192673B2 (ja) | 鍵管理システム、鍵管理方法およびコンピュータプログラム | |
JP5861597B2 (ja) | 認証システムおよび認証方法 | |
CN113138775B (zh) | 车载诊断系统固件保护方法及系统 | |
US11516194B2 (en) | Apparatus and method for in-vehicle network communication | |
JP2013219710A (ja) | 車載制御装置の認証システム及び車載制御装置の認証方法 | |
JP2017011491A (ja) | 認証システム | |
KR102236282B1 (ko) | 차량용 통신 데이터 인증 방법 및 시스템 | |
US20220209946A1 (en) | Key revocation for edge devices | |
Giri et al. | An integrated safe and secure approach for authentication and secret key establishment in automotive Cyber-Physical systems | |
WO2017126322A1 (ja) | 車載コンピュータシステム、車両、鍵生成装置、管理方法、鍵生成方法、及びコンピュータプログラム | |
JP6188744B2 (ja) | 管理システム、車両及び管理方法 | |
JP2013142963A (ja) | 車載制御装置の認証システム | |
Wolf | Vehicular security mechanisms |