(58)【調査した分野】(Int.Cl.,DB名)
前記車両は、前記1つ又は複数のネットワークを介してCAN(Controller Area Network)プロトコルに従ってフレームの授受を行う複数の電子制御ユニットを搭載する
請求項1記載のセキュリティ装置。
前記出力部は、前記所定条件が満たされると前記判定部が判定した場合において、警告条件が満たされるときに前記第1提示用情報を出力し、当該警告条件が満たされないときに前記第1提示用情報を出力しない
請求項1〜9のいずれか一項に記載のセキュリティ装置。
前記判定部によりフレームについての判定に用いられる前記所定条件は、当該フレームと同一IDを有して先に前記受信部に受信された同種先行フレームと当該フレームとの受信間隔、当該フレームのデータの内容と当該同種先行フレームのデータの内容との差分、及び、当該フレームと異なるIDを有して先に前記受信部に受信された異種先行フレームの内容と当該フレームの内容との相関性のうち、少なくとも1つに関する条件である
請求項7に記載のセキュリティ装置。
【発明を実施するための形態】
【0014】
本発明の一態様に係るセキュリティ装置は、車両内の1つ又は複数のバスに接続されたセキュリティ装置であって、1つの前記バスからフレームを受信する受信部と、前記受信部により受信されたフレームについて、攻撃フレームである可能性の有無を区別するための所定条件が満たされるか否かを判定する判定部と、前記所定条件が満たされると前記判定部が判定した場合に前記車両の外部に所在する外部装置に判定要求が伝達されるように制御して、当該判定要求に応じて当該外部装置から伝達される判定結果を取得する取得部と、前記所定条件が満たされると前記判定部が判定した場合に第1提示用情報を出力し、前記外部装置からの判定結果を前記取得部が取得した場合に第2提示用情報を出力する出力部とを備えるセキュリティ装置である。セキュリティ装置は、攻撃フレームである可能性の有無を区別する所定条件に基づく判定を行った後に、所定条件が満たされていれば外部装置による判定結果を待って攻撃フレームか否かを判定し得る。外部装置に判定要求を送信して外部装置に判定を行わせその判定結果を受信するには一定の時間を要する。上述の構成を有するセキュリティ装置によれば、所定条件が満たされた場合つまり攻撃フレームと疑わしいフレームが送信された場合に、第1提示用情報の出力によって適切な通知がなされ、一定の時間の経過後に外部装置による判定結果が得られた段階で第2提示用情報の出力によって適切な通知がなされるようになる。なお、提示用情報の出力は、直接或いはユーザインタフェースを有する装置等を介して車両の運転者、同乗者その他の人間への通知(情報提示等)に向けられたものである。従って、車両の運転者等がその通知を受けて、適切に対応できるようになり得る。例えば、攻撃フレームと疑わしいフレームが送信された場合において第1提示用情報に基づく通知で運転者等の注意が喚起されると、外部装置を利用してそのフレームが攻撃フレームであると判定できて第2提示用情報に基づく通知がなされた際に、運転者等が円滑に対応可能となり得る。このため、攻撃フレームであることが疑わしいフレームが送信された場合におけるそのフレーム或いはそのフレームに後続するフレームによる悪影響が低減化され得る。
【0015】
また、例えば、前記車両は、前記1つ又は複数のバスを介してCAN(Controller Area Network)プロトコルに従ってフレームの授受を行う複数の電子制御ユニットを搭載することとしても良い。これにより、電子制御ユニット(ECU)間でフレームの授受を行うためのCANに従う車載ネットワークにおいて攻撃フレームが送信された場合に、攻撃フレームの悪影響を低減すべく適切に通知を行うことが可能となり得る。
【0016】
また、例えば、前記セキュリティ装置は、前記車両内の前記複数のバスに接続されたゲートウェイ装置であることとしても良い。これにより、複数のバス間を接続してフレームの転送を行うゲートウェイ装置としてのセキュリティ装置は、いずれかのバスに攻撃フレームが送信された場合に適切に通知を行うことが可能となり得る。
【0017】
また、例えば、前記セキュリティ装置は更に、一のバスから前記受信部により受信されたフレームについて不正条件に該当するか否かを確認する確認部を備え、前記セキュリティ装置は、前記受信部により一のバスから受信されたフレームについて、前記確認部により前記不正条件に該当しないことが確認された場合には当該フレームを他のバスへ転送し、前記確認部により前記不正条件に該当することが確認された場合には当該フレームを転送せず、前記受信部により受信されたフレームについて前記確認部により前記不正条件に該当することが確認された場合には、前記判定部は、前記所定条件が満たされると判定せず、前記出力部は、前記所定条件が満たされると前記判定部が判定した際に前記第1提示用情報を出力することとしても良い。これにより、ゲートウェイ装置としてのセキュリティ装置は、いずれかのバスに送信されたフレームが不正なフレーム(即ち所定のルールに適合しないフレーム)であることが確認された場合にはバス間での転送を抑止することができる。また、いずれかのバスに送信されたフレームが不正なフレームと判定できなくても不正な可能性があるフレームつまり攻撃フレームと疑わしいフレームと判定された場合にはセキュリティ装置は、フレームの転送は行うが、その判定の際に第1提示用情報の出力を行うので、この出力により運転者等に対して適切な通知がなされ得る。例えば、運転者等は、迅速に車両が自らの意図と異なる挙動を引き起こす可能性があることを知り得る。そして、運転者等は、車両の挙動に注意して運転することが可能となる。
【0018】
また、例えば、前記出力部は、前記所定条件が満たされると前記判定部が判定した場合において、警告条件が満たされるときに前記第1提示用情報を出力し、当該警告条件が満たされないときに前記第1提示用情報を出力しないこととしても良い。これにより、攻撃フレームと疑わしいフレームが送信された場合においても、警告を行う必要の有無をフレーム内容等から判別し得る。このため、送信されたフレームによる悪影響が小さい場合等において通知のための出力を行わないことが可能となり、運転者等に不要な警告を与えないことで混乱を防止し得る。
【0019】
また、例えば、前記出力部は、前記外部装置からの判定結果を前記取得部が取得した場合に、前記第1提示用情報と異なる予め定められた複数の相異なる情報のうち、警告条件が満たされるか否かと当該判定結果とに応じて選択した情報を、前記第2提示用情報として出力することとしても良い。これにより、外部装置から判定結果が得られた際における警告を行う必要性に鑑みて適切な情報を出力し得る。このため、外部装置による判定結果に基づいて運転者等に対して適切な通知がなされ得る。
【0020】
また、例えば、前記出力部は、前記警告条件が満たされるか否かを、前記受信部により過去に受信された1つ又は複数のフレームの内容に基づいて判別することとしても良い。これにより、例えば、現在又は一定期間内に近い過去において車両の挙動を異常にするようなフレームが受信されている場合に満たされる等と警告条件を定め得るので、車両の挙動が異常か否か等によって通知内容を変化させ得る。即ち、この構成により、例えば、異常が収まっている状態では、運転者等に過度に注意喚起することのない通知を行い、異常が続いている状態では、運転者等に停車を勧告する等の通知を行うことが可能となり得る。
【0021】
また、例えば、前記外部装置からの前記判定結果は、正常か否かを択一的に示し、前記出力部は、前記外部装置からの判定結果を前記取得部が取得した場合に、前記第1提示用情報と異なる予め定められた複数の相異なる情報のうち、当該判定結果が正常を示すか否かに応じて選択した情報を、前記第2提示用情報として出力することとしても良い。これにより、外部装置による判定結果が得られた際に、第1提示用情報とは別の、その判定結果に基づく第2提示用情報が出力され得る。このように外部装置による判定結果が得られる前後において出力される提示用情報が変化し得るので、例えば、提示用情報に基づく表示を行うディスプレイ等では表示が切り替わり、運転者等に対して適切に情報が通知され得る。
【0022】
また、例えば、前記取得部は、前記外部装置に前記判定要求を送信し、当該判定要求に応じて前記外部装置から送信される判定結果を受信する外部通信部を含むこととしても良い。これにより、セキュリティ装置が外部装置と通信可能となるので、車両においてセキュリティ装置とは別に車両外部との通信装置等を設ける必要がなくなり、例えば通信遅延等が低減され得る。
【0023】
また、例えば、前記出力部は、前記所定条件が満たされると前記判定部が判定した場合に前記車両内の1つのバスに前記第1提示用情報を含むフレームを送信し、前記外部装置からの判定結果を前記取得部が取得した場合に当該1つのバスに前記第2提示用情報を含むフレームを送信することとしても良い。これにより、セキュリティ装置は、自ら提示用情報を提示(表示等)する構成を有さなくても、バスに接続されたECUに提示用情報を送信してそのECUを介して情報を提示させること等で通知を実現し得る。
【0024】
また、例えば、前記判定部によりフレームについての判定に用いられる前記所定条件は、当該フレームと同一IDを有して先に前記受信部に受信された同種先行フレームと当該フレームとの受信間隔、当該フレームのデータの内容と当該同種先行フレームのデータの内容との差分、及び、当該フレームと異なるIDを有して先に前記受信部に受信された異種先行フレームの内容と当該フレームの内容との相関性のうち、少なくとも1つに関する条件であることとしても良い。これにより、セキュリティ装置は、バスに送信されたフレームが攻撃フレームと疑わしいか否かを適切に判定し得る。
【0025】
また、本発明の一態様に係るネットワークシステムは、上述のセキュリティ装置と、前記外部装置と、前記外部装置と通信する通信装置を搭載した前記車両と、前記1つ又は複数のバスと、前記1つ又は複数のバスを介してフレームの授受を行う、前記車両に搭載された複数の電子制御ユニットとを備えるネットワークシステムである。これにより、複数の電子制御ユニット(ECU)で構成される車載ネットワークにおいて攻撃フレームと疑わしいフレームが送信された場合に、第1提示用情報の出力によって適切な通知がなされ、一定の時間の経過後に車両の外部に所在する外部装置による判定結果が得られた段階で第2提示用情報の出力によって適切な通知がなされるようになる。このため、攻撃フレームであることが疑わしいフレームが送信された場合におけるそのフレーム或いはそのフレームに後続するフレームによる悪影響が低減化され得る。
【0026】
また、例えば、前記複数の電子制御ユニットの1つは、情報提示機能を有する所定電子制御ユニットであり、前記出力部は、前記所定条件が満たされると前記判定部が判定した場合に前記所定電子制御ユニットが接続されているバスに前記第1提示用情報を含むフレームを送信し、前記外部装置からの判定結果を前記取得部が取得した場合に前記所定電子制御ユニットが接続されているバスに前記第2提示用情報を含むフレームを送信し、前記所定電子制御ユニットは、前記第1提示用情報を含むフレームを受信した場合に当該第1提示用情報を提示し、前記第2提示用情報を含むフレームを受信した場合に当該第2提示用情報を提示することとしても良い。これにより、車載ネットワークにおいて攻撃フレームと疑わしいフレームが送信された場合に、情報提示機能を有する所定電子制御ユニット(所定ECU)が適切な通知(情報の提示)を行うようになる。
【0027】
また、例えば、前記車両は、当該車両の外部に対して報知を行う報知装置を備え、前記第1提示用情報は、前記報知装置に対して報知を行わせるための制御情報を含み、前記出力部による前記第1提示用情報の出力は、前記第1提示用情報の前記報知装置への送信を含むこととしても良い。報知装置は、例えばサイレン、非常点滅表示灯(ハザードランプ)等であり得る。これにより、車両のバスに攻撃フレームと疑わしいフレームが送信された場合に例えばその車両の周囲を走行中の他の車両等に対して注意を喚起させることが可能となり得る。
【0028】
また、例えば、前記通信装置は、前記セキュリティ装置の前記受信部により受信された各フレームに関するログ情報を前記外部装置に送信し、前記セキュリティ装置の前記取得部は、前記通信装置を介して前記外部装置に前記判定要求を送信し、当該判定要求に応じて前記外部装置から送信される判定結果を、前記通信装置を介して受信し、前記外部装置は、前記判定要求を受信した場合に前記ログ情報に基づいて、前記車両において攻撃フレームが送信されているか否かを判定することで前記判定結果を前記通信装置に送信することとしても良い。これにより、外部装置はフレームに関するログ情報を蓄積し、蓄積したログ情報を分析して適切に判定を行い得る。なお、フレームの情報を用いた判定においても、車両が判定できないことを外部装置が判定可能な場合があり得る。例えば車両が比較的多量のログ情報を蓄積できない場合、その車両以外の車両におけるログ情報等を有さない場合等に対して、外部装置は、複数の車両のログ情報を収集して多量に蓄積し得るものであっても良い。
【0029】
また、例えば、前記外部装置は、前記車両の動作を当該車両の外部から観測して当該車両の動作が正常であるか否かを判定することで前記判定結果を前記通信装置に送信することとしても良い。これにより、車両では判定できないことを外部装置は判定することで、適切にその車両の動作が正常であるか否かを判定し得る。そして、その車両では外部装置による判定結果を利用して攻撃がなされているか否かを適切に判定し得る。従って、その車両において攻撃フレームと疑わしいフレームが送信された場合においてその車両によって適切な通知がなされ得る。
【0030】
また、例えば、前記外部装置は、前記所定条件が満たされると前記判定部が判定した場合に前記車両の周囲に所在する他の車両であることとしても良い。これにより、車両において攻撃フレームと疑わしいフレームが送信された場合においてその車両は周囲の他の車両に判定要求を行って判定結果を得ることにより適切な通知を行い得る。
【0031】
また、本発明の一態様に係る攻撃検知方法は、1つ又は複数のバスを介して複数の電子制御ユニットがフレームの授受を行う車載ネットワークシステムにおいて用いられる攻撃検知方法であって、前記バスからフレームを受信する受信ステップと、前記受信ステップで受信されたフレームについて、攻撃フレームである可能性の有無を区別するための所定条件が満たされるか否かを判定する判定ステップと、前記所定条件が満たされると前記判定ステップで判定された場合に第1提示用情報を提示する第1提示ステップと、前記所定条件が満たされると前記判定ステップで判定された場合に前記車両の外部に所在する外部装置に判定要求が伝達されるように制御して、当該判定要求に応じて当該外部装置から伝達される判定結果を取得する取得ステップと、前記外部装置からの判定結果を前記取得ステップで取得した場合に第2提示用情報を提示する第2提示ステップとを含む攻撃検知方法である。これにより、車両における複数の電子制御ユニット(ECU)で構成される車載ネットワークシステムにおいて攻撃フレームと疑わしいフレームがバスに送信された場合に、第1提示用情報の提示がなされ、一定の時間の経過後に車両の外部に所在する外部装置による判定結果が得られた段階で第2提示用情報の提示がなされる。車両の運転者等は、第1提示用情報及び第2提示用情報を認識することができる。このため、このため、攻撃フレームであることが疑わしいフレームが送信された場合におけるそのフレーム或いはそのフレームに後続するフレームによる悪影響が低減化され得る。
【0032】
なお、これらの全般的又は具体的な態様は、システム、方法、集積回路、コンピュータプログラム又はコンピュータで読み取り可能なCD−ROM等の記録媒体で実現されても良く、システム、方法、集積回路、コンピュータプログラム又は記録媒体の任意な組み合わせで実現されても良い。
【0033】
以下、実施の形態に係るセキュリティ装置の一例としてのゲートウェイ装置を含むネットワークシステムについて、図面を参照しながら説明する。ここで示す実施の形態は、いずれも本発明の一具体例を示すものである。従って、以下の実施の形態で示される数値、構成要素、構成要素の配置及び接続形態、並びに、ステップ(工程)及びステップの順序等は、一例であって本発明を限定するものではない。以下の実施の形態における構成要素のうち、独立請求項に記載されていない構成要素については、任意に付加可能な構成要素である。また、各図は、模式図であり、必ずしも厳密に図示されたものではない。
【0034】
(実施の形態1)
以下、車両に搭載された複数の電子制御ユニット(ECU)がバスを介して通信する車載ネットワーク(車載ネットワークシステム)におけるセキュリティ装置としてのゲートウェイ、及び、その車両と外部装置とを含むネットワークシステム、並びに、そのネットワークシステムで用いられる攻撃検知方法について説明する。攻撃検知方法は、車両に搭載された各ECU間での通信に用いられるバスで不正なフレームである攻撃フレーム(その疑いがあるフレームを含む)が送信されたことを検知して検知結果に応じた通知のための出力を行う方法である。車両に搭載された、車載ネットワークにおけるセキュリティ装置(例えばゲートウェイ装置)は、攻撃検知方法に関連した攻撃の検知のための機能を少なくとも有する装置である。
【0035】
ここでは、自動車内のバスに送信されたフレームが、不正なフレーム(攻撃フレーム)である可能性がありかつそのフレームによって自動車が運転者の意図しない動作を引き起こす可能性があると判定された際に迅速に運転者へ通知を行い、更に、自動車の外部のサーバによる判定結果を受信することで攻撃フレームか否かを判別できるようになった際に、自動車の挙動に応じて通知内容を決定して、運転者へ通知を行うゲートウェイ装置を中心として、ネットワークシステムについて説明する。
【0036】
[1.1 ネットワークシステム100の全体構成]
図1は、本実施の形態に係るネットワークシステム100の全体構成を示す図である。
【0037】
ネットワークシステム100は、自動車500とサーバ400と、これら自動車500及びサーバ400の間の通信路となるネットワーク10とで構成される。ネットワーク10は、インターネット等を含み得る。
【0038】
自動車500は、車内の制御装置、センサ、アクチュエータ、ユーザインタフェース装置等の各種機器に接続されて、車内のバスを介してフレームに係る通信を行う複数の電子制御ユニット(ECU)を含んで構成される車載ネットワークを備える。自動車500内の車載ネットワークでは各ECUはCANプロトコルに従って通信を行う。CANプロトコルにおけるフレームには、データフレーム、リモートフレーム、オーバーロードフレーム及びエラーフレームがあるが、ここでは主としてデータフレームに注目して説明する。なお、CANにおいてデータフレームは、ID(メッセージID)を格納するIDフィールド、データ長を示すDLC(Data Length Code)、データを格納するデータフィールド等を含むように規定されている。
【0039】
車載ネットワークは、具体的には
図1に示すように、自動車500に搭載されたCANバスA101、CANバスB102、及び、CANバスC103を有する。CANバスA101には、ステアリングECU200と速度通知ECU210と、白線角度通知ECU220と、ゲートウェイ300とが接続されている。CANバスB102には、自動操舵指示ECU230とゲートウェイ300とが接続されている。CANバスC103には、ヘッドユニットECU240とゲートウェイ300とが接続されている。なお、車載ネットワークには、
図1に示したECU以外にもいくつものECUが含まれ得るが、ここでは、便宜上、ゲートウェイ300、ステアリングECU200、速度通知ECU210、白線角度通知ECU220、自動操舵指示ECU230、及び、ヘッドユニットECU240に注目して説明を行う。ゲートウェイ300も一種のECUである。ECUは、例えば、プロセッサ(マイクロプロセッサ)、メモリ等のデジタル回路、アナログ回路、通信回路等を含む装置である。メモリは、ROM、RAM等であり、プロセッサにより実行される制御プログラム(ソフトウェアとしてのコンピュータプログラム)を記憶することができる。例えばプロセッサが、制御プログラム(コンピュータプログラム)に従って動作することにより、ECUは各種機能を実現することになる。なお、コンピュータプログラムは、所定の機能を達成するために、プロセッサに対する指令を示す命令コードが複数個組み合わされて構成されたものである。なお、ゲートウェイ300は、自動車500の外部のサーバ400と通信するための通信装置(通信回路等)を備える。
【0040】
ステアリングECU200、速度通知ECU210、白線角度通知ECU220は、それぞれ接続された機器(センサ等)の状態を取得し、周期的に状態を表すフレーム(データフレーム)を、CANバス(CANバスA〜Cのいずれか)に送信している。ゲートウェイ300は、バス間でデータフレームの転送を行う。自動操舵指示ECU230は、白線角度通知ECU220が送信した白線の角度に係るフレームを受け取ると、そのフレームに基づいて自動車500が白線に沿って進行するように調整すべく、ステアリングECU200に次のステアリングの角度を指示するためのフレームをCANバスB102に送信する。
【0041】
ゲートウェイ(ゲートウェイ装置)300は、保持している受信IDリスト(メッセージIDのリスト)に基づいて受信したフレームのIDを確認して、フレームのフィルタリングを行う。また、ゲートウェイ300は、バスを流れるフレームの監視による攻撃の検知のための機能を有し、受信したフレームから抽出したログ情報をサーバ400に送信する。また、ゲートウェイ300は、ID毎に予め定められた受信周期、フレーム内のデータの変化量等に係る判断条件を受信したフレームが満たすか否かに基づいて、不正に送信された疑いのあるフレーム(つまり攻撃フレームと疑わしいフレーム)か否かを判定し、攻撃フレームと疑わしいフレームと判定した場合にはサーバ400に判定を要求(依頼)する。
【0042】
ゲートウェイ300は、例えばCANバスB102から、攻撃フレームと疑わしいフレームを受信し、かつ、そのフレームの転送によって例えばステアリングECU200において制御等がなされることで、自動車500が運転者の意図しない動作を引き起こす可能性があると、予め定められた警告条件に基づいて判定した場合には、ヘッドユニットECU240に警告(運転者に警告を通知する表示等)を指示した上で、そのフレームのCANバスA101への転送を行う。
【0043】
ゲートウェイ300からの判定要求(判定依頼)を受信したサーバ400は、それまでに受信して蓄積しているログ情報を用いて、判定要求に係るフレームについて、受信周期等に基づいて、正常か異常かの判定を行い、判定結果をゲートウェイ300に返信する。ゲートウェイ300は、サーバ400からの判定結果と、現在の自動車500の状態(ステアリングの角度、自動車500の速度等)とに応じて、運転者への通知内容を決定してヘッドユニットECU240に指示する。ヘッドユニットECU240は、ゲートウェイ300からの指示を受けて、例えばインストルメンタルパネル等に設けられたディスプレイ等において通知を行う(運転者に知らせる表示を切り替える)。
図2に、このようなネットワークシステム100の動作例について示している。動作の詳細については後に説明する。
【0044】
[1.2 ECU]
ここでは各ECUについて、それらの構成と生成するフレームの内容とを説明する。なお、ECU間で同一の構成要素については、同一の符号を付加し、説明を適宜省略する。
【0045】
ステアリングECU200は、ID1のフレームを10msの周期で定期的に送信する。ここでは、IDが1であることをID1と表記し、IDが2、3、4、5であることをそれぞれID2、ID3、ID4、ID5と表記する。なお、10msの周期は一例であり、任意の値を決定し、送信して良い。ID1のフレームは操舵角(ステアリングの現在の角度)を示すデータを含む。またステアリングECU200は、自動操舵指示ECU230から送信されるID4のフレームを受信すると、フレーム内のデータが示すステアリングの操舵指示角度に従って、ステアリングの角度を制御する。
【0046】
速度通知ECU210は、ID2のフレームを10msの周期で定期的に送信する。ID2のフレームは、現在の自動車の速度を示すデータを含む。
【0047】
白線角度通知ECU220は、ID3のフレームを10msの周期で定期的に送信する。ID3のフレームは、白線角度(つまり車体前後方向である進行方向と白線との角度差)を示すデータを含む。
【0048】
自動操舵指示ECU230は、ID4のフレームを10msの周期で定期的に送信する。ID4のフレームは、自動操舵角(つまり次のステアリングの角度)を指示するデータを含む。
【0049】
ヘッドユニットECU240は、ゲートウェイ300から送信されるID5のフレームを受信すると、フレーム内のデータが示す表示内容に応じて、例えばインストルメンタルパネル等におけるディスプレイでの表示内容の切り替えを行う。
【0050】
[1.2.1 各ECUで生成されるフレーム]
図3は、各ECUで生成されるフレーム(データフレーム)の一例を示す図である。ID毎にDLCの値は予め定められている。また、データフィールドにおけるデータが示す内容は、ID毎に予め定められている。このデータ等の仕様については、CANプロトコルで規定されておらず、例えば、自動車500の車種、製造者(製造メーカ)等に依存した仕様となる。
【0051】
ここでは、ID1のフレームは、自動車500の現在の操舵角を示し、DLCは2である。
図3ではデータについて16進数で表記しており、データの1桁が4bit分の値を示す。ID1のフレームのデータは、先頭の1桁でステアリングが現在左右のどちらに曲がっているかを表す。0なら左を、1なら右を表す。タイヤが車両前後方向と一致する向きとなるときのステアリングの角度を0度として、データの後半の3桁で、0〜360度を表す。ID2のフレームは、自動車500の現在の速度を示し、DLCは2である。データは、2桁で現在の速度を表す。ID3のフレームは、自動車500の進行方向と、道路面の白線方向との角度差としての白線角度を示し、DLCは2である。ID3のフレームのデータの表し方はID1のフレームと同様である。ID4のフレームは、自動操舵指示(ステアリングを自動で制御する指示)のフレームであり、自動車500の自動操舵角を示し、DLCは2である。ID4のフレームのデータの表し方はID1のフレームと同様である。ID5のフレームは、ヘッドユニットECU240での表示の切り替えに用いられる表示内容を指定する番号(表示切り替え信号)を示し、DLCは1である。ID5のフレームのデータは、2桁で、表示内容を指定する。具体的な表示内容(画面表示)、及び、表示内容を指定する番号については後に、
図9〜
図13を用いて説明する。
【0052】
[1.2.2 ステアリングECU]
図4は、ステアリングECU200の構成図である。ステアリングECU200は、同図に示すように、フレーム送受信部201と、フレーム解釈部202と、受信ID判断部203と、受信IDリスト保持部209と、フレーム生成部208と、制御部205と、自動操舵用モータ206と、ステアリングセンサ207とを含んで構成される。
【0053】
フレーム送受信部201は、接続されているCANバスからフレームを受信するとフレーム解釈部202へ送り、また、フレーム生成部208で生成されたフレームを受け取ると、受け取ったフレームを、接続されているCANバスに送信する。
【0054】
フレーム解釈部202は、フレーム送受信部201から受け取ったフレームからID、DLC、データのそれぞれを区別して抽出し、IDを受信ID判断部203へ送る。フレーム解釈部202は、受信ID判断部203から、受信すべきIDであるという結果を受けるとID、DLC、及び、データを制御部205へ送り、受信すべきIDでないという結果を受けるとフレームを破棄する。
【0055】
受信ID判断部203は、フレーム解釈部202からIDを受け取ると、受信IDリスト保持部209で保持する受信IDリストに基づいて受信すべきIDか否かを判断し、その結果をフレーム解釈部202へ返す。
【0056】
受信IDリスト保持部209は、受信ID判断部203が受信すべきIDか否かを判断するために用いる受信IDリストを保持する。ステアリングECU200では、自動操舵角を示すID4のフレームを受信する受信IDリストを保持する。
【0057】
制御部205は、受け取ったフレームのIDを確認することでそのフレームが自動操舵指示のフレーム(ID4のフレーム)であれば、ステアリングセンサ207より得られた現在のステアリングの角度を参照して自動操舵用モータ206の制御を行う。
【0058】
自動操舵用モータ206は、制御部205からの指示に応じてステアリングを動作させる。
【0059】
ステアリングセンサ207は、10msに1度の周期で自動車500のステアリングの角度を取得し、制御部205とフレーム生成部208とへ伝達する。
【0060】
フレーム生成部208は、10ms毎に、ステアリングセンサ207から伝達された自動車500のステアリングの角度を示すデータを含むID1のフレームを生成して、フレーム送受信部201へ送る。
【0061】
[1.2.3 速度通知ECU]
図5は、速度通知ECU210の構成図である。速度通知ECU210は、同図に示すように、フレーム送受信部201と、フレーム生成部218と、速度センサ211とを含んで構成される。
【0062】
速度センサ211は、自動車500の速度を、10msに1度の周期でフレーム生成部218へ伝達する。
【0063】
フレーム生成部218では、10ms毎に、速度センサ211から伝達された自動車500の速度を示すデータを含むID2のフレームを生成して、フレーム送受信部201へ送る。
【0064】
フレーム送受信部201は、フレーム生成部218で生成されたフレームを受け取ると、受け取ったフレームを、接続されているCANバスに送信する。
【0065】
[1.2.4 白線角度通知ECU]
図6は、白線角度通知ECU220の構成図である。白線角度通知ECU220は、同図に示すように、フレーム送受信部201と、フレーム生成部228と、白線角度検知センサ221とを含んで構成される。
【0066】
白線角度検知センサ221は、自動車500の車体の前後方向である進行方向と道路面の白線との角度差を、一定の周期でフレーム生成部228へ伝達する。
【0067】
フレーム生成部228は、10ms毎に、白線角度検知センサ221から伝達された自動車500と白線との角度差を示すデータを含むID3のフレームを生成して、フレーム送受信部201へ送る。
【0068】
フレーム送受信部201は、フレーム生成部228で生成されたフレームを受け取ると、受け取ったフレームを、接続されているCANバスに送信する。
【0069】
[1.2.5 自動操舵指示ECU]
図7は、自動操舵指示ECU230の構成図である。自動操舵指示ECU230は、同図に示すように、フレーム送受信部201と、フレーム解釈部202と、受信ID判断部203と、受信IDリスト保持部239と、フレーム生成部238と、制御部231とを含んで構成される。
【0070】
受信IDリスト保持部239は、ステアリングECU200からのステアリングの角度を示すID1のフレーム、及び、白線角度通知ECU220からの白線角度を示すID3のフレームを、受信ID判断部203で受信するものと判断させるために、ID1及びID3を含む受信IDリストを保持する。
【0071】
制御部231は、フレーム解釈部202から受け取ったフレームのうち、ID1のフレームのデータが示す操舵角、及び、ID3のフレームのデータが示す白線角度(自動車500の進行方向と道路面の白線の方向との角度差)に基づいて、次のステアリングの角度を決定して指示する。例えば、白線角度(角度差)が左に10度の場合において、例えば、次のステアリングの角度を左に10度等と決定して、その決定した角度を指示するフレームをフレーム生成部238に生成させる。
【0072】
フレーム生成部238は、10ms毎に、制御部231で決定された角度(自動操舵角)を示すデータを含むID4のフレームを生成して、フレーム送受信部201へ送る。
【0073】
[1.2.6 ヘッドユニットECU]
ヘッドユニットECU240は、例えばカーナビゲーション等の機能を含みインストルメンタルパネル等に設けられたディスプレイに各種表示を行うことで、運転者に情報を認識させ得る。
【0074】
図8は、ヘッドユニットECU240の構成図である。ヘッドユニットECU240は、同図に示すように、フレーム送受信部201と、フレーム解釈部202と、受信ID判断部203と、受信IDリスト保持部249と、表示部241と表示内容保持部241aとを含んで構成される。
【0075】
受信IDリスト保持部249は、ゲートウェイ300からの表示切り替え信号を示すID5のフレームを、受信ID判断部203で受信するものと判断させるために、ID5を含む受信IDリストを保持する。
【0076】
表示部241は、ディスプレイ画面に各種表示を行う機能を有し、ゲートウェイ300からの表示内容に対応した番号(表示切り替え信号)を示すID5のフレームがフレーム送受信部201で受信された場合に、表示内容保持部241aで保持する表示内容テーブルに基づいて表示内容を特定してディスプレイ画面の表示を切り替える。
【0077】
表示内容保持部241aは、表示内容テーブルを記憶する。
【0078】
図9は、表示内容保持部241aが記憶する表示内容テーブルの一例を示す図である。表示内容テーブルは、ゲートウェイ300から受信するID5のフレームのデータが示す番号(表示切り替え信号)と、表示内容とを対応付けている。この表示内容テーブルにより、表示部241は、受信したID5のフレームのデータが示す番号が1の場合には、異常なし通知としての表示内容(異常がなかった旨を示すメッセージ等)をディスプレイに表示する。また、受信したID5のフレームのデータが示す番号が2の場合には、表示部241は、警告通知としての表示内容(運転者の意図しない、自動車500の動作への注意を促すメッセージ等)をディスプレイに表示する。また、受信したID5のフレームのデータが示す番号が3の場合には、表示部241は、攻撃検知通知としての表示内容(車載ネットワークにおいて攻撃フレームが送信されたことが検知された旨のメッセージ等)をディスプレイに表示する。また、受信したID5のフレームのデータが示す番号が4の場合には、表示部241は、停車勧告としての表示内容(自動車500を停車させることを勧めるメッセージ等)をディスプレイに表示する。
【0079】
以下、上述した表示部241による具体的な画面表示例について、
図10〜
図13を用いて説明する。
【0080】
図10は、ヘッドユニットECU240における警告通知の表示例を示す。ヘッドユニットECU240により、カーナビゲーション機能による道路地図上での自動車500の位置を示す画面242aがディスプレイに表示されている状態を前提とする。そして、この状態で、ヘッドユニットECU240が、番号を2としたデータを含むID5のフレームを受信すると、ヘッドユニットECU240は、警告通知に係る画面242bをディスプレイに表示させる。番号を2としたデータを含むID5のフレームは、ゲートウェイ300から、運転者の意図しない自動車500の動作を引き起こし得るフレームをCANバス間で転送した際において、CANバスC103に送信される。
【0081】
図11は、ヘッドユニットECU240における異常なし通知の表示例を示す。ヘッドユニットECU240が、上述した画面242bをディスプレイに表示させた後に、番号を1としたデータを含むID5のフレームを受信すると、ヘッドユニットECU240は、異常なし通知に係る画面242cをディスプレイに表示させる。番号を1としたデータを含むID5のフレームは、ゲートウェイ300から、サーバ400での判定結果に基づいて攻撃フレームが送信されていなかったと判定した際においてCANバスC103に送信される。
【0082】
図12は、ヘッドユニットECU240における攻撃検知通知の表示例を示す。ヘッドユニットECU240が、上述した画面242bをディスプレイに表示させた後に、番号を3としたデータを含むID5のフレームを受信すると、ヘッドユニットECU240は、攻撃検知通知に係る画面242dをディスプレイに表示させる。番号を3としたデータを含むID5のフレームは、ゲートウェイ300から、サーバ400での判定結果に基づいて攻撃フレームが送信されていたと判定し、かつ、現在は自動車500において運転者の意図しない動作が起きていないことを確認した際においてCANバスC103に送信される。
【0083】
図13は、ヘッドユニットECU240における停車勧告の表示例を示す。ヘッドユニットECU240が、上述した画面242bをディスプレイに表示させた後に、番号を4としたデータを含むID5のフレームを受信すると、ヘッドユニットECU240は、停車勧告に係る画面242eをディスプレイに表示させる。番号を4としたデータを含むID5のフレームは、ゲートウェイ300から、サーバ400での判定結果に基づいて攻撃フレームが送信されていたと判定し、かつ、現在も自動車500において運転者の意図しない動作が起きていることを確認した際においてCANバスC103に送信される。
【0084】
[1.3 ゲートウェイ]
図14は、ゲートウェイ300の構成図である。なお同図にはサーバ400を付記している。ゲートウェイ300は、バス間でのフレーム転送の機能を実行し、攻撃の検知のための機能を有するセキュリティ装置としても機能する。このためゲートウェイ300は、
図14に示すように、フレーム送受信部301と、フレーム解釈部302と、外部通信部303と、受信ID判断部302aと、受信IDリスト保持部302bと、確認部305と、フォーマットルール保持部305aと、判断部306と、判断ルール保持部306aと、通知部307と、警告ルール保持部307aと、状態記憶部307bと、通知ルール保持部307cと、転送部308と、転送ルール保持部308aと、フレーム生成部304とを含んで構成される。これらの各構成要素は、ゲートウェイ300における通信回路、メモリに格納された制御プログラムを実行するプロセッサ或いはデジタル回路等により実現される。
【0085】
フレーム送受信部301は、CANバスA101、CANバスB102及びCANバスC103のいずれからフレームを受信するとフレーム解釈部302へ送る。また、フレーム送受信部301は、フレーム生成部304で生成されたフレームを受け取ると、転送部308で決められたバスに受け取ったフレームを送信する。
【0086】
フレーム解釈部302は、フレーム送受信部301から受け取ったフレームからID、DLC、データのそれぞれを区別して抽出して、ID、DLC及びデータを外部通信部303へ送り、IDを受信ID判断部302aへ送る。フレーム解釈部302は、受信ID判断部302aから、受信すべきIDであるという結果を受けるとID、DLC及びデータを確認部305と状態記憶部307bとへ送り、受信すべきIDでないという結果を受けると、フレームを破棄する。
【0087】
状態記憶部307bは、フレーム解釈部302から、ID、DLC及びデータを受け取り、IDとデータとを記憶する。状態記憶部307bは例えば、メモリ等の記憶媒体に、ID毎に過去に受け取った複数回分(例えば2回分)のデータを記憶し得る。状態記憶部307bが記憶するデータ等は、通知部307において自動車500の現在の状態を知るために参照される。状態記憶部307bにおいて記憶されるデータについては、
図21を用いて具体例を後に説明する。
【0088】
外部通信部303は、通信装置として機能し得る。外部通信部303は、フレーム解釈部302からID、DLC及びデータを受け取ると、これをログ情報としてサーバ400に送信する。また、判断部306から判定要求(判定依頼)を受け取ると、判定要求をサーバ400に送信する。判定要求は、例えばゲートウェイ300の通信アドレス等を示す情報を含む。サーバ400から判定要求に応じた判定結果を受信すると、判定結果を通知部307へ伝達する。
【0089】
受信ID判断部302aは、フレーム解釈部302からIDを受け取ると、受信IDリスト保持部302bで保持する受信IDリストに基づいて受信すべきIDか否かを判断し、その結果をフレーム解釈部302へ返す。
【0090】
受信IDリスト保持部302bは、受信ID判断部302aが受信すべきIDか否かを判断するために用いる受信IDリストを保持する。この受信IDリストについては後に
図15を用いて説明する。
【0091】
確認部305は、フレーム解釈部302からID、DLC及びデータを受け取ると、フォーマットルール保持部305aで保持するフォーマットルールに基づいてID、DLC及びデータが不正か否かを確認(判定)する。確認部305は、受け取ったID、DLC及びデータが不正でないと判定した場合はそのID、DLC及びデータを判断部306へ送り、その他の場合には、ID、DLC及びデータを、判断部306に伝達せずに破棄する。
【0092】
フォーマットルール保持部305aは、確認部305において、受け取ったID、DLC及びデータが正規のものであるか否かを判定(確認)するための基準となるフォーマットルールを保持する。フォーマットルールは、不正なフレームが満たす不正条件を規定しているとも言える。確認部305により不正条件に該当しないことが確認されたフレームは、ゲートウェイ300においてバス間で転送され、確認部305により不正条件に該当することが確認されたフレームは転送されない(破棄される)ことになる。フォーマットルールについては、
図16を用いて後に説明する。
【0093】
判断部306は、確認部305からID、DLC及びデータを受け取ると、判断ルール保持部306aで保持する判断ルールが示す所定条件が満たされるか否かに基づいて、サーバ400に判定要求を行うべきか否か(つまりそのID、DLC及びデータに係るフレームが攻撃フレームと疑わしいフレームであるか否か)を判定する。判断部306がサーバ400に判定要求を行うべきと判定した場合には、判定要求を外部通信部303へ送り、その判定要求を送る際にはID、DLC及びデータを通知部307へ送る。判断部306は、サーバ400に判定要求を行うべきと判定しなかった場合(つまり該当のフレームが攻撃フレームと疑わしいフレームであると判定しなかった場合)には、ID、DLC及びデータを転送部308へ送る。
【0094】
判断ルール保持部306aは、判断部306において、受け取ったID、DLC及びデータに係るフレームが攻撃フレームと疑わしいフレームであるか否か(サーバに判定要求を行うべきか否か)の判断条件(所定条件)を示す判断ルールを保持する。判断ルールについては、
図17を用いて後に説明する。
【0095】
通知部307は、判断部306からID、DLC及びデータを受け取ると、警告ルール保持部307aで保持する警告ルールが示す警告条件が満たされるか否かに基づいて、ゲートウェイ300が受信したフレームを転送することで自動車500が運転者の意図しない動作を引き起こす可能性があるか否かを判定する。通知部307は、運転者が意図しない動作を引き起こす可能性があると判定した場合(つまり警告条件を満たすと判定した場合)は、ヘッドユニットECU240へ警告通知を指示する番号(通知切り替え信号)を示すID5のフレームを生成するための情報と、受信したID、DLC及びデータとを、転送部308へ送る。通知部307は、運転者が意図しない動作を引き起こす可能性がないと判定した場合(つまり警告条件を満たさないと判定した場合)は、受信したID、DLC及びデータとを、転送部308へ送る。また、通知部307は、サーバ400から受信した判定結果を外部通信部303から受け取ると、現在の自動車500の状態を、状態記憶部307bを参照して、警告ルールが示す警告条件が満たされるか否かに基づいて、通知ルールに従って通知内容に係る番号を決定し、ヘッドユニットECU240へその通知内容を指示する番号(通知切り替え信号)を示すID5のフレームを生成するための情報を転送部308へ送る。
【0096】
警告ルール保持部307aは、通知部307において、受け取ったID、DLC及びデータに係るフレームを転送することで、自動車500が、運転者の意図しない動作を引き起こす可能性があるか否か、或いは、サーバ400からの判定結果が受信された際において自動車500が運転者の意図しない動作を引き起こす可能性がある状態にあるか否かを、判定するための警告条件を示す警告ルールを保持する。警告ルールについては、
図18を用いて後に説明する。
【0097】
通知ルール保持部307cは、通知部307で受け取ったサーバ400からの判定結果と現在の自動車500の状態とから、通知内容を決定するための基準となる通知ルールを保持する。通知ルールについては、
図19を用いて後に説明する。
【0098】
転送部308は、判断部306又は通知部307からID、DLC及びデータを受信すると、転送ルール保持部308aで保持する転送ルールに基づいて、ID毎に定められたバスへ送信する指示と、受信したID、DLC及びデータに対応するフレームの生成指示とをフレーム生成部304へ送る。通知部307からヘッドユニットECU240への指示に係るID5のフレームを生成するための情報を受け取った場合は、CANバスC103へ送信する指示と、そのID5のフレームの生成指示とをフレーム生成部304へ送る。
【0099】
転送ルール保持部308aは、転送部308で受け取ったIDをどのバスへ送信すべきかを示す転送ルールを保持する。転送ルールについては、
図20を用いて後に説明する。
【0100】
フレーム生成部304は、転送部308から受け取ったフレームの生成指示に応じてフレームを生成し、生成したフレームと、指定されたバスへ送信する指示とをフレーム送受信部301へ送る。
【0101】
[1.3.1 ゲートウェイにおける受信IDリスト]
図15は、受信IDリストの一例を示す図である。受信IDリストは、ゲートウェイ300が接続されているバス(CANバスA101、CANバスB102及びCANバスC103)毎に、受信可能なフレームのIDを示す。ゲートウェイ300は、この受信IDリストに示されないIDのフレームを受信した場合にはそのフレームを破棄する(そのフレームについてバス間での転送を行わない)。
【0102】
図15の例の受信IDリストは、CANバスA101から受信できるフレームのIDが1、2、3であり、CANバスB102から受信できるフレームのIDが4であることを示す。
【0103】
[1.3.2 フォーマットルール]
図16は、フォーマットルールの一例を示す図である。フォーマットルールは、フレームのID毎に、正規なフレームのDLCと、データフィールド内のデータが示す値の範囲を規定している。ゲートウェイ300は、フォーマットルールに従って正規なフレームか否(不正なフレーム)かを判定し、不正なフレームを受信した場合には、そのフレームを破棄する(そのフレームについてバス間での転送を行わない)。
【0104】
図16の例のフォーマットルールによれば、ゲートウェイ300は、ID1のフレームに対してDLCが2であり、かつ、データフィールド内のデータが示す操舵角の値の範囲が−360〜360であるフレームのみを正規なフレームと判定し、その他のフレームは不正なフレームと判定する。
【0105】
[1.3.3 判断ルール]
図17は、判断ルールの一例を示す図である。判断ルールは、受信したフレームが攻撃フレームと疑わしいフレームであるか否か(つまりサーバ400に判定要求を行うべきか否か)の判定のための所定条件を示す。
図17の例の判断ルールは、フレームのID毎に、データフィールド内のデータが示す値の変化量の絶対値の閾値、フレームについて規定された周期等を示す。この変化量の絶対値の閾値は、受信したフレームのデータフィールドのデータが示す値と、そのフレームと同じIDの前回受信したフレームのデータフィールドのデータが示す値との差の絶対値の上限である。例えば、この上限を超える場合に所定条件が満たされ、受信したフレームは攻撃フレームと疑わしいフレームであると判定(つまり自動車500の外部に所在する外部装置による判定が必要であると判定)される。即ち、ゲートウェイ300は、受信したフレームについてその前回受信したフレームとの関係で変化量が上限を超える場合に、その受信したフレームが攻撃フレームと疑わしいフレームであると判定し、サーバ400に判定要求を送信する。また、フレームについての規定された周期は、受信したフレームと、そのフレームと同じIDの前回受信したフレームとの受信間隔に関する基準(規定周期)である。例えば、この基準から所定マージン(例えばプラスマイナス1ms等)の範囲を逸脱する場合に所定条件が満たされ、受信したフレームは攻撃フレームと疑わしいフレームであると判定(つまり自動車500の外部に所在する外部装置による判定が必要であると判定)される。即ち、ゲートウェイ300は、受信したフレームについてその前回受信したフレームとの受信間隔がその基準から所定マージンの範囲を逸脱する場合に、その受信したフレームが攻撃フレームと疑わしいフレームであると判定し、サーバ400に判定要求を送信する。
【0106】
図17の例の判断ルールによれば、ゲートウェイ300は、ID1のフレームのデータが示す操舵角について、前回からの更新において変化量の絶対値が200を超えている場合か、ID1のフレームが、規定周期10ms−所定マージンより、短い受信間隔、或いは、規定周期10ms+所定マージンより、長い受信間隔で受信された場合に、不正に送信された疑いのあるフレーム(攻撃フレームと疑わしいフレーム)であると判定する(つまり外部のサーバ400による判定が必要であると判定する)。なお、ゲートウェイ300では、受信間隔を特定するために、受信したフレームの受信時刻をID毎に記憶し得る。
【0107】
[1.3.4 警告ルール]
図18は、警告ルールの一例を示す図である。警告ルールは、自動車500が運転者の意図しない動作を引き起こす可能性がある状態にあるか否かを判定するための警告条件を示す。
図18の例の警告ルールは、フレームのID毎に、データフィールド内のデータが示す値の変化量の絶対値の閾値等を示す。この変化量の絶対値の閾値は、フレームによって更新される値と更新前の値との差の絶対値の上限である。例えば、この上限を超える場合に警告条件が満たされ、自動車500が運転者の意図しない動作を引き起こす可能性がある状態にあると判定される。即ち、ゲートウェイ300は、フレームを受信した際において、受信したフレームについてその前回受信したフレームとの関係で変化量が上限を超える場合に、自動車500が運転者の意図しない動作を引き起こす可能性がある状態にあると判定し、ID5のフレームをヘッドユニットECU240に送信することになる。また、ゲートウェイ300は、サーバ400からの判定結果を受信した際において、例えば状態記憶部307bに記憶している最後に受信したフレームについてその前回受信したフレームとの関係で変化量が上限を超えるか否かにより、自動車500が運転者の意図しない動作を引き起こす可能性がある状態であるか否かを判定し、その判定等に応じて通知内容を決定してID5のフレームをヘッドユニットECU240に送信することになる。
【0108】
図18の例の警告ルールによれば、ゲートウェイ300は、操舵角を示すID1のフレームのデータについて、前回からの更新で変化量の絶対値が90を超えている場合、或いは、自動車の速度を示すID2のフレームのデータについて、前回からの更新で変化量の絶対値が50を超えている場合に、自動車500が、運転者の意図しない動作を引き起こす可能性がある状態にあると判定する。
【0109】
[1.3.5 通知ルール]
図19は、ヘッドユニットECU240へ指示する通知内容の決定の基準となる通知ルールの一例を示す。
図19の通知ルールでは、サーバ400での判定前の場合と、サーバ400から不正(異常)の判定結果を得た場合と正常の判定結果を得た場合とで、通知内容を区別している。なお、サーバ400での判定前の場合においては、警告ルールが示す警告条件が満たされていることが通知部307による通知内容の決定の前提となる。また、サーバ400から不正(異常)の判定結果を得た場合において、警告ルールが示す警告条件が満たされたとき(警告必要のとき)と警告条件が満たされなかったとき(警告不要のとき)とで、通知内容を区別している。
【0110】
図19の例の通知ルールによれば、ゲートウェイ300は、警告が必要と判定されてサーバ400での判定前には、警告通知を指示する2番(
図9参照)の通知切り替え信号を示すデータを含むID5のフレームを、ヘッドユニットECU240に送信することになる。また、ゲートウェイ300は、サーバ400から異常の判定結果を得た際に警告が必要と判定された場合には、停車勧告を指示する4番の通知切り替え信号を示すデータを含むID5のフレームを、ヘッドユニットECU240に送信することになる。また、ゲートウェイ300は、サーバ400から異常の判定結果を得た際に警告が不要と判定された場合には、攻撃検知通知を指示する3番の通知切り替え信号を示すデータを含むID5のフレームを、ヘッドユニットECU240に送信することになる。また、ゲートウェイ300は、サーバ400から正常の判定結果を得た場合には、異常なし通知を指示する1番の通知切り替え信号を示すデータを含むID5のフレームを、ヘッドユニットECU240に送信することになる。
【0111】
[1.3.6 転送ルール]
図20は、転送ルールの一例を示す図である。転送ルールは、対象IDのフレームを転送元バスから受信した場合に限って転送すべきことと、その転送のための転送先バスとを示している。転送ルールにおいて対象ID及び転送元バスの組で示されていない転送は行われない。
【0112】
図20の例の転送ルールによれば、ゲートウェイ300は、例えばID1のフレームをCANバスA101から受信した場合に、CANバスB102とCANバスC103とへ、このフレームを転送する。また、ID5のフレームは、ゲートウェイ300からの送信するフレームであるため、
図20の転送ルールにおいて対応する転送元バスが存在しない。
【0113】
[1.3.7 状態記憶部307bにおいて記憶されるデータ]
図21は、状態記憶部307bにおいて記憶されるデータの一例を示す図である。状態記憶部307bでは、ID毎に、ゲートウェイ300が過去に受信した複数回分のフレームのID及びデータが記憶される。なお、
図21では便宜上ID毎に過去に受信された1つのデータを示している。この例では、現在記憶されているID1のフレームに係るデータが示す操舵角(ステアリングの角度)の値は5であり、ID2のフレームに係るデータが示す自動車の速度の値は40であり、ID3のフレームに係るデータが示す白線角度の値は−8であり、ID4のフレームに係るデータが示す自動操舵角(ステアリングの自動操舵指示に係る角度)の値は5である。
【0114】
[1.3.8 ゲートウェイにおけるフレーム受信対応処理]
図22は、ゲートウェイ300におけるフレーム受信対応処理の一例を示すフローチャートである。以下、同図に即してフレーム受信対応処理について説明する。
【0115】
ゲートウェイ300は、いずれかのバスからフレームを受信し、フレームを解釈する(ステップS301)。ゲートウェイ300は、フレーム内のID、DLC及びデータをログ情報としてサーバ400に送信する(ステップS302)。
【0116】
続いてゲートウェイ300は、受信したフレームが正規なものか否かを、フォーマットルールを用いて確認する(ステップS303)。正規なフレームでない場合(つまり不正なフレームである場合)には、ゲートウェイ300は、受信したフレームを破棄して(ステップS304)、フレーム受信対応処理を終える。なお、不正なフレームであることを確認した場合にゲートウェイ300が、不正検知の旨を運転者等に通知するためにヘッドユニットECU240に対して攻撃検知を通知すべき指示を示すフレームを送信するようにゲートウェイ300を構成しても良い。
【0117】
ステップS303で、受信したフレームがフォーマットルールにより正規と確認された場合に、ゲートウェイ300は、サーバ400での判定が必要か否か(攻撃フレームと疑わしいフレームか否か)を、判断ルールを用いて判定する(ステップS305)。
【0118】
ステップS305でサーバ400での判定が必要でない(攻撃フレームと疑わしいフレームでない)と判定した場合には、ゲートウェイ300は、受信したフレームを転送ルールに従って転送して(ステップS306)、フレーム受信対応処理を終える。
【0119】
ステップS305でサーバ400での判定が必要である(攻撃フレームと疑わしいフレームである)と判定した場合には、ゲートウェイ300は、サーバ400に判定要求(判定依頼)を送信する(ステップS307)。
【0120】
続いて、ゲートウェイ300は、受信したフレームを転送することによって、自動車500が運転者の意図しない動作を引き起こす可能性がある状態にあるか否か(警告が必要か否か)を、警告ルールを用いて判定する(ステップS308)。
【0121】
ステップS308で警告が必要(自動車500が運転者の意図しない動作を引き起こす可能性がある状態にある)と判定した場合には、ゲートウェイ300は、ヘッドユニットECU240に警告通知を行わせるためのID5のフレームを生成し(ステップS309)、CANバスC103にそのフレームを送信する(ステップS310)。
【0122】
ステップS308で警告が必要でない(自動車500が運転者の意図しない動作を引き起こす可能性がある状態にない)と判定した場合に、或いは、ステップS310でのフレームの送信の後に、ゲートウェイ300は、受信したフレームを転送ルールに従って転送する(ステップS311)。
【0123】
[1.3.9 ゲートウェイにおける判定結果受信対応処理]
図23は、ゲートウェイ300における判定結果受信対応処理の一例を示すフローチャートである。以下、同図に即して判定結果受信対応処理について説明する。
【0124】
ゲートウェイ300は、サーバから判定結果を受信すると、異常(不正なフレーム)との判定結果であるか否かを判定する(ステップS321)。
【0125】
ステップS321で、異常との判定結果であった場合には、ゲートウェイ300は、現在、自動車500は運転者の意図しない動作を引き起こす可能性がある状態(例えば意図しない動作を直前に引き起こしている状態等)であるか否かを、状態記憶部307bが記憶しているデータを用いて、警告ルールに基づいて判定する(ステップS322)。
【0126】
ステップS322で、自動車500が運転者の意図しない動作を引き起こす可能性がある状態であると判定した場合には、ゲートウェイ300は、ヘッドユニットECU240で停車勧告を運転者へ通知するように指示するID5のフレームを生成する(ステップS323)。続いてゲートウェイ300は、その生成したID5のフレームをヘッドユニットECU240が接続するCANバスC103に送信し(ステップS324)、判定結果受信対応処理を終える。
【0127】
ステップS322で、自動車500が運転者の意図しない動作を引き起こす可能性がある状態でないと判定した場合には、ゲートウェイ300は、ヘッドユニットECU240で攻撃検知通知を運転者へ通知するように指示するID5のフレームを生成する(ステップS325)。続いてゲートウェイ300は、その生成したID5のフレームをヘッドユニットECU240が接続するCANバスC103に送信し(ステップS324)、判定結果受信対応処理を終える。
【0128】
また、ステップS321で、正常との判定結果であった場合には、ゲートウェイ300は、ヘッドユニットECU240で異常なし通知を運転者へ通知するように指示するID5のフレームを生成する(ステップS326)。続いてゲートウェイ300は、その生成したID5のフレームをヘッドユニットECU240が接続するCANバスC103に送信し(ステップS324)、判定結果受信対応処理を終える。
【0129】
[1.4 サーバ]
サーバ400は、自動車500の外部に所在し、プロセッサ(マイクロプロセッサ)、メモリ、ハードディスク等の記憶媒体、通信回路等を含むコンピュータである。メモリは、ROM、RAM等であり、プロセッサにより実行される制御プログラム(ソフトウェアとしてのコンピュータプログラム)を記憶することができる。
【0130】
図24は、サーバ400の構成図である。なお同図にはゲートウェイ300を付記している。同図に示すようにサーバ400は、受信部401と、判断部402と、ログ記憶部403と、不正判定部404と、送信部405とを含んで構成される。これらの各構成要素は、サーバ400における通信回路、メモリに格納された制御プログラムを実行するプロセッサ等により実現される。
【0131】
受信部401は、ゲートウェイ300から送信されるID、DLC及びデータのセットであるログ情報、或いは、判定要求(判定依頼)を受信する。
【0132】
判断部402は、受信部401がID、DLC及びデータのセットであるログ情報を受信した場合には、そのログ情報をログ記憶部403へ送る。また、判断部402は、受信部401が判定要求を受信した場合には、不正判定部404へ、不正(異常)か正常かを判定すべき旨の指示を出す。
【0133】
ログ記憶部403は、判断部402からID、DLC及びデータのセットであるログ情報を受け取ると、そのログ情報を、受け取った時刻と対応付けて記憶する。不正判定部404からの指示に応じて、記憶している時刻、ID、DLC及びデータを送る。なお、ログ情報は、ゲートウェイ300側でID、DLC及びデータに係るフレームを受信した受信時刻を含めてゲートウェイ300から送信されるものであっても良く、この場合には、サーバ400は、受信時刻を含むログ情報を単に記憶すれば良い。
【0134】
不正判定部404は、判断部402から不正(異常)か正常かを判定する指示を受け取ると、ログ記憶部403へ指示を送ることでログ情報を取得してそのログ情報に基づいて、不正(異常)か否(正常)かを判定する。
【0135】
送信部405は、不正判定部404における判定結果をゲートウェイ300に送信する。
【0136】
[1.4.1 サーバにおける異常判定処理]
図25は、サーバ400における異常判定処理の一例を示すフローチャートである。なお、これはサーバ400においてゲートウェイ300からの判定要求に対応して行う判定の一例に過ぎず、サーバ400は、任意の判定方法を用いた判定を行い得る。
【0137】
サーバ400は、判定要求の契機となったフレームに係る情報を、ログ記憶部403を参照することで取得して、そのフレームのIDに対応した過去の受信時刻からそのフレームの受信周期を確認する(ステップS701)。そして、サーバ400は、蓄積された今までのログ情報に基づいて同じIDのフレームの過去の受信周期のうち一番小さい(短い)周期であったものと比較してそれより、判定要求の契機となったフレームと前回のフレームとの受信間隔である周期が小さいか否かを判定する(ステップS702)。そして、判定要求の契機となったフレームと前回のフレームとの受信間隔である周期が小さい場合には、サーバ400は、不正(異常)と判定し(ステップS703)、その他の場合には正常と判定する(ステップS704)。
【0138】
[1.4.2 サーバの動作]
図26は、サーバ400の動作例を示すフローチャートである。
【0139】
サーバ400は、受信した内容が判定要求(判定依頼)か、ログ情報(ID、DLC及びデータのセット)かを判別する(ステップS401)。
【0140】
判定要求を受信した場合には、サーバ400は、判定要求に係るフレームが不正(異常)か正常かを判定する異常判定処理(
図25)を行う(ステップS700)。続いて、サーバ400は、異常判定処理の結果を判別し(ステップS402)、異常判定処理で正常と判定した場合には、正常の判定結果をゲートウェイ300へ送信する(ステップS403)。また、異常判定処理で異常と判定した場合には、異常(不正)の判定結果をゲートウェイ300へ送信する(ステップS404)。
【0141】
また、ステップS401でログ情報を受信したと判別した場合には、サーバ400は、ID、DLC及びデータのセットであるログ情報に、受信した時刻を対応付けて、メモリ、ハードディスク等の記憶媒体に蓄積する(ステップS405)。
【0142】
[1.5 ネットワークシステムの動作に係るシーケンス]
図2は、ネットワークシステム100の動作例を示すシーケンス図である。この例では、ゲートウェイ300がサーバ400に対して送信するログ情報にゲートウェイ300におけるフレームの受信時刻を含ませている例を用いて説明する。
【0143】
ゲートウェイ300は、接続されている各バスからフレームを受信すると(ステップS1)、ID、DLC、データを抽出して、受信時刻と対応付けてログ情報としてサーバ400へログ情報の送信を行う(ステップS2)。
【0144】
サーバ400は、ゲートウェイ300からログ情報を受信するとそのログ情報を記憶媒体に蓄積する(ステップS3)。
【0145】
ゲートウェイ300は、各バスから受信したフレームが、正規なフォーマットのものか否(不正なフレーム)かを確認する(ステップS4)。不正なフレームと確認した場合には、ゲートウェイ300はそのフレームを破棄して、転送を抑止する(ステップS5)。
【0146】
ステップS4で正規なフォーマットのフレームと確認した場合には、ゲートウェイ300は、そのフレームについてサーバ400で判定する必要があるか否か(つまりそのフレームが攻撃フレームと疑わしいフレームであるか否か)を判定する(ステップS6)。ステップS6で、サーバ400で判定する必要がないと判定した場合には、ゲートウェイ300は、そのフレームを転送ルールに基づいて他のバスへと転送する(ステップS7)。
【0147】
また、受信したフレームについてサーバ400で判定する必要があると判定した場合には、ゲートウェイ300は、判定要求(判定依頼)をサーバ400に送信し(ステップS8)、警告ルールに基づいて警告通知を必要とするか否か(受信したフレームを転送することによって、自動車500が、運転者の意図しない動作を引き起こす可能性がある状態であるか否か)を判定する(ステップS9)。警告通知が必要と判定した場合は、ゲートウェイ300は、ヘッドユニットECU240へ通知に係る指示送信を行い(ステップS10)、これによりヘッドユニットECU240は警告通知を指示するフレームを受信する(ステップS11)。
【0148】
ヘッドユニットECU240は、警告通知の指示を受信した場合に、ディスプレイに警告通知に係る表示を行う(ステップS12)。
【0149】
また、ステップS9の後においてゲートウェイ300は、受信していたフレームを他のバスへ転送する(ステップS13)。
【0150】
サーバ400は、ゲートウェイ300から判定要求(判定依頼)を受信すると、蓄積しているログ情報を用いて、フレームが不正に送信された異常状態であるか否(正常状態)であるかの択一判定である不正判定を行って(ステップS14)、判定結果をゲートウェイ300へ送信する(ステップS15)。
【0151】
ステップS15で判定結果を受信したゲートウェイ300は、通知ルールに基づいて、判定結果と、現在の自動車500が運転者の意図しない動作を引き起こす可能性がある状態であるか否かとに応じて、通知内容を決定する(ステップS16)。ゲートウェイ300は、ステップS16で決定した通知内容を示すフレームをヘッドユニットECU240へ送信する(ステップS17)。
【0152】
ヘッドユニットECU240は、ステップS17で通知内容を示すフレームを受信した場合に、その通知内容に応じてディスプレイの表示内容を切り替える(ステップS18)。
【0153】
[1.6 実施の形態1の効果]
本実施の形態に係るネットワークシステム100では、自動車500における車載ネットワークのゲートウェイ300で受信した不正に送信された疑いのあるフレーム(攻撃フレームと疑わしいフレーム)に対して自動車500の外部のサーバ400へ判定を要求し、このフレームによって自動車500が危険な動作を引き起こす可能性がある状態であるときに注意を喚起する警告を通知するための制御を行う。またゲートウェイ300は、サーバ400からの異常を示す判定結果を受信した場合において、自動車500が、運転者の意図しない動作を引き起こす可能性がある状態であるとき(例えば運転者の意図しない動作を継続しているとき)には、停車勧告を通知するための制御を行う。また、異常の判定結果を受信した場合において自動車500が運転者の意図しない動作を引き起こす可能性がある状態でないときには、不正検知を通知するための制御を行う。
【0154】
これにより、不正に送信された疑いがあるフレームが車載ネットワークのバスを流れているという事実を、運転者に早い段階で知らせることができ、サーバ400での判定結果を踏まえて自動車の挙動に合わせて通知を変えることにより、運転者に有用な通知を行うことができるようになる。
【0155】
(実施の形態2)
以下、上述のネットワークシステム100の一部を変形し、自動車内のバスに送信されたフレームが、不正なフレーム(攻撃フレーム)である可能性がある場合に外部のサーバ400に判定要求を送信するのではなく、その自動車の周囲の他の自動車に判定要求を送信するように構成されたネットワークシステムについて説明する。
【0156】
[2.1 ネットワークシステム100Aの全体構成]
図27は、本実施の形態に係るネットワークシステム100Aの全体構成を示す図である。
【0157】
ネットワークシステム100Aは、自動車A1000内のバスに送信されたフレームが、攻撃フレームと疑わしいフレームでありかつそのフレームによって自動車A1000が運転者の意図しない動作を引き起こす可能性があると判定された際に迅速に運転者へ通知を行い、更に、その自動車A1000の周囲の他の自動車B600による判定を要求して判定結果を受信した際に、判定結果及び自動車A1000の挙動に応じて通知内容を決定して、運転者へ通知を行うようにしたネットワークシステムである。
【0158】
ネットワークシステム100Aは、自動車A1000と自動車B600と、これら自動車間の通信路となるネットワーク20とで構成される。ネットワーク20は、インターネット等を含み得るが、例えば車車間通信において無線信号の授受を直接行うための無線通信路であっても良い。
【0159】
自動車A1000は、車内の制御装置、センサ、アクチュエータ、ユーザインタフェース装置等の各種機器に接続されて、車内のバスを介してフレームに係る通信を行う複数の電子制御ユニット(ECU)を含んで構成される車載ネットワークを備える。車載ネットワークは、具体的には
図27に示すように、自動車A1000に搭載されたCANバスA101、CANバスB102、及び、CANバスC103を有する。CANバスA101には、ステアリングECU200と速度通知ECU210と、白線角度通知ECU220と、ゲートウェイ3001とが接続されている。CANバスB102には、自動操舵指示ECU230とゲートウェイ3001とが接続されている。CANバスC103には、ヘッドユニットECU240とゲートウェイ3001とが接続されている。実施の形態1で説明した構成要素と同じ構成要素については、
図27において
図1と同じ符号を付しており、ここでは説明を適宜省略する。ゲートウェイ3001は、実施の形態1で示したゲートウェイ300を部分的に変形したものであり、ここで特に説明しない点は、ゲートウェイ300と同様である。なお、ゲートウェイ3001は、自動車A1000の周囲(例えば概ね数十m以内等)に所在する自動車(この一例としての自動車B600)と通信するための通信装置(通信回路等)を備える。
【0160】
ゲートウェイ3001は、バス間でデータフレームの転送を行う。また、ゲートウェイ3001は、保持している受信IDリストに基づいて受信したフレームのIDを確認して、フレームのフィルタリングを行う。また、ゲートウェイ3001は、攻撃の検知のための機能を有し、ID毎に予め定められた受信周期、フレーム内のデータの変化量等に係る判断条件を受信したフレームが満たすか否かに基づいて、不正に送信された疑いのあるフレーム(つまり攻撃フレームと疑わしいフレーム)か否かを判定し、攻撃フレームと疑わしいフレームと判定した場合には、周囲に存在する自動車B600に、判定要求(判定依頼)を送信する。具体的には、ゲートウェイ3001は、例えばCANバスB102から、攻撃フレームと疑わしいフレームを受信し、かつ、そのフレームの転送によって例えばステアリングECU200において制御等がなされることで、自動車A1000が運転者の意図しない動作を引き起こす可能性があると、予め定められた警告条件に基づいて判定した場合には、ヘッドユニットECU240に警告(運転者に警告を通知する表示等)を指示した上で、そのフレームのCANバスA101への転送を行う。そして、警告を指示した際にゲートウェイ3001は、自動車A1000の周囲に所在する自動車B600に、自動車A1000の位置情報、ステアリング情報(例えば自動車A1000の進行方向を示す方位情報等)、及び、速度情報を付した判定要求(判定依頼)を送信する。
【0161】
ゲートウェイ3001からの判定要求(判定依頼)を受信した自動車B600(自動車B600の車載機器等)は、判定要求の要求元の自動車A1000が自動車B600にとって危険な存在であるか否か等により、異常か否(正常)かの判定を行って、判定結果を自動車A1000のゲートウェイ3001に返信する。
【0162】
ゲートウェイ3001は、自動車B600からの判定結果と、現在の自動車A1000の状態(ステアリングの角度、自動車A1000の速度等)とに応じて、運転者への通知内容を決定してヘッドユニットECU240に指示する。
図28に、このようなネットワークシステム100Aの動作例について示している。動作の詳細については後に説明する。
【0163】
[2.2 ゲートウェイ]
図29は、ゲートウェイ3001の構成図である。なお同図には自動車B600を付記している。ゲートウェイ3001は、実施の形態1で示したゲートウェイ300と同様に、バス間でのフレーム転送の機能を実行し、攻撃の検知のための機能を有するセキュリティ装置としても機能する。ゲートウェイ3001は、
図29に示すように、フレーム送受信部301と、フレーム解釈部302と、外部通信部303と、位置情報取得部303aと、受信ID判断部302aと、受信IDリスト保持部302bと、確認部305と、フォーマットルール保持部305aと、判断部306と、判断ルール保持部306aと、通知部307と、警告ルール保持部307aと、状態記憶部307bと、通知ルール保持部307cと、転送部308と、転送ルール保持部308aと、フレーム生成部304とを含んで構成される。これらの各構成要素は、ゲートウェイ3001における通信回路、メモリに格納された制御プログラムを実行するプロセッサ或いはデジタル回路等により実現される。なお、
図29に示すゲートウェイ3001の構成要素のうち、実施の形態1で示したゲートウェイ300と同様の構成要素(
図14参照)については、
図14と同一の符号を付しており、ここでは説明を適宜省略する。
【0164】
位置情報取得部303aは、例えばカーナビゲーション等に用いられるGPS(Global Positioning System)受信機等から緯度、経度、高度等の現在の自動車A1000の位置を示す情報を取得して、外部通信部303へ送る。
【0165】
外部通信部303は、判断部306から判定要求(判定依頼)を受け取ると、位置情報取得部303aから取得した位置情報を付して判定要求を、自動車A1000の周囲に所在する自動車B600に送信する。外部通信部303は、判定要求に、位置情報と同様に、自動車A1000の各部のセンサ、ECU等から取得したステアリング情報及び速度情報を付して送信する。なお、本実施の形態では外部通信部303は、フレーム解釈部302から取得したID、DLC及びデータのセットとしてのログ情報の外部への送信を行わない。また、外部通信部303は、自動車B600から判定要求に応じた判定結果を受信すると、判定結果を通知部307へ伝達する。
【0166】
判断部306は、確認部305からID、DLC及びデータを受け取ると、判断ルール保持部306aで保持する判断ルールが示す所定条件が満たされるか否かに基づいて、そのID、DLC及びデータに係るフレームが攻撃フレームと疑わしいフレームであるか否かを判定する。判断部306は、受け取ったフレームが攻撃フレームと疑わしいフレームであると判定した場合に、外部の自動車B600に判定要求を行うべきと判定し得る。但し、本実施の形態に係るゲートウェイ3001の判断部306では、一例として、受け取ったフレームが攻撃フレームと疑わしいフレームでありかつ警告ルール保持部307aが保持する警告ルールが示す警告条件が満たされる場合に限って、自動車B600に判定要求を行うべきと判定することとする。つまり、ゲートウェイ3001の判断部306では、警告ルール保持部307aで保持する警告ルールが示す警告条件が満たされるか否かに基づいて、ゲートウェイ3001が受信したフレームを転送することで自動車A1000が運転者の意図しない動作を引き起こす可能性があるか否かを判定し、運転者の意図しない動作を引き起こす可能性がある場合に限って、自動車B600に判定要求を行うべきと判定する。判断部306が自動車B600に判定要求を行うべきと判定した場合には、判定要求を外部通信部303へ送り、その判定要求を送る際にはID、DLC及びデータを通知部307へ送る。判断部306は、自動車B600に判定要求を行うべきと判定しなかった場合には、ID、DLC及びデータを転送部308へ送る。
【0167】
判断ルール保持部306aは、判断部306において、受け取ったID、DLC及びデータに係るフレームが攻撃フレームと疑わしいフレームであるか否かの判断条件を示す判断ルールを保持する。
【0168】
通知部307は、判断部306からID、DLC及びデータを受け取ると、ヘッドユニットECU240へ警告通知を指示する番号(通知切り替え信号)を示すID5のフレームを生成するための情報と、受信したID、DLC及びデータとを、転送部308へ送る。本実施の形態に係るゲートウェイ3001の通知部307では、警告ルールが示す警告条件が満たされるか否かの判断を直接には行わないが、判断部306によって警告条件が満たされる場合に限ってID、DLC及びデータを伝達されるので、運転者が意図しない動作を引き起こす可能性がある場合に限って、ヘッドユニットECU240へ警告通知を指示に係る制御を行うこととなる。また、通知部307は、自動車B600から受信した判定結果を外部通信部303から受け取ると、現在の自動車A1000の状態を、状態記憶部307bを参照して、警告ルールが示す警告条件が満たされるか否かに基づいて、通知ルールに従って通知内容に係る番号を決定し、ヘッドユニットECU240へその通知内容を指示する番号(通知切り替え信号)を示すID5のフレームを生成するための情報を転送部308へ送る。
【0169】
通知ルール保持部307cは、通知部307で受け取った自動車B600からの判定結果と現在の自動車A1000の状態とから、通知内容を決定するための基準となる通知ルールを保持する。この通知ルールは、
図19に例示したものと同様である。
【0170】
[2.3 ゲートウェイにおけるフレーム受信対応処理]
図30は、ゲートウェイ3001におけるフレーム受信対応処理の一例を示すフローチャートである。以下、同図に即してフレーム受信対応処理について説明する。
【0171】
ゲートウェイ3001は、いずれかのバスからフレームを受信し、フレームを解釈する(ステップS3001)。
【0172】
続いてゲートウェイ3001は、受信したフレームが正規なものか否かを、フォーマットルールを用いて確認する(ステップS3002)。正規なフレームでない場合(つまり不正なフレームである場合)には、ゲートウェイ3001は、受信したフレームを破棄して(ステップS3003)、フレーム受信対応処理を終える。なお、不正なフレームであることを確認した場合にゲートウェイ3001が、不正検知の旨を運転者等に通知するためにヘッドユニットECU240に対して攻撃検知を通知すべき指示を示すフレームを送信するようにゲートウェイ3001を構成しても良い。
【0173】
ステップS3002で、受信したフレームがフォーマットルールにより正規と確認された場合に、ゲートウェイ3001は、そのフレームが攻撃フレームと疑わしいフレームか否かにより、外部の自動車による判定が必要となる条件が成立するか否かを、判断ルールを用いて判定する(ステップS3004)。
【0174】
ステップS3004で外部の自動車での判定が必要でない(攻撃フレームと疑わしいフレームでない)と判定した場合には、ゲートウェイ3001は、受信したフレームを転送ルールに従って転送して(ステップS3005)、フレーム受信対応処理を終える。
【0175】
ステップS3004で外部の自動車での判定が必要である(攻撃フレームと疑わしいフレームである)と判定した場合には、ゲートウェイ3001は、受信したフレームを転送することによって、自動車A1000が運転者の意図しない動作を引き起こす可能性がある状態にあるか否か(警告が必要か否か)を、警告ルールを用いて判定する(ステップS3006)。
【0176】
ステップS3006で警告が必要(自動車A1000が運転者の意図しない動作を引き起こす可能性がある状態にある)と判定した場合には、ゲートウェイ3001は、ヘッドユニットECU240に警告通知を行わせるためのID5のフレームを生成し(ステップS3007)、CANバスC103にそのフレームを送信し(ステップS3008)、また、外部の自動車B600に位置情報、ステアリング情報及び速度情報を付して判定要求(判定依頼)を送信する(ステップS3009)。
【0177】
ステップS3006で警告が必要ないと判定した場合に、或いは、ステップS3009での判定要求の送信の後において、ゲートウェイ3001は、受信したフレームを転送ルールに従って転送する(ステップS3010)。
【0178】
[2.4 ゲートウェイにおける判定結果受信対応処理]
図31は、ゲートウェイ3001における判定結果受信対応処理の一例を示すフローチャートである。以下、同図に即して判定結果受信対応処理について説明する。
【0179】
ゲートウェイ3001は、自動車B600から判定結果を受信すると、異常(自動車B600にとって自動車A1000が危険である状態)との判定結果であるか否かを判定する(ステップS3101)。
【0180】
ステップS3101で、異常との判定結果であった場合には、ゲートウェイ3001は、現在、自動車A1000は運転者の意図しない動作を引き起こす可能性がある状態(例えば意図しない動作を直前に引き起こしている状態等)であるか否かを、状態記憶部307bが記憶しているデータを用いて、警告ルールに基づいて判定する(ステップS3102)。
【0181】
ステップS3102で、自動車A1000が運転者の意図しない動作を引き起こす可能性がある状態であると判定した場合には、ゲートウェイ3001は、ヘッドユニットECU240で停車勧告を運転者へ通知するように指示するID5のフレームを生成する(ステップS3103)。続いてゲートウェイ3001は、その生成したID5のフレームをヘッドユニットECU240が接続するCANバスC103に送信し(ステップS3104)、判定結果受信対応処理を終える。
【0182】
ステップS3102で、自動車A1000が運転者の意図しない動作を引き起こす可能性がある状態でないと判定した場合には、ゲートウェイ3001は、ヘッドユニットECU240で攻撃検知通知を運転者へ通知するように指示するID5のフレームを生成する(ステップS3105)。続いてゲートウェイ3001は、その生成したID5のフレームをヘッドユニットECU240が接続するCANバスC103に送信し(ステップS3104)、判定結果受信対応処理を終える。
【0183】
また、ステップS3101で、正常との判定結果であった場合には、ゲートウェイ3001は、ヘッドユニットECU240で異常なし通知を運転者へ通知するように指示するID5のフレームを生成する(ステップS3106)。続いてゲートウェイ3001は、その生成したID5のフレームをヘッドユニットECU240が接続するCANバスC103に送信し(ステップS3104)、判定結果受信対応処理を終える。
【0184】
[2.5 判定要求に対応する自動車Bの動作例]
図32は、自動車B600における判定要求に対応した動作例(異常判定処理)の一例を示すフローチャートである。なお、これは自動車B600においてゲートウェイ3001からの判定要求に対応して行う判定の一例に過ぎず、自動車B600は、任意の判定方法を用いた判定を行い得る。ここでは、自動車B600は、自動車A1000が自車両にとって危険な状態であるか否かにより異常か否かを判定することとする。以下、
図32に即して異常判定処理について説明する。
【0185】
自動車B600は、自動車A1000から、自動車A1000の位置、速度、進行方向等を示す情報が付された判定要求を受信する(ステップS600)。
【0186】
次に、自動車B600は、自動車A1000の速度が予め定められている閾値以上であるか否かを判定する(ステップS601)。この閾値は、一例としては時速60kmである。ステップS601で、自動車A1000の速度が閾値未満であれば、自動車B600は、正常という判定結果を自動車A1000に送信する(ステップS604)。即ち、自動車A1000の現在の速度が例えば時速60km未満であれば、自動車B600は、自動車B600にとって自動車A1000が危険(異常)でないと判定し、判定要求に対して正常という判定結果を送信する。
【0187】
ステップS601で自動車A1000の速度が予め定められている閾値以上であると判定した場合には、自動車B600は、自動車A1000との距離が予め定められている閾値以下であるか否かを判定する(ステップS602)。この閾値は、一例としては5mである。ステップS602で、自動車A1000との距離が閾値を超えていると判定した場合には、自動車B600は、正常という判定結果を自動車A1000に送信する(ステップS604)。即ち、自動車A1000の位置情報が示す位置と、自動車B600についての現在の位置との距離が5mより離れていれば、自動車B600は、自動車B600にとって自動車A1000が危険(異常)でないと判定し、判定要求に対して正常という判定結果を送信する。
【0188】
ステップS602で自動車A1000との距離が予め定められている閾値以下であると判定した場合には、自動車B600は、自動車A1000の進行方向が自動車B600の方に向いているか否かを判定する(ステップS603)。ステップS603で、自動車A1000の進行方向が自動車B600の方に向いていないと判定した場合には、自動車B600は、正常という判定結果を自動車A1000に送信する(ステップS604)。即ち、自動車A1000の位置と進行方向とが、自動車B600についての現在の位置の方向を示さない場合には、自動車B600は、自動車B600にとって自動車A1000が危険(異常)でないと判定し、判定要求に対して正常という判定結果を送信する。
【0189】
ステップS603で自動車A1000の進行方向が自動車B600の方に向いていると判定した場合には、自動車B600は、異常(危険)という判定結果を自動車A1000に送信する(ステップS605)。
【0190】
[2.6 ネットワークシステムの動作に係るシーケンス]
図28は、ネットワークシステム100Aの動作例を示すシーケンス図である。
【0191】
ゲートウェイ3001は、接続されている各バスからフレームを受信し(ステップS21)、受信したフレームが、正規なフォーマットのものか否(不正なフレーム)かを確認する(ステップS22)。不正なフレームと確認した場合には、ゲートウェイ3001はそのフレームを破棄して、転送を抑止する(ステップS23)。
【0192】
ステップS22で正規なフォーマットのフレームと確認した場合には、ゲートウェイ3001は、そのフレームの影響について外部の自動車で判定する必要があるか否か(つまりそのフレームが攻撃フレームと疑わしいフレームであるか否か)を判定する(ステップS24)。
【0193】
ステップS24で、受信したフレームについて攻撃フレームと疑わしいフレームであると判定した場合には、ゲートウェイ3001は、警告ルールに基づいて警告通知を必要とするか否か(受信したフレームを転送することによって、自動車A1000が、運転者の意図しない動作を引き起こす可能性がある状態であるか否か)を判定する(ステップS25)。
【0194】
ステップS24で外部の自動車で判定する必要がないと判定した場合、或いは、ステップS25で警告通知を必要としないと判定した場合には、ゲートウェイ3001は、そのフレームを転送ルールに基づいて他のバスへと転送する(ステップS26)。
【0195】
ステップS25で、警告通知を必要とすると判定した場合には、ゲートウェイ3001は、ヘッドユニットECU240へ通知に係る指示送信を行い(ステップS27)、これによりヘッドユニットECU240は警告通知を指示するフレームを受信して、ディスプレイに警告通知に係る表示を行う(ステップS28)。また、警告通知を必要とすると判定した場合に、ゲートウェイ3001は、判定要求(判定依頼)を自動車A1000の周囲に存在する自動車B600に送信し(ステップS29)、受信していたフレームを他のバスへ転送する(ステップS30)。
【0196】
自動車B600は、ゲートウェイ3001から判定要求(判定依頼)を受信すると、自動車B600にとって自動車A1000が危険な異常状態であるか否(正常状態)であるかの択一判定である危険判定を行って(ステップS31)、判定結果をゲートウェイ3001へ送信する(ステップS32)。
【0197】
ステップS32で判定結果を受信したゲートウェイ3001は、通知ルールに基づいて、判定結果と、現在の自動車A1000が運転者の意図しない動作を引き起こす可能性がある状態であるか否かとに応じて、通知内容を決定する(ステップS33)。ゲートウェイ3001は、ステップS33で決定した通知内容を示すフレームをヘッドユニットECU240へ送信する(ステップS34)。
【0198】
ヘッドユニットECU240は、ステップS34で通知内容を示すフレームを受信した場合に、その通知内容に応じてディスプレイの表示内容を切り替える(ステップS35)。
【0199】
[2.7 実施の形態2の効果]
本実施の形態に係るネットワークシステム100Aでは、自動車A1000における車載ネットワークのゲートウェイ3001で、不正に送信された疑いのあるフレーム(攻撃フレームと疑わしいフレーム)を受信した際において、自動車A1000が運転者の意図しない動作を引き起こす可能性がある状態である場合に限って、注意を喚起する警告を通知するための制御を行い、かつ、自動車A1000の周囲に存在する外部の装置(他の自動車B600の車載機器等)へ判定を要求する。またゲートウェイ3001は、自動車B600(自動車B600の車載機器等)からの異常(自動車A1000が自動車B600にとって危険であること)を示す判定結果を受信した場合において、自動車A1000が、運転者の意図しない動作を引き起こす可能性がある状態であるとき(例えば運転者の意図しない動作を継続しているとき)には、停車勧告を通知するための制御を行う。また、異常の判定結果を受信した場合において自動車A1000が運転者の意図しない動作を引き起こす可能性がある状態でないときには、不正検知を通知するための制御を行う。
【0200】
これにより、不正に送信された疑いがあるフレームが車載ネットワークのバスを流れているという事実を、運転者に早い段階で知らせることができ、自動車B600による自動車A1000が危険(異常)か否かの判定結果を踏まえて自動車の挙動に合わせて通知を変えることにより、運転者に有用な通知を行うことができるようになる。
【0201】
(他の実施の形態)
以上のように、本発明に係る技術の例示として実施の形態1、2を説明した。しかしながら、本発明に係る技術は、これに限定されず、適宜、変更、置き換え、付加、省略等を行った実施の形態にも適用可能である。例えば、以下のような変形例も本発明の一実施態様に含まれる。
【0202】
(1)上記実施の形態では、車載ネットワークで攻撃フレームと疑わしいフレームを検出した際等において運転者へ注意喚起を図るためにヘッドユニットECU240によりディスプレイへの表示を行う例を示したが(
図10〜
図13参照)、運転者へ伝達すべき提示用情報(警告通知、停車勧告等)を、表示以外の方法(例えばスピーカからの音声再生等)で提示しても良い。また、ネットワークシステムにおける警告通知等の通知方法として、室内灯の点灯状態を変化させることで通知しても良いし、シートベルトの締め付けの強さを変化させることで通知しても良いし、ステアリング或いはペダルを振動させることで通知しても良い。また、
図9で示した異常なし通知、警告通知、攻撃検知通知及び停車勧告といった、通知の内容となる提示用情報の分類は、いかなるように定めても良く、また、具体的な提示内容(例えば表示内容)も、
図10〜
図13に例示したものに限られることはなく、いかなるものであっても良い。
【0203】
(2)上記実施の形態では、自動車における車載ネットワークでのフレームの監視等を行うゲートウェイ300、3001がヘッドユニットECU240と連携して、一定条件下で運転者に対する通知(警告通知等)を行う例を示した。この車載ネットワークは、自動車以外の車両(例えば、二輪車等)に搭載されるものであっても良い。また、通知(警告通知等)の対象は車両の運転者に限られず、車両の乗組員、車両の周囲に所在する装置(他の車両等)であっても良い。なお通知の対象に対する通知は、サーバその他の装置を介して行われても良い。例えば、一の車両の車載ネットワークでのフレームの監視に基づいて一定条件下で他の車両に通知を行うために、一の車両は、非常点滅表示灯の点灯状態を制御する報知装置を備えても良い。また、上記実施の形態では、ゲートウェイ300、3001が外部との通信を行う通信機能(外部通信部)を有することとしたが、車両が、ゲートウェイ300、3001とは別に通信装置(通信部)を有し、ゲートウェイ300、3001はこの通信装置を介して車両の外部と通信することとしても良い。この報知装置、通信装置等を備えるネットワークシステムの一例について
図33に示す。
【0204】
図33は、1つの実施の形態に係るネットワークシステム2000の構成を示す。ネットワークシステム2000は、車両2100と外部装置2200とを備える。
【0205】
車両2100は、バス2190a、バス2190b及びバス2190cに接続されてこれらのバスを監視するセキュリティ装置2110を備え、更に、外部装置2200と通信する通信装置2120と、情報提示機能を有する所定ECU(ヘッドユニット)2140と、各バスに接続されたECU2150a〜2150dと、車両2100の外部に対して報知するための報知装置2130とを備える。報知装置2130は、例えば非常点滅表示灯であり、例えばサイレン等であっても良い。セキュリティ装置2110は、受信部2111、確認部2112、判定部2113、取得部2114及び出力部2115を有する。受信部2111は、上述のフレーム送受信部301の受信機能部分に相当し、1つのバスからフレームを受信する。確認部2112は、上述の確認部305に相当し、一のバスから受信部2111により受信されたフレームについて不正条件に該当するか否かを確認する。判定部2113は、上述の判断部306に相当し、受信部2111により受信されたフレームについて、攻撃フレームである可能性の有無を区別するための所定条件が満たされるか否かを判定する。判定部2113は、受信部2111により受信されたフレームについて確認部2112により不正条件に該当することが確認された場合には、所定条件が満たされると判定しなくても良い。なお、判定部2113によりフレームについての判定に用いられる所定条件は、そのフレームと同一IDを有して先に受信部2111に受信された同種先行フレームと当該フレームとの受信間隔、そのフレームのデータの内容とその同種先行フレームのデータの内容との差分、及び、そのフレームと異なるIDを有して先に受信部2111に受信された異種先行フレームの内容とそのフレームの内容との相関性のうち、少なくとも1つに関する条件である。取得部2114は、所定条件が満たされると判定部2113が判定した場合に外部装置2200に判定要求が伝達されるように通信装置2120を制御して、判定要求に応じて外部装置2200から伝達される判定結果を、通信装置2120を介して取得する。なお、通信装置2120は、セキュリティ装置2110の受信部2111により受信された各フレームに関するログ情報を外部装置2200に送信しても良い。出力部2115は、所定条件が満たされると判定部2113が判定した場合に第1提示用情報(例えば警告通知)を出力し、外部装置2200からの判定結果を取得部2114が取得した場合に第2提示用情報(例えば停車勧告、攻撃検知通知、異常なし通知等)を出力する。第1提示用情報は、報知装置2130に対して報知を行わせるための制御情報を含み、出力部2115による第1提示用情報の出力は、第1提示用情報の報知装置2130への送信を含み得る。出力部2115は、第1提示用情報及び第2提示用情報の出力を、提示(表示、振動の発生、ブザーの鳴動、光の点灯、音声出力等)で行っても良いし、所定ECU2140等への送信(所定ECU2140が接続されたバス2190cへの各提示用情報を含むフレームの送信)により行っても良い。所定ECU2140は、第1提示用情報を含むフレームを受信した場合に第1提示用情報を提示し、第2提示用情報を含むフレームを受信した場合に第2提示用情報を提示する。第1提示用情報の提示タイミングについては、出力部2115は、所定条件が満たされると判定部2113が判定した際に第1提示用情報を出力することとしても良い。出力部2115は、所定条件が満たされると判定部2113が判定した場合において、警告条件(例えば上述の警告ルール保持部307aが保持する警告ルールに基づく条件)が満たされるときに第1提示用情報を出力し、警告条件が満たされないときに第1提示用情報を出力しないこととしても良い。出力部2115は、警告条件が満たされるか否かを、受信部2111により過去に受信された1つ又は複数のフレームの内容に基づいて判別することとしても良い。出力部2115は、外部装置2200からの判定結果を取得部2114が取得した場合に、第1提示用情報と異なる予め定められた複数の相異なる情報のうち、その判定結果が正常を示すか否かに応じて選択した情報を、第2提示用情報として出力することとしても良い。また、出力部2115は、外部装置2200からの判定結果を取得部2114が取得した場合に、第1提示用情報と異なる予め定められた複数の相異なる情報のうち、警告条件が満たされるか否かとその判定結果とに応じて選択した情報を、第2提示用情報として出力することとしても良い。なお、セキュリティ装置2110は、ゲートウェイ装置であり得るが、必ずしもゲートウェイ装置でなくても良い。
【0206】
外部装置2200は、車両2100からの判定要求を受信して異常か否かの判定を行って判定結果を車両2100に送信する装置であり、サーバ(例えばサーバ400)、車両2100の周囲に所在する他の車両(例えば自動車B600)、車両2100の周囲に所在する路側機、信号機等であり得る。車両2100は、自動車、二輪車等であり、車内の制御装置、センサ、アクチュエータ、ユーザインタフェース装置等の各種機器に接続されて、車内のバスを介してフレームに係る通信を行う複数のECUを含んで構成される車載ネットワークを備える。
【0207】
外部装置2200は、判定要求を受信した場合にログ情報に基づいて、車両において攻撃フレームが送信されているか否かを判定することで判定結果を通信装置2120に送信する装置であり得る。判定結果は、例えば、正常か否(異常)かを択一的に示す。外部装置2200は、車両の動作をその車両の外部から観測してその車両の動作が正常であるか否かを判定することで判定結果を通信装置2120に送信する装置であっても良く、所定条件が満たされると判定部2113が判定した場合に車両2100の周囲に所在する他の車両であり得る。
【0208】
(3)上記実施の形態では、不正に送信された疑いのあるフレーム(攻撃フレームと疑わしいフレーム)の判定に用いる判断ルールとして、フレームの受信周期(送信周期)或いはデータフィールドの値の変化量に関するルールを例示したが、CANのフレームのいかなる性質を用いて攻撃フレームと疑わしいフレームか否かの判定を行うこととしても良い。
【0209】
(4)上記実施の形態では、サーバ或いは他の自動車に判定要求を送信して判定結果を受信した際に、通知内容を決定するだけ(つまり通知を切り替えるだけ)であったが、判定要求の契機となったフレームと同一IDのフレームを、バス間で転送しないようにするためにゲートウェイ300、3001で保持するルールの追加、更新等を行っても良い。
【0210】
(5)上記実施の形態2では、自動車B600は、自動車A1000から受信した判定要求に付された位置、速度、進行方向等の情報に基づいて異常か否かの判定を行うこととしたが、自動車B600におけるセンサ等の車載機器を用いて自動車A1000の位置、速度或いは進行方向を測定してその測定結果を用いてステップS601〜S603での各判定を行うこととしても良い。例えば、自動車B600は、自動車A1000から判定要求として予め定められた無線信号を受信した場合における電波強度の観測により判定要求元の自動車A1000の位置等を特定しても良い。
【0211】
(6)上記実施の形態では、CANプロトコルに従って通信する車載ネットワークを示した。このCANプロトコルは、CANFD(CAN with Flexible Data Rate)等の派生的なプロトコルも包含する広義の意味のものと扱われるべきである。また、ネットワークシステムにおいては、CANプロトコル以外の通信プロトコル、例えば、Ethernet(登録商標)や、MOST(登録商標)、FlexRay(登録商標)等を用いても良い。
【0212】
(7)上記実施の形態で示した各種処理の手順(例えば
図2、
図22、
図23、
図25、
図26、
図28、
図30〜
図32に示した手順等)の実行順序は、必ずしも、上述した通りの順序に制限されるものではなく、発明の要旨を逸脱しない範囲で、実行順序を入れ替えたり、複数の手順を並列に行ったり、その手順の一部を省略したりすることができる。
【0213】
(8)上記実施の形態におけるゲートウェイその他のECUは、例えば、プロセッサ、メモリ等のデジタル回路、アナログ回路、通信回路等を含む装置であることとしたが、ハードディスク装置、ディスプレイ、キーボード、マウス等の他のハードウェア構成要素を含んでいても良い。また、メモリに記憶された制御プログラムがプロセッサにより実行されてソフトウェア的に機能を実現する代わりに、専用のハードウェア(デジタル回路等)によりその機能を実現することとしても良い。
【0214】
(9)上記実施の形態における各装置を構成する構成要素の一部又は全部は、1個のシステムLSI(Large Scale Integration:大規模集積回路)から構成されているとしても良い。システムLSIは、複数の構成部を1個のチップ上に集積して製造された超多機能LSIであり、具体的には、マイクロプロセッサ、ROM、RAM等を含んで構成されるコンピュータシステムである。前記RAMには、コンピュータプログラムが記録されている。前記マイクロプロセッサが、前記コンピュータプログラムに従って動作することにより、システムLSIは、その機能を達成する。また、上記各装置を構成する構成要素の各部は、個別に1チップ化されていても良いし、一部又は全部を含むように1チップ化されても良い。また、ここでは、システムLSIとしたが、集積度の違いにより、IC、LSI、スーパーLSI、ウルトラLSIと呼称されることもある。また、集積回路化の手法はLSIに限るものではなく、専用回路又は汎用プロセッサで実現しても良い。LSI製造後に、プログラムすることが可能なFPGA(Field Programmable Gate Array)や
、LSI内部の回路セルの接続や設定を再構成可能なリコンフィギュラブル・プロセッサを利用しても良い。更には、半導体技術の進歩又は派生する別技術によりLSIに置き換わる集積回路化の技術が登場すれば、当然、その技術を用いて機能ブロックの集積化を行っても良い。バイオ技術の適用等が可能性としてあり得る。
【0215】
(10)上記各装置を構成する構成要素の一部又は全部は、各装置に脱着可能なICカード又は単体のモジュールから構成されているとしても良い。前記ICカード又は前記モジュールは、マイクロプロセッサ、ROM、RAM等から構成されるコンピュータシステムである。前記ICカード又は前記モジュールは、上記の超多機能LSIを含むとしても良い。マイクロプロセッサが、コンピュータプログラムに従って動作することにより、前記ICカード又は前記モジュールは、その機能を達成する。このICカード又はこのモジュールは、耐タンパ性を有するとしても良い。
【0216】
(11)本発明の一態様としては、例えば
図22、
図23、
図30、
図31等に示す処理手順の全部又は一部を含む攻撃検知方法であるとしても良い。例えば、攻撃検知方法は、1つ又は複数のバスを介して複数の電子制御ユニットがフレームの授受を行う車載ネットワークシステムにおいて用いられる攻撃検知方法であって、バスからフレームを受信する受信ステップと、受信ステップで受信されたフレームについて、攻撃フレームである可能性の有無を区別するための所定条件が満たされるか否かを判定する判定ステップ(例えばステップS305、S3004)と、所定条件が満たされると判定ステップで判定された場合に第1提示用情報を提示する第1提示ステップ(例えばステップS309、S310、S3007、S3008)と、所定条件が満たされると判定ステップで判定された場合に車両の外部に所在する外部装置に判定要求が伝達されるように制御して、その判定要求に応じて外部装置から伝達される判定結果を取得する取得ステップ(例えばS307、S3009等)と、外部装置からの判定結果を取得ステップで取得した場合に第2提示用情報を提示する第2提示ステップ(例えばステップS323〜S326、S3103〜S3106)とを含む。また、本発明の一態様としては、この攻撃検知方法に係る処理をコンピュータにより実現するコンピュータプログラムであるとしても良いし、前記コンピュータプログラムからなるデジタル信号であるとしても良い。また、本発明の一態様としては、前記コンピュータプログラム又は前記デジタル信号をコンピュータで読み取り可能な記録媒体、例えば、フレキシブルディスク、ハードディスク、CD−ROM、MO、DVD、DVD−ROM、DVD−RAM、BD(Blu-ray(登録商標) Disc)、半導体メモリ等に記録したものとしても良い。また、これらの記録媒体に記録されている前記デジタル信号であるとしても良い。また、本発明の一態様としては、前記コンピュータプログラム又は前記デジタル信号を、電気通信回線、無線又は有線通信回線、インターネットを代表とするネットワーク、データ放送等を経由して伝送するものとしても良い。また、本発明の一態様としては、マイクロプロセッサとメモリを備えたコンピュータシステムであって、前記メモリは、上記コンピュータプログラムを記録しており、前記マイクロプロセッサは、前記コンピュータプログラムに従って動作するとしても良い。また、前記プログラム若しくは前記デジタル信号を前記記録媒体に記録して移送することにより、又は、前記プログラム若しくは前記デジタル信号を、前記ネットワーク等を経由して移送することにより、独立した他のコンピュータシステムにより実施するとしても良い。
【0217】
(12)上記実施の形態及び上記変形例で示した各構成要素及び機能を任意に組み合わせることで実現される形態も本発明の範囲に含まれる。