(58)【調査した分野】(Int.Cl.,DB名)
【発明を実施するための形態】
【0009】
以下、本発明の実施の形態について、図を用いて説明する。以下の実施の形態の説明及び図面において、同一の符号を付したものは、同一の部分または相当する部分を示す。
【0010】
実施の形態1.
***構成の説明***
図1は、実施の形態に係るシステム構成例を示す。
【0011】
車両10では、複数のECU(Electronic Control Unit)がバスライン300に接続されている。具体的には、ECU(A)100、ECU(B)201、ECU(C)202等がバスライン300に接続されている。なお、ECU(A)100は、情報処理装置に相当する。また、ECU(A)100で行われる処理は、情報処理方法及び情報処理プログラムに相当する。なお、以下では、ECU(B)201及びECU(C)202を含む、ECU(A)100以外の各ECUを機器ともいう。
ECU(A)100、ECU(B)201及びECU(C)202は、バスライン300に接続することが許可されている機器であり、正規機器である。一方で、不正なECU(機器)とは、バスライン300に接続することが許可されていない機器である。
バスライン300は、CAN、LIN(Local Interconnect Network)、Ethernet(登録商標)等のバスネットワークである。
【0012】
サーバ装置400は、ECU(A)100から送信される認証情報要求を受信する。
サーバ装置400は、正規機器であるECU(B)201、ECU(C)202
等の認証情報を識別子と対応付けて記憶している。また、現在は、車両10のバスライン300に接続されていないが接続することが許可されている正当なECU(正規機器)の認証情報も識別子と対応付けて記憶している。
サーバ装置400は、認証情報要求の応答として、ECU(A)100に認証情報を送信する。認証情報要求及び認証情報の詳細は後述する。
サーバ装置400は、例えば、クラウドネットワーク上に配置される。サーバ装置400は、車両10内に配置されていてもよい。サーバ装置40が車両10内に配置されている場合は、ネットワークが使用できない状況でもサーバ装置40へのアクセスが可能である。なお、本実施の形態では、サーバ装置400がクラウドネットワークに配置されているものとする。
サーバ装置400は、外部装置に相当する。
【0013】
図2は、ECU(A)100の機能構成例を示す。また、
図3は、ECU(A)100のハードウェア構成例を示す。
先ず、
図3を参照して、ECU(A)100のハードウェア構成例を説明する。
【0014】
ECU(A)100は、コンピュータである。
ECU(A)100は、ハードウェアとして、プロセッサ901、主記憶装置902、補助記憶装置903、通信装置904及び電圧センサ905を備える。
【0015】
補助記憶装置903には、
図2の無線通信部101、波形解析部102、バスライン通信部103、機器認証部104及び不正操作判定部105の機能を実現するプログラムが記憶されている。これらプログラムは、補助記憶装置903から主記憶装置902にロードされる。そして、プロセッサ901がこれらプログラムを実行して、無線通信部101、波形解析部102、バスライン通信部103、機器認証部104及び不正操作判定部105の動作を行う。
図3は、プロセッサが、無線通信部101、波形解析部102、バスライン通信部103、機器認証部104及び不正操作判定部105の機能を実現するプログラムを実行している状態を模式的に表している。
また、補助記憶装置903は、
図2のDB106を実現する。なお、主記憶装置902が
図2のDB106を実現するようにしてもよい。
【0016】
通信装置904は、アンテナ150を用いてサーバ装置400と通信を行う。また、通信装置904は、バスライン300に接続され、ECU(B)201、ECU(C)202等と通信を行う。
【0017】
電圧センサ905はバスライン300に接続されている。電圧センサ905は、バスライン300の電圧値を計測する。本実施の形態では、電圧センサ905は、TDR(Time Domain Reflectometry)により電圧値を計測する。TDRでは、バスライン300上に送信した高周波ステップ信号の反射特性が計測される。より具体的には、電圧センサ905は高周波ステップ信号を生成し、生成した高周波ステップ信号をバスライン300に送信する。また、電圧センサ905は、バスライン300から高周波ステップ信号の反射波を受信する。そして、電圧センサ905は、反射波の電圧値を計測し、計測した電圧値をバスライン通信部103に出力する。
電圧センサ905は、サンプラ回路、コンパレータ、A/D(Analog/Digital)変換器、ステップジェネレータ等である。
【0018】
次に、
図2を参照して、ECU(A)100の機能構成例を説明する。
【0019】
無線通信部101は、通信装置904及びアンテナ150を用いてサーバ装置400と通信を行う。より具体的には、無線通信部101は、サーバ装置400に認証情報要求を送信し、サーバ装置400から認証情報を受信する。
【0020】
波形解析部102は、バスライン通信部103からバスライン300の電圧値の経時変化を表す波形を計測波形として取得する。計測波形は、電圧センサ905で計測された電圧値の経時変化を表す波形である。
また、波形解析部102は、計測波形を解析する。より具体的には、波形解析部102は、バスライン300に不正操作が行われていないと判定された際に得られた計測波形(以下、前回計測波形という)と、新たに得られた計測波形とが一致するか否かを解析する。前回計測波形は正常な電圧値の波形である。波形解析部102は、計測波形を平均化するなどノイズ補正してもよい。また、ノイズ補正には、計測時の温度又は車両状況を使用してもよい。このようにすることで、計測波形を解析できる。
波形解析部102は、解析結果を機器認証部104と不正操作判定部105に通知する。
【0021】
バスライン通信部103は、通信装置904を用いてECU(B)201、ECU(C)202等のバスライン300に接続されたECUと通信を行う。
また、バスライン通信部103は、ステップ波を送信し、電圧センサ905から計測された電圧値を取得し、電圧値の経時変化を示す波形を計測波形として波形解析部102に出力する。
また、バスライン通信部103は、機器認証部104の指示に基づき、他のECUにチャレンジ値を送信する。チャレンジ値は乱数である。バスライン通信部103は、チャレンジ値をブロードキャストする。また、バスライン通信部103は、バスライン300に接続しているECUからチャレンジ値に対するレスポンス値を受信し、受信したレスポンス値を機器認証部104に出力する。
【0022】
機器認証部104は、機器認証処理において、後述する構成情報1070に含まれていないECUである新規ECU(新規機器)がバスライン300に接続しているか否かを判定しながらバスライン300に接続しているECUごとに認証を行う。具体的には、機器認証部104は、バスライン通信部103を介して、他のECUにチャレンジ値を送信する。また、機器認証部104は、バスライン通信部103を介して、チャレンジ値に対するレスポンス値を受信し、受信したレスポンス値が適正な値であるか否かを認証情報を用いて判定する。
バスライン300に新規ECUが接続している場合は、機器認証部104は、新規ECUの認証に用いる認証情報を、無線通信部101を介してサーバ装置400から取得する。そして、機器認証部104は、取得した認証情報を用いて新規ECUの認証を行う。
また、機器認証部104が新規ECUの認証に用いる認証情報を生成し、生成した認証情報を用いて新規ECUの認証を行ってもよい。機器認証部104は、例えば、ECUを一意に識別可能なECU情報(例えばECU ID)からECUの認証に用いる認証情報を生成する。機器認証部104は、鍵導出関数やIDベース暗号/関数型暗号の鍵生成などを用いることで、認証情報を安全に生成することができる。
【0023】
不正操作判定部105は、構成情報1070と、波形解析部102の解析結果と、機器認証部104の認証結果とを用いて、バスライン300に不正操作が行われているか否かを判定する。
例えば、不正操作判定部105は、計測波形と前回計測波形とが一致し、機器認証部104の認証に失敗した機器が存在する場合に、バスライン300に不正操作が行われていると判定する。
また、不正操作判定部105は、計測波形と前回計測波形とが一致せず、機器認証部104の認証に失敗した機器が存在する場合に、バスライン300に不正操作が行われていると判定する。
また、不正操作判定部105は、計測波形と前回計測波形とが一致せず、機器認証部104の認証に失敗した機器が存在しない場合に、構成情報1070に含まれる機器の組合せと機器認証部104の認証結果から得られる機器の組合せとが一致するか否かを解析してバスライン300に不正操作が行われているか否かを判定する。
構成情報1070に示される機器の組合せと機器認証部104の認証結果から得られる機器の組合せとが一致する場合は、不正操作判定部105は、バスライン300に不正操作が行われていると判定する。
一方、構成情報1070に示されるバスライン300に接続している機器の組合せと機器認証部104の認証結果から得られる機器の組合せとが一致しない場合は、不正操作判定部105は、機器認証部104の認証結果から得られる機器の組合せを解析して、バスライン300に接続していることが必須のECUである必須ECU(必須機器)がバスライン300に接続しているか否かを判定する。
必須ECUがバスライン300に接続していない場合は、不正操作判定部105は、バスライン300に不正操作が行われていると判定する。
一方、必須ECUがバスライン300に接続している場合は、不正操作判定部105は、機器認証部104の認証結果から得られる機器の組合せにおいて想定される、バスライン300の電圧値の波形を想定波形として取得する。
そして、不正操作判定部105は、計測波形と想定波形とが一致するか否かを解析し、計測波形と想定波形とが一致しない場合に、バスライン300に不正操作が行われていると判定する。
一方、計測波形と想定波形とが一致する場合は、不正操作判定部105は、バスライン300に不正操作が行われていないと判定する。そして、不正操作判定部105は、計測波形を前回計測波形1080として計測波形記憶部108に格納し、機器認証部104の認証結果から得られる機器の組合せが示される情報を新たな構成情報1070として構成情報記憶部107に格納する。
また、不正操作判定部105は、バスライン300に不正操作が行われていないと判定した場合に、通信情報(例えば、CANのデータベース)、認証情報、ソフトウェアの更新を行ってもよい。通信情報は送受信するCAN IDを定義したCANデータベースである。また、ソフトウェアはECU(A)100のプログラム又は他のECUのプログラムである。不正操作判定部105は、例えば、サーバ装置400から通信情報及びソフトウェアを取得し、取得した通信情報及びソフトウェアを補助記憶装置903に書き込むことで通信情報及びソフトウェアの更新を行う。また、不正操作判定部105は、機器認証部104により生成された認証情報を補助記憶装置903に書き込むことで認証情報の更新を行う。
【0024】
DB106は、構成情報記憶部107、計測波形記憶部108及び認証情報記憶部109に区分される。
【0025】
構成情報記憶部107には、構成情報1070が格納される。構成情報1070には、バスライン300に接続していることが判明している1つ以上のECUの識別子が示される。また、構成情報1070には、バスライン300に接続していることが判明している各ECUが必須ECUであるか否かが示される。また、構成情報1070には、各ECUのバスライン300上での位置が示される。また、構成情報1070には、各ECUで用いられるソフトウェアのバージョンが示されてもよい。
構成情報1070に各ECUのバスライン300上の位置が示されるので、後述する想定波形を用いた解析により、不正操作判定部105は、ECUのバスライン300上の位置の入れ替えを認識することができる。
【0026】
計測波形記憶部108には、前回計測波形1080が格納される。前回計測波形1080には、不正操作判定部105によりバスライン300に不正操作が行われていないと判定された際に得られた計測波形(前回計測波形)が示される。
【0027】
認証情報記憶部109には、認証情報1090が格納される。認証情報1090は、機器認証部104による機器認証処理において用いられる情報である。認証情報記憶部109には、バスライン300に接続しているECUごとに認証情報1090が格納されている。認証情報1090は、例えば、共通鍵方式による鍵である。
【0028】
***動作の説明***
本実施の形態に係るECU(A)100の動作の概要を
図4を参照して説明する。
【0029】
波形解析処理(ステップS1)では、波形解析部102が、バスライン通信部103及び電圧センサ905を用いて、計測波形を取得し、計測波形が前回計測波形1080に一致するか否かを判定する。
波形解析処理(ステップS1)は、例えば通常のTDRと同じであるため、詳細な説明は省略する。
なお、波形解析部102は、波形解析処理(ステップS1)の結果、すなわち、計測波形が前回計測波形1080と一致したか否かを機器認証部104及び不正操作判定部105に通知する。
【0030】
機器認証処理(ステップS2)では、機器認証部104が、バスライン通信部103を用いて他のECUにチャレンジ値をブロードキャストにより送信する。また、機器認証部104が、バスライン通信部103を用いてチャレンジ値に対するレスポンス値を受信する。そして、機器認証部104が、受信したレスポンス値が適正な値であるか否かを認証情報1090を用いて判定する。
また、機器認証処理(ステップS2)では、バスライン300に新規ECUが接続していることが判明した場合は、機器認証部104は、新規ECUの認証に用いる認証情報を、サーバ装置400から取得する。そして、機器認証部104は、取得した認証情報を用いて新規ECUの認証を行う。
機器認証処理(ステップS2)の詳細は、
図5、
図6及び
図7を参照して後述する。
【0031】
不正操作判定処理(ステップS3)では、不正操作判定部105が、波形解析部102の解析結果と、機器認証部104の認証結果とを用いて、バスライン300に不正操作が行われているか否かを判定する。
不正操作判定処理(ステップS3)の詳細は、
図8及び
図9を参照して後述する。
【0032】
次に、
図5、
図6及び
図7を参照して機器認証処理(ステップS2)の詳細を説明する。
図5は、波形解析処理(ステップS1)において計測波形が前回計測波形1080と一致する場合の機器認証部104の処理を示す。
図6は、波形解析処理(ステップS1)において計測波形が前回計測波形1080と一致しない場合の機器認証部104の処理を示す。
図7は、
図5のステップS213のレスポンス復号処理及び
図6のステップS223のレスポンス復号処理の詳細を示す。
レスポンス復号処理は並列に処理可能である。つまり、機器認証部104は、複数のECUからのレスポンス値に対して並列にレスポンス復号処理を実行することができる。
【0033】
図5において、まず、機器認証部104は、バスライン通信部103を用いて各ECUにチャレンジ値をブロードキャストにより送信する(ステップS211)。
【0034】
規定の待ち時間の間にいずれかのECUからバスライン通信部103を介してレスポンス値を受信した場合(ステップS212でYES)に、機器認証部104は、レスポンス復号処理(ステップS213)を行う。
レスポンス復号処理(ステップS213)の詳細は後述するが、機器認証部104は、受信したレスポンス値が適正な値であるか否かをレスポンス値の送信元のECUの認証情報1090を用いて判定する。レスポンス値はチャレンジ値を認証情報1090を用いて暗号化した値であるため、機器認証部104は、認証情報1090を用いてレスポンス値を復号し、チャレンジ値と同じ値が得られるか否かを判定する。
一方、待ち時間の間にレスポンス値を受信しない場合は、機器認証部104は、最後のレスポンス値の受信からt秒が経過している否かを判定する(ステップS215)。なお、tの値は、待ち時間より大きな値であり、ECU(A)100の利用者が任意に決定することができる。
【0035】
レスポンス復号処理(ステップS213)の後、機器認証部104は、全てのECUからレスポンス値を受信したか否かを確認する(ステップS214)。
【0036】
レスポンス値を受信してないECUが存在する場合(ステップS214でNO)は、最後のレスポンス値の受信からt秒が経過している否かを判定する(ステップS215)。
【0037】
最後のレスポンス値の受信からt秒が経過していない場合(ステップS215でNO)は、処理がステップS212に移行する。
【0038】
一方、最後のレスポンス値の受信からt秒が経過している場合は(ステップS215でYES)、機器認証部104は、既にN回チャレンジ値を再送しているか否かを判定する(ステップS216)。既にN回チャレンジ値を再送している場合(ステップS216でYES)は、ステップS217の処理が行われる。
なお、Nの値は、ECU(A)100の利用者が任意に決定することができる。
一方、N回チャレンジ値を再送していない場合(ステップS216でNO)は、機器認証部104は、バスライン通信部103を用いて、チャレンジ値をブロードキャストにより再送する(ステップS211)。なお、既にレスポンス値を送信しているECUは再送されたチャレンジ値を受信しても、再度レスポンス値を送信しなくてもよい。
【0039】
全てのECUからレスポンス値を受信している場合(ステップS214でYES)は、ステップS217の処理が行われる。
【0040】
ステップS217では、機器認証部104は、レスポンス復号処理の結果を不正操作判定部105に通知する。
例えば、機器認証部104は、全てのECUについてレスポンス値からチャレンジ値が復号できた旨の結果を不正操作判定部105に通知する。または、機器認証部104は、ECU(B)201についてはレスポンス値からチャレンジ値が復号できたが、ECU(C)202についてはレスポンス値からチャレンジ値が復号できなかった等の結果を不正操作判定部105に通知する。
【0041】
図6は、波形解析処理(ステップS1)において計測波形が前回計測波形1080と一致しない場合の機器認証部104の処理を示す。
【0042】
図6において、まず、機器認証部104は、バスライン通信部103を介して各ECUにチャレンジ値をブロードキャストにより送信する(ステップS221)。
【0043】
規定の待ち時間の間にいずれかのECUからバスライン通信部103を介してレスポンス値を受信した場合(ステップS222でYES)に、機器認証部104は、レスポンス復号処理(ステップS223)を行う。
一方、待ち時間の間にレスポンス値を受信しない場合は、機器認証部104は、最後のレスポンス値の受信からt秒が経過している否かを判定する(ステップS224)。ここでも、tの値は、ECU(A)100の利用者が任意に決定することができる。
レスポンス復号処理(ステップS223)の後も、機器認証部104は、最後のレスポンス値の受信からt秒が経過している否かを判定する(ステップS224)。
【0044】
最後のレスポンス値の受信からt秒が経過していない場合(ステップS224でNO)は、処理がステップS222に移行する。
一方、最後のレスポンス値の受信からt秒が経過している場合は(ステップS224でYES)、機器認証部104は、既にN回チャレンジ値を再送しているか否かを判定する(ステップS225)。既にN回チャレンジ値を再送している場合(ステップS225でYES)は、ステップS226の処理が行われる。
ここでも、Nの値は、ECU(A)100の利用者が任意に決定することができる。
一方、N回チャレンジ値を再送していない場合(ステップS225でNO)は、機器認証部104は、バスライン通信部103を用いて、チャレンジ値をブロードキャストにより再送する(ステップS221)。なお、既にレスポンス値を送信しているECUは再送されたチャレンジ値を受信しても、再度レスポンス値を送信しなくてもよい。
【0045】
ステップS226では、機器認証部104は、レスポンス復号処理の結果を不正操作判定部105に通知する。
例えば、機器認証部104は、全てのECUについてレスポンス値からチャレンジ値が復号できた旨の結果を不正操作判定部105に通知する。または、機器認証部104は、ECU(B)201についてはレスポンス値からチャレンジ値が復号できたが、ECU(C)202についてはレスポンス値からチャレンジ値が復号できなかった等の結果を不正操作判定部105に通知する。
【0046】
図6では、
図5のステップS214のように、全てのECUからレスポンス値を受信したか否かの判定は行われない。
図6のフローは、計測波形と前回計測波形1080とが異なっている場合に行われる。計測波形と前回計測波形1080とが異なっている場合は、ECUの数が増加したのか減少したのかが不明である。また、ECUの数がいくつ増加したのか、いくつ減少したのかも不明である。このため、
図6のフローでは、全てのECUからレスポンス値を受信したか否かの判定は行われない。
なお、計測波形により接続されているECU数が判定できる場合もある(波形解析部102の性能による)。この場合は、全てのECUからレスポンス値を受信したか否かの判定を行ってもよい。
【0047】
次に、
図7を参照して、レスポンス復号処理(ステップS213、ステップS223)の詳細を説明する。
【0048】
まず、機器認証部104は、受信したレスポンス値が新規ECUのレスポンス値であるか否かを判定する(ステップS231)。
チャレンジ値に対するECUからの応答には、応答の送信元のECUの識別子が含まれている。ECUの識別子は、ECUを一意に特定できる情報である。機器認証部104は、ECUからの応答に含まれる識別子を構成情報1070に含まれる識別子と比較する。ECUからの応答に含まれる識別子と同じ識別子が構成情報1070に存在すれば、ステップS231の判定はNOとなる。一方、ECUからの応答に含まれる識別子と同じ識別子が構成情報1070に存在しない場合は、レスポンス値の送信元は新規にバスライン300に接続された新規ECUであり、ステップS231の判定はYESとなる。
また、チャレンジ値に対するECUからの応答にECUの識別子が含まれていなくてもよい。この場合に、例えば、認証情報1090が既に認証情報記憶部109で記憶されている既存ECUは、識別子を含ませないで応答を送信する。このようにすることで、機器認証部104は、新規ECUからの応答と、既にバスライン300に接続されている既存ECUからの応答とを判別することができる。つまり、識別子が含まれる応答を受信した場合は、レスポンス値の送信元は新規にバスライン300に接続された新規ECUであり、ステップS231の判定はYESとなる。なお、この場合に、既存ECUの識別には、CAN IDを用いることができる。
ステップS231でYESであれば、ステップS232の処理が行われ、ステッ
プS231でNOであれば、ステップS234の処理が行われる。
【0049】
ステップS232では、機器認証部104は無線通信部101を介して、サーバ装置400に新規ECUの認証情報の送信を要求する。つまり、機器認証部104は、無線通信部101を介して認証情報要求をサーバ装置400に送信する。認証情報要求には新規ECUの識別子が含まれる。
サーバ装置400では、ECUの識別子に対応付けて認証情報が管理されている。このため、サーバ装置400は、認証情報要求に含まれる識別子に対応する認証情報をECU(A)100に送信する。
なお、新規ECUの識別子が不正な場合、新規ECUの当該識別子はサーバ装置400で管理されていない。このため、サーバ装置400は、新規ECUの認証情報をECU(A)100に送信することができない。
【0050】
無線通信部101を介して機器認証部104が、サーバ装置400から新規ECUの
認証情報を受信できた場合(ステップS233でYES)は、処理がステップS235に進む。一方、機器認証部104がサーバ装置400から新規ECUの
認証情報を受信できなかった場合(ステップS233でNO)は、処理がステップS2310に進む。
【0051】
ステップS234では、機器認証部104は、認証情報記憶部109から対応する認証情報1090を取得する。
認証情報記憶部109では、ECUの識別子に対応付けて認証情報1090が管理されている。機器認証部104は、ECUからの応答に含まれる識別子を認証情報記憶部109に出力し、認証情報記憶部109から対応する認証情報1090を取得する。
【0052】
ステップS235では、ステップS233で受信した認証情報又はステップS234で取得した認証情報を用いてレスポンス値の復号処理を行う。
本実施の形態では、共通鍵暗号方式に基づく検証を前提としているが、
非対称鍵を使用した検証、認証関数(MAC(Message Authentication Code))を使用した検証等を行うようにしてもよい。
【0053】
正しく復号することができず、チャレンジ値に一致する値が得られない場合(ステップS236でNO)は、機器認証部104は該当するECUについて認証失敗と判定する(ステップS2310)。
【0054】
一方、正しく復号することができ、チャレンジ値に一致する値が得られた場合(ステップS236でYES)は、機器認証部104は該当するECUについて認証成功と判定する(ステップS237)。
また、正しく復号することができた認証情報がステップS233で受信した認証情報である場合(ステップS238でYES)は、機器認証部104は、ステップS233で受信した認証情報を認証情報1090として新規ECUの識別子と対応付けて認証情報記憶部109に格納する(ステップS239)。
【0055】
なお、
図7のフローでは、ECU(A)100が、他のECUの認証を行うのみであるが、ECU(A)100以外のECUがECU(A)100の認証を行う(相互認証)ようにしてもよい。
【0056】
次に、
図8及び
図9を参照して、不正操作判定処理(ステップS3)の詳細を説明する。
図8は、波形解析処理(ステップS1)において計測波形が前回計測波形1080と一致する場合の不正操作判定部105の処理を示す。
図9は、波形解析処理(ステップS1)において計測波形が前回計測波形1080と一致しない場合の不正操作判定部105の処理を示す。
【0057】
図8において、不正操作判定部105は、機器認証部104の機器認証処理において認証に失敗したECUがあるか否かを判定する(ステップS311)。
いずれかのECUが認証に失敗している場合(ステップS311でYES)、つまり、
図5のステップS217で通知されたレスポンス復号処理の結果でいずれかのECUが認証失敗と示されている場合に、不正操作判定部105は、不正操作が行われていると判定する(ステップS312)。
一方、認証に失敗しているECUが存在しない場合(ステップS311でNO)、つまり、
図5のステップS217で通知されたレスポンス復号処理の結果で全てのECUが認証成功と示されている場合に、不正操作判定部105は、不正操作が行われていないと判定する(ステップS313)。
【0058】
図8のフローは、計測波形が前回計測波形1080に一致する場合に行われる。計測波形が前回計測波形1080に一致する場合は、前回計測波形1080の取得時と今回のECUの組合せ及び配置は同一のはずである。この状況で、認証に失敗したECUが存在するのは(ステップS311でYES)、前回計測波形1080の取得時にバスライン300に接続していたECU(以下、ECU(z)という)が、ECU(z)と波形特性が同一の新規ECU(以下、ECU(x)という)に置き換えられ、ECU(x)から取得した識別子がサーバ装置400に登録されておらず、このため、サーバ装置400からECU(x)の認証情報が得られなかったためと考えられる。つまり、ECU(x)がECU(z)になりすまして、バスライン300に接続していると考えられる。
一方、認証に失敗したECUが存在しない場合(ステップS311でNO)は、前回計測波形1080の取得時にバスライン300に接続していたECUがそのままバスライン300に接続しているものと考えられる。
【0059】
図9において、不正操作判定部105は、機器認証部104の機器認証処理において認証に失敗したECUがあるか否かを判定する(ステップS321)。
いずれかのECUが認証に失敗している場合(ステップS321でYES)、つまり、
図5のステップS217で通知されたレスポンス復号処理の結果でいずれかのECUが認証失敗と示されている場合に、不正操作判定部105は、バスライン300で不正操作が行われていると判定する(ステップS328)。
図9のフローは、計測波形が前回計測波形1080に一致しない場合に行われる。ステップS321でYESの場合、すなわち、いずれかのECUが認証に失敗している場合は、認証に失敗したECU(以下、ECU(x)という)の識別子がサーバ装置400に登録されておらず、このため、サーバ装置400からECU(x)の認証情報が得られなかったと考えられる。そして、ECU(x)がバスライン300に新規に接続されたため、計測波形が前回計測波形1080に一致しなくなったと考えられる。
【0060】
一方、認証に失敗しているECUが存在しない場合(ステップS321でNO)、つまり、
図5のステップS217で通知されたレスポンス復号処理の結果で全てのECUが認証成功と示されている場合に、不正操作判定部105は、バスライン300に接続されているECUの構成が変化しているか否かを判定する(ステップS322)。
より具体的には、不正操作判定部105は、機器認証部104が各ECUから受信した応答に含まれる識別子の組合せと、構成情報1070に示されるECUの識別子の組合せが一致しているか否かを判定する。識別子の組合せが一致している場合は、不正操作判定部105はECUの構成が変化していないと判定する(ステップS322でNO)。一方、識別子の組合せが一致しない場合は、不正操作判定部105はECUの構成が変化していると判定する(ステップS322でYES)。
【0061】
ECUの構成が変化していないと判定した場合(ステップS322でNO)は、不正操作判定部105は、バスライン300で不正操作が行われていると判定する(ステップS328)。
ステップS322でNOの場合は、ECUの構成が変化していないにも関わらず、計測波形が前回計測波形1080に一致していない。この現象の理由として、以下の2つが考えられる。
(1)バスライン300に接続されるECUの組合せに変化は無いが、ECUの配置が変化した。
(2)サイレントノードがバスライン300に接続された。
サイレントノードは、チャレンジ値に対して応答を返信しない機器である。サイレントノードがバスライン300に接続された場合は、サイレントノードからは応答を受信しないので、機器認証部104は全てのECUが認証に成功したと判定する。一方で、サイレントノードが接続されているので、計測波形と前回計測波形1080は一致しない。
【0062】
ECUの構成が変化していると判定した場合(ステップS322でYES)は、不正操作判定部105は、バスライン300から必須ECUが除去されているか否かを判定する(ステップS323)。
必須ECUは、車両10の走行に必須のECUである。例えば、ハンドル制御のためのECUは、車両10の走行に必須のECUであるため、必須ECUに相当する。一方で、カーオーディオの制御のためのECUは車両10の走行に必須のECUではないため、必須ECUに相当しない。
不正操作判定部105は、機器認証部104が各ECUから受信した応答に含まれる識別子に必須ECUの識別子が含まれるか否かを判定して、バスライン300から必須ECUが除去されているか否かを判定する。
【0063】
必須ECUが除去されている場合(ステップS323でYES)は、不正操作判定部105は、バスライン300で不正操作が行われていると判定する(ステップS328)。
【0064】
必須ECUが除去されていない場合(ステップS323でNO)は、不正操作判定部105は、想定波形を取得する(ステップS324)。
想定波形は、現在のECUの構成で想定される電圧波形である。不正操作判定部105は、機器認証部104が各ECUから受信した応答に含まれる識別子の組合せから、現在のECUの構成を推定する。そして、不正操作判定部105は、推定した現在のECUの構成から、想定波形を取得(算出)する。
または、不正操作判定部105は、推定した現在のECUの構成をサーバ装置400に送信し、サーバ装置400に想定波形を算出させてもよい。この場合に、不正操作判定部105は、無線通信部101を介して、サーバ装置400から想定波形を取得(受信)する。
【0065】
次に、不正操作判定部105は、計測波形と、ステップS324で取得した想定波形とを比較する(ステップS325)。
【0066】
計測波形と想定波形とが一致しない場合(ステップS325で
NO)は、不正操作判定部105は、バスライン300で不正操作が行われていると判定する(ステップS328)。なお、ステップS325では、不正操作判定部105は、計測波形と想定波形とが規定の誤差範囲内にあれば、計測波形と想定波形とが一致していると判定する。
計測波形と想定波形とが一致しない場合、すなわち、計測波形が想定波形から大きく異なる場合は、サイレントノードが接続されていると考えられる。サイレントノードは、前述のように、チャレンジ値に対して応答を返信しないECUである。サイレントノードがバスライン300に接続された場合は、サイレントノードからは応答を受信しないので、機器認証部104は全てのECUが認証に成功したと判定する(ステップS321でNO)。一方で、サイレントノードが接続されているので、計測波形と想定波形は一致しない。
【0067】
計測波形と想定波形とが一致する場合(ステップS325で
YES)は、不正操作判定部105は、バスライン300で不正操作が行われていないと判定する(ステップS326)。
この場合は、認証に失敗したECUが存在せず、ECUの構成が変化しており、必須ECUは除去されておらず、また、計測波形と想定波形とが一致している。従って、前回計測波形1080の取得時にバスライン300に接続されていた、必須ECUではないECUが除去されたためECUの構成が変化したと考えられる。または、前回計測波形1080の取得時にはバスライン300に接続されていなかったECUが追加され、追加されたECUの識別子がサーバ装置400に登録されていると考えられる(従って、機器認証部104の認証に成功)。または、前回計測波形1080の取得時にバスライン300に接続されていた、必須ECUではないECUが他のECUに置き換えられ、置き換え後の識別子がサーバ装置400に登録されていると考えられる(従って、機器認証部104の認証に成功)。
【0068】
その後、不正操作判定部105は、構成情報1070及び前回計測波形1080を更新する(ステップS327)。
つまり、不正操作判定部105は、機器認証部104が各ECUから受信した応答に含まれる識別子の組合せが示される情報を、新たな構成情報1070として構成情報記憶部107に格納する。
また、不正操作判定部105は、今回の計測波形を、新たな前回計測波形1080として計測波形記憶部108に格納する。
【0069】
***実施の形態の効果の説明***
本実施の形態によれば、バスラインへの不正操作を正しく検出できるようにすることができる。より具体的には、本実施の形態によれば、正規の機器が新たにバスラインに追加された場合又はバスラインから機器が削除された場合と、不正な機器がバスラインに追加された場合とを正しく判別することができる。
【0070】
また、本実施の形態によれば、サイレントノードの不正接続という不正操作を検出することができる。
また、本実施の形態によれば、サイレントノードではない、他のECUになりすますECUの不正接続も検出することができる。
【0071】
また、本実施の形態では、不正操作がないと判定される度に構成情報、計測波形が更新されるため、適切な機器認証結果及び適切な不正接続判定結果を得ることができる。
また、本実施の形態によれば、通信情報及びソフトウェアの更新を含めて、構成に合わせた適切な機能を実現することができる。
【0072】
なお、本実施の形態では、電圧値の経時変化を表す波形を計測波形として用いている。電圧値の波形の代わりにインピーダンス値の波形を計測波形として用いてもよい。この場合は、波形解析部102は、計測された電圧値を印加電圧値に基づいてインピーダンス値に変換する機能を有する。また、波形解析部102は、経過時間をバスライン30の長さ方向に変換してもよい。この場合は、波形解析部102は、計測ポイントにおける経過時間を伝送路遅延時間から長さ方向に変換する機能を有する。
また、計測波形と前回計測波形が一致する場合は、前回認証数の機器認証が行われたら、処理を終了するようにしてもよい。この場合は、処理時間を短縮することができる。
【0073】
***ハードウェア構成の説明***
最後に、ECU(A)100のハードウェア構成の補足説明を行う。
プロセッサ901は、プロセッシングを行うIC(Integrated Circuit)である。
プロセッサ901は、CPU(Central Processing Unit)、DSP(Digital Signal Processor)等である。
主記憶装置902は、RAM(Random Access Memory)である。
補助記憶装置903は、ROM(Read Only Memory)、フラッシュメモリ、HDD(Hard Disk Drive)等である。
【0074】
補助記憶装置903には、OS(Operating System)も記憶されている。
そして、OSの少なくとも一部がプロセッサ901により実行される。
プロセッサ901はOSの少なくとも一部を実行しながら、無線通信部101、波形解析部102、バスライン通信部103、機器認証部104及び不正操作判定部105の機能を実現するプログラムを実行する。
また、プロセッサ901はOSの少なくとも一部を実行しながら、無線通信部101、波形解析部102、バスライン通信部103、機器認証部104及び不正操作判定部105の機能を実現するプログラムを実行する。
プロセッサ901がOSを実行することで、タスク管理、メモリ管理、ファイル管理、通信制御等が行われる。
また、無線通信部101、波形解析部102、バスライン通信部103、機器認証部104及び不正操作判定部105の処理の結果を示す情報、データ、信号値及び変数値の少なくともいずれかが、主記憶装置902、補助記憶装置903、プロセッサ901内のレジスタ及びキャッシュメモリの少なくともいずれかに記憶される。
また、無線通信部101、波形解析部102、バスライン通信部103、機器認証部104及び不正操作判定部105の機能を実現するプログラムは、磁気ディスク、フレキシブルディスク、光ディスク、コンパクトディスク、ブルーレイ(登録商標)ディスク、DVD等の可搬記憶媒体に記憶されてもよい。
【0075】
また、無線通信部101、波形解析部102、バスライン通信部103、機器認証部104及び不正操作判定部105の「部」を、「回路」又は「工程」又は「手順」又は「処理」に読み替えてもよい。
また、ECU(A)100は、ロジックIC(Integrated Circuit)、GA(Gate Array)、ASIC(Application Specific Integrated Circuit)、FPGA(Field−Programmable Gate Array)といった電子回路により実現されてもよい。
なお、プロセッサ及び上記の電子回路を総称してプロセッシングサーキットリーともいう。