(57)【特許請求の範囲】
【請求項１】
ネットワークに接続し、前記ネットワークで通信される通信データをメッセージ認証符号により認証する通信装置であって、
カウンタと、
他の前記通信装置から前記通信データを受信する受信部と、
前記受信部が他の前記通信装置から前記通信データを受信すると、前記カウンタを更新して他の前記通信装置のカウンタの値と一致させる更新部と、
前記受信部が受信する前記通信データと前記カウンタと共通鍵とに基づいて前記メッセージ認証符号を生成する符号生成部と、
前記符号生成部が生成する前記メッセージ認証符号と前記通信データに設定されている前記メッセージ認証符号とが一致するか否かを判定する判定部と、
前記符号生成部が生成する前記メッセージ認証符号と前記受信部が受信する前記通信データに設定されている前記メッセージ認証符号とが不一致であると前記判定部が判定する回数が規定の不一致回数以上になると、前記カウンタの値を一致させる同期要求を送信する送信部と、
を備えることを特徴とする通信装置。
【請求項２】
請求項１に記載の通信装置であって、
前記符号生成部が生成する前記メッセージ認証符号と前記通信データに設定されている前記メッセージ認証符号とが不一致であると前記判定部が連続して判定する回数が規定の連続不一致回数以上になると、前記送信部は前記カウンタの値を一致させる同期要求を送信する、
ことを特徴とする通信装置。
【請求項３】
請求項１に記載の通信装置であって、
前記符号生成部が生成する前記メッセージ認証符号と前記通信データに設定されている前記メッセージ認証符号とが不一致であると前記判定部が判定する合計回数が前記不一致回数よりも大きい規定の合計不一致回数以上になると、前記送信部は前記カウンタのリセットと前記共通鍵の更新とを要求するリセット更新要求を送信する、
ことを特徴とする通信装置。
【請求項４】
請求項２に記載の通信装置であって、
前記符号生成部が生成する前記メッセージ認証符号と前記通信データに設定されている前記メッセージ認証符号とが不一致であると前記判定部が判定する合計回数が前記連続不一致回数よりも大きい規定の合計不一致回数以上になると、前記送信部は前記カウンタのリセットと前記共通鍵の更新とを要求するリセット更新要求を送信する、
ことを特徴とする通信装置。
【請求項５】
請求項１から４のいずれか一項に記載の通信装置であって、
前記送信部が前記同期要求を送信しても前記符号生成部が生成する前記メッセージ認証符号と前記通信データに設定されている前記メッセージ認証符号とが不一致であると、前記判定部が判定する回数が規定の同期回数以上になると、前記送信部は前記カウンタのリセットと前記共通鍵の更新とを要求するリセット更新要求を送信する、
ことを特徴とする通信装置。
【請求項６】
請求項５に記載の通信装置であって、
前記送信部が前記同期要求を送信しても前記符号生成部が生成する前記メッセージ認証符号と前記通信データに設定されている前記メッセージ認証符号とが不一致であると、前記判定部が連続して判定する回数が規定の同期回数以上になると、前記送信部は前記カウンタのリセットと前記共通鍵の更新とを要求するリセット更新要求を送信する、
ことを特徴とする通信装置。
【請求項７】
請求項３から６のいずれか一項に記載の通信装置であって、
前記送信部が前記リセット更新要求を送信しても前記符号生成部が生成する前記メッセージ認証符号と前記通信データに設定されている前記メッセージ認証符号とが不一致であると、前記判定部が判定する回数が規定のリセット更新回数以上になると異常を報知する報知部を備える、
ことを特徴とする通信装置。
【請求項８】
請求項７に記載の通信装置であって、
前記送信部が前記リセット更新要求を送信しても前記符号生成部が生成する前記メッセージ認証符号と前記通信データに設定されている前記メッセージ認証符号とが不一致であると、前記判定部が連続して判定する回数が規定の連続リセット更新回数以上になると異常を報知する報知部を備える、
ことを特徴とする通信装置。
【請求項９】
請求項３から８のいずれか一項に記載の通信装置であって、
前記送信部が前記リセット更新要求を送信しても前記符号生成部が生成する前記メッセージ認証符号と前記通信データに設定されている前記メッセージ認証符号とが不一致であると、前記判定部が判定する合計回数が規定の合計リセット更新回数以上になると異常を報知する報知部を備える、
ことを特徴とする通信装置。
【請求項１０】
請求項１から９のいずれか一項に記載の通信装置であって、
前記通信データと前記通信データを認証する前記メッセージ認証符号とが同じ通信フレームに設定されている、
ことを特徴とする通信装置。
【請求項１１】
請求項１から１０のいずれか一項に記載の通信装置であって、
車載の前記ネットワークに接続する、
ことを特徴とする通信装置。
【請求項１２】
ネットワークに接続する通信装置が前記ネットワークで通信される通信データをメッセージ認証符号により認証する通信方法であって、
他の前記通信装置から通信データを受信すると、カウンタを更新して他の前記通信装置のカウンタの値と一致させ、
受信する前記通信データと前記カウンタと共通鍵とに基づいて前記メッセージ認証符号を生成し、
生成する前記メッセージ認証符号と受信する前記通信データに設定されている前記メッセージ認証符号とが一致するか否かを判定し、
生成する前記メッセージ認証符号と受信する前記通信データに設定されている前記メッセージ認証符号とが不一致であると判定する回数が規定の不一致回数以上になると、前記カウンタの値を一致させる同期要求を送信する、
ことを特徴とする通信方法。
【請求項１３】
ネットワークに接続し、前記ネットワークで通信される通信データをメッセージ認証符号により認証する通信装置に搭載されたコンピュータを、
他の前記通信装置から前記通信データを受信する受信部と、
前記受信部が他の前記通信装置から前記通信データを受信すると、カウンタを更新して他の前記通信装置のカウンタの値と一致させる更新部と、
前記受信部が受信する前記通信データと前記カウンタと共通鍵とに基づいて前記メッセージ認証符号を生成する符号生成部と、
前記符号生成部が生成する前記メッセージ認証符号と前記通信データに設定されている前記メッセージ認証符号とが一致するか否かを判定する判定部と、
前記符号生成部が生成する前記メッセージ認証符号と前記受信部が受信する前記通信データに設定されている前記メッセージ認証符号とが不一致であると前記判定部が判定する回数が規定の不一致回数以上になると、前記カウンタの値を一致させる同期要求を送信する送信部と、
として機能させることを特徴とする通信プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ネットワークで通信される通信データをメッセージ認証符号により認証する技術に関する。
【背景技術】
【０００２】
ネットワークで通信される通信データをメッセージ認証符号（Message Authentication Code：ＭＡＣ）により認証する技術が知られている（例えば、特許文献１参照）。特許文献１に開示されている技術では、ネットワークに接続する各通信装置が、他の通信装置によってメインメッセージが送信される度に、各通信装置に記憶されているカウンタをインクリメントする。
【０００３】
さらに、送信側の通信装置は、メインメッセージと、メインメッセージとカウンタとに基づいて生成するＭＡＣを含むＭＡＣメッセージとを送信する。
受信側の通信装置は、受信するメインメッセージと自身が記憶しているカウンタとに基づいて生成するＭＡＣと、受信するＭＡＣメッセージに含まれるＭＡＣとが一致するか否かによって、メインメッセージの正当性を判定する。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１３−９８７１９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
特許文献１に開示されている技術では、ＭＡＣに基づいてメインメッセージの正当性を判定することはできる。しかしながら、特許文献１に開示されている技術では、メインメッセージが不当である場合、不当である原因を推定していない。メインメッセージが不当である原因を推定しないと、原因を解消するための適切な処置を実行できないという問題がある。
【０００６】
本発明は上記問題を解決するためになされたものであり、ネットワークで通信される通信データが不当な場合、不当な原因を推定して適切な処置を実行する技術を提供することを目的とする。
【課題を解決するための手段】
【０００７】
本発明の通信装置は、ネットワークに接続し、ネットワークで通信される通信データをメッセージ認証符号により認証する通信装置であって、カウンタと、受信部と、更新部と、符号生成部と、判定部と、送信部と、を備えている。
【０００８】
受信部は、他の通信装置から通信データを受信する。更新部は、受信部が他の通信装置から通信データを受信すると、カウンタを更新して他の通信装置のカウンタの値と一致させる。
【０００９】
符号生成部は、受信部が受信する通信データとカウンタと共通鍵とに基づいてメッセージ認証符号を生成する。判定部は、符号生成部が生成するメッセージ認証符号と受信部が受信する通信データに設定されているメッセージ認証符号とが一致するか否かを判定する。
【００１０】
送信部は、符号生成部が生成するメッセージ認証符号と通信データに設定されているメッセージ認証符号とが不一致であると判定部が連続して判定する回数が規定の連続不一致回数以上になると、カウンタの値を一致させる同期要求を送信する。
【００１１】
この構成によれば、メッセージ認証符号が不一致である場合、その原因が送信側と受信側とのカウンタのずれであると推定し、カウンタの同期要求を送信する。これにより、メッセージ認証符号が不一致である原因が送信側と受信側とのカウンタのずれであれば、適切な処置としてカウンタの同期を要求することにより、メッセージ認証符号が不一致である原因を解消できる。
【００１２】
尚、特許請求の範囲に記載した括弧内の符号は、一つの態様として後述する実施形態に記載の具体的手段との対応関係を示すものであって、本発明の技術的範囲を限定するものではない。
【図面の簡単な説明】
【００１３】
【図１】本実施形態による通信システムを示すブロック図。
【図２】ＣＡＮフレームの構成を示す構成図。
【図３】本実施形態による通信装置を示すブロック図。
【図４】通信処理を示す状態遷移図。
【発明を実施するための形態】
【００１４】
以下、本発明が適用された実施形態を図に基づいて説明する。
［１．構成］
図１に示す通信システム２は、ＣＡＮ（Controller Area Network）バス１００と、複数の通信装置１０とを備えている。複数の通信装置１０はそれぞれ同じ構成である。
【００１５】
通信装置１０は、互いに通信可能にネットワークに接続されるのであれば、ＣＡＮに限らずどのようなネットワークに接続してもよい。また、通信装置１０は、どのような用途に使用される通信装置であってもよい。例えば、通信装置１０は、車載のネットワークに接続するＥＣＵ（Electronic Control Unit）であってもよい。
【００１６】
通信装置１０は、ＣＡＮバス１００の通信フレームであるＣＡＮフレームにより通信される通信データの正当性をメッセージ認証符号（ＭＡＣ）に基づいて判断する。ＭＡＣは、ＨＭＡＣ、ＣＭＡＣ等の公知のＭＡＣ生成方式によって生成される。図２に示すように、ＭＡＣはＣＡＮフレームのデータフィールドにデータとともに設定される。
【００１７】
通信装置１０は、ＣＰＵ、ＲＡＭ、ＲＯＭ、フラッシュメモリ、入出力インタフェース等を備えるマイクロコンピュータを搭載している。図３に示すように、通信装置１０は、受信部１２と送信部１４と符号生成部１６と判定部１８とカウンタ２０と更新部２２とフレーム生成部２４と報知部２６として機能する。
【００１８】
受信部１２はＣＡＮバス１００からＣＡＮフレームを受信し、送信部１４はＣＡＮバス１００にＣＡＮフレームを送信する。
符号生成部１６は、受信部１２が受信するＣＡＮフレームのＩＤに基づいて、受信した通信データが処理対象であり、かつＭＡＣによる認証が必要な認証対象であると判断すると、ＣＡＮフレームのＩＤと、データフィールドに設定されているデータと、カウンタ２０と、共通鍵と、から生成されるビット列から、データフィールドに設定されるＭＡＣと同じビット長のビット列を選択してＭＡＣを生成する。共通鍵は、フラッシュメモリ等の書換え可能な不揮発性のメモリに記憶されている。
【００１９】
尚、受信部１２が受信するＣＡＮフレームのＩＤに基づいて、受信した通信データが処理対象であり、かつＭＡＣによる認証対象であると判断する通信装置１０が複数の場合もある。
【００２０】
符号生成部１６は、ＭＡＣが設定されたＣＡＮフレームをフレーム生成部２４が生成して送信部１４から送信するときには、ＣＡＮフレームのＩＤと、データフィールドに設定するデータと、カウンタ２０と、共通鍵と、から生成されるビット列から、データフィールドに設定されるＭＡＣと同じビット長のビット列を選択してＭＡＣを生成する。
【００２１】
判定部１８は、受信部１２が受信した通信データが処理対象であり、かつＭＡＣによる認証対象の場合、ＣＡＮフレームのＩＤと、データフィールドに設定されたデータと、カウンタ２０と、共通鍵と、から符号生成部１６が生成したＭＡＣと、同じＣＡＮフレームのデータフィールドに設定されたＭＡＣとが一致するか否かを判定する。
【００２２】
ＭＡＣが一致すれば今回受信したＣＡＮフレームの通信データは正当であり、ＭＡＣが不一致であれば今回受信したＣＡＮフレームの通信データは不当であると判断できる。
カウンタ２０は、フラッシュメモリ等の不揮発性の記憶装置にＣＡＮフレームのＩＤ毎に記憶されている。各通信装置１０は、自身が処理をする対象となるＩＤに対応するカウンタ２０だけを記憶している。
【００２３】
更新部２２は、受信部１２が受信した通信データが処理対象であり、かつＭＡＣによる認証対象の場合、ＩＤに対応するカウンタ２０を＋１する。また、更新部２２は、フレーム生成部２４が生成して送信部１４から送信するＣＡＮフレームのデータフィールドに設定するＭＡＣを符号生成部１６が生成する前に、ＩＤに対応するカウンタ２０を＋１する。
【００２４】
フレーム生成部２４は、ＣＡＮフレームを送信するときに、ＣＡＮフレームの各フィールドに値を設定する。ＭＡＣによる認証対象の通信データを送信する場合には、符号生成部１６が生成するＭＡＣをデータフィールドに設定する。
【００２５】
報知部２６は、ＭＡＣを認証しようとしてもＭＡＣが不一致になり不一致原因を特定できない異常を示す診断符号を生成し、フラッシュメモリ等の書換え可能な不揮発性の記憶装置に設定する。あるいは、報知部２６は、送信部１４から報知用の通信装置１０に異常を送信させてもよい。
【００２６】
［２．処理］
通信装置１０が実行する通信処理を図４の状態遷移図に基づいて説明する。
正常状態においては、受信部１２が受信するＣＡＮフレームについて、ＩＤと、データフィールドに設定されているデータと、更新部２２が＋１したカウンタ２０と、共通鍵と、から符号生成部１６が生成するＭＡＣと、データフィールドに設定されているＭＡＣとは一致している。
【００２７】
受信側の通信装置１０は、正常状態において受信するＣＡＮフレームについて、ＭＡＣが不一致であると判定部１８が連続して判定する回数が規定の連続不一致回数以上になると、送信側と受信側とでカウンタ２０の値がずれていると推定し、正常状態からカウンタずれ状態に移行する。
【００２８】
規定の連続不一致回数は、ノイズ等による判定部１８の誤判定を考慮し、ＭＡＣの不一致原因がカウンタ２０の値のずれと推定できる適切な値に設定されている。
カウンタずれ状態に移行すると、受信側の通信装置１０は送信側の通信装置１０に対してカウンタ２０の値を一致させるための同期要求を送信部１４からＣＡＮフレームにより送信する。受信側の通信装置１０のフレーム生成部２４は、同期要求を送信部１４から送信するときのＣＡＮフレームのデータフィールドにＭＡＣを設定しない。
【００２９】
これにより、同期要求を受信した送信側の通信装置１０はＭＡＣを認証する必要がないので、受信側と送信側とにおいてカウンタがずれていても、カウンタの同期を要求するＣＡＮフレームは送信側の通信装置１０において正常に処理される。
【００３０】
カウンタ２０の同期要求を受信した送信側の通信装置１０は、自身のカウンタ２０の値をカウンタ２０の同期要求を送信した通信装置１０に送信する。送信側の通信装置１０は、カウンタ値を送信するときのＣＡＮフレームのデータフィールドにＭＡＣを設定しない。
【００３１】
カウンタ２０の同期要求に応答して送信側の通信装置１０から送信されたカウンタ値を受信部１２が受信すると、更新部２２は、受信したカウンタ値でカウンタ２０を書換えて送信側の通信装置１０のカウンタ２０と同期させる。
【００３２】
尚、受信側の通信装置１０が送信するカウンタ２０の同期要求に対し、受信側および送信側の通信装置１０ではない他の通信装置１０からカウンタ２０の値を受信側および送信側の通信装置１０が受信し、受信したカウンタ２０の値で自身のカウンタ２０を書換えてカウンタ２０を同期させてもよい。
【００３３】
受信側の通信装置１０の判定部１８は、カウンタ２０を同期させた状態で送信側の通信装置１０から受信部１２が受信するＣＡＮフレームについて、ＭＡＣが一致するか否かを判定する。受信側の通信装置１０は、ＭＡＣが一致する場合、カウンタずれ状態から正常状態に移行する。
【００３４】
受信側の通信装置１０は、カウンタずれ状態において、カウンタ２０の同期要求を送信部１４が送信してもＭＡＣが不一致であると、判定部１８が連続して判定する回数が規定の同期回数以上になると、受信側と送信側とで共通鍵およびカウンタ２０の少なくともいずれか一方がずれていると推定し、カウンタずれ状態から異常状態に移行する。
【００３５】
規定の同期回数は、ノイズ等による判定部１８の誤判定を考慮し、ＭＡＣの不一致原因が受信側と送信側とにおける共通鍵およびカウンタ２０の少なくともいずれか一方のずれであると推定できる適切な値に設定されている。後述する規定の合計不一致回数も、同じ理由で適切な値に設定されている。
【００３６】
また、受信側の通信装置１０は、正常状態において、受信部１２が受信するＣＡＮフレームについて、ＭＡＣが不一致であると判定部１８が判定する合計回数が規定の合計不一致回数以上になると、正常状態から異常状態に移行する。尚、合計不一致回数は連続不一致回数よりも大きい値である。
【００３７】
異常状態において、受信側の通信装置１０は、送信側の通信装置１０に対してカウンタ２０のリセットと共通鍵の更新とを要求するリセット更新要求を送信部１４から送信する。
【００３８】
受信側の通信装置１０がカウンタ２０のリセットと共通鍵の更新とを要求するリセット更新要求を送信すると、受信側の通信装置１０と、送信側の通信装置１０と、それ以外の他の通信装置１０とは、更新部２２により自身のカウンタ２０をリセットして初期化し、符号生成部１６により共通鍵を更新して再生成する。
【００３９】
異常状態において、受信側の通信装置１０の判定部１８は、カウンタ２０をリセットし共通鍵を更新した状態で送信側の通信装置１０から受信部１２が受信するＣＡＮフレームについて、ＭＡＣが一致するか否かを判定する。受信側の通信装置１０は、ＭＡＣが一致する場合、異常状態から正常状態に移行する。
【００４０】
異常状態において、受信側の通信装置１０は、カウンタ２０のリセットと共通鍵の更新とを要求するリセット更新要求を送信部１４から送信してもＭＡＣが不一致であると、判定部１８が連続して判定する回数が規定の連続リセット更新回数以上になると、ＭＡＣの不一致原因を特定できない異常であると推定し、異常状態からアラート状態に移行する。
【００４１】
規定の連続リセット更新回数は、ノイズ等による判定部１８の誤判定を考慮し、ＭＡＣの不一致原因を特定できない異常であると推定できる適切な値に設定されている。後述する規定の合計リセット更新回数も、同じ理由で適切な値に設定されている。
【００４２】
また、異常状態において、受信側の通信装置１０は、カウンタ２０のリセットと共通鍵の更新とを要求するリセット更新要求を送信部１４から送信してもＭＡＣが不一致であると、判定部１８が判定する合計回数が規定の合計リセット更新回数以上になると、異常状態からアラート状態に移行する。合計リセット更新回数は、連続リセット更新回数よりも大きい値に設定されている。
【００４３】
受信側の通信装置１０の報知部２６は、アラート状態に移行すると、ＭＡＣの不一致原因を特定できない異常を示す診断符号をフラッシュメモリに設定する。異常を示す診断符号は、例えば他の通信装置１０からの診断要求により読み出され、表示、点灯、音声等により異常が報知される。
【００４４】
報知部２６は、アラート状態に移行すると、送信部１４から報知用の通信装置１０に異常を送信させてもよい。
［３．効果］
以上説明した上記実施形態では、以下の効果を得ることができる。
【００４５】
（１）ＭＡＣが連続して不一致になる回数が規定の連続不一致回数以上になると、その原因が送信側と受信側とのカウンタ２０のずれであると推定し、カウンタ２０の同期要求を送信する。これにより、ＭＡＣが不一致である原因が送信側と受信側とのカウンタ２０のずれであれば、適切な処置としてカウンタ２０の同期を要求することにより、ＭＡＣが不一致である原因を解消できる。
【００４６】
（２）ＭＡＣが連続して不一致になる回数が規定の連続不一致回数以上になっても、共通鍵の更新を要求する前にまずカウンタ２０の同期を要求するので、カウンタ２０の同期よりも長い処理時間を要する共通鍵の更新の実行を極力避けることができる。通信装置１０の処理能力が低い通信システム、例えば車載のネットワークに通信装置１０が接続する通信システムにおいては、共通鍵の更新を極力避けることが望ましい。
【００４７】
（３）カウンタ２０の同期要求を送信してもＭＡＣが不一致になることが連続して発生し、その回数が規定の同期回数以上になるか、ＭＡＣが不一致になる合計回数が規定の合計不一致回数以上になると、ＭＡＣが不一致になる原因が送信側と受信側との共通鍵およびカウンタ２０の少なくともいずれか一方のずれであると推定し、カウンタ２０のリセットと共通鍵の更新とを要求するリセット更新要求を送信する。
【００４８】
これにより、ＭＡＣが不一致になる原因が送信側と受信側との共通鍵またはカウンタ２０のずれであれば、適切な処置としてカウンタ２０のリセットと共通鍵の更新とを要求することにより、ＭＡＣが不一致である原因を解消できる。
【００４９】
（４）異常状態において、カウンタ２０のリセットと共通鍵の更新とを要求してもＭＡＣが不一致になることが連続して発生し、その回数が規定の連続リセット更新回数以上になるか、カウンタ２０のリセットと共通鍵の更新とを要求してもＭＡＣが不一致になる合計回数が規定の合計リセット更新回数以上になると、異常を示す診断符号を設定するか、報知用の通信装置１０に異常を送信する。これにより、異常を報知することができる。
【００５０】
［４．他の実施形態］
（１）上記実施形態では、ＭＡＣが不一致になると推定する条件に応じて、カウンタ２０の同期要求と、カウンタ２０をリセットし共通鍵を更新するリセット更新要求とを実行した。これに対し、カウンタ２０の同期要求だけを実行してもよい。
【００５１】
（２）上記実施形態では、同じＣＡＮフレームのデータフィールドにデータとＭＡＣとを設定した。これに対し、異なるＣＡＮフレームでデータとＭＡＣとを別々に設定してもよい。
【００５２】
また、送信側の通信装置１０は、送信する同じＣＡＮフレームのデータフィールドに、データとＭＡＣと自身のカウンタ２０の少なくとも下位ビットの値とを設定してもよい。受信側の通信装置１０は、データフィールドに設定されたカウンタの値で自身のカウンタ２０の下位ビットを書換える。
【００５３】
（３）上記実施形態における１つの構成要素が有する機能を複数の構成要素として分散させたり、複数の構成要素が有する機能を１つの構成要素に統合させたりしてもよい。また、上記実施形態の構成の一部を省略してもよい。また、上記実施形態の構成の少なくとも一部を、他の上記実施形態の構成に対して付加又は置換してもよい。尚、特許請求の範囲に記載した文言のみによって特定される技術思想に含まれるあらゆる態様が本発明の実施形態である。
【００５４】
（４）上述した通信装置１０の他、当該通信装置１０を構成要素とする通信システム２、当該通信装置１０としてコンピュータを機能させるための通信プログラム、この通信プログラムを記録した記録媒体、通信方法など、種々の形態で本発明を実現することもできる。
【符号の説明】
【００５５】
２：通信システム、１０：通信装置、１２：受信部、１４：送信部、１６：符号生成部、１８：判定部、２０：カウンタ、２２：更新部、２４：フレーム生成部、２６：報知部、１００：ＣＡＮバス
【図１】
0006332194.tif 000002
【図２】
0006332194.tif 000003
【図３】
0006332194.tif 000004
【図４】
0006332194.tif 000005