JP6615721B2 - 通信システム、受信装置、受信方法およびプログラム - Google Patents

通信システム、受信装置、受信方法およびプログラム Download PDF

Info

Publication number
JP6615721B2
JP6615721B2 JP2016170042A JP2016170042A JP6615721B2 JP 6615721 B2 JP6615721 B2 JP 6615721B2 JP 2016170042 A JP2016170042 A JP 2016170042A JP 2016170042 A JP2016170042 A JP 2016170042A JP 6615721 B2 JP6615721 B2 JP 6615721B2
Authority
JP
Japan
Prior art keywords
random number
pseudo
communication
communication frame
frame
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.)
Active
Application number
JP2016170042A
Other languages
English (en)
Other versions
JP2017098937A (ja
Inventor
徴帆 夏
健 川端
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Toshiba Corp
Original Assignee
Toshiba Corp
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 Toshiba Corp filed Critical Toshiba Corp
Priority to US15/266,606 priority Critical patent/US10050983B2/en
Publication of JP2017098937A publication Critical patent/JP2017098937A/ja
Application granted granted Critical
Publication of JP6615721B2 publication Critical patent/JP6615721B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Description

本発明の実施形態は、通信システム、受信装置、受信方法およびプログラムに関する。
例えば車載のECU(Electronic Control Unit)間の基幹ネットワークとして、CAN(Controller Area Network)が用いられている。CANには、ECUを追加するためのインターフェースも用意されているので、このインターフェースを介してCANに接続し、外部から不正な通信フレーム(メッセージ)を送信することも考えられる。CANの通信フレームのヘッダ部分は、識別領域を持っており、通信フレームの種別を示すフレーム識別子(アービトレーションID)が格納されており、このアービトレーションIDは、通信フレームの種別毎に固定されている。例えばCANの通信フレームを盗聴して、そのヘッダ部分に格納されたアービトレーションIDを特定(解析)し、その特定したアービトレーションIDを使って不正な通信フレームを作成して送信することも考えられる。
CANのセキュリティを向上させるための技術として、例えば通信フレームのうち送信対象のデータが格納される領域(データ領域)に、公開鍵暗号を用いたデジタル署名と通常のデータとを格納して送信し、受信側がデジタル署名を検証して送信側の正当性を確認する技術が知られている。また、例えば通信フレームのヘッダ部分に、通信フレームの種別を示す識別子とともに、該識別子に対応付けられたシーケンス番号をセキュリティ情報として含ませることで、異常メッセージを検出する技術が知られている。また、例えば通信フレームの送信毎に、該通信フレームの種別を示すフレーム識別子を更新する技術も知られている。
特開2012−186635号公報 特開2014−183395号公報 特開2014−17733号公報
本発明が解決しようとする課題は、通信のセキュリティを更に向上させることが可能な通信システム、受信装置、受信方法およびプログラムを提供することである。
実施形態の通信システムは、送信装置と、該送信装置と接続される受信装置と、を備える。送信装置は、第1の生成部と第2の生成部と送信部とを備える。第1の生成部は、受信装置と同期し、かつ、受信装置と共通のアルゴリズムに基づいて、2ビット以上の擬似乱数を生成する。第2の生成部は、通信で送受信されるデータの単位を表す通信フレームの種別を示すフレーム識別子と、擬似乱数とを少なくとも含む通信フレーム識別子を生成し、通信フレームを生成する。送信部は、通信フレームを送信する。受信装置は、第3の生成部と受信部と比較部と処理部とを備える。第3の生成部は、送信装置と同期し、かつ、アルゴリズムに基づいて、擬似乱数を生成する。受信部は、通信フレームを受信する。比較部は、通信フレーム識別子に含まれる擬似乱数と、第3の生成部により生成された擬似乱数とを比較し、通信フレーム識別子に含まれるフレーム識別子と、受信装置の受信対象として予め定められた1以上のフレーム識別子とを比較する。処理部は、比較部による比較の結果に応じて、通信フレームを利用するフレーム処理、通信フレームを廃棄する廃棄処理、正当な権限を持たない第三者からの攻撃であることを判定する攻撃判定処理のうちの何れかを行う。
実施形態の通信システムの構成の一例を示す図。 実施形態の通信ノードの構成の一例を示す図。 実施形態のCPUが有する機能の一例を示す図。 実施形態の通信フレームの一例を示す図。 実施形態の受信フィルターが有する機能の一例を示す図。 実施形態の送信装置が擬似乱数を生成する処理の一例を示す図。 実施形態の受信装置が擬似乱数を生成する処理の一例を示す図。 実施形態の送信装置による通信フレームの送信処理の一例を示す図。 実施形態の受信装置による通信フレームの受信処理の一例を示す図。 実施形態の受信装置による通信フレームの受信処理の一例を示す図。 変形例の通信システムの構成の一例を示す図。
以下、添付図面を参照しながら、実施形態に係る通信システム、受信装置、受信方法およびプログラムの実施形態を詳細に説明する。
図1は、本実施形態の通信システム1の概略構成の一例を示す図である。図1に示すように、通信システム1は、複数の通信ノード10を備え、これらは通信線(バス)20を介して相互に接続されている。本実施形態の通信システム1は、車両内で構築されるネットワークを表す車載ネットワークシステムとして構成され、各通信ノード10は、電子制御装置(ECU:Electronic Control Unit)で構成されている。
通信ノード10間の通信フレームの送受信は、CSMA/CR(Carrier Sense Multiple Access with Collision Resolution)方式で行われる。より具体的には、通信ノード10間の通信フレームの送受信は、CANまたはCAN−FD(CAN with Flexible Data Rate)に基づいて行われる。この例では、通信ノード10間の通信フレームの送受信は、CANのプロトコルに準じて行われるものとする。ここでは、通信フレームとは、通信で送受信されるデータの単位を表し、「メッセージ」と称する場合もある。
何れかの通信ノード10が通信フレームを送信可能な状態になると、該通信ノード10は、通信線20がビジー状態(通信線20を利用不可能な状態)であるかどうかを確認し、通信線20がビジー状態でなければ、通信線20を介して通信フレームを送信する。本実施形態では、通信ノード10間の通信フレームの送受信は、CANのプロトコルに準じて行われるので、通信フレームには、送信側の通信ノード10(「送信装置」)、あるいは、受信側の通信ノード10(「受信装置」)の宛先を示すアドレスは含まれておらず、その代わりにアービトレーションIDが含まれている。アービトレーションIDは、通信フレームの種別を示すフレーム識別子の一例であり、通信フレーム(メッセージ)を識別し、その優先順位を示す固有のIDである。以下の説明では、アービトレーションIDを、「フレーム識別子」と称する場合がある。送信側の通信ノード10が通信線20を介して通信フレームを送信すると、通信線20に接続された他の全ての通信ノード10が該通信フレームを受信し、その受信した通信フレームに含まれるフレーム識別子を確認して、その通信フレームの取り扱いを決定する。より具体的な内容については後述する。
図2は、通信ノード10の構成の一例を示す図である。説明の便宜上、図2では、1台の通信ノード10のみを例示しているが、他の通信ノード10も同様の構成である。図2に示すように、通信ノード10は、CPU30と、CANノード40とを備える。
図3は、CPU30が有する機能の一例を示す図である。図3に示すように、CPU30は、擬似乱数生成部301と、通信フレーム識別子生成部302と、通信フレーム識別子設定部303とを有する。これらの機能は、CPU30が記憶装置(不図示)に記憶されたプログラムを実行することにより実現される。なお、これらの機能のうちの少なくとも一部が専用のハードウェア回路(半導体集積回路等)で実現されてもよい。また、図3の例では、本実施形態に関する機能を主に例示しているが、CPU30が有する機能はこれらに限られるものではない。
擬似乱数生成部301は、他の通信ノード10と同期し、かつ、他の通信ノード10と共通のアルゴリズムに基づいて、2ビット以上の擬似乱数を生成する。通信ノード10が送信側の通信ノード10(送信装置)として動作する場合は、擬似乱数生成部301は、受信側の通信ノード10と同期し、かつ、受信側の通信ノード10と共通のアルゴリズムに基づいて、2ビット以上の擬似乱数を生成する。また、通信ノード10が受信側の通信ノード10(受信装置)として動作する場合は、擬似乱数生成部301は、送信側の通信ノード10と同期し、かつ、送信側の通信ノード10と共通のアルゴリズムに基づいて、2ビット以上の擬似乱数を生成する。
本実施形態では、擬似乱数生成部301は、通信システム1の起動時に、予め定められた同じ初期値(乱数生成用のシード)を用いてアルゴリズムに基づく計算を行って擬似乱数を生成する。この例では、各通信ノード10に対して、予め定められた初期値が埋め込まれているものとする。また、擬似乱数生成部301は、送信側の通信ノード10と受信側の通信ノード10との間で通信フレームの送受信が成功するたびに、アルゴリズムに基づく計算を行って擬似乱数を更新する。
なお、ここでは、CPU30が擬似乱数生成部301の機能を有している場合を例に挙げて説明しているが、これに限らず、例えば後述のCANノード40が擬似乱数生成部301の機能を有する形態であってもよい。
図3の説明を続ける。通信フレーム識別子生成部302は、通信ノード10が送信側の通信ノード10(送信装置)として動作する場合の機能であり、送信対象の通信フレームの種別を示すフレーム識別子と、擬似乱数生成部301により生成された擬似乱数(最新の擬似乱数)とを少なくとも含む通信フレーム識別子を生成する。
図4は、通信フレーム識別子生成部302によって生成される通信フレーム識別子を持つ通信フレームの一例である。通信フレームの先頭部分の領域である識別子領域には、フレーム識別子と、擬似乱数生成部301により生成された擬似乱数とが格納される。図4の例では、識別子領域は、フレーム識別領域と、乱数領域とに分けられ、フレーム識別領域にはフレーム識別子が格納され、乱数領域には擬似乱数が格納される。なお、これに限らず、例えば識別子領域を2つの領域に分けることなく、フレーム識別子と擬似乱数を格納する形態であってもよい。ここで、一般的にフレーム識別子の上位部分は、通信フレームの優先順位を示す情報を構成するので、フレーム識別子の上位部分に擬似乱数を付加すると、優先順位が変化してしまう。このため、フレーム識別子の下位側に擬似乱数を付加することで、優先順位を維持することが望ましい。これらの形態は、「フレーム識別子と、擬似乱数とを少なくとも含む通信フレーム識別子を生成する」という概念に含まれている。
図3の説明を続ける。通信フレーム識別子設定部303は、自装置(通信ノード10)の受信対象となる通信フレームの種別を含んだ通信フレーム識別子を設定する。
図2に戻って説明を続ける。図2に示すように、CANノード40は、インターフェース401と、送信バッファー402と、CANプロトコルコントローラー403と、送受信コントローラー404と、受信バッファー405と、受信フィルター406と、を備える。なお、図2の例では、本実施形態に関する構成要素を主に例示しているが、CANノード40の構成要素はこれらに限られるものではない。
インターフェース401は、CPU30と接続するためのインターフェースであり、CANフレームを生成する。生成されたCANフレームは送信バッファー402に格納される。
CANプロトコルコントローラー403は、通信線20がビジー状態であるかどうかを確認し、その確認結果を送受信コントローラー404へ通知する。送受信コントローラー404は、送信バッファー402に未送信の通信フレームが存在し、かつ、通信線20がビジー状態でなければ、送信バッファー402に格納された通信フレームの送信をCANプロトコルコントローラー403へ依頼する。この依頼を受けたCANプロトコルコントローラー403は、送信バッファー402に格納された通信フレームを、通信線20を介して他の通信ノード10へ送信する。CANプロトコルコントローラー403は、通信フレームの送信が成功したかどうかを監視する機能を有し、その監視結果をCPU30へ通知することもできる。
また、CANプロトコルコントローラー403は、通信線20を介して他の通信ノード10(送信側の通信ノード10)からの通信フレームを受信する機能も有しており、送信側の通信ノード10から受信した通信フレームを受信バッファー405に格納する。
受信フィルター406は、CPU30(通信フレーム識別子設定部303)によって設定された1以上のフレーム識別子(自装置の受信対象として予め定められた1以上のフレーム識別子)と、CPU30(擬似乱数生成部301)によって生成された擬似乱数とを取得する。この例では、受信フィルター406は、CPU30によって設定された1以上のフレーム識別子と、CPU30によって生成された擬似乱数とを、インターフェース401および送受信コントローラー404を介してCPU30から取得する。
以下、受信フィルター406の詳細な機能を説明する。図5は、受信フィルター406が有する機能の一例を示す図である。図5に示すように、受信フィルター406は、比較部411と処理部412とを有する。
比較部411は、通信フレーム識別子(受信した通信フレームに含まれる通信フレーム識別子)に含まれる擬似乱数と、CPU30(擬似乱数生成部301)により生成された擬似乱数とを比較し、該通信フレーム識別子に含まれるフレーム識別子と、自装置の受信対象として予め定められた1以上のフレーム識別子とを比較する。本実施形態では、比較部411は、受信バッファー405に格納された通信フレームの通信フレーム識別子に含まれる擬似乱数と、CPU30から取得した擬似乱数とを比較し、該通信フレーム識別子に含まれるフレーム識別子と、CPU30から取得した1以上のフレーム識別子とを比較する。
処理部412は、比較部411による比較の結果に応じて、通信フレームを利用するフレーム処理、通信フレームを廃棄する廃棄処理、正当な権限を持たない第三者からの攻撃であることを判定する攻撃判定処理のうちの何れかを行う。より具体的には、処理部412は、受信バッファー405に格納された通信フレーム(受信した通信フレーム)の通信フレーム識別子に含まれる擬似乱数と、CPU30(擬似乱数生成部301)により生成された擬似乱数とが一致し、かつ、自装置(受信装置)の受信対象として予め定められた1以上のフレーム識別子の中に、該通信フレーム識別子に含まれるフレーム識別子と一致するフレーム識別子が存在する場合は、フレーム処理を行う。この場合、処理部412は、通信フレームの受信は「成功」したと判断し、その判断結果と、受信した通信フレームをCPU30へ渡すこともできる。これにより、CPU30は、通信フレームの受信が成功したことを知ることができる。
また、処理部412は、受信バッファー405に格納された通信フレームの通信フレーム識別子に含まれる擬似乱数と、CPU30により生成された擬似乱数とが一致し、かつ、自装置の受信対象として予め定められた1以上のフレーム識別子の中に、該通信フレーム識別子に含まれるフレーム識別子と一致するフレーム識別子が存在しない場合は、廃棄処理を行う。この場合、処理部412は、通信フレームの受信は「成功」したと判断し、その判断結果と、通信フレームを廃棄した旨をCPU30へ通知することもできる。これにより、CPU30は、通信フレームの受信が成功したことを知ることができる。この例では、処理部412は、受信した通信フレームの通信フレーム識別子に含まれる擬似乱数と、CPU30により生成された擬似乱数とが一致する場合は、自装置の受信対象として予め定められた1以上のフレーム識別子の中に、該通信フレームに含まれるフレーム識別子と一致するフレーム識別子が存在するか否かに関わらず、通信フレームの受信は「成功」したと判断する(つまり、通信フレームの送信元を認証する)。
さらに、処理部412は、受信バッファー405に格納された通信フレームの通信フレーム識別子に含まれる擬似乱数と、CPU30により生成された擬似乱数とが一致しない場合は、攻撃判定処理を行う。この場合、自装置の受信対象として予め定められた1以上のフレーム識別子の中に、該通信フレーム識別子に含まれるフレーム識別子と一致するフレーム識別子が存在していても、処理部412は攻撃判定処理を行うことになる。この場合、受信側の通信ノード10は、通信フレームの受信は「失敗」したと判断し、その判断結果と、攻撃判定処理を行った旨をCPU30へ通知する。これにより、CPU30は、通信フレームの受信が失敗し、正当な権限を持たない第三者からの攻撃を受けていることを知ることができる。この場合、CPU30は、例えば正当な権限を持たない第三者からの攻撃を受けていることを警告する警告情報(例えば車両の停止を促す情報でもよい)を出力することもできる。この警告情報の出力形態は任意であり、例えば警告情報を画像情報として表示装置(ディスプレイ)に表示する形態であってもよいし、音声情報としてスピーカーから出力する形態であってもよい。
また、この場合において、処理部412は、通信フレームの受信が「失敗」したことをCANプロトコルコントローラー403へ通知する。この通知を受けたCANプロトコルコントローラー403は、通信フレームの受信が「失敗」したことを示す信号(例えばエラーを表す1ビットの情報)を通信線20に対して出力する。これにより、送信側の通信ノード10のCANプロトコルコントローラー403は、通信フレームの送信が失敗したことを検出することができる。この例では、送信側の通信ノード10のCANプロトコルコントローラー403は、通信フレームの送信後、一定期間にわたって通信線20の状態を確認することにより、通信フレームの送信が成功したか否かを検出する。
なお、この例では、受信フィルター406が、処理部412の機能を有している場合を例に挙げて説明したが、これに限らず、例えばCPU30が、以上に説明した処理部412の機能を有する形態であってもよい。
以上がCANノード40の構成となる。本実施形態では、以上に説明したインターフェース401、送信バッファー402、CANプロトコルコントローラー403、送受信コントローラー404、受信バッファー405、および、受信フィルター406の各々は専用のハードウェア回路(半導体集積回路等)で実現されているが、これに限らず、例えばCANプロトコルコントローラー403、送受信コントローラー404、および、受信フィルター406の各々の機能は、CANノード40に搭載されたCPU(CPU30とは別のCPU)が、不図示の記憶装置に格納されたプログラムを実行することにより実現される形態であってもよい。
また、本実施形態では、通信ノード10は、CPU30とCANノード40に分かれて構成されているが、これに限らず、例えば通信ノード10は、以上に説明したCPU30が有する機能と、CANノード40が有する機能とを実現可能な単一の装置で構成されてもよい。この単一の装置のハードウェア構成の一例としては、CPU、ROMやRAM等の記憶装置、通信線20と接続するためのインターフェース(CANのプロトコルに準じて通信フレームの送受信を行うためのインターフェース)、送信バッファー402、受信バッファー405などを備える形態などが考えられる。この形態では、例えばCPUが記憶装置に格納されたプログラムを実行することにより、上述の擬似乱数生成部301、通信フレーム識別子生成部302、通信フレーム識別子設定部303、CANプロトコルコントローラー403、送受信コントローラー404、および受信フィルター406の各々の機能を実現する形態であってもよい。また、これらの機能のうちの少なくとも一部が専用のハードウェア回路(半導体集積回路等)で実現される形態であってもよい。
要するに、通信ノード10は、送信側の通信ノード10(送信装置)として動作する場合の機能として、第1の生成部と第2の生成部と送信部とを備える形態であればよい。第1の生成部は、受信装置と同期し、かつ、該受信装置と共通のアルゴリズムに基づいて、2ビット以上の擬似乱数を生成する機能であり、この例では、擬似乱数生成部301が有する機能に対応している。第2の生成部は、通信フレームの種別を示すフレーム識別子と、第1の生成部により生成された擬似乱数とを少なくとも含む通信フレームを生成する機能であり、この例では、通信フレーム識別子生成部302が有する機能に対応している。送信部は、通信フレームを送信する機能であり、この例では、CANプロトコルコントローラー403または送受信コントローラー404が有する機能に対応している。
また、通信ノード10は、受信側の通信ノード10(受信装置)として動作する場合の機能として、第3の生成部と受信部と比較部と処理部とを備える形態であればよい。第3の生成部は、送信装置と同期し、かつ、アルゴリズムに基づいて、擬似乱数を生成する機能であり、この例では、擬似乱数生成部301が有する機能に対応している。受信部は、通信フレームを受信する機能であり、この例では、CANプロトコルコントローラー403が有する機能に対応している。比較部は、受信した通信フレームの通信フレーム識別子に含まれる擬似乱数と、第3の生成部により生成された擬似乱数とを比較し、該通信フレーム識別子に含まれるフレーム識別子と、受信装置の受信対象として予め定められた1以上のフレーム識別子とを比較する機能であり、この例では、受信フィルター406が有する機能(比較部411)に対応している。処理部は、比較部による比較の結果に応じて、通信フレームの受信を許可するフレーム処理、通信フレームを廃棄する廃棄処理、正当な権限を持たない第三者からの攻撃であることを判定する攻撃判定処理のうちの何れかを行う機能であり、この例では、受信フィルター406が有する機能(処理部412)に対応している。
本実施形態の通信ノード10は、送信側の通信ノード10(送信装置)として動作する場合の機能(第1の生成部、第2の生成部、送信部)、および、受信側の通信ノード10(受信装置)として動作する場合の機能(第3の生成部、受信部、比較部、処理部)の両方を備えている。
図6は、送信側の通信ノード10(送信装置)が擬似乱数を生成する処理の一例を示すフローチャートである。まず通信システム1の起動時に、擬似乱数生成部301は、予め各通信ノード10に対して共通に与えられている初期値(シード)を用いて、受信側と共通のアルゴリズムに基づく計算を行って擬似乱数を生成する(ステップS1)。その後、ステップS1で生成された擬似乱数と、送信対象の通信フレームの種別を示すフレーム識別子とを含む通信フレーム識別子が識別子領域に格納された通信フレームが生成され、該通信フレームの送信が行われる。そして、該通信フレームの送信が成功したと判断された場合(ステップS2:Yes)、擬似乱数生成部301は、アルゴリズムに基づく計算を行って擬似乱数を更新する(ステップS3)。その後は、通信フレームの送信タイミングごとに、ステップS3で更新された擬似乱数と、送信対象の通信フレームの種別を示すフレーム識別子とを含む通信フレーム識別子が識別子領域に格納された通信フレームの生成および送信が行われ、ステップS2以降の処理が繰り返される。
図7は、受信側の通信ノード10(受信装置)が擬似乱数を生成する処理の一例を示すフローチャートである。まず通信システム1の起動時に、擬似乱数生成部301は、予め各通信ノード10に対して共通に与えられている初期値を用いて、送信側と共通のアルゴリズムに基づく計算を行って擬似乱数を生成する(ステップS11)。その後、送信側の通信ノード10から受信した通信フレームと、ステップS11で生成された擬似乱数と、自装置の受信対象として予め設定された1以上のフレーム識別子とに基づいて、通信フレームの受信が成功したと判断された場合(ステップS12:Yes)、擬似乱数生成部301は、アルゴリズムに基づく計算を行って擬似乱数を更新する(ステップS13)。通信フレームの受信が成功したか否かの判断方法は上述したとおりである。その後は、送信側の通信ノード10から通信フレームを受信するたびに、その受信した通信フレームと、ステップS13で更新された擬似乱数と、自装置の受信対象として設定された1以上のフレーム識別子とに基づいて、通信フレームの受信が成功したか否かが判断され、ステップS12以降の処理が繰り返される。
図8は、送信側の通信ノード10(送信装置)による通信フレームの送信処理の一例を示すフローチャートである。ここでは、擬似乱数生成部301によって予め擬似乱数が生成(更新)済みであることを前提とする。図8に示すように、通信フレーム識別子生成部302は、送信対象の通信フレームの種別を示すフレーム識別子をフレーム識別領域に格納し、擬似乱数生成部301によって生成済みの擬似乱数(最新の擬似乱数)を乱数領域に格納する(ステップS21)。次に、通信フレーム識別子生成部302は、送信対象のデータがあるかどうかを確認する(ステップS22)。ステップS22の結果が肯定の場合(ステップS22:Yes)、通信フレーム識別子生成部302は、通信フレームのうちデータが格納される領域(データ領域)に、送信対象のデータを格納する(ステップS23)。この例では、データ領域は、識別子領域の後に続く領域となる。以上のようにして、送信対象の通信フレームが生成され、生成された通信フレームは送信バッファー402に格納される。
そして、通信線20がビジー状態でなければ、送受信コントローラー404は、CANプロトコルコントローラー403に対して通信フレームの送信を依頼し、この依頼を受けたCANプロトコルコントローラー403は、送信バッファー402に格納された通信フレームを通信線20へ送信する(ステップS24)。
図9は、受信側の通信ノード10(受信装置)による通信フレームの受信処理の一例を示すフローチャートである。ここでは、擬似乱数生成部301によって予め擬似乱数が生成(更新)済みであることを前提とする。図9に示すように、CPU30(通信フレーム識別子設定部303)は、受信対象の1以上のフレーム識別子を設定する(ステップS31)。上述したように、この例では、受信フィルター406は、ステップS31で設定された1以上のフレーム識別子(自装置の受信対象となる1以上のフレーム識別子)と、擬似乱数生成部301によって生成済みの擬似乱数(最新の擬似乱数)とをCPU30から取得する。
そして、送信側の通信ノード10から通信フレームを受信した場合(ステップS32:Yes)、受信フィルター406(比較部411)は、その受信した通信フレーム(受信バッファー405に格納された通信フレーム)の通信フレーム識別子に含まれる擬似乱数と、CPU30から取得した擬似乱数とが一致し、かつ、自装置(受信装置)の受信対象として予め定められた1以上のフレーム識別子(CPU30から取得した1以上のフレーム識別子)の中に、該通信フレーム識別子に含まれるフレーム識別子と一致するフレーム識別子が存在するか否かを確認する(ステップS33)。ステップS33の結果が肯定の場合(ステップS33:Yes)、受信フィルター406(処理部412)は、上述のフレーム処理を行う(ステップS34)。
ステップS33の結果が否定の場合(ステップS33:No)、受信フィルター406(比較部411)は、擬似乱数は一致しているか否かを確認する(ステップS35)。ステップS35の結果が肯定の場合(ステップS35:Yes)、受信フィルター406(処理部412)は、上述の廃棄処理を行う(ステップS36)。一方、ステップS35の結果が否定の場合(ステップS35:No)、受信フィルター406(処理部412)は、上述の攻撃判定処理を行う(ステップS37)。
図10は、受信側の通信ノード10(受信装置)による通信フレームの受信処理の他の例を示すフローチャートである。ここでは、擬似乱数生成部301によって予め擬似乱数が生成(更新)済みであることを前提とする。図10に示すように、CPU30(通信フレーム識別子設定部303)は、受信対象の1以上のフレーム識別子を設定する(ステップS41)。上述したように、この例では、受信フィルター406は、ステップS41で設定された1以上のフレーム識別子(自装置の受信対象となる1以上のフレーム識別子)と、擬似乱数生成部301によって生成済みの擬似乱数(最新の擬似乱数)とをCPU30から取得する。
そして、送信側の通信ノード10から通信フレームを受信した場合(ステップS42:Yes)、受信フィルター406(比較部411)は、その受信した通信フレーム(受信バッファー405に格納された通信フレーム)の通信フレーム識別子に含まれる擬似乱数と、CPU30から取得した擬似乱数とが一致するか否かを確認する(ステップS43)。ステップS43の結果が否定の場合(ステップS43:No)、受信フィルター406(処理部412)は、上述の攻撃判定処理を行う(ステップS44)。
ステップS43の結果が肯定の場合(ステップS43:Yes)、受信フィルター406(比較部411)は、自装置(受信装置)の受信対象として予め定められた1以上のフレーム識別子(CPU30から取得した1以上のフレーム識別子)の中に、通信フレーム識別子に含まれるフレーム識別子と一致するフレーム識別子が存在するか否かを確認する(ステップS45)。ステップS45の結果が肯定の場合(ステップS45:Yes)、受信フィルター406(処理部412)は、上述のフレーム処理を行う(ステップS47)。ステップS45の結果が否定の場合(ステップS45:No)、受信フィルター406(比較部411)は、受信フィルター406(処理部412)は、上述の廃棄処理を行う(ステップS46)。
なお、攻撃判断処理(図9のステップS37、図10のステップS44)を行わなくても良い。
なお、図9と図10には、受信フィルター406が、比較部411の機能を有している場合を例に挙げて説明したが、これに限らず、例えばCPU30が、以上に説明した比較部411の機能を有する形態であってもよい。
以上に説明したように、本実施形態では、送信側と受信側で同期し、かつ、共通のアルゴリズムに基づいて、フレーム識別子とは無関係な2ビット以上の擬似乱数をそれぞれ生成する。そして、送信側は、その生成した擬似乱数を通信フレームに含ませて送信し、受信側は、送信側と同期して生成した擬似乱数と、受信した通信フレームに含まれる擬似乱数とを比較することで、送信側の正当性を確認することができる。本実施形態における送信側の正当性を確認するための情報は、フレーム識別子とは無関係に作成された2ビット以上の擬似乱数であるので、フレーム識別子に対応付けられたシーケンス番号を用いて送信側の正当性を確認する構成に比べて、送信側の正当性を確認するための情報の解析や予測は困難になる。これにより、通信のセキュリティを更に向上させることが可能になる。
以上、本発明の実施形態を説明したが、上述の実施形態は例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら新規な実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
以下、変形例を説明する。上述の実施形態と共通する部分については適宜に説明を省略する。
(1)変形例1
例えば擬似乱数を生成するための上述のアルゴリズム(各通信ノード10が共有するアルゴリズム)は、擬似乱数のデータ長を定期的に変化させる手順を含む形態であってもよい。擬似乱数の長さを所定のルールで変化させることにより、擬似乱数の解析や予測を困難にすることができる。
(2)変形例2
例えば通信システム1に含まれる複数の通信ノード10のうちの何れかが、擬似乱数の生成に用いられる初期値(乱数生成用のシード)を管理する形態であってもよい。以下の説明では、図11に示すように、初期値を管理する通信ノード10を「管理ノード10A」と称し、その他の通信ノード10を「普通ノード10B」と称する。管理ノード10Aは、上述した通信ノード10が有する機能の他に、初期値を更新する機能(更新部)をさらに有し、初期値を更新するたびに、その更新した初期値を全ての普通ノード10Bへ配信する。例えば更新した初期値を暗号化して配信することもできる。例えば管理ノード10Aは、通信フレームの送受信が成功するたびに、初期値を更新し、その更新した初期値を全ての普通ノード10Bへ配信する形態であってもよい。
普通ノード10Bが有する擬似乱数生成部301は、更新された初期値を受け取るたびに、その更新された初期値を用いてアルゴリズムに基づく計算を行って擬似乱数を生成する。同様に、管理ノード10Aが有する擬似乱数生成部301は、初期値が更新されるたびに、その更新された初期値を用いてアルゴリズムに基づく計算を行って擬似乱数を生成する。つまり、通信システム1に含まれる複数の通信ノード10の各々は、更新部により初期値が更新されるたびに、その更新された初期値を用いてアルゴリズムに基づく計算を行って擬似乱数を生成することになる。
要するに、通信システム1は、初期値を更新する更新部を備え、送信側の通信ノード10が有する擬似乱数生成部301(第1の生成部)、および、受信側の通信ノード10が有する擬似乱数生成部301(第3の生成部)は、更新部により初期値が更新されるたびに、その更新された初期値を用いてアルゴリズムに基づく計算を行って擬似乱数を生成する形態であればよい。
以上の各実施形態および各変形例は、任意に組み合わせることが可能である。
また、上述の実施形態および各変形例の通信ノード10で実行されるプログラムを、インターネット等のネットワークに接続されたコンピュータ上に格納し、ネットワーク経由でダウンロードさせることにより提供するようにしてもよい。また、上述の実施形態および各変形例の通信ノード10で実行されるプログラムを、インターネット等のネットワーク経由で提供または配布するようにしてもよい。また、上述の実施形態および各変形例の通信ノード10で実行されるプログラムを、ROM等の不揮発性の記録媒体に予め組み込んで提供するようにしてもよい。
1 通信システム
10 通信ノード
20 通信線
30 CPU
40 CANノード
301 擬似乱数生成部
302 通信フレーム識別子生成部
303 通信フレーム識別子設定部
401 インターフェース
402 送信バッファー
403 CANプロトコルコントローラー
404 送受信コントローラー
405 受信バッファー
406 受信フィルター
411 比較部
412 処理部

Claims (10)

  1. 送信装置と、前記送信装置と接続される受信装置と、を備える通信システムであって、
    前記送信装置は、
    前記受信装置と同期し、かつ、前記受信装置と共通のアルゴリズムに基づいて、2ビット以上の擬似乱数を生成する第1の生成部と、
    通信で送受信されるデータの単位を表す通信フレームの種別を示すフレーム識別子と、前記擬似乱数とを少なくとも含む通信フレーム識別子を含む前記通信フレームを生成する第2の生成部と、
    前記通信フレームを送信する送信部と、を備え、
    前記受信装置は、
    前記送信装置と同期し、かつ、前記アルゴリズムに基づいて、前記擬似乱数を生成する第3の生成部と、
    前記通信フレームを受信する受信部と、
    前記通信フレーム識別子に含まれる擬似乱数と、前記第3の生成部により生成された前記擬似乱数とを比較し、前記通信フレーム識別子に含まれる前記フレーム識別子と、前記受信装置の受信対象として予め定められた1以上の前記フレーム識別子とを比較する比較部と、
    前記通信フレームを利用するフレーム処理、前記通信フレームを廃棄する廃棄処理、および、正当な権限を持たない第三者からの攻撃であることを判定する攻撃判定処理のうち、前記比較部による比較の結果に応じたいずれかの処理を行う処理部と、を備え、
    前記第1の生成部および前記第3の生成部は、前記送信装置と前記受信装置との間で前記通信フレームの送受信が成功するたびに、前記アルゴリズムに基づく計算を行って前記擬似乱数を更新する、
    通信システム。
  2. 前記処理部は、
    前記通信フレーム識別子に含まれる前記擬似乱数と、前記第3の生成部により生成された前記擬似乱数とが一致し、かつ、前記受信装置の受信対象として予め定められた1以上の前記フレーム識別子の中に、前記通信フレーム識別子に含まれる前記フレーム識別子と一致する前記フレーム識別子が存在する場合は、前記フレーム処理を行い、
    前記通信フレーム識別子に含まれる前記擬似乱数と、前記第3の生成部により生成された前記擬似乱数とが一致し、かつ、前記受信装置の受信対象として予め定められた1以上の前記フレーム識別子の中に、前記通信フレーム識別子に含まれる前記フレーム識別子と一致する前記フレーム識別子が存在しない場合は、前記廃棄処理を行い、
    前記通信フレーム識別子に含まれる前記擬似乱数と、前記第3の生成部により生成された前記擬似乱数とが一致しない場合は、前記攻撃判定処理を行う、
    請求項1に記載の通信システム。
  3. 前記送信装置と前記受信装置との間での前記通信フレームの送受信は、CSMA/CR方式で行われる、
    請求項1または2に記載の通信システム。
  4. 前記送信装置と前記受信装置との間での前記通信フレームの送受信は、CANまたはCAN−FDに基づいて行われる、
    請求項3に記載の通信システム。
  5. 前記第1の生成部および前記第3の生成部は、前記通信システムの起動時に、予め定められた同じ初期値を用いて前記アルゴリズムに基づく計算を行って前記擬似乱数を生成する、
    請求項1に記載の通信システム。
  6. 前記アルゴリズムは、前記擬似乱数のデータ長を定期的に変化させる手順を含む、
    請求項1に記載の通信システム。
  7. 前記初期値を更新する更新部をさらに備え、
    前記第1の生成部および前記第3の生成部は、前記更新部により前記初期値が更新されるたびに、その更新された前記初期値を用いて前記アルゴリズムに基づく計算を行って前記擬似乱数を生成する、
    請求項5に記載の通信システム。
  8. 通信で送受信されるデータの単位を表す通信フレームを送信する送信装置と接続される受信装置であって、
    前記送信装置と同期し、かつ、前記送信装置と共通のアルゴリズムに基づいて、2ビット以上の擬似乱数を生成する擬似乱数生成部と、
    前記通信フレームの種別を示すフレーム識別子と、前記送信装置により生成された前記擬似乱数とを少なくとも含む通信フレーム識別子を含む前記通信フレームを受信する受信部と、
    前記通信フレーム識別子に含まれる前記擬似乱数と、前記擬似乱数生成部により生成された前記擬似乱数とを比較し、前記通信フレーム識別子に含まれる前記フレーム識別子と、前記受信装置の受信対象として予め定められた1以上の前記フレーム識別子とを比較する比較部と、
    前記通信フレームを利用するフレーム処理、前記通信フレームを廃棄する廃棄処理、および、正当な権限を持たない第三者からの攻撃であることを判定する攻撃判定処理のうち、前記比較部による比較の結果に応じたいずれかの処理を行う処理部と、を備え、
    前記擬似乱数生成部および前記送信装置は、前記送信装置と前記受信装置との間で前記通信フレームの送受信が成功するたびに、前記アルゴリズムに基づく計算を行って前記擬似乱数を更新する、
    受信装置。
  9. 通信で送受信されるデータの単位を表す通信フレームを送信する送信装置と接続される受信装置による受信方法であって、
    前記送信装置と同期し、かつ、前記送信装置と共通のアルゴリズムに基づいて、2ビット以上の擬似乱数を生成する生成ステップと
    前記通信フレームの種別を示すフレーム識別子と、前記送信装置により生成された前記擬似乱数とを少なくとも含む通信フレーム識別子を含む前記通信フレームを受信する受信ステップと
    前記通信フレーム識別子に含まれる前記擬似乱数と、前記受信装置が生成した前記擬似乱数とを比較し、前記通信フレーム識別子に含まれる前記フレーム識別子と、前記受信装置の受信対象として予め定められた1以上の前記フレーム識別子とを比較する比較ステップと
    前記通信フレームを利用するフレーム処理、前記通信フレームを廃棄する廃棄処理、および、正当な権限を持たない第三者からの攻撃であることを判定する攻撃判定処理のうち、前記比較ステップによる比較の結果に応じたいずれかの処理を行い、
    前記受信装置および前記送信装置は、前記送信装置と前記受信装置との間で前記通信フレームの送受信が成功するたびに、前記アルゴリズムに基づく計算を行って前記擬似乱数を更新する、
    受信方法。
  10. 通信で送受信されるデータの単位を表す通信フレームを送信する送信装置と接続される受信装置を、
    前記送信装置と同期し、かつ、前記送信装置と共通のアルゴリズムに基づいて、2ビット以上の擬似乱数を生成する擬似乱数生成手段と、
    前記通信フレームの種別を示すフレーム識別子と、前記送信装置により生成された前記擬似乱数とを少なくとも含む通信フレーム識別子を含む前記通信フレームを受信する受信手段と、
    前記通信フレーム識別子に含まれる前記擬似乱数と、前記擬似乱数生成手段により生成された前記擬似乱数とを比較し、前記通信フレーム識別子に含まれる前記フレーム識別子と、前記受信装置の受信対象として予め定められた1以上の前記フレーム識別子とを比較する比較手段と、
    前記通信フレームを利用するフレーム処理、前記通信フレームを廃棄する廃棄処理、および、正当な権限を持たない第三者からの攻撃であることを判定する攻撃判定処理のうち、前記比較手段による比較の結果に応じたいずれかの処理を行う処理手段として機能させ
    前記擬似乱数生成手段および前記送信装置は、前記送信装置と前記受信装置との間で前記通信フレームの送受信が成功するたびに、前記アルゴリズムに基づく計算を行って前記擬似乱数を更新する、
    プログラム。
JP2016170042A 2015-11-13 2016-08-31 通信システム、受信装置、受信方法およびプログラム Active JP6615721B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US15/266,606 US10050983B2 (en) 2015-11-13 2016-09-15 Communication system, receiving apparatus, receiving method, and computer program product

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2015223277 2015-11-13
JP2015223277 2015-11-13

Publications (2)

Publication Number Publication Date
JP2017098937A JP2017098937A (ja) 2017-06-01
JP6615721B2 true JP6615721B2 (ja) 2019-12-04

Family

ID=58803882

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016170042A Active JP6615721B2 (ja) 2015-11-13 2016-08-31 通信システム、受信装置、受信方法およびプログラム

Country Status (1)

Country Link
JP (1) JP6615721B2 (ja)

Also Published As

Publication number Publication date
JP2017098937A (ja) 2017-06-01

Similar Documents

Publication Publication Date Title
JP6685023B2 (ja) 電子制御装置、通信方法およびプログラム
US10050983B2 (en) Communication system, receiving apparatus, receiving method, and computer program product
EP3386163B1 (en) Apparatuses and methods for use in a can system
EP3038318B1 (en) Communication control apparatus, communication control method and communication control program
JP6814549B2 (ja) 演算装置、認証システム、認証方法
US11245535B2 (en) Hash-chain based sender identification scheme
KR101740957B1 (ko) 차량용 데이터의 인증 및 획득 방법
JP2013048374A (ja) 保護通信方法
CN107710676B (zh) 网关装置及其控制方法
JP6512023B2 (ja) 通信システム、送信ノード、及び受信ノード
CN107836095B (zh) 用于在网络中产生秘密或密钥的方法
JP6728700B2 (ja) 通信システム、通信プログラム、通信方法、および、通信装置
CN108352991B (zh) 信息处理装置以及不正当消息检测方法
CN113632419A (zh) 用于对要在总线系统(bu)、特别是机动车辆的总线系统中传输的至少一个数据分组进行生成和认证检查的装置和方法
CN111901109B (zh) 基于白盒的通信方法、装置、设备和存储介质
Lenard et al. LOKI: A lightweight cryptographic key distribution protocol for controller area networks
JP2023519059A (ja) ネットワークのセキュリティ手段を高めるネットワーク上におけるデータ交換のための方法およびシステムおよびその種のシステムを包含する乗り物
JP6615721B2 (ja) 通信システム、受信装置、受信方法およびプログラム
JP7110950B2 (ja) ネットワークシステム
CN112930662B (zh) 信息处理装置、管理装置
JP2020113852A (ja) 車載通信システム、車載通信制御装置、車載通信装置、コンピュータプログラム、通信制御方法及び通信方法
Shannon et al. Blockchain based distributed key provisioning and secure communication over CAN FD
JP2018050183A (ja) 通信システム、中継装置、通信装置及び通信方法
JP6601244B2 (ja) 通信システム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20180904

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20190426

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20190604

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20190805

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20191008

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20191106

R151 Written notification of patent or utility model registration

Ref document number: 6615721

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151