(58)【調査した分野】(Int.Cl.,DB名)
前記送信可否判定部は、判定対象のメッセージに関する前記送信予定時点から前記判定対象のメッセージの送信が完了するまでの間に、所定長を超えるメッセージ無送信期間が存在する場合に、前記判定対象のメッセージの送信を許可しないと判定するようにしてあること
を特徴とする請求項1乃至請求項3のいずれか1つに記載の通信制御装置。
前記送信可否判定部は、判定対象のメッセージに関する前記送信予定時点から前記判定対象のメッセージの送信が完了するまでの間に、所定長を超えるメッセージ無送信期間が存在する場合に、前記判定対象のメッセージの送信を許可しないと判定するようにしてあること
を特徴とする請求項9乃至請求項11のいずれか1つに記載の通信システム。
前記メッセージ送信部は、前記ハッシュ値送信部が正しいハッシュ値の送信を完了した時点に基づく基準時点を決定し、決定した時点を基準として周期的にメッセージ送信を行うようにしてあること
を特徴とする請求項13に記載の通信システム。
前記通信制御装置は、前記送信可否判定部が送信を許可しないと判定したメッセージを、該メッセージを受信する前記通信装置に破棄させる処理を行う破棄処理部を有すること
を特徴とする請求項9乃至請求項14のいずれか1つに記載の通信システム。
【発明の概要】
【発明が解決しようとする課題】
【0005】
車載の通信システムにおいて、例えばCANバスに悪意のある装置が接続される可能性がある。このような装置は、例えばCANバスに対して不正なメッセージ送信を行うことによって、CANバスに接続された正規のECUなどを誤動作させる虞がある。特許文献1に記載の通信管理装置は、CANバスの使用率が負荷基準値を超えているか否かを判定する構成であるため、悪意のある装置によるメッセージ送信量が少ない場合には送信規制を行うことができないという問題がある。
【0006】
本発明は、斯かる事情に鑑みてなされたものであって、その目的とするところは、共通の通信線に対して不正な装置がメッセージ送信を行った場合に、このようなメッセージ送信を検出することができる通信制御装置及び通信システムを提供することにある。
【課題を解決するための手段】
【0007】
本発明に係る通信制御装置は、周期的にメッセージ送信を行うメッセージ送信部を有する通信装置による通信を制御する通信制御装置であって、前記メッセージ送信部によるメッセージ送信に係る基準時点を決定する基準時点決定部と、該基準時点決定部が決定した基準時点に前記メッセージ送信部によるメッセージ送信周期の整数倍の期間を加えた送信予定時点に対し、該送信予定時点を含む所定期間をメッセージ送信の許可期間とする許可期間決定部と、前記通信装置が送信したメッセージを検出するメッセージ検出部と、該メッセージ検出部が検出したメッセージが、前記許可期間決定部が決定した許可期間内に送信されたものであるか否かに応じて、前記メッセージの送信可否を判定する送信可否判定部とを備え
、前記通信装置が送信する前記メッセージには、該メッセージの優先度を示す情報を含み、前記許可期間決定部は、メッセージの優先度毎に前記許可期間を決定するようにしてあることを特徴とする。
【0008】
また本発明に係る通信制御装置は、制御対象の通信装置が複数存在する場合に、前記基準時点決定部及び前記許可期間決定部は、複数の通信装置それぞれについて前記基準時点及び前記許可期間を決定するようにしてあることを特徴とする。
【0010】
また本発明に係る通信制御装置は、複数の前記通信装置のメッセージ送信が衝突した場合に、メッセージに対して定められた優先度に応じて送信順序を調停する調停手段を備え、前記送信可否判定部は、判定対象のメッセージに関する前記送信予定時点から前記判定対象のメッセージの送信が完了するまでの間に送信を完了した他のメッセージの優先度を調べ、前記判定対象のメッセージより優先度が低い他のメッセージが存在する場合に、前記判定対象のメッセージの送信を許可しないと判定するようにしてあることを特徴とする。
【0011】
また本発明に係る通信制御装置は、前記送信可否判定部は、判定対象のメッセージに関する前記送信予定時点から前記判定対象のメッセージの送信が完了するまでの間に、所定長を超えるメッセージ無送信期間が存在する場合に、前記判定対象のメッセージの送信を許可しないと判定するようにしてあることを特徴とする。
【0012】
また本発明に係る通信制御装置は、前記通信装置に対してハッシュ値の算出要求を与えるハッシュ値要求部と、前記算出要求に対する応答として前記通信装置が送信するハッシュ値を受信するハッシュ値受信部と、該ハッシュ値受信部が受信したハッシュ値の正誤を判定するハッシュ値判定部とを備え、前記基準時点決定部は、前記通信装置から正しいハッシュ値の受信を完了した時点に基づいて、前記基準時点を決定するようにしてあることを特徴とする。
【0013】
また本発明に係る通信制御装置は、前記送信可否判定部が送信を許可しないと判定したメッセージを、該メッセージを受信する前記通信装置に破棄させる処理を行う破棄処理部を備えることを特徴とする。
また本発明に係る通信制御装置は、周期的にメッセージ送信を行うメッセージ送信部を有する通信装置による通信を制御する通信制御装置であって、前記メッセージ送信部によるメッセージ送信に係る基準時点を決定する基準時点決定部と、該基準時点決定部が決定した基準時点に前記メッセージ送信部によるメッセージ送信周期の整数倍の期間を加えた送信予定時点に対し、該送信予定時点を含む所定期間をメッセージ送信の許可期間とする許可期間決定部と、前記通信装置が送信したメッセージを検出するメッセージ検出部と、該メッセージ検出部が検出したメッセージが、前記許可期間決定部が決定した許可期間内に送信されたものであるか否かに応じて、前記メッセージの送信可否を判定する送信可否判定部とを備え、前記送信可否判定部は、判定対象のメッセージに関する前記送信予定時点から前記判定対象のメッセージの送信が完了するまでの間に、所定長を超えるメッセージ無送信期間が存在する場合に、前記判定対象のメッセージの送信を許可しないと判定するようにしてあることを特徴とする。
また本発明に係る通信制御装置は、周期的にメッセージ送信を行うメッセージ送信部を有する通信装置による通信を制御する通信制御装置であって、前記メッセージ送信部によるメッセージ送信に係る基準時点を決定する基準時点決定部と、該基準時点決定部が決定した基準時点に前記メッセージ送信部によるメッセージ送信周期の整数倍の期間を加えた送信予定時点に対し、該送信予定時点を含む所定期間をメッセージ送信の許可期間とする許可期間決定部と、前記通信装置が送信したメッセージを検出するメッセージ検出部と、該メッセージ検出部が検出したメッセージが、前記許可期間決定部が決定した許可期間内に送信されたものであるか否かに応じて、前記メッセージの送信可否を判定する送信可否判定部と、前記通信装置に対してハッシュ値の算出要求を与えるハッシュ値要求部と、前記算出要求に対する応答として前記通信装置が送信するハッシュ値を受信するハッシュ値受信部と、該ハッシュ値受信部が受信したハッシュ値の正誤を判定するハッシュ値判定部とを備え、前記基準時点決定部は、前記通信装置から正しいハッシュ値の受信を完了した時点に基づいて、前記基準時点を決定するようにしてあることを特徴とする。
【0014】
また本発明に係る通信システムは、互いにメッセージの送受信を行う複数の通信装置及び該通信装置による通信を制御する通信制御装置を備える通信システムであって、前記通信装置は、周期的にメッセージ送信を行うメッセージ送信部を有し、前記通信制御装置は、前記メッセージ送信部によるメッセージ送信に係る基準時点を決定する基準時点決定部と、該基準時点決定部が決定した基準時点に前記メッセージ送信部によるメッセージ送信周期の整数倍の期間を加えた送信予定時点に対し、該送信予定時点を含む所定期間をメッセージ送信の許可期間とする許可期間決定部と、前記通信装置が送信したメッセージを検出するメッセージ検出部と、該メッセージ検出部が検出したメッセージが、前記許可期間決定部が決定した許可期間内に送信されたものであるか否かに応じて、前記メッセージの送信可否を判定する送信可否判定部とを有
し、前記通信装置が送信する前記メッセージには、該メッセージの優先度を示す情報を含み、前記許可期間決定部は、メッセージの優先度毎に前記許可期間を決定するようにしてあることを特徴とする。
【0015】
また、本発明に係る通信システムは、前記基準時点決定部及び前記許可期間決定部が、前記複数の通信装置それぞれについて前記基準時点及び前記許可期間を決定するようにしてあることを特徴とする。
【0017】
また、本発明に係る通信システムは、複数の前記通信装置のメッセージ送信が衝突した場合に、メッセージに対して定められた優先度に応じて送信順序を調停する調停手段を備え、前記送信可否判定部は、判定対象のメッセージに関する前記送信予定時点から前記判定対象のメッセージの送信が完了するまでの間に送信を完了した他のメッセージの優先度を調べ、前記判定対象のメッセージより優先度が低い他のメッセージが存在する場合に、前記判定対象のメッセージの送信を許可しないと判定するようにしてあることを特徴とする。
【0018】
また、本発明に係る通信システムは、前記送信可否判定部が、判定対象のメッセージに関する前記送信予定時点から前記判定対象のメッセージの送信が完了するまでの間に、所定長を超えるメッセージ無送信期間が存在する場合に、前記判定対象のメッセージの送信を許可しないと判定するようにしてあることを特徴とする。
【0019】
また、本発明に係る通信システムは、前記通信制御装置が、前記通信装置に対してハッシュ値の算出要求を与えるハッシュ値要求部と、前記算出要求に対する応答として前記通信装置が送信するハッシュ値を受信するハッシュ値受信部と、該ハッシュ値受信部が受信したハッシュ値の正誤を判定するハッシュ値判定部とを有し、前記通信装置は、前記通信制御装置からの算出要求に応じてハッシュ値を算出するハッシュ値算出部と、該ハッシュ値算出部が算出したハッシュ値を前記通信制御装置へ送信するハッシュ値送信部とを有し、前記基準時点決定部は、前記通信装置から正しいハッシュ値の受信を完了した時点に基づいて、前記基準時点を決定するようにしてあることを特徴とする。
【0020】
また、本発明に係る通信システムは、前記メッセージ送信部が、前記ハッシュ値送信部が正しいハッシュ値の送信を完了した時点に基づく基準時点を決定し、決定した時点を基準として周期的にメッセージ送信を行うようにしてあることを特徴とする。
【0021】
また、本発明に係る通信システムは、前記通信制御装置が、前記送信可否判定部が送信を許可しないと判定したメッセージを、該メッセージを受信する前記通信装置に破棄させる処理を行う破棄処理部を有することを特徴とする。
また、本発明に係る通信システムは、互いにメッセージの送受信を行う複数の通信装置及び該通信装置による通信を制御する通信制御装置を備える通信システムであって、前記通信装置は、周期的にメッセージ送信を行うメッセージ送信部を有し、前記通信制御装置は、前記メッセージ送信部によるメッセージ送信に係る基準時点を決定する基準時点決定部と、該基準時点決定部が決定した基準時点に前記メッセージ送信部によるメッセージ送信周期の整数倍の期間を加えた送信予定時点に対し、該送信予定時点を含む所定期間をメッセージ送信の許可期間とする許可期間決定部と、前記通信装置が送信したメッセージを検出するメッセージ検出部と、該メッセージ検出部が検出したメッセージが、前記許可期間決定部が決定した許可期間内に送信されたものであるか否かに応じて、前記メッセージの送信可否を判定する送信可否判定部とを有し、前記送信可否判定部は、判定対象のメッセージに関する前記送信予定時点から前記判定対象のメッセージの送信が完了するまでの間に、所定長を超えるメッセージ無送信期間が存在する場合に、前記判定対象のメッセージの送信を許可しないと判定するようにしてあることを特徴とする。
また、本発明に係る通信システムは、互いにメッセージの送受信を行う複数の通信装置及び該通信装置による通信を制御する通信制御装置を備える通信システムであって、前記通信装置は、周期的にメッセージ送信を行うメッセージ送信部を有し、前記通信制御装置は、前記メッセージ送信部によるメッセージ送信に係る基準時点を決定する基準時点決定部と、該基準時点決定部が決定した基準時点に前記メッセージ送信部によるメッセージ送信周期の整数倍の期間を加えた送信予定時点に対し、該送信予定時点を含む所定期間をメッセージ送信の許可期間とする許可期間決定部と、前記通信装置が送信したメッセージを検出するメッセージ検出部と、該メッセージ検出部が検出したメッセージが、前記許可期間決定部が決定した許可期間内に送信されたものであるか否かに応じて、前記メッセージの送信可否を判定する送信可否判定部と、前記通信装置に対してハッシュ値の算出要求を与えるハッシュ値要求部と、前記算出要求に対する応答として前記通信装置が送信するハッシュ値を受信するハッシュ値受信部と、該ハッシュ値受信部が受信したハッシュ値の正誤を判定するハッシュ値判定部とを有し、前記通信装置は、前記通信制御装置からの算出要求に応じてハッシュ値を算出するハッシュ値算出部と、該ハッシュ値算出部が算出したハッシュ値を前記通信制御装置へ送信するハッシュ値送信部とを更に有し、前記基準時点決定部は、前記通信装置から正しいハッシュ値の受信を完了した時点に基づいて、前記基準時点を決定するようにしてあることを特徴とする。
【0022】
本発明においては、共通の通信線に複数の通信装置が接続され、各通信装置が周期的にメッセージ送信を行う構成の通信システムに対して、不正なメッセージ送信を検出する通信制御装置を設ける。通信制御装置は、通信装置による周期的なメッセージ送信の基準時点(t0)を決定し、基準時点(t0)に対してメッセージの送信周期(T)の整数(n=1,2,3,…)倍の期間を加えた複数の時点(t1=t0+T,t2=t0+2T,t3=t0+3T,…,tn=t0+nT)を送信予定時点と決定し、各送信予定時点(t1,t2,t3,…,tn)に対してこの時点を含む所定期間(t1−A〜t1+B,t2−A〜t2+B,t3−A〜t3+B,…,tn−A〜tn+B)をメッセージ送信の許可期間と決定する。
また通信制御装置は、共通の通信線を監視することによって、通信装置が送信したメッセージを検出する。通信制御装置は、検出されたメッセージが上記の許可期間内に送信されたものであるか否かを判定することにより、このメッセージが不正なものであるか否かを判定することができ、このメッセージの送信を許可するか否かを判定することができる。
【0023】
上記のように本発明の通信制御装置は、最初の段階で決定した基準時点に基づいて、以降のメッセージ送信の許可期間を決定する構成、即ち絶対的な基準で許可期間を決定する構成である。これに対して例えばメッセージ受信毎に、このメッセージの受信時点に周期Tを加えた時点を含む所定期間を許可期間とする構成、即ち相対的な基準で許可期間を決定する構成を採用することが考えられる。しかし、CANの通信プロトコルではメッセージ送信の衝突が発生した場合には調停処理が行われ、優先度の低いメッセージの送信に遅延が発生する。相対的な決定を行う構成では、メッセージ送信に遅延が発生した場合に、判定のための許可期間が変動するため、許可期間をある程度広く設定する必要があり、許可期間を狭めることが容易でない。許可期間が広いほど不正なメッセージを正当であると誤判定する可能性が高まる。また相対的な決定を行う構成では、不正なメッセージの受信を基準として次のメッセージの許可期間が決定される虞がある。このような事態が発生した場合、不正なメッセージが連続的に正当なメッセージであると誤判定される可能性がある。本発明の通信制御装置は、絶対的な基準で許可期間を決定することによって、これらの問題が発生することを回避することが可能である。
【0024】
また本発明においては、通信システムに含まれる各通信装置について、通信制御装置は基準時点をそれぞれ個別に決定する。また通信制御装置は、決定したそれぞれの基準時点に対して許可期間を通信装置毎に決定する。なお各通信装置のメッセージ送信周期はそれぞれ異なっていてよい。これにより、通信システムにメッセージの送信周期及び送信タイミング等が異なる通信装置が含まれる場合であっても、通信制御装置が通信装置毎にメッセージ送信の可否を判定することができる。
【0025】
また本発明においては、送信周期が異なる複数種別のメッセージを通信装置が送信可能とし、通信制御装置はメッセージ種別毎に許可期間を決定する。なお通信制御装置は、基準時点についてもメッセージの種別毎に決定してもよい。これにより送信周期が異なるメッセージを1つの通信装置が送信する場合であっても、通信制御装置は、メッセージの種別毎に送信の可否を判定することができる。
【0026】
また本発明においては、共通の通信線に対して複数の通信装置が接続される構成であるため、複数の通信装置が同時的にメッセージ送信を行った場合に、通信線上で複数のメッセージが衝突する可能性がある。このような場合には通信装置間で調停処理を行い、メッセージの優先度に応じた順序で送信がなされる。即ち、衝突した複数のメッセージについて、まず優先度が高いメッセージの送信が行われた後、優先度が低いメッセージの送信が行われる。
このような調停処理が行われる通信システムでは、通信装置が周期的に送信しようとしたメッセージが他のメッセージと衝突して遅延する可能性がある。そこで通信制御装置は、判定対象のメッセージについて送信予定時点からこのメッセージの送信完了までの間に、他のメッセージが送信されたか否かを調べる。他のメッセージが送信されていた場合、通信制御装置は、判定対象のメッセージの優先度と他のメッセージの優先度とを比較する。
他のメッセージの優先度が判定対象のメッセージの優先度より高い場合、判定対象のメッセージは正当な調停処理によって送信に遅延が発生したと考えられるため、通信制御装置は、判定対象のメッセージの送信を許可する。これに対して、他のメッセージの優先度が判定対象のメッセージの優先度より低い場合、判定対象のメッセージの遅れは正当な調停処理によるものではないと考えられるため、通信制御装置は、判定対象のメッセージの送信を許可しない。これにより、調停処理によってメッセージ送信に遅延が発生する通信システムであっても、通信制御装置は、メッセージ送信の可否を判定することができる。
【0027】
また本発明においては、判定対象のメッセージの送信予定時点からこのメッセージの送信が完了するまでの間に、所定長を超えるメッセージ無送信期間が存在するか否かを通信制御装置が判定する。メッセージ無送信期間が存在する場合、判定対象のメッセージの遅延は正当な調停処理によって発生したものではないと考えられるため、通信制御装置は、判定対象のメッセージの送信を許可しない。
【0028】
また本発明においては、基準時点を決定するために、通信制御装置と通信装置との間で所定の手続を行う。通信制御装置は、通信装置に対してハッシュ値の算出要求を送信する。このときに通信制御装置は、ハッシュ値算出に必要な情報を算出要求と共に通信装置へ与えてもよい。通信制御装置から算出要求を受信した通信装置は、例えば自身のメモリに記憶された情報などに基づいて所定のハッシュ関数を用いたハッシュ値の算出を行い、算出したハッシュ値を通信制御装置へ送信する。通信装置からハッシュ値を受信した通信制御装置は、このハッシュ値が正しいものであるか否かを判定する。受信したハッシュ値が正しいものである場合、通信制御装置は、このハッシュ値の受信を完了した時点に基づいて基準時点を決定する。なお通信装置は、正しいハッシュ値の受信完了時点を基準時点としてもよく、受信完了時点に所定の時間を増減した時点を基準時点としてもよい。
同様に通信装置は、正しいハッシュ値の送信を完了した時点に基づいて基準時点を決定し、決定した時点を基準として周期的なメッセージ送信を行う。
ハッシュ値に基づく信頼性の高い通信結果に基づいて基準時点を決定することができるため、通信制御装置は、信頼性の高い不正メッセージ検出を行うことができる。
【0029】
また本発明においては、通信制御装置が不正なメッセージであるとして送信を許可しないと判定したメッセージについて、このメッセージを受信する通信装置に対してメッセージを破棄させる処理を通信制御装置が行う。これにより不正なメッセージを通信装置が受信し、このメッセージに応じた処理が通信装置にて行われることを防止できる。
【発明の効果】
【0030】
本発明による場合は、通信制御装置が基準時点に対してメッセージ送信期間の整数倍の期間を加えた時点を含む許可期間を決定し、通信装置が送信したメッセージが許可期間内であるか否かを判定する構成とすることにより、不正な装置が共通の通信線に対して送信したメッセージを精度よく検出することができる。
【発明を実施するための形態】
【0032】
<システム構成>
図1は、本実施の形態に係る通信システムの構成を示す模式図である。本実施の形態に係る通信システムは、車両1に搭載された複数のECU3と、1つの監視装置5とを備えて構成されている。ECU3及び監視装置5は、車両1に敷設された共通の通信線を介して接続され、相互にメッセージを送受信することができる。本実施の形態においては、この通信線をCANバスとし、ECU3及び監視装置5は、CANプロトコルに従った通信を行う。ECU3は、例えば車両1のエンジンの制御を行うエンジンECU、車体の電装品の制御を行うボディECU、ABS(Antilock Brake System)に関する制御を行うABS−ECU、又は、車両1のエアバッグの制御を行うエアバッグECU等のように、種々の電子制御装置であってよい。監視装置5は、車内ネットワークに対する不正なメッセージ送信を監視する装置である。監視装置5は、監視専用の装置として設けられてもよく、例えばゲートウェイなどの装置に監視の機能を付加した構成であってもよく、また例えばいずれか1つのECU3に監視の機能を付加した構成であってもよい。
【0033】
図2は、ECU3の構成を示すブロック図である。なお
図2においては、車両1に設けられた複数のECU3について、通信及び不正検知等に関するブロックを抜き出して図示してある。これらのブロックは各ECU3に共通である。本実施の形態に係るECU3は、処理部31、ROM(Read Only Memory)32、RAM(Random Access Memory)33及びCAN通信部34等を備えて構成されている。処理部31は、CPU(Central Processing Unit)又はMPU(Micro-Processing Unit)等の演算処理装置を用いて構成されている。処理部31は、ROM32に記憶されたプログラム32aを読み出して実行することにより、車両1に係る種々の情報処理又は制御処理等を行う。
【0034】
ROM32は、フラッシュメモリ又はEEPROM(Electrically Erasable Programmable ROM)等の不揮発性のメモリ素子を用いて構成されている。ROM32は、処理部31が実行するプログラム32aと、これにより行われる処理に必要な種々のデータ32bとが記憶されている。なおROM32に記憶されるプログラム32a及びデータ32bは、ECU3毎に異なる。RAM33は、SRAM(Static Random Access Memory)又はDRAM(Dynamic Random Access Memory)等のデータ書き換え可能なメモリ素子を用いて構成されている。RAM33は、処理部31の処理により生成された種々のデータを記憶する。
【0035】
CAN通信部34は、CANの通信プロトコルに従って、CANバスを介した他のECU3又は監視装置5との通信を行う。CAN通信部34は、処理部31から与えられた送信用の情報を、CANの通信プロトコルに従った信号に変換し、変換した信号をCANバスへ出力することで他のECU3又は監視装置5への情報送信を行う。CAN通信部34は、CANバスの電位をサンプリングすることによって、他のECU3又は監視装置5が出力した信号を取得し、この信号をCANの通信プロトコルに従って2値の情報に変換することで情報の受信を行い、受信した情報を処理部31へ与える。
【0036】
またCAN通信部34は、自らのメッセージ送信と、他のECU3又は監視装置5によるメッセージ送信とに衝突が発生した場合に、いずれのメッセージを先に送信するかを調停する処理、いわゆるアービトレーション処理を行う。各ECU3が送信するメッセージには、メッセージの種別に応じて予めIDが定められている。このIDは、数値として扱われる情報であり、その値が小さいほどメッセージ送信の優先度が高い。このため通信システムにおいては、CANバス上で複数のメッセージ送信が衝突した場合、最も優先度が高いメッセージ送信が行われ、このメッセージの送信完了後に他のメッセージの送信が行われる。なおCAN通信部34が行うアービトレーション処理は、既存の技術であるため、詳細な処理手順の説明は省略する。
【0037】
本実施の形態においてECU3の処理部31には、プログラム32aの実行により、メッセージ処理部41及びハッシュ値算出部42等がソフトウェア的な機能ブロックとして実現される。なおメッセージ処理部41及びハッシュ値算出部42等は、その一部又は全部がハードウェアによる機能ブロックとして実現されてもよい。メッセージ処理部41は、センサなどが検知した情報又は制御対象の機器からのフィードバック情報等の情報を取得し、取得した情報を含むCANプロトコルのメッセージを作成し、作成したメッセージをCANバスに対して送信する処理を周期的に行う。なおメッセージの送信周期は、メッセージの種別(即ちID)毎に定められており、メッセージ処理部41は、メッセージの種別毎に異なる周期で送信を行うことができる。
【0038】
ハッシュ値算出部42は、監視装置5からの算出要求に応じて、ハッシュ値を算出する処理を行う。ハッシュ値算出部42は、ROM32に記憶されているデータ(プログラム32a及びデータ32bの両方を含んでよい)の一部又は全部と、監視装置5からの算出要求に付されたランダムシードとに基づいて、予め定められたハッシュ関数を用いることによりハッシュ値を算出する。ハッシュ値算出部42によりハッシュ値算出の詳細手順は後述する。ハッシュ値算出部42は、算出したハッシュ値を、算出要求に対する応答として、監視装置5へ送信する。
【0039】
図3は、監視装置5の構成を示すブロック図である。監視装置5は、処理部51、記憶部52及びCAN通信部53等を備えて構成されている。処理部51は、CPU又はMPU等の演算処理装置を用いて構成され、記憶部52に記憶されたプログラムを読み出して実行することにより、車両1のECU3の挙動及び通信等を監視する処理を行う。記憶部52は、フラッシュメモリ又はEEPROM等のデータ書き換え可能な不揮発性のメモリ素子を用いて構成されている。本実施の形態において記憶部52は、車両1に搭載されたECU3のROM32の記憶内容を複写した複写データ52aと、各ECU3が送信するメッセージの送信周期に関する周期情報52bとを記憶している。
【0040】
CAN通信部53は、CANの通信プロトコルに従って、CANバスを介したECU3との通信を行う。CAN通信部53は、処理部51から与えられた送信用の情報を、CANの通信プロトコルに従った信号に変換し、変換した信号をCANバスへ出力することでECU3への情報送信を行う。CAN通信部53は、CANバスの電位をサンプリングすることによって、ECU3が出力した信号を取得し、この信号をCANの通信プロトコルに従って2値の情報に変換することで情報の受信を行い、受信した情報を処理部51へ与える。
【0041】
本実施の形態において監視装置5の処理部51には、基準時点決定部61、許可期間決定部62、送信可否判定部63及び破棄処理部64等が設けられている。基準時点決定部61〜破棄処理部64は、ハードウェアの機能ブロックとして構成されるものであってもよく、ソフトウェアの機能ブロックとして構成されるものであってもよい。基準時点決定部61及び許可期間決定部62は、監視装置5が不正なメッセージ送信を検出するための条件などを決定する処理を行う。送信可否判定部63は、基準時点決定部61及び許可期間決定部62が決定した条件に基づいて、CANバス上に出力されたメッセージの送信可否を判定する処理を行う。破棄処理部64は、送信可否判定部63により送信を許可されなかったメッセージについて、このメッセージがECU3にて受信されることを阻止すべく、ECU3にメッセージを破棄させるための処理を行う。
【0042】
図4は、監視装置5の記憶部52に記憶される複写データ52aの構成を説明する模式図である。監視装置5は、車両1に搭載された監視対象の全てのECU3について、ROM32の記憶内容と同じものを複写データ52aとして記憶している。複写データ52aは、各ECU3に対して一意に付された識別情報(
図4においてECUa、ECUb…)と、各ECU3のROM32の記憶内容とが対応付けて記憶されている。
【0043】
図5は、監視装置5の記憶部52に記憶される周期情報52bの構成を説明する模式図である。監視装置5は、車両1内のネットワーク上で送受信されるメッセージに付される識別情報(CAN−ID)と、このCAN−IDを有するメッセージが送信される周期とを対応付けて周期情報52bとして記憶している。図示の例では、CAN−IDが1のメッセージは送信周期が10msであり、CAN−IDが2のメッセージは送信周期が50msであり、CAN−IDが3のメッセージは送信周期が32msであることが周期情報52bに記憶されている。なお、これらの数値は一例である。
【0044】
<不正メッセージ検出処理>
本実施の形態に係る通信システムでは、複数のECU3がメッセージの送受信を行うCANバス上に不正なメッセージが送信されたことを検出する処理を監視装置5が行う。例えばCANバスに対して不正な通信装置が不正に接続され、この通信装置が不正なメッセージをCANバス上に送信することが考えられる。また例えば、車両1に搭載されたいずれかのECU3に不正な改造又は改変等がなされ、このECU3が不正なメッセージを送信することが考えられる。これらは不正なメッセージの一例であり、監視装置5が検出する不正なメッセージはこれら以外の要因によるものであってよい。
【0045】
不正な通信装置は、CANプロトコルに従い、特定のCAN−IDを付した不正メッセージを送信することができる。このような不正メッセージに付されるCAN−IDは、車両1の通信システムにおいて利用される正当なものが用いられるが、不正メッセージに含まれる他のデータは不正なデータとなる。CAN−IDに基づいてECU3が不正メッセージを受信した場合、ECU3は不正なデータに基づく処理を行うこととなる。本実施の形態に係る通信システムでは、正規のCAN−IDが付された不正メッセージ、いわゆるなりすましメッセージの検出を行うものである。
【0046】
本実施の形態に係る監視装置5は、周期的に送信されるべきメッセージについて、このメッセージが正しい周期で送信されているか否かを判断することにより、不正なメッセージの検出を行う。
図6は、監視装置5による不正メッセージ検出処理を説明するための模式図である。監視装置5は、通信システム内で送受信されるメッセージに付されるCAN−ID毎に、このCAN−IDを有するメッセージの送信を許可する許可期間を決定する。
図6には、ある1つのCAN−IDが付されるメッセージについて、監視装置5が決定した許可期間などを図示してある。なお本実施の形態においては、1つのCAN−IDを複数のECU3が利用する、即ち同一のCAN−IDが付されたメッセージを複数のECU3が送信することはないものとしている。
【0047】
本例において、監視装置5が監視対象とするメッセージの送信周期はTである。監視装置5の基準時点決定部61は、このメッセージを送信するECU3との間で所定の手続を行うことによって、メッセージ送信の基準時点t0を決定する(なお基準時点の決定処理の詳細は後述する)。監視装置5の許可期間決定部62は、記憶部52に記憶した周期情報52bを参照することによって、監視対象のメッセージの送信周期Tを取得する。許可期間決定部62は、基準時点t0に対して送信周期Tを加えた時点t1をメッセージの送信予定時点t1とする。同様に、許可期間決定部62は、基準時点t0に対して送信周期Tの2倍を加えた時点t2を送信予定時点t2とし、基準時点t0に対して送信周期Tの3倍を加えた時点t3を送信予定時点t3とし、…、基準時点t0に対して送信周期Tのn倍を加えた時点tnを送信予定時点tnとすることができる(n=1,2,3…)。
【0048】
監視装置5の許可期間決定部62は、送信予定時点t1に対して所定の期間A及び期間Bの猶予を設けた期間を許可期間と決定する。許可期間決定部62は、t1−A≦t≦t1+Bの期間を許可期間と決定する。送信予定時点t2、t3…についても同様である。即ち許可期間決定部62は、t0+nT−A≦t≦t0+nT+B(n=1,2,3…)を許可期間と決定する。
【0049】
なお許可期間を決定するための期間A及び期間Bは、例えば通信システムのシミュレーション又は実機での測定結果等に基づいて、予め決定される。期間A及び期間Bは、全てのメッセージについて同じ値を用いてもよく、例えばCAN−ID毎に異なる値を用いてもよい。CAN−ID毎に異なる値を用いる場合、周期情報52bにCAN−IDと対応付けて期間A及び期間Bを記憶しておくことができる。期間Aは、監視装置5とこのメッセージを送信するECU3とのクロック誤差などに基づいて決定することができる。期間Bは、このメッセージがアービトレーション処理によって遅延する時間を考慮して決定される。
【0050】
監視装置5のCAN通信部53は、CANバスに対するメッセージの送信を監視しており、メッセージ送信を検出した場合に処理部51へ通知する。処理部51の送信可否判定部63は、CAN通信部53からの通知に基づいて、送信されたメッセージのCAN−ID、及び、メッセージ送信の開始時点又は終了時点に関する情報を取得する。また送信可否判定部63は、取得したCAN−IDに対して許可期間決定部62が決定した許可期間を取得する。送信可否判定部63は、送信が検出されたメッセージが、許可期間内に送信されたものであるか否かを判定する。
【0051】
なおメッセージが許可期間内に送信されたか否かを判断する条件には、メッセージの送信が許可期間内に開始されることを条件とするか、又は、メッセージの送信が許可期間内に完了したことを条件とするかの2通りが考えられる。いずれの条件を採用しても可能であり、いずれの条件を採用するかに応じて期間Bの値を適宜に設定すればよい。なお本実施の形態においては、許可期間内にメッセージ送信が完了することを条件として、送信可否判定部63はメッセージが許可期間内に送信されたか否かを判定するものとする。
【0052】
送信可否判定部63は、メッセージが許可期間内に送信されたものではない場合、このメッセージが不正メッセージであると判断し、このメッセージの送信を許可しないと判定する。メッセージ送信を許可しないと送信可否判定部63が判定した場合、監視装置5の破棄処理部64は、CANバスに接続されたECU3に対して、このメッセージを破棄させる処理を行う。なお、メッセージ破棄処理の詳細は後述する。
【0053】
送信可否判定部63は、メッセージが許可期間内に送信されたものである場合、更に別の条件判定を行う。送信可否判定部63は、アービトレーション処理に関する条件判定と、メッセージ無送信期間に関する条件判定とを行う。
【0054】
図7乃至
図9は、送信可否判定部63によるアービトレーション処理に関する条件判定を説明するための模式図である。上述のようにCANの通信システムにおいては、複数のメッセージ送信が衝突した場合にアービトレーション処理が行われ、優先度の低いメッセージの送信に遅延が発生する可能性がある。
図7では、判定対象のメッセージのCAN−IDが7であり、このメッセージより優先度の高い3つのメッセージ(CAN−IDがそれぞれ3,5,2のメッセージ)がアービトレーション処理によって先に送信された状態を図示してある。
【0055】
送信可否判定部63は、判定対象のメッセージの許可期間において、判定対象のメッセージの送信以前に、他のメッセージ送信が行われているか否かを判定する。他のメッセージ送信が行われている場合、送信可否判定部63は、送信された一又は複数の他のメッセージのCAN−IDを調べ、判定対象のメッセージのCAN−IDと比較する。CANプロトコルにおいてメッセージに付されるCAN−IDは優先度を示しており、その数値が小さいほど優先度が高い。送信可否判定部63は、以前に送信された他のメッセージの全てについて、以下の条件1又は条件2のいずれかが成立する場合に限り、判定対象のメッセージを正規のものであると判断する。
条件1:他のメッセージのCAN−IDが判定対象のメッセージのCAN−IDより小さい場合、即ち以前のメッセージが全て優先度の高いものである場合
条件2:他のメッセージが判定対象のメッセージより低優先度であるが、判定対象メッセージの許可期間の開始以前に送信開始されて低優先度のメッセージが送信されていた場合
【0056】
条件1に関して、送信許可後に連続して送信されるメッセージのうち、以前に送信されたメッセージの少なくとも1つのCAN−IDが判定対象のメッセージのCAN−IDより大きい場合、即ち以前に優先度の低いメッセージが送信されている場合に、送信可否判定部63は、判定対象のメッセージを不正なメッセージであると判断する。
図8では、判定対象のメッセージのCAN−IDが7であり、このメッセージの送信以前に、CAN−IDが3,5,9のメッセージが送信された状態を図示してある。CAN−IDが9のメッセージは、CAN−IDが7である判定対象のメッセージより優先度が低い。このため判定対象のメッセージは、アービトレーション処理によって図示のタイミングに遅延したのではなく、不正な通信装置によって図示のタイミングで送信された可能性がある。判定対象のメッセージが不正なメッセージであり送信を許可しないと送信可否判定部63が判定した場合、破棄処理部64によるメッセージ破棄処理が行われる。
【0057】
条件2は、条件1の例外を規定したものである。即ち条件1によれば、判定対象のメッセージ以前の他のメッセージは、判定対象のメッセージより優先度が高いものであることが必要である。しかし、メッセージの許可期間内に送信された一又は複数の他のメッセージのうち、最初に送信されたメッセージについては、許可期間の開始時点で既に送信されているメッセージである場合には、判定対象のメッセージより低優先度であってもよいとしたものが条件2である。
図9では、
図7に示したメッセージに加えて、許可期間の開始以前にCAN−IDが10のメッセージが送信された状態を図示してある。CAN−IDが10のメッセージは、CAN−IDが7である判定対象のメッセージより優先度が低い。しかしこの低優先度のメッセージは、判定対象のメッセージの許可期間の開始以前に送信開始されたメッセージであるため、送信可否判定部63は、判定対象のメッセージの送信を許可する。
【0058】
図10は、送信可否判定部63によるメッセージ無送信期間に関する条件判定を説明するための模式図である。送信可否判定部63は、判定対象のメッセージの許可期間において、送信予定時点t1から判定対象メッセージの送信までの間に、CANバス上にメッセージが送信されていないメッセージ無送信期間が存在するか否かを調べる。メッセージ無送信期間が存在する場合、送信可否判定部63は、このメッセージ無送信期間が所定長を超えるか否かを判定する。なお、メッセージ無送信期間が複数存在する場合、送信可否判定部63は、各メッセージ無送信期間と所定長との比較を個別に行う。
【0059】
所定長としては、例えばメッセージの3ビット〜10ビット程度を送信するために必要な期間を設定することができる。これはCANプロトコルのメッセージ送信におけるIFS(Inter Frame Space)の3ビット、又は、IFSにEOF(End Of Frame)の7ビットを加えた10ビット等の期間に基づくものである。ただしこれらの数値は一例であって、所定長はこれら以外の期間であってよい。
【0060】
送信予定時点からメッセージ送信までの間に存在するメッセージ無送信期間が所定長を超える場合、判定対象のメッセージの遅れは正当な遅れではないと判断できる。よってこのような場合、送信可否判定部63は、判定対象のメッセージが不正なメッセージであり、送信を許可しないと判定する。判定対象のメッセージが不正なメッセージであり送信を許可しないと送信可否判定部63が判定した場合、破棄処理部64によるメッセージ破棄処理が行われる。
【0061】
また送信予定時点からメッセージ送信までの間にメッセージ無送信期間が存在しない場合、又は、メッセージ無送信期間が存在しても所定長より短い場合、送信可否判定部63は、判定対象のメッセージが正当なメッセージであると判定し、送信を許可する。
【0062】
このように送信可否判定部63は、許可期間内に判定対象のCAN−IDを有するメッセージの送信を検出した場合、このメッセージの送信に正当なアービトレーション処理による遅延以外の遅れが発生しているか否かを判定する。即ち送信可否判定部63は、許可期間内にて判定対象のメッセージより先に送信されたメッセージの優先度が高いこと(ただし許可期間以前に送信開始されたメッセージを除く)、及び、送信予定時点から判定対象のメッセージ送信までに所定長を超えるメッセージ無送信期間が存在しないことを、判定対象のメッセージの送信を許可する条件とする。送信可否判定部63は、両条件が満たされる場合に判定対象のメッセージ送信を許可し、少なくとも一方の条件が満たされない場合には判定対象のメッセージ送信を許可しない。
【0063】
なお監視装置5は、送信可否判定部63によるこれらの条件判定を行うために、CANバス上に送信されたメッセージの履歴を記憶部52に記憶している。記憶する履歴には、送信されたメッセージのCAN−ID、及び、送信開始時点又は送信終了時点に関する情報等が含まれる。また監視装置5によるメッセージ送信の監視は、CAN−ID毎に行われる。即ち監視装置5は、CAN−ID毎に許可期間を決定し、CAN−ID毎にメッセージ送信の可否を判定する。例えば
図7においては、CAN−IDが7のメッセージを対象として監視装置5が判定を行う例を説明したが、このときに監視装置5はCAN−IDが3,5,2のメッセージについてもそれぞれ個別に送信可否の判定を行っている。
【0064】
図11及び
図12は、監視装置5が行うメッセージ送信の可否判定処理の手順を示すフローチャートである。なお本フローチャートにて用いる変数nは、例えば監視装置5の処理部51が有するレジスタ又はメモリ等の記憶領域を利用して実現され得る。まず、監視装置5の処理部51は、基準時点決定部61にて基準時点t0を決定する処理を行う(ステップS1)。処理部51は、記憶部52に記憶された周期情報52bを読み出して(ステップS2)、判定対象のメッセージの送信周期Tを取得する。次いで処理部51は、変数nの値を1に初期化する(ステップS3)。処理部51の許可期間決定部62は、ステップS1にて決定した基準時点t0、ステップS2にて取得した周期T、予め定められた定数A及びB、並びに、変数nに基づいて、許可期間を決定する(ステップS4)。なお許可期間は、(t0+nT−A)から(t0+nT+B)までの期間と決定することができる。
【0065】
処理部51の送信可否判定部63は、ステップS4にて決定した許可期間が終了したか否かを判定する(ステップS5)。許可期間が終了していない場合(S5:NO)、送信可否判定部63は、CAN通信部53にてCANバス上でのメッセージ受信を検出したか否かを調べる(ステップS7)。メッセージ受信を検出していない場合(S7:NO)、送信可否判定部63は、ステップS5へ処理を戻す。メッセージ受信を検出した場合(S7:YES)、送信可否判定部63は、検出されたメッセージのCAN−IDを調べることにより、このメッセージが判定対象のメッセージであるか否かを判定する(ステップS8)。判定対象のメッセージでない場合(S8:NO)、送信可否判定部63は、このメッセージに関する情報(CAN−ID、送信開始時点及び終了時点等の情報)を履歴として記録し(ステップS9)、ステップS5へ処理を戻す。判定対象のメッセージである場合(S8:YES)、送信可否判定部63は、このメッセージが許可期間内に送信されたものであるか否かを判定する(ステップS10)。許可期間内に送信されたものでない場合(S10:NO)、処理部10は、破棄処理部64によるメッセージ破棄処理を行って(ステップS11)、ステップS5へ処理を戻す。
【0066】
判定対象のメッセージが許可期間内に送信されたものである場合(S10:YES)、送信可否判定部63は、送信予定時点tnに対するこのメッセージの遅延の有無を判定する(ステップS12)。遅延がない場合(S12:NO)、送信可否判定部63は、このメッセージが正当なものであるため送信を許可すると判定し、メッセージ破棄処理を行うことなくステップS5へ処理を戻す。送信予定時点tnに対するメッセージの遅延がある場合(S12:YES)、送信可否判定部63は、ステップS9にて記録していたメッセージ送信に関する履歴を取得する(ステップ13)。
【0067】
送信可否判定部63は、取得した履歴に基づいて、送信予定時点tnから判定対象のメッセージ送信までの間に、判定対象のメッセージより低優先度のメッセージの送信がなされたか否かを判定する(ステップS14)。低優先度のメッセージ送信がなされている場合(S14:YES)、送信可否判定部63は、この低優先度のメッセージが、判定対象のメッセージの許可期間以前に送信開始されたものであるか否かを更に判定する(ステップS15)。
【0068】
低優先度のメッセージの送信がなされていない場合(S14:NO)、又は、低優先度のメッセージが許可期間以前に送信開始されたものである場合(S15:YES)、送信可否判定部63は、送信予定時点tnから判定対象のメッセージ送信までの間に、所定長を超えるメッセージの無送信期間があるか否かを判定する(ステップS16)。メッセージ無送信期間がない場合(S16:NO)、送信可否判定部63は、このメッセージが正当なものであるため送信を許可すると判定し、メッセージ破棄処理を行うことなくステップS5へ処理を戻す。
【0069】
低優先度のメッセージが許可期間以前に送信開始されたものでない場合(S15:NO)、又は、所定長を超えるメッセージ無送信期間がある場合(S16:YES)、送信可否判定部63は、このメッセージが正当なものではないため送信を許可しないと判定し、破棄処理部64によるメッセージ破棄処理を行って(ステップS17)、ステップS5へ処理を戻す。
【0070】
ステップS5において許可期間が終了したと判定した場合(S5:YES)、処理部51は、変数nに1を加算し(ステップS6)、ステップS4へ処理を戻し、次の許可期間に関する監視を行う。
【0071】
<メッセージ破棄処理>
本実施の形態に係る通信システムでは、CANバス上に出力されたメッセージが正当なものではなく、送信を許可しないと判定した場合に、監視装置5は、CANバスに接続されたECU3にこのメッセージを破棄させるための処理を行う。本実施の形態に係る通信システムにて送受信されるメッセージは、CANプロトコルに従ったものであり、CANヘッダ、データフィールド、CRC(Cyclic Redundancy Check)フィールド、ACKフィールド及びEOF(End Of Frame)等を含んで構成されている。CANヘッダは、従来のCANプロトコルにおけるSOF(Start Of Frame)、アービトレーションフィールド及びコントロールフィールド等を含むものであり、アービトレーションフィールドに上述のCAN−IDが設定される。データフィールドは、例えばECU3に対する制御指示又はセンサ検知結果等のように、ECU3間で授受すべき情報の本体が格納される。CRCフィールド、ACKフィールド及びEOFは、従来のCANプロトコルにて用いられるものと同じであるため詳細な説明は省略する。CRCフィールドは、誤り検出を行うための情報を格納する。ACKフィールドは、このフレームを受信するECU3による受信応答のためのフィールドである。EOFは、フィールドの終了を示す特定のビット列である。
【0072】
監視装置5の破棄処理部64は、送信可否判定部63が送信を許可しないと判定したメッセージについて、このメッセージのEOFの出力期間中に、CANバスに対してエラーフレームを送信する。このエラーフレームにより、CANバスに接続された全てのECU3は、受信中の不正なメッセージを破棄することができる。
【0073】
この方法でメッセージの破棄を行うために、監視装置5の送信可否判定部63はメッセージのEOFがCANバスに出力される前に判定を終える必要がある。送信可否判定部63は、例えばCANバス上へのメッセージのCANヘッダ出力が終了した時点で上述の判定処理を開始し、EOFの出力前に判定を終える。なおCANプロトコルのメッセージは、そのメッセージ長が規定されているため、送信可否判定部63は、メッセージの送信終了前であっても送信終了時点を算出することが可能である。
【0074】
なお監視装置5は、送信可否判定部63が不正なメッセージであると判定したCAN−IDを記憶しておき、これ以後にCANバスに対して同じCAN−IDのメッセージが出力された場合には、送信可否判定部63による判定を行うことなく、破棄処理部64によってこのメッセージを破棄させる構成としてもよい。また監視装置5によるメッセージ破棄の処理は上述の方法によるものに限らず、その他の種々の方法で行ってよい。また監視装置5は、送信可否判定部63が不正なメッセージであると判定した場合に、ECU3に対する警告メッセージの送信、車両1のユーザに対する報知、外部のサーバ装置に対する情報送信、又は、通信システム若しくは該当する通信ネットワークのシャットダウン等の破棄以外の処理を行う構成としてもよい。
【0075】
<基準時点決定処理>
本実施の形態に係る通信システムでは、ECU3によるメッセージ送信及び監視装置5によるメッセージ送信の監視を開始する前に、基準時点t0を決定する処理を行う必要がある。
図13は、ECU3及び監視装置5の間で行われる基準時点決定処理を説明するための模式図である。本実施の形態に係る通信システムの監視装置5は、電源投入などにより起動した後、処理部51の基準時点決定部61による基準時点決定処理を開始する。
【0076】
基準時点決定処理において監視装置5の基準時点決定部61は、まずハッシュ値算出に用いられる情報の生成を行う。本実施の形態において基準時点決定部61は、ランダムシード及び領域指定情報を生成する。基準時点決定部61は、所定のアルゴリズムにより乱数を発生させて得られた所定ビット長のデータをランダムシードとする。領域指定情報は、ハッシュ値算出の対象とするROM32の領域を指定する情報であり、例えば開始アドレス及び終了アドレス、又は、開始アドレス及びデータサイズ等の情報である。基準時点決定部61は、例えば乱数に基づいて開始アドレスを決定し、この開始アドレスに所定数を加算したものを終了アドレスとすることができる。
【0077】
監視装置5の基準時点決定部61は、生成したランダムシード及び領域指定情報を、ハッシュ値の算出要求と共に、ECU3へ送信する。また基準時点決定部61は、記憶部52の複写データ52aから処理対象のECU3の記憶内容を読み出し、読み出した記憶内容と、生成したランダムシード及び領域指定情報とを用いて、ハッシュ値を算出する。基準時点決定部61は、複写された記憶内容から領域指定情報にて指定された箇所を抽出し、抽出した記憶内容とランダムシードとを予め定められたハッシュ関数へ入力することにより、ハッシュ値を算出する。本実施の形態において基準時点決定部61は、SHA−1のハッシュ関数を用いて160ビットのハッシュ値を算出するものとする。
【0078】
監視装置5からのランダムシード及び領域指定情報を受信したECU3は、自らのROM32の記憶内容と、受信したランダムシード及び領域指定情報とを用いて、処理部31のハッシュ値算出部42にてハッシュ値を算出する。ハッシュ値算出部42は、ROM32から領域指定情報にて指定された箇所を抽出し、抽出した記憶内容とランダムシードとを予め定められたハッシュ関数へ入力することにより、ハッシュ値を算出する。なお、監視装置5が用いるハッシュ関数とECU3が用いるハッシュ関数とは同じものであり、監視装置5が複写データ52aに記憶している内容とECU3がROM32に記憶している内容とは同じであるため、監視装置5及びECU3は同じハッシュ値を算出するはずである。なお両ハッシュ値が異なる値となった場合、ECU3のROM32の記憶内容が改ざんされている可能性がある。
【0079】
ここで、監視装置5及びECU3によるハッシュ値算出の方法を簡単に説明する。監視装置5及びECU3は、例えばMD(Message Digest)4、MD5、SHA−1、SHA−256、SHA−384、SHA−512、EIPEMD−160又はSHA−3等の既存のハッシュ関数を利用してハッシュ値の算出を行う構成とすることができる。これらはいわゆる一方向のハッシュ関数であり、入力された情報に対して一つのハッシュ値を出力する関数である。ハッシュ関数に入力される情報は、本実施の形態においてECU3のROM32に記憶されたプログラム32a又はデータ32bの一部又は全部である。ハッシュ関数に入力されるものがプログラム32a若しくはデータ32bのいずれであっても、又は、プログラム32a及びデータ32bの両方であっても、ハッシュ関数は入力されたものを単に2値の情報として扱い、ハッシュ値を算出することができる。監視装置5及びECU3は、予め定められたハッシュ関数を記憶しており、このハッシュ関数を用いてハッシュ値の算出を行う。
【0080】
以下、監視装置5及びECU3がSHA−1のハッシュ関数を用いてハッシュ値を算出する場合について、算出方法を説明する。なおSHA−1のハッシュ関数の詳細な処理、並びに、監視装置5及びECU3が他のハッシュ関数を用いる場合については、これらのハッシュ関数は既存の技術であるため、説明を省略する。
【0081】
SHA−1のハッシュ関数を利用する場合、監視装置5及びECU3は、まずパディング処理を行う。パディング処理において監視装置5及びECU3は、入力情報の後に余分なデータを付け加えることによって、処理対象の情報のサイズを所定値(512ビット)の整数倍となるように調整する。次いで監視装置5及びECU3は、パディング処理された情報を512ビット毎のブロックに分割し、各ブロックについて80個の値を算出する第1処理を行う。
【0082】
次いで監視装置5及びECU3は、所定サイズ(160ビット)の初期値に対して、第1処理にて算出した値を用いた演算を行い、演算後の160ビットの値をハッシュ値とする第2処理を行う。第2処理において、まず監視装置5及びECU3は、160ビットの初期値に対して、1つのブロックについて算出した80個の値を用いて80ステップの演算を行う。この80ステップの演算により、160ビットの初期値に対して、ブロックの情報を混ぜ込むことができ、出力として160ビットの値が得られる。監視装置5及びECU3は、得られた160ビットの値を初期値として、次のブロックについて算出した80個の値を用いて同様に80ステップの演算を行う。監視装置5及びECU3は、全ブロックについて同様の80ステップの処理を行い、最終的に得られた160ビットの値をハッシュ値とする。
【0083】
また本実施の形態において監視装置5及びECU3は、監視装置5が生成したランダムシードを利用してハッシュ値の算出を行う必要がある。例えば監視装置5及びECU3は、上記のパディング処理において、入力情報に付加するデータにランダムシードを用いることができる。また例えば監視装置5及びECU3は、上記の第2処理において、160ビットの初期値にランダムシードを用いることができる。本実施の形態においては、第2処理の初期値にランダムシードを用いるものとする。
【0084】
なお監視装置5及びECU3によるランダムシードの利用方法は上記のものに限らない。例えば監視装置5及びECU3は、ハッシュ値算出の対象とするROM32の記憶内容とランダムシードとの論理演算値(排他的論理和など)をハッシュ関数への入力情報とすることができる。また例えば監視装置5及びECU3は、ハッシュ値算出の対象とするROM32の記憶内容の先頭部分又は末尾部分等の所定位置にランダムシードを付加したものをハッシュ関数への入力情報とすることができる。
【0085】
監視装置5の基準時点決定部61は、ランダムシード及び領域指定情報のECU3への送信並びにハッシュ値の算出を終えた後、算出したハッシュ値の一部分を抽出する処理を行う。本実施の形態において基準時点決定部61は、算出した160ビットのハッシュ値から、64ビットの値を抽出して確認用情報とする。基準時点決定部61は、抽出した確認用情報を含むハッシュ確認要求を、処理対象のECU3へ送信する。
【0086】
監視装置5からハッシュ確認要求を受信したECU3は、受信したハッシュ確認要求に含まれる確認用情報を取得する。ECU3の処理部31は、監視装置5から取得した確認用情報と、自らがハッシュ値算出部42にて算出したハッシュ値とを比較する。処理部31は、ハッシュ値算出部42が算出したハッシュ値に、監視装置5から確認用情報として取得したハッシュ値の一部が含まれるか否かを判定する。自らのハッシュ値に確認用情報のハッシュ値が含まれないと判定した場合、ECU3が算出したハッシュ値と監視装置5が算出したハッシュ値が一致しないと考えられるため、処理部31は処理を中断し、監視装置5へエラー通知などを行う。
【0087】
自らのハッシュ値に確認用情報のハッシュ値が含まれると判定した場合、ECU3が算出したハッシュ値と監視装置5が算出したハッシュ値とが同じ値であるとみなし、処理部31は、監視装置5へハッシュ確認要求に対する応答(ハッシュ確認応答)を送信する処理を行う。このときに処理部31は、ハッシュ値算出部42が算出した160ビットのハッシュ値において監視装置5からの確認用情報に続く64ビットの情報を、応答情報として抽出する。処理部31は、抽出した64ビットの応答情報をハッシュ確認応答に含めて監視装置5へ送信する。なおハッシュ値から確認用情報及び応答情報を抽出する方法は、これに限らない。例えば確認用情報及び応答情報の一部が重複していてもよい。
【0088】
ECU3からハッシュ確認応答を受信した監視装置5の基準時点決定部61は、受信したハッシュ確認応答に含まれる応答情報を取得する。基準時点決定部61は、ECU3から取得した応答情報と、自らが算出したハッシュ値とを比較する。基準時点決定部61は、自らが算出したハッシュ値から確認用情報を除いた部分に、ECU3からの応答情報として取得したハッシュ値の一部が含まれるか否かを判定する。自らのハッシュ値に応答情報のハッシュ値が含まれないと判定した場合、監視装置5が算出したハッシュ値とECU3が算出したハッシュ値とが一致しないと考えられるため、基準時点決定部61は処理を中断し、ECU3へエラー通知などを行う。
【0089】
自らのハッシュ値に応答情報のハッシュ値が含まれると判定した場合、基準時点決定部61は、監視装置5が算出したハッシュ値とECU3が算出したハッシュ値とが同じ値であるとみなす。このときに基準時点決定部61は、ECU3へハッシュ値の判定に成功した旨を通知してもよい。基準時点決定部61は、ECU3から正当なハッシュ確認応答の受信を完了した時点を、基準時点t0と決定する。基準時点t0を決定した後、監視装置5は、上述のように送信予定時点及び許可期間を決定してメッセージ送信の監視を開始する。
【0090】
同様に、ECU3の処理部31は、監視装置5に対するハッシュ確認応答の送信を完了した時点を、基準時点t0とする。ECU3のメッセージ処理部41は、この基準時点t0に対して周期Tでメッセージの送信を行う。
【0091】
なお本実施の形態に係る通信システムにおいてはCANバスに複数のECU3が接続されており、監視装置5は複数のECU3との間で基準時点決定処理をそれぞれ行う必要がある。
図14は、監視装置5による複数のECU3との基準時点決定処理を説明するための模式図である。本例においては、監視装置5が3つのECU3との間で基準時点決定処理を行うものとするが、監視装置5が2つ以下のECU3又は4つ以上のECU3と基準時点決定処理を行う場合も同様である。
【0092】
監視装置5は、ランダムシード及び領域指定情報を含むハッシュ値算出要求を各ECU3へ順次送信する。このときに各ハッシュ値算出要求に含めるランダムシード及び領域指定情報は、共通の値を用いてもよく、ECU3毎に異なる値を設定してもよい。監視装置5からハッシュ値算出要求を受信した各ECU3は、自らのROM32の記憶内容に基づいてそれぞれハッシュ値の算出を行う。また監視装置5は、記憶部52の複写データ52aから各ECU3の記憶内容を読み出し、各ECU3についてハッシュ値の算出を行う。
【0093】
各ECU3のハッシュ値の算出を終えた監視装置5は、いずれか1つのECU3に対してハッシュ値確認要求を送信し、このECU3からハッシュ値確認応答を受信する。監視装置5は、受信したハッシュ値確認応答に含まれるハッシュ値が正しいものであるか否かを判定し、ハッシュ値が正しいものであればハッシュ値確認応答の受信を完了した時点をこのECU3との基準時点t0と決定する。
【0094】
次いで監視装置5は、別の1つのECU3についてハッシュ値確認要求の送信、ハッシュ値確認応答の受信及び基準時点の決定を行う。このように監視装置5は、ハッシュ値確認要求の送信、ハッシュ値確認応答の受信及び基準時点の決定を、通信システムに含まれる各ECU3に対して順次的に繰り返し行う。全てのECU3について基準時点が決定した後、監視装置5はメッセージ送信の監視を開始し、各ECU3はメッセージの送受信を開始する。なお監視装置5による監視及びECU3によるメッセージ送信は、基準時点が決定したものから順次的に開始してもよい。
【0095】
図15は、監視装置5による基準時点決定処理の手順を示すフローチャートである。監視装置5の基準時点決定部61は、ハッシュ値算出に用いられるランダムシードと、ハッシュ値算出の対象とするECU3のROM32の記憶領域を指定する領域指定情報とを生成する(ステップS21)。基準時点決定部61は、生成したランダムシード及び領域指定情報を含むハッシュ値算出要求を、CAN通信部53にて処理対象のECU3へ送信する(ステップS22)。
【0096】
基準時点決定部61は、記憶部52から処理対象のECU3の記憶内容の複写データ52aを取得し、取得した複写データ52aとステップS21にて生成したランダムシード及び領域指定情報とを基に、所定のハッシュ関数を用いてハッシュ値を算出する(ステップS23)。基準時点決定部61は、ステップS23にて算出したハッシュ値から一部分を確認用情報として抽出する(ステップS24)。基準時点決定部61は、抽出した確認用情報を含むハッシュ値確認要求を、CAN通信部53にて処理対象のECU3へ送信する(ステップS25)。
【0097】
次いで基準時点決定部61は、ハッシュ値確認要求に対してECU3が送信するハッシュ値確認応答をCAN通信部53にて受信したか否かを判定する(ステップS26)。ハッシュ値確認応答を受信していない場合(S26:NO)、基準時点決定部61は、処理対象のECU3からエラー通知を受信したか否かを判定する(ステップS27)。エラー通知を受信していない場合(S27:NO)、基準時点決定部61はステップS26へ処理を戻し、ハッシュ値確認応答又はエラー通知をECU3から受信するまで待機する。
【0098】
処理対象のECU3からハッシュ値確認応答を受信した場合(S26:YES)、基準時点決定部61は、受信したハッシュ値確認応答に含まれる応答情報が、ステップS23にて算出したハッシュ値に含まれるか否かに応じて、応答情報の成否を判定する(ステップS28)。ECU3からエラー通知を受信した場合(S27:YES)、又は、ECU3から受信した応答情報が正しいものでない場合(S28:NO)、基準時点決定部61は、対象のECU3のROM32の記憶内容が改変された可能性があると判断し、例えばこのECU3の動作を停止させるなどの適宜のエラー処理を行って(ステップS29)、処理を終了する。
【0099】
ECU3から受信した応答情報が正しい場合(S28:YES)、基準時点決定部61は、ECU3からハッシュ値確認応答の受信を完了した時点を基準時点と決定し(ステップS30)、処理を終了する。
【0100】
図16は、監視装置5からのハッシュ値算出要求に応じてECU3が行う処理の手順を示すフローチャートである。ECU3の処理部31は、CAN通信部34にて監視装置5からハッシュ値算出要求を受信したか否かを判定する(ステップS31)。ハッシュ値算出要求を受信していない場合(S31:NO)、処理部31は、ハッシュ値算出要求を受信するまで待機する。ハッシュ値算出要求を受信した場合(S31:YES)、処理部31は、受信したハッシュ値算出要求に含まれるランダムシード及び領域指定情報を取得する(ステップS32)。処理部31のハッシュ値算出部42は、ROM32の記憶内容と、ステップS32にて取得したランダムシード及び領域指定情報とに基づいて、所定のハッシュ関数を用いてハッシュ値を算出する(ステップS33)。処理部31は、算出したハッシュ値を記憶部33に記憶し(ステップS34)、処理を終了する。
【0101】
図17は、監視装置5からのハッシュ値確認要求に応じてECU3が行う処理の手順を示すフローチャートである。ECU3の処理部31は、CAN通信部34にて監視装置5からハッシュ値確認要求を受信したか否かを判定する(ステップS41)。ハッシュ値確認要求を受信していない場合(S41:NO)、処理部31は、ハッシュ値確認要求を受信するまで待機する。ハッシュ値確認要求を受信した場合(S41:YES)、処理部31は、記憶部33に記憶したハッシュ値を読み出す(ステップS42)。処理部31は、ステップS41にて受信したハッシュ値確認要求に含まれる確認用情報が、ステップS42にて読み出したハッシュ値に含まれるか否かに応じて、確認用情報の成否を判定する(ステップS43)。確認用情報が正しいものでない場合(S43:NO)、処理部31は、エラー通知を監視装置5へ送信し(ステップS44)、処理を終了する。
【0102】
監視装置5からの確認用情報が正しい場合(S43:YES)、処理部31は、ステップS42にて読み出したハッシュ値から確認用情報に続く所定長の部分を応答情報として抽出する(ステップS45)。処理部31は、抽出した応答情報を含むハッシュ値確認応答をCAN通信部34にて監視装置5へ送信する(ステップS46)。処理部31は、ハッシュ値確認応答の送信を完了した時点を基準時点と決定し(ステップS47)、処理を終了する。
【0103】
なお本実施の形態に係る通信システムにおいては、監視装置5及びECU3の起動時に基準時点の決定処理を行う構成としたが、処理を行うタイミングはこれに限らない。また何らかの要因によりECU3がメッセージを送信するタイミングにズレなどが生じた場合又はメッセージ送信の周期を変更した場合等に、監視装置5及びECU3の間で基準時点を再決定する処理を行ってもよい。
【0104】
基準時点を再決定する場合、上述のような最初の基準時点決定処理と同様の処理を行ってもよい。即ち監視装置5がハッシュ値算出要求及びハッシュ値確認要求を送信し、これに応じてECU3がハッシュ値確認応答を送信して基準時点を再決定してもよい。なお場合には、ECU3から監視装置5に対して基準時点を再決定する処理を行う要求を送信し、これに応じて監視装置5が基準時点決定処理を開始する構成としてよい。
【0105】
又は、基準時点決定処理を行った際のハッシュ値を記憶しておき、ECU3がこのハッシュ値を含む基準時点の再決定要求を監視装置5へ送信してもよい。この再決定要求を受信した監視装置5は、再決定要求に含まれるハッシュ値が正しいものである場合に、再決定要求の受信を完了した時点を新たな基準時点とする。ECU3は、再決定要求の送信を完了した時点を新たな基準時点とすればよい。
【0106】
<まとめ>
以上の構成の本実施の形態に係る通信システムは、CANバスに複数のECU3が接続され、各ECU3が周期的にメッセージ送信を行う構成の通信システムに対して、不正なメッセージ送信を検出する監視装置5を設けた構成である。監視装置5は、ECU3による周期的なメッセージ送信の基準時点t0を決定し、基準時点t0に対してメッセージの送信周期Tの整数倍の期間を加えた複数の送信予定時点t1=t0+T,t2=t0+2T,…を決定し、各送信予定時点に対してこの時点を含む所定期間t1−A〜t1+B,t2−A〜t2+B,…をメッセージ送信の許可期間と決定する。
【0107】
また監視装置5は、CANバスを監視することによって、ECU3が送信したメッセージを検出する。監視装置5は、検出されたメッセージが許可期間内に送信されたものであるか否かを判定することによって、このメッセージが不正なものであるか否かを判定することができ、このメッセージの送信を許可するか否かを判定することができる。
【0108】
このようの本実施の形態に係る監視装置5は、最初の段階で決定した基準時点t0に基づいて、以降のメッセージ送信の許可期間を決定する構成、即ち絶対的な基準で許可期間を決定する構成である。これに対して例えばメッセージ受信毎に、このメッセージの受信時点に周期Tを加えた時点を送信予定時点として許可期間を決定する構成、即ち相対的な基準で許可期間を決定する構成を採用することが考えられる。しかし、CANの通信プロトコルではメッセージ送信の衝突が発生した場合にはアービトレーション処理が行われ、優先度の低いメッセージの送信に遅延が発生する。相対的な決定を行う構成では、メッセージ送信に遅延が発生した場合に、判定のための許可期間が変動するため、許可期間をある程度広く設定する必要があり、許可期間を狭めることが容易でない。許可期間が広いほど不正なメッセージを正当であると誤判定する可能性が高まる。また相対的な決定を行う構成では、不正なメッセージの受信を基準として次のメッセージの許可期間が決定される虞がある。このような事態が発生した場合、不正なメッセージが連続的に正当なメッセージであると誤判定される可能性がある。本実施の形態に係る監視装置5は、絶対的な基準で許可期間を決定することによって、これらの問題が発生することを回避できる。
【0109】
また監視装置5は、通信システムに含まれる各ECU3について、基準時点t0をそれぞれ個別に決定する。監視装置5は、決定したそれぞれの基準時点t0に対して送信予定時点tn及び許可期間をECU3毎に決定する。これにより、通信システムにメッセージの送信周期T及び送信タイミング等が異なるECU3が含まれていても、監視装置5はECU3毎にメッセージ送信の可否を判定することができる。
【0110】
またECU3は送信周期が異なる複数種別のメッセージ送信を行うことが可能であり、監視装置5はメッセージのCAN−ID毎に許可期間を決定する。これにより送信周期が異なるメッセージを1つのECU3が送信する場合であっても、監視装置5は、メッセージの種別毎に送信の可否を判定することができる。なお本実施の形態においては基準時点t0をECU3毎に決定したが、これに限るものではなく、基準時点t0をCAN−ID毎に決定してもよい。この場合、監視装置5は、1つのECU3に対して複数回(即ち、このECU3に割り当てられたCAN−IDの数)の基準時点決定処理を行えばよい。
【0111】
またCANの通信プロトコルにおいてはメッセージの送信が衝突した場合に、アービトレーション処理によってメッセージ送信が遅延する可能性がある。そこで監視装置5は、判定対象のメッセージについて送信予定時点tnからこのメッセージの送信完了までの間に、他のメッセージが送信されたか否かを調べる。他のメッセージが送信されていた場合、監視装置5は、判定対象のメッセージの優先度と他のメッセージの優先度とを比較する。他のメッセージの優先度が判定対象のメッセージの優先度より高い場合、判定対象のメッセージはアービトレーション処理によって送信に遅延が発生したと考えられるため、監視装置5は、判定対象のメッセージの送信を許可する。これに対して、他のメッセージの優先度が判定対象のメッセージの優先度より低い場合(ただし、許可期間開始以前に送信されたメッセージを除く)、判定対象のメッセージの遅れが正当なアービトレーション処理によるものではないと考えられるため、監視装置5は、判定対象のメッセージの送信を許可しない。これにより、アービトレーション処理によってメッセージ送信に遅延が発生する通信システムであっても、監視装置5は、メッセージ送信の可否を判定することができる。
【0112】
また監視装置5は、判定対象のメッセージの送信予定時点tnからこのメッセージの送信が完了するまでの間に、所定長を超えるメッセージ無送信期間が存在するか否かを判定する。メッセージ無送信期間が存在する場合、判定対象のメッセージの遅延は正当なアービトレーション処理によって発生したものではないと考えられるため、監視装置5は、判定対象のメッセージの送信を許可しない。
【0113】
また本実施の形態に係る通信システムにおいては、基準時点t0を決定するために、監視装置5とECU3との間で所定の手続を行う。監視装置5は、ECU3に対してハッシュ値算出要求を送信する。このときに監視装置5は、ハッシュ値算出に必要なランダムシード及び領域指定情報をECU3へ与える。監視装置5からハッシュ値算出要求を受信したECU3は、ハッシュ値算出要求に含まれるランダムシード及び領域指定情報と、ROM32に記憶されたデータとに基づいて、所定のハッシュ関数を用いたハッシュ値の算出を行う。ECU3は、監視装置5からのハッシュ値確認要求に応じて、算出したハッシュ値を含むハッシュ値確認応答を監視装置5へ送信する。ECU3からハッシュ値確認応答を受信した監視装置5は、ハッシュ値確認応答に含まれるハッシュ値が正しいものであるか否かを判定する。ハッシュ値が正しいものである場合、監視装置5は、ハッシュ値確認応答の受信を完了した時点に基づいて基準時点t0を決定する。例えば監視装置5は、ハッシュ値確認等々の受信完了時点を基準時点t0とする。ただし基準時点t0はこれに限るものではなく、例えばハッシュ値確認応答の送信開始時点を基準時点t0としてもよく、また例えばハッシュ値確認応答の受信完了時点に対して所定期間を増減した時点を基準時点t0としてもよい。この場合にECU3は、正しいハッシュ値を含むハッシュ確認応答の送信完了時点に基づいて基準時点t0を決定し、決定した時点を基準に周期Tでのメッセージ送信を行う。ハッシュ値に基づく信頼性の高い情報送受信に基づいて基準時点t0を決定することができるため、監視装置5は、信頼性の高い不正メッセージ検出処理を行うことができる。
【0114】
また監視装置5は、不正なメッセージに対して送信を許可しないと判定した場合、このメッセージを受信するECU3に対してメッセージを破棄させるための処理を行う。例えば監視装置5は、不正なメッセージのEOFの出力期間中に、CANバスに対してエラーフレームを送信することによって、ECU3にこのメッセージを破棄させることができる。これにより、不正なメッセージをECU3が受信し、このメッセージに応じた処理がECU3にて行われることを防止できる。
【0115】
なお本実施の形態においては、基準時点の決定処理、許可期間の決定処理、送信可否の判定処理及び不正メッセージの破棄処理等を監視装置5の処理部51(いわゆるCPUなど)が行う構成としたが、これに限るものではなく、これらの処理をCAN通信部53(いわゆるCANコントローラなど)が行う構成としてもよい。同様に、ECU3のハッシュ値算出処理など基準時点の決定処理は、処理部31が行うのではなく、CAN通信部34が行う構成としてもよい。
【0116】
また、監視装置5及びECU3の間でハッシュ値を利用した情報交換を行って基準時点t0を決定する構成としたが、基準時点t0の決定はハッシュ値を利用しない方法で行ってもよい。例えば公開鍵又は秘密鍵等を利用して暗号化された情報を監視装置5及びECU3の間で送受信し、この送受信結果に基づいて基準時点t0を決定してもよい。監視装置5及びECU3が信頼性の高い通信を行い、この通信結果に基づいて基準時点t0を決定すればよい。また、監視装置5及びECU3が時刻同期機能を有する場合には、この機能により同期された時刻を用いて基準時点t0を決定してもよい。
【0117】
また監視装置5は、ECU3のROM32の記憶内容を複写した複写データ52aを記憶部52に記憶する構成としたが、これに限るものではない。例えば複写データ52aは別のサーバ装置などが記憶し、監視装置5が必要に応じてサーバ装置から複写データ52aを取得してもよく、更にはサーバ装置にハッシュ値算出機能を設けて監視装置5がサーバ装置から必要なハッシュ値を取得する構成としてもよい。また本実施の形態においては、車両1に搭載された通信システムを例に説明を行ったが、通信システムは車両1に搭載されるものに限らず、例えば飛行機又は船舶等の移動体に搭載されるものであってよく、また例えば移動体ではなく工場、オフィス又は学校等に設置されるものであってもよい。
【0118】
(変形例)
上述の実施の形態における監視装置5は、送信予定時点からメッセージ送信までの間にメッセージ無送信期間が存在しない場合、又は、メッセージ無送信期間が存在しても所定長より短い場合に、判定対象のメッセージが正当なメッセージであると送信可否判定部63が判定し、送信を許可する構成であった。変形例に係る監視装置5は、上述の監視装置5の構成に、送信可否判定部63の判定条件を追加した構成である。
【0119】
例えば、対象となる2つ以上のメッセージが送信許可期間内に到着する場合、いずれのメッセージが正当なメッセージであるかをこの時点で判定することはできない。しかしながら、このような状況が頻繁に発生する場合には、いずれかのメッセージが不正なものである可能性がある。
【0120】
そこで変形例に係る監視装置5の送信可否判定部63は、送信許可期間内に2つ以上の対象メッセージが到着したと判定した場合、これら複数のメッセージの全てについて、以降のメッセージ送信を許可しない。これにより変形例に係る監視装置5は、不正である可能性のあるメッセージの送信を禁止することができる。
【0121】
なお変形例に係る監視装置5は、例えば送信許可期間内に2つ以上の対象メッセージが到着した回数をカウントし、この回数が所定回数を超えた場合にメッセージの送信を禁止する構成としてもよい。