(57)【要約】【課題】通信による認証の信頼度をより高めることができる。【解決手段】通信装置は、受信したリクエスト信号に基づいてチャレンジコードを送信し、前記リクエスト信号を送信する被認証装置に対する認証を、当該チャレンジコードと、当該チャレンジコードをもとに生成されるレスポンスコードとに基づいて実施する通信装置であって、前記チャレンジコードの送信後であって、前記認証の完了前に、前記被認証装置からリクエスト信号を定められた回数以上受信した場合に、所定のフェイルセーフ処理を行う制御部を備える。【選択図】図８Ａ
2018078516.tif 000002
【特許請求の範囲】
【請求項１】
受信したリクエスト信号に基づいてチャレンジコードを送信し、
前記リクエスト信号を送信する被認証装置に対する認証を、当該チャレンジコードと、当該チャレンジコードをもとに生成されるレスポンスコードとに基づいて実施する通信装置であって、
前記チャレンジコードの送信後であって、前記認証の完了前に、前記被認証装置からリクエスト信号を定められた回数以上受信した場合に、所定のフェイルセーフ処理を行う制御部
を備える通信装置。
【請求項２】
前記認証の完了前とは、前記レスポンスコードを受信する前であって、
前記制御部は、
前記定められた回数以上のリクエスト信号を、前記レスポンスコードを受信する前に前記被認証装置から受信した場合に、前記所定のフェイルセーフ処理を実行する、
請求項１記載の通信装置。
【請求項３】
前記制御部は、
前記所定のフェイルセーフ処理として、前記被認証装置から受信した前記リクエスト信号に対する前記チャレンジコードを送信しないチャレンジコード送信禁止処理を行う、
請求項１又は請求項２記載の通信装置。
【請求項４】
前記制御部は、
前記所定のフェイルセーフ処理を実行することにより、前記チャレンジコードの値を、前記所定のフェイルセーフ処理を実行するまでに送信したチャレンジコードの値にする、
請求項１から請求項３の何れか１項に記載の通信装置。
【請求項５】
前記制御部は、
前記フェイルセーフ処理を実行する直前に送信したチャレンジコードの値と同一の値を、前記チャレンジコードの値にする、
請求項１から請求項４の何れか１項に記載の通信装置。
【請求項６】
前記制御部は、
通信状態に応じて前記定められた回数の値を変更する、
請求項１から請求項５の何れか１項に記載の通信装置。
【請求項７】
前記被認証装置と無線で通信する無線通信部を備え、
前記制御部は、
前記無線通信の受信信号強度が所定値より弱い場合には、前記定められた回数の値を、前記受信信号強度が前記所定値より強い場合の値より大きな値にする、
請求項６に記載の通信装置。
【請求項８】
前記制御部は、
前記被認証装置と通信する通信回線において、単位時間当たりの通信量が所定値より多い場合には、前記定められた回数の値を、前記通信量が前記所定値より少ない場合の値より大きな値にする、
請求項６又は請求項７に記載の通信装置。
【請求項９】
請求項１から請求項８の何れか１項に記載の第１の通信装置と、
前記リクエスト信号を送信し、前記リクエスト信号を送信した後に、チャレンジコードを受信し、前記チャレンジコードをもとにレスポンスコードを生成して、前記生成したレスポンスコードを前記第１の通信装置宛に送信する第２の通信装置と、
を備える通信システム。
【請求項１０】
受信したリクエスト信号に基づいてチャレンジコードを送信し、
前記リクエスト信号を送信する被認証装置に対する認証を、当該チャレンジコードと、当該チャレンジコードをもとに生成されるレスポンスコードとに基づいて実施する通信装置であって、
前記チャレンジコードの送信後であって、前記認証の完了前に、前記被認証装置からのリクエスト信号を受信した回数を計数するステップと、
前記計数の結果から前記受信した回数が定められた回数以上である場合に、所定のフェイルセーフ処理を実施するステップと、
を含む通信方法。
【請求項１１】
受信したリクエスト信号に基づいてチャレンジコードを送信し、当該チャレンジコードと、当該チャレンジコードをもとに生成されるレスポンスコードとに基づいて、
前記リクエスト信号を送信する被認証装置に対する認証を実施する通信装置のコンピュータに、
前記チャレンジコードの送信後であって、前記認証の完了前に、前記被認証装置からのリクエスト信号を受信した回数を計数するステップと、
前記計数の結果から前記受信した回数が定められた回数以上である場合に、所定のフェイルセーフ処理を実施するステップと、
を実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、通信装置、通信システム、通信方法、及びプログラムに関する。
【背景技術】
【０００２】
従来、通信装置の認証を行う通信システムが知られている。このような通信システムにおいて、チャレンジコードと、当該チャレンジコードをもとに生成されるレスポンスコードとを利用した認証処理を行うものがある。例えば、第１通信装置が、第２通信装置に対してリクエスト信号を送信する。第２通信装置は、リクエスト信号に基づいてチャレンジコートを送信する。第１通信装置は、上記のチャレンジコードに基づいたレスポンスコードを生成して、上記のレスポンスコードを第２通信装置宛てに送信する。第２通信装置は、当該チャレンジコードと、当該チャレンジコードをもとに生成されるレスポンスコードとに基づいて、上記のリクエスト信号を送信した第１通信装置（被認証装置）に対する認証処理を行う。
【０００３】
第１通信装置と第２通信装置が通信するネットワークにおいて、第１通信装置と第２通信装置の双方の装置とは異なる偽装通信装置が、偽装したリクエスト信号を上記のネットワークに繰り返し送信し、チャレンジコードを待ち受けて、チャレンジコードの規則性などを取得する行為が知られている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１５−０６３８７５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、偽装通信装置は、リクエスト信号を繰り返し送信することで、チャレンジコードの規則性を取得できる。或いは、偽装通信装置が特定のチャレンジコードに対するレスポンスコードを有する場合には、特定のチャレンジコードを受信するまでリクエスト信号の送信を繰り返すことで、特定のチャレンジコードに対応するレスポンスコードの送信が可能になる。上記のような場合には、認証の信頼度が低下することがある。
本発明は、このような事情を考慮してなされたものであり、通信による認証の信頼度をより高めることができる通信装置、通信システム、通信方法、及びプログラムを提供することを目的の一つとする。
【課題を解決するための手段】
【０００６】
請求項１記載の発明は、受信したリクエスト信号（ＳＥＥＤ要求）に基づいてチャレンジコード（ＳＥＥＤ）を送信し、前記リクエスト信号を送信する被認証装置に対する認証を、当該チャレンジコードと、当該チャレンジコードをもとに生成されるレスポンスコード（ＫＥＹ２）とに基づいて実施する通信装置であって、前記チャレンジコードの送信後であって、前記認証の完了前に、前記被認証装置からリクエスト信号を定められた回数（Ｍ）以上受信した場合に、所定のフェイルセーフ処理を行う制御部（１１）を備える通信装置（１０）である。
【０００７】
また、請求項２記載の発明における前記認証の完了前とは、前記レスポンスコードを受信する前であって、前記制御部は、前記定められた回数以上のリクエスト信号を、前記レスポンスコードを受信する前に前記被認証装置から受信した場合に、前記所定のフェイルセーフ処理を実行する。
【０００８】
また、請求項３記載の発明における前記制御部は、前記所定のフェイルセーフ処理として、前記被認証装置から受信した前記リクエスト信号に対する前記チャレンジコードを送信しないチャレンジコード送信禁止処理を行う。
【０００９】
また、請求項４記載の発明における前記制御部は、前記所定のフェイルセーフ処理を実行することにより、前記チャレンジコードの値を、前記所定のフェイルセーフ処理を実行するまでに送信したチャレンジコードの値にする。
【００１０】
また、請求項５記載の発明における前記制御部は、前記フェイルセーフ処理を実行する直前に送信したチャレンジコードの値と同一の値を、前記チャレンジコードの値にする。
【００１１】
また、請求項６記載の発明における前記制御部は、通信状態に応じて前記定められた回数の値を変更する。
【００１２】
また、請求項７記載の発明は、前記被認証装置と無線で通信する無線通信部を備え、前記制御部は、前記無線通信の受信信号強度が所定値より弱い場合には、前記定められた回数の値を、前記受信信号強度が前記所定値より強い場合の値より大きな値にする。
【００１３】
また、請求項８記載の発明における前記制御部は、前記被認証装置と通信する通信回線において、単位時間当たりの通信量が所定値より多い場合には、前記定められた回数の値を、前記通信量が前記所定値より少ない場合の値より大きな値にする。
【００１４】
また、請求項９記載の発明の通信システム（１）は、上記発明の何れかに記載の第１の通信装置（１０）と、前記リクエスト信号を送信し、前記リクエスト信号を送信した後に、チャレンジコードを受信し、前記チャレンジコードをもとにレスポンスコードを生成して、前記生成したレスポンスコードを前記第１の通信装置宛に送信する第２の通信装置（５０、６０）と、を備える。
【００１５】
また、請求項１０記載の発明の通信方法は、受信したリクエスト信号に基づいてチャレンジコードを送信し、前記リクエスト信号を送信する被認証装置に対する認証を、当該チャレンジコードと、当該チャレンジコードをもとに生成されるレスポンスコードとに基づいて実施する通信装置であって、前記チャレンジコードの送信後であって、前記認証の完了前に、前記被認証装置からのリクエスト信号を受信した回数を計数するステップと、前記計数の結果から前記受信した回数が定められた回数以上である場合に、所定のフェイルセーフ処理を実施するステップと、を含む。
【００１６】
また、請求項１１記載の発明のプログラムは、受信したリクエスト信号に基づいてチャレンジコードを送信し、当該チャレンジコードと、当該チャレンジコードをもとに生成されるレスポンスコードとに基づいて、前記リクエスト信号を送信する被認証装置に対する認証を実施する通信装置のコンピュータに、前記チャレンジコードの送信後であって、前記認証の完了前に、前記被認証装置からのリクエスト信号を受信した回数を計数するステップと、前記計数の結果から前記受信した回数が定められた回数以上である場合に、所定のフェイルセーフ処理を実施するステップと、を実行させるためのプログラムである。
【発明の効果】
【００１７】
請求項１から請求項１１に記載の発明によれば、受信したリクエスト信号に基づいてチャレンジコードを送信し、当該チャレンジコードと、当該チャレンジコードをもとに生成されるレスポンスコードに基づいて、前記リクエスト信号を送信する被認証装置に対する認証を行う通信装置であって、前記チャレンジコードの送信後であって、前記認証の完了前に、前記被認証装置からリクエスト信号を所定回数以上受信した場合に、所定のフェイルセーフ処理を行う制御部を備えることにより、通信による認証の信頼度をより高めることができる通信装置、通信システム、通信方法、及びプログラムを提供することができる。
【図面の簡単な説明】
【００１８】
【図１】第１の実施形態の通信システム１の構成を示す図である。
【図２Ａ】本実施形態のＥＣＵ１０のハードウエア構成を示す図である。
【図２Ｂ】本実施形態のＥＣＵ１０の機能構成を示す図である。
【図３】本実施形態の典型的な通信手順を示す図である。
【図４】本実施形態のＥＣＵ１０における認証処理の状態遷移図である。
【図５】本実施形態のＥＣＵ１０におけるＳＥＥＤの生成処理の手順を示すフローチャートである。
【図６】本実施形態の図４に示す認証処理のシーケンスについてのより詳細な一例を示す図である。
【図７】ＥＣＵ等に対する外部装置５０Ｓの攻撃の一例を示す図である。
【図８Ａ】本実施形態のＫＥＹ待機状態における処理の手順を示すフローチャートである。
【図８Ｂ】本実施形態の変形例でＫＥＹ待機状態における処理に追加する処理の手順を示すフローチャートである。
【図９Ａ】本実施形態のＥＣＵ１０における認証処理の状態遷移図である。
【図９Ｂ】本実施形態の変形例のＥＣＵ１０における認証処理の状態遷移図である。
【図１０】第２のＫＥＹ待機状態における処理の手順を示すフローチャートである。
【図１１】本実施形態のＥＣＵ１０における認証処理の状態遷移図である。
【図１２】第３の実施形態における第２の事例のＫＥＹ待機状態における処理の手順を示すフローチャートである。
【図１３】本実施形態のＥＣＵ１０における認証処理の状態遷移図である。
【図１４】第４の実施形態における閾値Ｍの調整処理の手順を示すフローチャートである。
【図１５】第５の実施形態における閾値Ｍの調整処理の手順を示すフローチャートである。
【発明を実施するための形態】
【００１９】
以下、図面を参照し、本発明の通信装置、通信システム、通信方法、及びプログラムの実施形態について説明する。
【００２０】
（第１の実施形態）
図１は、本実施形態の通信システム１の構成を示す図である。通信システム１は、例えば車両に搭載される。通信システム１は、少なくとも車両内にネットワークＮＷを構成する。ネットワークＮＷでは、例えば、バス２を介してＣＡＮ（Controller Area Network）、ＩＥＥＥ８０２．３などの通信方式に基づく通信が行われる。
【００２１】
通信システム１は、バス２に接続されたＥＣＵ１０−１からＥＣＵ１０−３を備える。以下、ＥＣＵ１０−１からＥＣＵ１０−３を区別しない場合は、単にＥＣＵ１０と表記する。ＥＣＵ１０−１からＥＣＵ１０−３等の装置は、共通のバス２に接続されたものとして説明するが、不図示の中継装置等により互いに通信可能に接続された異なるバスに接続されていてもよい。
【００２２】
ＥＣＵ１０は、例えばエンジンを制御するエンジンＥＣＵや、シートベルトを制御するシートベルトＥＣＵ等である。ＥＣＵ１０は、自装置が所属するネットワークＮＷに送信されたフレームを受信する。以下、ネットワークＮＷに送信される各フレームのことをフレームＦという。フレームＦは、それぞれに附された識別子（以下、ＩＤという。）により識別される。ＥＣＵ１０は、自ＥＣＵ１０に係るフレームＦを識別するＩＤ（以下、登録ＩＤという）を記憶部１２（図２Ｂ）に格納しておく。ＥＣＵ１０は、フレームＦを受信する際には、受信したフレームＦに附されたＩＤ（以下、受信ＩＤという）を参照して、登録ＩＤと同じ値の受信ＩＤが附されたフレームＦを抽出して取得する。ＥＣＵ１０は、通信をする際に通信相手の認証処理を実施する。
【００２３】
ネットワークＮＷには、検証装置等の外部装置５０を接続する端子であるＤＬＣを設けた通信装置３が設けられている。車両の点検時等に通信装置３に接続される検証装置等は、外部装置５０の一例である。検証装置は、バス２に接続されたＥＣＵ１０と通信して、通信システム１の状態を検査・検証する。車両の点検時等を除けば、通信装置３に検証装置等を接続することなく、通信システム１を機能させることができる。
【００２４】
図２Ａは、本実施形態のＥＣＵ１０のハードウエア構成を示す図である。ＥＣＵ１０は、ＣＰＵ１０Ａと、ＲＯＭ（Read Only Memory）、ＥＥＰＲＯＭ（Electrically Erasable and Programmable Read Only Memory）、ＨＤＤ（Hard Disk Drive）の不揮発性記憶装置１０Ｃと、ＲＡＭ（Random Access Memory）、レジスタ等の揮発性記憶装置１０Ｂと、無線通信インタフェース１０Ｄと、入出力装置１０Ｅと、通信インタフェース１０Ｆなどを含むコンピュータである。なお、ＥＣＵ１０は、その種類又は用途により、無線通信インタフェース１０Ｄと入出力装置１０Ｅの何れか又は両方を含まない場合がある。
【００２５】
図２Ｂは、本実施形態のＥＣＵ１０の機能構成を示す図である。ＥＣＵ１０は、制御部１１と、記憶部１２と、通信制御部１３と、コード生成部１４とを含む。例えば、制御部１１と通信制御部１３とコード生成部１４は、ＣＰＵ１０Ａ等のプロセッサがプログラムを実行することにより実現される。
【００２６】
制御部１１は、通信制御部１３とコード生成部１４とを含む各部を制御する。例えば、制御部１１は、外部装置５０等からの通信要求を受け付けるとともに、外部装置５０等からの通信要求に応じて当該外部装置５０等の認証処理を実施する。以下、制御部１１による認証処理を中心に説明する。
【００２７】
記憶部１２は、不揮発性記憶装置１０Ｃと、揮発性記憶装置１０Ｂによって実現される。記憶部１２は、アプリケーションプログラム、通信制御プログラム等のプログラムと、上記のプログラムの実行により参照される各種情報とを格納する。各種情報には、コード生成部１４により生成されて値が決定されたチャレンジコード（以下、ＳＥＥＤという。）、上記のＳＥＥＤに基づいたレスポンスコード（以下、ＫＥＹ１という。）などが含まれる。上記のＳＥＥＤは、コードＤＢに追加され、コードＤＢとして記憶部１２に格納される。上記のＫＥＹ１は、ＳＥＥＤの値をキーに参照可能なキーＤＢとして記憶部１２に格納される。
【００２８】
通信制御部１３は、通信インタフェース１０Ｆを介した外部の装置との通信を制御する。通信インタフェース１０Ｆは、ＥＣＵ１０をバス２に接続するインタフェースである。通信制御部１３が通信インタフェース１０Ｆを制御することにより、制御部１１が要求する他の装置との通信を可能にする。通信制御部１３は、通信インタフェース１０Ｆからの通知を受け、他の装置からの通信要求を制御部１１に通知する。制御部１１における認証処理などにより、他の装置からの通信要求に対する可否が判断される。
【００２９】
コード生成部１４は、ＳＥＥＤを生成する。例えば、コード生成部１４は、認証処理の度にランダム生成される乱数としてのＳＥＥＤを生成する。もしくは、コード生成部１４は、認証処理を実施した回数に対応する値のＳＥＥＤを生成してもよい。このときコード生成部１４は、認証処理を実施した回数に基づいた演算処理の結果としてＳＥＥＤの値を決定して生成してもよく、認証処理を実施した回数をキーに、予め値が決定されているテーブルを参照して決定して生成してもよい。
【００３０】
図３は、本実施形態の典型的な通信手順を示す図である。ＥＣＵ１０は、通信相手の認証処理を実施することで、通信相手を制限する。同図に示す通信手順は、通信相手の認証処理に係る典型的な一例を示すものである。
【００３１】
例えば、外部装置５０（被認証装置）は、ＳＥＥＤ要求を送信する。ＥＣＵ１０は、ＳＥＥＤ要求を受信する（Ｍ３１）。
【００３２】
ＥＣＵ１０（制御部１１）は、受信したＳＥＥＤ要求に基づいてＳＥＥＤを、コード生成部１４により生成し、送信する（Ｍ３２）。例えば、ＥＣＵ１０（制御部１１）は、当該ＳＥＥＤに対応するＫＥＹ１を、記憶部１２のキーＤＢから取得する。なお、制御部１１は、上記に代えて、所定の演算式に基づいてＫＥＹ１を算出してもよい。
【００３３】
外部装置５０は、ＳＥＥＤを受信して、当該ＳＥＥＤをもとにレスポンスコード（以下、ＫＥＹ２という。）を生成し、送信する。ＥＣＵ１０（制御部１１）は、外部装置５０が送信したＫＥＹ２を受信する（Ｍ３３）。
【００３４】
ＥＣＵ１０（制御部１１）は、当該ＳＥＥＤに対応するＫＥＹ１と、受信したＫＥＹ２とに基づいて認証処理を実施して、その結果を通知する（Ｍ３４）。
【００３５】
以上が、通信相手の認証処理の典型的な一例である。なお、以下の説明で、ＫＥＹ１とＫＥＹ２を区別することなく総じて表す場合には、単にＫＥＹということがある。
【００３６】
図４は、本実施形態のＥＣＵ１０における認証処理の状態遷移図である。
制御部１１は、通信をしていない待機状態（ＳＴ０：待機）にある際に、ＳＥＥＤ要求を受信（要求受信）することにより、制御状態を、ＳＥＥＤの値を定める処理を実行する状態（以下、ＳＥＥＤ決定処理状態という。）（ＳＴ１：ＳＥＥＤ決定）に遷移させる。
【００３７】
制御部１１は、ＳＥＥＤ決定処理状態（ＳＴ１）にある際に、生成したＳＥＥＤを送信することにより、制御状態をＫＥＹ２の受信待機状態（ＳＴ２：ＫＥＹ２待）に遷移させる。
【００３８】
制御部１１は、ＫＥＹ２の受信待機状態（ＳＴ２：ＫＥＹ２待）にある際に、ＫＥＹ２を受信（ＫＥＹ受信）することにより、認証処理を実施する制御状態（ＳＴ３：認証）に遷移させる。
【００３９】
制御部１１は、認証処理が完了（処理完了）することにより、制御状態を待機状態（ＳＴ０）に遷移させる。
【００４０】
なお、制御部１１は、ＫＥＹ２の受信待機状態（ＳＴ２：ＫＥＹ２待）にある際に、ＳＥＥＤ要求を受信（要求受信）することにより、制御状態をＳＥＥＤ決定処理状態（ＳＴ１：ＳＥＥＤ決定）に遷移させる。
【００４１】
図５は、本実施形態のＥＣＵ１０におけるＳＥＥＤの生成処理の手順を示すフローチャートである。なお、以下の例では、ＳＥＥＤが、コード生成部１４によって、認証処理に関する繰り返し回数に応じて決定される値であるものとして説明するが、ＳＥＥＤは、認証処理に関する繰り返し回数に基づかずにランダム生成される乱数であってもよい。制御部１１は、ＳＥＥＤ要求の受信を契機に、下記の処理を実施する。制御部１１は、認証処理に関する繰り返し回数ｋに応じたＳＥＥＤの値を、コード生成部１４によって、定めた値に決定する（Ｓ１１）。制御部１１は、決定したＳＥＥＤを送信するとともに（Ｓ１２）、コードＤＢに追加する。制御部１１は、決定したＳＥＥＤに対応するＫＥＹ１を記憶部１２に記憶された演算式をもとに算出する（Ｓ１３）。例えば、上記の手順により、制御部１１は、ＳＥＥＤと、ＳＥＥＤに対応するＫＥＹ１とを取得する。
【００４２】
図６は、図４に示す認証処理の状態遷移についてのより詳細な一例を示す図である。図４との相違点を中心に説明する。
【００４３】
制御部１１は、送信したＳＥＥＤと同じ値のＳＥＥＤを続けて送信しない。例えば、制御部１１は、ＫＥＹ２の受信待機状態（ＳＴ２）から、ＳＥＥＤ決定処理状態（ＳＴ１）に戻る場合であっても、直前に送信したＳＥＥＤと同じ値のＳＥＥＤを送信することはない。
【００４４】
例えば、図６に示すように、ＫＥＹ２の受信待機状態（ＳＴ２）として、ＳＴ２１からＳＴ２ＮまでのＮ個（Ｎは自然数を示す。）の状態が定義される。制御部１１は、ＳＴ１１からＳＴ１Ｎの各状態において決定するＳＥＥＤの値は何れも異なるものにする。
【００４５】
制御部１１は、ＳＴ１１のＳＥＥＤ決定処理状態にある際に、ＳＥＥＤ（例えばＳＥＥＤ＃１）を送信することにより、その制御状態をＫＥＹ２の受信待機状態（ＳＴ２１：ＫＥＹ２待）に遷移させる。
【００４６】
次に、制御部１１は、ＳＴ２１にある際に、ＳＥＥＤ要求を受信（要求受信）することにより、その制御状態をＳＥＥＤ決定処理状態（ＳＴ１２：ＳＥＥＤ決定）に遷移させる。
制御部１１は、ＳＴ１２のＳＥＥＤ決定処理状態にある際に、ＳＥＥＤ（例えばＳＥＥＤ＃２）を送信する。以下、同様である。
【００４７】
なお、制御部１１は、ＳＴ２Ｎにある際に、ＳＥＥＤ要求を受信（要求受信）することにより、その制御状態をＳＥＥＤ決定処理状態（ＳＴ１１：ＳＥＥＤ決定）に遷移させる。なお、ＳＥＥＤをランダム数として生成する場合は、上記の遷移に従いＳＥＥＤの値を調整する必要はなく、ＳＴ２Ｎに至るまでと同様にランダム数の生成を続けてよい。
【００４８】
なお、制御部１１は、ＳＴ２１からＳＴ２ＮのＫＥＹ２の受信待機状態にある際に、ＫＥＹ２を受信（ＫＥＹ受信）することにより、各状態におけるＳＥＥＤから対応付けられたＫＥＹ１と、ＳＥＥＤに対応するＫＥＹ２とに基づいて認証処理を実施する制御状態（ＳＴ３：認証）に遷移させる。
【００４９】
ところで、外部装置５０になりすました装置（以下、外部装置５０Ｓという。）などが、ＥＣＵ１０における認証処理を不当な方法でクリアする（正規な装置であるものとの認証をＥＣＵ１０から得る）ことを目的に、ＳＥＥＤに対応するＫＥＹの情報の取得を企てることがある。例えば、外部装置５０の一例として、ＥＣＵ１０の診断機が挙げられる。上記の外部装置５０Ｓには、ＥＣＵ１０の診断機が不当に改造されたもの、診断機になりすました装置などが含まれる。
【００５０】
図７は、ＥＣＵ等に対する外部装置５０Ｓの攻撃の一例を示す図である。外部装置５０Ｓは、ＳＥＥＤとＫＥＹの規則性に関する情報を取得するために、ＥＣＵ１０等に対して、図示するような攻撃を実施することがある。
【００５１】
外部装置５０Ｓは、ＳＥＥＤ要求を繰り返し送信する。比較例のＥＣＵは、ＳＥＥＤ要求を受信し、その都度ＳＥＥＤを算出し、外部装置５０Ｓに返送する。比較例のＥＣＵは、正当なＳＥＥＤ要求であるか、攻撃的な手順によるＳＥＥＤ要求であるかを識別することができず、ＳＥＥＤ要求を受信することに応じて、決定したＳＥＥＤを順に送信する。例えば、ＳＥＥＤ＃１、ＳＥＥＤ＃２、・・・、ＳＥＥＤ＃ｋのように値が異なるＳＥＥＤが送信される。外部装置５０Ｓは、これらのＳＥＥＤの値から比較例のＥＣＵのＳＥＥＤの値の規則性などを発見し、当該ＥＣＵにおける認証処理をクリアするための知見を蓄積する。
この場合、上記の知見に基づいた解析により、外部装置５０Ｓは、比較例のＥＣＵから受信する任意のＳＥＥＤからＫＥＹを算出することが可能になることが懸念される。
【００５２】
また、外部装置５０Ｓは、受信した任意のＳＥＥＤからＫＥＹを算出することができなくても、正規の診断機の通信を盗聴することにより、認証を得ることが可能な特定のＳＥＥＤとＫＥＹの組み合わせを保有していることがある。この場合、外部装置５０Ｓは、ＳＥＥＤ要求の送信を繰り返して、自信が保有する特定の組み合わせに係るＳＥＥＤを受信できた場合に、そのＳＥＥＤに対応するＫＥＹを、ＥＣＵ等宛に送付することで認証を得る、という不当な処理が実施されることが懸念される。
【００５３】
比較例のＥＣＵ等において、前述の図６に示すようにＳＥＥＤの値が一巡するまでの回数が多くなるように形成されているとしても、外部装置５０Ｓが、図７に示す処理を機械的に実施する場合には、その有効性が低減することがある。また、ＳＥＥＤの値が、認証処理の回数に依存しない完全な乱数として生成されるとしても、上記の通り、特定の組み合わせに係るＳＥＥＤを受信できた場合に、そのＳＥＥＤに対応するＫＥＹを返信することで認証を得るという不当な処理により、認証の有効性が低減することが想定される。
【００５４】
そこで、本実施形態のＥＣＵ１０は、認証処理の一部に下記の処理を実施する。図８Ａは、本実施形態のＫＥＹ待機状態における処理の手順を示すフローチャートである。
以下に示す処理は、１回目のＳＥＥＤ要求を受信してから認証が完了するまでの間に、ＫＥＹを含むメッセージ、ｋ回目のＳＥＥＤ要求を含むメッセージ等のメッセージを受信したことにより実行される。なお、ｋは、Ｎ以下の自然数である。
【００５５】
まず、制御部１１は、ＫＥＹ２を含むメッセージを受信したか否かを判定する（Ｓ２１）。
【００５６】
次に、ＫＥＹ２を含むメッセージを受信した場合（Ｓ２１：Ｙｅｓ）には、制御部１１は、記憶部１２のコードＤＢを初期化する。次に、制御部１１は、受信したＫＥＹ２に基づいた認証処理を実施して（Ｓ２２）、その結果を通知する。制御部１１は、繰り返し回数を示す変数ｋの値を０にするとともに（Ｓ２３）、制御状態を待機状態ＳＴ０に遷移させて、図示される一連の処理を終える。
【００５７】
ＫＥＹ２を含むメッセージを受信していない場合（Ｓ２１：Ｎｏ）には、制御部１１は、受信したメッセージがＳＥＥＤ要求を含むものであるか否かを判定する（Ｓ２４）。
【００５８】
ＳＥＥＤ要求を含むメッセージを受信している場合（Ｓ２４：Ｙｅｓ）には、制御部１１は、繰り返し回数を示す変数ｋの値に１を加算して更新する（Ｓ２５）。次に、制御部１１は、閾値Ｍを取得して（Ｓ２６）、変数ｋの値が閾値Ｍを超えているか否かを判定する（Ｓ２７）。なお、閾値Ｍは、Ｎ未満の自然数である。本実施形態における閾値Ｍは、所定の値であってもよい。
【００５９】
変数ｋの値が閾値Ｍ未満である場合（Ｓ２７：Ｎｏ）には、制御部１１は、変数ｋに対応する回数のＳＥＥＤ要求に応じたＳＥＥＤの値を決定するＳＥＥＤ決定処理を実施して（Ｓ２８）、図示される一連の処理を終える。
【００６０】
ＳＥＥＤ要求を含むメッセージを受信していない場合（Ｓ２４：Ｎｏ）、又は、変数ｋの値が閾値Ｍ以上である場合（Ｓ２７：Ｙｅｓ）には、図示される一連の処理を終え、次に受信するメッセージを待機する。
なお、以上の例では、ＳＥＥＤが、認証処理に関する繰り返し回数（ｋ）に応じて決定される値であるものとして説明したが、認証処理に関する繰り返し回数に基づかずにランダム生成される乱数であってもよい。
【００６１】
図９Ａは、本実施形態のＥＣＵ１０における認証処理の状態遷移図である。図６との相違点を中心に説明する。図９Ａは、閾値Ｍを３（所定の回数）にした場合を示す。
【００６２】
例えば、ＳＴ２１においてＳＥＥＤを送信した後に認証を完了することなく、２回のＳＥＥＤ要求を受けると、ＳＴ１３のＳＥＥＤ決定処理状態に至る。ＳＴ１３にある場合に、制御部１１は、ＳＥＥＤを送信することにより、制御状態をＫＥＹ２の受信待機状態（ＳＴ２３：ＫＥＹ２待）に遷移させる。
【００６３】
次に、制御部１１は、ＳＴ２３にある際に、３回目のＳＥＥＤ要求を受信（要求受信）することにより、図８Ａに示す処理を実行する。その結果、制御部１１は、図８ＡのＳ２７における判定により、変数ｋの値（２＋１）が閾値Ｍの値（３）以上である（Ｓ２７：Ｙｅｓ）と判定する。つまり、制御部１１は、図８Ａに示される一連の処理を終えるが、その制御状態は、ＳＴ２３から変化しない。つまり、制御部１１は、上記のとおり繰り返し要求を受けた場合には、ＳＥＥＤを送信しないというフェイルセーフ処理を実施する。
【００６４】
上記の実施形態によれば、ＥＣＵ１０は、受信したＳＥＥＤ要求（リクエスト信号）に基づいてＳＥＥＤ（チャレンジコード）を送信する。ＥＣＵ１０は、ＳＥＥＤ要求を送信する外部装置５０等の被認証装置に対する認証を、当該ＳＥＥＤと、当該ＳＥＥＤをもとに生成されるＫＥＹ２（レスポンスコード）とに基づいて実施する。ＥＣＵ１０の制御部１１は、ＳＥＥＤの送信後であって、送信したＳＥＥＤに対する認証の完了前に、被認証装置からＳＥＥＤ要求を定められた回数以上受信した場合に、所定のフェイルセーフ処理を実施して、不正な認証処理のクリアを抑制することにより、通信による認証の信頼度をより高めることができる。
【００６５】
なお、「認証の完了前」がＫＥＹ２を受信するまでの時点であることにより、「不正装置が、認証不適合との判定が下されることを回避するために、あえてＫＥＹ２を送信せずにＳＥＥＤ要求のみを繰り返し送信する、との行為に及んだとしても、ＥＣＵ１０は、これに対処することができる。つまり、ＥＣＵ１０は、定められた回数（閾値）以上のＳＥＥＤ要求を、ＫＥＹ２を受信する前に被認証装置から受信した場合に、所定のフェイルセーフ処理を実行することから、不当に繰り返して送信されるＳＥＥＤ要求に対する対策を講じることができる。
【００６６】
なお、本実施形態の制御部１１は、上記の所定のフェイルセーフ処理として、被認証装置から受信したＳＥＥＤ要求に対するＳＥＥＤを送信しない、というＳＥＥＤの送信を制限する処理（チャレンジコード送信禁止処理）を実施する。
【００６７】
（第１の実施形態の変形例）
次に、第１の実施形態の変形例について説明する。第１の実施形態では、フェイルセーフ処理を実施するか否かについて判定する期間を、ＳＥＥＤの送信後であって、送信したＳＥＥＤに対する「認証の完了前」が、ＫＥＹ２を受信するまでの時点よりも前である事例について説明した。これに代えて、本変形例では、その「認証の完了前」が、ＳＥＥＤに対応するＫＥＹ１と、受信したＫＥＹ２とが一致するか否かの判定により、被認証装置が正規な装置であるか否かが判定される時点よりも前である場合について説明する。第1の実施形態との相違点を中心に説明する。
【００６８】
図９Ｂは、本変形例のＥＣＵ１０における認証処理の状態遷移図である。図９Ａとの相違点を中心に説明する。図９Ｂでは、ＳＴ３に遷移した後にＳＴ３における「認証の完了前」に、さらに要求処理を受信した場合の遷移が、前述の図9Ａに示した状態遷移図に追加されている。
【００６９】
ＳＴ３における「認証の完了前」、つまり、ＳＥＥＤに対応するＫＥＹ１と、受信したＫＥＹ２とが一致するか否かの判定により、被認証装置が正規な装置であるか否かが判定される時点よりも前に、ＳＥＥＤ要求を受信（要求受信）した場合、ＥＣＵ１０は、ＳＥＥＤ要求を受信した回数（ｋ）を計数する。ＥＣＵ１０は、ＳＥＥＤ要求を受信した回数（ｋ）が所定の回数（Ｍ’）に満たない場合には、状態を遷移させずに認証処理を継続する。ＥＣＵ１０は、ＳＥＥＤ要求を受信した回数（ｋ）が所定の回数（Ｍ’）以上になった場合には、認証処理を中断するとともに、状態を待機状態（ＳＴ０）に遷移させる。なお、上記の所定の回数として定める閾値Ｍ’の値は、前述の閾値Ｍの値と同じでもよく、異なるものであってもよい。
【００７０】
上記の状態遷移を実現するための処理の一例について説明する。ＥＣＵ１０は、前述の図８Ａに示したＫＥＹ待機状態における処理に加えて、図８Ｂに示す処理を実施する。図８Ｂは、本実施形態の変形例でＫＥＹ待機状態における処理に追加する処理の手順を示すフローチャートである。制御部１１は、図８ＡのＳ２１の判定により、ＫＥＹ２を含むメッセージを受信したと判定し（Ｓ２１：Ｙｅｓ）、受信したＫＥＹ２に基づいた認証処理を実施するとともに、図８Ｂに示す処理を割り込み処理として実施する（Ｓ２２）。
【００７１】
図８Ｂに示すＥＳ２４からＥＳ２６の処理は、図８Ａに示すＳ２４からＳ２６の処理に相当する。なお、Ｓ２６における閾値Ｍを閾値Ｍ’に読み替える。つまり、制御部１１は、Ｓ２２の認証処理の実行中に並行してＳＥＥＤ要求の受信を検出し、その受信を検出することにより、検出回数に基づいた下記の処理を実施する。
【００７２】
ＥＳ２７の判定において、変数ｋの値が閾値Ｍ’以上である場合（ＥＳ２７：Ｙｅｓ）には、制御部１１は、フェイルセーフ処理を実施して、認証処理を中断する（ＥＳ２８）。制御部１１は、繰り返し回数を示す変数ｋの値を０にして（Ｓ２３）、制御状態を待機状態ＳＴ０に遷移させる。
【００７３】
ＥＳ２７判定において、変数ｋの値が閾値Ｍ’未満である場合（ＥＳ２７：Ｎｏ）には、制御部１１は、そのまま認証処理を継続する。
【００７４】
本変形例によれば、「認証の完了前」の期間が、ＳＥＥＤに対応するＫＥＹ１と、受信したＫＥＹ２とが一致するか否かの判定により、被認証装置が正規な装置であるか否かが判定される時点よりも前の期間であることにより、認証処理が完了するまでの期間を含む。また、「認証の完了前」の期間には、ＫＥＹ２を受信する前の期間も含まれる。制御部１１は、定められた回数以上のＳＥＥＤ要求を、例えば、ＫＥＹ２を受信する前の期間を含む認証の完了前の期間に、被認証装置から受信した場合に、所定のフェイルセーフ処理を実施して、不正な認証の取得を抑制することにより、不当に繰り返して送信されるＳＥＥＤ要求に対する対策を講じることができ、通信による認証の信頼度をより高めることができる。
【００７５】
（第２の実施形態）
次に、第２の実施形態について説明する。第１の実施形態では、所定の回数を超えて繰り返し要求を受けた場合には、ＳＥＥＤを送信しない事例について説明した。これに代えて、本実施形態では、フェイルセーフ処理を実行する以前に送信したＳＥＥＤを送信する第１の事例について説明する。
【００７６】
図１０は、ＫＥＹ待機状態における処理の手順を示すフローチャートである。図８Ａとの相違点を中心に説明する。Ｓ２１からＳ２７までは、前述の図８Ａの説明を参照する。
【００７７】
変数ｋの値が閾値Ｍ以上である場合（Ｓ２７：Ｙｅｓ）には、制御部１１は、変数ｋの値をＭにする（Ｓ２９）。制御部１１は、Ｓ２９において設定された変数ｋの値（Ｍ）に基づいて、つまりＭ回目以降のＳＥＥＤ要求に対するＳＥＥＤの値を、Ｍ回目のＳＥＥＤ要求のＳＥＥＤの値になるように、ＳＥＥＤ決定処理を実行させて（Ｓ２８）、図示される一連の処理を終える。
【００７８】
ＳＥＥＤ要求を含むメッセージを受信していない場合（Ｓ２４：Ｎｏ）には、図示される一連の処理を終え、次に受信するメッセージを待機する。
【００７９】
図１１は、本実施形態のＥＣＵ１０における認証処理の状態遷移図である。図６との相違点を中心に説明する。図１１は、閾値Ｍを３（所定の回数）にした場合を示す。
【００８０】
例えば、ＳＴ２１においてＳＥＥＤを送信した後に認証を完了することなく、２回のＳＥＥＤ要求を受けると、ＳＴ１３のＳＥＥＤ決定処理状態に遷移する。ＳＴ１３にある場合に、制御部１１は、ＳＥＥＤを送信することにより、制御状態をＫＥＹ２の受信待機状態（ＳＴ２３：ＫＥＹ２待）に遷移させる。
【００８１】
次に、制御部１１は、ＳＴ２３にある際に、ＳＥＥＤ要求を受信（要求受信）することにより、図１０に示す処理を実行する。上記のＳＥＥＤ要求は、ＳＴ２１においてＳＥＥＤを送信した後から計数して３回目のＳＥＥＤ要求である。その結果、制御部１１は、図１０のＳ２７における判定により、変数ｋの値（２＋１）が閾値Ｍの値（３）以上である（Ｓ２７：Ｙｅｓ）と判定する。つまり、制御部１１は、前回のＳＥＥＤ要求に応じた処理において、図１０のＳ２９において設定された変数ｋの値に基づいて、制御状態をＳＥＥＤ決定処理状態ＳＴ１３に遷移させて、３回目（Ｍ回目）のＳＥＥＤ要求に応じたＳＥＥＤの値を送信する。以降、制御部１１は、ＳＴ３１に遷移させるための条件が成立するまで、ＳＴ１３とＳＴ２３との間で、上記と同様の判定の結果により、制御状態を遷移させる。制御部１１は、以降ＳＥＥＤ要求を受信しても、ＳＴ１３の状態で送信したＳＥＥＤの値と同一の値をＳＥＥＤの値として送信する。
【００８２】
つまり、制御部１１は、上記のとおり繰り返しＳＥＥＤ要求を受けた場合には、既に送信したＳＥＥＤのうちから選択されるＳＥＥＤを送信するというフェイルセーフ処理を実施する。
【００８３】
上記の実施形態によれば、第１の実施形態と同様の効果を奏することの他に、制御部１１は、所定のフェイルセーフ処理を実行することにより、コード生成部１４が決定するＳＥＥＤの値を、上記の所定のフェイルセーフ処理を実行するまでに送信したＳＥＥＤの値にして、新たなＳＥＥＤの値を送信することを制限することにより、通信による認証の信頼度をより高めることができる。
【００８４】
また、制御部１１は、フェイルセーフ処理を実行する以前に送信したＳＥＥＤの値と同一の値を、ＳＥＥＤの値にすることにより、以前に送信したＳＥＥＤの値とは異なる値の送出を制限して通信による認証の信頼度をより高めることができる。
【００８５】
（第３の実施形態）
次に、第３の実施形態について説明する。第１の実施形態では、所定の回数を超えて繰り返し要求を受けた場合には、ＳＥＥＤを送信しない事例について説明した、これに代えて、本実施形態では、フェイルセーフ処理を実行する以前に送信したＳＥＥＤを送信する第２の事例について説明する。
【００８６】
図１２は、本実施形態におけるＫＥＹ待機状態における処理の手順を示すフローチャートである。図８Ａとの相違点を中心に説明する。Ｓ２１からＳ２７までは、前述の図８Ａの説明を参照する。
【００８７】
変数ｋの値が閾値Ｍ以上であるか否かの判定（Ｓ２７）により、その変数ｋの値が閾値Ｍ以上である場合（Ｓ２７：Ｙｅｓ）には、制御部１１は、変数ｋの値を１にして（Ｓ２９）、要求受付制限フラグを立てる（Ｓ３０）。要求受付制限フラグは、それが立てられている場合に、ＳＥＥＤ要求の受付を制限する状態にあることを示す。
【００８８】
変数ｋの値が閾値Ｍ未満である場合（Ｓ２７：Ｎｏ）、又は、Ｓ３０の処理を終えた後に、制御部１１は、規定に基づいたＳＥＥＤ決定処理を実施して（Ｓ２８）、図示される一連の処理を終える。
【００８９】
なお、ＳＥＥＤを送出した後に、変数ｋの値が閾値Ｍ未満である場合には、要求受付制限フラグが倒された状態にある。この場合、上記の規定に基づいたＳＥＥＤ決定処理において、制御部１１は、下記の処理を実施する。この場合、制御部１１は、コード設置部１４を制御して、変数ｋに対応する回数のＳＥＥＤ要求に応じたＳＥＥＤの値を決定する。
【００９０】
一方、ＳＥＥＤを送出した後に、一旦、変数ｋの値が閾値Ｍ以上になった場合には、要求受付制限フラグが立った状態にある。この場合、上記の規定に基づいたＳＥＥＤ決定処理において、制御部１１は、下記の処理を実施する。この場合、制御部１１は、記憶部１２のコードＤＢを参照して、過去に送信したＳＥＥＤの値から、今回送信するＳＥＥＤの値を決定する。例えば、制御部１１は、変数ｋの値に対応する回数のときに生成したＳＥＥＤの値を、送信するＳＥＥＤの値として選択する。
【００９１】
ＳＥＥＤ要求を受信していない場合（Ｓ２４：Ｎｏ）には、図示される一連の処理を終え、次に受信するメッセージを待機する。
【００９２】
なお、本実施形態では、制御部１１は、Ｓ２３の処理を終えた段階で、要求受付制限フラグを倒す処理を実施する。
【００９３】
図１３は、本実施形態のＥＣＵ１０における認証処理の状態遷移図である。図６との相違点を中心に説明する。図１３は、閾値Ｍを３（所定の回数）にした場合を示す。
【００９４】
例えば、ＳＴ２１においてＳＥＥＤを送信した後に認証を完了することなく、２回のＳＥＥＤ要求を受けると、ＳＴ１３のＳＥＥＤ決定処理状態に至る。ＳＴ１３にある際に、制御部１１は、ＳＥＥＤを送信することにより、制御状態をＫＥＹ２の受信待機状態（ＳＴ２３：ＫＥＹ２待）に遷移させる。
【００９５】
次に、制御部１１は、ＳＴ２３にある際に、３回目のＳＥＥＤ要求を受信（要求受信）することにより、図１２に示す処理を実行する。その結果、制御部１１は、図１２のＳ２７における判定により、変数ｋの値（２＋１）が閾値Ｍの値（３）以上である（Ｓ２７：Ｙｅｓ）と判定する。つまり、制御部１１は、図１２のＳ２９において設定された変数ｋの値（ｋ＝１）に基づいて、制御状態をＳＥＥＤ決定処理状態ＳＴ１１に遷移させて、１回目のＳＥＥＤ要求に応じて送信したＳＥＥＤの値と同じＳＥＥＤの値を送信する。以降、制御部１１は、図６の場合と同様に、制御状態を遷移させる。その過程で、制御部１１は、ＳＴ１１、ＳＴ１２、ＳＴ１３の各状態で送信したＳＥＥＤの値を、それぞれの状態のＳＥＥＤの値として再送する。
【００９６】
つまり、制御部１１は、上記のとおり繰り返し要求を受けた場合には、既に送信したＳＥＥＤのうちから選択されるＳＥＥＤを送信するというフェイルセーフ処理を実施する。
【００９７】
上記の実施形態によれば、第１の実施形態と第２の実施形態と共通する効果を奏する。
【００９８】
（第４の実施形態）
次に、第４の実施形態について説明する。第１から第３の実施形態では、繰り返してＳＥＥＤ要求を受ける回数を固定にした事例について説明した、これに代えて、本実施形態では、繰り返してＳＥＥＤ要求を受ける回数を状態に応じて調整する事例について説明する。
【００９９】
前述の図２Ｂに示すように通信制御部１３は、通信インタフェース１０Ｆを利用してバス２を介した通信の通信量を検出する。
【０１００】
制御部１１は、通信制御部１３からバス２を介した通信の通信量を取得する。通信量とは、例えば、単位時間当たりのパケット数、フレーム数、データ量、バス２の占有率などの一部又は全部である。制御部１１は、通信制御部１３から取得した通信量に基づいて、閾値Ｍを調整する。
【０１０１】
バス２を利用するパケット通信では、単位時間当たりのパケット数、当該パケットのパケットサイズ等に通信量が依存する。通信量が多くなるとパケットの送信に必要とされる時間（バスの占有時間）の全時間に対する比率が高くなる。通信量が所定値を超えると、輻輳が発生し、要求したタイミングで必ずしもパケットが送信できない状況が生じる。上記の状況になると、２つの装置間で通信確立までのシーケンスに係る時間が長びいたり、配信されるまでの時間が超過して廃棄されるパケットが生じたりする。
【０１０２】
そこで、本実施形態の制御部１１は、外部装置５０（被認証装置）と通信するバス２（通信回線）において、単位時間当たりの通信量が所定値より多い場合には、繰り返してＳＥＥＤ要求を受ける回数（定められた回数）の値を、通信量が所定値より少ない場合の値より大きな値にする。
【０１０３】
図１４は、本実施形態における閾値Ｍの調整処理の手順を示すフローチャートである。例えば、通信量をパケット通信のバス２の専有時間と全体時間の比率で表し、通信していない状態の占有率を０％、実際には発生しないがバス２が占有された状態の占有率を１００％とする。
【０１０４】
例えば、通信制御部１３は、通信インタフェース１０Ｆを利用してバス２を介した通信の通信量を検出する（Ｓ４１）。制御部１１は、検出した通信量に基づいて、通信量を示す占有率μを算出する（Ｓ４２）。制御部１１は、占有率μが閾値ＴＨ（例えば、５０％）以上であるか否かを判定する（Ｓ４３）。通信量を示す占有率が閾値ＴＨ未満の場合（Ｓ４３：Ｙｅｓ）に、閾値Ｍの値をＭ１に決定する（Ｓ４４）。例えば、Ｍ１を３とする。
【０１０５】
通信量を示す占有率が閾値ＴＨ以上の場合（Ｓ４３：Ｎｏ）に、閾値Ｍの値をＭ２にする（Ｓ４５）。例えば、Ｍ２を１０とする。なお、Ｍ１は、Ｍ２より値が小さい。
【０１０６】
上記の実施形態によれば、第１の実施形態と同様の効果を奏することの他に、制御部１１は、通信状態に応じて、繰り返してＳＥＥＤ要求を受ける回数（定められた回数）の値を変更する。例えば、制御部１１は、外部装置５０（被認証装置）と通信する通信回線（バス２）において、単位時間当たりの通信量が所定値より多い場合には、繰り返してＳＥＥＤ要求を受ける回数の値を、その通信量が所定値より少ない場合の値より大きな値にすることにより、通信量の大小に応じた最適な認証処理とすることができる。
【０１０７】
（第５の実施形態）
次に、第５の実施形態について説明する。第１から第４の実施形態では、バス２を通信回線として利用する有線通信の事例について説明した、これに代えて、本実施形態では、無線通信の事例について説明する。前述の実施形態との相違点を中心に説明する。
【０１０８】
図１に示す通信システム１は、例えば車両に搭載され、無線により通信可能な領域を有するネットワークＮＷを車両内に形成する。例えば、その通信方式は、ＩＥＥＥ８０２．１１、Ｂｌｕｅｔｏｏｔｈ（登録商標）などである。
【０１０９】
通信システム１が有するＥＣＵには、少なくとも無線通信インタフェース１０Ｄを有し、無線通信を可能とするＥＣＵ１０−１が含まれる。無線通信を可能とするＥＣＵ１０−１は、さらに他のＥＣＵ１０とともに、共通するバス２に接続されていてもよい。
【０１１０】
端末装置６０は、スマートホン等の携帯端末である。端末装置６０は、コンピュータを含み、アプリケーションソフト、ＯＳ等のプログラムをコンピュータに実行させることによって、ＥＣＵ１０−１との無線通信機能を実現する。端末装置６０は、悪意のあるプログラム等が実行されると、不当な通信手順でＳＥＥＤ要求を送信する場合がある。
【０１１１】
これに対しＥＣＵ１０−１は、前述した第１から第４の実施形態に示した手法により、不当な通信手順で送信されるＳＥＥＤ要求に対して、所定のフェイルセーフ処理を実施するように構成してもよい。
【０１１２】
さらに、これに代えてＥＣＵ１０−１は、下記する処理を組み合わせて所定のフェイルセーフ処理を実施してもよい。
【０１１３】
例えば、ＥＣＵ１０−１における通信制御部１３は、無線通信インタフェース１０Ｄを利用して、受信信号強度を検出する。
【０１１４】
制御部１１は、通信制御部１３から、検出した受信信号強度を取得する。制御部１１は、通信制御部１３から取得した受信信号強度に基づいて、閾値Ｍを調整する。
【０１１５】
無線通信では、受信信号強度が低下すると、混信、マルチパス、雑音などの影響を受けて、パケットを正常に受信できない確率が増加する。つまり、受信信号強度が低下すると、再送が必要とされる確率が高くなる。
【０１１６】
そこで、本実施形態の制御部１１は、無線通信インタフェース１０Ｄを利用して検出した受信信号強度が所定値より弱い場合には、繰り返してＳＥＥＤ要求を受ける回数（定められた回数）の値を、受信信号強度が所定値より強い場合の値より大きな値に調整する。
【０１１７】
図１５は、本実施形態における閾値Ｍの調整処理の手順を示すフローチャートである。
【０１１８】
例えば、通信制御部１３は、無線通信インタフェース１０Ｄを利用して、受信信号強度ＲＳＩを検出する（Ｓ５１）。制御部１１は、受信信号強度ＲＳＩが閾値ＴＨ（例えば、５０％）以上であるか否かを判定する（Ｓ５３）。受信信号強度ＲＳＩが閾値ＴＨ未満の場合（Ｓ５３：Ｙｅｓ）に、制御部１１は、閾値Ｍの値をＭ１に決定する（Ｓ５４）。例えば、Ｍ１を３とする。
【０１１９】
通信量を示す受信信号強度ＲＳＩが閾値ＴＨ以上の場合（Ｓ５３：Ｎｏ）に、制御部１１は、閾値Ｍの値をＭ２にする（Ｓ５５）。例えば、Ｍ２を１０とする。なお、Ｍ１は、Ｍ２より値が大きい。
【０１２０】
上記の実施形態によれば、第１の実施形態と同様の効果を奏することの他に、制御部１１は、通信状態に応じて、繰り返してＳＥＥＤ要求を受ける回数（定められた回数）の値を変更する。例えば、制御部１１は、無線通信の受信信号強度ＲＳＩが閾値ＴＨより弱い場合には、繰り返してＳＥＥＤ要求を受ける回数の値Ｍ１を、受信信号強度ＲＳＩが閾値ＴＨより強い場合の値より大きな値Ｍ２にすることにより、通信状態の良し悪し（無線通信強度）に応じた最適な認証処理とすることができる。
【０１２１】
以上説明した少なくとも一つの実施形態によれば、ＥＣＵ１０が、受信したリクエスト信号に基づいてチャレンジコードを送信し、リクエスト信号を送信する被認証装置に対する認証を、当該チャレンジコードと、当該チャレンジコードをもとに生成されるレスポンスコードとに基づいて実施する。ＥＣＵ１０の制御部１１は、チャレンジコードの送信後であって、認証の完了前に、被認証装置からリクエスト信号を定められた回数以上受信した場合に、所定のフェイルセーフ処理を行う。これにより、ＥＣＵ１０は、チャレンジコードのみを要求する命令を繰り返し受信した場合には、他の装置などから攻撃を受けていると判定してもよい。さらに、このような判定をした場合、ＥＣＵ１０は、上記のチャレンジコードに対する要求に対して、（１）決められた手順に従った応答をしない、（２）無応答（ＳＥＥＤを送信しない）、（３）真の手順と異なる応答をする、などのフェイルセーフ処理を実行する。
【０１２２】
以上、本発明を実施するための形態について実施形態を用いて説明したが、本発明はこうした実施形態に何等限定されるものではなく、本発明の要旨を逸脱しない範囲内において種々の変形及び置換を加えることができる。
例えば、上記の各実施形態に示した技術を、適宜組み合わせて実施してもよい。
【符号の説明】
【０１２３】
１‥通信システム、２…バス、３…通信装置、１０、１０−１、１０−２、１０−３…ＥＣＵ（通信装置）、１１…制御部、１２…記憶部、１３…通信制御部、５０…外部装置、６０…端末装置、ＮＷ…ネットワーク
【図１】
2018078516.tif 000003
【図２Ａ】
2018078516.tif 000004
【図２Ｂ】
2018078516.tif 000005
【図３】
2018078516.tif 000006
【図４】
2018078516.tif 000007
【図５】
2018078516.tif 000008
【図６】
2018078516.tif 000009
【図７】
2018078516.tif 000010
【図８Ａ】
2018078516.tif 000011
【図８Ｂ】
2018078516.tif 000012
【図９Ａ】
2018078516.tif 000013
【図９Ｂ】
2018078516.tif 000014
【図１０】
2018078516.tif 000015
【図１１】
2018078516.tif 000016
【図１２】
2018078516.tif 000017
【図１３】
2018078516.tif 000018
【図１４】
2018078516.tif 000019
【図１５】
2018078516.tif 000020