(57)【要約】【課題】不正アクセスおよび認証ロジックの解析が困難であり、拡張性に優れ、状況の変化に応じて適度な難読化を行う、改善された通信システム、通信方法、プログラム、および非一時的記録媒体を提供する。【解決手段】本開示の一態様に係る通信システムは、ネットワークに接続された複数のノードを備える通信システムであって、複数のノードの各ノードは、複数のノードの他ノードから受信したメッセージの正当性を認証するのに用いられる認証ロジックが複数のノードの間で同一となるように、認証ロジックを複数の認証ロジックの間で切り替える認証ロジック切替制御部と、認証ロジックを用いてメッセージの正当性を認証するメッセージ認証部と、を備える構成を採る。【選択図】図３
2018125659.tif 000002
【特許請求の範囲】
【請求項１】
ネットワークに接続された複数のノードを備える通信システムであって、前記複数のノードの各ノードは、
前記複数のノードの他ノードから受信したメッセージの正当性を認証するのに用いられる認証ロジックが前記複数のノードの間で同一となるように、前記認証ロジックを複数の認証ロジックの間で切り替える認証ロジック切替制御部と、
前記認証ロジックを用いて前記メッセージの正当性を認証するメッセージ認証部と、
を備える、通信システム。
【請求項２】
前記複数のノードの少なくとも１つのノードが、車両が置かれた状況の危険度を示すリスクレベルを決定するリスクレベル決定部を備え、
前記複数のノードの前記認証ロジック切替制御部は、前記リスクレベルに応じて前記認証ロジックを切り替える、請求項１に記載の通信システム。
【請求項３】
前記複数のノードの前記認証ロジック切替制御部は、より高い前記リスクレベルに対して、より複雑度の高い前記認証ロジックに切り替える、請求項２に記載の通信システム。
【請求項４】
前記複数のノードの少なくとも１つのノードが、前記通信システムにおけるセキュリティリスクを検出するセキュリティリスク検出部を備え、
前記リスクレベル決定部は、検出された前記セキュリティリスクに対して前記リスクレベルを決定する、請求項２または３に記載の通信システム。
【請求項５】
前記セキュリティリスクは、乗っ取りまたはなりすましである、請求項４に記載の通信システム。
【請求項６】
前記車両に関する状態である車両状態を検出する車両状態検出部を備え、
前記リスクレベル決定部は、前記車両状態に応じて前記リスクレベルを決定する、請求項２から５のいずれかに記載の通信システム。
【請求項７】
前記車両状態は、車速を含み、
前記リスクレベル決定部は、前記車速が大きいほどより高い前記リスクレベルを決定する、請求項６に記載の通信システム。
【請求項８】
前記車両の走行経路を決定する走行経路決定部を備え、
前記リスクレベル決定部は、前記車両が前記車両状態によって前記走行経路を維持することが可能であるか否かを判定することにより、前記リスクレベルを決定する、請求項６または７に記載の通信システム。
【請求項９】
前記車両状態は、前記車両の直進または蛇行を含み、
前記走行経路が直線経路である場合、前記蛇行に応じて決定される前記リスクレベルは、前記直進に応じて決定される前記リスクレベルより高い、請求項８に記載の通信システム。
【請求項１０】
前記車両状態は、前記車両の直進または蛇行を含み、
前記走行経路が曲線経路である場合、前記直進に応じて決定される前記リスクレベルは、前記蛇行に応じて決定される前記リスクレベルより高い、請求項８に記載の通信システム。
【請求項１１】
前記車両状態検出部は、前記車両の進行方向の障害物を検出するセンサを備え、
前記リスクレベル決定部は、前記走行経路上にある前記障害物に応じて、前記リスクレベルを決定する、請求項８から１０のいずれかに記載の通信システム。
【請求項１２】
前記認証ロジックは、認証キーと、前記認証キーを用いて前記メッセージに対するメッセージ認証符号値を算出するために用いる算出ロジックと、を含み、
前記メッセージ認証部は、前記認証キーおよび前記算出ロジックを用いて前記メッセージに対して算出された前記メッセージ認証符号値の少なくとも一部が前記メッセージに含まれるメッセージ認証符号値の少なくとも一部と一致するか否かを判定することにより、前記メッセージの正当性を認証する、請求項１から１１のいずれかに記載の通信システム。
【請求項１３】
前記複数のノードの少なくとも１つのノードが、認証キーの更新を指示する認証キー更新指示部を備え、
前記少なくとも１つのノードの前記認証ロジック切替制御部は、前記指示に応じて前記認証キーを切り替える、請求項１２に記載の通信システム。
【請求項１４】
前記認証ロジック切替制御部は、前記認証ロジックの切り替えを指示する情報の前記他ノードからの受信に応じて、前記認証ロジックを切り替える、請求項１から１３のいずれかに記載の通信システム。
【請求項１５】
ネットワークに接続された複数のノードを備える通信システムにおける通信方法であって、
前記複数のノードの他ノードから受信したメッセージの正当性を認証するのに用いられる認証ロジックが前記複数のノードの間で同一となるように、前記認証ロジックを複数の認証ロジックの間で切り替えるステップと、
前記認証ロジックを用いて前記メッセージの正当性を認証するステップと、
を備える、通信方法。
【請求項１６】
ネットワークに接続された複数のノードを備える通信システムにおいて、前記複数のノードがそれぞれ備えるコンピュータに、
前記複数のノードの他ノードから受信したメッセージの正当性を認証するのに用いられる認証ロジックが前記複数のノードの間で同一となるように、前記認証ロジックを複数の認証ロジックの間で切り替えるステップと、
前記認証ロジックを用いて前記メッセージの正当性を認証するステップと、
を実行させる、プログラム。
【請求項１７】
コンピュータ読み取り可能なプログラムを記録した非一時的記録媒体であって、
ネットワークに接続された複数のノードを備える通信システムにおいて、前記複数のノードがそれぞれ備えるコンピュータに、
前記複数のノードの他ノードから受信したメッセージの正当性を認証するのに用いられる認証ロジックが前記複数のノードの間で同一となるように、前記認証ロジックを複数の認証ロジックの間で切り替えるステップと、
前記認証ロジックを用いて前記メッセージの正当性を認証するステップと、
を実行させる、プログラムを記録した非一時的記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、通信システム、通信方法、プログラム、および非一時的記録媒体に関する。
【背景技術】
【０００２】
近年、車両の電装化に伴い、ＣＡＮ（Controller Area Network）、ＬＩＮ（Local Interconnect Network）、ＦｌｅｘＲａｙ、Ｍｏｓｔ（Media oriented systems transport）等の車載ＬＡＮを用いる通信の重要性が、ますます高まっている。これに伴い、車載ＬＡＮに接続されたモジュールを介した外部からの不正アクセス等に対する防御機能のニーズが高まっており、防御機能を備える車載ＬＡＮの通信要件が数多く提案されている（特許文献１、特許文献２）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１３−０９８７１９号公報
【特許文献２】特開２０１６−１５８２０４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、特許文献１に記載のロジックは、単純であり、パラメータが固定されたメッセージに絞られることによって、認証ロジックが解析され易く、不正アクセスを招来し易い問題がある。また、特許文献１および特許文献２においては、車載ＬＡＮであるＣＡＮに接続されたＥＣＵ（Electronic Control Unit）のＣＡＮ  ＩＤ毎に、各ＥＣＵがカウンタを備える必要があり、管理が複雑になり、システムの拡張性が低くなる問題がある。また、カウンタが多くなるのに伴い、通信エラーなどにより発生する同期ずれが多くなり、不正なメッセージの認証成功確率が高くなるという問題がある。
【０００５】
さらに、特許文献１および特許文献２においては、難読化のレベルが常に一定であるため、必要以上の難読化または不十分な難読化となる場合が発生してしまう問題がある。
【０００６】
本開示の目的は、不正アクセスおよび認証ロジックの解析が困難であり、拡張性に優れ、状況の変化に応じて適度な難読化を行う、改善された通信システム、通信方法、プログラム、および非一時的記録媒体を提供することである。
【課題を解決するための手段】
【０００７】
本開示の一態様に係る通信システムは、ネットワークに接続された複数のノードを備える通信システムであって、前記複数のノードの各ノードは、前記複数のノードの他ノードから受信したメッセージの正当性を認証するのに用いられる認証ロジックが前記複数のノードの間で同一となるように、前記認証ロジックを複数の認証ロジックの間で切り替える認証ロジック切替制御部と、前記認証ロジックを用いて前記メッセージの正当性を認証するメッセージ認証部と、を備える構成を採る。
【０００８】
本開示の一態様に係る通信方法は、ネットワークに接続された複数のノードを備える通信システムにおける通信方法であって、前記複数のノードの他ノードから受信したメッセージの正当性を認証するのに用いられる認証ロジックが前記複数のノードの間で同一となるように、前記認証ロジックを複数の認証ロジックの間で切り替えるステップと、前記認証ロジックを用いて前記メッセージの正当性を認証するステップと、を備える構成を採る。
【０００９】
本開示の一態様に係るプログラムは、ネットワークに接続された複数のノードを備える通信システムにおいて、前記複数のノードがそれぞれ備えるコンピュータに、前記複数のノードの他ノードから受信したメッセージの正当性を認証するのに用いられる認証ロジックが前記複数のノードの間で同一となるように、前記認証ロジックを複数の認証ロジックの間で切り替えるステップと、前記認証ロジックを用いて前記メッセージの正当性を認証するステップと、を実行させる、構成を採る。
【００１０】
本開示の一態様に係る非一時的記録媒体は、コンピュータ読み取り可能なプログラムを記録した非一時的記録媒体であって、ネットワークに接続された複数のノードを備える通信システムにおいて、前記複数のノードがそれぞれ備えるコンピュータに、前記複数のノードの他ノードから受信したメッセージの正当性を認証するのに用いられる認証ロジックが前記複数のノードの間で同一となるように、前記認証ロジックを複数の認証ロジックの間で切り替えるステップと、前記認証ロジックを用いて前記メッセージの正当性を認証するステップと、を実行させる、プログラムを記録する構成を採る。
【発明の効果】
【００１１】
本開示によれば、不正アクセスおよび認証ロジックの解析が困難であり、拡張性に優れ、状況の変化に応じて適度な難読化を行う、改善された通信システム、通信方法、プログラム、および非一時的記録媒体を提供することができる。
【図面の簡単な説明】
【００１２】
【図１】本開示に係る通信システムの説明図である。
【図２】本開示に係るマスタノードの構成図である。
【図３】本開示に係るスレーブノードの構成図である。
【図４】本開示に係るセキュリティリスクに対するマスタノードの動作フローを示すフローチャートである。
【図５】セキュリティリスクのリスクレベルと認証ロジックとの間の関係の説明図である。
【図６】本開示に係る車両状態の変化に対するマスタノードの動作フローを示すフローチャートである。
【図７】車両状態のリスクレベルと認証ロジックとの間の関係の説明図である。
【図８】コンピュータのハードウェア構成の一例を示す図である。
【発明を実施するための形態】
【００１３】
以下、本開示の実施の形態について、図面を参照して詳細に説明する。
【００１４】
（第１の実施の形態）
図１は、本開示に係る通信システム１０００の説明図である。図２は、本開示に係るマスタノード１００Ａの構成図である。図３は、本開示に係るスレーブノード１００Ｂの構成図である。図１から図３において、同一の符号が付された構成要素は、同一の構成要素を表す。
【００１５】
通信システム１０００は、複数のノード１００（１００−１，１００−２，…，１００−ｎ）と、ネットワーク２００とを備える。複数のノード１００は、それぞれが備える送受信器１１０（１１０−１，１１０−２，…，１１０−ｎ）を介して、ネットワーク２００に接続される。
【００１６】
通信システム１０００は、車両に設けられるＬＡＮ（車載ＬＡＮ）である。車載ＬＡＮは、例えば、ＣＡＮ、ＬＩＮ、ＦｌｅｘＲａｙ、Ｍｏｓｔである。ノード１００は、例えば、ＥＣＵである。一例において、ネットワーク２００は、例えば、図１に示されるように、ＣＡＮバスやＬＩＮバス等のバス型ネットワークである。他の一例において、ネットワーク２００は、ＦｌｅｘＲａｙネットワーク等のスター型ネットワーク、Ｍｏｓｔネットワーク等のリング型ネットワークである。
【００１７】
一例において、複数のノード１００は、その全てが、車速等の車両状態や、通信システム１０００におけるセキュリティ侵害等のセキュリティリスクを監視するマスタノード１００Ａである。この場合、複数のノード１００は、マルチマスタ構成をとる。この場合、マスタノード１００Ａは、他のノード１００に動作を切り替える指示をする必要はない。
【００１８】
他の一例において、複数のノード１００のいずれかが、マスタノード１００Ａであり、マスタノード１００Ａ以外のノードは、マスタノード１００Ａの指示に応じて動作を切り替えるスレーブノード１００Ｂである。
【００１９】
さらに他の一例において、２つ以上のノード１００からの指示に対する動作に関する整合性が担保されている限りにおいて、複数のノード１００の２つ以上のノード１００がマスタノード１００Ａであり、マスタノード１００Ａ以外のノード１００がスレーブノード１００Ｂである。この場合、２つ以上のマスタノード１００Ａの間で、役割分担する構成もとりうる。例えば、車速等の車両状態を監視するマスタノード１００Ａと、セキュリティリスクを監視するマスタノード１００Ａとを、２つのマスタノード１００Ａとしてもよい。
【００２０】
まず、マスタノード１００Ａおよびスレーブノード１００Ｂがノード１００として共通して備える構成要素を説明する。
【００２１】
ノード１００は、それぞれ、送受信器１１０と、メッセージ制御部１２０と、算出ロジック記憶装置１３０と、認証キー記憶装置１４０と、認証ロジック切替制御部１５０と、を備える。一例において、ノード１００は、それぞれ、ＣＰＵ（Central Processing Unit）、ＲＯＭ（Read Only Memory）、ＲＡＭ（Random Access Memory）等を備える。ＣＰＵは、例えばＲＯＭから処理内容に応じたプログラムを読み出してＲＡＭに展開し、展開したプログラムと協働して、メッセージ制御部１２０および認証ロジック切替制御部１５０の動作を集中制御する。
【００２２】
送受信器１１０は、受信器１１１および送信器１１２を備える。
【００２３】
メッセージ制御部１２０は、送信データ入力部１２１、メッセージ生成部１２２、メッセージ検証部１２３、受信データ出力部１２４、およびＭＡＣ値生成部１２５として機能する。
【００２４】
送信データ入力部１２１は、ノード１００が他のノードに送信すべきデータ（送信データ）を、ノード１００が備える他の構成要素（図示せず）から入力する。
【００２５】
ＭＡＣ値生成部１２５は、認証キーとメッセージ認証符号値の算出ロジック（以下、単に算出ロジックと記載する）とを用いて、送信データに対してメッセージ認証符号値を算出する。
【００２６】
認証キーは、複数のノード１００の間で共有されかつ秘匿され、第三者が知らない、所定のビット長を有する値である。一例において、認証キーは、暗号鍵である。
【００２７】
メッセージ認証符号値は、後述するように、メッセージ検証部１２３が受信データの正当性を検証するために用いる挿入用メッセージ認証符号値を生成するのに用いられる値である。
【００２８】
算出ロジックは、同一の認証キーおよび同一の内容をもつ複数のデータに対して、同一のメッセージ認証符号値を算出するロジックである。さらに、算出されたメッセージ認証符号値からは、元の送信データを復元することはできない。即ち、算出ロジックは、不可逆性を備える。一例において、算出ロジックは、ＳＨＡ−２５６等のハッシュ関数を用いて計算するＨＭＡＣアルゴリズムである。また、一例において、算出ロジックは、ブロック暗号に基づくメッセージ認証符号アルゴリズムであるＣＭＡＣアルゴリズムである。
【００２９】
一例において、算出ロジックは、ノード１００の識別番号（ＩＤ）や、送信データのＣＲＣ（Cyclic Redundancy Check）値等のパラメータにも依存する。この場合、算出ロジックは、同一の認証キーおよびパラメータと同一の内容をもつ複数のデータとに対して、同一のメッセージ認証符号値を算出するロジックである。
【００３０】
ＭＡＣ値生成部１２５は、算出したメッセージ認証符号値から、挿入用メッセージ認証符号値を生成する。一例において、ＭＡＣ値生成部１２５は、メッセージ認証符号値の一部を、挿入用メッセージ認証符号値とする。例えば、ＭＡＣ値生成部１２５は、メッセージ認証符号値の特定のオフセット位置にあるウィンドウに含まれるビット列を切り出すことにより、挿入用メッセージ認証符号値を生成する。例えば、オフセット位置は、通信システム１０００全体のパラメータとして共有される所定の位置であってもよい。
【００３１】
メッセージ生成部１２２は、送信データをデータフィールドに含むメッセージ（メインメッセージ）を生成する。さらに、メッセージ生成部１２２は、送信データに対して、ＭＡＣ値生成部１２５が生成した挿入用メッセージ認証符号値をデータフィールドに含むメッセージ（ＭＡＣメッセージ）を生成する。一例において、メインメッセージおよびＭＡＣメッセージは、一体化されたメッセージである。
【００３２】
一例において、メッセージ生成部１２２は、メインメッセージおよびＭＡＣメッセージを、公開鍵暗号方式を用いて、暗号化する。
【００３３】
送信器１１２は、メッセージ生成部１２２が生成したメッセージを、ネットワーク２００に送出する。
【００３４】
受信器１１１は、ネットワーク２００から、自分宛のメッセージ（メインメッセージおよびＭＡＣメッセージ）を取得する。
【００３５】
メインメッセージおよびＭＡＣメッセージが公開鍵暗号方式を用いて暗号化されている場合、メッセージ検証部１２３は、公開鍵に対応する秘密鍵を用いてメインメッセージおよびＭＡＣメッセージを復号する。
【００３６】
メッセージ検証部１２３は、受信器１１１が受信したメインメッセージから、メッセージのデータフィールドに含まれるデータ（受信データ）を抽出する。さらに、メッセージ検証部１２３は、受信器１１１が受信したＭＡＣメッセージから、メッセージのデータフィールドに含まれるメッセージ認証符号値を抽出する。
【００３７】
ＭＡＣ値生成部１２５は、送信データに対してメッセージ認証符号値を算出するのに用いられる認証キー、算出ロジック、およびパラメータと同じものを用いて、受信データに対してメッセージ認証符号値を算出し、算出したメッセージ認証符号値から挿入用メッセージ認証符号値を生成する。
【００３８】
メッセージ検証部１２３は、受信されたＭＡＣメッセージから抽出された挿入用メッセージ認証符号値が、受信データに対して生成された挿入用メッセージ認証符号値に一致するか否かを判定することにより、受信データの正当性を検証する。ここで、データの正当性とは、データが本来の送信元以外のエンティティによって作成または改ざんされたものでないことを意味する。例えば、算出ロジックおよびパラメータが既知であっても、認証キーを知らない限り、挿入用メッセージ認証符号値を生成することができない。また、受信データおよび挿入用メッセージ認証符号値から、メッセージ認証符号値の算出に用いられた認証キーを推定することも、不可能或いは極めて困難である。これらの性質を利用して、メッセージ検証部１２３は、受信データの正当性を検証することができる。
【００３９】
受信データ出力部１２４は、正当性が検証された受信データを、ノード１００が備える他の構成要素（図示せず）に出力する。
【００４０】
算出ロジック記憶装置１３０は、複数の算出ロジックを記憶する。複数のノード１００の全ての算出ロジック記憶装置１３０が、同一の複数の算出ロジックを記憶することによって、複数のノード１００は、複数の算出ロジックを共有する。例えば、算出ロジック記憶装置１３０は、フラッシュメモリ等の不揮発性の記憶媒体を備え、記憶媒体に複数の算出ロジックを、プログラムとして記憶する。
【００４１】
一例において、複数の算出ロジックは、複雑度（計算コスト）および安全度が異なる。例えば、複数の算出ロジックには、ハッシュ関数ＭＤ５、ＳＨＡ−１、ＳＨＡ−２５６、ＳＨＡ−３８４、ＳＨＡ−５１２を用いるものが含まれる。
【００４２】
一例において、算出ロジック記憶装置１３０は、それぞれが１つの算出ロジックに関連付けられた複数の算出ロジック識別子を、さらに記憶する。例えば、算出ロジック記憶装置１３０は、算出ロジックと算出ロジック識別子とをテーブルの形式で記憶する。この場合、複数のノード１００の全ての算出ロジック記憶装置１３０が、同一のテーブルを記憶する。また、一例において、算出ロジック記憶装置１３０は、各算出ロジックについて、算出ロジックの複雑度を、算出ロジック識別子に関連付けて記憶する。
【００４３】
認証キー記憶装置１４０は、複数の認証キーを記憶する。複数のノード１００の全ての認証キー記憶装置１４０が、同一の複数の認証キーを記憶することによって、複数のノード１００は、複数の認証キーを共有する。一例において、認証キーは、複数のノード１００の間で共有されかつ秘匿される暗号鍵である。例えば、認証キー記憶装置１４０は、フラッシュメモリ等の不揮発性の記憶媒体を備え、記憶媒体に複数の認証キーを記憶する。
【００４４】
一例において、認証キー記憶装置１４０は、それぞれが１つの認証キーに関連付けられた複数の認証キー識別子を、さらに記憶する。例えば、認証キー記憶装置１４０は、認証キーと認証キー識別子とをテーブルの形式で記憶する。この場合、複数のノード１００の全ての認証キー記憶装置１４０が、同一のテーブルを記憶する。
【００４５】
認証ロジック切替制御部１５０は、ＭＡＣ値生成部１２５が用いる認証ロジックを、複数の認証ロジックの間で切り替える制御を行う。ここで、認証ロジックとは、算出ロジックおよび算出ロジックのパラメータとして用いられる認証キーとの組み合わせを指す。ＭＡＣ値生成部１２５は、認証ロジック切替制御部１５０が切り替えた後の認証ロジックに含まれる算出ロジックおよび認証キーを用いて、送信データおよび受信データに対してメッセージ認証符号値を算出する。
【００４６】
認証ロジック切替制御部１５０は、算出ロジック切替部１５１および認証キー切替部１５２として機能する。算出ロジック切替部１５１は、ＭＡＣ値生成部１２５が用いる算出ロジックを切り替える。認証キー切替部１５２は、ＭＡＣ値生成部１２５が用いる算出ロジックのパラメータとして用いられる認証キーを切り替える。
【００４７】
認証ロジック切替制御部１５０による切り替えの制御は、ＭＡＣ値生成部１２５が用いる認証ロジックが、複数のノード１００の間で同一となるように行われる。例えば、マスタノード１００Ａの算出ロジック切替部１５１による算出ロジックの切り替えに同期して、スレーブノード１００Ｂの算出ロジック切替部１５１が、同一の算出ロジックに切り替える。また、例えば、スレーブノード１００Ｂの認証キー切替部１５２による認証キーの切り替えに同期して、スレーブノード１００Ｂの認証キー切替部１５２が、同一の認証キーに切り替える。
【００４８】
一例において、スレーブノード１００Ｂが備える算出ロジック切替部１５１は、ネットワーク２００または専用の通信路（図示せず）を介して、マスタノード１００Ａが備える算出ロジック切替部１５１から、算出ロジックの切り替えを指示する情報を受信する。算出ロジックの切り替えを指示する情報は、例えば、切り替え先の算出ロジック（の算出ロジック識別子）と、切り替えタイミングを示す情報とを含む。次いで、スレーブノード１００Ｂが備える算出ロジック切替部１５１は、受信された算出ロジック識別子に関連付けられた算出ロジックを、算出ロジック記憶装置１３０から取得して、切り替えタイミングを示す情報に示されたタイミングで、取得した算出ロジックに切り替える。
【００４９】
一例において、スレーブノード１００Ｂが備える認証キー切替部１５２は、ネットワーク２００または専用の通信路（図示せず）を介して、マスタノード１００Ａが備える認証キー切替部１５２から、認証キーの切り替え指示する情報を受信する。認証キーの切り替えを指示する情報は、例えば、切り替え先の認証キー（の認証キー識別子）と、切り替えタイミングを示す情報とを含む。次いで、スレーブノード１００Ｂが備える認証キー切替部１５２は、受信された認証キー識別子に関連付けられた認証キーを、認証キー記憶部１４０から取得し、切り替えタイミングを示す情報に示されたタイミングで、取得した認証キーに切り替える。
【００５０】
スレーブノード１００Ｂが備える認証ロジック切替制御部１５０は、算出ロジックの切り替えを指示する情報と、認証キーの切り替え指示する情報とを、まとめて、認証ロジックの切り替えを指示する情報としてマスタノード１００Ａから受信してもよい。
【００５１】
次に、スレーブノード１００Ｂが備えないマスタノード１００Ａに固有の構成要素を説明する。
【００５２】
マスタノード１００Ａは、さらに、認証ロジック決定制御部１６０を備える。マスタノード１００ＡのＣＰＵは、例えばＲＯＭから処理内容に応じたプログラムを読み出してＲＡＭに展開し、展開したプログラムと協働して、認証ロジック決定制御部１６０の動作を集中制御する。認証ロジック決定制御部１６０は、走行経路決定部１６１、車両状態検出部１６２、セキュリティリスク検出部１６３、リスクレベル決定部１６４、および認証キー更新指示部１６５として機能する。
【００５３】
走行経路決定部１６１は、車両の走行経路を決定する。一例において、車両がＧＰＳ（図示せず）等から車両の位置情報を取得することが可能であって、かつカーナビゲーションシステム（図示せず）等から地図情報を取得することが可能である場合、走行経路決定部１６１は、取得した車両の位置情報および地図情報に基づいて、車両の走行経路を決定する。他の一例において、走行経路決定部１６１は、自動運転システム（図示せず）が決定した走行経路を取得し、流用する。この場合、走行経路決定部１６１は、自動運転システムの一部であってもよい。
【００５４】
車両状態検出部１６２は、車両状態を検出する。ここで、車両状態とは、車両状態検出部１６２が取得した情報に基づいて判断することができる車両に関する状態をさす。一例において、車両状態検出部１６２は、車両から取得可能である車両の制御情報に基づいて、車両状態を検出する。この場合、車両状態は、例えば、車速、ハンドルの蛇角、ギアの状態、ブレーキの状態である。
【００５５】
一例において、車両状態検出部１６２は、車載センサ（図示せず）から取得した情報に基づいて、車両状態を検出する。車載センサは、例えば、車内カメラ、車外カメラ、ソナーである。この場合、車両状態は、例えば、車両の進行方向の障害物の有無、カーブの有無である。
【００５６】
セキュリティリスク検出部１６３は、通信システム１０００におけるセキュリティリスクを検出する。ここで、セキュリティリスクとは、ノード１００のセキュリティを害する可能性のあるリスクのことである。セキュリティリスクは、例えば、ノード１００の乗っ取りやなりすまし等のセキュリティ侵害、正当性が認証されたメッセージ数の全メッセージ数に対する割合の低下である。セキュリティ侵害の検出については、任意の公知の方法を適用することができる。
【００５７】
リスクレベル決定部１６４は、車両が置かれた状況の危険度を示すリスクレベルを決定する。一例において、リスクレベル決定部１６４は、車両状態検出部１６２から取得した車両状態に応じて、リスクレベルを決定する。
【００５８】
一般に、車速が上がるほどサイバー攻撃による車両としての影響度が高くなる。そこで、一例において、リスクレベル決定部１６４は、車両状態に含まれる車速が大きいほど、より高いリスクレベルを決定する。こうすると、車速に応じてメッセージ認証のレベルを強化することができる。
【００５９】
一例において、リスクレベル決定部１６４は、セキュリティリスク検出部１６３が検出したセキュリティリスクに対して、リスクレベルを決定する。例えば、セキュリティリスク検出部１６３がセキュリティ侵害を検出した場合、リスクレベル決定部１６４は、セキュリティ侵害が検出されなかった場合に決定するリスクレベルよりも高いリスクレベルを決定する。また、例えば、リスクレベル決定部１６４は、正当性が認証されたメッセージ数の全メッセージ数に対する割合が低いほど、高いリスクレベルを決定する。
【００６０】
一例において、リスクレベル決定部１６４は、車両状態検出部１６２が検出した車両状態によって走行経路決定部１６１が決定した走行経路を車両が維持することが可能であるか否かを判定する。次いで、維持することが可能でないと判定した場合、リスクレベル決定部１６４は、維持することが可能であると判定した場合に決定するリスクレベルよりも高いリスクレベルを決定する。
【００６１】
一例において、車両状態検出部１６２が検出した車両状態が車両の直進または蛇行を含む。例えば、走行経路決定部１６１が決定した走行経路が直線経路である場合、蛇行に応じて決定されるリスクレベルは、直進に応じて決定されるリスクレベルより高い。また、例えば、走行経路決定部１６１が決定した走行経路が曲線経路である場合、直進に応じて決定されるリスクレベルは、蛇行に応じて決定されるリスクレベルより高い。これらの場合、車両が本来の走行経路を逸脱している可能性が高い。一般的に、車両が本来の走行経路を逸脱する理由としては、様々な理由が考えられるが、例えば、車両の制御に関わるノード１００が乗っ取られた結果、車両が本来の走行経路を逸脱するように制御を受けている場合も考えられる。このような場合であっても、リスクレベル決定部１６４がより高いリスクレベルを決定することによって、セキュリティリスク検出部１６３が検出に失敗した巧妙な乗っ取りについても、間接的に対処することができる。
【００６２】
一例において、車両状態検出部１６２が車両の進行方向の障害物の有無を検出することができる場合、リスクレベル決定部１６４は、走行経路決定部１６１が決定した走行経路上にある障害物に応じて、リスクレベルを決定する。例えば、障害物がある場合に決定されるリスクレベルは、障害物がない場合に決定されるリスクレベルよりも高い。
【００６３】
リスクレベル決定部１６４は、複雑度および安全度の異なる複数の認証ロジックの中から、決定したリスクレベルに応じた認証ロジックへの切り替えを、認証ロジック切替制御部１５０に指示する。認証ロジック切替制御部１５０は、リスクレベル決定部１６４からの指示に応じて、ＭＡＣ値生成部１２５が用いる認証ロジックを切り替える。
【００６４】
認証キー更新指示部１６５は、認証キーを更新すべきタイミングにおいて、認証キーの更新を、認証キー切替部１５２に指示する。一例において、認証キー更新指示部１６５は、定期的に、認証キーの更新を、認証キー切替部１５２に指示する。
【００６５】
一例において、リスクレベル決定部１６４は、決定したリスクレベルに応じて、認証キーの更新頻度を認証キー更新指示部１６５に指示する。認証キー更新指示部１６５は、指示された更新頻度に応じて、認証キーの更新を、認証キー切替部１５２に指示する。
【００６６】
なお、全てのノード１００がマスタノード１００Ａである場合、全てのマスタノード１００Ａの構成要素が、構成要素毎に同じ入力を有する、同じ認証ロジック決定制御部１６０を備えることによっても、算出ロジックの切り替えおよび認証キーの切り替えを同期させることができる。
【００６７】
図４は、本開示に係るセキュリティリスクに対するマスタノード１００Ａの動作フローを示すフローチャートである。この処理は、例えば車両のエンジンが起動されることに伴い、マスタノード１００ＡのＣＰＵがＲＯＭに格納されているプログラムを読み出して定期的に実行することにより実現される。
【００６８】
ステップＳ１１において、マスタノード１００Ａは、セキュリティリスクを検出したか否かを判定する（セキュリティリスク検出部１６３としての処理）。一例において、セキュリティリスク検出部１６３は、ノード１００の乗っ取りまたはなりすましを検出した場合、セキュリティリスクを検出したと判定する。また、一例において、正当性が認証された受信メッセージの全ての受信メッセージに対する割合が所定の第１の割合よりも低下した場合、セキュリティリスク検出部１６３は、セキュリティリスクを検出したと判定する。セキュリティリスクを検出したと判定した場合（ステップＳ１１：Ｙｅｓ）、ステップＳ１２に進む。一方、セキュリティリスクを検出しなかったと判定した場合（ステップＳ１１：Ｎｏ）、ステップＳ１１に戻る。
【００６９】
ステップＳ１２において、マスタノード１００Ａは、検出されたセキュリティリスクに対するリスクレベルを決定する（リスクレベル決定部１６４としての処理）。
【００７０】
一例において、正当性が認証された受信メッセージ数の全受信メッセージ数に対する割合が所定の第２の割合よりも大きい場合、リスクレベル決定部１６４は、第１のリスクレベルを決定する。一方、所定の第２の割合よりも小さい場合、リスクレベル決定部１６４は、第１のリスクレベルよりも高い第２のリスクレベルを決定する。ここで、所定の第２の割合は、所定の第１の割合よりも大きい割合である。
【００７１】
一例において、リスクレベル決定部１６４は、ノード１００の乗っ取りまたはなりすましを検出した場合、第２のリスクレベルを決定する。
【００７２】
ステップＳ１３において、マスタノード１００Ａは、決定したリスクレベルが高いか否かを判定する（リスクレベル決定部１６４としての処理）。一例において、リスクレベル決定部１６４は、決定したリスクレベルが第１のリスクレベルである場合、リスクレベルが高くないと判定し、決定したリスクレベルが第２のリスクレベルである場合、リスクレベルが高いと判定する。
【００７３】
リスクレベルが高いと判定された場合（Ｓ１３：Ｙｅｓ）、ステップＳ１４に進む。ステップＳ１４において、マスタノード１００Ａは、複雑度および安全度の異なる複数の算出ロジックの中から、複雑度が高いが安全度も高い算出ロジックへの切り替えを指示する（リスクレベル決定部１６４としての処理）。これにより、決定されるリスクレベルが高いセキュリティリスクが検出された場合に、メッセージ認証の安全度がより担保される。なお、既に複雑度が高い算出ロジックが用いられている場合は、算出ロジックを切り替えなくてもよいし、複雑度が高い別の算出ロジックに切り替えてもよい。
【００７４】
算出ロジックの切り替えの指示に応じて、マスタノード１００Ａは、算出ロジックを切り替える（算出ロジック切替部１５１としての処理）。
【００７５】
一方、リスクレベルが高くないと判定された場合（Ｓ１３：Ｎｏ）、ステップＳ１４をスキップしてステップＳ１５に進む。これにより、決定されるリスクレベルが高いセキュリティリスクが既に検出されており、複雑度が高い算出ロジックが用いられている場合は、そのまま、複雑度が高い算出ロジックが用いられる。また、決定されるリスクレベルが高いセキュリティリスクが未だ検出されていない通常の場合は、複雑度が低い算出ロジックを用いることにより、ノード１００の計算処理の負荷を低減することができる。
【００７６】
ステップＳ１５において、マスタノード１００Ａは、認証キー切替部１５２に対して、認証キーの切り替えを指示する（リスクレベル決定部１６４としての処理）。指示に応じて、マスタノード１００Ａは、認証キーを切り替える（認証キー切替部１５２としての処理）。
【００７７】
次いで、ステップＳ１６において、マスタノード１００Ａは、スレーブノード１００Ｂに認証ロジックの切り替えを指示する（算出ロジック切替部１５１および認証キー切替部１５２としての処理）。これにより、全てのノード１００において、同一の認証キーおよび算出ロジックに切り替えられる。なお、全てのノード１００がマスタノード１００Ａであるマルチマスタ構成の場合、ステップＳ１６はスキップすることができる。
【００７８】
図５は、セキュリティリスクのリスクレベルと認証ロジックとの間の関係の説明図である。図５に示される関係は、図４に示されるフローチャートにおいて用いられる。
【００７９】
図５に示されるように、決定されたリスクレベルが低いと判断された場合、算出ロジックの複雑度の低い認証ロジック１に切り替えられる。決定されたリスクレベルが高いと判断された場合、算出ロジックの複雑度の高い認証ロジック２に切り替えられる。
【００８０】
このように、検出されたセキュリティリスクに対して決定されたリスクレベルの高さに応じて、複数の認証ロジックを使い分けることができるので、決定されるリスクレベルの低い通常の場合、複雑度の低い算出ロジックを用いることができる。
【００８１】
図６は、本開示に係る車両状態の変化に対するマスタノード１００Ａの動作フローを示すフローチャートである。この処理は、例えば車両のエンジンが起動されることに伴い、マスタノード１００ＡのＣＰＵがＲＯＭに格納されているプログラムを読み出して定期的に実行することにより実現される。
【００８２】
ステップＳ２１において、マスタノード１００Ａは、車両状態の変化を検出したか否かを判定する（車両状態検出部１６２としての処理）。一例において、車両状態検出部１６２は、車速の変化を検出した場合、車両状態の変化を検出したと判定する。車両状態の変化を検出したと判定した場合（ステップＳ２１：Ｙｅｓ）、ステップＳ２２に進む。一方、車両状態の変化を検出しなかった判定した場合（ステップＳ２１：Ｎｏ）、ステップＳ２１に戻る。
【００８３】
ステップＳ２２において、マスタノード１００Ａは、変化後の車両状態に対するリスクレベルを決定する（リスクレベル決定部１６４としての処理）。一例において、車速が小さい（例えば、時速６０ｋｍ／ｈ未満である）場合、リスクレベル決定部１６４は、第３のリスクレベルを決定する。また、車速が中くらい（例えば、時速６０ｋｍ／ｈ以上１００ｋｍ／ｈ未満）である場合、リスクレベル決定部１６４は、第３のリスクレベルより高い第４のリスクレベルを決定する。また、車速が大きい（例えば、１００ｋｍ／ｈ以上である）場合、リスクレベル決定部１６４は、第４のリスクレベルより高い第５のリスクレベルを決定する。
【００８４】
ステップＳ２３において、マスタノード１００Ａは、決定したリスクレベルの高さを判定する（リスクレベル決定部１６４としての処理）。
【００８５】
リスクレベルが低いと判定した場合（例えば、決定したリスクレベルが第３のリスクレベルである場合）、ステップＳ２４−１に進む。リスクレベルが中くらいであると判定した場合（例えば、決定したリスクレベルが第４のリスクレベルである場合）、ステップＳ２４−２に進む。リスクレベルが高いと判定した場合（例えば、決定したリスクレベルが第５のリスクレベルである場合）、ステップＳ２４−３に進む。
【００８６】
ステップＳ２４−１に進んだ場合、マスタノード１００Ａは、複雑度および安全度の異なる複数の算出ロジックの中から、安全度も低いが複雑度も低い算出ロジックへの切り替えを指示する（リスクレベル決定部１６４としての処理）。なお、既に複雑度が低い算出ロジックが用いられている場合は、算出ロジックを切り替えなくてもよいし、複雑度が低い別の算出ロジックに切り替えてもよい。
【００８７】
ステップＳ２４−２に進んだ場合、マスタノード１００Ａは、複雑度および安全度の異なる複数の算出ロジックの中から、複雑度が中くらいであり安全度も中くらいである算出ロジックへの切り替えを指示する（リスクレベル決定部１６４としての処理）。なお、既に複雑度が中くらいである算出ロジックが用いられている場合は、算出ロジックを切り替えなくてもよいし、複雑度が中くらいである別の算出ロジックに切り替えてもよい。
【００８８】
ステップＳ２４−３に進んだ場合、マスタノード１００Ａは、複雑度および安全度の異なる複数の算出ロジックの中から、複雑度が高いが安全度も高い算出ロジックへの切り替えを指示する（リスクレベル決定部１６４としての処理）。なお、既に複雑度が高い算出ロジックが用いられている場合は、算出ロジックを切り替えなくてもよいし、複雑度が高い別の算出ロジックに切り替えてもよい。
【００８９】
算出ロジックの切り替えの指示に応じて、マスタノード１００Ａは、算出ロジックを切り替える（算出ロジック切替部１５１としての処理）。
【００９０】
ステップＳ２５において、マスタノード１００Ａは、認証キー切替部１５２に対して、認証キーの切り替えを指示する（リスクレベル決定部１６４としての処理）。指示に応じて、マスタノード１００Ａは、認証キーを切り替える（認証キー切替部１５２としての処理）。
【００９１】
次いで、ステップＳ２６において、マスタノード１００Ａは、スレーブノード１００Ｂに認証ロジックの切り替えを指示する（算出ロジック切替部１５１および認証キー切替部１５２としての処理）。これにより、全てのノード１００において、同一の認証キーおよび算出ロジックに切り替えられる。なお、全てのノード１００がマスタノード１００Ａであるマルチマスタ構成の場合、ステップＳ２６はスキップすることができる。
【００９２】
図７は、車両状態のリスクレベルと認証ロジックとの間の関係の説明図である。図７に示される関係は、図６に示されるフローチャートにおいて用いられる。
【００９３】
図７に示されるように、車両状態に対して決定されたリスクレベルが低いと判定された場合、算出ロジックの複雑度の低い認証ロジック１に切り替えられる。車両状態に対して決定されたリスクレベルが中くらいであると判定された場合、算出ロジックの複雑度の中くらいである認証ロジック２に切り替えられる。車両状態に対して決定されたリスクレベルが高いと判定された場合、算出ロジックの複雑度の高い認証ロジック３に切り替えられる。
【００９４】
このように、検出された車両状態に対して決定されたリスクレベルの高さに応じて、複数の認証ロジックを使い分けることができる。決定されたリスクレベルの低い通常の車両状態の場合、複雑度の低い算出ロジックを用いることができる。
【００９５】
このように、第１の実施の形態に係る通信システム１０００は、ネットワーク２００に接続された複数のノード１００を備える車両の通信システム１０００であって、複数のノード１００の各ノード１００−ｉは、複数のノード１００の他ノード１００−ｊから受信したメッセージの正当性を認証するのに用いられる認証ロジックが複数のノード１００の間で同一となるように、認証ロジックを複数の認証ロジックの間で切り替える認証ロジック切替制御部１５０と、認証ロジックを用いてメッセージの正当性を認証するメッセージ認証部１２３と、を備える構成を採る。
【００９６】
本開示によれば、認証ロジックが複数の認証ロジックの間で切り替えられることにより、不正アクセスおよび認証ロジックの解析が困難である通信システムを提供することができる。また、車載ＬＡＮの既存の通信規格にそのまま適用することができるので、拡張性に優れた通信システムを提供することができる。また、決定されたリスクレベルに応じて適度な複雑度を備える認証ロジックに切り替えることができるので、状況の変化に応じて適度な難読化を行うことができる。
【００９７】
本開示によれば、車両状態（安全上のリスクが高い走行状態か否か)、サイバー攻撃状況、不正アクセス回数、不正アクセス時のコマンドが及ぼす影響の大きさ等に応じて、動的に認証ロジックを切り替えることができ、適切なセキュリティレベルに切り替えることができるので、セキュリティリスクへ柔軟に対応することができる。
【００９８】
また、本開示によれば、通信システム１０００に接続されたノード１００毎のカウンタを各ノードが備える必要がないので、管理が容易であり、拡張性も高い。
【００９９】
このように、本開示は、通信データのプロージビリティを検証するための１つの方法を提供する。本開示によれば、一定の秘匿性を維持するように通信メッセージ上にメッセージ認証用データを組み込むことができる。また、本開示によれば、セキュリティリスク、車両状態等に応じて認証処理を段階的に変化させる柔軟性を持ったセキュリティ対策を提供することができる。
【０１００】
図８は、コンピュータのハードウェア構成の一例を示す図である。上述した各実施の形態および各変形例における各部の機能は、コンピュータ２１００が実行するプログラムにより実現される。
【０１０１】
図８に示すように、コンピュータ２１００は、入力ボタン、タッチパッドなどの入力装置２１０１、ディスプレイ、スピーカなどの出力装置２１０２、ＣＰＵ（Central Processing Unit）２１０３、ＲＯＭ（Read Only Memory）２１０４、ＲＡＭ（Random Access Memory）２１０５を備える。また、コンピュータ２１００は、ハードディスク装置、ＳＳＤ（Solid State Drive）などの記憶装置２１０６、ＤＶＤ−ＲＯＭ（Digital Versatile Disk Read Only Memory）、ＵＳＢ（Universal Serial Bus）メモリなどの記録媒体から情報を読み取る読取装置２１０７、ネットワークを介して通信を行う送受信装置２１０８を備える。上述した各部は、バス２１０９により接続される。
【０１０２】
そして、読取装置２１０７は、上記各部の機能を実現するためのプログラムを記録した記録媒体からそのプログラムを読み取り、記憶装置２１０６に記憶させる。あるいは、送受信装置２１０８が、ネットワークに接続されたサーバ装置と通信を行い、サーバ装置からダウンロードした上記各部の機能を実現するためのプログラムを記憶装置２１０６に記憶させる。
【０１０３】
そして、ＣＰＵ２１０３が、記憶装置２１０６に記憶されたプログラムをＲＡＭ２１０５にコピーし、そのプログラムに含まれる命令をＲＡＭ２１０５から順次読み出して実行することにより、上記各部の機能が実現される。また、プログラムを実行する際、ＲＡＭ２１０５または記憶装置２１０６には、各実施の形態で述べた各種処理で得られた情報が記憶され、適宜利用される。
【０１０４】
（その他の実施の形態）
第１の実施の形態においては、走行経路決定部１６１、車両状態検出部１６２、およびセキュリティリスク検出部１６３は、いずれもマスタノード１００Ａに含まれる。これに代えて、走行経路決定部１６１、車両状態検出部１６２、およびセキュリティリスク検出部１６３の少なくとも１つがノード１００と別体に設けられる実施の形態も考えられる。さらに、走行経路決定部１６１が決定する走行経路、車両状態検出部１６２が検出する車両状態、およびセキュリティリスク検出部１６３が検出するセキュリティリスクを、それらを示す情報の形式で、ノード１００が外部の構成要素から取得する実施の形態も考えられる。例えば、車両が自動運転車両である場合、ノード１００は、自動運転を司る自動運転システムから、走行経路を取得してもよい。
【０１０５】
上記の実施の形態においては、リスクレベル決定部１６４が、車両の走行経路、車両状態、およびセキュリティリスクに基づいて、リスクレベルを決定している。車両の走行経路、車両状態、およびセキュリティリスクについて、監視対象とすべき範囲も動的に切り替える実施の形態も考えられる。例えば、車速が所定の速度よりも低い場合、車両の走行経路を監視対象から外す、或いは検出すべき障害物までの距離を短くしてもよい。こうすると、マスタノード１００Ａの計算処理の負荷をさらに低減することができる。
【０１０６】
上記の実施の形態においては、２段階または３段階のリスクレベルを決定する場合について説明している。これに加えて、４段階以上のリスクレベルを決定する実施の形態も考えられる。また、算出ロジックの複雑度も、４段階以上あってもよい。
【０１０７】
上記の実施の形態においては、認証ロジックを切り替える場合、認証キーを必ず切り替えている。これに代えて、認証ロジックを切り替える場合に、認証ロジックに含まれる算出ロジックのみを切り替えて、認証キーを切り替えない実施の形態も考えられる。
【産業上の利用可能性】
【０１０８】
本開示に係る通信システムは、車載ＬＡＮに適用されるのに好適である。
【符号の説明】
【０１０９】
１００，１００−１，１００−２，…，１００−ｎ  ノード
１００Ａ  マスタノード
１００Ｂ  スレーブノード
１１０，１１０−１，１１０−２，…，１１０−ｎ  送受信器
１１１  受信器
１１２  送信器
１２０  メッセージ制御部
１２１  送信データ入力部
１２２  メッセージ生成部
１２３  メッセージ検証部
１２４  受信データ出力部
１２５  ＭＡＣ値生成部
１３０  算出ロジック記憶装置
１４０  認証キー記憶装置
１５０  認証ロジック切替制御部
１５１  算出ロジック切替部
１５２  認証キー切替部
１６０  認証ロジック決定制御部
１６１  走行経路決定部
１６２  車両状態検出部
１６３  セキュリティリスク検出部
１６４  リスクレベル決定部
１６５  認証キー更新指示部
２００  ネットワーク
【図１】
2018125659.tif 000003
【図２】
2018125659.tif 000004
【図３】
2018125659.tif 000005
【図４】
2018125659.tif 000006
【図５】
2018125659.tif 000007
【図６】
2018125659.tif 000008
【図７】
2018125659.tif 000009
【図８】
2018125659.tif 000010