JP2018014558A - 通信装置 - Google Patents
通信装置 Download PDFInfo
- Publication number
- JP2018014558A JP2018014558A JP2016141401A JP2016141401A JP2018014558A JP 2018014558 A JP2018014558 A JP 2018014558A JP 2016141401 A JP2016141401 A JP 2016141401A JP 2016141401 A JP2016141401 A JP 2016141401A JP 2018014558 A JP2018014558 A JP 2018014558A
- Authority
- JP
- Japan
- Prior art keywords
- communication
- message
- counter value
- code
- message authentication
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Abstract
【課題】メッセージ認証コードで通信メッセージを認証する場合、再認証に要する処理負荷を低減する技術を提供する。【解決手段】第1のコード生成部22は、通信データから第1のメッセージ認証コードを生成する。第2のコード生成部22は、記憶しているカウンタ値から第2のメッセージ認証コードを生成する。第3のコード生成部22は、第1のメッセージ認証コードと第2のメッセージ認証コードとを合成して第3のメッセージ認証コードを生成する。通信部26は、通信データと第3のメッセージ認証コードとカウンタ値とを他の通信装置と送受信する。認証部22は、受信する通信データから生成する第1のメッセージ認証コードとカウンタ値から生成する第2のメッセージ認証コードとを合成した第3のメッセージ認証コードと、受信する第3のメッセージ認証コードとが一致するか否かによって、受信する通信メッセージを認証するか否かを決定する。【選択図】図1
Description
本開示は、メッセージ認証コードにより通信メッセージを認証する技術に関する。
受信した通信メッセージが適正な通信装置から送信されたものか、不正な通信装置から送信されたものかを判定するために、通信メッセージにメッセージ認証コードを付加する技術が知られている。メッセージ認証コードによる認証は、送信側の通信装置と受信側の通信装置とで同じメッセージ認証コードの生成アルゴリズムを使用することが前提である。メッセージ認証コードを生成するときに、共通鍵を使用することもある。
送信側では通信データからコード生成アルゴリズでメッセージ認証コードを生成し、通信データとメッセージ認証コードとを送信する。受信側では、受信した通信データから自装置が記憶しているコード生成アルゴリズムでメッセージ認証コードを生成する。
そして、受信したメッセージ認証コードと受信側で生成したメッセージ認証コードとが一致すれば、受信した通信メッセージは適正な通信装置から送信されたものと判定し、一致しない場合には不正な通信装置から送信されたものであると判定する。
特許文献1には、通信装置がメッセージ認証コードを生成して送信する場合、さらに、各通信装置で同期のとれたカウンタ値と通信データとからメッセージ認証コードを生成する技術が記載されている。
特許文献1に記載の技術では、送信側の通信装置は、送信側で記憶しているカウンタ値と送信する通信データとからメッセージ認証コードを生成する。受信側の通信装置では、受信側で記憶しているカウンタ値と受信した通信データとからメッセージ認証コードを生成する。そして、受信側で生成したメッセージ認証コードと受信したメッセージ認証コードとが一致するか否かによって、受信した通信メッセージを認証するか否かを決定する。
特許文献1に記載の技術では、送信側の通信装置と受信側の通信装置との間でカウンタ値がずれると、送信側と受信側とでメッセージ認証コードが一致しなくなる。この場合、例えば、通信メッセージを受信した通信装置は、カウンタ値を更新して再認証を試みることがある。
メッセージ認証コードの生成には複雑な演算が必要であるため、再認証するたびに受信側の通信装置がメッセージ認証コードを生成すると、再認証に要する処理負荷が増加するという問題がある。
本開示の一側面は、メッセージ認証コードで通信メッセージを認証する場合、再認証に要する処理負荷を低減する技術を提供することにある。
本開示の一態様は、複数の通信装置(20)の間で通信メッセージの認証をメッセージ認証コードにより行う通信装置において、記憶部(24)と、第1のコード生成部(22、S402、S430、S454)と、第2のコード生成部(22、S404、S426、S432、S456、S458)と、第3のコード生成部(22、S406、S434、S460、S476)と、通信部(26、S410、S420、S452、S464、S470、S486)と、認証部(22、S436〜S442、S478〜S482、S484、S488)と、を備える。
記憶部は、各通信装置において所定のタイミングで更新されるカウンタ値を記憶している。第1のコード生成部は、通信メッセージの通信データから第1のメッセージ認証コードを生成する。第2のコード生成部は、記憶部が記憶しているカウンタ値から第2のメッセージ認証コードを生成する。第3のコード生成部は、第1のコード生成部が生成する第1のメッセージ認証コードと、第2のコード生成部が生成する第2のメッセージ認証コードとを合成して、通信メッセージを認証するための第3のメッセージ認証コードを生成する。
通信部は、通信データと第3のメッセージ認証コードとカウンタ値とを他の通信装置に送信し、通信データと第3のメッセージ認証コードとカウンタ値とを他の通信装置から受信する。
認証部は、通信部が受信する通信データから第1のコード生成部が生成する第1のメッセージ認証コードと記憶部が記憶しているカウンタ値から第2のコード生成部が生成する第2のメッセージ認証コードとを合成して第3のコード生成部が生成する第3のメッセージ認証コードと、通信部が受信する第3のメッセージ認証コードとが一致するか否かによって、通信部が受信する通信メッセージを認証するか否かを決定する。
この構成において、送信側の通信装置で生成した第3のメッセージ認証コードと、受信側で生成した第3のメッセージ認証コードとが一致しない場合、送信側のカウンタ値と受信側のカウンタ値とが一致していない可能性があると考えられる。
この場合、送信側と受信側とで生成した第3のメッセージ認証コードのうち、カウンタ値から生成される第2のメッセージ認証コードは一致しておらず、通信データから生成される第1のメッセージ認証コードは一致していると考えられる。つまり、通信メッセージに対する再認証のために、送信側と受信側とで第1のメッセージ認証コードを新たに生成する必要はなく、第1のメッセージ認証コードを再利用できる。
したがって、送信側と受信側とで生成した第3のメッセージ認証コードが一致しないために通信メッセージを再認証する場合、再認証に要する処理負荷を低減できる。
尚、この欄および特許請求の範囲に記載した括弧内の符号は、一つの態様として後述する実施形態に記載の具体的手段との対応関係を示すものであって、本発明の技術的範囲を限定するものではない。
尚、この欄および特許請求の範囲に記載した括弧内の符号は、一つの態様として後述する実施形態に記載の具体的手段との対応関係を示すものであって、本発明の技術的範囲を限定するものではない。
以下、本開示の実施形態を図に基づいて説明する。
[1.第1実施形態]
[1−1.構成]
図1に示す通信システム2は、例えば車両に搭載されている。通信システム2は、セントラルゲートウェイ10と、複数のECU20と、通信線100とを備えている。以下、セントラルゲートウェイ10をCGW10とも言う。ECUは、Electronic Control Unitの略である。通信線100として、例えばCANバスが使用される。CANは、Controller Area Networkの略であり、登録商標である。
[1.第1実施形態]
[1−1.構成]
図1に示す通信システム2は、例えば車両に搭載されている。通信システム2は、セントラルゲートウェイ10と、複数のECU20と、通信線100とを備えている。以下、セントラルゲートウェイ10をCGW10とも言う。ECUは、Electronic Control Unitの略である。通信線100として、例えばCANバスが使用される。CANは、Controller Area Networkの略であり、登録商標である。
尚、図1では、CANバスを通信線100とする一つのネットワークが図示されているが、実際には、車両のパワートレイン系、ボディ系、情報系等に分類された複数のネットワークがCGW10に接続している。
CGW10は、通信手順、データ形式等の異なる複数のネットワーク間で通信を行う場合の調整を行う。また、CGW10は、同じネットワークまたは異なるネットワーク間でメッセ認証コードを用いてECU同士が通信メッセージに対する認証を行う場合に、メッセージ認証コードを生成するためのカウンタ値を定期的に各ECUに送信する。以下、メッセージ認証コードを略してMACとも言う。
ECU20は、CPU22と、RAM、ROM、フラッシュメモリ等の半導体メモリを有するメモリ24と、通信回路26とを有する周知のマイクロコンピュータを中心に構成される。尚、ECU20を構成するマイクロコンピュータの数は1つでも複数でもよい。図1に示す複数のECU20の構成は実質的に同じであるから、一つのECU20を除き他のECU20の構成の図示は省略している。
ECU20の各種機能は、CPU22が非遷移的実体的記録媒体に格納されたプログラムを実行することにより実現される。図1の例では、メモリ24が、プログラムを格納した非遷移的実体的記録媒体に該当する。CPU22がプログラムを実行することにより、プログラムに対応する方法が実行される。
ECU20は、CPU22がプログラムを実行することで実現される機能の構成の1つとして、通信処理を行う機能を備える。ECU20における機能を実現する手法はソフトウェアに限るものではなく、その一部または全部の要素を、論理回路やアナログ回路等を組み合わせたハードウェアを用いて実現してもよい。
ECU20は、CGW10からカウンタ値を受信すると、送信する通信メッセージの生成用と、受信した通信メッセージの認証用とに分けて、受信したカウンタ値をメモリ24の別の場所に記憶する。
[1−2.処理]
(1)送信側のECU20が実行する通信処理を図2のフローチャートを用いて説明する。本処理は、所定時間間隔で常時実行される。
(1)送信側のECU20が実行する通信処理を図2のフローチャートを用いて説明する。本処理は、所定時間間隔で常時実行される。
ECU20は、S400の判定がYesであり、認証の必要な通信メッセージを送信する場合、S402において、送信する通信データと共通鍵とから、コード生成用アルゴリズムにより第1のMACを生成する。各ECU20は、第1のMACを生成する同じコード生成用アルゴリズムと共通鍵とを記憶している。
次に、S404においてECU20は、メモリ24に記憶しているメッセージ生成用のカウンタ値からコード生成用アルゴリズムにより第2のMACを生成する。各ECU20は、第2のMACを生成する場合、共通鍵は使用せず、同じコード生成用アルゴリズムを記憶している。第2のMACを生成するコード生成用アルゴリズムには、第1のMACを生成するコード生成用アルゴリズムよりも簡単なアルゴリズムが採用されている。
S406においてECU20は、S402で生成した第1のMACと、S404で生成した第2のMACとを、例えば第1のMACを上位ビットに設定し、第2のMACを下位ビットに設定するなどにより合成し、第3のMACを生成する。第1のMACと第2のMACとを合成して第3のMACを生成する方法は、各ECU20で共通である。
S408においてECU20は、図4に示すように、CANの通信フレーム200に、通信データとメッセージ生成用のカウンタ値の一部と第3のMACとを設定する。カウンタ値の一部は、カウンタ値の下位の所定数のビットである。
送信側のECU20がカウンタ値の一部だけを送信するのは、通信メッセージとして送信できるデータ量に制限がある場合である。送信側のECU20と受信側のECU20とで正常にカウンタ値が更新されていれば、カウンタ値の一部であっても、送信側のECU20と受信側のECU20とでカウンタ値は一致する。
S410においてECU20は、図4に示すように設定した通信フレームの情報を通信メッセージとして通信回路26から送信する。
(2)受信側のECU20が実行する通信処理を図3のフローチャートを用いて説明する。本処理は、所定時間間隔で常時実行される。
(2)受信側のECU20が実行する通信処理を図3のフローチャートを用いて説明する。本処理は、所定時間間隔で常時実行される。
S420の判定がYesであり、通信回路26が受信した受信した通信メッセージが認証の必要な通信メッセージの場合、S422においてECU20は、受信した通信メッセージを通信データとカウンタ値とMACとに分解する。ECU20は、分解した通信データとカウンタ値とMACとをメモリ24に記憶しておく。前述したように、受信する通信メッセージのカウンタ値は、カウンタ値の一部である。
S424においてECU20は、受信したカウンタ値の一部と、メモリ24に記憶している認証用のカウンタ値の一部とを比較し、受信したカウンタ値の一部の値が認証用のカウンタ値の一部の値以上であるか否かを判定する。
図5の左側に示すように、CGW10から各ECU20にカウンタ値としてmが送信されてから、送信側のECU20がメッセージを送信すると、送信側のECU20と受信側のECU20とがそれぞれメモリ24に記憶しているカウンタ値はmで一致する。
したがって、送信側のECU20が送信メッセージに設定したメッセージ送信用のカウンタ値の一部の値と、受信側のECU20がメモリ24に記憶している認証用のカウンタ値の一部の値とは一致する。
これに対し、図5の右側に示すように、送信側のECU20がメッセージを送信している途中、あるいはメッセージを送信後、受信側のECU20がメッセージを受信する前に、CGW10から新しいカウンタ値としてnが送信されることがある。
この場合、送信側のECU20は、メッセージ送信用のカウンタ値の一部としてmの一部を通信メッセージに設定する。一方、受信側のECU20が送信側のECU20から通信メッセージを受信するときにメモリ24に記憶している認証用のカウンタ値はnである。したがって、受信側のECU20において、受信する通信メッセージに設定されているカウンタ値の一部の値と、認証用のカウンタ値の一部の値とは一致しない。
S424の判定がYesであり、受信したカウンタ値の一部の値が認証用のカウンタ値の一部の値以上の場合、ECU20は処理をS428に移行する。
S424の判定がNoであり、受信したカウンタ値の一部が認証用のカウンタ値の一部未満の場合、ECU20は、送信側のECU20と受信側のECU20とにおいてカウンタ値がずれていると判断する。この場合、S426においてECU20は、認証用のカウンタ値を例えば−1して更新し、認証用のカウンタ値に上書きする。
S424の判定がNoであり、受信したカウンタ値の一部が認証用のカウンタ値の一部未満の場合、ECU20は、送信側のECU20と受信側のECU20とにおいてカウンタ値がずれていると判断する。この場合、S426においてECU20は、認証用のカウンタ値を例えば−1して更新し、認証用のカウンタ値に上書きする。
S428においてECU20は、今回受信した通信メッセージに対する初回の認証か否かを判定する。S428の判定がYesであり、今回受信した通信メッセージに対する初回の認証の場合、S430においてECU20は、共通鍵と初回に受信した通信データとから第1のMACを生成してメモリ24に記憶し、処理をS432に移行する。
S428の判定がNoであり、今回受信した通信メッセージに対する2回目以降の認証の場合、初回の認証で既に受信した通信データと共通鍵とから第1のMACを生成済みであるから、ECU20は処理をS432に移行する。
S432においてECU20は、認証用のカウンタ値から第2のMACを生成する。S434においてECU20は、初回の認証の際にS430で生成した第1のMACとS432で生成した第2のMACとを合成し、第3のMACを生成する。
S436の判定がYesであり、S434で生成した第3のMACと受信した第3のMACとが一致すると、S438においてECU20は、適正なECU20から送信された適正な通信メッセージであると認証する。そして、ECU20は受信した通信メッセージを以後の処理に使用する。
S436の判定がNoであり、S434で生成した第3のMACと受信した第3のMACとが一致しない場合、不正なECU20から送信された通信メッセージである可能性がある。そこで、S440においてECU20は、再認証を試みた回数が不正なECU20から送信された通信メッセージであると判定できる所定回数以上であるか否かを判定する。
再認証を試みた回数が所定回数未満であれば、ECU20は処理をS426に戻し、認証用のカウンタ値を更新する。2回目以降の更新では、S426においてECU20は、カウンタ値の不一致が上位ビットの桁上がりにより生じた可能性を考慮し、上位ビットを増減してカウンタ値を更新する。そして、ECU20は、S428以降の処理を実行する。
再認証を試みた回数が所定回数以上であれば、S442においてECU20は、受信している通信メッセージに対する認証を中止して通信メッセージを破棄し、本処理を終了する。
[1−3.効果]
以上説明した第1実施形態では、以下の効果を得ることができる。
(1)通信データと共通鍵とから第1のMACを生成し、各ECU20が同期して更新するカウンタ値から第2のMACを生成する。そして第1のMACと第2のMACとを合成して、通信メッセージの認証に用いる第3のMACを生成する。
以上説明した第1実施形態では、以下の効果を得ることができる。
(1)通信データと共通鍵とから第1のMACを生成し、各ECU20が同期して更新するカウンタ値から第2のMACを生成する。そして第1のMACと第2のMACとを合成して、通信メッセージの認証に用いる第3のMACを生成する。
これにより、送信側のECU20から送信された通信メッセージの第3のMACと受信側のECU20が生成する第3のMACとが一致しない場合、受信側のECU20は、認証用に記憶しているカウンタ値を更新して第2のMACを生成する。
そして、受信した通信データと受信側で記憶している共通鍵とから新たに第1のMACを生成することなく、初回の認証の際に生成した第1のMACと新たに生成した第2のMACとを合成して第3のMACを新たに生成する。
受信側のECU20は、受信側で新たに生成した第3のMACと受信した通信メッセージの第3のMACとが一致するか否かによって、受信した通信メッセージを認証するか否かを決定する。このように、受信側で再認証するために第3のMACを生成する場合、第2のMACだけを生成すればよいので、受信側のECU20の通信処理に要する負荷を低減できる。
(2)通信メッセージを再認証する場合、送信側のECU20と受信側のECU20とは通信することなく、受信側のECU20だけで再認証を行うので、再認証する場合の通信時間を低減できる。
上記第1実施形態では、ECU20が通信装置に対応し、CPU22が第1のコード生成部と第2のコード生成部と第3のコード生成部と認証部とに対応し、メモリ24が記憶部に対応し、通信回路26が通信部に対応する。
また、S410、S420が通信部としての処理に対応し、S402、S430が第1のコード生成部としての処理に対応し、S404、S426、S432が第2のコード生成部としての処理に対応し、S406、S434が第3のコード生成部としての処理に対応し、S436〜S442が認証部としての処理に対応する。
[2.第2実施形態]
[2−1.第1実施形態との相違点]
第2実施形態では、基本的な構成は第1実施形態と同様であるため、相違点について以下に説明する。尚、第2実施形態において、第1実施形態と同じ符号は同じ構成を示すものであって、先行する説明を参照する。
[2−1.第1実施形態との相違点]
第2実施形態では、基本的な構成は第1実施形態と同様であるため、相違点について以下に説明する。尚、第2実施形態において、第1実施形態と同じ符号は同じ構成を示すものであって、先行する説明を参照する。
第2実施形態では、図4において、カウンタ値のすべてのデータを通信メッセージに設定する点で第1実施形態と異なる。
[2−2.処理]
(1)送信側のECU20が実行する通信処理を図6のフローチャートを用いて説明する。本処理は、所定時間間隔で常時実行される。
[2−2.処理]
(1)送信側のECU20が実行する通信処理を図6のフローチャートを用いて説明する。本処理は、所定時間間隔で常時実行される。
S450の判定がYesであり、認証の必要な通信メッセージを送信する場合、S452においてECU20は、今回送信する通信メッセージが受信側のECU20から要求されたために送信する再送信メッセージであるか否かを判定する。受信側のECU20から再送信を要求されるのは、受信側のECU20で第3のMACが一致せず、再認証が必要な場合である。
S452の判定がNoであり、初回の送信メッセージの場合、S454においてECU20は、通信データと送信側で記憶している共通鍵とからコード生成用アルゴリズムにより第1のMACを生成してメモリ24に記憶し、処理をS458に移行する。
S452の判定がYesであり、再送信メッセージの場合、S456においてECU20は、第3のMACが一致しない理由がカウンタ値の不一致であることを考慮し、送信側でメッセージ送信用に記憶しているカウンタ値を更新してS458に処理を移行する。ECU20は、例えばメッセージ送信用のカウンタ値を+1して更新する。
S458においてECU20は、メッセージ送信用に記憶しているカウンタ値からコード生成用アルゴリズムにより第2のMACを生成する。S460においてECU20は、S454で生成した第1のMACとS458で生成した第2のMACとを合成し、第3のMACを生成する。
S462においてECU20は、CANの通信フレームに通信データとメッセージ送信用のカウンタ値と第3のMACとを設定して通信メッセージを組み立てる。通信メッセージの構成は、図4に示すカウンタ値の一部がカウンタ値のすべてのデータになっている以外、第1実施形態と同じである。464においてECU20は、S462で組み立てた通信メッセージを送信する。
(2)受信側のECU20が実行する通信処理を図7のフローチャートを用いて説明する。本処理は、所定時間間隔で常時実行される。
ECU20は、S470の判定がYesであり、受信した通信メッセージが認証の必要な通信メッセージの場合、S472において、受信した通信メッセージを通信データとカウンタ値とMACとに分解する。
ECU20は、S470の判定がYesであり、受信した通信メッセージが認証の必要な通信メッセージの場合、S472において、受信した通信メッセージを通信データとカウンタ値とMACとに分解する。
S474においてECU20は、受信したカウンタ値とメモリ24に記憶している認証用のカウンタ値とを比較し、受信したカウンタ値が認証用のカウンタ値以上であるか否かを判定する。
図8の左側に示すように、CGW10から各ECU20にカウンタ値としてmが送信されてから、送信側のECU20がメッセージを送信すると、送信側のECU20がメモリ24に記憶しているメッセージ送信用のカウンタ値と、受信側のECU20がメモリ24に記憶している認証用のカウンタ値とは一致する。
したがって、送信側のECU20が送信メッセージに設定したカウンタ値と、受信側のECU20がメモリ24に記憶している認証用のカウンタ値とは一致する。
これに対し、図8の右側に示すように、送信側のECU20がメッセージを送信している途中、あるいはメッセージを送信後であって、受信側のECU20がメッセージを受信する前に、CGW10から新しいカウンタ値が送信されることがある。この場合、送信側のECU20が送信メッセージに設定したカウンタ値と、受信側のECU20がメモリ24に記憶している認証用のカウンタ値とは一致しない。
これに対し、図8の右側に示すように、送信側のECU20がメッセージを送信している途中、あるいはメッセージを送信後であって、受信側のECU20がメッセージを受信する前に、CGW10から新しいカウンタ値が送信されることがある。この場合、送信側のECU20が送信メッセージに設定したカウンタ値と、受信側のECU20がメモリ24に記憶している認証用のカウンタ値とは一致しない。
S474の判定がNoであり、受信したカウンタ値が認証用のカウンタ値未満の場合、適正なECU20からの通信メッセージであるが受信したカウンタ値が認証用のカウンタ値からずれていることを考慮し、ECU20は処理をS484に移行する。
S474の判定がYesであり、受信したカウンタ値がメモリ24に記憶している認証用のカウンタ値以上の場合、S476においてECU20は、受信した通信データと受信側で記憶している共通鍵と認証用のカウンタ値とから第3のMACを生成する。
S478の判定がYesであり、受信した通信メッセージの第3のMACとS476で生成した第3のMACとが一致すると、S480においてECU20は、適正なECU20から送信された適正な通信メッセージであると認証し、以後の処理に使用する。
S478の判定がNoであり、受信した通信メッセージの第3のMACとS476で生成した第3のMACとが一致しない場合、不正なECU20から送信された不正な通信メッセージである可能性がある。そこで、S482においてECU20は、受信している通信メッセージに対する認証を中止して通信メッセージを破棄し、本処理を終了する。
S484においてECU20は、通信メッセージに対する再認証を試みた回数が不正なECU20から送信された通信メッセージであると判定できる所定回数以上であるか否かを判定する。S484の判定がNoであり、再認証を試みた回数が所定回数未満であれば、S486においてECU20は、送信側のECU20に通信メッセージの再送信を要求する。
S484の判定がYesであり、再認証を試みた回数が所定回数以上の場合、不正なECU20からの不正な通信メッセージであると判断し、S488においてECU20は、受信している通信メッセージに対する認証を中止して通信メッセージを破棄し、本処理を終了する。
[2−3.効果]
以上説明した第2実施形態では、以下の効果を得ることができる。
通信データと共通鍵とから第1のMACを生成し、各ECU20が同期して更新するカウンタ値から第2のMACを生成する。そして第1のMACと第2のMACとを合成して、通信メッセージの認証に用いる第3のMACを生成する。
以上説明した第2実施形態では、以下の効果を得ることができる。
通信データと共通鍵とから第1のMACを生成し、各ECU20が同期して更新するカウンタ値から第2のMACを生成する。そして第1のMACと第2のMACとを合成して、通信メッセージの認証に用いる第3のMACを生成する。
受信側のECU20から再送信を要求された送信側のECU20は、カウンタ値を更新し、更新したカウンタ値で第2のMACを生成する。通信データと共通鍵とに変化はないので、初回の送信で生成した第1のMACをそのまま使用して第2のMACと合成し、第3のMACを新たに生成する。
そして送信側のECU20は、新たに生成した第3のMACと通信データと更新したカウンタ値とを通信メッセージとして受信側のECU20に再送信する。このように、再送信を要求された送信側のECU20は、第3のMACを生成する場合、第2のMACだけを生成すればよいので、送信側のECU20の通信処理に要する負荷を低減できる。
上記第2実施形態では、S454が第1のコード生成部としての処理に対応し、S456、S458が第2のコード生成部としての処理に対応し、S460、S476が第3のコード生成部としての処理に対応し、S464、S470、S486が通信部としての処理に対応し、S474、S478〜S482、S484、S488が認証部としての処理に対応する。
[3.他の実施形態]
(1)カウンタ値の一部だけを通信メッセージに設定する第1実施形態では、第3のMACが一致しない場合、受信側のECU20は、送信側のECU20と通信することなく、受信側でカウンタ値を更新して再認証を行った。
(1)カウンタ値の一部だけを通信メッセージに設定する第1実施形態では、第3のMACが一致しない場合、受信側のECU20は、送信側のECU20と通信することなく、受信側でカウンタ値を更新して再認証を行った。
これに対し、第1の実施形態において、第2の実施形態と同様に、第3のMACが一致しない場合、受信側のECU20は、送信側のECU20に再送信を要求してもよい。送信側のECU20では、メッセージ送信用のカウンタ値を更新して通信メッセージを再送信する。
(2)カウンタ値のすべてのデータを通信メッセージに設定する第2実施形態では、第3のMACが一致しない場合、受信側のECU20は、送信側のECU20に再送信を要求した。これに対し、第2の実施形態において、第1の実施形態と同様に、第3のMACが一致しない場合、受信側のECU20は、送信側のECU20と通信することなく受信側でカウンタ値を更新して再認証を行ってもよい。
(3)上記第2実施形態のS486で、受信側のECU20が送信側のECU20に再送信を要求する場合、受信側のECU20が記憶している認証用のカウンタ値を一緒に送信してもよい。この場合、再送信要求と認証用のカウンタ値とを受信した送信側のECU20は、受信した認証用のカウンタ値から第2のMACを生成し、初回の送信で生成した第1のMACと合成して第3のMACを生成する。
(4)上記実施形態では、カウンタ値から第2のMACを生成する場合、共通鍵を使用しなかった。これに対し、カウンタ値と共通鍵とから第2のMACを生成してもよい。
(5)上記の通信装置は車両に搭載されるものに限らず、どのような分野で使用されるものであってもよい。
(5)上記の通信装置は車両に搭載されるものに限らず、どのような分野で使用されるものであってもよい。
(6)上記の通信装置は、CANに限らず、通信メッセージの認証をメッセージ認証コードで行うものであればどのような通信に使用されてもよい。通信は、有線、無線のいずれでもよい。
(7)上記実施形態では、CGW10が各ECU20にカウンタ値を送信した。これ以外にも、いずれかのECU20が送信メッセージを送信する毎に、各ECU20がカウンタ値を更新してもよい。また、車載のECU20の場合、エンジンスタート時に1回、各ECU20がカウンタ値を更新してもよい。
(8)上記実施形態における一つの構成要素が有する複数の機能を複数の構成要素によって実現したり、一つの構成要素が有する一つの機能を複数の構成要素によって実現したりしてもよい。また、複数の構成要素が有する複数の機能を一つの構成要素によって実現したり、複数の構成要素によって実現される一つの機能を一つの構成要素によって実現したりしてもよい。また、上記実施形態の構成の一部を省略してもよい。また、上記実施形態の構成の少なくとも一部を、他の上記実施形態の構成に対して付加又は置換してもよい。尚、特許請求の範囲に記載した文言のみによって特定される技術思想に含まれるあらゆる態様が本発明の実施形態である。
(9)上述した通信装置の他、当該通信装置を構成要素とする通信システム、当該通信装置としてコンピュータを機能させるための通信制御プログラム、この通信制御プログラムを記録した記録媒体、通信制御方法など、種々の形態で本発明を実現することもできる。
20:ECU(通信装置)、22:CPU(第1のコード生成部、第2のコード生成部、第3のコード生成部、認証部)、24:メモリ(記憶部)、26:通信回路(通信部)
Claims (5)
- 複数の通信装置(20)の間で通信メッセージの認証をメッセージ認証コードにより行う通信装置において、
各通信装置において所定のタイミングで更新されるカウンタ値を記憶しているように構成された記憶部(24)と、
前記通信メッセージの通信データから第1のメッセージ認証コードを生成する第1のコード生成部(22、S402、S430、S454)と、
前記記憶部が記憶している前記カウンタ値から第2のメッセージ認証コードを生成する第2のコード生成部(22、S404、S426、S432、S456、S458)と、
前記第1のコード生成部が生成する前記第1のメッセージ認証コードと、前記第2のコード生成部が生成する前記第2のメッセージ認証コードとを合成して、前記通信メッセージを認証するための第3のメッセージ認証コードを生成する第3のコード生成部(22、S406、S434、S460、S476)と、
前記通信データと前記第3のメッセージ認証コードと前記カウンタ値とを他の通信装置に送信し、前記通信データと前記第3のメッセージ認証コードと前記カウンタ値とを他の通信装置から受信する通信部(26、S410、S420、S452、S464、S470、S486)と、
前記通信部が受信する前記通信データから前記第1のコード生成部が生成する前記第1のメッセージ認証コードと前記記憶部が記憶している前記カウンタ値から前記第2のコード生成部が生成する前記第2のメッセージ認証コードとを合成して前記第3のコード生成部が生成する前記第3のメッセージ認証コードと、前記通信部が受信する前記第3のメッセージ認証コードとが一致するか否かによって、前記通信部が受信する前記通信メッセージを認証するか否かを決定する認証部(22、S436〜S442、S474、S478〜S482、S484、S488)と、
を備える通信装置。 - 請求項1に記載の通信装置において、
前記第3のメッセージ認証コードが一致しないために前記認証部(S436)が前記通信メッセージを認証できない場合、前記第2のコード生成部(S426、S432)は、前記通信部が受信した前記カウンタ値を更新し、更新した前記カウンタ値から前記第2のメッセージ認証コードを生成し、
前記第3のコード生成部(S434)は、初回の認証の際に前記第1のコード生成部が生成した前記第1のメッセージ認証コードと、前記第2のコード生成部が更新した前記カウンタ値から生成した前記第2のメッセージ認証コードとを合成して新たな前記第3のメッセージ認証コードを生成し、
前記認証部(S436〜S442)は、前記通信部が初回に受信した前記第3のメッセージ認証コードと前記第3のコード生成部が新たに生成した前記第3のメッセージ認証コードとが一致するか否かによって、前記通信部が受信する前記通信メッセージを認証するか否かを決定する、
通信装置。 - 請求項1に記載の通信装置において、
送信側と受信側との前記カウンタ値がずれていると前記認証部(S474)が判定すると、前記通信部(S486)は送信側の前記通信装置に再送信を要求する、
通信装置。 - 請求項3に記載の通信装置において、
前記通信部(S452)が他の前記通信装置から再送信の要求を受信すると、前記第2のコード生成部(S456、S458)は、更新した前記カウンタ値から前記第2のメッセージ認証コードを生成し、
前記第3のコード生成部(S460)は、前記第1のコード生成部が初回に生成した前記第1のメッセージ認証コードと、前記第2のコード生成部が更新した前記カウンタ値から生成した前記第2のメッセージ認証コードとを合成して新たな前記第3のメッセージ認証コードを生成し、
前記通信部(S464)は、前記通信データと前記第3のコード生成部が新たに生成した前記第3のメッセージ認証コードと前記第2のコード生成部が更新した前記カウンタ値とを送信する、
通信装置。 - 請求項1から4のいずれか一項に記載の通信装置において、
前記認証部(S440、S442、S484、S488)は、前記通信メッセージに対する認証を所定回数以上試みても認証できない場合、前記通信メッセージに対する認証を中止する、
通信装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2016141401A JP2018014558A (ja) | 2016-07-19 | 2016-07-19 | 通信装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2016141401A JP2018014558A (ja) | 2016-07-19 | 2016-07-19 | 通信装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2018014558A true JP2018014558A (ja) | 2018-01-25 |
Family
ID=61021279
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2016141401A Pending JP2018014558A (ja) | 2016-07-19 | 2016-07-19 | 通信装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2018014558A (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112825500A (zh) * | 2019-11-21 | 2021-05-21 | 丰田自动车株式会社 | 车辆通信装置、通信异常的判定方法以及记录介质 |
US20220255752A1 (en) * | 2021-02-09 | 2022-08-11 | Ford Global Technologies, Llc | Vehicle computing device authentication |
-
2016
- 2016-07-19 JP JP2016141401A patent/JP2018014558A/ja active Pending
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112825500A (zh) * | 2019-11-21 | 2021-05-21 | 丰田自动车株式会社 | 车辆通信装置、通信异常的判定方法以及记录介质 |
CN112825500B (zh) * | 2019-11-21 | 2024-05-03 | 丰田自动车株式会社 | 车辆通信装置、通信异常的判定方法以及记录介质 |
US20220255752A1 (en) * | 2021-02-09 | 2022-08-11 | Ford Global Technologies, Llc | Vehicle computing device authentication |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107846395B (zh) | 确保车载总线上的通信安全的方法、系统、介质和车辆 | |
CN106899404B (zh) | 基于预共享密钥的车载can fd总线通信系统及方法 | |
JP6409849B2 (ja) | 通信システム及び通信方法 | |
US9866570B2 (en) | On-vehicle communication system | |
US11245535B2 (en) | Hash-chain based sender identification scheme | |
US8943310B2 (en) | System and method for obtaining a digital certificate for an endpoint | |
WO2017187924A1 (ja) | 演算装置、認証システム、認証方法 | |
US10461938B2 (en) | Method for manipulation protection | |
US20120114123A1 (en) | Method for securely broadcasting sensitive data in a wireless network | |
WO2019033822A1 (zh) | 数字证书的生成、认证方法、通信设备及存储介质 | |
KR20150135032A (ko) | Puf를 이용한 비밀키 업데이트 시스템 및 방법 | |
CN111901109B (zh) | 基于白盒的通信方法、装置、设备和存储介质 | |
JP2018121220A (ja) | 車載ネットワークシステム | |
US10749878B2 (en) | Communication system, count value synchronization method, and count value synchronization program product | |
JP2018014558A (ja) | 通信装置 | |
US11303444B2 (en) | Method for synchronized signature with additive RSA key splitting using early floating exponent negotiation | |
KR20090002328A (ko) | 무선 센서 네트워크에서의 새로운 장치 참여 방법 | |
JP2023519059A (ja) | ネットワークのセキュリティ手段を高めるネットワーク上におけるデータ交換のための方法およびシステムおよびその種のシステムを包含する乗り物 | |
EP3860077A1 (en) | Secured communication between a device and a remote server | |
JP6683105B2 (ja) | 通信システム | |
JP6915717B2 (ja) | 通信システム | |
JP2013121071A (ja) | 中継システム及び、当該中継システムを構成する中継装置、外部装置 | |
JP6919430B2 (ja) | ネットワークシステム | |
CN109905345A (zh) | 通信方法、通信装置和通信设备 | |
WO2021136072A1 (zh) | 通信方法和电子设备 |