JP2016116132A - 通信制御装置、通信制御方法、および、通信制御プログラム - Google Patents

通信制御装置、通信制御方法、および、通信制御プログラム Download PDF

Info

Publication number
JP2016116132A
JP2016116132A JP2014254545A JP2014254545A JP2016116132A JP 2016116132 A JP2016116132 A JP 2016116132A JP 2014254545 A JP2014254545 A JP 2014254545A JP 2014254545 A JP2014254545 A JP 2014254545A JP 2016116132 A JP2016116132 A JP 2016116132A
Authority
JP
Japan
Prior art keywords
frame
identification information
unit
communication
bit
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.)
Withdrawn
Application number
JP2014254545A
Other languages
English (en)
Inventor
純 矢嶋
Jun Yajima
純 矢嶋
武仲 正彦
Masahiko Takenaka
正彦 武仲
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.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2014254545A priority Critical patent/JP2016116132A/ja
Priority to US14/954,020 priority patent/US20160173397A1/en
Publication of JP2016116132A publication Critical patent/JP2016116132A/ja
Withdrawn legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/31Flow control; Congestion control by tagging of packets, e.g. using discard eligibility [DE] bits
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/32Flow control; Congestion control by discarding or delaying data units, e.g. packets or frames

Abstract

【課題】不正なフレームを用いた攻撃に対するシステムの耐性を強化する。【解決手段】通信制御装置は、フレームの識別情報を用いてフレームを受信するかを判定する複数の通信装置の間の通信を制御する。通信制御装置は、記憶部、制御部、選択部を備える。記憶部は、複数の通信装置のいずれかに接続された複数のポートの各々と、当該ポートに接続された通信装置が送信処理に使用する識別情報を対応付けて記憶する。制御部は、第1のフレームを識別する第1の識別情報が第1のフレームの受信ポートに対応付けられていない場合、複数の通信装置のいずれでも受信されない第2の識別情報を設定した第2のフレームを生成する。選択部は、第1のフレームと共に第2のフレームを取得すると、第1のフレームの代わりに第2のフレームを複数の通信装置に送信するための処理を行う【選択図】図3

Description

本発明は、通信装置間の通信の制御に関する。
自動車の車載ネットワークやファクトリーオートメーションなどに使用される装置間で、データや制御情報を送受信するために、CAN(Controller Area Network)と呼ばれるネットワーク技術が使用されることがある。CANでは、ECU(electronic control unit)と呼ばれる装置間の接続にCANハブが使用されることがある。
図1は、CANハブ10を含むシステムで行われるフレームの送受信の例を示す。図1の例では、CANハブ10にECU5(5a〜5c)が接続されている。CANハブ10は、あるポートから入力された信号を、CANトランシーバ11(11a〜11c)と通信調停部12を介して、全てのポートに出力する。なお、同時に複数のフレームを受信すると、通信調停部12は、出力対象とするフレームを決定する。ここで、通信に使用されるフレームには、識別情報(ID)が含まれている。また、各ECUは、受信するフレームの識別情報を、予め記憶している。
例えば、ECU5bはID=789のフレームを受信し、ECU5cはID=123のフレームを受信するものとする。また、ECU5aは、ID=123またはID=456のフレームを送信するように設定されている。例えば、図1に示すように、ECU5aがID=123を指定したフレームF1を送信したとする。すると、フレームF1はCANハブ10の全てのポートから出力されるので、ECU5a〜5cの全てに向けてフレームF1が出力される。ECU5bは、受信対象のフレームのIDは789であるので、フレームF1を廃棄する。一方、ECU5cは、IDが123であるので、フレームF1を受信し、適宜、処理を行う。
図2は、送信処理に使用するIDとして設定されていないIDを用いた送信処理が行われた場合の例を示す。例えば、ECU5aが外部からの攻撃を受けたことにより、送信処理に使用するIDとして設定されていないID=789を設定したフレームF2を送信したとする。フレームF2も全てのポートから出力されるので、フレームF2がECU5a〜5cに向けて送信される。すると、ID=789のフレームを受信するように設定されたECU5bは、フレームF2を受信するが、ECU5cはフレームF2を破棄する。従って、ECU5aが送信処理に使用するIDが変更されたことにより、ECU5bは、ECU5bが本来受信しないECU5aからのフレームをフレームF2として受信し、フレームF2の処理を行うことになる。このように、本来はECU5bで処理されないデータを含むフレームF2がECU5bで処理されることにより、システムへの問題が発生する恐れがある。
このような不正なフレームをECU5が受信することを避けるための技術も考案されている。例えば、CANハブ10の各ポートと、接続されているECU5が送信に使用するIDを対応付け、対応付けられていないIDを含むフレームが入力されたポートと通信調停部12の間の結線をスイッチで切断することが提案されている。
また、関連する技術として、データ送信を抑制させる対象の装置に送信不成功の状態を擬似的に発生させてから、抑制対象でない装置間で通信を行うことにより、特定の装置間での通信を優先する方法が提案されている(例えば、特許文献1)。さらに、ゲートウェイ装置を通過する特定のデータを出力する際に、ゲートウェイ装置を通過しないダミーデータを出力することによりデータの中継を確実に行う方法も提案されている(例えば、特許文献2)。
特開2004−363761号公報 特開2014−36417号公報
関口大樹、他3名、「不正CANデータ送信を抑制するホワイトリスト・ハブ」、暗号と情報セキュリティシンポジウムSCIS2014予稿集、電子情報通信学会、2014年1月、SCIS2014−2−C1−1
背景技術で述べた方法を用いても、不正なフレームを用いた攻撃からシステムを保護することは困難である。例えば、不正なフレームの入力に使用される結線を切断しても、入力されたフレームが不正であるかを判定するために読み込まれたビット列がフレームの断片としてCANハブに入力され、各ポートに出力される恐れがある。フレームの断片が各ポートに出力されると、各ポートに接続されているECUでエラーが検出され、各ECUからエラーフレームが出力されるために、システムが輻輳する恐れがある。また、通信の抑制対象の装置に送信不成功の状態を擬似的に発生させる場合、送信不成功を通知するためのエラーフレームにより、輻輳が発生する恐れがある。また、ゲートウェイ装置にダミーフレームを送信する場合でも、ダミーフレームはゲートウェイに受信される。従って、不正なフレームの受信を防ぐために、これらの方法を使用することはできない。
本発明は、不正なフレームを用いた攻撃に対するシステムの耐性を強化することを目的とする。
ある態様にかかる通信制御装置は、フレームの識別情報を用いて前記フレームを受信するかを判定する複数の通信装置の間の通信を制御する。通信制御装置は、記憶部、制御部、選択部を備える。記憶部は、前記複数の通信装置のいずれかに接続された複数のポートの各々と、当該ポートに接続された通信装置が送信処理に使用する識別情報を対応付けて記憶する。制御部は、第1のフレームを識別する第1の識別情報が前記第1のフレームの受信ポートに対応付けられていない場合、前記複数の通信装置のいずれでも受信されない第2の識別情報を設定した第2のフレームを生成する。選択部は、前記第1のフレームと共に前記第2のフレームを取得すると、前記第1のフレームの代わりに前記第2のフレームを前記複数の通信装置に送信するための処理を行う。
不正なフレームを用いた攻撃に対するシステムの耐性が強化される。
CANハブを含むシステムで行われるフレームの送受信の例を示す図である。 送信処理に使用するIDとして設定されていないIDを用いた送信処理が行われた場合の例を示す図である。 実施形態にかかる通信制御方法の例を示す図である。 第1の実施形態にかかる通信制御装置の構成の例を示す図である。 通信制御装置のハードウェア構成の例を示す図である。 送受信されるフレームのフォーマットの例を示す図である。 制御部と選択部の動作の例を説明する図である。 比較処理の例を説明する図である。 未使用IDリストの例を示す図である。 制御部と選択部の動作の例を説明する図である。 制御部で行われる処理の例を説明するフローチャートである。 選択部で行われる処理の例を説明するフローチャートである。 第2の実施形態にかかる通信制御装置の構成の例を示す図である。 使用IDリストの例を示す図である。 制御部で行われる処理の例を説明するフローチャートである。 フレームリストの例を示す図である。
図3は、実施形態にかかる通信制御方法の例を示す。図3に示す通信制御装置20では、各CANトランシーバ21(21a〜21c)からの出力は、選択部23(23a〜23c)と制御部30(30a〜30c)とに分岐される。制御部30は、選択部23にデータを出力できる。このため、選択部23は、CANトランシーバ21と制御部30の両方から所定の時間内にフレームを取得すると、取得したフレームから、通信調停部22に出力する対象のフレームを選択する。ここで、所定の時間は、制御部30からの入力とCANトランシーバ21からの入力が同じフレームに起因していると推定できる時間の範囲内で設定された値である。以下の説明では、選択部23は、入力されたフレームのIDの値を用いて、通信調停部22に出力する対象を選択するものとする。
通信制御装置20は、予め、ポートごとに、そのポートに接続されているECU5が送信処理に使用する識別情報を記憶している。さらに、通信制御装置20は、いずれのポートに接続されたECU5でも受信されない識別情報を特定するための情報を保持している。なお、いずれのポートに接続されたECU5でも受信されない識別情報を特定する情報は、例えば、いずれのポートでも受信されない識別情報のリストを含む任意の形式の情報とすることができる。
図3の例では、ECU5aは、正常に動作している場合は、送信処理にID=123とID=456を使用するものとする。しかし、図2のケースと同様に、ECU5aが外部からの攻撃を受けて、送信処理に使用するIDとして設定されていないID=789を設定したフレームF2を送信したとする。
矢印A1で示すように、CANトランシーバ21aから出力されたデータは、選択部23aと制御部30aとに分岐される。このため、フレームF2がCANトランシーバ21aから出力されると、フレームF2は、選択部23aと制御部30aとに入力される。
制御部30aは、フレームF2を識別する情報がフレームF2の受信ポートに対応付けられた識別情報のいずれかと一致するかを判定する。なお、受信ポートに対応付けられた識別情報が複数の場合、制御部30は、受信ポートに対応付けられたいずれかの識別情報が、受信フレームの識別情報と一致するかを判定する。制御部30aは、フレームF2のID=789であるのに対し、フレームF2の受信ポートには、ID=789が登録されていないと判定したとする。すると、制御部30aは、いずれのECU5でも受信の対象とならない識別情報のうち、選択部23aでフレームF2よりも優先的に通信調停部22に出力される識別情報を選択する。制御部30aは、フレームF2の代わりに、選択した識別情報をIDとするフレームF3を選択部23aに出力する(矢印A2)。ここで、フレームF3では、ID=710であるとする。
選択部23aには、CANトランシーバ21aからフレームF2が入力され、さらに、制御部30aからフレームF3が入力されている。選択部23aは、フレームF2とフレームF3を所定時間内に取得したため、フレームF2とフレームF3のIDを用いて、通信調停部22に出力するフレームを選択する。ここで、フレームF3のIDは、通信調停部22に出力される対象としての優先度がフレームF2よりも高くなるように選択されている。このため、選択部23aは、フレームF3を通信調停部22への出力対象に選択し、フレームF3を通信調停部22に出力する(矢印A3)。
矢印A4で示すように、通信調停部22は、入力されたフレームF3を全てのポートに向けて転送する。このため、フレームF3は、ECU5a〜5cに送信される。ECU5bは、通信制御装置20から入力されたフレームF3のID=710であるため、フレームF3を受信対象ではないと判定して廃棄する。同様に、ECU5cも、フレームF3を受信対象ではないと判定して廃棄する。
従って、実施形態にかかる方法によると、ECU5への不正なフレームの転送を防ぐことができる。さらに、実施形態にかかる方法によると、フレームの断片がネットワーク中で送受信されることにより、エラーフレームの輻輳が発生する恐れも無い。このため、実施形態にかかる方法を用いて、不正なフレームを用いた攻撃からシステムを保護することができる。換言すると、通信制御装置20を用いたシステムでは、攻撃に対する耐性が強化される。
<第1の実施形態>
図4は、第1の実施形態にかかる通信制御装置の構成の例を示す図である。通信制御装置20は、ポート(P1〜P3)、CANトランシーバ21(21a〜21c)、通信調停部22、選択部23(23a〜23c)、制御部30(30a〜30c)、記憶部40(40a〜40c)を備える。制御部30は、変換部31と比較部32を有する。記憶部40は、ホワイトリスト41と未使用IDリスト42を記憶する。
ホワイトリスト41は、通信制御装置20の各ポートに接続されたECU5がフレームの送信に使用する識別情報を、そのポートに対応付けている。なお、図4に示すように、ホワイトリスト41がポートごとに生成されている場合、各ホワイトリスト41は、そのホワイトリスト41に対応付けられたポートに接続されたECU5がフレームの送信に使用する識別情報を格納する。例えば、ホワイトリスト41aは、ポートP1に対応付けられているので、ポートP1に接続されたECU5aが送信処理に使用する識別情報を格納する。同様に、ホワイトリスト41bは、ポートP2から入力されたフレームの処理に使用されるので、ポートP2に接続されているECU5bが送信処理に使用する識別情報を格納する。また、ホワイトリスト41cは、ポートP3に対応付けられているので、ポートP3に接続されたECU5cが送信処理に使用する識別情報を格納する。未使用IDリスト42a〜42cは、通信制御装置20に接続されたいずれのECU5も受信対象としない識別情報を格納する。
CANトランシーバ21は、ECU5との間でフレームを送受信するためのバス送信電圧の発生、バス送信電圧の調整などの処理を行う。また、CANトランシーバ21から通信調停部22への出力は分岐されて、選択部23aと制御部30aとに入力される。
比較部32は、CANトランシーバ21から入力されたフレームの識別情報を、ホワイトリスト41に格納されている識別情報と比較する。比較部32は、入力されたフレームの識別情報が、フレームの受信ポートに対応付けてホワイトリスト41に格納されている識別情報のいずれかに一致すると、入力されたフレームを選択部23に出力する。換言すると、比較部32は、受信ポートに対応付けてホワイトリスト41に登録されている識別情報を持つ受信フレームを、正常なECU5から送信されたフレームとして扱う。一方、入力されたフレームの識別情報が、フレームの受信ポートに対応付けられている識別情報のいずれとも一致しない場合、比較部32は、不正なフレームが入力されたことを変換部31に通知する。
変換部31は、不正なフレームの検出が通知されると、不正なフレームの識別情報を、いずれのECU5でも受信されない識別情報で、かつ、元のIDよりも優先的に通信調停部22に出力されるIDに変更する。変換部31は、識別情報を変更したフレームを選択部23に出力するための処理を行う。
選択部23は、CANトランシーバ21と制御部30から入力されたフレームから選択した1つのフレームを、通信調停部22に出力する。以下の説明では、選択部23は、IDの表わす値が小さいフレームほど優先的に、通信調停部22に出力するものとする。通信調停部22は、入力されたフレームを、全てのポートに向けて出力する。なお、複数のフレームが同時に通信調停部22に入力された場合、通信調停部22は、同時に入力されたフレームのうちの1つを転送対象のフレームとして選択する。
なお、図4の例は、ECU5に接続されているポートが3つの場合を例として示しているが、通信制御装置20がECU5との通信に使用するポートの数は任意である。図4では、ポートごとに制御部30と記憶部40が設けられている場合の例を示しているが、制御部30a〜30cで行われる処理が1つの制御部30で行われても良く、また、記憶部40a〜40cに記憶されている情報が1つの記憶部40に格納されても良い。
図5は、通信制御装置20のハードウェア構成の例である。図5も、ポート数が3の場合の例を示しているが、通信制御装置20のポート数は、実装に応じて任意に決定されうる。通信制御装置20は、選択回路101、処理回路102(102a〜102c)、メモリ103(103a〜103c)、選択回路104(104a〜104c)、CANトランシーバ21(21a〜21c)、ポート(P1〜P3)を備える。選択回路101と選択回路104は、いずれも、通信制御装置20のポートから送信するフレームを、入力された複数のフレームから選択することが可能な任意の回路である。選択回路101は、通信調停部22として動作する。選択回路104は、選択部23として動作する。各処理回路102は、適宜、その処理回路102に接続されたメモリ103に格納されている情報を用いて、制御部30として動作する。メモリ103は、記憶部40として動作する。通信制御装置20は、例えば、ジャンクションボックス、ハブ、リピータハブなどとして実現されうる。
図6は、送受信されるフレームのフォーマットの例を示す。図6のF11は、CANの一般仕様のフレームのフォーマット例であり、F12はCANの拡張仕様で使用されるフレームのフォーマット例である。
一般仕様のフレームは、SOF(Start of Frame)、調停(arbitration)フィールド、コントロールフィールド、データフィールド、CRC(Cyclic Redundancy Check)フィールド、ACKフィールド、EOF(End of Frame)を含む。調停フィールドには、IDとRTR(Remote Transmission Request)が含まれる。ここで、IDは、フレームの識別情報である。コントロールフィールドには、IDE(Identifier Extension)、予約ビット、DLC(Data Length Code)が含まれる。CRCフィールドは、CRCシーケンスとCRCデリミタを含む。ACKフィールドは、ACKスロットとACKデリミタを含む。なお、各フィールドに含まれる情報要素のビット長は、F11の一番下の行に記載したとおりである。例えば、IDの長さは11ビットであり、データフィールドの長さは0〜64ビットの可変長である。
拡張仕様で使用されるフレーム(F12)も、SOF、調停フィールド、コントロールフィールド、データフィールド、CRCフィールド、ACKフィールド、EOFを含む。拡張仕様の調停フィールドは、IDベース、SRR(Substitute Remote Request Bit)、IDE、ID拡張、RTRを含む。拡張仕様では、IDベースとして格納されたビット列の次に、拡張IDとして格納されたビット列をつなげて得られるビット列により、識別情報(ID)を表わす。コントロールフィールドには、予約ビット(r1、r0)とDLCが含まれる。データフィールドからEOFまでは、拡張仕様のフォーマットでも、一般仕様のフォーマットと同様である。また、各フィールドに含まれる情報要素のビット長は、F12の一番下の行に記載したとおりである。このため、拡張フォーマットでは、識別情報として、IDベースの11ビットとID拡張の18ビットを合わせた29ビットのビット列が使用される。
以下、図6のF11に示すフォーマットを用いた不正なフレームがECU5aから通信制御装置20に送信される場合を例として、第1の実施形態で行われる処理の例を説明する。なお、通信に使用されるフレームが拡張仕様の場合でも、同様に処理が行われる。以下、説明を分かりやすくするために、ECU5aから送信されたフレームを第1のフレームと記載する。
ECU5aが第1のフレームを送信すると、第1のフレームは、ポートP1を介して、通信制御装置20に受信される。CANトランシーバ21aは、ポートP1から入力された第1のフレームを、通信調停部22に向けて出力する。CANトランシーバ21から通信調停部22への信号の入力線は分岐しているため、第1のフレームは、選択部23aと比較部32aに入力される。このとき、第1のフレームは、図7に示すように、先頭のビットから順に、選択部23aや比較部32aに入力される。
図7は、制御部30と選択部23の動作の例を説明する図である。図7の例では、ホワイトリスト41a中に10100010110という識別情報が記録されているが、比較部32に入力されたフレームのIDは10110110010であるものとする。なお、図7の例では、分かりやすくするために、ホワイトリスト41aに登録された識別情報が1つの場合を図示しているが、個々のホワイトリスト41に格納される識別情報の数は任意である。また、図7では、図を見やすくするために、比較部32aと変換部31aを合わせて、制御部30aとして示している。
ステップS1において、CANトランシーバ21aが第1のフレーム中のID(10110110010)の1ビット目を出力したとする。第1のフレーム中のIDの1ビット目の値は1である。CANトランシーバ21aからの出力は、比較部32a(制御部30a中)と選択部23aに分岐される。このため、第1のフレーム中のIDの1ビット目の値として、1が比較部32aに出力される(ステップS2)。さらに、第1のフレーム中のIDの1ビット目の値が選択部23aにも出力される(ステップS3)。
ステップS4を参照しながら、比較部32aでの比較処理について説明する。第1のフレーム中のIDの1ビット目の値を取得すると、比較部32aは、ホワイトリスト41aに記録されているいずれかのIDと第1のフレームのIDが一致する可能性があるかを判定する。すなわち、ホワイトリスト41aに記録されている識別情報の先頭の1ビットと、入力された値を比較する。ステップS4の2つのビット列のうち、下に記載しているビット列は、第1のフレーム中のIDである。なお、ステップS4では、IDの1ビット目の値同士を比較していることを見やすくするために、第1のフレーム中のIDの全体を示しているが、この時点では、比較部32aは、第1のフレーム中のIDの1ビット目しか取得していない。比較部32aは、第1のフレーム中のIDの1ビット目の値が1であり、ホワイトリスト41aに1から始まる識別情報が含まれているので、第1のフレームは不正なフレームではない可能性があると判定する。そこで、比較部32aは、第1のフレームのIDの1ビット目を選択部23aに出力する(ステップS5)。
ステップS3とステップS5により、選択部23aには、CANトランシーバ21aと比較部32aとから、IDの先頭のビットの値として、それぞれ、1が入力される。選択部23aは、CANトランシーバ21aから入力されたビットの値と、比較部32aから入力されたビットの値が等しい場合、CANトランシーバ21aから入力された値を通信調停部22に出力する。図7では、CANトランシーバ21aから選択部23aを経由して通信調停部22に至る線により、CANトランシーバ21aから出力されたビットが通信調停部22に出力される様子を示している。通信調停部22に入力されたビットの値は、通信調停部22により、各ポートに出力される。なお、通信調停部22は、選択部23a〜23cを介さずにCANトランシーバ21に接続している結線(図4)に、各ポートに送信するフレーム中の各ビットを出力する。
図8は、比較処理の例を説明する図である。図8でも、説明の都合上、第1のフレームのIDの全ビットを各ステップ(S11〜S13)の下側のビット列として図示しているが、各ステップにおいて比較部32aに入力された値は、太線で囲んだビットである。
ステップS11は、第1のフレームのIDの2ビット目が比較部32aに入力されたときに行われる比較処理の例である。第1のフレームのIDの2ビット目も、図7を参照しながら説明した手順と同様に、比較部32aと選択部23aとに出力される。比較部32aは、ホワイトリスト41a中で1ビット目が第1のフレームのIDと一致した識別情報のいずれかの2ビット目と、入力されたビットの値が一致するかを判定する。換言すると、比較部32aは、第1のフレームの先頭から2ビット目までのビット列がホワイトリスト41a中の識別情報のいずれかの先頭から2ビット目までと一致するかを判定している。ステップS11に示す例では、ホワイトリスト41a中で1ビット目が第1のフレームのIDと一致した識別情報(10100010110)の2ビット目は0である。一方、第1のフレームのIDの2ビット目として比較部32aに入力された値も0である。このため、第1のフレーム中のIDの1〜2ビット目とホワイトリスト41aの比較結果から、比較部32aは、第1のフレームは不正なフレームではない可能性があると判定する。そこで、比較部32aは、第1のフレームのIDの2ビット目を比較部32に出力する。
ステップS11の処理により、比較部32aから選択部23aにデータが出力されたときに、選択部23aが行う処理は、図7を参照しながら説明した処理と同様である。このため、通信調停部22には、第1のフレームのIDの2ビット目の値が入力される。通信調停部22は、入力されたビットの値を各ポートに出力する。
ステップS12は、第1のフレームのIDの3ビット目が比較部32aに入力されたときに行われる比較処理の例である。比較部32aは、ステップS12において、ステップS11と同様の処理を行う。その結果、IDの1〜3ビットはホワイトリスト41a中の識別情報と一致しているので、比較部32aは、第1のフレームは不正なフレームではない可能性があると判定する。また、選択部23aには、比較部32aとCANトランシーバ21aの両方から、第1のフレームの3ビット目が出力される。このため、通信調停部22にも、第1のフレームの3ビット目が出力される。通信調停部22の処理は、ステップS11で第1のフレームの2ビット目が入力されたときと同様である。
ステップS13は、第1のフレームのIDの4ビット目が比較部32aに入力されたときに行われる比較処理の例である。比較部32aは、先頭の1〜4ビットの値が第1のフレームのIDの1〜4ビットと一致する識別情報がホワイトリスト41aに含まれていないので、第1のフレームは不正なフレームであると判定する。比較部32aは、不正なフレームを検出したことを変換部31aに通知する。比較部32aは、第1のフレームのIDの4ビット目の値は、選択部23aに出力しない。なお、この時点において、比較部32aは第1のフレームの1〜3ビットを選択部23aに出力したので、通信調停部22には、選択部23aを介して、第1のフレームのIDの先頭から3ビットまでの値が出力されている。そこで、比較部32aは、第1のフレームのIDの1〜3ビットまでの値を、選択部23aへの出力済みの値として変換部31aに通知する。さらに、比較部32aは、第1のフレームが不正なフレームであると判定したときに使用したビットの値も、変換部31aに出力する。
変換部31aは、比較部32aが比較処理の対象としたビット列よりも選択部23aで優先され、かつ、選択部23aに出力済みのビット列を先頭に含む識別情報を、未使用IDリスト42aから選択する。変換部31aは、選択した識別情報を、第1のフレームの代替として出力する第2のフレームのIDとして用いる。なお、未使用IDリスト42aに含まれている識別情報は、いずれのECU5でも受信されない識別情報であるため、第2のフレームは、各ポートから出力されても、いずれのECU5でも受信されない。
図9は、未使用IDリストの例を示す図である。未使用IDリスト42は、システム中のいずれのECU5でも受信されない識別情報と、各識別情報に対応付けられたCRCの値が含まれている。ここで、CRCは、未使用IDリスト42中の各識別情報を含むフレーム中で、データフィールドの値が予め特定の値である場合について計算したCRCである。ここで、CRCの計算に用いられたデータフィールドの値は、第2のフレームのデータフィールドの値として用いられる。以下の説明では、一例として、データフィールドの全ビットに0が記録されている場合を例とする。
次に、変換部31aによる第2のフレームのIDの決定の詳細について説明する。図7、図8を用いて述べた例では、比較部32aは、入力されたフレームのIDの先頭から3ビットを通信調停部22に出力した後で、不正なフレームであることを検出している。このため、通信調停部22には、ビット列101までがIDとして出力されている。そこで、変換部31aは、第2のフレームのIDとして、先頭から3ビットが101で、第1のフレームのIDの値よりも小さな値となる識別情報を、未使用IDリスト42aに格納されている識別情報から選択する。以下の例では、変換部31aは、未使用IDリスト42aから、10100110000という識別情報を選択したとする。変換部31aは、選択した識別情報に対応付けられたCRCの値も未使用IDリスト42aから取得する。この例では、変換部31aが選択した識別情報に対応付けられたCRCの値は、crc1である。
変換部31aは、選択した識別情報の先頭から、選択部23aに出力済みのビット数を削除して得られるビット列を、IDの続きとして選択部23aに出力する。図8の例では、不正なフレームの検出の際に、第1のフレームのIDのうちの先頭から3ビット(101)が選択部23aに出力されている。このため、変換部31aは、未使用IDリスト42aから選択した識別情報の4ビット目以降(00110000)を選択部23aに出力する。図8のステップS13を参照しながら述べたように、選択部23aにはすでに「101」が入力されているので、選択部23aに入力されるIDは「10100110000」となる。
なお、比較部32から通知されたビット列から第1のIDより優先されるIDを選択できない場合、変換部31は、選択部23での優先度が上がる可能性のある値を選択部23に出力し、次に比較部32に入力されたビットの値も使用してIDを選択する。変換部31は、選択部23で優先される識別情報を選択できるまで、比較部32に入力されたビットの値の取得と優先度が上がる可能性のある値の選択部23への出力を継続する。例えば、第1のフレームのID(10110110010)の5ビット目で第1のフレームが不正なフレームであることが特定された場合、すでに、選択部23に「1011」の4ビットが出力されている。変換部31は、比較処理に使用された5ビット目の値が「0」であることと、小さな値を示すIDほど選択部23で優先されることに基づき、比較部32から通知されたビット列からは選択部23で優先される識別情報を特定できないと判定する。すると、変換部31は、IDの5ビット目の値として「0」を選択部23に出力しつつ、次に比較部32に入力された値を取得する。IDの6ビット目の値は「1」であるので、6ビット目の値が0である識別情報は、第1のフレームのIDよりも選択部23で優先される。そこで、変換部31は、未使用IDリスト42中で「101100」で始まる識別情報を、第2のフレームのIDに決定する。
図10は、制御部30と選択部23の動作の例を説明する図である。図10は、IDの4ビット目の値の処理の際に行われる処理の例を示している。図10を参照しながら、選択部23aで行われる選択処理の具体例を説明する。
ステップS21において、CANトランシーバ21aからIDの4ビット目の値が出力される。CANトランシーバ21aからの出力は、ステップS22とS23に示すように、比較部32aと選択部23aの両方に入力される。ステップS22で比較部32aに入力されたビットに対しての比較処理と第2のフレームのIDの求め方は、図8のステップS13と図9を参照しながら述べたとおりである。このため、ステップS24に示すように、変換部31aは、第2のフレームのIDに選択した識別情報(10100110000)の4ビット目の値である0を選択部23aに出力する。
選択部23aは、CANトランシーバ21aから入力されたビットの値と、制御部30aから入力されたビットの値が異なる場合、より小さい値の入力元から入力されたフレームを通信調停部22に出力する対象に選択する。ここでは、CANトランシーバ21aから入力されたビットの値が1であるのに対して、制御部30a中の変換部31aから入力された値が0である。このため、選択部23aは、以後は、制御部30aから入力された情報を通信調停部22に出力するように設定を変更する。図10では、制御部30aから選択部23aを経由して通信調停部22に至る線により、制御部30aから出力されたビットが通信調停部22に出力される様子を示している。
変換部31aは、IDの変更のための処理が終わると、データフィールドの全ビットの値を0とし、未使用IDリスト42aから取得したCRCの値を比較部32aに出力する。これらの処理が終わると、比較部32aは、第1のフレーム中のCRCシーケンスより後のビット列を選択部23aに出力する。
なお、変換部31aは、IDの変更のための処理が終わると、データフィールドの全ビットの値を0とする代わりに、DLC=0とした上で、フレーム中にデータフィールドを含めないようにしても良い。また、変換部31aは、予め決められている別の値を、IDの変更後のフレームのデータとしても良い。
これらの処理により、変換部31aは、第1のフレームのIDの一部、データフィールド、CRCシーケンスの値を変更することにより、不正に送信された第1のフレームを、いずれのECU5でも受信されない第2のフレームに変換しているといえる。また、第2のフレームは、図10を参照しながら説明した選択部23aの処理により、第1のフレームよりも優先的に通信調停部22に出力される。
図8〜図10を参照しながら、通信制御装置20に不正なフレームが送信された場合の処理を説明したが、受信フレームが不正なフレームではない場合、通信制御装置20は、受信したフレームを各ポートから出力する。この場合に行われる処理は、図7および図8のステップS11、S12を参照しながら説明したとおりである。
図11は、制御部30で行われる処理の例を説明するフローチャートである。なお、図11の例では、定数Xと変数xが使用される。変数xは、入力されたフレームのIDのうちで未使用IDリスト42中の識別情報と比較されたビット数の計数に使用される。定数Xは、通信に使用されているフレーム中で、IDの記述に使用されているビットの総数である。また、図11は処理の一例であり、実装に応じて処理が変更され得る。例えば、ステップS33の処理が最初に行われても良い。
比較部32は、フレームの入力側となるCANトランシーバ21との間の結線からのデータ入力を監視し、フレームの通過が開始したかを判定する(ステップS31、S32)。ここで、比較部32は、受信フレームのSOFを用いて、フレームの通過が開始したと判定する。例えば、比較部32は、フレームのSOFが入力されるとフレームの通過が開始したと判定しても良く、また、比較部32がSOFを選択部23に出力するとフレームの通過が開始したと判定しても良い。比較部32は、フレームの通過が開始すると、変数xを1に設定する(ステップS32でYes、ステップS33)。比較部32は、IDの先頭からxビット目までのビット列が、ホワイトリスト41中に含まれているいずれかの識別情報と一致するかを判定する(ステップS34)。比較部32で行われる判定方法は、図7、図8を参照しながら説明したとおりである。IDの先頭からxビット目までのビット列が、ホワイトリスト41中に含まれているいずれかの識別情報と一致する場合、比較部32は、IDのxビット目を選択部23に出力する(ステップS34でYes、ステップS35)。比較部32は、変数xの値が定数X以上であるかを判定する(ステップS36)。変数xの値が定数X未満である場合、比較部32は、変数xを1つインクリメントして、ステップS34に戻る(ステップS36でNo、ステップS37)。
一方、IDの先頭からxビット目までのビット列が、ホワイトリスト41中に含まれているいずれの識別情報とも一致しない場合、比較部32は、入力されたフレームが不正なフレームであることを変換部31に通知する(ステップS34でNo)。また、比較部32は、不正なフレーム(第1のフレーム)のIDのうち、選択部23に出力済みの(x−1)ビットのビット列を変換部31に通知する。
変換部31は、未使用IDリスト42から、IDの先頭の(x−1)ビット分が第1のフレームの識別情報の先頭から(x−1)ビットと同じIDであって、第1のフレームのIDより優先される識別情報を取得する(ステップS38)。ステップS38で行われる処理の例は、図9、図10を参照しながら説明したとおりである。このとき、変換部31は、未使用IDリスト42から取得した識別情報に対応付けられたCRCの値も合わせて取得する。次に、変換部31は、取得したIDのうちの先頭からxビット目以降を選択部23に出力する(ステップS39)。このため、選択部23には、IDとして、変換部31が選択したIDが通知される。変換部31でのIDの入力処理が終わると、比較部32は、入力されたフレームのコントロールフィールドを選択部23に出力する(ステップS40)。次に、変換部31は、データフィールドのビット長と同じ長さで、各ビットの値が0のビット列と、選択部23に出力した識別情報に対応付けられたCRCの値を、選択部23に出力する(ステップS41)。このため、選択部23には、第1のフレーム中のデータの代わりに、全ビットが0のデータと、データフィールドの全ビットが0の場合のCRCが出力される。その後、比較部32は、入力されたフレームのCRCシーケンスよりも後の値を、選択部23に出力する(ステップS42)。
従って、選択部23は、ステップS38〜S42の処理により、制御部30からは、不正な第1のフレームの代わりに、第1のフレームとは異なる第2のフレームを取得することになる。第2のフレームのIDはいずれのECU5でも受信されない値であり、さらに、第1のIDよりも選択部23での選択処理で優先される値である。また、制御部30は、ステップS38〜S42の処理により、第1のフレームから第2のフレームを生成しているといえる。
一方、ステップS36において、変数xの値が定数X以上である場合、入力されたフレームのIDはホワイトリスト41中の識別情報と一致するので、比較部32は、入力されたフレームは不正フレームではないと判定する(ステップS36でYes)。比較部32は、さらに、入力されたフレームを末尾まで選択部23に出力する(ステップS43)。この場合は、選択部23には受信フレームが出力されるため、選択部23はCANトランシーバ21から取得した第1のフレームを通信調停部22に出力し、通信調停部22は、第1のフレームを各ポートに出力する。
図12は、選択部23で行われる処理の例を説明するフローチャートである。図12では、CANトランシーバ21から選択部23に入力されるフレームを第1のフレームと記載している。一方、制御部30から入力されるフレームは、第1のフレームが不正なフレームでなければ第1のフレームと同じフレームであるが、第1のフレームが不正なフレーである場合は、第2のフレームに置き換えられている。また、図12においても、変数xは、入力されたフレームのIDのうちで未使用IDリスト42中の識別情報と比較されたビット数の計数に使用する変数である。定数Xは、通信に使用されているフレーム中で、IDの記述に使用されているビットの総数である。また、図12において、ステップS52の処理が最初に行われるなどの変更が行われても良い。
選択部23は、CANトランシーバ21からの第1のフレームの入力と、制御部30からのフレームの入力の両方が開始するまで待機する(ステップS51でNo)。CANトランシーバ21からの第1のフレームの入力と制御部30からのフレームの入力が開始すると、選択部23は、変数xを1に設定する(ステップS52)。選択部23は、第1のフレームのxビット目の値と、制御部30から入力されたフレームのxビット目の値が等しいかを判定する(ステップS53)。CANトランシーバ21から入力された第1のフレームのxビット目の値と、制御部30から入力されたフレームのxビット目の値が等しい場合、選択部23は、CANトランシーバ21からの入力を通信調停部22への出力とする(ステップS53でYes)。このため、選択部23は、第1のフレームのxビット目を通信調停部22に出力する(ステップS54)。選択部23は、変数xの値が定数X以上であるかを判定する(ステップS55)。変数xの値が定数X未満である場合、比較部32は、変数xを1つインクリメントして、ステップS53に戻る(ステップS55
でNo、ステップS56)。
次に、CANトランシーバ21から入力された第1のフレームのxビット目の値(x1)と、制御部30から入力されたフレームのxビット目(x2)の値が異なる場合について説明する(ステップS53でNo)。ステップS53でNoと判定される場合、選択部23は、CANトランシーバ21から第1のフレームを取得し、制御部30からは第1のフレームとは異なる第2のフレームを取得している。従って、x1は第1のフレームのxビット目の値であり、x2は第2のフレームのxビット目の値である。選択部23は、x1とx2の大きさを比較する(ステップS57)。
図12の例では、CANトランシーバ21は、制御部30とCANトランシーバ21のうちでより小さい値を入力したほうからの入力を、通信調停部22に出力することを決定する。このため、x1がx2よりも大きい場合、選択部23は、制御部30から取得した第2のフレームを、末尾まで、通信調停部22に出力する(ステップS57でYes、ステップS58)。一方、x1がx2よりも小さい場合、選択部23は、第1のフレームを、末尾まで、通信調停部22に出力する(ステップS57でNo、ステップS59)。なお、選択部23にステップS59の処理を行わせないために、図11などを参照しながら説明したように、変換部31は、第1のフレームのIDよりも小さな値を、第2のフレームのIDとして、未使用IDリスト42から選択している。
ステップS55において、変数xの値が定数X以上である場合、CANトランシーバ21から入力されたフレームと制御部30から入力されたフレームは一致している(ステップS56でYes)。このため、選択部23はCANトランシーバ21から取得した第1のフレームを末尾まで通信調停部22に出力する(ステップS59)。すると、通信調停部22は、第1のフレームを各ポートに出力する。
以上説明したように、第1の実施形態を用いると、選択部23において、不正な第1のフレームが廃棄されることになるので、不正なフレームがECU5で受信されることを防ぐことができる。さらに、通信調停部22からは第1のフレームの代わりに、いずれのECU5でも受信されないがフレームとしてはエラーの原因を含んでいない第2のフレームが送信される。このため、第1の実施形態を用いると、不正なフレームが入力されたことを検知したときに結線を切断する場合のように、フレームの断片がECU5に送信されたことによるエラーメッセージの輻輳も防止することができる。
第1の実施形態は、通信制御装置20において、各ポートから入力されたフレームをリアルタイムに処理するシステムにおいて、不正なIDを用いた攻撃を防御する場合に特に効果的である。すなわち、フレームをリアルタイムに処理するシステムでは、遅延をなるべく小さくするために、通信制御装置20は、ECU5から受信したフレームをバッファリングしない。従って、CANトランシーバ21や制御部30は、IDの全体を取得する前に、入力されたビットを処理している。また、選択部23は、制御部30からの入力とCANトランシーバ21からの入力のうちの一方を、通信調停部22に出力する。通信調停部22に入力された情報は、調停が行われなければ各ポートに出力されるので、比較部32が第1のフレームが不正なフレームであることを検出した段階では、既に、フレームのIDの一部が、通信調停部22を介して各ポートに出力されている可能性がある。このため、変換部31は、いずれのECU5でも受信されない識別情報のうち、選択部23に出力済みのビット列を先頭に含むIDを選択する。また、変換部31は、制御部30から選択部23に出力される第2のフレームが通信調停部22に出力される対象として選択されるように、第1のフレームのIDよりも選択部23で優先される値を、第2のフレームのIDに選択する。従って、第1の実施形態により、システムでのフレームのリアルタイム性を重視した処理を妨げずに、不正なフレームによる攻撃からシステムを守ることができる。
<第2の実施形態>
第2の実施形態では、未使用IDリスト42の代わりに、各ECU5での受信対象となっているIDのリスト(使用IDリスト43)を用いた処理が行われる場合について説明する。なお、第2の実施形態でも第1の実施形態と同様に、第2のフレーム中のデータフィールドの値が予め一定の値に決められているものとする。
図13は、第2の実施形態にかかる通信制御装置60の構成の例を示す図である。通信制御装置60は、ポートP1〜P3、CANトランシーバ21(21a〜21c)、通信調停部22、選択部23(23a〜23c)、制御部50(50a〜50c)、記憶部40(40a〜40c)を備える。制御部50は、変換部31、比較部32、および、CRC計算部51を有する。記憶部40は、ホワイトリスト41と使用IDリスト43を記憶する。CANトランシーバ21、通信調停部22、選択部23、比較部32の動作は、第1の実施形態と同様である。なお、制御部50は処理回路102(図5)によって実現されるものとする。
比較部32は、第1のフレーム中のIDがホワイトリスト41に含まれていない場合、不正なフレームの検出と、IDとして比較部32に出力済みのビット列を変換部31に通知する。変換部31は、使用IDリスト43を用いて、出力済みのビット列を含み、いずれのECU5にも受信されないIDであって、第1のフレームよりも優先される識別情報を決定する。
CRC計算部51は、不正なフレームであることが特定された第1のフレームの代替として出力される第2のフレームのIDと、データフィールドの値などを用いて、第2のフレームに設定するCRCの値を計算する。CRC計算部51は、第2のフレームのIDを変換部31から取得する。以下の例では、第2のフレーム中のデータフィールドの値が予め一定の値に決められているので、CRC計算部51は、変換部31から取得したIDの値と第2のフレームのデータフィールドの値、及び、CANで規定されたCRC計算対象データを用いて、CRCを計算する。
図14は、使用IDリスト43の例を示す図である。使用IDリスト43は、通信制御装置60に接続されているいずれかのECU5で受信対象とされている識別情報を含む。なお、使用IDリスト43は、図14に示すように、受信対象とされている識別情報だけを記憶しても良く、また、識別情報とその識別情報からのフレームを受信するECU5の識別情報を対応付けた情報であっても良い。
図15は、制御部50で行われる処理の例を説明するフローチャートである。図15を用いて、不正な第1のフレームの代わりに選択部23に出力する第2のフレームのIDの求め方について説明する。なお、入力されたフレームが不正なフレームではない可能性がある場合の処理は、第1の実施形態と同様である。
ステップS71において、比較部32は、入力されたフレームのIDのxビット目に対する処理により、IDがホワイトリスト41中の識別情報のいずれとも一致しないことを検出したとする。比較部32は、不正なフレームの受信を変換部31に通知するとともに、不正なフレームのIDのうちの先頭から(x−1)ビット分を変換部31に通知する。
変換部31は、先頭の(x−1)ビットが入力されたフレームのIDと同じで、xビット目以降のビットを全て0に設定したIDを生成する(ステップS72)。さらに、変換部31は、生成したIDが使用IDリスト43に含まれているかを判定する(ステップS73)。生成したIDが使用IDリスト43に含まれている場合、変換部31は、生成したIDの値を1つインクリメントして、ステップS73に戻る(ステップS73でYes、ステップS74)。変換部31は、使用IDリスト43に含まれていないIDを検出するまで、ステップS73とS74の処理を繰り返す。
変換部31は、生成したIDが使用IDリスト43に含まれていない場合、生成したIDが入力されたフレームのIDよりも、選択部23において優先されるIDであるかを判定する(ステップS75)。生成したIDが入力されたフレームのIDよりも選択部23で優先されるIDである場合、変換部31と比較部32は、得られたIDを設定したフレームを選択部23に出力するための処理を行う(ステップS75でYes、ステップS76)。すなわち、ステップS76において、変換部31は、使用IDリスト43に含まれていないと判定したIDのxビット目以降を選択部23に出力することにより、IDを置き換える。また、変換部31は、データフィールドの値として予め決定されている値を、選択部23に出力する。その後、CRC計算部51は、選択部23に出力された第2のフレームのIDとデータフィールドの値と、CANで規定されたCRC計算対象データを用いて、第2のフレームに設定するCRCシーケンスの値を決定する。CRCシーケンスの入力後、比較部32は、第1のフレーム中のCRCシーケンスより後のビットを、選択部23に出力する。
第2の実施形態によると、通信制御装置60に接続されているECU5のいずれかで使用されているIDを使用IDリスト43として記憶することにより、第1の実施形態と同様に、不正フレームの転送を防止できる。ここで、通信制御装置60に接続されているECU5の数が少ない場合や、通信制御装置60に接続されているECU5で受信されるIDの種類が少ない場合、使用IDリスト43のデータ量は未使用IDリスト42のデータ量よりも小さくなる。このため、変換部31が使用IDリスト43を用いて、転送処理に使用するIDを決定することにより、未使用IDリスト42を用いて処理を行う場合よりも、通信制御装置60が記憶する情報量を削減することができる。従って、第2の実施形態では、第1の実施形態に比べて、通信制御装置60の処理に使用できるメモリの容量を増やすことができる。
<その他>
なお、実施形態は上記に限られるものではなく、様々に変形可能である。以下にその例をいくつか述べる。
図16は、フレームリストの例である。通信制御装置20は、未使用IDリスト42の代わりにフレームリストを備えていても良い。フレームリストには、不正なフレームの代替として使用できるフレームのリストが記録されている。フレームリスト中のフレームは、いずれも、IDがシステム中のいずれのECU5にも受信されない値に設定されている。また、予め、フレーム毎に、フレームのIDとダミーデータを用いて計算されたCRCが含まれている。例えば、ID_1とダミーデータを用いて計算されたCRCは、CRC_1である。ダミーデータは、任意のビット数の任意の値であり、また、1つのフレームリスト中のフレーム間で異なる値に設定されても良い。
フレームリストが用いられる場合に、変換部31が第2のフレームのIDとして使用する識別情報を選択する方法は、第1の実施形態と同様である。変換部31は、第2のフレームのIDとして使用する対象に選択した識別情報を含むフレームを、フレームリストから抽出する。変換部31は、抽出したフレームのうち、選択部23に出力済みのビット列以降を、選択部23に出力する。
以上の説明では、例として、選択部23では、IDが示す値が小さいほど優先される場合を説明したが、選択部23でのフレームの選択方法は実装に応じて変更され得る。例えば、IDの値が大きいフレームほど選択部23で優先されてもよい。また、選択部23は、制御部30からのフレームをCANトランシーバ21からのフレームよりも優先するように設定されてもよい。
選択回路101、処理回路102、選択回路104として、プロセッサが通信制御装置20、60に搭載されても良い。この場合、プロセッサは、メモリ103に格納されたプログラムを読み込んで、通信調停部22、選択部23、制御部30または制御部50を実現する。また、選択回路104と選択回路101は1つの回路として実現されてもよく、また、選択回路104と処理回路102が1つの回路として実現されてもよい。
第1および第2の実施形態を含む実施形態に関し、さらに以下の付記を開示する。
(付記1)
フレームの識別情報を用いて前記フレームを受信するかを判定する複数の通信装置の間の通信を制御する通信制御装置であって、
前記複数の通信装置のいずれかに接続された複数のポートの各々と、当該ポートに接続された通信装置が送信処理に使用する識別情報を対応付けて記憶する記憶部と、
第1のフレームを識別する第1の識別情報が前記第1のフレームの受信ポートに対応付けられていない場合、前記複数の通信装置のいずれでも受信されない第2の識別情報を設定した第2のフレームを生成する制御部と、
前記第1のフレームと共に前記第2のフレームを取得すると、前記第1のフレームの代わりに前記第2のフレームを前記複数の通信装置に送信するための処理を行う選択部
を備えることを特徴とする通信制御装置。
(付記2)
前記制御部は、
前記選択部に入力される信号を取得し、
前記第1の識別情報の先頭ビットから比較対象のビットまでの第1のビット列が前記受信ポートに対応付けられた識別情報のいずれかと一致する場合、前記第1のフレーム中の比較対象とした対象ビットの複製を前記第2のフレーム中のビットとして、前記選択部に出力し、
前記第1のビット列が前記受信ポートに対応付けられた識別情報のいずれにも一致しないことを特定すると、前記第2の識別情報のうちで前記選択部に出力されていない第2のビット列の値を、前記第1の識別情報中の前記対象ビット以降の値よりも前記選択部で優先される値に設定する
ことを特徴とする付記1に記載の通信制御装置。
(付記3)
前記記憶部は、前記複数の通信装置のいずれでも受信されない識別情報のリストを記憶し、
前記制御部は、前記リスト中の識別情報から、前記第2の識別情報を選択する
ことを特徴とする付記1または2に記載の通信制御装置。
(付記4)
前記記憶部は、前記複数の通信装置のいずれかで受信される識別情報のリストを記憶し、
前記制御部は、
前記第2の識別情報の候補とする第1の候補を決定し、
前記第1の候補が前記リストに含まれておらず、かつ、前記第1の識別情報より前記選択部で優先される値である場合、前記第1の候補を前記第2の識別情報に決定し、
前記第1の候補が前記リストに含まれていると、前記第2の識別情報の第2の候補を生成するとともに、前記第2の候補が前記リストに含まれているかを判定する
ことを特徴とする付記1または2に記載の通信制御装置。
(付記5)
前記記憶部は、前記複数の通信装置のいずれでも受信されない識別情報を含むフレームのリストを記憶し、
前記制御部は、前記リスト中のフレームから、前記第2のフレームを選択し、
選択した第2のフレームの前記対象ビット以降を、前記選択部に出力する
ことを特徴とする付記2に記載の通信制御装置。
(付記6)
フレームの識別情報を用いて前記フレームを受信するかを判定する複数の通信装置の間の通信を制御する通信制御装置が、
第1のフレームを識別する第1の識別情報は、前記第1のフレームの受信ポートに接続された通信装置での送信処理に使用される識別情報として、前記受信ポートに対応付けられているかを判定し、
前記第1の識別情報が前記受信ポートに対応付けられていない場合、前記複数の通信装置のいずれでも受信されない第2の識別情報を設定した第2のフレームを生成し、
前記第1のフレームの代わりに前記第2のフレームを前記複数の通信装置に送信する
処理を行うことを特徴とする通信制御方法。
(付記7)
前記通信制御装置は、
前記第1の識別情報の先頭ビットから比較対象のビットまでの第1のビット列が前記受信ポートに対応付けられた識別情報のいずれかと一致する場合、前記第1のフレーム中の比較対象とした対象ビットを前記第2のフレーム中のビットとして複製し、
前記第1のビット列が前記受信ポートに対応付けられた識別情報のいずれにも一致しないことを特定すると、前記第2の識別情報のうちで前記選択部に出力されていない第2のビット列の値を、前記第1の識別情報中の前記対象ビット以降の値よりも、前記複数の通信装置への送信対象として優先される値に設定する
ことを特徴とする付記6に記載の通信制御方法。
(付記8)
前記通信制御装置は、前記複数の通信装置のいずれでも受信されない識別情報のリストから、前記第2の識別情報を選択する
ことを特徴とする付記6または7に記載の通信制御方法。
(付記9)
前記通信制御装置は、
前記第2の識別情報の候補とする第1の候補を決定し、
前記第1の候補が前記複数の通信装置のいずれかで受信される識別情報のリストに含まれておらず、かつ、前記第1の識別情報より前記選択部で優先される値である場合、前記第1の候補を前記第2の識別情報に決定し、
前記第1の候補が前記リストに含まれていると、前記第2の識別情報の第2の候補を生成するとともに、前記第2の候補が前記リストに含まれているかを判定する
ことを特徴とする付記6または7に記載の通信制御方法。
(付記10)
前記通信制御装置は、
前記複数の通信装置のいずれでも受信されない識別情報を含むフレームのリスト中から、前記第2のフレームを選択し、
選択した第2のフレームの前記対象ビット以降を、前記選択部に出力する
ことを特徴とする付記7に記載の通信制御方法。
(付記11)
フレームの識別情報を用いて前記フレームを受信するかを判定する複数の通信装置の間の通信を制御する通信制御装置に、
第1のフレームを識別する第1の識別情報は、前記第1のフレームの受信ポートに接続された通信装置での送信処理に使用される識別情報として、前記受信ポートに対応付けられているかを判定し、
前記第1の識別情報が前記受信ポートに対応付けられていない場合、前記複数の通信装置のいずれでも受信されない第2の識別情報を設定した第2のフレームを生成し、
前記第1のフレームの代わりに前記第2のフレームを前記複数の通信装置に送信する
処理を行わせることを特徴とする通信制御プログラム。
5 ECU
10 CANハブ
11、21 CANトランシーバ
12、22 通信調停部
20、60 通信制御装置
23 選択部
30 制御部
31 変換部
32 比較部
40 記憶部
41 ホワイトリスト
42 未使用IDリスト
43 使用IDリスト
101、104 選択回路
102 処理回路
103 メモリ

Claims (6)

  1. フレームの識別情報を用いて前記フレームを受信するかを判定する複数の通信装置の間の通信を制御する通信制御装置であって、
    前記複数の通信装置のいずれかに接続された複数のポートの各々と、当該ポートに接続された通信装置が送信処理に使用する識別情報を対応付けて記憶する記憶部と、
    第1のフレームを識別する第1の識別情報が前記第1のフレームの受信ポートに対応付けられていない場合、前記複数の通信装置のいずれでも受信されない第2の識別情報を設定した第2のフレームを生成する制御部と、
    前記第1のフレームと共に前記第2のフレームを取得すると、前記第1のフレームの代わりに前記第2のフレームを前記複数の通信装置に送信するための処理を行う選択部
    を備えることを特徴とする通信制御装置。
  2. 前記制御部は、
    前記選択部に入力される信号を取得し、
    前記第1の識別情報の先頭ビットから比較対象のビットまでの第1のビット列が前記受信ポートに対応付けられた識別情報のいずれかと一致する場合、前記第1のフレーム中の比較対象とした対象ビットの複製を前記第2のフレーム中のビットとして、前記選択部に出力し、
    前記第1のビット列が前記受信ポートに対応付けられた識別情報のいずれにも一致しないことを特定すると、前記第2の識別情報のうちで前記選択部に出力されていない第2のビット列の値を、前記第1の識別情報中の前記対象ビット以降の値よりも前記選択部で優先される値に設定する
    ことを特徴とする請求項1に記載の通信制御装置。
  3. 前記記憶部は、前記複数の通信装置のいずれでも受信されない識別情報のリストを記憶し、
    前記制御部は、前記リスト中の識別情報から、前記第2の識別情報を選択する
    ことを特徴とする請求項1または2に記載の通信制御装置。
  4. フレームの識別情報を用いて前記フレームを受信するかを判定する複数の通信装置の間の通信を制御する通信制御装置が、
    第1のフレームを識別する第1の識別情報は、前記第1のフレームの受信ポートに接続された通信装置での送信処理に使用される識別情報として、前記受信ポートに対応付けられているかを判定し、
    前記第1の識別情報が前記受信ポートに対応付けられていない場合、前記複数の通信装置のいずれでも受信されない第2の識別情報を設定した第2のフレームを生成し、
    前記第1のフレームの代わりに前記第2のフレームを前記複数の通信装置に送信する
    処理を行うことを特徴とする通信制御方法。
  5. 前記通信制御装置は、
    前記第1の識別情報の先頭ビットから比較対象のビットまでの第1のビット列が前記受信ポートに対応付けられた識別情報のいずれかと一致する場合、前記第1のフレーム中の比較対象とした対象ビットを前記第2のフレーム中のビットとして複製し、
    前記第1のビット列が前記受信ポートに対応付けられた識別情報のいずれにも一致しないことを特定すると、前記第2の識別情報のうちで前記選択部に出力されていない第2のビット列の値を、前記第1の識別情報中の前記対象ビット以降の値よりも、前記複数の通信装置への送信対象として優先される値に設定する
    ことを特徴とする請求項4に記載の通信制御方法。
  6. フレームの識別情報を用いて前記フレームを受信するかを判定する複数の通信装置の間の通信を制御する通信制御装置に、
    第1のフレームを識別する第1の識別情報は、前記第1のフレームの受信ポートに接続された通信装置での送信処理に使用される識別情報として、前記受信ポートに対応付けられているかを判定し、
    前記第1の識別情報が前記受信ポートに対応付けられていない場合、前記複数の通信装置のいずれでも受信されない第2の識別情報を設定した第2のフレームを生成し、
    前記第1のフレームの代わりに前記第2のフレームを前記複数の通信装置に送信する
    処理を行わせることを特徴とする通信制御プログラム。
JP2014254545A 2014-12-16 2014-12-16 通信制御装置、通信制御方法、および、通信制御プログラム Withdrawn JP2016116132A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2014254545A JP2016116132A (ja) 2014-12-16 2014-12-16 通信制御装置、通信制御方法、および、通信制御プログラム
US14/954,020 US20160173397A1 (en) 2014-12-16 2015-11-30 Communication control device, method of communicating a frame, and storage medium

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2014254545A JP2016116132A (ja) 2014-12-16 2014-12-16 通信制御装置、通信制御方法、および、通信制御プログラム

Publications (1)

Publication Number Publication Date
JP2016116132A true JP2016116132A (ja) 2016-06-23

Family

ID=56112260

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014254545A Withdrawn JP2016116132A (ja) 2014-12-16 2014-12-16 通信制御装置、通信制御方法、および、通信制御プログラム

Country Status (2)

Country Link
US (1) US20160173397A1 (ja)
JP (1) JP2016116132A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6313897B1 (ja) * 2016-11-10 2018-04-18 株式会社ラック 通信制御装置、通信制御方法およびプログラム
WO2018088462A1 (ja) * 2016-11-10 2018-05-17 株式会社ラック 通信制御装置、通信制御方法およびプログラム

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6603617B2 (ja) 2015-08-31 2019-11-06 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ ゲートウェイ装置、車載ネットワークシステム及び通信方法
CN109246410B (zh) * 2017-05-31 2021-04-02 江苏慧光电子科技有限公司 全息影像的成像方法和数据生成方法及装置
US10389486B1 (en) * 2018-10-05 2019-08-20 Cypress Semiconductor Corporation Parallel processing of dirty packets in Bluetooth and Bluetooth low energy systems
RU2726884C1 (ru) 2019-02-07 2020-07-16 Акционерное общество "Лаборатория Касперского" Система и способ контроля доступа к кибер-физической системе
CN113556270B (zh) * 2021-07-20 2023-03-14 苏州苏试试验集团股份有限公司 Can网络

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4149345B2 (ja) * 2003-10-03 2008-09-10 シャープ株式会社 データ転送制御装置および該データ転送制御装置を備えるデータ駆動型プロセッサ
US8665882B2 (en) * 2009-10-30 2014-03-04 Honeywell International Inc. Serialized enforced authenticated controller area network
US9432329B2 (en) * 2013-09-13 2016-08-30 Netapp, Inc. Network address assignment with duplication detection
JP6126980B2 (ja) * 2013-12-12 2017-05-10 日立オートモティブシステムズ株式会社 ネットワーク装置およびネットワークシステム
EP2892202B1 (en) * 2014-01-06 2018-06-20 Argus Cyber Security Ltd. Hosted watchman

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6313897B1 (ja) * 2016-11-10 2018-04-18 株式会社ラック 通信制御装置、通信制御方法およびプログラム
WO2018088462A1 (ja) * 2016-11-10 2018-05-17 株式会社ラック 通信制御装置、通信制御方法およびプログラム

Also Published As

Publication number Publication date
US20160173397A1 (en) 2016-06-16

Similar Documents

Publication Publication Date Title
JP2016116132A (ja) 通信制御装置、通信制御方法、および、通信制御プログラム
JP6488702B2 (ja) 通信制御装置、通信制御方法、および、通信制御プログラム
US10355971B2 (en) System and method for data path validation and verification
JP5240404B2 (ja) ノード、転送方法、および転送プログラム
JP6798280B2 (ja) 攻撃検知装置、攻撃検知方法、および、攻撃検知プログラム
JP2017118438A (ja) パケット送信プログラム、情報処理装置、および、障害検出方法
CN114338510B (zh) 控制和转发分离的数据转发方法和系统
JP2016100842A (ja) 通信制御装置、通信制御方法、および、通信制御プログラム
US8072907B2 (en) Method and system to restart IS-IS when LSP wraps
CN113922972B (zh) 基于md5标识码的数据转发方法和装置
JP6992309B2 (ja) 送信装置、受信装置、及び通信方法
JP7110950B2 (ja) ネットワークシステム
JP2018037702A (ja) 通信システム、通信装置、および、データ分割制御方法
JP2017168880A (ja) コスト設定装置、方法およびプログラム
JP2008219187A (ja) 経路情報変更方法、経路情報変更装置および経路情報変更プログラム
JP2006140881A (ja) 認証情報付きネットワーク識別子生成装置および機器認証装置
JP2020113852A (ja) 車載通信システム、車載通信制御装置、車載通信装置、コンピュータプログラム、通信制御方法及び通信方法
JP6194775B2 (ja) ノード装置、データ中継方法、及び、プログラム
WO2021240606A1 (ja) 送信装置、受信装置、送信方法及び送受信システム
JP6581062B2 (ja) 通信装置、システム、方法およびプログラム
JP5440372B2 (ja) 管理装置、管理プログラムおよび通信システム
JP2018050183A (ja) 通信システム、中継装置、通信装置及び通信方法
JP7133797B2 (ja) 無線装置、プログラム
WO2017065100A1 (ja) 車載通信システム及び監視装置
JP6712242B2 (ja) サーバ装置とビーコン装置とを含むシステムのサーバ装置及びプログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20171113

A761 Written withdrawal of application

Free format text: JAPANESE INTERMEDIATE CODE: A761

Effective date: 20171218