JP2023519059A - ネットワークのセキュリティ手段を高めるネットワーク上におけるデータ交換のための方法およびシステムおよびその種のシステムを包含する乗り物 - Google Patents

ネットワークのセキュリティ手段を高めるネットワーク上におけるデータ交換のための方法およびシステムおよびその種のシステムを包含する乗り物 Download PDF

Info

Publication number
JP2023519059A
JP2023519059A JP2022535172A JP2022535172A JP2023519059A JP 2023519059 A JP2023519059 A JP 2023519059A JP 2022535172 A JP2022535172 A JP 2022535172A JP 2022535172 A JP2022535172 A JP 2022535172A JP 2023519059 A JP2023519059 A JP 2023519059A
Authority
JP
Japan
Prior art keywords
mac
node
message authentication
authentication code
data
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
Application number
JP2022535172A
Other languages
English (en)
Inventor
アレッサンドロ コルッチ,フランチェスコ
マズルコ,アレッサンドロ
Original Assignee
エフピーティー インダストリアル ソチエタ ペル アツィオーニ
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by エフピーティー インダストリアル ソチエタ ペル アツィオーニ filed Critical エフピーティー インダストリアル ソチエタ ペル アツィオーニ
Publication of JP2023519059A publication Critical patent/JP2023519059A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/12Applying verification of the received information
    • H04L63/123Applying verification of the received information received data contents, e.g. message integrity
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3236Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
    • H04L9/3242Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions involving keyed hash functions, e.g. message authentication codes [MACs], CBC-MAC or HMAC
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/64Protecting data integrity, e.g. using checksums, certificates or signatures
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/40Bus networks
    • H04L12/40006Architecture of a communication node
    • H04L12/40013Details regarding a bus controller
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/40Bus networks
    • H04L12/40143Bus networks involving priority mechanisms
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/40Bus networks
    • H04L12/40169Flexible bus arrangements
    • H04L12/40176Flexible bus arrangements involving redundancy
    • H04L12/40189Flexible bus arrangements involving redundancy by using a plurality of bus systems
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/12Protocols specially adapted for proprietary or special-purpose networking environments, e.g. medical networks, sensor networks, networks in vehicles or remote metering networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3271Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using challenge-response
    • H04L9/3273Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using challenge-response for mutual authentication
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/84Vehicles
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W4/00Services specially adapted for wireless communication networks; Facilities therefor
    • H04W4/30Services specially adapted for particular environments, situations or purposes
    • H04W4/40Services specially adapted for particular environments, situations or purposes for vehicles, e.g. vehicle-to-pedestrians [V2P]
    • H04W4/48Services specially adapted for particular environments, situations or purposes for vehicles, e.g. vehicle-to-pedestrians [V2P] for in-vehicle communication

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Power Engineering (AREA)
  • Computing Systems (AREA)
  • General Health & Medical Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Small-Scale Networks (AREA)
  • Medical Informatics (AREA)
  • Bioethics (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)

Abstract

プロトコルに従って動作し、送信バス(4)と第1のノード(E1)と第2のノード(EN)とを含む通信ネットワーク(2)上におけるデータ交換のための方法。第1のノードは、第1および第2の情報データ(Data1、Data2)を伝送する第1および第2のデータ・フレーム(10)を構成するステップと;第1および第2の情報データの関数として第1のメッセージ認証コード(MAC1)を計算するステップと;第1のメッセージ認証コード(MAC1)を伝送する第3のデータ・フレーム(20)を構成するステップと;このように構成されたすべてのデータ・フレームを送信するステップとを実行する。第2のノードは、第1、第2、第3のデータ・フレームを受信するステップと、第1および第2の情報データおよび第1のメッセージ認証コードを抽出するステップと;抽出した第1および第2の情報データの関数として第2のメッセージ認証コード(MACEXP)を計算するステップと;抽出したメッセージ認証コードと計算したメッセージ認証コードとを、それらの同一性を検証するために比較するステップとを実行する。

Description

関連出願の相互参照
本件特許出願は、2019年12月10日に出願されたイタリア特許出願第102019000023544号の優先権を主張するものであり、当該出願の開示のすべては、参照によりこれに援用される。
本発明は、通信ネットワーク上におけるデータ交換、特にネットワーク上において送信されるデータのセキュリティ手段を高めるデータ交換のための方法およびシステム、およびその種のシステムを包含する乗り物に関する。
自動車のための近代的な電子システムは、シリアル・バスおよびゲートウェイを介してネットワーク内において互いに通信する電子コントロール・ユニット(ECU)上において動作するソフトウエアの使用を提供する。現在のシステムの大半は、たとえば、交換されるデータを改変する意図を伴って生成され、かつ機能障害、モータ・コントロール・アプリケーション、および/または乗り物アプリケーションの改変またはクラッシュを生じさせる内部または外部攻撃に対するオンボード・データのセキュリティについての考慮の下に設計がされていない。
現在の自動車電子システムの設計のために使用されているプロセス、方法、および機器類は、信頼性およびコストの最適化に傾注されている。ランダム故障に関する自動車電子システムの信頼性をテストするための方法および機器類は、商的に入手可能である。
しかしながら、ハードウエアおよびソフトウエア・アーキテクチャの開発の間にセキュリティに関係する側面が殆ど考慮されていない;同時に標準通信プロトコルもまた、攻撃を防止し、または軽減するために共有される方法を提供しない。
オンボード乗り物通信ネットワークは、結局のところ、乗り物内のECU間の全通信が、送信側および受信側のアイデンティティが損なわれていないことを保証するに充分な認証メカニズムなしに実行されることから比較的単純な態様での無権限アクセスを可能にするために脆弱である。
残念なことに、たとえば、数あるうちのいくつかを挙げれば、CAN(コントローラ・エリア・ネットワーク)、FlexRay(フレックスレイ)、MOST(モスト)、およびLIN(リン)等の現在の通信ネットワーク・プロトコルは、認証を要求しないか、または最良の場合でもデータの完全性を保証するための誤りコントロール・メカニズム(CRC)を有するに過ぎず、平文でメッセージが送信される。
したがって、コントロール・ユニット間においては、不正な通信の可能性が存在する。
とりわけCANプロトコルに関して言えば、上に述べられている欠点を克服するために、セキュリティの改善をねらいとして、特に、メッセージの真正および情報の新鮮さの意味において多様な解決策が提案されている。
たとえば、非特許文献1は、コントロール・コードに関係する分野を含ませるために、CANメッセージの構造、またはフォーマットの再検討を提案している。しかしながら、その種の解決策は、実装されるプロトコルの一般適合を必然的なものとし、これは、新しいメッセージ構造の翻訳を可能にしなければならない。
そのほかの技術的解決策は、保護されるべき具体的なメッセージ内に含まれるアプリケーション・データに関して計算されるコントロール情報を伝送するべく適合されたコントロール機能を有する新しいメッセージの導入を提供する。これに関しては、非特許文献2を参照されたい。併せて非特許文献3も参照されたい。しかしながら、これらの解決策は、ネットワーク上のトラフィックおよび演算負荷が有意に増加するために最適ではない。
さらなる解決策は、データ・レートの増加(>1メガビット/秒)およびペイロードの増加(>8バイト)を伴い、データ伝送を最適化し、したがって、セキュリティの改善をねらいとした解決策の実装の可能性を増加させるCAN-FDと呼ばれる、より最近になって導入されたCANプロトコルの使用を提供する。しかしながら、この解決策は、オンボード乗り物データ交換システムの再適合を必要とするという欠点を有し、新しいプロトコルへの変換を必須とし、したがって結果として生じるコストを伴う。
ウエダ・ヒロシほか著「Security Authentication System for In-Vehicle Network(セキュリティ・オーセンティケーション・システム・フォア・インビークル・ネットワーク)」、SEI TECHNICAL REVIEW(セイ・テクニカル・レビュー)、No.81、2015年10月 Chung-Wei Lin(チャン・ウェイ・リン)ほか著「Cyber-Security for the Controller Area Network(CAN)Communication Protocol(サイバー・セキュリティ・フォア・ザ・コントローラ・エリア・ネットワーク(CAN)コミュニケーション・プロトコル)」、ASE Conference on Automated Software Engineering(ASEカンファレンス・オン・オートメイテッド・ソフトウエア・エンジニアリング)、2012年 Pal-Stefan Murvay(パル・ステファン・マーベイ)ほか著「Security Shortcomings and Countermeasures for the SAE J1939 Commercial Vehicle Bus Protocol(セキュリティ・ショートカミングス・アンド・カウンターメジャーズ・フォア・ザ SAE J1939 コマーシャル・ビークル・バス・プロトコル)」、IEEE Transactions on Vehicular Technology(IEEEトランザクション・オン・ビーキュラー・テクノロジー)、第67巻、第5号、2018年5月
本発明の目的は、同一乗り物ネットワークに属するECUの間において転送される情報のセキュリティを増加することを、効率的かつコスト効果的な態様で、かつ演算負荷の増加および/またはハードウエア・リソースの修正の必要性を伴うことなく可能にする、上に述べられている欠点に対する解決策を提供することとする。
したがって、本発明によれば、付随する特許請求の範囲に定義されているとおり、通信ネットワーク上におけるデータ交換のための方法およびシステム、およびその種のシステムを包含する乗り物が提供される。
本発明のより良好な理解のために、以下、非限定的な例として、次に挙げる添付図面を参照して好ましい実施態様を説明する。
乗り物内に実装されるデータ送信/受信ネットワークに属するノード間のネットワークを略図的に図解した図である。 図1のネットワークのノード間において交換されるデータ・フレームを図解した図である。 図1のネットワークのノードによって実装される方法の送信における場合を図解したフローチャートである。 図1のネットワークのノード間において交換される認証フレームを図解した図である。 図1のネットワークのノードによって実装される方法の受信における場合を図解したフローチャートである。 送信ステップの間における図1のネットワークのノードによって実行される動作を図解した機能ブロック図である。 受信ステップの間における図1のネットワークのノードによって実行される動作を図解した機能ブロック図である。 ローカル単調カウンタの同期ステップの間における図1のネットワークのノードによって実行される動作を図解した機能ブロック図である。 ローカル単調カウンタの同期ステップの間における図1のネットワークのノードによって実行される動作を図解した機能ブロック図である。 図1のネットワークを包含する乗り物を略図的に図解した図である。
図1は、送信/受信プロトコルに従って動作する通信ネットワーク2を略図的に示している。ネットワーク2は、複数のノードE、E、・・・、Eが接続されるバス4を含む(これにおいて、EはN番目のノードを表す;ただし、Nは、具体的な用途に応じた必要性に従って選択される)。
本発明の1つの実施態様においては、送信プロトコルがCAN(「コントローラ・エリア・ネットワーク」)タイプである。この場合においては、バス4がCANバスである。本発明の文脈においては、自動車セクタにおいて使用されるべく適合され、かつ乗り物1(図1には、略図的に図解されている)内にインストールされるバージョン2.0(特に、2.0Aまたは2.0B)に従ったCANプロトコルを明示的に参照する。しかしながら、ここで述べられていることは、自動車セクタに限定されず、一般に、CANプロトコルの使用が提供されるすべてのセクタにおいて適用可能である。以下においてより明白となるとおり、本発明はまた、CANプロトコルとは異なるタイプのネットワーク、および関連プロトコルに実装することも可能である。
図1に関して言えば、各ノードE-Eが、乗り物1に属する電子コントロール・ユニットまたはECUである。
CANバス4は、異なるタイプのメッセージ(または、フレーム)を送信することが可能であり、それらの中には次のものがある:データ・フレーム、すなわちノードが送信するデータを含んでいるフレーム;リモート・フレーム、すなわち具体的な識別子の送信を要求するフレーム;エラー・フレーム、すなわちエラーを検出したノードによって送信されるフレーム;過負荷フレーム、すなわちデータ・フレームおよび/またはリモート・フレームの間に遅延を導くフレーム。
この開示の文脈において、リモートフレーム、エラーフレーム、および過負荷フレームは無関係であり、したがって、以下において論ずることはしない。
図2は、送信ノードE-Eと1つ以上の受信ノードE-Eの間において転送されることになるデータを含むデータ・フレーム10を図解している。以下においては、データ・フレーム10を、用語「メッセージ」によっても参照する。異なるメッセージは、通常、必然ではないが、互いに異なるタイプの情報コンテンツ(すなわち、伝送されるデータ)によって特徴付けられる。
データ・フレーム10は、例として述べるが、特に、次の5つのフィールド10a-10eを含む:
- それ自体は周知の態様でデータ・フレーム10の開始を定義するため、および潜在的な衝突を管理するために使用される1つ以上のサブフィールドを含むヘッダ・フィールド10a;
- 受信ノードへ転送されなければならない、ノードによって送信される有用なデータを含むデータ・フレーム10の情報負荷を表すバイト(0から8バイトまで)を含むデータまたはペイロード・フィールド10b;
- メッセージ内に含まれているエラーをチェックするためのチェック・シーケンスを含む巡回冗長検査(CRC)フィールド10c;
- 受信ノードによる受信の確認のためのフィールドとして作用する肯定応答(ACK)フィールド10d;
- エンド・フィールド(EOF)10e。
図2に図解されている例は、可能性のあるデータ・フレームの例証であり、異なるバージョンのCANプロトコルが、異なるタイプのフィールドを有するデータ・フレームを定義することは可能である。しかしながら、このことは、いずれかのバージョンのCANプロトコルに従って定義される任意のタイプのデータ・フレーム10に対して適用可能な本発明と無関係である。
図3は、本発明のある態様に従った送信ノードによるネットワーク2上のデータ送信のためのプロシージャを、フローチャートを用いて図解している。送信ノードによる送信は、特定のノードをそれの受信者として有することが可能であるか、またはブロードキャスト・モードでそれを生じさせることが可能である。
非限定的な例として述べるが、以下においては、ネットワーク2のノードのうちの1つ(たとえば、ノードE)が、特定の受信ノード(たとえば、ノードE)へ向けた複数のメッセージMsg1-Msg6をCANバス4へ送信する。以下の説明は、類推によって、またそれ自体はこの分野の当業者に明白な態様で、送信ブロードキャストに対しても適用可能である。
通常、ノードEからノードEへのデータの送信が単一メッセージの送信で終了することはなく、複数のメッセージMsg1-Msg6がまとまってリンクされ、すなわちノードEからノードEへ順に送信される。メッセージMsg1-Msg6は、例として述べるが、図2に図解されている形式を有し、それぞれ自身のペイロード・フィールド10b内において、それぞれの情報データData1-Data6を伝送する。
メッセージMsg1-Msg6は、適切な順序で送信されるために、送信ノードEのキュー(送信バッファ)内に置かれる。
したがって、図3のステップ101を参照すると、送信ノードEが、メッセージMsg1-Msg6のサブセット、すなわち、ここではメッセージMsg1、Msg2、およびMsg3によって形成されるサブグループを送信する。このステップ101においては、送信ノードEが、2以上の任意の数のメッセージを送信することが可能である。ノードEとEの間における通信が単一のメッセージを伴って完了する場合においては、その種の単一のメッセージが送信されるだけであることは明白である。
次のステップ102においては、送信ノードEが受信ノードEへ、「メッセージ認証コード」(MAC)と呼ばれるコントロール・メッセージを送信する。このステップ102においては、ステップ101において送信されたメッセージMsg1-Msg3のそれぞれのペイロード・フィールド10b内に含められているデータData1-Data3の関数として、送信されたMAC(MACとして識別される)が計算される。
さらなる実施態様によれば、送信されるMACコードは、ビットの点から見たメッセージ全体の、またはメッセージのフィールドまたはサブフィールドのあらかじめ定義済みのサブセットのコンテンツに基づいて計算することが可能である。以下においては、説明を簡明に保つため、また一般性を失わないために、ペイロードのみがMACコードの計算に寄与する場合を考察する。
MACコードを伝送するフレーム(以下においては「認証フレーム」と呼ぶ)は、それを構成するフィールドの、および伝送されるバイト数の構造またはフォーマットの点から見てデータ・フレーム、たとえば図2のデータ・フレーム10と類似する。たとえば、認証フレーム20(たとえば、ステップ102において計算されたMACを伝送するフレーム)が図解されている図4を参照されたい。本発明の少なくとも1つの実施態様において、認証フレーム20は、CANプロトコルによって定義されるデータ・フレームとの区別が完全に不可能である。
具体的に述べれば、この例において、認証フレーム20が、図2を参照して上で述べたヘッダ・フィールド10aと、巡回冗長検査フィールド10cと、肯定応答フィールド10dと、エンド・フィールド10eを包含し、したがって、同一の参照番号によって識別されている;認証フレーム20は、さらにペイロード・フィールド10bと完全に類似するフィールド20aを包含する;しかしながら、データ・フレーム10とは異なり認証フレーム20は、フィールド20aの内側にステップ102において計算されたMACコード(MAC)を識別するバイト(ここでは、8バイト)を含む。ただし、認証フレーム20が、CANプロトコルの観点において、フォーマットという点から見てデータ・フレーム10との区別が不可能であることに注意する。
図3に戻るが、ステップ102に続くステップ103においては、送信ノードEがCANバス4へ、ステップ1の間に実行されたものと類似する態様で3つのさらなるメッセージMsg4、Msg5、Msg6を送信する。
その後、ステップ104において、送信ノードEが受信ノードEへ、ステップ103において送信されたメッセージMsg4-Msg6のそれぞれのペイロード・フィールド10b内に含まれていたデータData4-Data6の関数として計算されたMACコード(MACとは異なるMAC)をフィールド20a内に含む新しい認証メッセージ20を送信する。
ステップ103-104は、ステップ101-102の複製であり、それぞれのメッセージに関して実行されることに注意する。図3に図解されているプロシージャは、送信ノードEが、送信されるべきメッセージのキューを完了するまで(したがって、ステップ101-102と類似するステップを、送信されるべきすべてのメッセージについて実行するまで)限界を定めずに続けることが可能である。
図5は、ここではノードEとする受信ノードによるCANバス4上のデータ受信のためのプロシージャを、フローチャートを用いて例証的に図解している。
受信においては、受信ノードEが、メッセージMsg1-Msg3(ステップ201)と、コードMACを含んでいる認証フレーム20(ステップ202)とを獲得する。なお、受信ステップにおいては、認証フレーム20によって伝送されるコードMACが、ノードEによって送信されるコードMACと(送信エラーに起因して、または不正な活動に起因して)異なる可能性があることに注意する。したがって、受信されたコードを、ここでは、符号MAC’によって参照する。
さらに、受信ステップにおいては、メッセージMsg1-Msg3およびコードMACが、(たとえば、受信ノードEが複数のメッセージおよび関連する認証フレームを異なる送信ノードE、E、・・・から受信しているために)完全にシーケンシャルでない可能性があることに注意する。複数の送信ノードE、E、・・・からメッセージを受信する場合においては、受信ノードEの受信バッファが多様なメッセージおよび関連する認証フレーム20をランダムな順序で、または、いずれにしても先験的にあらかじめ決定可能でない順序で含むことになる。しかしながら、各メッセージおよび各認証フレームが、共通識別子またはそれを生成した送信ノードE、E、・・・の識別子(特に、送信ノードのソース・アドレス)を伝送することから、受信ノードEは、それぞれの受信した各コードMAC’の計算のための正しい順序付けを実行することが可能である。
その後、受信ノードEは、認証フレーム20のフィールド20a内に含まれている受信したコードMAC’の真正をチェックする(ステップ203);言い換えると、ノードEは、コードMAC’が、期待されるコードに対応するか否か、すなわち、コードMAC’がメッセージMsg1-Msg3のデータData1-Data3の(送信ステップ102を参照して論じたとおり)関数になっているか否かをチェックする(MAC’=MACEXP、理想的には、MAC’=MACEXP=MAC)。この目的のために、受信ノードが常に、受信されたメッセージのペイロード・フィールドのデータに基づいて、送信されるべきメッセージのペイロード・フィールドのデータに基づいて送信ノードによって計算されたMACコードを復元することが可能となるように、ネットワーク2のすべてのノードE-Eが共通の暗号化メカニズム(たとえば、アルゴリズム)を共有することは明白である。
受信ノードは、期待されるMACコードを計算した後に、受信されたMACコードとの比較を実行し、それらがまったく同じであるか否かを検出することが可能である。それらがまったく同じであった場合には、関連するメッセージが受け入れられて処理される。それらがまったく同じではなかった場合においては、対応策を取ることが可能であり、たとえば、正しくないコードMAC’の計算の基礎となったメッセージMsg-Msgがリジェクトされ、関連するエラー・メッセージが、エラーを検出したノードによって送信される。受信したMACコードと期待されるそれの間に不一致が存在するためにリジェクトが反復されるメッセージを同一のノードが送信していることを受信ノードが認めた場合において(たとえば、メッセージの数があらかじめ決定済みの値を超えたとき)、当該受信ノードは、その送信ノードを「損なわれている可能性がある」と見做し、かつあらかじめ定義済みの時間期間にわたってそれを無視する決定をすることができる。そのあらかじめ定義済みの時間期間が経過した後に受信ノードは、その送信ノードから到来するメッセージの処理の再開を決定することができる。
引き続き図5を参照すると、ノードEは、ステップ204においてさらなるメッセージMsg4-Msg6を順番に獲得し、かつメッセージMsg4-Msg6のデータData4-Data6の関数としてノードEによって計算されたMACコードを含む認証フレーム20を獲得する(ステップ205)。その後、ステップ206において、ノードEは、手前の説明と類似する態様でコードMACの真正をチェックする。
このプロシージャは、送信ノードEによって送信されたすべてのメッセージが受信され、処理されるまで続けられる。
ハッカーまたは悪意のある意図を持った者またはそのほかの者がCANバス4に望ましくないデータ・フレームを書き込む場合において、書き込んだデータ・フレームがノードE-Eによって受け入れられるためには、それらの者は、MACコードを生成するための方法もまた知らなければならない。実際に、手前で論じたとおり、各受信ノードによる自身宛のメッセージの受け入れは、常に、各ノードE-E内に常駐する(機密の)アルゴリズムに基づいて計算されたMACコードが正しいことの検証を受ける。その種の検証および肯定応答がない場合には、上で論じられているとおり、受信ノードがアラーム状態に入り、適切な対応策が取られる。
本発明の非限定的な好ましい実施態様においては、MACコードがAES-CMAC暗号化アルゴリズムを使用して計算される(これにおいて、AESは「Advanced Encryption Standard(アドバンスド・エンクリプション・スタンダード)」を表し、CMACは「Cipher-based Message Authentication Code(サイファー・ベースド・メッセージ・オーセンティケーション・コード)」を表す)。
AES-CMACアルゴリズムは、それ自体は周知であり、通常、暗号化アルゴリズムAES128を利用してMACコードを計算する。AES-CMAC暗号化アルゴリズムは、暗号鍵Kの使用を要求する。本発明のある態様によれば、各ノードE-Eが、受信したMACコードと期待されるMACコードの間の比較(図5のステップ203および206)を受信時に行うために、受信したデータおよび暗号鍵Kに基づいて関連するMACコードを計算することが可能となるように暗号鍵Kが各ノードE-Eのローカル・メモリ内に保存されている(すなわち、同一の鍵Kが各ノードE-Eによって共有されている)。
本発明の別の態様によれば、各送信ノードE-Eと関連付けされたそれぞれの鍵K-Kが提供される;したがって、特定の送信ノードによって送信されたメッセージの真正のチェックに関心があるか、またはメッセージの受信ノードとして特別に設計され、それを受信しなければならない受信ノード(または、複数の受信ノード)の中にのみ同一の鍵K-Kを保存することが可能である。
なお、AES-CMACアルゴリズムが、データ・フレームのペイロード・フィールド10bに含まれているデータと(バイトにおいて)同じ長さを有するMACコード、またはそれより長い長さのコードを生成するという事実は、無関係であることに注意する。実際に、暗号化アルゴリズムによって生成されたコードが、データ・フレームのペイロード内に書き込むには大きすぎるバイト数で表現される場合においては、データ・フレーム10のフォーマットと等しいフォーマットを有する認証フレーム20によって伝送可能なデータの最大長に関する要件を尊重するために、その種のMACコードの切り捨てのための演算を実行することが可能である。
このことは、たとえば、メッセージMsg1-Msg3のペイロード・フィールド10b内において伝送されるデータData1-Data3が8バイトで表現される場合には、Data1-Data3に基づいてAES-CMACアルゴリズムによって計算されるコードMACもまた、8バイトで表現され得ることを意味する。このように、CAN標準によって定義されるデータ・フレーム10と、フォーマットの観点から、完全に類似する認証フレーム20内において伝送されることが可能なMAC認証コードを有することという要件が尊重される。
これに関して言えば、AES-CMAC標準が、セキュリティの理由のために8バイト(または、8バイトの倍数)を要求することに注意する。送信されるメッセージのペイロードが8バイトより小さいサイズを有している場合には、要求されている最小8バイトの完成が保証されるように、「パディング」演算(すなわち、0が追加される)が提供される。
概して言えば、一般的なネットワークのために、MACコードは、任意バイト数を有することが可能である。
本発明のさらなる態様によれば、提案の方法の堅牢性を改善するため、したがってネットワーク2のセキュリティを増すために、検討されているメッセージのペイロード・フィールド10bのデータに加えて、さらなるパラメータの関数としてMACコードを計算することも可能である。
具体的に述べると、実施態様によれば、AES-CMAC暗号化アルゴリズムのための有効な入力も構成可能であるように、ペイロード・フィールド10bによって伝送することが可能なバイト数と等しいバイト数で表されるインクリメンタル単調カウンタが実装される。たとえば、ペイロード・フィールド10bに8バイトを伝送する能力があるとき、単調カウンタは、8バイトで実装される。8バイトが、その単調カウンタが実装される乗り物1の全動作寿命をカバーするに充分であることに注意する。たとえば、毎秒1単位で単調カウンタを増加させることによって、264秒後に8バイトで表現可能な最大値に到達し、これは、584×10年を超える長さに対応する。
手前に述べられているとおり、この単調カウンタは、一般的なネットワークのために任意バイト数で表現することが可能である(8バイトである必要性はない)。
図6Aは、以上の説明を送信ノードEによって行われる動作に関して、機能ブロック図を用いてグラフィカルに図解している。
図6Bは、以上の説明を受信ノードEによって行われる動作に関して、機能ブロック図を用いてグラフィカルに図解している。
図6Aを参照するが、図解されている動作は、独自のコントローラまたはプロセッサとローカル・メモリを有し、CANプロトコルおよび説明済みの暗号化動作を実装するべく適切に構成された送信ノードEによって実行される。図6Aのブロック40は、AES-CMAC暗号化アルゴリズムの入力を表し、ノードEによって連続的に送信される3つのメッセージMsg1-Msg3のデータ・コンテンツData1-Data3(ペイロード・フィールド10b)と、それに加えて、ノードE内に常駐する単調カウンタ(図6Aのブロック42)の現在値MCを含む。
データData1-Data3と値MC(前述したとおり、この例においてはすべて8バイトで表される)が暗号化ブロック44へ入力され、それが、ローカル・メモリ(ブロック46)内に保存されている暗号鍵Kとともに上で論じられているAES-CMAC暗号化アルゴリズムを実行する。
暗号化ブロック44は、MACコード(この例においては、同じく8バイトのMAC--必要であれば、切り捨て演算が実行される)を生成し、対応する認証フレーム20の生成のためにブロック48へ送る。前述したとおり、認証フレーム20は、フォーマットという点から見てデータ・フレーム10との区別が不可能であり、したがって、認証フレーム20を生成するブロック48は、データ・フレームを生成するそれと同一である(したがって、それ自体は周知のタイプであり、さらなる説明はしない)。ブロック48は、受信ノードEへ送信されるべきデータData1-Data3も受信し、関連するメッセージMsg1-Msg3を生成する。
メッセージMsg1-Msg3は、データData1-Data3に基づいて生成された認証フレーム20とともに、送信キュー(または、送信バッファ)50内に書き込まれ、ノードEを受信者としてCANバス4へ順番に送られる。メッセージMsg1-Msg3が最初に送信され、その後にコードMACを含む関連認証フレーム20が送信される。
ここで、受信ノードEによって実行される動作を、機能ブロック図を用いてグラフィカルに図解した図6Bを参照する。当該受信ノードは、メッセージMsg1-Msg3と、コードMAC(または、前述の説明によれば、むしろ受信したコードMAC’)を含む認証フレーム20とを受信し、それらを受信バッファ59内に書き込む。
ノードEは、続いて、図6Aのブロック40-44を参照して上で説明した送信ノードEにおいて実行される演算と同じ演算を再現することによって、期待されるMACコード(MACEXP)をローカルに計算する。具体的に述べれば、受信ノードEは、メッセージMsg1-Msg3のペイロード・フィールド10b内に含まれているデータData1-Data3、およびローカル単調カウンタ62の現在値MC’を獲得し(ブロック60)、それらを、暗号化ブロック44と同じ暗号化アルゴリズム(ここでは、AES-CMAC)を実行する暗号化ブロック64へ送る。
暗号化ブロック64は、さらに、入力として暗号鍵K(ブロック65内にローカルに保存されている)を受信し、受信したコードMAC’と比較される(ブロック66)8バイトの数(可能性として、ブロック44によって実行されるものと類似する切り捨てを伴う)を出力として生成する。この比較には、期待されるMACコード(MACEXP)と、受信したMACコード(MAC’)の間における同一性の評価が意図されている。比較の結果(OK=有効/NOT OK=無効)は、その後に続いて取られる動作を決定する。
上記の説明は、その後に続く送信/受信に対して、たとえば、関連するMACコードを伝送する関連する認証フレーム20を伴う3つのさらなるメッセージMsg4-Msg6の送信/受信のためにも類似した形で適用される。
単調カウンタの使用は、暗号化の完全性だけでなく、受信したデータの「新鮮さ」を保証する機能を有する。実際に、ハッカーまたは悪意のある意図を伴う者が、複数のデータ・フレームを、関連する認証フレーム20とともに獲得し、その種のデータ・フレームおよび関連する認証フレーム20(形式上は正しい)をCANバス4へ、乗り物1の寿命内における後の時点に再書き込みし、予測不可能なエラーを生じさせるといったことが起こる可能性がある。しかしながら、MACコードが、常に、前述したとおり、乗り物1の動作寿命の間にわたって累進的であり、かつ変化するカウンタの現在値を頼ることから単調カウンタの存在がその種の可能性を断ち切る。
上に述べられているプロシージャは、ネットワーク2の任意のノードによる送信および受信動作に適用され、概して言えば、ネットワーク2の各ノードE-Eが、CANプロトコルおよび送信および受信を参照して説明した暗号化/復号化動作(図6A、6B)を実装するべく適切に構成された、それ独自のコントローラまたはプロセッサおよびローカル・メモリを装備していることに注意する。
それに加えて、各ノードE-Eは、それ独自の、手前に述べられているタイプのインクリメンタル単調カウンタを装備する。
各受信ノードが、認証フレーム20を認識することを(かつ、それと一般的なデータ・フレーム10と混同しないこと)保証するために、何らかの認識ストラテジを予備的に定義することが可能である。
たとえば、その意味において、認証フレーム20のヘッダ・フィールド10a内に、その種のフレームの識別、および対応するMACコードの計算が基礎とした先行するメッセージの数の両方に関係する表示を書き込むことが可能である。
異なる実施態様は、すべてのノードE-Eが、認証フレーム20の認識のために採用されるべき同一のストラテジを共有すること、すなわち、その種の認証フレーム20が、常に、あらかじめ定義済みの数のメッセージ(データ・フレーム)の後に生成される(したがって、常に受信される)という事実を提供する。手前で論じられている例においては、その種の数が3に等しい(Msg1-Msg3およびMsg4-Msg6のグループ)。しかしながら、その後に続いて認証フレーム20が送信される(したがって、受信される)データ・フレームの数を任意(2以上)に定義可能であることは明白であり、それにおいては、伝送されるMACコードが、あらかじめ定義済みの数の先行するデータ・フレームのデータに基づいて計算される。この文脈において、またノードEとEの間の通信が単一メッセージを伴って完了する場合において、ゼロ情報コンテンツまたはあらかじめ定義済みの情報を有し、受信ノードによって適切に管理されるさらなるデータ・フレームの送信が(認証フレーム20の生成のために必要とされるあらかじめ定義済みの数のフレームに到達するまで)提供可能であることは明白である。
上記の説明は、送信ノードEによる送信および受信ノードEによって受信された情報の処理が、ローカル・カウンタ42、62の値MC/MC’の変化未満の時間間隔内に開始し、かつ終了する場合において有効である。実際に、ローカル・カウンタの値MC/MC’が送信と受信において異なる場合には、図6Bのブロック66の比較が信頼性のある応答を与えないことになる。
CANバス4への送信は、概して非常に迅速(数千分の1秒台)であるが、その種の欠点は、1つ以上のストラテジを採用することによって救済が可能である。
たとえば、可能性のある実施態様においては、あらかじめ決定済みの時間間隔(たとえば、2-5秒)の後にカウント単位で増加され、その種の時間間隔内における関心フレーム(データおよび関連するMACコードを含む)の送信、受信、および処理が常に保証されるように、ノードE-Eの各ローカル・カウンタを構成することが可能である。
さらなる実施態様においては、受信ノードEが、認証フレームの受信の時点に先行する時間間隔T(たとえば、2-5秒)の間に、カウンタ62の複数の値MC’を獲得し、保存することが可能である。その後ブロック64が、それぞれを、受信したデータ(Data1-Data3)およびカウンタ62によって供給された異なる値MC’(すなわち、カウンタ62が認証フレームの受信の時点に仮定した値、およびカウンタ62が時間間隔T内に仮定したすべての値の両方)の関数として複数のMACコードを計算する。
さらなる実施態様においては、受信ノードEが、認証フレーム20の受信の時点に関して中心決めされるか、またはブロック64によるMACコードの計算の時点に関して中心決めされる時間間隔の間に、カウンタ62の複数の値MC’を獲得し、保存することが可能である。その種の中心決めされた時間間隔は、認証フレームの受信および/または計算の時点に先行する時間間隔T(たとえば、2-5秒)と、認証フレームの受信/計算の時点の後に続く時間間隔T(たとえば、1-2秒)とを含む;その種の中心決めされた時間間隔は、認証フレーム20の受信および/または計算の時点も含む。その後ブロック64が、それぞれを、受信したデータ(Data1-Data3)およびカウンタ62によって供給されたそれぞれ複数の値MC’(すなわち、カウンタ62が認証フレームの受信/計算の時点に仮定した値、およびカウンタ62が時間間隔Tおよび時間間隔T内に仮定したすべての値の両方)の関数として複数のMACコードを計算する。
その種のMACコードは、その後、比較ブロック66へ供給され、それがそれらを獲得する。比較は、認証フレーム20(図6BのMAC’)とともに受信されたMACコードが、暗号化ブロック64によって計算された複数のMACコードのうちの少なくとも1つと等しい場合に、肯定的な結果(OK)を有する。
互いに関して同期外れを生じる可能性のある、ノードE-Eのローカル単調カウンタに考えられるドリフトを未然に防ぐために、本発明は2つの可能性のある変形を提供し、それについて次に論じる。
第1の変形においては、ノードE-Eのうちの1つがマスター・ノードの役割を担うものとし、残りのノードがスレーブ・ノードの役割を担うものとする。
この場合において、マスター・ノードは、ランダムまたはあらかじめ決定済みの時点においてCANバス4へ、それ独自の単調カウンタの更新済みの値MCnewを送信する。その種の更新済みの値MCnewは、カウンタの現在値、またはそれ独自のローカル・クロックの値MCINT_CLOCK(たとえば、マスター・ノードのコントローラまたはプロセッサのクロック)の関数として計算し、それに、たとえば数秒、特に10秒から20秒までの間に等しいあらかじめ決定済みまたはランダムな値の正のオフセット「OFFSET」を追加した値とすることが可能である:MCnew=MCINT_CLOCK+OFFSET。
スレーブ・ノードは、値MCnewを受信し、それら独自のローカル・カウンタの値を新しい値MCnewに更新する。より高いセキュリティのために、非限定的な実施態様においては、各スレーブ・ノードによって、それ独自のローカル・カウンタの現在値より受信したMCnewの値が大きい場合だけに限って、更新が実行される。スレーブ・ノードによって値MCnewが正しく受信されなかった場合には、ネットワークの多様なノードの間に同期外れが生じる(すべてのノードによって生成されるMACコードが誤りのあるものとなる);マスター・ノードは、先行するMC値を用いたクロス・チェックを実施することによってこの望ましくない状況を検出することが可能である(すなわち、マスター・ノードを、ネットワークのノードが更新後の値とは異なる古いMC値を使用していることを認識するべく構成することが可能である)。
カウンタを正しい値に修復するために、マスター・ノードは、この状況において、更新済みの値MCnewを再送する。さらに、カウンタの値の更新の間にスレーブ・ノードがCANネットワークから接続解除されるか、または何らかの理由で同期が失われた場合においては、マスター・ノードがその種の状況を検出し、新しい値MCnewを再送することによって正しい機能の回復が可能であることに注意する。
第2の変形においては、ノードE-Eの間に「ピア・トゥ・ピア」構成が存在する。
この場合においては、すべてのノードE-Eが、前述に類似する、現在値より大きい単調カウンタの新しい値MCnewを(周期的またはランダムな時点において)送信する:MCnew=MCINT_CLOCK+OFFSET。他方のノードE-Eは、新しい値MCnewを受信し、受信した新しい値MCnewがそれら独自の内部カウンタの現在値より大きい場合だけに限って、それぞれのカウンタを更新する。ピア・トゥ・ピア構成の場合においては、ネットワークのすべてのノードによって値MCnewが正しく受信されなかった(たとえば、いくつかのノードが古いMC値を使用している)場合に、更新されていないMC値を使用しているノードが、新しい値MCnewを再送する。それに加えて、カウンタの値の更新の間にノードがCANネットワークから接続解除されるか、または何らかの理由で同期が失われた場合においては、MACコードを正しく計算することが可能でないノードによって値MCnewが直ちに送信される。
上で述べた変形の両方においては、OFFSET値が、CANバス4上に存在可能な最大伝播遅延より大きくなるような態様で、かつ送信および受信ステップにおける潜在的な処理遅延も考慮に入れて生成されることに注意する。クロックの時間ドリフトを考慮に入れることも有利である。
さらに、カウンタの値MCnewが8バイトで表現され、その種の値は、CANプロトコルに従ったあらかじめ定義済みのデータ・フレームを使用して送信が可能であることに注意する。類似した形で、異なるプロトコルが使用される場合においても、使用されるプロトコルの仕様に従った適切なバイト数のカウンタの値MCを、これが表現して適用される。
値MCnewの送信は、専用のメッセージ(たとえば、MACコードに関する前述の説明に類似した態様でデータ・フレームと同じ構造を有する)を使用することによって生じることが可能である;受信ステップのMAC計算においては、その値MCnewが直接使用される。
1つの実施態様においては、コードMCnewを含むフレームが、通常のデータ・フレームと比較してより高い優先度を伴って構成される。
図7A(図6Aと共通の要素は、同一の参照番号によって識別されている)は、データ・フレームに類似する専用メッセージ70を用いて値MCnewを生成し、送信するステップをグラフィカルに図解している。
カウンタ42が、更新後の値MCnewを生成するために、(手前で述べたとおり)OFFSET値を用いて更新される。図7Aのブロック40は、AES-CMAC暗号化アルゴリズムの入力を表し、ノードEによって送信される2つのメッセージMsg1およびMsg3のデータ・コンテンツData1およびData3(ペイロード・フィールド10b)と、それに加えて単調カウンタ(ブロック42)の更新後の値MCnewとを、図6Aを参照した手前の説明と類似した態様で含む。図7Aの場合においては、単調カウンタ42の更新後の値MCnewの共有が、データメッセージMsg2(図6Aの例にあったもの)を、(手前に述べられているマスタ/スレーブまたはピア・トゥ・ピア・ストラテジに従って)ネットワークのほかのノードとの共有が望まれる単調カウンタ42の更新後の値MCnewを伝送する等価のメッセージと置き換えることによって生じる。言い換えると、値MCnewは、あたかもそれが、ちょうど図6AのデータData2と同様の情報データであるかのように扱われ、かつ送信される。
図7B(図6Bと共通の要素は、同一の参照番号によって識別されている)の受信ステップにおいては、更新後の値MCnewがローカル・カウンタ62へ供給され、続いてそれが、ブロック60へそれを供給し、そこでこの値がMACコードの計算のために使用される。代替実施態様において、ローカル・カウンタ62をバイパスして更新後の値MCnewを直接ブロック60へ供給可能であることは明白である。
ブロック60-66は、Data2の代わりに値MCnewを、値MC’の代わりに同じ値MCnewを使用し、図6Bを参照した手前の説明と類似した形で動作する。
ブロック66によって実施される比較が肯定的な応答(「OK」)を与えた場合には、新しい値MCnewへのローカル・カウンタ62の更新が確認される;それ以外であれば、受信ノードEの再同期のためのストラテジが実行される。
上に述べられ、図解されていることに基づけば、ここに述べられているシステムによって得ることが可能な利点は明白である。
図8を参照すると、乗り物1のオンボード・システム74をコントロールするために使用されるオンボード電子システム72を含む乗り物1が示されている。乗り物1は、略図的にのみ表現されているが、自動車、自動二輪車、トラック、スポーツカー、SUV、レクリエーショナル・ビークル、ボート、航空機等とすることが可能である。オンボード電子システム72およびオンボード・システム74は、通信バス76、たとえば、手前に述べられているCANバス4を用いて相互通信する態様で接続される電子コントロール・ユニット(ECU、ECU、・・・、ECU--手前で論じたノードE、E、・・・、Eに対応する)の図解的な配置を含む。
オンボード電子システム72は、たとえば、診断、監視、コントロール、レポーティング動作、および/またはそのほかの機能を実行するために1つ以上のセンサからの入力を受信するべく構成された、乗り物1全体にわたって分配される電子ハードウエア構成要素の形式で複数のECUを含むことが可能である。少なくとも2つの、またはすべてのECUが、バス76を用いて互いに接続される;各ECUは、乗り物1のオンボード・システム72をコントロールするべくプログラムすることが可能である。オンボード電子システム72またはオンボード・システム74の一部として示されている各ECUは、概して、マイクロプロセッサと、当該マイクロプロセッサによって読み取り可能なインストラクションを保存している不揮発性メモリ・デバイスと、バス76上におけるデータおよびそのほかのコントロール情報の送信および受信のための入力/出力ポート(I/O)とを包含する。これらの構成要素は、それぞれのECUがコントロールする乗り物1の特定のシステム、および使用されるバス76のタイプに基づいて変更することが可能である。マイクロプロセッサのパワーおよび処理の精巧さ、I/Oの数、およびマイクロプロセッサによって読み取り可能なインストラクションまたはソフトウエアの複雑さは、乗り物1のタイプおよび機能に基づいて増加、または減少させることが可能である。マイクロプロセッサは、電子インストラクションを処理する能力のある任意タイプのデバイスとすることが可能であり、それには、マイクロコントローラ、ホスト・プロセッサ、コントローラ、乗り物のための通信プロセッサ、および特定用途向け集積回路(ASIC)が含まれる。マイクロプロセッサは、メモリ・デバイス内に保存されたソフトウエアまたはファームウエア・プログラム等の、デジタル保存された種々のタイプのインストラクションを実行する。たとえば、マイクロプロセッサは、手前に図3、5、6A、6Bを参照して論じられている方法の少なくとも一部を実行するために、プログラムを実行し、またはデータを処理することが可能である。メモリ・デバイスは、周知のタイプのランダム・アクセス・メモリ(RAM)またはEEPROMメモリを使用して実装可能であり、I/Oは、CANコントローラ等のコントローラ、または使用されるバス76のタイプに応じた何らかのそのほかの手段を使用して実装することが可能である。その意味において、ECUは、乗り物1上において使用される特定のタイプのバス76と互換性のあるハードウエアを含むことが可能である。たとえば、CANバスを使用して通信するECUは、マイクロプロセッサ、CANコントローラ、およびCANバス上においてメッセージを送受信するトランシーバの形式のI/Oユニットを含むことが可能である。
特に本発明は、ネットワークのノードの間における(特に、乗り物のECUの間における)ネットワークおよび乗り物の現在のアーキテクチャ上の構成を変更することがなく、かつネットワークの動作が基礎とするプロトコル標準の部分を形成しない新しい通信テクノロジの使用を求めることのない、安全かつ実装可能な通信方法およびシステムを提案する。したがって、実装コストもまた、特に妥当性がある。
最後に、ここで述べられ、図解されていることに対する修正および変形を、付随する特許請求の範囲に定義されているとおりの本発明の保護範囲からの逸脱なしに実行可能であることは明らかである。
特に本発明は、CANバスとは異なるタイプの送信ネットワーク、たとえば、CAN-FDプロトコルに基づくネットワーク、TCP/IPプロトコル、ローカル相互接続ネットワーク(LIN)、メディア指向シリアル・トランスポート(MOST)、イーサネット、ローカル・エリア・ネットワーク(LAN)等々に基づくネットワークに適用可能である。
特に、本発明は、有線または無線送信ネットワークに適用することが可能である。
それに加えて、AES-CMAC暗号化方法が明示的に述べられているが、異なる暗号化方法およびアルゴリズムを、たとえば、HMAC(「キード・ハッシュ・メッセージ認証符号」)、KMAC(「KECCAKメッセージ認証コード」)、GMAC(「ガロア・メッセージ認証符号」)、またはそのほかの、たとえば、DAA、CBC-MAC、NMAC、OMAC/CMAC、PMAC、VMAC、UMAC、Poly1305、SipHash等、およびさらにほかのアルゴリズムさえ使用することが可能である。
さらにまた、MACコードの生成のために使用可能な暗号化アルゴリズムを多様なタイプのものとし得ることは明白である;たとえば、対称型暗号化アルゴリズム(暗号鍵KがすべてのノードE-Eに保存される)または非対称型暗号化アルゴリズム(公開鍵がすべてのノードE-Eに保存され、秘密鍵は、単一のノードにおいて利用可能)を使用することが可能である。
それに代えて、次に例証するとおり、ノード毎に異なる秘密鍵K、K、・・・、Kと、関連する公開鍵P、P、・・・、Pをすべてのノードに提供することが可能である。
ノードE:(K、P、・・・、P)、
ノードE:(K、P、P、・・・、P)、
・・・、
ノードE:(K、P、P、・・・、PN-1)。
1 乗り物
2 ネットワーク、通信ネットワーク
4 バス、CANバス
10 データ・フレーム
10a ヘッダ・フィールド
10b ペイロード・フィールド、データ・フィールド
10c CRCフィールド、巡回冗長検査フィールド
10d ACKフィールド、肯定応答フィールド
10e EOFフィールド、エンド・フィールド
20 認証フレーム
20a フィールド
40 ブロック
42 カウンタ、ブロック、単調カウンタ
44 暗号化ブロック
48 ブロック
50 送信キュー、送信バッファ
59 受信バッファ
60 ブロック
62 ローカル単調カウンタ、カウンタ、ローカル・カウンタ
64 ブロック、暗号化ブロック
65 ブロック
66 ブロック、比較ブロック
70 専用メッセージ
72 オンボード電子システム
74 オンボード・システム
76 バス、通信バス
10a-10e フィールド
ノード
ノード
Msg1-Msg6 メッセージ

Claims (25)

  1. 送信/受信プロトコルに従って動作する通信ネットワーク(2)におけるデータ交換のための方法であって、前記通信ネットワークが、送信バス(4)と、前記送信バス(4)に接続された第1のノード(E)および第2のノード(E)とを含み、前記方法が、前記第1のノード(E)によって実行される、
    - それぞれが前記プロトコルによって定義されるフレーム・フォーマットを有し、かつそれぞれのペイロード・フィールド(10b)であって、前記第2のノード(E)へ送信されるべきそれぞれの第1および第2の情報データ(Data1、Data2)を含むペイロード・フィールド(10b)を含む第1および第2のデータ・フレーム(10)を構成するステップと、
    - 送信されるべき前記第1および第2の情報データ(Data1、Data2)の関数として第1のメッセージ認証コード(MAC)を計算するステップと、
    - 前記プロトコルによって定義されるフレーム・フォーマットを有し、かつペイロード・フィールド(20a)を含み、かつ前記ペイロード・フィールド(20a)内に前記第1のメッセージ認証コード(MAC)を含む第3のデータ・フレーム(20)を構成するステップと、
    - 前記送信バス(4)へ、前記第1、前記第2、および前記第3のデータ・フレームを送信するステップと、
    を包含し、さらに前記方法が、前記第2のノード(E)によって実行される、
    - 前記送信バス(4)から前記第1、前記第2、および前記第3のデータ・フレーム(10、20)を受信するステップと、
    - 受信した前記第1のデータ・フレーム(10)から前記第1の情報データ(Data1)を、受信した前記第2のデータ・フレーム(10)から前記第2の情報データ(Data2)を、受信した前記第3のデータ・フレーム(20)から前記第1のメッセージ認証コード(MAC、MAC’)を抽出するステップと、
    - 抽出した前記第1および第2の情報データ(Data1、Data2)の関数として第2のメッセージ認証コード(MACEXP)を計算するステップと、
    - 抽出した前記第1のメッセージ認証コード(MAC、MAC’)と、計算した前記第2のメッセージ認証コード(MACEXP)とを比較するステップと、
    - 抽出した前記第1のメッセージ認証コード(MAC、MAC’)が計算した前記第2のメッセージ認証コード(MACEXP)と同一である場合だけに限って、前記第1および第2のデータ・フレーム(10)を受け入れるステップと、
    を包含する方法。
  2. 前記第1のメッセージ認証コード(MAC)を計算するステップは、さらに、暗号鍵(K)の関数として前記第1のメッセージ認証コード(MAC)を計算することを包含し、
    前記第2のメッセージ認証コード(MACEXP)を計算するステップは、さらに、復号鍵(K)の関数として前記第2のメッセージ認証コード(MACEXP)を計算することを包含し、
    それにおいて、前記暗号鍵は、前記復号鍵に対応し、したがって、対称型暗号化アルゴリズムを実装し、
    それに代えて、前記暗号鍵は、秘密鍵であり、前記復号鍵は、前記暗号鍵と異なる公開鍵であり、したがって、非対称型暗号化アルゴリズムを実装する、
    請求項1に記載の方法。
  3. 前記第1のメッセージ認証コード(MAC)を計算するステップは、さらに、第1のインクリメンタル単調カウンタ(42)から前記第1のノード(E)へ供給される第1のカウント値(MC)の関数として前記第1のメッセージ認証コード(MAC)を計算することを包含し、
    前記第2のメッセージ認証コード(MACEXP)を計算するステップは、さらに、第2のインクリメンタル単調カウンタ(62)から前記第2のノード(E)へ供給される第2のカウント値(MC’)の関数として前記第2のメッセージ認証コード(MACEXP)を計算することを包含し、
    前記第1のメッセージ認証コード(MAC、MAC’)は、送信されるべき前記第1および第2の情報データが、抽出された前記第1および第2の情報データと同一であり、かつ前記第1のカウント値(MC)が前記第2のカウント値(MC’)と同一である場合だけに限って前記第2のメッセージ認証コード(MACEXP)と同一となる、
    請求項1または2に記載の方法。
  4. 前記第2のメッセージ認証コード(MACEXP)を計算するステップは、さらに、前記第2の値(MC’)を受信する時点に先行する時間フレームの間に前記第2のインクリメンタル単調カウンタ(62)から前記第2のノード(E)へ供給される1つ以上のさらなるカウント値(MC’)に関して実行され、
    前記方法は、さらに、
    - 前記第2のノード(E)において、それぞれの前記1つ以上のさらなるカウント値(MC’)の関数として1つ以上のさらなるメッセージ認証コードを計算するステップと、
    - 前記第2のノード(E)において、抽出された前記第1のメッセージ認証コード(MAC、MAC’)と、前記1つ以上のさらなるメッセージ認証コードのそれぞれとを比較するステップと、
    - 抽出された前記第1のメッセージ認証コード(MAC1、MAC1’)が前記1つ以上のさらなるメッセージ認証コードのうちの少なくとも1つと同一である場合だけに限って前記第2のノード(E)が前記第1および第2のデータ・フレーム(10)を受け入れるステップと、
    を包含する、請求項3に記載の方法。
  5. さらに、前記第1および第2のインクリメンタル単調カウンタ(42、62)を互いに同期させるステップを包含する、請求項3または4に記載の方法。
  6. 前記第1および第2のインクリメンタル単調カウンタ(42、62)を互いに同期させるステップは、前記第1および第2のノードのうちの1つをマスター・ノードとして、かつ前記第1および第2のノードのうちのそのほかをスレーブ・ノードとして設定するステップと、前記マスター・ノードによって、前記送信バス(4)へ同期信号を送信するステップと、前記スレーブ・ノードによって、前記送信バス(4)から前記同期信号を受信するステップと、受信した前記同期信号の関数として前記スレーブ・ノードの呼応する前記第1または第2のインクリメンタル単調カウンタ(42、62)の値を更新するステップと、を包含する、請求項5に記載の方法。
  7. 前記第1および第2のインクリメンタル単調カウンタ(42、62)を互いに同期させるステップは、前記第1および第2のノードのうちの任意の1つによって、前記送信バス(4)へ同期信号を送信するステップと、前記第1および第2のノードのうちのそのほかによって、前記送信バス(4)から前記同期信号を受信し、かつ、受信した前記同期信号の関数として呼応する前記第1または第2のインクリメンタル単調カウンタ(42、62)の値を更新するステップと、を包含する、請求項5に記載の方法。
  8. 前記第1のメッセージ認証コード(MAC)を計算するステップは、AES-CMAC暗号化アルゴリズムを実行することを包含する、請求項1から7のいずれかに記載の方法。
  9. 前記プロトコルは、データタイプのフレーム・フォーマットを定義するCANプロトコルであり、
    前記第1、前記第2、および前記第3のデータ・フレームは、すべて、前記プロトコルによって定義される前記タイプと同一のフレーム・フォーマットを有する、
    請求項1から8のいずれかに記載の方法。
  10. 前記送信バス(4)は、乗り物(1)のCANバスであり、前記第1のノード(E)は、前記乗り物(1)の第1のECUであり、前記第2のノード(E)は、前記乗り物(1)の第2のECUである、請求項1から9のいずれかに記載の方法。
  11. 前記第1、前記第2、および前記第3のデータ・フレーム(10、20)の前記ペイロード・フィールド(10b、20a)は、前記プロトコルによって定義されるバイト数を伝送するべく構成され、前記第1および第2のメッセージ認証コード(MAC、MACEXP)は、前記プロトコルによって定義される前記バイト数と等しいバイト数で表現される、請求項1から10のいずれかに記載の方法。
  12. 前記第1および第2のカウント値(MC、MC’)は、前記プロトコルによって定義される前記バイト数と等しいバイト数で表現される、請求項3、または請求項3に従属するときの請求項4から11のいずれかに記載の方法。
  13. 送信バス(4)、前記送信バス(4)に接続された第1のノード(E)と前記送信バス(4)に接続された第2のノード(E)を含む通信ネットワーク(2)を含む送信/受信プロトコルに従って動作するデータ交換システムであって、
    前記第1のノード(E)が、
    - それぞれが前記プロトコルによって定義されるフレーム・フォーマットを有し、かつそれぞれのペイロード・フィールド(10b)であって、前記第2のノード(E)へ送信されるべきそれぞれの第1および第2の情報データ(Data1、Data2)を含むペイロード・フィールド(10b)を含む第1および第2のデータ・フレーム(10)を構成し、
    - 前記送信されるべき前記第1および第2の情報データ(Data1、Data2)の関数として第1のメッセージ認証コード(MAC)を計算し、
    - 前記プロトコルによって定義されるフレーム・フォーマットを有し、かつペイロード・フィールド(20a)を含み、かつ前記ペイロード・フィールド(20a)内に前記第1のメッセージ認証コード(MAC)を含む第3のデータ・フレーム(20)を構成し、かつ、
    - 前記送信バス(4)へ、前記第1、前記第2、および前記第3のデータ・フレームを送信するべく構成され、
    前記第2のノード(E)が、
    - 前記送信バス(4)から前記第1、前記第2、および前記第3のデータ・フレーム(10、20)を受信し、
    - 受信した前記第1のデータ・フレーム(10)から前記第1の情報データ(Data1)を、受信した前記第2のデータ・フレーム(10)から前記第2の情報データ(Data2)を、受信した前記第3のデータ・フレーム(20)から前記第1のメッセージ認証コード(MAC、MAC’)を抽出し、
    - 抽出した前記第1および第2の情報データ(Data1、Data2)の関数として第2のメッセージ認証コード(MACEXP)を計算し、
    - 抽出した前記第1のメッセージ認証コード(MAC、MAC’)と、前記第2のメッセージ認証コード(MACEXP)とを比較し、かつ、
    - 抽出した前記第1のメッセージ認証コード(MAC、MAC’)が前記第2のメッセージ認証コード(MACEXP)と同一である場合だけに限り、前記第1および第2のデータ・フレーム(10)を受け入れるべく構成される、
    データ交換システム。
  14. 前記第1のノード(E)は、さらに、暗号鍵(K)の関数として前記第1のメッセージ認証コード(MAC)を計算するべく構成され、
    前記第2のノード(E)は、さらに、前記暗号鍵(K)の関数として前記第2のメッセージ認証コード(MACEXP)を計算するべく構成される、
    請求項13に記載のシステム。
  15. さらに、前記第1のノード(E)と関連付けされた第1のインクリメンタル単調カウンタ(42)と前記第2のノード(E)と関連付けされた第2のインクリメンタル単調カウンタ(62)とを包含し、
    前記第1のノード(E)は、さらに、前記第1のインクリメンタル単調カウンタ(42)から供給される第1のカウント値(MC)の関数として前記第1のメッセージ認証コード(MAC)を計算するべく構成され、
    前記第2のノード(E)は、さらに、前記第2のインクリメンタル単調カウンタ(62)から供給される第2のカウント値(MC’)の関数として前記第2のメッセージ認証コード(MACEXP)を計算するべく構成され、
    前記第2のノード(E)は、さらに、送信されるべき前記第1および第2の情報データが、抽出された前記第1および第2の情報データと同一であり、かつ前記第1のカウント値(MC)が前記第2のカウント値(MC’)と同一である場合だけに限って抽出された前記第1のメッセージ認証コード(MAC、MAC’)と前記第2のメッセージ認証コード(MACEXP)の間における同一性を確認するべく構成される、
    請求項13または14に記載のシステム。
  16. 前記第2のノード(E)は、さらに、
    前記第2の値(MC’)を受信する時点に先行するか、かつ/またはその後に続く時間フレームの間に前記第2のインクリメンタル単調カウンタ(62)から供給される1つ以上のさらなるカウント値(MC’)に関して前記第2のメッセージ認証コード(MACEXP)を計算する動作を反復し、
    それぞれの前記1つ以上のさらなるカウント値(MC’)の関数として1つ以上のさらなるメッセージ認証コードを計算し、
    抽出された前記第1のメッセージ認証コード(MAC、MAC’)と、前記1つ以上のさらなるメッセージ認証コードのそれぞれとを比較し、かつ、
    抽出した前記第1のメッセージ認証コード(MAC、MAC’)が前記1つ以上のさらなるメッセージ認証コードのうちの少なくとも1つと同一である場合だけに限り、前記第1および第2のデータ・フレーム(10)を受け入れるべく構成される、
    請求項15に記載のシステム。
  17. 前記第1および第2のインクリメンタル単調カウンタ(42、62)は、互いに同期される、請求項15または16に記載のシステム。
  18. 前記第1および第2のインクリメンタル単調カウンタ(42、62)を互いに同期させるために、前記第1および第2のノードのうちの1つがマスター・ノードとして構成され、前記第1および第2のノードのうちのそのほかがスレーブ・ノードとして構成され、
    前記マスター・ノードは、さらに、前記送信バス(4)へ同期信号を送信するべく構成され、
    前記スレーブ・ノードは、さらに、前記送信バス(4)から前記同期信号を受信し、かつそれの前記第1または前記第2のインクリメンタル単調カウンタ(42、62)の値を、受信した前記同期信号の関数として更新するべく構成される、
    請求項16に記載のシステム。
  19. 前記第1および第2のノードは、ピア・トゥ・ピア・タイプのシステムで動作し、前記第1および第2のインクリメンタル単調カウンタ(42、62)を互いに同期させるために、前記第1および第2のノードは、
    それぞれ前記第1および第2のカウント値を含むそれぞれの第1および第2の同期信号を前記送信バス(4)へ送信し、
    前記第1および第2の同期信号のうちの他方を前記送信バス(4)から受信し、
    前記第1のノードによって、それの前記第1のインクリメンタル・カウンタを、それの前記第1のカウント値より前記第2のカウント値の方が大きい場合だけに限って、前記第2のカウント値を用いて更新し、
    前記第2のノードによって、それの前記第2のインクリメンタル・カウンタを、それの前記第1のカウント値が前記第2のカウント値より大きい場合だけに限って、前記第1のカウント値を用いて更新するべく構成される、
    請求項17に記載のシステム。
  20. 前記第1のノード(E)は、さらに、AES-CMAC暗号化アルゴリズムを実行することによって前記第1のメッセージ認証コード(MAC)を計算するべく構成される、請求項13から19のいずれかに記載のシステム。
  21. 前記プロトコルは、データタイプのフレーム・フォーマットを定義するCANプロトコルであり、
    前記第1、前記第2、および前記第3のデータ・フレームは、すべて、前記プロトコルによって定義される前記タイプと同一のフレーム・フォーマットを有する、
    請求項13から20のいずれかに記載のシステム。
  22. 前記送信バス(4)は、乗り物(1)のCANバスであり、前記第1のノード(E)は、前記乗り物(1)の第1のエンジン・コントロール・ユニット、すなわちECUであり、前記第2のノード(E)は、前記乗り物(1)の第2のエンジン・コントロール・ユニット、すなわちECUである、請求項13から21のいずれかに記載のシステム。
  23. 前記第1、前記第2、および前記第3のデータ・フレーム(10、20)の前記ペイロード・フィールド(10b、20a)は、前記プロトコルによって定義されるバイト数を伝送するべく構成され、前記第1および第2のメッセージ認証コード(MAC、MACEXP)は、前記プロトコルによって定義される前記バイト数と等しいバイト数で表現される、請求項13から22のいずれかに記載のシステム。
  24. 前記第1および第2のカウント値(MC、MC’)は、前記プロトコルによって定義される前記バイト数と等しいバイト数で表現される、請求項15、または請求項15に従属するときの請求項16から23のいずれかに記載のシステム。
  25. 請求項13から24のいずれかに記載のデータ交換のためのシステムを含む乗り物(1)。
JP2022535172A 2019-12-10 2020-12-10 ネットワークのセキュリティ手段を高めるネットワーク上におけるデータ交換のための方法およびシステムおよびその種のシステムを包含する乗り物 Pending JP2023519059A (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
IT102019000023544 2019-12-10
IT102019000023544A IT201900023544A1 (it) 2019-12-10 2019-12-10 Metodo e sistema di scambio di dati su una rete per incrementare misure di sicurezza della rete, veicolo comprendente tale sistema
PCT/IB2020/061763 WO2021116975A1 (en) 2019-12-10 2020-12-10 Method and system for data exchange on a network to enhance security measures of the network, vehicle comprising such system

Publications (1)

Publication Number Publication Date
JP2023519059A true JP2023519059A (ja) 2023-05-10

Family

ID=70228421

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2022535172A Pending JP2023519059A (ja) 2019-12-10 2020-12-10 ネットワークのセキュリティ手段を高めるネットワーク上におけるデータ交換のための方法およびシステムおよびその種のシステムを包含する乗り物

Country Status (6)

Country Link
US (1) US20230037778A1 (ja)
EP (2) EP4073675A1 (ja)
JP (1) JP2023519059A (ja)
CN (1) CN115380289A (ja)
IT (1) IT201900023544A1 (ja)
WO (1) WO2021116975A1 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20210089388A1 (en) * 2020-07-14 2021-03-25 Intel Corporation System, Apparatus And Method For Providing Protection Against Silent Data Corruption In A Link
CN113852531B (zh) * 2021-09-22 2022-11-15 河北通合新能源科技有限公司 用于功能码匹配的can通讯方法和can控制器

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9288048B2 (en) * 2013-09-24 2016-03-15 The Regents Of The University Of Michigan Real-time frame authentication using ID anonymization in automotive networks
JP6407981B2 (ja) * 2014-05-08 2018-10-17 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカPanasonic Intellectual Property Corporation of America 車載ネットワークシステム、電子制御ユニット及び不正対処方法
CN111464414A (zh) * 2014-07-10 2020-07-28 松下电器(美国)知识产权公司 车载网络系统、电子控制单元、接收方法以及发送方法

Also Published As

Publication number Publication date
CN115380289A (zh) 2022-11-22
EP4372595A2 (en) 2024-05-22
US20230037778A1 (en) 2023-02-09
EP4073675A1 (en) 2022-10-19
WO2021116975A1 (en) 2021-06-17
IT201900023544A1 (it) 2021-06-10

Similar Documents

Publication Publication Date Title
CN107846395B (zh) 确保车载总线上的通信安全的方法、系统、介质和车辆
EP3050251B1 (en) Real-time frame authentication using id anonymization in automotive networks
US11606341B2 (en) Apparatus for use in a can system
US10382208B2 (en) Secure communications using organically derived synchronized processes
US10382196B2 (en) System and method for secure communications based on locally stored values
US11245535B2 (en) Hash-chain based sender identification scheme
Nilsson et al. Secure firmware updates over the air in intelligent vehicles
US20160344764A1 (en) Network device and network system
US10263777B2 (en) Systems and methods for secure communications using organically derived synchronized encryption processes
US10812261B2 (en) Vehicle system and key distribution method
EP3432511B1 (en) Communication network system, vehicle, counter-value notification node, counter-value sharing method, and computer program
CN107836095B (zh) 用于在网络中产生秘密或密钥的方法
JP2023519059A (ja) ネットワークのセキュリティ手段を高めるネットワーク上におけるデータ交換のための方法およびシステムおよびその種のシステムを包含する乗り物
US20220191040A1 (en) Devices and methods for the generating and authentication of at least one data packet to be transmitted in a bus system (bu), in particular of a motor vehicle
Szilagy et al. A flexible approach to embedded network multicast authentication
Püllen et al. Securing FlexRay-based in-vehicle networks
WO2019067002A1 (en) SECURE COMMUNICATIONS USING SYNCHRONIZED ORGANIC PROCESSES
Wang et al. An OTA-oriented Protocol for Security Protection
JP6681755B2 (ja) 車両用通信網装置及び通信方法
KR20230121137A (ko) 데이터 전송 방법 및 장치

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20220829

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20230118

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20240131

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20240213

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20240408