(57)【要約】【課題】通信フレームの中継による遅延を抑えると共に、不正な通信フレームを中継する場合、中継先にその通信フレームを排除させる。【解決手段】通信中継装置は、第一通信装置により送信される通信フレーム内の複数の要素を順に受信し、通信フレームの受信タイミングを検出する受信部と、受信タイミングに基づいて、通信フレームの特徴を示す特徴値を決定し、特徴値が条件を満たすか否かを判定する判定部と、受信される複数の要素を順に伝達し、特徴値が条件を満たさないと判定された場合、伝達される複数の要素の一部を変更する変更部と、伝達される複数の要素を順に第二通信装置へ送信する送信部と、を備える。【選択図】図２
2015119386.tif 000002
【特許請求の範囲】
【請求項１】
第一通信装置により送信される通信フレーム内の複数の要素を順に受信し、前記通信フレームの受信タイミングを検出する受信部と、
前記受信タイミングに基づいて、前記通信フレームの特徴を示す特徴値を決定し、前記特徴値が条件を満たすか否かを判定する判定部と、
前記受信される複数の要素を順に伝達し、前記特徴値が前記条件を満たさないと判定された場合、前記伝達される複数の要素の一部を変更する変更部と、
前記伝達される複数の要素を順に第二通信装置へ送信する送信部と、
を備える通信中継装置。
【請求項２】
前記変更部は、前記特徴値が前記条件を満たさないと判定された場合、前記伝達される複数の要素のうち、前記通信フレームのフォーマット内の第一領域に対応する要素を変更する、
請求項１に記載の通信中継装置。
【請求項３】
前記受信される複数の要素を順に所定時間だけ遅延させて出力するバッファを更に備え、
前記変更部は、前記出力される複数の要素を順に伝達し、前記特徴値が前記条件を満たさないと判定された場合、前記出力される複数の要素のうち前記第一領域に対応する要素を変更する、
請求項２に記載の通信中継装置。
【請求項４】
前記バッファは、シフトレジスタである、
請求項３に記載の通信中継装置。
【請求項５】
前記判定部は、前記シフトレジスタに保持されているビット列の特定部分を特徴値として決定する、
請求項４に記載の通信中継装置。
【請求項６】
外部からの入力に基づいて、前記特徴値を決定するルールと前記条件とを記憶する記憶部を更に備え、
前記判定部は、前記受信タイミングおよび前記ルールに基づいて特徴値を決定する、
請求項５に記載の通信中継装置。
【請求項７】
前記ルールは、前記フォーマット内の第二領域を示し、
前記判定部は、前記受信タイミングに基づいて、前記受信される複数の要素のうち前記第二領域に対応する要素を前記特徴値として決定する、
請求項６に記載の通信中継装置。
【請求項８】
前記フォーマットにおいて、前記第一領域は前記第二領域より後である、
請求項７に記載の通信中継装置。
【請求項９】
前記第一領域に対応する要素は、誤り検査符号である、
請求項８に記載の通信中継装置。
【請求項１０】
前記記憶部は、複数のルールと、前記複数のルールにそれぞれ対応する複数の条件とを記憶し、
前記判定部は、前記複数のルールに基づいて複数の特徴値をそれぞれ決定し、前記複数の特徴値が対応する条件をそれぞれ満たすか否かを判定し、
前記変更部は、前記複数の特徴値の何れかが対応する条件を満たさないと判定された場合、前記伝達される複数の要素のうち前記第一領域に対応する要素を変更する、
請求項９に記載の通信中継装置。
【請求項１１】
前記判定部は、連続して受信された二つの通信フレームからそれぞれ検出された二つの受信タイミングの時間差を特徴値として算出し、
前記条件は、前記特徴値が所定の範囲内である、
請求項３に記載の通信中継装置。
【請求項１２】
前記第二通信装置により送信される第二通信フレーム内の複数の第二要素を順に受信し、前記第二通信フレームの受信タイミングを検出する第二受信部と、
前記第二通信フレームの受信タイミングに基づいて、前記第二通信フレームの特徴を示す第二特徴値を決定し、前記第二特徴値が第二条件を満たすか否かを判定する第二判定部と、
前記受信される複数の第二要素を順に伝達し、前記第二特徴値が前記第二条件を満たさないと判定された場合、前記伝達される複数の第二要素の一部を変更する第二変更部と、
前記伝達される複数の第二要素を順に第一通信装置へ送信する第二送信部と、
を更に備える、
請求項１に記載の通信中継装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、通信中継装置に関する。
【背景技術】
【０００２】
プラント等の設備を制御する制御システムにおいて安全かつ安定な動作を維持する必要がある。一方、制御装置に対し、その動作を阻害したり演算能力を浪費させたりする意図で、制御システムネットワークを介して不正な内容、順序、あるいは量のデータが送られる場合がある。
【０００３】
不正な通信パケットを遮断する能力を具備したファイアウォールやＩｎｔｒｕｓｉｏｎ  Ｐｒｏｔｅｃｔｉｏｎ  Ｓｙｓｔｅｍ（ＩＰＳ）等の通信中継装置を介して防御対象の装置を制御システムネットワークに接続する手法が知られている。特許文献１には、送信装置が送信する複数のパケットを受信し、格納し、複数のパケットから組立てたデータから抽出したデータ情報に基づいて、複数のパケットを受信装置に対して送信するかどうかを判断する中継装置が記載されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００６−１４８５０５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
リアルタイム制御を行う制御システムの制御システムネットワークは、制御対象設備から取得した状態値や、制御対象設備へ出力する指令値、制御装置同士が協調して動作するために共有される状態値などのデータを扱う。制御対象設備を適切に制御するためには、制御システムネットワーク上の通信は可能な限り低遅延であることが求められる。
【０００６】
特許文献１には、通信データのパケットを中継装置内に格納することが開示されている。この場合、パケットの中継時にメモリ等への書き込みと読み出しという少なくとも２回のメモリ操作が必要であり、中継による遅延を増大させる要因となる。メモリ素子やバスの高速化により遅延を短縮できる可能性はあるが、中継装置の大型化や消費電力の増加を招く。このような高速化は、多くの制御対象設備において制御装置の設置場所が限られていることや、制御装置の信頼性確保のために発熱量が管理されている点を考慮すると、好ましくない。
【課題を解決するための手段】
【０００７】
上記課題を解決するために、本発明の一態様である通信中継装置は、第一通信装置により送信される通信フレーム内の複数の要素を順に受信し、通信フレームの受信タイミングを検出する受信部と、受信タイミングに基づいて、通信フレームの特徴を示す特徴値を決定し、特徴値が条件を満たすか否かを判定する判定部と、受信される複数の要素を順に伝達し、特徴値が条件を満たさないと判定された場合、伝達される複数の要素の一部を変更する変更部と、伝達される複数の要素を順に第二通信装置へ送信する送信部と、を備える。
【発明の効果】
【０００８】
本発明の一態様によれば、通信フレームの中継による遅延を抑えると共に、不正な通信フレームを中継する場合、中継先に通信フレームを排除させることができる。
【図面の簡単な説明】
【０００９】
【図１】本発明の実施例１の制御システムの構成を示す。
【図２】実施例１の通信中継装置の構成を示す。
【図３】通信フレームのフォーマットを示す。
【図４】データ抽出バッファの構成を示す。
【図５】ルール判定部の構成を示す。
【図６】特徴値抽出ルール定義部および通過条件定義部の構成を示す。
【図７】中継有効判定部の構成を示す。
【図８】置換バッファの構成を示す。
【図９】置換バッファの動作を示すタイムチャートである。
【図１０】通信中継装置から第二通信装置への送信動作を模式的に示す。
【図１１】実施例１の変形例の通信中継装置の構成を示す。
【図１２】実施例２の通信中継装置の構成を示す。
【図１３】実施例２の変形例の通信中継装置の構成を示す。
【発明を実施するための形態】
【００１０】
以下、図面を用いて本発明の実施例を説明する。
【実施例１】
【００１１】
本実施例では、プラントの制御システムに適用される通信中継装置について説明する。
【００１２】
＜制御システム＞
【００１３】
制御システムの構成について説明する。
【００１４】
図１は、本発明の実施例１の制御システムの構成を示す。この制御システムは、制御対象設備４１０と、制御装置４２０と、通信中継装置１０と、監視制御サーバ４３０と、ＨＭＩ装置５１０と、生産管理サーバ５２０と、端末装置６１０と、ファイアウォール６２０とを含む。制御対象設備４１０は、制御装置４２０に接続されている。制御装置４２０は更に、通信中継装置１０および制御システムネットワーク２０を介して、監視制御サーバ４３０に接続されている。監視制御サーバ４３０は更に、制御系情報ネットワーク５００を介して、ＨＭＩ装置５１０および生産管理サーバ５２０に接続されている。生産管理サーバ５２０は更に、情報系ネットワーク６００を介して、端末装置６１０およびファイアウォール６２０に接続されている。ファイアウォール６２０は更に、インターネットなどの外部ネットワーク７００に接続されている。
【００１５】
ファイアウォール６２０は、情報系ネットワーク６００と外部ネットワーク７００との間の通信を中継すると共に、外部ネットワーク７００から情報系ネットワーク６００への不正アクセスを防ぐ。生産管理サーバ５２０は、プラントの生産目標や生産個数指示などの計画値を決定し、計画値を監視制御サーバ４３０へ送信する。端末装置６１０は、情報系ネットワーク６００を介して生産管理サーバ５２０にアクセスすることにより、生産管理サーバ５２０へ計画値に関する情報を入力し、生産管理サーバ５２０から出力される実績などの情報を表示する。これにより、端末装置６１０の管理者は、制御システムの実績を監視することができる。監視制御サーバ４３０は、生産管理サーバ５２０から受信した計画値に基づいて、制御対象設備４１０の指令値を決定し、制御システムネットワーク２０および通信中継装置１０を介して、制御装置４２０へ指令値を送信する。ＨＭＩ装置５１０は、制御系情報ネットワーク５００を介して監視制御サーバ４３０にアクセスすることにより、監視制御サーバ４３０へ指令値に関する情報を入力し、監視制御サーバ４３０から出力される状態などの情報を表示する。これにより、ＨＭＩ装置５１０の管理者は、制御対象設備４１０の状態を監視することができる。制御装置４２０は、監視制御サーバ４３０から受信した指令値に基づいて、制御対象設備４１０を制御する。制御対象設備４１０は、スイッチ、バルブ、センサなどである。指令値は例えば、スイッチやバルブの開閉などである。状態は例えば、センサにより計測される圧力、温度、回転数などである。
【００１６】
＜通信中継装置＞
【００１７】
図２は、実施例１の通信中継装置１０の構成を示す。通信中継装置１０は、制御システムネットワーク２０を介して第一通信装置２５に接続されている上流通信ポート１１と、保護対象の第二通信装置３０に接続されている下流通信ポート１２とを具備する。通信中継装置１０は下流通信ポート１２を複数具備し、複数の第二通信装置３０をそれぞれ接続できるようにしてもよい。第一通信装置２５は例えば、監視制御サーバ４３である。第二通信装置３０は例えば、制御装置４２０である。
【００１８】
通信中継装置１０は更に、受信回路１００と、データ抽出バッファ１１０と、データ引き出し線１２０と、置換バッファ１３０と、送信回路１４０と、ルール判定部２００と、判定制御部２３０と、特徴値抽出ルール定義部２４０と、通過条件定義部２５０と、中継有効判定部２６０と、ルール設定インタフェース２１とを含む。
【００１９】
受信回路１００は、制御システムネットワーク２０および上流通信ポート１１を介して接続された第一通信装置２５から中継すべき通信フレーム（パケット）を示す信号を受信し、受信した信号を中継データ列に変換して順次出力する。中継データ列は、連続する複数の要素を含む。要素は例えばビットである。本実施例において、制御システムネットワーク２０上の通信フレームや受信回路１００から出力される中継データ列はＩＥＥＥ８０２．３形式に基づいているが、これらは他の任意の通信規格に基づくものであってもよい。制御システムネットワーク２０の伝送媒体は、電気に加えて光、電波、あるいはそれらの任意の組み合わせであってもよい。上流通信ポート１１および受信回路１００は、Ｎｅｔｗｏｒｋ  Ｉｎｔｅｒｆａｃｅ  Ｃａｒｄ（ＮＩＣ）であっても良い。
【００２０】
図３は、通信フレームのフォーマットを示す。ＩＥＥＥ８０２．３に従う通信フレームは、プリアンブル部と、ヘッダ部と、ペイロード部と、ＦＣＳ部のフィールド（領域）を含む。プリアンブル部の末尾はＳｔａｒｔ  Ｆｒａｍｅ  Ｄｅｌｉｍｉｔｅｒ（ＳＦＤ）であり、ヘッダの開始を示す。受信回路１００は、受信した信号からＳＦＤを検出したとき、受信タイミングを示すフレーム開始信号１０１を出力する。本信号は、後述する通過条件の判定を実行するタイミングの基準となる。ヘッダ部は、宛先アドレス、発信元アドレス、タイプ／長さを含む。ＦＣＳ部は、ＩＥＥＥ８０２．３フレームに伝送誤りがあるかどうかを受信端にて検査するための誤り検査符号である。ＦＣＳ部は、各通信フレームのヘッダ部とペイロード部の内容からＣｙｃｌｉｃ  Ｒｅｄｕｎｄａｎｃｙ  Ｃｈｅｃｋ（ＣＲＣ）演算により算出される３２ビットの値である。受信回路１００は、通信フレームからＳＦＤを検出することによりヘッダの開始タイミングを認識する。判定制御部２３０は、タイプ／長さを検出することにより、ペイロードの長さを認識し、ＦＣＳ部のタイミングを認識する。
【００２１】
データ抽出バッファ１１０は、受信回路１００が出力した中継データ列を送信回路１４０へ順次転送するとともに、中継データ列のうち、データ抽出バッファ１１０の内部を通過中の部分データ列を取得し、複数のデータ引き出し線１２０から出力する機能を具備する。
【００２２】
図４は、データ抽出バッファ１１０の構成を示す。この図に示すように、データ抽出バッファ１１０は、例えばシフトレジスタで構成されることができる。複数のデータ引き出し線１２０のそれぞれは、シフトレジスタの各段の出力から分岐してデータを出力する。シフトレジスタは、入力端から連続して入力されるビットを格納し、駆動クロック信号に従ってビットを出力端へシフトさせ、入力された順に出力端から置換バッファ１３０へ出力する。これにより、中継データ列内の各ビットは、通信中継装置１０で受信されてから一定時間で送信される。データ抽出バッファ１１０は、このほかデュアルポートメモリやリングバッファなどの技術を用いて構成されてもよい。
【００２３】
なお、データ抽出バッファ１１０の長さは任意である。バッファを長くすると、中継データ列からより長い部分データを取得でき、後述する特徴値抽出ルールを簡素に記述できるが、中継データ列がデータ抽出バッファ１１０を通過することによる遅延時間が増大する。そのため、データ抽出バッファ１１０の長さは、特徴値抽出ルールの複雑さと、中継が達成すべき遅延時間との兼ね合いで決定されることが望ましい。
【００２４】
受信回路１００、データ抽出バッファ１１０、置換バッファ１３０、送信回路１４０は、受信したデータを一定時間で中継するために、制御システムネットワーク２０の伝送速度に同期した周波数、例えば１００Ｍｂｐｓのネットワークであれば１００ＭＨｚの駆動クロック信号で駆動される。但し、回路構成により、駆動クロック信号は伝送速度の整数倍や整数分の１の周波数などを有していてもよい。
【００２５】
＜ルール判定部＞
【００２６】
次に、中継データ列の中継が有効か無効かを判定する動作について説明する。
【００２７】
判定制御部２３０は、通信フレームが受信されるごとに受信回路１００により出力されるフレーム開始信号１０１によって起動され、ルール判定部２００による判定を実行するためのタイミング制御を実行する。
【００２８】
具体的には、フレーム開始信号１０１による起動後、判定制御部２３０は、データ抽出バッファ１１０より順次出力される中継データ列に対して適用可能な特徴値抽出ルールと通過条件を、特徴値抽出ルール定義部２４０と通過条件定義部２５０からそれぞれ検索する。検索の結果、適用可能な特徴値抽出ルールと通過条件があれば、判定制御部２３０は、特徴値抽出部２１０と条件判定部２２０にそれぞれ設定して通過条件の判定を実行する。適用可能な特徴値抽出ルールと通過条件の組が複数存在する場合、判定制御部２３０は、一つの中継データ列に対してそれらをすべて適用する。
【００２９】
図５は、ルール判定部２００の構成を示す。ルール判定部２００は、特徴値抽出部２１０と条件判定部２２０とを含む。特徴値抽出部２１０は、データ抽出バッファ１１０より中継データ列の部分データを取得し、特徴値抽出ルールに従って部分データから特定の要素を抽出し、特徴値として出力する。ルール判定部２００は、複数のデータ引き出し線１２０から入力された部分データ列にマスクパターン２１１をそれぞれ乗じ、その結果を出力レジスタ２１２にラッチすることで所望のビット列を特徴値として抽出する。
【００３０】
特徴値抽出ルールは、中継データ列の先頭であるフレーム開始信号１０１から数えた抽出開始ビット位置と、抽出するビット長である。判定制御部２３０は、フレーム開始信号１０１および特徴値抽出ルールに基づいて、出力レジスタ２１２をラッチするイネーブル信号２１３の出力タイミングと、データ抽出バッファ１１０内の抽出するビット位置を示すマスクパターン２１１とを決定する。例えば、ＩＥＥＥ８０２．３フレームの宛先アドレスを特徴値として抽出する場合は、抽出開始ビット位置として０、抽出するビット長として４８を、特徴値抽出ルールとして与えればよい。
【００３１】
条件判定部２２０は、特徴値抽出部２１０が抽出した特徴値を受け取り、特徴値を通過条件と比較し、比較結果を合否信号として出力する。通過条件は、特徴値と比較するために予め定められた判定値と、両者の間の関係演算子（等しい、等しくない、大きい、小さいなど）の組により定義される。例えば、特徴値がペイロード部のオクテット長であり、特徴値が１０００バイト以下であることを通過条件とする場合、通過条件を構成する判定値には１０００、関係演算子には「＜＝」を与える。
【００３２】
通信中継装置１０の管理者は、通過可否判定の対象とする通信フレームの形式に基づいて、特徴値抽出ルールおよび通過条件を特徴値抽出ルール定義部２４０および通過条件定義部２５０にそれぞれ設定しても良いし、外部のコンピュータのツールを用いて特徴値抽出ルールおよび通過条件を生成し、そのコンピュータからルール設定インタフェース２１を介して特徴値抽出ルール定義部２４０と通過条件定義部２５０に設定しても良い。特徴値抽出ルール定義部２４０と通過条件定義部２５０は、例えばレジスタ、ＳＲＡＭ、ＤＲＡＭなどの記憶素子によって構成することができる。
【００３３】
なお、中継データ列の通過条件が複数の下位条件から構成されるなど、通過条件が複雑である場合や、通過可否判定の所要時間を短縮する必要がある場合などにおいては、複数のルール判定部２００が通信中継装置１０に設けられ、複数の通過条件を並列に評価できるようにしてもよい。この場合、中継データ列の複数の通過条件のすべてを満たす場合に、当該中継データ列は正常と判定される。
【００３４】
図６は、特徴値抽出ルール定義部２４０および通過条件定義部２５０の構成を示す。特徴値抽出ルール定義部２４０と通過条件定義部２５０は、特徴値抽出ルールと通過条件をそれぞれ複数格納することができる。特徴値抽出ルールと通過条件の格納形式はこの図のようなテーブル形式のほか、データベース形式など任意に選択されてもよい。また、特徴値抽出ルール定義部２４０と通過条件定義部２５０は、特徴値抽出ルールと通過条件以外の通信中継装置１０の管理のための情報を適宜格納してよい。さらに、中継データ列から抽出された特徴値と通過条件との整合性を保つために、特徴値抽出ルール定義部２４０内の特徴値抽出ルールと、通過条件定義部２５０内で対応する通過条件とに、同一のアドレス２４１を付与する。この図において、アドレス０００１の通過条件は、宛先アドレスが条件値と等しいことである。アドレス０００２の通過条件は、発信先アドレスが条件値と異なることである。アドレス０００３の通過条件は、タイプ／長さが条件値以下であることである。
【００３５】
図７は、中継有効判定部２６０の構成を示す。中継有効判定部２６０は、条件判定部２２０から出力される条件合否信号を受け、データ抽出バッファ１１０内を通過中の中継データ列の有効／無効を判定する。一つの中継データ列に対して、条件判定部２２０が複数回の通過条件の判定を実行した場合や、ルール判定部２００が複数存在する場合において、中継データ列が有効であると判定されるためには、条件判定部２２０から出力される全ての条件合否信号が条件合致を示す必要がある。例えば、中継有効判定部２６０は、条件合否信号を連続して受信したときのみ発火状態となるステートマシン２６１及び複数の条件合否信号の論理積回路２６２を組み合わせることで実現可能である。
【００３６】
＜中継データ列の無効化＞
【００３７】
次に、中継有効判定部２６０において、中継データ列が通過条件を満たさなかった場合の動作について説明する。
【００３８】
中継有効判定部２６０により、条件判定部２２０から出力される条件合否信号の何れかが条件合致を示さないと判定された場合、無効ＦＣＳ生成部２６３は、中継データ列の末尾に配置されているＦｒａｍｅ  Ｃｈｅｃｋ  Ｓｅｑｕｅｎｃｅ（ＦＣＳ）部の値と異なるＦＣＳ値を、無効ＦＣＳ値として生成し、置換データ信号１３２に出力する。さらに、無効ＦＣＳ置換指令部２６４は、中継データ列のＦＣＳ部が置換バッファ１３０を通過する期間において、イネーブル信号１３１をアクティブとすることで、無効ＦＣＳ値を中継データ列のＦＣＳ部に上書きする。無効ＦＣＳ値は、例えば０である。
【００３９】
図８は、置換バッファ１３０の構成を示す。置換バッファ１３０は、データ抽出バッファ１１０から出力される中継データ列を送信回路１４０へ伝達すると共に、中継有効判定部２６０からの指示に応じて、伝達する中継データ列の一部の要素を、指示された値に書き換える。イネーブル信号１３１及び置換データ信号１３２は、中継有効判定部２６０より置換バッファ１３０へ与えられる。図９は、置換バッファ１３０の動作を示すタイムチャートである。この図に示されているように、置換バッファ１３０は、イネーブル信号１３１がアクティブである間、中継データ列のうち置換バッファ１３０を通過中の部分Ｄを、置換データ信号１３２で与えられるビットパターンＲに置き換える。
【００４０】
送信回路１４０は、置換バッファ１３０から入力された中継データ列を所定の通信信号に変換し、下流通信ポート１２を介して第二通信装置３０へ送信する。本実施例では、受信回路１００と同様に、データ列、通信信号ともＩＥＥＥ８０２．３フレーム形式に基づくとするが、任意の通信規格及び伝送媒体を用いてよい。送信回路１４０および下流通信ポート１２は、Ｎｅｔｗｏｒｋ  Ｉｎｔｅｒｆａｃｅ  Ｃａｒｄ（ＮＩＣ）であっても良い。
【００４１】
図１０は、通信中継装置１０から第二通信装置３０への送信動作を模式的に示す。中継有効判定部２６０の動作により、通過条件を満たさなかった中継データ列は、置換バッファ１３０によりＦＣＳ部内の有効ＦＣＳ値がＦＣＳとして取り得ない無効ＦＣＳ値に書き換えられ、送信回路１４０より通信フレームとして出力される。第二通信装置３０に備えられた受信回路３１０は、通信中継装置１０から当該通信フレームを受信し、当該通信フレームのヘッダ部およびペイロード部からＦＣＳを算出し、算出されたＦＣＳと受信されたＦＣＳとを比較し、一致しなければ当該通信フレームを無効フレームと判定して廃棄する。これにより、第二通信装置３０は当該通信フレームに含まれるデータを処理しない。第二通信装置３０が制御装置４２０である場合、制御装置４２０の制御機能には当該通信フレームに含まれるデータが到達しない。したがって、当該データが制御装置４２０にとって有害なものであった場合でも、制御装置４２０の制御能力を損なうことを防止できる。
【００４２】
通信フレームにおいて、置換バッファ１３０による書き換え対象は、ペイロード部内の特定の領域のデータ等、ＦＣＳ部以外の部分であっても良い。なお、通信フレームの形式がＩＥＥＥ８０２．３以外である場合も、当該通信フレームの誤り検出用符号や、当該通信フレームの形式上特定の値が設定されることを期待されているフィールドなどを、置換バッファ１３０による書き換え対象とすることで、ＦＣＳと同様の効果が期待できる。通信フレームにおいて、書き換え対象のビット列は、特徴値に対応するビット列より後に位置することが好ましい。これにより、特徴値に対応するビット列がデータ抽出バッファ１１０を通過した後に、書き換え対象のビット列を書き換えることができる。なお、無効ＦＣＳ生成部２６３が所定の加算値を出力し、置換バッファ１３０がＦＣＳ部にその加算値を加えても良い。
【００４３】
ファイアウォール６２０のように情報系ネットワークの中継装置は、通信フレームの遅延時間を示すレイテンシに比べて、単位時間当たりの伝送量を示すスループットが重視されており、中継による遅延時間を一定に保つことが困難である。ストアアンドフォワード方式を用いる中継装置は、通信フレームのすべてを受信して格納し、通信フレームを通過させるか廃棄するかを判定し、通過させると判定された通信フレームのみを送信する。即ち、この中継装置は、判定が完了するまで、通信フレームの送信を開始しない。したがって、通信フレームの長さなどによって中継の遅延時間は変動する。
【００４４】
一方、本実施例の通信中継装置１０は、通信フレームの各ビットを受信し、データ抽出バッファ１１０を通過させ、通過中の部分データにより通信フレームが正常か否かを判定し、異常であれば通信フレームの一部のビットを書き換え、受信した順に各ビットを送信する。即ち、通信中継装置１０は、連続して受信する複数の通信フレームを、通信フレームの長さや通信フレームの判定結果に関わらず、一定の遅延時間で第二通信装置３０へ中継する。制御システムにおいては、短い周期で通信フレームが送信されるため、中継の遅延時間が一定であることが好ましい。
【００４５】
更に通信フレームがデータ抽出バッファ１１０を通過する間に特徴値を算出し、所定の通過条件と比較することで当該通信フレームの中継の有効／無効を判定することができる。判定の結果、当該通信フレームの中継が無効と判定された場合、送信回路１４０により当該通信フレームの先頭の送出が開始されている場合でも、当該通信フレームの末尾のＦＣＳ部を書き換えることで、第二通信装置３０にて当該通信フレームの受信を無効とすることができ、中継の遅延時間を増大させることなく通信フレームを遮断することができる。
【００４６】
制御システムネットワーク２０においては、同じ形式や同じ長さの通信フレームが一定周期で送信されるという特徴がある。このような場合の通信フレームは、例えば、ペイロード中の固定長の値だけが変わるものや、スイッチのＯＮまたはＯＦＦを示すものである。このような場合、通過条件は通信フレームの受信時刻を用いても良い。
【００４７】
図１１は、実施例１の変形例の通信中継装置１０の構成を示す。通信中継装置１０は更に、時刻測定部２７０を有し、フレーム開始信号１０１が出力された時刻をフレーム受信時刻として測定して記憶する。特徴値抽出部２１０は、連続する二つの通信フレームのフレーム受信時刻の差であるフレーム受信間隔を特徴値として算出する。この場合の通過条件は、フレーム受信間隔が所定の時間範囲内にあることである。フレーム受信間隔が所定の時間範囲内にあるとは、例えば、正常値として予め定められたフレーム受信間隔に対し、算出されたフレーム受信間隔の誤差の大きさが所定の上限以下になることである。通過条件にフレーム受信間隔を用いることにより、通信フレームが一定周期で送信される制御システムにおいて、通信中継装置１０は、フレーム受信間隔が異なる通信フレームを不正な通信フレームと判定することができる。また、通信フレーム内の特定の要素を特徴値とする特徴値抽出部２１０と、フレーム受信間隔を特徴値とする特徴値抽出部２１０とを組み合わせても良い。
【００４８】
第二通信装置３０が制御装置である場合、通信フレームの特徴値を算出して判定する機能を、制御装置に追加して、制御装置の限られた処理能力を用いて実行することは困難である。本実施例の通信中継装置１０を制御装置の外部に追加することにより、制御装置を変更することなく、制御装置の負荷を増加させることなく、制御装置への攻撃を防ぐことができる。
【００４９】
制御装置への攻撃を意図する者は、攻撃対象の制御装置における設計上ないし実装上の不備（脆弱性）を継続的に探し、それらを悪用した新たな攻撃手法を適用してくる恐れがある。長期にわたり稼働することが求められるインフラなどの制御システムでは、その稼働期間内において、新たな攻撃手法への防御策を継続して追加できることが望ましい。制御装置４２０を停止させることは困難であるため、制御装置４２０のプログラムの改修や、パッチ（修正プログラム）の適用などは困難である。本実施例によれば、通信中継装置１０に特徴値抽出ルールおよび通過条件を設定することにより、制御システムの動作を停止させることなく、新たな攻撃手法に対応することができる。
【実施例２】
【００５０】
実施例１では、制御システムネットワーク２０から到来する不正データから第二通信装置３０を保護することを目的とした。実際には、第二通信装置３０が制御システムネットワーク２０以外の経路でマルウェア感染などの攻撃を受け、第二通信装置３０から制御システムネットワーク２０へ向けて不正データを送出するケースも存在しうる。本実施例では、実施例１と逆向きに不正データが伝播することを防止する通信中継装置について説明する。
【００５１】
図１２は、実施例２の通信中継装置の構成を示す。本実施例の通信中継装置１５は、中継部１０ａ、１０ｂを含む。本実施例の制御システムネットワーク２０において、制御システムネットワーク２０から第二通信装置３０へ配送される通信フレームの経路（便宜的に「下り」という）と、逆に第二通信装置３０から制御システムネットワーク２０へ配送される通信フレームの経路（便宜的に「上り」という）とに、それぞれ中継部１０ａ及び中継部１０ｂが挿入されている。中継部１０ａ及び中継部１０ｂのそれぞれは、実施例１で述べた通信中継装置１０と同様の構成を有する。
【００５２】
実施例１と同様、第一通信装置２５から通信中継装置１５を介して第二通信装置３０へ送信される通信フレームのうち、中継部１０ａによりＦＣＳ部を無効ＦＣＳ値に書き換えられた通信フレームは、第二通信装置３０により廃棄される。同様に、第二通信装置３０から通信中継装置１５を介して第一通信装置２５へ送信される通信フレームのうち、中継部１０ｂによりＦＣＳ部を無効ＦＣＳ値に書き換えられた通信フレームは、第一通信装置２５により廃棄される。これにより、外部ネットワーク７００などの外部ネットワークから制御システムネットワーク２０経由で到来する脅威の侵入を防止することができると共に、第二通信装置３０が制御システムネットワーク２０以外の経路で脅威に侵入された際に、被害が制御システムネットワーク２０経由で他の装置に波及することを防止することができる。このとき、中継部１０ａ及び中継部１０ｂは、それぞれが個別に特徴値抽出ルールと通過条件を持つことができるため、下り経路と上り経路で異なる通過条件を定義することができ、それぞれの経路における脅威の発生状況に応じた柔軟な対策をとることが可能となる。
【００５３】
なお、中継部１０ａ内の上流通信ポート１１と中継部１０ｂ内の下流通信ポート１２とが一つの通信ポートであっても良く、中継部１０ｂ内の上流通信ポート１１と中継部１０ａ内の下流通信ポート１２とが一つの通信ポートであっても良い。また、中継部１０ａと中継部１０ｂが互いに異なる筺体に設けられていても良い。
【００５４】
図１３は、実施例２の変形例の通信中継装置の構成を示す。この変形例は、下り経路と上り経路とで互いに異なる通過条件を適用する必要がない場合を示す。実施例２の通信中継装置１５と比較すると、この変形例の通信中継装置１５−２は、中継部１０ａに代えて中継部１０ａ−２ｂを用い、中継部１０ｂに代えて中継部１０ｂ−２ｂを用いる。中継部１０−２ａ及び中継部１０−２ｂのそれぞれは、通信中継装置１０から特徴値抽出ルール定義部２４０と通過条件定義部２５０を除いたものである。通信中継装置１５−２は更に、特徴値抽出ルール定義部２４０ｂと、通過条件定義部２５０ｂと、ルール設定インタフェース２１ｂを含む。通信中継装置１５−２の管理者は、ルール設定インタフェース２１ｂを介して特徴値抽出ルールおよび通過条件を、特徴値抽出ルール定義部２４０ｂおよび通過条件定義部２５０ｂへそれぞれ設定する。特徴値抽出ルール定義部２４０ｂは、中継部１０−２ａ及び中継部１０−２ｂに共通の特徴値抽出ルールを与える。通過条件定義部２５０ｂは、中継部１０−２ａ及び中継部１０−２ｂに共通の通過条件を与える。
【００５５】
通信中継装置１５−２によれば、下り経路と上り経路とに共通の特徴値抽出ルールおよび通過条件を用いることにより、下り経路と上り経路とに異なる特徴値抽出ルールおよび通過条件を用いる場合に比べて、通信中継装置１５−２のハードウェアのコストを削減できると共に、特徴値抽出ルールおよび通過条件の設定の工数を削減できる。
【００５６】
本発明の一態様である通信中継装置の用語について説明する。受信部は、上流通信ポート１１と受信回路１００などに対応する。判定部は、判定制御部１３０とルール判定部２００と特徴値抽出ルール定義部２４０と通過条件定義部２５０と中継有効判定部２６０と時刻測定部２７０などに対応する。変更部は、置換バッファ１３０などに対応する。送信部は、送信回路１４０と下流通信ポート１２などに対応する。バッファは、データ抽出バッファ１１０などに対応する。記憶部は、特徴値抽出ルール定義部２４０と通過条件定義部２５０などに対応する。第一領域は、ＦＣＳ部などに対応する。第二領域は、宛先アドレスを示すフィールドや、ペイロード部の長さを示すフィールドなどに対応する。
【００５７】
なお、本発明は上記した実施例に限定されるものではなく、様々な変形例が含まれる。例えば、上記した実施例は本発明を分かりやすく説明するために詳細に説明したものであり、必ずしも説明した全ての構成を備えるものに限定されるものではない。また、ある実施例の構成の一部を他の実施例の構成に置き換えることが可能であり、また、ある実施例の構成に他の実施例の構成を加えることも可能である。また、各実施例の構成の一部について、他の構成の追加・削除・置換をすることが可能である。
【００５８】
また、上記の各構成、機能、処理部、処理手段等は、それらの一部又は全部を、例えば集積回路で設計する等によりハードウェアで実現してもよい。また、上記の各構成、機能等は、プロセッサがそれぞれの機能を実現するプログラムを解釈し、実行することによりソフトウェアで実現してもよい。各機能を実現するプログラム、テーブル、ファイル等の情報は、半導体メモリや、ハードディスク等の記録装置、または、磁気や光を利用する記録媒体に置くことができる。
【００５９】
また、制御線や情報線は説明上必要と考えられるものを示しており、製品上必ずしも全ての制御線や情報線を示しているとは限らない。実際には殆ど全ての構成が相互に接続されていると考えてもよい。
【符号の説明】
【００６０】
１０、１５、１５−２：通信中継装置  １１：上流通信ポート  １２：下流通信ポート  ２０：制御システムネットワーク  ２１：ルール設定インタフェース  ２５：第一通信装置  ３０：第二通信装置  １００：受信回路  １０１：フレーム開始信号  １１０：データ抽出バッファ  １２０：データ引き出し線  １３０：置換バッファ  １４０：送信回路  ２００：ルール判定部  ２１０：特徴値抽出部  ２２０：条件判定部  ２３０：判定制御部  ２４０：特徴値抽出ルール定義部  ２５０：通過条件定義部  ２６０：中継有効判定部  ２７０：時刻測定部
【図１】
2015119386.tif 000003
【図２】
2015119386.tif 000004
【図３】
2015119386.tif 000005
【図４】
2015119386.tif 000006
【図５】
2015119386.tif 000007
【図６】
2015119386.tif 000008
【図７】
2015119386.tif 000009
【図８】
2015119386.tif 000010
【図９】
2015119386.tif 000011
【図１０】
2015119386.tif 000012
【図１１】
2015119386.tif 000013
【図１２】
2015119386.tif 000014
【図１３】
2015119386.tif 000015