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

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

Info

Publication number
JP2016100842A
JP2016100842A JP2014238172A JP2014238172A JP2016100842A JP 2016100842 A JP2016100842 A JP 2016100842A JP 2014238172 A JP2014238172 A JP 2014238172A JP 2014238172 A JP2014238172 A JP 2014238172A JP 2016100842 A JP2016100842 A JP 2016100842A
Authority
JP
Japan
Prior art keywords
identification information
frame
communication
unit
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
JP2014238172A
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 JP2014238172A priority Critical patent/JP2016100842A/ja
Priority to US14/944,589 priority patent/US20160147702A1/en
Publication of JP2016100842A publication Critical patent/JP2016100842A/ja
Withdrawn legal-status Critical Current

Links

Images

Classifications

    • G—PHYSICS
    • G06—COMPUTING OR CALCULATING; COUNTING
    • G06F—ELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38—Information transfer, e.g. on bus
    • G06F13/42—Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4204—Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus
    • G06F13/4221—Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being an input/output bus, e.g. ISA bus, EISA bus, PCI bus, SCSI bus
    • G—PHYSICS
    • G06—COMPUTING OR CALCULATING; COUNTING
    • G06F—ELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00—Error detection; Error correction; Monitoring
    • G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/0745—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in an input/output transactions management context
    • G—PHYSICS
    • G06—COMPUTING OR CALCULATING; COUNTING
    • G06F—ELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00—Error detection; Error correction; Monitoring
    • G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0751—Error or fault detection not based on redundancy
    • G06F11/0763—Error or fault detection not based on redundancy by bit configuration check, e.g. of formats or tags
    • H—ELECTRICITY
    • H04—ELECTRIC COMMUNICATION TECHNIQUE
    • H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00—Arrangements for detecting or preventing errors in the information received
    • H—ELECTRICITY
    • H04—ELECTRIC COMMUNICATION TECHNIQUE
    • H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00—Arrangements for detecting or preventing errors in the information received
    • H04L1/12—Arrangements for detecting or preventing errors in the information received by using return channel
    • H04L1/16—Arrangements for detecting or preventing errors in the information received by using return channel in which the return channel carries supervisory signals, e.g. repetition request signals
    • H04L1/1607—Details of the supervisory signal
    • H04L1/1671—Details of the supervisory signal the supervisory signal being transmitted together with control information

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Small-Scale Networks (AREA)

Abstract

【課題】不正なフレームを用いた攻撃に対しての、システムの耐性を強化する。
【解決手段】通信制御装置は、フレームの識別情報を用いてフレームを受信するかを判定する複数の通信装置の間の通信を制御する。通信制御装置は、複数のポート、記憶部、制御部を備える。複数のポートは、複数の通信装置のうちの少なくとも1つに接続されている。記憶部は、複数のポートの各々について、当該ポートに接続された通信装置が送信処理に使用する識別情報を当該ポートに対応付けて記憶する。制御部は、ポートで受信された受信フレームの第1の識別情報が、当該ポートに対応付けられていない場合、複数の通信装置のいずれでも受信されない第2の識別情報を第1の識別情報の代わりに設定したフレームを、複数のポートに向けて出力する。
【選択図】図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の間の結線をスイッチで切断することが提案されている。また、関連する技術として、同一送信元による所定時間以上連続したデータ送信を検出すると、データ送信の停止処理を行う車載通信システムも提案されている。
特開2004−356889号公報
関口大樹、他3名、「不正CANデータ送信を抑制するホワイトリスト・ハブ」、暗号と情報セキュリティシンポジウムSCIS2014予稿集、電子情報通信学会、2014年1月、SCIS2014−2−C1−1
背景技術で述べた方法を用いても、不正なフレームを用いた攻撃からシステムを保護することは困難である。例えば、不正なフレームの入力に使用される結線を切断しても、入力されたフレームが不正であるかを判定するために読み込まれたビット列がフレームの断片としてCANハブに入力され、CANハブの各ポートから出力される恐れがある。フレームの断片が各ポートに出力されると、各ポートに接続されているECUで1つ以上のエラーが検出される。すると、各ECUからエラーフレームが出力されるために、システムが輻輳する恐れがある。また、一定の期間以上連続したデータ送信の検出により、データ送信を停止されるシステムでは、不正なフレームが連続的に送信されない場合、不正なフレームの転送を防止できない。
本発明は、不正なフレームを用いた攻撃に対しての、システムの耐性を強化することを目的とする。
ある態様にかかる通信制御装置は、フレームの識別情報を用いて前記フレームを受信するかを判定する複数の通信装置の間の通信を制御する。通信制御装置は、複数のポート、記憶部、制御部を備える。複数のポートは、前記複数の通信装置のうちの少なくとも1つに接続されている。記憶部は、前記複数のポートの各々について、当該ポートに接続された通信装置が送信処理に使用する識別情報を当該ポートに対応付けて記憶する。制御部は、前記ポートで受信された受信フレームの第1の識別情報が、当該ポートに対応付けられていない場合、前記複数の通信装置のいずれでも受信されない第2の識別情報を前記第1の識別情報の代わりに設定したフレームを、前記複数のポートに向けて出力する。
不正なフレームを用いた攻撃に対する、システムの耐性が強化される。
CANハブを含むシステムで行われるフレームの送受信の例を示す図である。 送信処理に使用するIDとして設定されていないIDを用いた送信処理が行われた場合の例を示す図である。 実施形態にかかる通信制御方法の例を示す図である。 第1の実施形態にかかる通信制御装置の構成の例を示す図である。 通信制御装置のハードウェア構成の例を示す図である。 送受信されるフレームのフォーマットの例を示す図である。 比較処理の例を説明する図である。 未使用IDリストの例を示す図である。 制御部で行われる処理の例を説明するフローチャートである。 第2の実施形態にかかる通信制御装置の構成の例を示す図である。 制御部で行われる処理の例を説明するフローチャートである。 第3の実施形態にかかる通信制御装置の構成の例を示す図である。 使用IDリストの例を示す図である。 制御部で行われる処理の例を説明するフローチャートである。
図3は、実施形態にかかる通信制御方法の例を示す図である。通信制御装置20は、予め、ポートごとに、そのポートに接続されているECU5が送信処理に使用する識別情報を記憶している。さらに、通信制御装置20は、いずれのポートに接続されたECU5も送信しない識別情報を特定するための情報を保持している。なお、いずれのポートに接続されたECU5も送信しない識別情報を特定する情報は、例えば、いずれのポートに接続されたECU5も送信しない識別情報のリストを含む任意の形式の情報とすることができる。
通信制御装置20中の制御部30は、CANトランシーバ21から入力されたフレームの識別情報(第1の識別情報)が、フレームの受信ポートに対応付けられた識別情報に一致するかを判定する。なお、1つのポートに対応付けられた識別情報が複数の場合、制御部30は、受信ポートに対応付けられたいずれかの識別情報が、第1の識別情報と一致するかを判定する。
例えば、図3の例では、ECU5aは、正常に動作している場合は、送信処理にID=123とID=456を使用するものとする。しかし、図2のケースと同様に、ECU5aが外部からの攻撃を受けて、送信処理に使用するIDとして設定されていないID=789を設定したフレームF2を送信したとする。すると、手順A1に示すように、制御部30aは、CANトランシーバ21aを介して、ECU5aから送信されたフレームF2を取得する。従って、図3のケースでは、第1の識別情報は、フレームF2を識別する情報(ID=789)である。さらに、制御部30aは、第1の識別情報がフレームF2の受信ポートに対応付けられた識別情報のいずれかと一致するかを判定する。図3のケースでは、制御部30aは、第1の識別情報がID=789であるのに対し、フレームF2の受信ポートにはID=789が対応付けられていないことを特定する。すると制御部30aは、第1の識別情報の代わりに、いずれのECU5でも受信の対象とならない識別情報(第2の識別情報)を設定したフレーム(フレームF3)を通信調停部22に出力する(手順A2)。ここで、フレームF3の識別情報はID=765であるとする。
フレームF3(ID=765)が通信調停部22に入力されると、通信調停部22は、フレームF3を各ポートに出力する(手順A3)。このため、フレームF3は、ECU5a〜5cに送信される。ECU5bは、通信制御装置20から入力されたフレームF3では、ID=765であるため、フレームF3を受信対象ではないと判定して廃棄する。同様に、ECU5cも、フレームF3を受信対象ではないと判定して廃棄する。
従って、実施形態にかかる方法によると、ECU5への不正なフレームの転送を防ぐことができる。また、不正なフレームが連続的に送信されなくても、不正なフレームの転送が防止される。さらに、実施形態にかかる方法によると、フレームの断片がネットワーク中で送受信されることにより、エラーフレームの輻輳が発生する恐れも無い。このため、実施形態にかかる方法を用いて、不正なフレームを用いた攻撃からシステムを保護することができる。換言すると、通信制御装置20を用いたシステムでは、攻撃に対する耐性が強化される。
<第1の実施形態>
図4は、第1の実施形態にかかる通信制御装置20の構成の例を示す図である。通信制御装置20は、ポート(P1〜P3)、CANトランシーバ21(21a〜21c)、通信調停部22、制御部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は、ECU5から入力されたフレームを、そのCANトランシーバ21に接続された制御部30中の比較部32に出力する。例えば、図4の例では、CANトランシーバ21aは、ECU5aから受信したフレームを比較部32aに出力する。
比較部32は、CANトランシーバ21から入力されたフレームの送信元の情報を、ホワイトリスト41に格納されている識別情報と比較する。比較部32は、入力されたフレームの送信元が、フレームの受信ポートに対応付けてホワイトリスト41に格納されている識別情報のいずれかに一致すると、入力されたフレームを通信調停部22に出力する。換言すると、比較部32は、受信ポートに対応付けてホワイトリスト41に登録されている識別情報が送信元となっている受信フレームを、正常なECU5から送信されたフレームとして扱う。一方、入力されたフレームの送信元が、フレームの受信ポートに対応付けられている識別情報のいずれとも一致しない場合、比較部32は、不正なフレームが入力されたことを変換部31に通知する。なお、比較部32は、不正なフレームの入力の通知と共に、受信フレームのIDのうちで通信調停部22に出力済みのビット列も変換部31に通知する。
変換部31は、比較部32から不正なフレームが入力されたことが通知されると、入力されたフレームの識別情報を、いずれのECU5でも受信されない識別情報に変更する。変換部31は、識別情報を変更したフレームを通信調停部22に出力するための処理を行う。通信調停部22は、入力されたフレームを、全てのポートに向けて出力する。なお、複数のフレームが同時に通信調停部22に入力された場合、通信調停部22は、同時に入力されたフレームのうちの1つを転送対象のフレームとして選択する。通信調停部22は、転送対象として選択したフレームを、全てのポートに出力する。
なお、図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)、CANトランシーバ21(21a〜21c)、ポート(P1〜P3)を備える。選択回路101は、選択回路101に同時に入力されたフレームから、通信制御装置20が送信するフレームを選択することが可能な任意の回路であり、通信調停部22として動作する。各処理回路102は、適宜、メモリ103に格納されている情報を用いて、制御部30として動作する。メモリ103は、記憶部40として動作する。通信制御装置20は、例えば、ジャンクションボックス、ハブ、リピータハブなどとして実現されうる。
図6は、送受信されるフレームのフォーマットの例を示す。図6のF11は、一般仕様のフレームのフォーマット例であり、F12は拡張仕様で使用されるフレームのフォーマット例である。
一般仕様のフレームは、SOF(Start of Frame)、調停(arbitration)フィールド、コントロールフィールド、データフィールド、CRC(Cyclic Redundancy Check)フィールド、ACKフィールド、EOF(End of Frame)を含む。調停フィールドには、IDとRTR(Remote Transmission Request)が含まれる。ここで、IDは、送信元のECU5が使用する識別情報である。コントロールフィールドには、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)を表わす。コントロールフィールドからEOFまでは、拡張仕様のフォーマットでも、一般仕様のフォーマットと同様である。また、各フィールドに含まれる情報要素のビット長は、F12の一番下の行に記載したとおりである。このため、拡張フォーマットでは、送信元の識別情報として、IDベースの11ビットとID拡張の18ビットを合わせた29ビットのビット列が使用される。
以下、図6のF11に示すフォーマットを用いた不正なフレームがECU5aから通信制御装置20に送信される場合を例として、第1の実施形態で行われる処理の例を説明する。なお、通信に使用されるフレームが拡張仕様の場合でも、同様に処理が行われる。
ECU5aが通信制御装置20に送信したフレームは、ポートP1とCANトランシーバ21aを介して、比較部32aに出力される。比較部32aは、入力されたフレームのSOFを通信調停部22に出力する。次に、比較部32aは、フレームのIDを、ホワイトリスト41aを用いて、受信ポートP1に対応付けられた識別情報と比較する。
ここで、制御部30は、通信制御装置20におけるフレームの受信から、受信フレームの転送までの遅延時間を短くするために、受信フレームの通信調停部22への出力と並行して、IDとホワイトリスト41の比較を行うものとする。換言すると、比較部32は、ECU5aから送信されてきたフレーム中のIDの全体を取得する前に、入力されたビットごとに通信調停部22に出力しつつ、不正なフレームであるかの判定を行うことになる。
図7は、比較部32での比較処理の例を説明する図である。図7の例では、ホワイトリスト41a中に10100010110という識別情報が記録されているが、比較部32に入力されたフレームのIDは10110110010であるものとする。なお、図7の例では、分かりやすくするために、ホワイトリスト41aに登録された識別情報が1つの場合を図示しているが、個々のホワイトリスト41に格納される識別情報の数は任意である。また、以下の説明では、説明の便宜上、通信制御装置20がECU5から受信したフレームを「第1のフレーム」と記載することがある。さらに、第1のフレームが不正なフレームであると判定された場合に、IDを置き換えたフレームのことを「第2のフレーム」と記載することがある。
ステップS1は、通信制御装置20が受信したフレーム(第1のフレーム)中のID(第1の識別情報)の1ビット目と、ホワイトリスト41a中の識別情報の1ビット目の比較処理の例である。ステップS1の2つのビット列のうち、下に記載しているビット列は、第1のフレーム中のIDである。なお、図7では、比較処理に使用されているビットの第1の識別情報中での位置を分かりやすくするために、便宜上、第1の識別情報の全体を示している。比較部32aは、第1のフレームのIDのうちの1ビット目を取得すると、比較処理を行う。比較部32aは、第1の識別情報の1ビット目の値が1であり、ホワイトリスト41aに1から始まる識別情報が含まれているので、第1のフレームは不正なフレームではない可能性があると判定する。そこで、比較部32aは、第1の識別情報の1ビット目を通信調停部22に出力する。
ステップS2において、比較部32aは、ホワイトリスト41a中の識別情報のうちで、1ビット目が第1の識別情報と一致した識別情報を特定する。さらに、比較部32aは、特定した識別情報の2ビット目の値を、第1の識別情報の2ビット目の値と比較する。換言すると、比較部32は、第1の識別情報の先頭から2ビット目までのビット列がホワイトリスト41a中の識別情報のいずれかの先頭から2ビット目までと一致するかを判定する。ステップS2に示す例では、ホワイトリスト41a中の10100010110という識別情報が特定されるので、2ビット目の値は0であるのに対し、第1の識別情報の2ビット目も0である。このため、第1の識別情報の1〜2ビット目とホワイトリスト41との比較結果に基づいて、比較部32aは、第1のフレームは不正なフレームではない可能性があると判定する。そこで、比較部32aは、第1の識別情報の2ビット目を通信調停部22に出力する。
その後も、比較部32aは、第1の識別情報の値がホワイトリスト41aに記録されている識別情報と一致しないと判定するまで、ステップS2と同様の処理を繰り返す。図7の例では、比較部32aは、ステップS3において、ステップS2と同様の処理を行う。その結果、第1の識別情報の1〜3ビットはホワイトリスト41a中の識別情報と一致しているので、比較部32aは、第1のフレームは不正なフレームではない可能性があると判定する。また、通信調停部22には、第1の識別情報の3ビット目が出力される。
ステップS4において、比較部32aは、ステップS2、S3と同様の処理により、ホワイトリスト41a中の識別情報の4ビット目と、第1の識別情報の4ビット目の値を比較する。ステップS4では、第1の識別情報の4ビット目が1であるのに対し、ホワイトリスト41a中で比較処理に用いられる識別情報の4ビット目の値は0である。第1の識別情報の先頭から1〜4ビットと一致するビット列を先頭に含む識別情報がホワイトリスト41aに記憶されていないため、比較部32aは、第1のフレームは不正なフレームであると判定する。比較部32aは、不正なフレームを検出したことを変換部31aに通知する。比較部32aは、第1の識別情報の4ビット目の値は、通信調停部22に出力しない。なお、この時点において、通信調停部22には、第1の識別情報の先頭から3ビットまでの値が出力されている。そこで、比較部32aは、第1の識別情報の1〜3ビットまでの値を、変換部31aに通知する。
変換部31aは、いずれのECU5でも受信されない識別情報であり、かつ、すでに通信調停部22に出力されたビット列が先頭に含まれている識別情報を、第2の識別情報として、選択する。このとき、変換部31aは、適宜、未使用IDリスト42aを使用する。さらに、変換部31aは、不正な第1のフレームの送信元を表わす第1の識別情報の代替として、選択した第2の識別情報を通信調停部22に出力するための処理を行う。
図8は、未使用IDリスト42aの例を示す。図7の例では、比較部32aは、第1の識別情報の先頭から3ビットを通信調停部22に出力した後で、入力されたフレームが不正なフレームであることを検出している。このため、通信調停部22には、ビット列101までがIDとして出力されている。そこで、変換部31aは、第1の識別情報の代わりに通信調停部22に出力する第2の識別情報として、先頭から3ビットが101である識別情報を、未使用IDリスト42aに格納されている識別情報から選択する。図8の例では、変換部31aは、未使用IDリスト42aから、10110111001という識別情報を選択したとする。
変換部31aは、第2の識別情報として選択した識別情報の先頭から、すでに通信調停部22に出力済みのビット数を削除して得られるビット列を、IDの続きとして通信調停部22に出力する。図7の例では、不正なフレームの検出の際に、第1の識別情報のうちの先頭から3ビット(101)が通信調停部22に出力されている。このため、変換部31aは、未使用IDリスト42aから選択した第2の識別情報の4ビット目以降(10111001)を通信調停部22に出力する。このため、通信調停部22に入力されるIDは「10110111001」となる。換言すると、変換部31aは、第1のフレームのID(第1の識別情報)の一部を変更して、識別情報を第2の識別情報に設定することにより、不正に送信された第1のフレームを、いずれのECU5でも受信されない第2のフレームに変換しているといえる。
変換部31aでのIDの変更のための処理が終わると、比較部32aは、第1のフレーム中のIDよりも後のビット列を通信調停部22に出力する。従って、通信調停部22には、変更されたIDに続いて、第1のフレーム中のRTR、コントロールフィールド、データフィールド、CRCフィールド、ACKフィールド、EOFが入力される。この処理により、通信調停部22には、IDが第2の識別情報に変換された後の第2のフレームが入力されることになる。
通信調停部22は、入力された第2のフレームを各ポートに出力する。ここで、通信調停部22は、各CANトランシーバ21(21a〜21c)に接続されており(図4)、制御部30を介さずに各CANトランシーバ21に、第2のフレームを出力するものとする。第2のフレームは、CANトランシーバ21a〜21cを介して、通信制御装置20に接続されている全てのECU5に送信される。しかし、第2のフレームのIDは、いずれのECU5での受信対象にもならない値であるので、第2のフレームはいずれのECU5でも受信されず、処理対象とならない。このため、不正なIDを設定したフレームを用いた攻撃から、システムが防御される。
図9は、制御部30で行われる処理の例を説明するフローチャートである。なお、図9の例では、定数Xと変数xが使用される。変数xは、入力されたフレームのIDのうちで未使用IDリスト42中の識別情報と比較されたビット数の計数に使用される。定数Xは、通信に使用されているフレーム中で、IDの記述に使用されているビットの総数である。また、図9は一例であり、例えば、ステップS13が最初に行われるように変更されるなど、実装に応じて処理が変更され得る。
比較部32は、フレームの入力側となるCANトランシーバ21との間の結線からのデータ入力を監視し、フレームの通過が開始したかを判定する(ステップS11、S12)。ここで、比較部32は、受信フレームのSOFを用いて、フレームの通過が開始したかを判定する。例えば、比較部32は、フレームのSOFが入力されるとフレームの通過が開始したと判定しても良く、また、比較部32がSOFを通信調停部22に出力するとフレームの通過が開始したと判定しても良い。比較部32は、フレームの通過が開始すると、変数xを1に設定する(ステップS12でYes、ステップS13)。比較部32は、IDの先頭からxビット目までのビット列が、ホワイトリスト41中に含まれているいずれかの識別情報と一致するかを判定する(ステップS14)。比較部32で行われる判定方法は、図7を参照しながら説明したとおりである。IDの先頭からxビット目までのビット列が、ホワイトリスト41中に含まれているいずれかの識別情報と一致する場合、比較部32は、IDのxビット目を通信調停部22に出力する(ステップS14でYes、ステップS15)。比較部32は、変数xの値が定数X以上であるかを判定する(ステップS16)。変数xの値が定数X未満である場合、比較部32は、変数xを1つインクリメントして、ステップS14に戻る(ステップS16でNo、ステップS17)。
一方、IDの先頭からxビット目までのビット列が、ホワイトリスト41中に含まれているいずれの識別情報とも一致しない場合、比較部32は、入力されたフレームが不正なフレームであることを変換部31に通知する(ステップS14でNo)。また、比較部32は、不正なフレームのID(第1の識別情報)のうち、通信調停部22に出力済みの(x−1)ビットのビット列を変換部31に通知する。変換部31は、未使用IDリスト42から、IDの先頭の(x―1)ビット分が第1の識別情報の先頭から(x−1)ビットと同じID(第2の識別情報)を取得する(ステップS18)。ステップS18で行われる処理の例は、図8を参照しながら説明したとおりである。さらに、変換部31は、取得したIDのうちのxビット目以降を通信調停部22に出力する(ステップS19)。このため、通信調停部22には、IDとして、変換部31が選択したIDが入力される。変換部31から通信調停部22への入力処理が終わると、比較部32は、入力されたフレームのうちでIDより後のビット列を通信調停部22に出力する(ステップS20)。従って、通信調停部22には、ステップS19とS20の処理により、不正な第1のフレーム中の第1の識別情報をいずれのECU5でも受信されない第2の識別情報に置き換えた第2のフレームが入力されることになる。また、制御部30は、これらの処理により、第1のフレームから第2のフレームを生成しているといえる。
一方、ステップS16において、変数xの値が定数X以上である場合、入力されたフレームのIDはホワイトリスト41中の識別情報と一致するので、比較部32は、入力されたフレームは不正フレームではないと判定する(ステップS16でYes)。比較部32は、さらに、入力されたフレームを末尾まで通信調停部22に出力する(ステップS21)。この場合は、通信調停部22には受信フレームが出力されるため、通信調停部22は、受信フレームを各ポートに出力する。
以上説明したように、第1の実施形態を用いると、不正なフレームがECU5で受信されることを防ぐことができる。さらに、通信調停部22からは、第1の識別情報の代わりに第2の識別情報を含むフレームが送信されるため、フレームの断片がECU5に送信されたことによるエラーメッセージの輻輳も防止することができる。
このような処理は、通信制御装置20が各ポートから入力されたフレームをリアルタイムに処理するシステムにおいて、不正なIDを用いた攻撃を防御する場合に特に効果的である。すなわち、フレームをリアルタイムに処理するシステムでは、遅延をなるべく小さくするために、通信制御装置20は、ECU5から受信したフレームをバッファリングしない。従って、比較部32は、IDの全体を取得する前に、判定処理を行い、受信フレームが不正なフレームではない可能性がある場合は、入力されたビットの値を、通信調停部22を介して、各ポートに送信する。このため、IDの値がホワイトリスト41に無く、入力されたフレームが不正なフレームであることが特定された段階では、既に、フレームのIDの一部が通信調停部22を介して各ポートに出力されている。このため、変換部31は、いずれのECU5でも受信されない識別情報のうち、通信調停部22に出力済みのビット列を先頭に含むIDを選択する。また、変換部31は、選択した識別情報のうちで、通信調停部22に出力済みのビット列の続きの部分を通信調停部22に出力することにより、不正なフレームを、いずれのECU5でも受信されないフレームに変換している。従って、第1の実施形態により、システムでのフレームのリアルタイム性を重視した処理を妨げずに、不正なフレームによる攻撃からシステムを守ることができる。
<第2の実施形態>
第2の実施形態では、IDの変更に伴って、通信調停部22に出力するCRCシーケンスの値を毎回計算する場合の例を説明する。第2の実施形態を用いると、ECU5が受信対象として処理しないフレームについてもCRCを用いたチェックを行う場合でも、不正なフレームの代わりに送信したフレームに起因したCRCエラーがECU5で検出されることを防止できる。
図10は、第2の実施形態にかかる通信制御装置60の構成の例を示す。通信制御装置60は、ポートP1〜P3、CANトランシーバ21(21a〜21c)、通信調停部22、制御部50(50a〜50c)、記憶部40(40a〜40c)を備える。制御部50は、変換部31、比較部32、および、CRC計算部51を有する。CANトランシーバ21、通信調停部22、変換部31の動作は、第1の実施形態と同様である。また、記憶部40に記憶されている情報も第1の実施形態と同様である。なお、制御部50は処理回路102(図5)によって実現されるものとする。
第2の実施形態では、比較部32は、フレームが入力されると、CRC計算部51にCRCを計算するための処理の開始を要求すると共に、通信調停部22に出力する情報を、CRC計算部51にも出力する。CRC計算部51は、比較部32から入力された各ビットの値を記憶する。
第1のフレームが不正なフレームである場合、入力された第1のフレームが不正なフレームであることを検出した比較部32は、第1の実施形態と同様に、不正なフレームの検出を変換部31に通知する。第2の実施形態では、変換部31も、通信調停部22に出力する情報をCRC計算部51にも出力する。CRC計算部51は、比較部32から入力された情報と変換部31から入力された情報を用いて、不正な第1のフレームに設定されている第1の識別情報の代わりに出力される第2の識別情報を取得する。
比較部32は、変換部31による第2の識別情報の入力が終わると、第1のフレーム中のデータフィールドの情報を、通信調停部22とCRC計算部51に出力する。CRC計算部51は、第2の識別情報と、第1のフレームに含まれているデータフィールドの値などを用いて、CRCシーケンスの値を計算する。
比較部32は、データフィールドの入力が終わると、CRC計算部51にCRCシーケンスの計算結果の出力を要求する。CRC計算部51は、計算した値をCRCシーケンスとして通信調停部22に出力する。CRCシーケンスの出力が終わると、比較部32は、第1のフレーム中のCRCデリミタ以降の値を通信調停部22に出力する。
これらの処理により、通信調停部22には、ECU5から送信されてきた不正な第1のフレームの代わりに、第1のフレーム中のIDとCRCが変更された第2のフレームが入力される。通信調停部22が第2のフレームを各ポートから出力する処理は、第1の実施形態と同様である。
ここで、第2のフレームのIDは、第1の実施形態と同様に、いずれのECU5でも受信されない値に設定されている。さらに、通信調停部22に入力されるCRCシーケンスの値は、CRC計算部51によって、第2のフレームのIDとデータフィールドの値を用いて計算された値になっている。このため、第2のフレームについてのCRCチェックが行われたとしても、CRCエラーは発生しない。
図11は、制御部50で行われる処理の例を説明するフローチャートである。なお、図11は一例であり、例えば、ステップS33とS34の処理の順序を互いに変更するなどの変更が実装に応じて行われ得る。
比較部32は、フレームの入力側となるCANトランシーバ21との間の結線からのデータ入力を監視し、フレームの通過が開始したかを判定する(ステップS31、S32)。フレームの通過が開始したかの判定は図9を参照しながら説明した処理と同様である。比較部32は、フレームの通過が開始すると、CRC算出のための処理を開始するために、通信調停部22に出力されるデータがCRC計算部51にも出力されるように設定する(ステップS32でYes、ステップS33)。ステップS33での設定は、例えば、通信調停部22、CRC計算部51、比較部32、変換部31の結線に備えられたセレクタ(図示せず)を設定することにより行われうる。例えば、比較部32や変換部31が通信調停部22に出力する各ビットの値が、CRC計算部51にも出力されるように、セレクタが設定される。ステップS34〜S40、S45の処理は、図9を参照しながら説明したステップS13〜S19、S21と同様である。なお、図11で使用されている定数Xと変数xも、図9で使用されているものと同様である。
変換部31から通信調停部22へのIDの出力が終わると、比較部32は、入力されたフレーム中のRTRからデータフィールドまでを通信調停部22に出力する(ステップS41)。CRC計算部51は、通信調停部22に出力されているIDの値と、データフィールドの値を用いて、CRCシーケンスの値を計算する(ステップS42)。さらに、CRC計算部51は、CRCシーケンスの値として、得られた結果を、通信調停部22に出力する(ステップS43)。その後、比較部32は、入力されたフレームのCRCシーケンスより後の値を、通信調停部22に出力する(ステップS44)。
このように、通信調停部22に入力されるフレームでは、ステップS39、S40の処理によりID(第1の識別情報)がいずれのECU5でも受信されないID(第2の識別情報)に変更されている。さらに、ステップS42、S43の処理により、IDの変更に応じてCRCシーケンスの値も変更されている。従って、第2の実施形態を用いると、第1の実施形態と同様に不正なフレームによる攻撃からシステムを防御できる上、ECU5においてCRCを用いたチェックが行われてもエラーを発生させずにすむ。
<第3の実施形態>
図12は、第3の実施形態にかかる通信制御装置70の構成の例を示す図である。通信制御装置70は、ポートP1〜P3、CANトランシーバ21(21a〜21c)、通信調停部22、制御部50(50a〜50c)、記憶部40(40a〜40c)を備える。CANトランシーバ21、通信調停部22、制御部50の動作は、第2の実施形態と同様である。第3の実施形態では、記憶部40は、ホワイトリスト41と使用IDリスト43を格納する。このため、変換部31は、使用IDリスト43を用いて、いずれのECU5でも受信されない識別情報を特定する。
図13は、使用IDリスト43の例を示す図である。使用IDリスト43は、通信制御装置70に接続されているいずれかのECU5で受信対象とされている識別情報を含む。なお、使用IDリスト43は、図13に示すように、受信対象とされている識別情報だけを記憶しても良く、また、識別情報とその識別情報のフレームを受信するECU5の識別情報を対応付けた情報であっても良い。
図14は、制御部50で行われる処理の例を説明するフローチャートである。ステップS51において、比較部32は、入力されたフレームのIDのxビット目に対する処理により、IDがホワイトリスト41中の識別情報のいずれとも一致しないことを検出したとする。比較部32は、不正なフレームの受信を変換部31に通知する。なお、第1の識別情報のうち、不正なフレームであることが検出される前に処理された(x−1)ビットについては、第1および第2の実施形態で述べたように、通信調停部22に出力されている。
ステップS52において、変換部31は、先頭の(x−1)ビットが入力されたフレームのIDと同じで、xビット目以降のビットを全て0に設定したIDを生成する。さらに、変換部31は、生成したIDが使用IDリスト43に含まれているかを判定する(ステップS53)。生成したIDが使用IDリスト43に含まれている場合、変換部31は、生成したIDの値を1つインクリメントして、ステップS53に戻る(ステップS53でYes、ステップS54)。変換部31は、使用IDリスト43に含まれていないIDを検出するまで、ステップS53とS54の処理を繰り返す。
変換部31は、生成したIDが使用IDリスト43に含まれていない場合、入力された送信元の情報を、得られたIDに置き換える(ステップS53でNo、ステップS55)。なお、ステップS55において、変換部31は、使用IDリスト43に含まれていないと判定したIDのxビット目以降を通信調停部22に出力することにより、IDを置き換える。その後、制御部50は、送信元の情報を置き換えた第2のフレームを通信調停部22に出力するための処理を行う(ステップS56)。なお、ステップS56で行われる処理の詳細は、図11を参照しながら説明したステップS41〜S43と同様である。
第3の実施形態によると、通信制御装置70に接続されているECU5のいずれかで使用されているIDを使用IDリスト43として記憶することにより、第1および第2の実施形態と同様に、不正フレームの転送を防止できる。ここで、通信制御装置70に接続されているECU5の数が少ない場合や、通信制御装置70に接続されているECU5で受信されるIDの種類が少ない場合、使用IDリスト43のデータ量は未使用IDリスト42のデータ量よりも小さくなる。このため、変換部31が使用IDリスト43を用いて、転送処理に使用するIDを決定することにより、未使用IDリスト42を用いて処理を行う場合よりも、記憶する情報量を削減することができる。従って、通信制御装置70のように使用IDリスト43を用いることにより、第3の実施形態では、第1および第2の実施形態に比べて、通信制御装置70の処理に使用できるメモリの容量を増やすことができる。
<第4の実施形態>
第4の実施形態では、制御部50を備えていない通信制御装置20(図4)を用いても、不正な第1のフレームの代替として出力されるフレーム中のCRCを正しい値とするために、予め、未使用のIDに対応付けてCRCを求める場合について説明する。
例えば、不正な第1のフレームの代替として通信調停部22に入力される第2のフレームでは、データフィールド中のビットを予め決められた値に設定する場合、第2のフレームに使用するIDに応じて一意にCRCを決定することができる。そこで、未使用IDリスト42に、予め決められたデータを用いて計算したCRCの計算値を対応付けて記憶することもできる。また、第2のフレーム中ではデータフィールドが無くても良い。例えば、データフィールドが無い場合のCRCの計算値を対応付けて記憶した未使用IDリスト42では、未使用ID、データ内容、CRCの対応付けが以下のように行われていてもよい。
(未使用ID ,データ,CRC)
(00010001010,なし,CRC1)
(10101101101,なし,CRC2)
(11010010010,なし,CRC3)
第4の実施形態においても、不正なフレームの検出方法は、第1の実施方法と同様である。第1のフレームが不正なフレームであることを検出すると、変換部31は、いずれのECU5でも受信されない識別情報であり、すでに通信調停部22に出力されたビット列が先頭に含まれている未使用IDを未使用IDリスト42から選択する。変換部31は、選択した未使用IDのうちで、通信調停部22に出力されていないビットに続けて、選択した未使用IDに対応付けられているデータとCRCの値を、通信調停部22に出力する。変換部31での処理が終わると、比較部32は、CRC以降の値を、通信調停部22に出力する。ここで、CRC以降のフレームの値は、いずれのフレームであっても共通であり、予め、記憶部40に記憶されているものとする。
この様な処理を行うと、通信制御装置20が用いられるシステムであっても、第2のフレーム中のCRCをIDに合わせて変更できるので、ECU5においてCRCが計算される場合であっても、エラーが発生しない。さらに、変換部31や比較部32は、不正な第1のフレームは、不正なフレームであると判定されたビット以降は使用しないので、不正な第1のフレームを破棄することができ、変換部31や比較部32の処理負担も小さい。
<その他>
以上の説明では、CANの一般仕様のフレームが送受信される場合を例として説明したが、CANの拡張仕様のフレームやCAN FD(CAN with Flexible Data-Rate)で使用されるフレームが送受信される場合にも、上述の各実施形態を適用できる。
選択回路101および処理回路102として、プロセッサが通信制御装置20、60、70に搭載されても良い。この場合、プロセッサは、メモリ103に格納されたプログラムを読み込んで、通信調停部22や制御部30または制御部50を実現する。
以上の説明に使用したリストやフレームのフォーマットは一例であり、実装に応じて、リストやフレームに含められる情報要素は変更され得る。
以上の説明では、不正なフレームを検出すると、比較部32が、不正なフレームのIDのうちで通信調停部22に出力済みのビット列を変換部31に通知する場合を例として説明したが、変換部31がビット列を取得する方法は実装に応じて変更されうる。例えば、変換部31は比較部32が通信調停部22に出力するビットの値をモニタし、SOF以降に比較部32から通信調停部22に出力されたビット列を取得しても良い。また、比較部32は、通信調停部22と変換部31とに、ID中のビット列を出力しても良い。変換部31が比較部32から出力されるビットをモニタする場合、変換部31は、SOFを検出するたびに、IDの値をリセットするものとする。
さらに、実装によっては、比較部32は、比較処理と並行して比較対象のビットの値を通信調停部22に出力しても良い。この場合、IDの先頭からxビット目の比較で不正フレームが検出されると、IDの先頭からxビットのビット列が通信調停部22に出力されている。このため、変換部31は、先頭からxビットが不正フレームのIDと同じIDであり、かつ、いずれのECU5でも受信されない識別情報を、第2のフレームのIDに設定する。
第3の実施形態では、通信制御装置70が制御部50を備えている場合を例として説明したが、通信制御装置70は、制御部50の代わりに制御部30を備えていても良い。
上述の第1〜第3の実施形態を含む各実施形態に関し、さらに以下の付記を開示する。
(付記1)
フレームの識別情報を用いて前記フレームを受信するかを判定する複数の通信装置の間の通信を制御する通信制御装置であって、
前記複数の通信装置のうちの少なくとも1つに接続された複数のポートと、
前記複数のポートの各々について、当該ポートに接続された通信装置が送信処理に使用する識別情報を当該ポートに対応付けて記憶する記憶部と、
前記ポートで受信された受信フレームの第1の識別情報が、当該ポートに対応付けられていない場合、前記複数の通信装置のいずれでも受信されない第2の識別情報を前記第1の識別情報の代わりに設定したフレームを、前記複数のポートに向けて出力する制御部
を備えることを特徴とする通信制御装置。
(付記2)
前記制御部は、
前記第1の識別情報の先頭ビットから、前記受信フレームを受信した受信ポートに対応付けられた識別情報と比較し、
前記先頭ビットから比較対象のビットまでが前記受信ポートに対応付けられた識別情報のいずれかの一部と一致する場合、前記第1の識別情報中の比較対象のビットを前記複数のポートに向けて出力し、
前記先頭ビットから比較対象のビットまでが前記受信ポートに対応付けられた識別情報のいずれにも一致しないことを特定すると、前記第1の識別情報のうちの出力済みのビット列を含み、かつ、前記複数の通信装置のいずれでも受信されない識別情報を前記第2の識別情報に決定する、
ことを特徴とする付記1に記載の通信制御装置。
(付記3)
前記制御部は、前記受信フレーム中のエラーチェックに使用される情報を、前記受信フレーム中のデータと前記第2の識別情報を含むフレームについてのエラーチェックに用いられる値に変更する
ことを特徴とする付記2に記載の通信制御装置。
(付記4)
前記記憶部は、前記複数の通信装置のいずれでも受信されない識別情報のリストを記憶しており、
前記制御部は、前記リスト中の識別情報から、前記第2の識別情報を選択する
ことを特徴とする付記1〜3のいずれか1項に記載の通信制御装置。
(付記5)
前記記憶部は、前記複数の通信装置のいずれかで受信される識別情報のリストを記憶しており、
前記制御部は、
前記第2の識別情報の候補とする第1の候補を決定し、
前記第1の候補が前記リストに含まれていない場合、前記第1の候補を前記第2の識別情報に決定し、
前記第1の候補が前記リストに含まれていると、前記第2の識別情報の第2の候補を生成するとともに、前記第2の候補が前記リストに含まれているかを判定する
ことを特徴とする付記1〜3のいずれか1項に記載の通信制御装置。
(付記6)
フレームの識別情報を用いて前記フレームを受信するかを判定する複数の通信装置の間の通信を制御する通信制御装置が、
受信フレーム中の第1の識別情報は、前記受信フレームの受信ポートに接続された通信装置が送信処理に使用する識別情報として、前記受信ポートに対応付けられているかを判定し、
前記第1の識別情報が前記受信ポートに対応付けられていない場合、前記複数の通信装置のいずれでも受信されない第2の識別情報を前記第1の識別情報の代わりに設定したフレームを、前記複数の通信装置に送信する
ことを特徴とする通信制御方法。
(付記7)
前記通信制御装置は、
前記第1の識別情報の先頭ビットから、前記受信ポートに対応付けられた識別情報と前記第1の識別情報を比較し、
前記先頭ビットから比較対象のビットまでが前記受信ポートに対応付けられた識別情報のいずれかの一部と一致する場合、前記第1の識別情報中の比較対象のビットを前記複数の通信装置に向けて出力し、
前記先頭ビットから比較対象のビットまでが前記受信ポートに対応付けられた識別情報のいずれにも一致しないことを特定すると、前記第1の識別情報のうちの出力済みのビット列を含み、かつ、前記複数の通信装置のいずれでも受信されない識別情報を第2の識別情報に決定する、
ことを特徴とする付記6に記載の通信制御方法。
(付記8)
前記通信制御装置は、前記受信フレーム中のエラーチェックに使用される情報を、前記受信フレーム中のデータと前記第2の識別情報を含むフレームについてのエラーチェックに用いられる値に変更する
ことを特徴とする付記7に記載の通信制御方法。
(付記9)
前記通信制御装置は、前記複数の通信装置のいずれでも受信されない識別情報のリスト中の識別情報から、前記第2の識別情報を選択する
ことを特徴とする付記6〜8のいずれか1項に記載の通信制御方法。
(付記10)
前記通信制御装置は、
前記第2の識別情報の候補とする第1の候補を決定し、
前記複数の通信装置のいずれかで受信される識別情報のリストに、前記第1の候補が含まれていない場合、前記第1の候補を前記第2の識別情報に決定し、
前記第1の候補が前記リストに含まれていると、前記第2の識別情報の第2の候補を生成するとともに、前記第2の候補が前記リストに含まれているかを判定する
ことを特徴とする付記6〜8のいずれか1項に記載の通信制御方法。
(付記11)
フレームの識別情報を用いて前記フレームを受信するかを判定する複数の通信装置の間の通信を制御する通信制御装置に、
受信フレーム中の第1の識別情報は、前記受信フレームの受信ポートに接続された通信装置が送信処理に使用する識別情報として前記受信ポートに対応付けられているかを判定し、
前記第1の識別情報が前記受信ポートに対応付けられていない場合、前記複数の通信装置のいずれでも受信されない第2の識別情報を前記第1の識別情報の代わりに設定したフレームを、前記複数の通信装置に送信する
処理を行わせることを特徴とする通信制御プログラム。
5 ECU
10 CANハブ
11、21 CANトランシーバ
12、22 通信調停部
20、60、70 通信制御装置
30、50 制御部
31 変換部
32 比較部
40 記憶部
41 ホワイトリスト
42 未使用IDリスト
43 使用IDリスト
51 CRC計算部
101 選択回路
102 処理回路
103 メモリ

Claims (6)

  1. フレームの識別情報を用いて前記フレームを受信するかを判定する複数の通信装置の間の通信を制御する通信制御装置であって、
    前記複数の通信装置のうちの少なくとも1つに接続された複数のポートと、
    前記複数のポートの各々について、当該ポートに接続された通信装置が送信処理に使用する識別情報を当該ポートに対応付けて記憶する記憶部と、
    前記ポートで受信された受信フレームの第1の識別情報が、当該ポートに対応付けられていない場合、前記複数の通信装置のいずれでも受信されない第2の識別情報を前記第1の識別情報の代わりに設定したフレームを、前記複数のポートに向けて出力する制御部
    を備えることを特徴とする通信制御装置。
  2. 前記制御部は、
    前記第1の識別情報の先頭ビットから、前記受信フレームを受信した受信ポートに対応付けられた識別情報と比較し、
    前記先頭ビットから比較対象のビットまでが前記受信ポートに対応付けられた識別情報のいずれかの一部と一致する場合、前記第1の識別情報中の比較対象のビットを前記複数のポートに向けて出力し、
    前記先頭ビットから比較対象のビットまでが前記受信ポートに対応付けられた識別情報のいずれにも一致しないことを特定すると、前記第1の識別情報のうちの出力済みのビット列を含み、かつ、前記複数の通信装置のいずれでも受信されない識別情報を第2の識別情報に決定する
    ことを特徴とする請求項1に記載の通信制御装置。
  3. 前記制御部は、前記受信フレーム中のエラーチェックに使用される情報を、前記受信フレーム中のデータと前記第2の識別情報を含むフレームについてのエラーチェックに用いられる値に変更する
    ことを特徴とする請求項2に記載の通信制御装置。
  4. フレームの識別情報を用いて前記フレームを受信するかを判定する複数の通信装置の間の通信を制御する通信制御装置が、
    受信フレーム中の第1の識別情報は、前記受信フレームの受信ポートに接続された通信装置が送信処理に使用する識別情報として、前記受信ポートに対応付けられているかを判定し、
    前記第1の識別情報が前記受信ポートに対応付けられていない場合、前記複数の通信装置のいずれでも受信されない第2の識別情報を前記第1の識別情報の代わりに設定したフレームを、前記複数の通信装置に送信する
    ことを特徴とする通信制御方法。
  5. 前記通信制御装置は、
    前記第1の識別情報の先頭ビットから、前記受信ポートに対応付けられた識別情報と前記第1の識別情報を比較し、
    前記先頭ビットから比較対象のビットまでが前記受信ポートに対応付けられた識別情報のいずれかの一部と一致する場合、前記第1の識別情報中の比較対象のビットを前記複数の通信装置に向けて出力し、
    前記先頭ビットから比較対象のビットまでが前記受信ポートに対応付けられた識別情報のいずれにも一致しないことを特定すると、前記第1の識別情報のうちの出力済みのビット列を含み、かつ、前記複数の通信装置のいずれでも受信されない識別情報を第2の送信元情報に決定する、
    ことを特徴とする請求項4に記載の通信制御方法。
  6. フレームの識別情報を用いて前記フレームを受信するかを判定する複数の通信装置の間の通信を制御する通信制御装置に、
    受信フレーム中の第1の識別情報は、前記受信フレームの受信ポートに接続された通信装置が送信処理に使用する識別情報として前記受信ポートに対応付けられているかを判定し、
    前記第1の識別情報が前記受信ポートに対応付けられていない場合、前記複数の通信装置のいずれでも受信されない第2の識別情報を前記第1の識別情報の代わりに設定したフレームを、前記複数の通信装置に送信する
    処理を行わせることを特徴とする通信制御プログラム。
JP2014238172A 2014-11-25 2014-11-25 通信制御装置、通信制御方法、および、通信制御プログラム Withdrawn JP2016100842A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2014238172A JP2016100842A (ja) 2014-11-25 2014-11-25 通信制御装置、通信制御方法、および、通信制御プログラム
US14/944,589 US20160147702A1 (en) 2014-11-25 2015-11-18 Communication control device, method of communicating a frame, and storage medium

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2014238172A JP2016100842A (ja) 2014-11-25 2014-11-25 通信制御装置、通信制御方法、および、通信制御プログラム

Publications (1)

Publication Number Publication Date
JP2016100842A true JP2016100842A (ja) 2016-05-30

Family

ID=56010366

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014238172A Withdrawn JP2016100842A (ja) 2014-11-25 2014-11-25 通信制御装置、通信制御方法、および、通信制御プログラム

Country Status (2)

Country Link
US (1) US20160147702A1 (ja)
JP (1) JP2016100842A (ja)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6956624B2 (ja) * 2017-03-13 2021-11-02 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカPanasonic Intellectual Property Corporation of America 情報処理方法、情報処理システム、及びプログラム
FR3089729B1 (fr) * 2018-12-05 2021-08-06 Renault Sas Système de sélection de trames, nœud de communication et procédé de mise en oeuvre associés
WO2021002010A1 (ja) * 2019-07-04 2021-01-07 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ 不正フレーム検知装置および不正フレーム検知方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040203589A1 (en) * 2002-07-11 2004-10-14 Wang Jiwei R. Method and system for controlling messages in a communication network

Also Published As

Publication number Publication date
US20160147702A1 (en) 2016-05-26

Similar Documents

Publication Publication Date Title
JP6488702B2 (ja) 通信制御装置、通信制御方法、および、通信制御プログラム
US10432421B2 (en) Communication control device and communication system
JP6566400B2 (ja) 電子制御装置、ゲートウェイ装置、及び検知プログラム
JP6798280B2 (ja) 攻撃検知装置、攻撃検知方法、および、攻撃検知プログラム
JP2016116132A (ja) 通信制御装置、通信制御方法、および、通信制御プログラム
WO2017026359A1 (ja) 通信装置
US10270768B2 (en) Communication system, communication method, and communication device
US10355971B2 (en) System and method for data path validation and verification
US10567400B2 (en) Attack detection device, attack detection method, and non-transitory computer-readable recording medium
US11218501B2 (en) Detector, detection method, and detection program
US10050983B2 (en) Communication system, receiving apparatus, receiving method, and computer program product
JP2017091280A (ja) 監視方法および監視システム
JP4861293B2 (ja) 通信装置、通信方法および通信プログラム
WO2018131334A1 (ja) 不正検知電子制御ユニット、電子制御ユニット、車載ネットワークシステム、不正検知方法およびコンピュータプログラム
JP2012257122A (ja) 車両制御装置、車両制御システム
JP6200734B2 (ja) 通信制御装置
CN117979283A (zh) 一种基于无线连接的数据传输方法及系统
US20160147702A1 (en) Communication control device, method of communicating a frame, and storage medium
JP7110950B2 (ja) ネットワークシステム
WO2019119269A1 (zh) 一种网络故障探测方法及控制中心设备
JP2010193217A (ja) 中継装置および中継装置の中継方法
JP2019029921A (ja) 送信装置、受信装置、及び通信方法
CN110347632B (zh) 一种通信方法和装置
KR101642440B1 (ko) 링 네트워크의 선로 장애 복구 방법
JP2018056980A (ja) 攻撃検知装置、攻撃検知方法、および、攻撃検知プログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20170804

A761 Written withdrawal of application

Free format text: JAPANESE INTERMEDIATE CODE: A761

Effective date: 20171225