(57)【要約】【課題】デバイスを複数有する通信システムにおいて、その通信システムに「成りすまし」て侵入している偽デバイスからのメッセージを検出すること。【解決手段】複数のデバイスのうち、メッセージを送信するデバイスによって第１の時間間隔で定期的にメッセージの送信が行われるとともに、所定の頻度で、第１の時間間隔を延長した第２の時間間隔でメッセージが送信され、メッセージを受信する不正データ検出装置は、メッセージを受信する受信部と、第２の時間間隔でメッセージが送信されるタイミングであると判断した場合に、受信部によってメッセージを受信したタイミングが第２の時間間隔で送信されるメッセージを受信するタイミング以外のタイミングである場合、受信部によって受信したメッセージはメッセージを送信するデバイスに成りすましたデバイスから送信されたメッセージであると判断する制御部とを備える。【選択図】図４
2015171092.tif 000002
【特許請求の範囲】
【請求項１】
複数のデバイスのうち、メッセージを送信するデバイスによって第１の時間間隔で定期的にメッセージの送信が行われるとともに、所定の頻度で、前記第１の時間間隔を延長した第２の時間間隔でメッセージが送信され、
前記メッセージを受信する不正データ検出装置は、
メッセージを受信する受信部と、
前記第２の時間間隔でメッセージが送信されるタイミングに、前記受信部によってメッセージを受信したタイミングが前記第２の時間間隔で送信されるメッセージを受信するタイミング以外のタイミングであると判断した場合、前記受信部によって受信したメッセージは前記メッセージを送信するデバイスに成りすましたデバイスから送信されたメッセージであると判断する制御部と
を備える、不正データ検出装置。
【請求項２】
前記第２の時間間隔は、前記第１の時間間隔に前記メッセージを送信するデバイスからのメッセージの遅延時間の最大時間を加えた時間間隔から、前記メッセージを送信するデバイスからのメッセージを受信するデバイスへの影響が許容される時間間隔から前記遅延時間の最大時間を減算した時間間隔の間に設定される、請求項１に記載の不正データ検出装置。
【請求項３】
前記制御部は、前記メッセージを送信するデバイスに成りすましたデバイスから送信されたメッセージを破棄する、請求項１又は２に記載の不正データ検出装置。
【請求項４】
前記制御部は、前記第２の時間間隔のタイミングで受信されるメッセージの頻度に基づいて、該メッセージが前記メッセージを送信するデバイスに成りすましたデバイスから送信されたメッセージであるか否かを判断する、請求項１ないし３のいずれか１項に記載の不正データ検出装置。
【請求項５】
複数のデバイスを有する通信システムであって、
前記複数のデバイスのうち、メッセージを送信するデバイスは、
メッセージを作成し、
第１の時間間隔で定期的に前記メッセージの送信を行うとともに、所定の頻度で、前記第１の時間間隔を延長した第２の時間間隔で前記メッセージを送信する制御を実行する第１の制御部と、
前記第１の制御部による制御により前記メッセージを送信する送信部と
を有し、
前記メッセージを受信するデバイスは、
メッセージを受信する受信部と、
前記第２の時間間隔でメッセージが送信されるタイミングに、前記受信部によってメッセージを受信したタイミングが前記第２の時間間隔で送信されるメッセージを受信するタイミング以外のタイミングであると判断した場合、前記受信部によって受信したメッセージは前記メッセージを送信するデバイスに成りすましたデバイスから送信されたメッセージであると判断する制御部と
を備える通信システム。
【請求項６】
複数のデバイスのうち、メッセージを送信するデバイスによって第１の時間間隔で定期的にメッセージの送信が行われるとともに、所定の頻度で、前記第１の時間間隔を延長した第２の時間間隔でメッセージが送信され、
前記メッセージを受信する不正データ検出装置は、
前記第２の時間間隔でメッセージが送信されるタイミングに、メッセージを受信したタイミングが前記第２の時間間隔で送信されるメッセージを受信するタイミング以外のタイミングであると判断した場合、該メッセージは前記メッセージを送信するデバイスに成りすましたデバイスから送信されたメッセージであると判断する、不正データ検出方法。
【請求項７】
複数のデバイスを有する通信システムにおける不正データ検出方法であって、
前記複数のデバイスのうち、メッセージを送信するデバイスは、
メッセージを作成し、
第１の時間間隔で定期的に前記メッセージの送信を行うとともに、所定の頻度で、前記第１の時間間隔を延長した第２の時間間隔で前記メッセージを送信する制御を実行し、
前記メッセージを送信する制御にしたがって前記メッセージを送信し、
前記メッセージを受信するデバイスは、
前記第２の時間間隔でメッセージが送信されるタイミングに、メッセージを受信したタイミングが前記第２の時間間隔で送信されるメッセージを受信するタイミング以外のタイミングであると判断した場合、該メッセージは前記メッセージを送信するデバイスに成りすましたデバイスから送信されたメッセージであると判断する、不正データ検出方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、車載ネットワークに関する。
【背景技術】
【０００２】
車両に搭載される電子制御ユニット(ECU: Electronic Control Unit)、センサ、アクチュエータ等の電子制御システムデバイス（以下、「デバイス」という）は、機能、精度などの性能要求、コスト要求を満たすように様々なバリエーションを揃えている。デバイスには様々なバリエーションがあるため、デバイスの置き換えを容易にできるように、周囲のデバイスとの連携をCAN(Controller Area Network)などの車内LANの通信メッセージで行うことが一般的である。
【０００３】
一方、車両の情報セキュリティの脆弱さが世間に広まり、その情報セキュリティの弱点につけ込み車両内のデータを抜き取ったり、特殊な表示や操作を可能としたりするなどの不正な目的を有する機器を接続することが一般化しつつある。その中で最も巧妙で、且つ悪質な手法が、車両に搭載されたデバイスを特殊な機能を有する偽デバイスに置き換えて、車内LANのデバイスに「成りすまし」て侵入させることである。つまり、このような不正な目的を有するECUは、その目的のため正規のデバイスに代わりCAN通信などの車載LANのノードに成りすまし、その通信を介して他のECUへアクセスする。
【０００４】
車載ECUに関して、送信したパケットに関する送信パケットを作成して記憶しておき、送信元が自アドレスのパケットを検出し、送信していないにもかかわらず送信元が自アドレスであるパケットを不正パケットとして検出する技術が知られている（例えば、特許文献１参照）。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００４−２５３９０８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
車載LANのデバイスに「成りすまし」て偽デバイスを侵入させること自体を防止することは難しい。しかし、偽デバイスによる悪影響の被害を最小化するためには、不正な偽デバイスの存在を即座に検出する必要がある。偽デバイスを検出できれば、その偽デバイスから送信されるメッセージを破棄するなどの対策を取ることができる。
【０００７】
しかし、偽デバイスから送信される不正メッセージを検出するために、送信したメッセージに関する送信メッセージを作成して記憶しておくのは、監視するデバイスの処理負荷を増大させるため好ましくない。
【０００８】
本発明の目的は、デバイスを複数有する通信システムにおいて、その通信システムに「成りすまし」て侵入している偽デバイスから送信されるメッセージを検出することである。
【課題を解決するための手段】
【０００９】
開示の一実施例の不正データ検出装置は、
複数のデバイスのうち、メッセージを送信するデバイスによって第１の時間間隔で定期的にメッセージの送信が行われるとともに、所定の頻度で、前記第１の時間間隔を延長した第２の時間間隔でメッセージが送信され、
前記メッセージを受信する不正データ検出装置は、
メッセージを受信する受信部と、
前記第２の時間間隔でメッセージが送信されるタイミングに、前記受信部によってメッセージを受信したタイミングが前記第２の時間間隔で送信されるメッセージを受信するタイミング以外のタイミングであると判断した場合、前記受信部によって受信したメッセージは前記メッセージを送信するデバイスに成りすましたデバイスから送信されたメッセージであると判断する制御部と
を備える。
【発明の効果】
【００１０】
開示の実施例によれば、デバイスを複数有する通信システムにおいて、その通信システムに「成りすまし」て侵入している偽デバイスから送信されるメッセージを検出することができる。
【図面の簡単な説明】
【００１１】
【図１】通信システムの一実施例を示す図である。
【図２】メッセージの送信間隔の一例を示す図である。
【図３】正規デバイス及び偽デバイスのメッセージの送信間隔の一例を示す図である。
【図４】メッセージの送信間隔の一実施例を示す図である。
【図５】第１のデバイスの一実施例を示す図である。
【図６】第１のデバイスの一実施例を示す機能ブロック図である。
【図７】メッセージの一例を示す図である。
【図８】送信間隔Ｔ−Ｌｏｎｇでメッセージを送信する頻度を示す図である。
【図９】送信間隔Ｔ−Ｌｏｎｇの設定例を示す図である。
【図１０】第２のデバイスの一実施例を示す機能ブロック図である。
【図１１】偽デバイスの判定例を示す図である。
【図１２】第１のデバイスの動作の一実施例を示すフローチャートである。
【図１３】第２のデバイスの動作の一実施例を示すフローチャートである。
【図１４】通信システムの一実施例の効果を示す図である。
【図１５】通信システムの一変形例を示す図である。
【発明を実施するための形態】
【００１２】
次に、本発明を実施するための形態を、以下の実施例に基づき図面を参照しつつ説明する。以下で説明する実施例は一例に過ぎず、本発明が適用される実施の形態は、以下の実施例に限られない。
なお、実施例を説明するための全図において、同一機能を有するものは同一符号を用い、繰り返しの説明は省略する。
【００１３】
＜実施例＞
＜通信システム＞
図１は、通信システムの一実施例を示す。
【００１４】
通信システムは、例えば車両等の移動体に搭載される。通信システムの一実施例は、車両に搭載され、CAN等のイベントドリブン型のネットワークが適用される。通信システムは、情報系LAN、パワートレイン系LAN、ボディ系LANなどに適用できる。
【００１５】
各デバイスは、電子制御ユニット、センサ（インテリジェントセンサ）、アクチュエータ等によって実現される。具体的には、車速センサ、ハンドルの切れ角を検出するセンサなどである。
【００１６】
通信システムは、第１のデバイス１００と、第２のデバイス２００とを備える。第１のデバイス１００、及び第２のデバイス２００は、通信バス１０により有線接続される。図１には、２個のデバイスによって通信システムを構成する場合について示すが、３個以上のデバイスによって構成してもよい。
【００１７】
通信システムにCANが適用される場合、通信バス１０は、ツイストペアの形態を有する２本の通信線（CANバス）からなる。CANバスのツイストペア線は一方がCAN High（以下、CANHという）、他方がCAN Low（以下、CANLという）と呼ばれる母線である。通信バス１０の両端には終端抵抗（図示なし）が接続される。図１では、１本の実線でCANH、CANLを表す。
【００１８】
通信システムの一実施例では、第１のデバイス１００からメッセージを送信し、そのメッセージを第２のデバイス２００が受信する場合について説明するが、異なるデバイス間で定期的にメッセージの送受信が行われる場合について適用できる。
【００１９】
第１のデバイス１００には、メッセージを定期的に送信する間隔（以下、「定期送信間隔Ｔ」という）が設定される。
【００２０】
図２は、第１のデバイス１００が定期送信間隔Ｔにしたがって、メッセージを送信する際の送信タイミングの一例を示す。図２において、横軸は時間であり、「○」はメッセージの送信タイミングを示す。第１のデバイス１００に限らず、第２のデバイス２００がメッセージを送信する場合にも適用できる。
【００２１】
（１）は、第１のデバイス１００が定期送信間隔Ｔでメッセージを送信する例を示す。（２）は、第１のデバイス１００が定期送信間隔Ｔより遅れてメッセージを送信する例を示す。（３）は、第１のデバイス１００が定期送信間隔Ｔが経過する前にメッセージを送信する例を示す。
【００２２】
理想的には、第１のデバイス１００は、（１）に示すように定期送信周期Ｔでメッセージを送信するのが好ましい。しかし、通信バス１０の通信混雑などの何らかの原因により、第１のデバイス１００が、（２）に示すように定期送信周期Ｔから遅れてメッセージを送信することがある。しかし、第１のデバイス１００に定期送信間隔Ｔが設定された場合に、（３）に示すように第１のデバイス１００が定期送信間隔Ｔが経過する前にメッセージを送信することはない。
【００２３】
図３は、第１のデバイス１００などの正規デバイスによるメッセージ（以下、「正規送信メッセージ」という）の送信状況と、第１のデバイス１００に「成りすまし」て接続されると想定されるデバイス（以下、「偽デバイス」という）によるメッセージ（以下、「偽送信メッセージ」という）の送信状況の一例を示す。ここで、「偽デバイス」とは、正規デバイスの置き換え用に作られた模倣品である。通常「偽デバイス」は、特殊な目的用の機能を有し、例えば、車両挙動を敏感にすべく偏った特性を持つ加速度センサ等が該当する。
【００２４】
正規デバイスは、定期送信間隔Ｔが設定されている場合に、定期送信間隔Ｔ毎に定期送信間隔Ｔ以降の時間に正規送信メッセージを送信する。ここで、定期送信間隔Ｔ以降とは、何らかの原因により定期送信間隔Ｔで送信できないことがあるためである。
【００２５】
正規デバイスを模倣して偽デバイスを作製する者は、正規デバイスから送信される正規送信メッセージの定期送信間隔Ｔを計測し、その定期送信間隔Ｔと同様の送信間隔で偽送信メッセージが送信されるように偽デバイスを作製する。したがって、偽デバイスからは、正規デバイスと同様の定期送信間隔Ｔでメッセージが送信されるため、定期送信間隔Ｔでメッセージが送信されるか否かに基づいて、偽デバイスを検出するのは難しい。
【００２６】
そこで、通信システムの一実施例では、正規デバイスは、定期送信間隔Ｔが設定された場合に、定期送信間隔Ｔで正規送信メッセージを送信するとともに、所定の頻度（周期）で正規送信メッセージを送信する定期送信間隔Ｔが経過しても送信せずに、定期送信間隔Ｔよりも遅い時間（以下、「送信間隔Ｔ−Ｌｏｎｇ」という）に送信する。つまり、正規デバイスは、所定の頻度で、定期送信間隔Ｔを延長した送信間隔Ｔ−Ｌｏｎｇでメッセージを送信する。
【００２７】
正規デバイスによって送信されるメッセージを受信するデバイスは、所定の頻度で送信間隔Ｔ−Ｌｏｎｇで送信されたメッセージを検出することにより、受信したメッセージが正規デバイスからのものであることを判定できる。つまり、第２のデバイス２００は、他のデバイスから受信するメッセージの受信タイミングに基づいて、正規デバイスからの正規送信メッセージ等のデータであるか、偽デバイスからの偽送信メッセージ等の不正データであるかを判定する不正データ検出装置として機能する。
【００２８】
図４は、通信システムの一実施例に係る正規デバイスによる正規送信メッセージの送信状況と、偽デバイスによる偽送信メッセージの送信状況の一例を示す。
【００２９】
正規デバイスは、定期送信間隔Ｔが設定されている場合に、定期送信間隔Ｔ毎に定期送信間隔Ｔ以降の時間に正規送信メッセージを送信するとともに、所定の頻度で正規送信メッセージを送信する定期送信間隔Ｔが経過しても送信せずに、送信間隔Ｔ−Ｌｏｎｇ経過後に送信する。定期送信間隔Ｔは一定だが、正規デバイスは、所定の頻度で脱調した長い送信間隔Ｔ−Ｌｏｎｇ経過後にメッセージを送信するように設定される。図４では、送信間隔Ｔ−Ｌｏｎｇは「脱調送信間隔」と記載される。
【００３０】
偽デバイスは、正規デバイスと同様の定期送信間隔Ｔでメッセージを送信し続け、送信間隔Ｔ−Ｌｏｎｇでメッセージを送信することはない。したがって、受信側のデバイスは、送信間隔Ｔ−Ｌｏｎｇでメッセージが受信されるか否かを判断することにより、メッセージを送信するデバイスが正規デバイスであるか偽デバイスであるかを判断できる。換言すれば、正規デバイスによって送信されるメッセージを受信するデバイスは、送信間隔Ｔ−Ｌｏｎｇで送信されたメッセージの受信タイミングであるにも関わらず、該受信タイミング以降の時間以外のタイミングでメッセージを受信した場合、該メッセージを偽デバイスから送信されたものであると判定する。
【００３１】
＜第１のデバイス１００＞
図５は、第１のデバイス１００の一実施例を示す。図５には、主に、第１のデバイス１００のハードウェア構成を示す。第２のデバイス２００のハードウェア構成についても、図５を適用できる。
【００３２】
第１のデバイス１００は、通信トランシーバ１０２と、マイコン１０４とを備える。マイコン１０４には、通信回路１０６と、CPU(Central Processing Unit)１０８とが実装される。
【００３３】
通信トランシーバ１０２は、通信バス１０に接続され、通信ドライバによる制御によって、通信回路１０６からのデータを通信バス１０に送信するとともに、通信バス１０からメッセージなどのデータを受信し、通信回路１０６に入力する。通信トランシーバ１０２は、データを送信する場合には、CANHとCANLに反転信号を送出する。通信トランシーバ１０２は、データを受信する場合には、CANHとCANLとの電圧差から、通信バス１０上のデータが"１"であるか"０"であるかを判定する。
【００３４】
通信回路１０６は、通信トランシーバ１０２と接続され、通信バス１０を介して、他の通信ノードとシリアル通信を行う。通信回路１０６は、CPU１０８からのデータを通信トランシーバ１０２から送信するとともに、通信トランシーバ１０２からのデータをCPU１０８に入力する。
【００３５】
CPU１０８は、通信回路１０６と接続され、通信回路１０６により実行される通信処理や、第１のデバイス１００を制御する処理を実行する。
【００３６】
＜第１のデバイス１００の機能＞
図６は、第１のデバイス１００の機能ブロック図を示す。
【００３７】
第１のデバイス１００は、メッセージ作成部６０２と、送信制御部６０４と、送信タイミング設定部６０６として機能する。これら各部は、図５に示されている各構成要素のいずれかが、HD（図示なし）からRAM（図示なし）上に展開された第１のデバイス用のプログラムに従ったCPU１０８からの命令によって動作することで実現される機能又は手段である。
【００３８】
第１のデバイス用のプログラムは、インストール可能な形式又は実行可能な形式のファイルによって、ネットワークを介して又はコンピュータで読み取り可能な記録媒体に記録されて、流通される。上記記録媒体の他の例として、CD-R(Compact Disc Recordable)、DVD(Digital Versatile Disk)、ブルーレイディスク等が挙げられる。
【００３９】
メッセージ作成部６０２は、第２のデバイス２００へ送信するメッセージを作成し、送信制御部６０４へ入力する。
【００４０】
図７は、CANフレームの一例を示す。メッセージ作成部６０２によって作成されるフレームは、CANフレームを適用できる。
【００４１】
CANフレームは、スタートオブフレーム(SOF: Start Of Frame)ビットと、IDと、リモートトランスミッションリクエスト(RTR: Remote Transmission Request)ビットと、データ長コード(DLC: Data Length Code)と、Dataフィールドと、CRCスロットと、ACK（アクノレッジ）スロットと、エンドオブフレーム(EOF: End of Frame)とが含まれる。
【００４２】
スタートオブフレームビットは、メッセージの始めを示し、ドミナント(論理0)ビットで示される。IDは、メッセージを識別し、メッセージの優先順位を示す。IDは、11ビットで表されてもよいし（標準フレーム）、29ビットで表されてもよい（拡張フレーム）。IDは、データIDとも呼ばれる。
【００４３】
リモートトランスミッションリクエストビットは、リモートフレームとデータフレームを区別するのに使用される。ドミナント(論理0)のリモートトランスミッションリクエストビットはデータフレームを示す。リセッシブ(論理1)のリモートトランスミッションリクエストビットはリモートフレームを示す。
【００４４】
データ長コードは、データフィールドに含まれるバイト数を示す。Dataフィールドには、0〜8バイトのデータが含まれる。CRCは、巡回冗長検査を示す。CRCには、15ビットの巡回冗長検査コードとリセッシブデリミタビットが含まれる。CRCフィールドは、エラー検出に使用される。
【００４５】
ACK（アクノレッジ）スロットは、メッセージを正しく受信した場合に、メッセージの最後に送信する。送信側のノードはバス上でACKビットの有無をチェックし、ACKが検出されなかった場合は再度送信を試みるのが好ましい。エンドオブフレームは、データフレームやリモートフレームの終了位置を示す。エンドオブフレームは、7ビットで構成され、ビットレベルは全て"リセッシブ"である。
【００４６】
送信制御部６０４は、メッセージ作成部６０２と接続され、送信タイミング設定部６０６で設定される送信タイミングにしたがって、メッセージ作成部６０２から入力されるメッセージを送信する制御を行う。
【００４７】
送信タイミング設定部６０６は、送信制御部６０４によって送信されるメッセージの送信タイミングを送信制御部６０４に設定する。送信タイミング設定部６０６は、定期送信間隔Ｔにしたがって、メッセージの送信タイミングを設定するとともに、該定期送信間隔Ｔを所定の頻度で延長する。
【００４８】
図８は、定期送信間隔Ｔを延長する頻度の設定例を示す。図８において、横軸は時間である。送信タイミング設定部６０６は、定期送信間隔Ｔでメッセージを４９回送信した後に、定期送信間隔Ｔを延長した送信間隔Ｔ−Ｌｏｎｇの経過後に５０回目のメッセージを送信するように設定する。つまり、送信タイミング設定部６０６は、５０回のメッセージの送信に１回の割合で、前回の送信から送信間隔Ｔ-Ｌｏｎｇの経過後にメッセージを送信するように設定する。送信タイミング設定部６０６は、５０回に１回の割合となるように、ランダムに前回の送信から送信間隔Ｔ-Ｌｏｎｇの経過後にメッセージを送信するように設定してもよいし、送信間隔Ｔ-Ｌｏｎｇの経過後にメッセージを送信する順番を予め設定するようにしてもよい。ここで、５０回は一例であり、定期送信間隔Ｔを延長する頻度はメッセージを受信する第２のデバイス２００のメッセージに基づく制御への影響が許容される範囲で適宜変更可能である。
【００４９】
図９は、送信間隔Ｔ−Ｌｏｎｇの設定例を示す。図９において、横軸は時間である。送信タイミング設定部６０６には、予め設定される送信間隔Ｔ−Ｌｏｎｇにしたがって、定期送信間隔Ｔでメッセージを４９回送信した後に、その送信間隔Ｔ−Ｌｏｎｇの経過後に５０回目のメッセージを送信するように設定する。
【００５０】
送信間隔Ｔ−Ｌｏｎｇの設定例を説明するために、定期送信間隔Ｔ、及び送信間隔Ｔ−Ｌｏｎｇに加え、遅延最大時間ΔＴ、及び遅延許容時間Ｔ−ｍａｘを導入する。
【００５１】
遅延最大時間ΔＴは、通信バス１０の通信混雑などの何らかの原因により想定されるメッセージを送信する際の遅延時間の最長時間である。遅延許容時間Ｔ−ｍａｘは、メッセージの送信が遅延した場合に、そのメッセージを受信するデバイスへの影響が許容される時間である。
【００５２】
送信間隔Ｔ−Ｌｏｎｇは、定期送信間隔Ｔから遅延最大時間ΔＴが経過した時間より長い時間に設定される。仮に、定期送信間隔Ｔが１００ｍｓに設定され、且つ遅延最大時間ΔＴが４０ｍｓに設定されている場合には、送信間隔Ｔ−Ｌｏｎｇは、定期送信間隔Ｔから遅延最大時間ΔＴが経過した後の時間、例えば、１４０ｍｓより後の時間に設定される。仮に、定期送信間隔Ｔから遅延最大時間ΔＴが経過する前の時間、例えば、１３０ｍｓに設定された場合、偽デバイスからのメッセージも遅延によりその時間（１３０ｍｓ）に送信されることがあるため、正規デバイスからのメッセージと偽デバイスからのメッセージを区別できないためである。
【００５３】
さらに、送信間隔Ｔ−Ｌｏｎｇは、送信間隔Ｔ-Ｌｏｎｇから遅延最大時間ΔＴが経過した場合でも、遅延許容時間Ｔ−ｍａｘ以内である必要があるため、遅延許容時間Ｔ−ｍａｘから遅延最大時間ΔＴを減算した時間間隔より短い時間間隔に設定される。仮に、遅延許容時間Ｔ−ｍａｘが２００ｍｓで、且つ遅延最大時間ΔＴが４０ｍｓの場合には、送信間隔Ｔ−Ｌｏｎｇは、前回の送信から遅延許容時間Ｔ−ｍａｘが経過する時間から、遅延最大時間ΔＴ前の時間、例えば、１６０ｍｓ以前の時間に設定される。
【００５４】
以上から、送信間隔Ｔ−Ｌｏｎｇは、定期送信間隔Ｔに遅延最大時間ΔＴを加えた時間間隔から、遅延許容時間Ｔ−ｍａｘから遅延最大時間ΔＴを減算した時間間隔の間に設定される。例えば、定期送信間隔Ｔが１００ｍｓ、遅延最大時間ΔＴが４０ｍｓ、遅延許容時間Ｔ−ｍａｘが２００ｍｓである場合には、送信間隔Ｔ−Ｌｏｎｇは、１４０ｍｓから１６０ｍｓの間の時間に設定できる。例えば定期送信間隔Ｔを５０ｍｓ延長した１５０ｍｓに設定することができる。
【００５５】
＜第２のデバイス２００の機能＞
第２のデバイス２００のハードウェア構成は、上述したように図５を適用できる。
【００５６】
図１０は、第２のデバイス２００の機能ブロック図を示す。
【００５７】
第２のデバイス２００のCPU１０８は、受信間隔計測部１００２と、受信間隔判断部１００４と、メモリ１００６と、メッセージ処理部１００８として機能する。これら各部は、図５に示されている各構成要素のいずれかが、HD（図示なし）からRAM（図示なし）上に展開された第２のデバイス用のプログラムに従ったCPU１０８からの命令によって動作することで実現される機能又は手段である。
【００５８】
第２のデバイス用のプログラムは、インストール可能な形式又は実行可能な形式のファイルによって、ネットーワークを介して又はコンピュータで読み取り可能な記録媒体に記録されて、流通される。上記記録媒体の他の例として、CD-R、DVD、ブルーレイディスク等が挙げられる。
【００５９】
受信間隔計測部１００２は、タイマなどの時間を計測する装置により構成され、通信回路１０６から入力されるメッセージの受信間隔を計測する。受信間隔計測部１００２は、メッセージの受信間隔を表す情報を受信間隔判断部１００４に入力する。
【００６０】
メモリ１００６には、定期送信間隔Ｔを表す情報、送信間隔Ｔ−Ｌｏｎｇを表す情報、遅延最大時間ΔＴを表す情報、及び送信間隔Ｔ−Ｌｏｎｇでメッセージが送信される頻度を表す情報が格納される。
【００６１】
受信間隔判断部１００４は、受信間隔計測部１００２、及びメモリ１００６と接続され、受信間隔計測部１００２からのメッセージの受信間隔を表す情報に基づいて、受信したメッセージが正規のデバイスからのものであるか偽デバイスからのものであるかを判断する。受信間隔判断部１００４は、メモリ１００６に格納される定期送信間隔Ｔを表す情報、送信間隔Ｔ−Ｌｏｎｇを表す情報、遅延最大時間ΔＴを表す情報、及び送信間隔Ｔ−Ｌｏｎｇでメッセージが送信される頻度を表す情報を取得し、受信間隔計測部１００２から入力されるメッセージの受信間隔が定期送信間隔Ｔから遅延最大時間ΔＴの間であるか否かを判断するとともに、所定の頻度で該受信間隔が送信間隔Ｔ−Ｌｏｎｇ以降の時間間隔であるかを判断する。
【００６２】
受信間隔判断部１００４は、所定の頻度で、受信間隔計測部１００２から入力されるメッセージの受信間隔が送信間隔Ｔ−Ｌｏｎｇ以降の時間間隔であることが検出される場合、そのメッセージは正規デバイスからのものであると判断する。一方、受信間隔判断部１００４は、所定の頻度で、受信間隔計測部１００２から入力されるメッセージの受信間隔が送信間隔Ｔ−Ｌｏｎｇ以降の時間間隔であることが検出されない場合、そのメッセージを送信したデバイスを偽デバイスと判断する。つまり、受信間隔判断部１００４は、受信間隔計測部１００２から入力されるメッセージの受信間隔が、送信間隔Ｔ−Ｌｏｎｇ以降の時間間隔となる受信タイミングであるにも関わらず、送信間隔Ｔ−Ｌｏｎｇより前の時間間隔である場合、そのメッセージを偽デバイスからのものであると判断する。
【００６３】
受信間隔判断部１００４は、メッセージ処理部１００８に、偽デバイスから送信されたと判断したメッセージのメッセージIDなどのメッセージを表す情報をメッセージ処理部１００８へ入力する。
【００６４】
図１１は、偽デバイスによって送信されるメッセージの送信タイミングの一例を示す。偽デバイスは、正規デバイスをリバースエンジニアリングすることにより作製されることが多いため、偽デバイスから送信されるメッセージの送信間隔は、定期送信間隔Ｔから遅延最大時間ΔＴの間であることが多い。このため、メッセージの受信間隔が、定期送信間隔Ｔから遅延最大時間ΔＴの間であるか否かに基づいて、そのメッセージを送信したデバイスが正規デバイスであるか偽デバイスであるかを判断することはできない。しかし、偽デバイスには、送信間隔Ｔ−Ｌｏｎｇは設定されないので、所定の頻度に基づく時間が経過しても、送信間隔Ｔ−Ｌｏｎｇを超えた時間にメッセージは受信されない。
【００６５】
したがって、所定の頻度で、受信間隔計測部１００２から入力されるメッセージの受信間隔が送信間隔Ｔ−Ｌｏｎｇ以降の時間間隔であることが検出される場合、そのメッセージを送信したデバイスを正規デバイスと判断できる。
【００６６】
メッセージ処理部１００８は、受信間隔判断部１００４と接続され、通信回路１０６からメッセージが入力される。メッセージ処理部１００８は、通信回路１０６からのメッセージが、受信間隔判断部１００４から偽デバイスから送信されたと判断したメッセージの情報に該当する場合にそのメッセージを破棄し、偽デバイスから送信されたと判断したメッセージの情報に該当しない場合にそのメッセージを処理する。
【００６７】
＜通信システムの動作＞
図１２、及び図１３を参照して、通信システムの動作について説明する。図１２は第１のデバイス１００の動作を示し、図１３は第２のデバイス２００の動作を示す。
【００６８】
第１のデバイス１００の動作について説明する。
【００６９】
ステップＳ１２０２では、メッセージ作成部６０２は、メッセージを作成する。
【００７０】
ステップＳ１２０４では、送信タイミング設定部６０６は、所定の頻度に基づく送信間隔Ｔ-Ｌｏｎｇ経過後に送信する送信タイミングであるか否かを判定する。
【００７１】
ステップＳ１２０６では、ステップＳ１２０４において所定の頻度に基づく送信間隔Ｔ-Ｌｏｎｇ経過後に送信する送信タイミングでないと判定した場合、送信タイミング設定部６０６は、送信制御部６０４に定期送信間隔Ｔ経過後で遅延最大時間ΔＴが経過する前の時間を送信タイミングに設定する。これにより、第１のデバイス１００は、前回の送信から定期送信間隔Ｔ経過後で遅延最大時間ΔＴが経過する前に、メッセージを送信できる。
【００７２】
ステップＳ１２０８では、ステップＳ１２０４において所定の頻度に基づく送信間隔Ｔ-Ｌｏｎｇ経過後に送信する送信タイミングであると判定した場合、送信タイミング設定部６０６は、送信制御部６０４に送信間隔Ｔ−Ｌｏｎｇ経過後で遅延最大時間ΔＴが経過する前の時間を送信タイミングに設定する。これにより、第１のデバイス１００は、前回の送信から送信間隔Ｔ−Ｌｏｎｇ経過後で遅延最大時間ΔＴが経過する前に、メッセージを送信できる。
【００７３】
ステップＳ１２１０では、ステップＳ１２０６で設定した送信タイミング又はステップＳ１２０８で設定した送信タイミングにしたがって、送信制御部６０４は、メッセージを送信する制御を実行する。
【００７４】
これにより、第１のデバイス１００は、定期送信間隔Ｔにしたがってメッセージを送信できるとともに、所定の頻度で定期送信間隔Ｔを延長した送信間隔Ｔ−Ｌｏｎｇでメッセージを送信することができる。
【００７５】
第２のデバイス２００の動作について説明する。
【００７６】
ステップＳ１３０２では、受信間隔計測部１００２は、メッセージの受信間隔を計測する。
【００７７】
ステップＳ１３０４では、受信間隔判断部１００４は、所定の頻度に基づく、送信間隔Ｔ−Ｌｏｎｇ経過後で遅延最大時間ΔＴが経過する前に送信されるメッセージを受信する受信タイミングであるか否かを判定する。
【００７８】
ステップＳ１３０６では、ステップＳ１３０４で所定の頻度に基づく、送信間隔Ｔ−Ｌｏｎｇ経過後で遅延最大時間ΔＴが経過する前に送信されるメッセージを受信する受信タイミングであると判定した場合、受信間隔判断部１００４は、受信間隔計測部１００２によって計測された受信間隔は、定期送信間隔Ｔで送信されるメッセージを受信する場合の時間間隔であるか否かを判定する。
【００７９】
ステップＳ１３０８では、ステップＳ１３０６で受信間隔計測部１００２によって計測された受信間隔が定期送信間隔Ｔで送信されるメッセージを受信する場合の時間間隔であると判定した場合、偽デバイスからのメッセージであると判定する。
【００８０】
ステップＳ１３１０では、ステップＳ１３０６で受信間隔計測部１００２によって計測された受信間隔が定期送信間隔Ｔで送信されるメッセージを受信する場合の時間間隔でないと判定した場合、正規デバイスからのメッセージであると判定する。
【００８１】
ステップＳ１３０８において偽デバイスからのメッセージであると判定した場合、第２のデバイス２００は、そのメッセージを破棄する。第２のデバイス２００は、そのメッセージを破棄するとともに、安全な動作モードへ移行するようにしてもよい。また、第２のデバイス２００は、必要に応じて警告を発信するようにしてもよい。一方、ステップＳ１３０８において正規デバイスからのメッセージであると判定した場合、第２のデバイス２００は、そのメッセージにしたがって処理する。
【００８２】
これにより、第２のデバイスは、所定の頻度で送信間隔Ｔ−Ｌｏｎｇで送信されるメッセージの受信タイミングであるにもかかわらず、送信間隔Ｔ−Ｌｏｎｇより前に受信したメッセージを偽デバイスからのメッセージであると判定できる。
【００８３】
通信システムの一実施例では、説明の便宜のため、第１のデバイス１００のCPUからの命令によって動作することで実現される機能と第２のデバイス２００のCPUからの命令によって動作することで実現される機能を図６と図１０に分けて説明した。しかし、実際には、第１のデバイス１００のCPU１０８は図１０に示される第２のデバイス２００のCPUからの命令によって動作することで実現される機能を実行し、第２のデバイス２００のCPUは図６に示される第１のデバイス１００のCPU１０８からの命令によって動作することで実現される機能を実行する。
【００８４】
つまり、第２のデバイス２００がメッセージを送信する場合には、第２のデバイス２００のCPU１０８は、図６に示される第１のデバイス１００の機能ブロック図にしたがって機能する。また、第１のデバイス１００が、第２のデバイス２００から送信されたメッセージを受信する場合には、図１０に示される第２のデバイス２００の機能ブロック図にしたがって機能する。
【００８５】
通信システムの一実施例によれば、定期送信間隔Ｔにしたがってメッセージを送信する送信側のデバイスは、所定の頻度で定期送信間隔Ｔを延長した送信間隔Ｔ−Ｌｏｎｇでメッセージを送信する。送信側のデバイスから送信されるメッセージを受信する受信側のデバイスは、所定の頻度で送信間隔Ｔ−Ｌｏｎｇで送信されるメッセージの受信タイミングであるにもかかわらず、送信間隔Ｔ−Ｌｏｎｇより前に受信したメッセージを偽デバイスからのメッセージであると判定する。このようにすることにより、メッセージに特定のＩＤを付帯したり、特殊なコマンドを付帯することなく、偽デバイスからのメッセージを識別できる。
【００８６】
つまり、通信メッセージに特定のＩＤを付帯したり、例えば、「鍵を追加する」等の特殊なコマンドを設ける手法は、監視するデバイスの処理負荷を増大させたり、通信トラヒックを圧迫することとなるため、好ましくない。さらに、通信メッセージに特定のＩＤを付帯したり、「鍵を追加する」等の特殊なコマンドを設ける手法は、リバースエンジニアリングで発見されやすく、特に、特殊なコマンドを設ける手法では、鍵の役割を果たせなくなるおそれがある。ここで、偽デバイスは、正規デバイスをリバースエンジニアリングにより模倣することにより作製される。本実施例によれば、リバースエンジニアリングでは見つけることができない特徴を正規デバイスに組み込むことにより、正規デバイスのCAN通信メッセージと偽デバイスのCAN通信メッセージとを見分けることができるようにする。これにより、デバイスへ新たな機能を追加することなく、正規デバイスの通信と偽デバイスの通信とを見分けることができる。
【００８７】
所定の頻度で定期送信間隔Ｔを延長した送信間隔Ｔ−Ｌｏｎｇで送信させることにより、外部からは、通常の遅延送信にしかみえず、解析が困難であるため、偽デバイスが送信間隔Ｔ−Ｌｏｎｇで送信させるように設計されることもない。
【００８８】
また、仮に、所定の頻度で定期送信間隔Ｔを延長した送信間隔Ｔ−Ｌｏｎｇでメッセージを送信する手法が知られたとしても、送信間隔Ｔ−Ｌｏｎｇとして設定できる時間範囲は極めて狭い。さらに、送信間隔Ｔ−Ｌｏｎｇとして設定できる時間範囲を設定する際には、遅延許容時間Ｔ−ｍａｘの値、及び遅延最大時間ΔＴの値が必要であるが、これらの値を知らない模倣者にとって、送信間隔Ｔ−Ｌｏｎｇを設定するのは困難である。
【００８９】
図１４は、所定の頻度で定期送信間隔Ｔを延長した送信間隔Ｔ−Ｌｏｎｇでメッセージを送信する手法により送信されるメッセージと、その手法を模倣することにより送信されるメッセージの一例との比較を示す。
【００９０】
正規デバイスから送信されるメッセージは、前回の送信から送信間隔Ｔ−Ｌｏｎｇで表されるタイミング以降で、且つ前回の送信から遅延許容時間Ｔ−ｍａｘから遅延最大時間ΔＴを減算した時間が経過する時間より前の範囲（Ａ）に受信される。
【００９１】
一方、偽デバイスについては、上述したように、送信間隔Ｔ−Ｌｏｎｇを模倣することが困難である。仮に、送信間隔Ｔ−Ｌｏｎｇを模倣できた場合でも、送信間隔Ｔ−Ｌｏｎｇを前回の送信から遅延許容時間Ｔ−ｍａｘから遅延最大時間ΔＴを減算した時間より後の時間に設定してしまった場合、偽デバイスからのメッセージは、前回の送信から遅延許容時間Ｔ−ｍａｘが経過する時間より後の時間に受信される場合がある。この場合、そのメッセージは、偽デバイスによって送信されたものであると判定される。
【００９２】
以上より、正規デバイスから送信されるメッセージを模倣するためには、定期送信間隔Ｔから遅延最大時間ΔＴを経過する時間の後から、遅延許容時間Ｔ−Ｌｏｎｇから遅延最大時間ΔＴを減算した時間の間という高い精度が要求されるため、偽デバイスの作製するのは困難である。
【００９３】
また、偽デバイスによる成りすましに加えて、正規デバイスの送信に対する妨害や割り込みも想定される。この場合、定期送信間隔Ｔを延長した送信間隔Ｔ−Ｌｏｎｇでメッセージを送信する頻度を検出することにより、偽デバイスの存在を検出できるため、必要に応じて安全処置を施すことができる。例えば、５０回に１回の頻度で定期送信間隔Ｔを延長した送信間隔Ｔ−Ｌｏｎｇでメッセージを送信するように設定されているにも関わらず、６０回に１回の頻度で定期送信間隔Ｔを延長した送信間隔Ｔ−Ｌｏｎｇでメッセージが送信された場合には、偽デバイスによる割り込みが発生していると判断でき、３０回に１回の頻度で定期送信間隔Ｔを延長した送信間隔Ｔ−Ｌｏｎｇでメッセージが送信された場合には、偽デバイスによる妨害が発生していると判断できる。
【００９４】
＜変形例＞
図１５は、通信システムの一変形例を示す。
【００９５】
通信システムの一変形例は、図１を参照して説明した通信システムにおいて、第３のデバイス３００を設けたものである。
【００９６】
通信システムの一変形例では、第１のデバイス１００、及び第２のデバイス２００によってメッセージが送信され、第１のデバイス１００、及び第２のデバイス２００によって送信されたメッセージは、第３のデバイス３００に受信される。メッセージを送信するデバイスが３以上の場合でも適用できる。
【００９７】
第１のデバイス１００、及び第２のデバイス２００は、上述した実施例に係る第１のデバイスを適用できる。
【００９８】
第３のデバイス３００のハードウェア構成は、図５を参照して説明した第１のデバイスの構成を適用できる。
【００９９】
第３のデバイス３００の機能は、図１０を参照して説明した第２のデバイス２００の機能ブロック図を適用できる。
【０１００】
受信間隔計測部１００２は、タイマなどの時間を計測する装置により構成され、通信回路１０６から入力されるメッセージの受信間隔を、メッセージ毎に計測する。例えば、通信回路１０６には、メッセージ毎にメッセージボックスが設けられ、そのメッセージボックスに受信されるメッセージ毎に、メッセージの受信間隔を計測する。受信間隔計測部１００２は、メッセージの受信間隔を表す情報を受信間隔判断部１００４に入力する。
【０１０１】
メモリ１００６には、定期送信間隔Ｔを表す情報、送信間隔Ｔ−Ｌｏｎｇを表す情報、遅延最大時間ΔＴを表す情報、及び送信間隔Ｔ−Ｌｏｎｇでメッセージが送信される頻度を表す情報が格納される。メッセージ毎に、定期送信間隔Ｔ、送信間隔Ｔ−Ｌｏｎｇ、遅延最大時間ΔＴ、及び送信間隔Ｔ−Ｌｏｎｇでメッセージが送信される頻度が異なるように設定されてもよい。
【０１０２】
受信間隔判断部１００４は、受信間隔計測部１００２、及びメモリ１００６と接続され、受信間隔計測部１００２からのメッセージの受信間隔を表す情報に基づいて、受信したメッセージが正規のデバイスからのものであるか偽デバイスからのものであるかを判断する。受信間隔判断部１００４は、メモリ１００６に格納される定期送信間隔Ｔを表す情報、送信間隔Ｔ−Ｌｏｎｇを表す情報、遅延最大時間ΔＴを表す情報、及び送信間隔Ｔ−Ｌｏｎｇでメッセージが送信される頻度を表す情報を取得し、受信間隔計測部１００２から入力されるメッセージの受信間隔が定期送信間隔Ｔから遅延最大時間ΔＴの間であるか否かを判断するとともに、所定の頻度で送信間隔Ｔ−Ｌｏｎｇ以降の時間間隔であるか否かを判断する。
【０１０３】
受信間隔判断部１００４は、所定の頻度で、受信間隔計測部１００２から入力されるメッセージの受信間隔が送信間隔Ｔ−Ｌｏｎｇ以降の時間間隔であることが検出される場合、そのメッセージは正規デバイスからのものであると判断する。一方、受信間隔判断部１００４は、所定の頻度で、受信間隔計測部１００２から入力されるメッセージの受信間隔が送信間隔Ｔ−Ｌｏｎｇ以降の時間間隔であることが検出されない場合、そのメッセージを送信したデバイスを偽デバイスと判断する。つまり、受信間隔判断部１００４は、受信間隔計測部１００２から入力されるメッセージの受信間隔が、送信間隔Ｔ−Ｌｏｎｇ以降の時間間隔となる受信タイミングであるにも関わらず、送信間隔Ｔ−Ｌｏｎｇより前の時間間隔である場合、そのメッセージを偽デバイスからのものであると判断する。
【０１０４】
受信間隔判断部１００４は、メッセージ処理部１００８に、偽デバイスから送信されたと判断したメッセージのメッセージIDなどのメッセージを表す情報をメッセージ処理部１００８へ入力する。
【０１０５】
メッセージ処理部１００８は、受信間隔判断部１００４と接続され、通信回路１０６からメッセージが入力される。メッセージ処理部１００８は、通信回路１０６からのメッセージが、受信間隔判断部１００４から偽デバイスから送信されたと判断したメッセージの情報に該当する場合にそのメッセージを破棄し、偽デバイスから送信されたと判断したメッセージの情報に該当しない場合にそのメッセージを処理する。
【０１０６】
通信システムの一変形例によれば、メッセージを送信するデバイスが複数である場合でも、メッセージを送信するデバイスが１つである場合と同様に、送信側のデバイスは、定期送信間隔Ｔにしたがってメッセージを送信するとともに、所定の頻度で定期送信間隔Ｔを延長した送信間隔Ｔ−Ｌｏｎｇでメッセージを送信する。送信側のデバイスから送信されるメッセージを受信する受信側のデバイスは、メッセージ毎にメッセージの受信間隔を計測し、所定の頻度で送信間隔Ｔ−Ｌｏｎｇ経過後に送信されるメッセージの受信タイミングであるにも関わらず、定期送信間隔Ｔで送信されるメッセージを受信する時間間隔で受信したメッセージを偽デバイスからのメッセージであると判定する。このようにすることにより、メッセージに特定のＩＤを付帯したり、特殊なコマンドを付帯することなく、偽デバイスからのメッセージを識別できる。また、所定の頻度で定期送信間隔Ｔを延長した送信間隔Ｔ−Ｌｏｎｇで送信させることにより、外部からは、通常の遅延送信にしかみえず、解析が困難であるため、偽デバイスが送信間隔Ｔ−Ｌｏｎｇで送信させるように設計されることもない。
【０１０７】
以上、本発明は特定の実施例及び変形例を参照しながら説明されてきたが、各実施例及び変形例は単なる例示に過ぎず、当業者は様々な変形例、修正例、代替例、置換例等を理解するであろう。説明の便宜上、本発明の実施例に従った装置は機能的なブロック図を用いて説明されたが、そのような装置はハードウェアで、ソフトウェアで又はそれらの組み合わせで実現されてもよい。本発明は上記実施例に限定されず、本発明の精神から逸脱することなく、様々な変形例、修正例、代替例、置換例等が包含される。
【符号の説明】
【０１０８】
１０  通信バス
１００  第１のデバイス
１０２  通信トランシーバ
１０４  マイコン
１０６  通信回路
１０８  CPU
２００  第２のデバイス
３００  第３のデバイス
６０２  メッセージ作成部
６０４  送信制御部
６０６  送信タイミング設定部
１００２  受信間隔計測部
１００４  受信間隔判断部
１００６  メモリ
１００８  メッセージ処理部
【図１】
2015171092.tif 000003
【図２】
2015171092.tif 000004
【図３】
2015171092.tif 000005
【図４】
2015171092.tif 000006
【図５】
2015171092.tif 000007
【図６】
2015171092.tif 000008
【図７】
2015171092.tif 000009
【図８】
2015171092.tif 000010
【図９】
2015171092.tif 000011
【図１０】
2015171092.tif 000012
【図１１】
2015171092.tif 000013
【図１２】
2015171092.tif 000014
【図１３】
2015171092.tif 000015
【図１４】
2015171092.tif 000016
【図１５】
2015171092.tif 000017