(57)【特許請求の範囲】
【請求項１】
通信フレームの入出力を行う通信インタフェース部と、
前記通信フレームの送受信に係る統計情報を管理する通信処理部と、
前記統計情報として前記通信フレームの受信数を監視し、該受信数が一定時間内に予め規定された値を超えた場合は、通信フレームの新規受信の禁止を示す受信禁止信号を前記通信処理部に送信する監視部と、
前記通信フレーム毎に変化するセーフティヘッダを含むセーフティデータを生成するセーフティデータ生成部と、
を有するセキュリティ処理部と、
前記監視部から受信禁止を示す情報を受信した場合に、前記セキュリティ処理部から受信した通信フレームの前記セーフティヘッダに対する置換処理を実施すると判定する処理実施判定部と、
前記処理実施判定部で置換処理を実施すると判定された場合に、前記セキュリティ処理部から受信した通信フレームの前記セーフティヘッダを健全であるとされる値に置換するデータ置換部と、
前記置換がなされた通信フレームの誤り検出符号を再計算し付与する符号計算・付与部と、
を有するセーフティデータ置換部と、
前記セーフティデータ置換部から受信した通信フレームの前記セーフティヘッダから当該通信フレームの健全性を確認するセーフティデータ確認部と、
前記セーフティデータ確認部により前記セーフティデータ置換部から受信した通信フレームの健全性が確認された場合に、当該通信フレームのデータを基に配下の装置を制御するための制御値を算出する制御演算部と、
前記配下の装置へ前記制御値を出力し、配下の装置からのデータを入力するＩ／Ｏデータ入出力部と、
を有するセーフティ処理部と、
を具備する制御装置。
【請求項２】
前記処理実施判定部は、前記監視部から前記受信禁止を示す情報を受信していない場合、受信した通信フレームを前記セーフティ処理部に転送する、請求項１に記載の制御装置。
【請求項３】
前記セキュリティ処理部と前記セーフティデータ置換部との間に接続され、送受信する通信フレームに対する暗号化および復号の処理を施す暗号化／復号部を、さらに具備する請求項１または請求項２に記載の制御装置。
【請求項４】
前記セーフティ処理部は、配下の装置からの入力データに対し前記セーフティデータを生成し、生成したセーフティデータを含む通信フレームを前記セキュリティ処理部を介して出力する請求項１から請求項３のいずれか１項に記載の制御装置。
【請求項５】
前記データ置換部は、前回、前記セーフティデータ置換部から前記セーフティ処理部に送信した通信フレーム中の前記セーフティヘッダを、今回値と前回値の差分が許容範囲内となるようインクリメントした値に置換し、前記符号計算・付与部は、置換後の通信フレームを元に再度誤り検出符号を計算し付与した通信フレームを、前記セーフティ処理部へ送信する
請求項４に記載の制御装置。
【請求項６】
前記データ置換部は、前記監視部からの受信禁止が解除された情報を検出すると、前記データ置換部は、新規受信した通信フレーム内の前記セーフティヘッダの今回値と、前記セーフティデータ置換部から前記セーフティ処理部へ送信した通信フレームに含まれる前記セーフティヘッダの前回値との差分が許容範囲内となるよう置換する請求項４に記載の制御装置。
【請求項７】
前記処理実施判定部が、前記受信禁止が解除された情報を検出すると、前記データ置換部は、新規受信した通信フレームの前記セーフティヘッダと前回置換した前記セーフティヘッダとの差分を演算し、その差分を新規受信した通信フレーム内の前記セーフティヘッダに加減算することにより、前記今回値と前記前回値との差分が前記許容範囲内となるよう置換する請求項６に記載の制御装置。
【請求項８】
前記セーフティデータ置換部は、前記監視部により前記受信禁止を示す情報を一度受信された後は、サービス不能攻撃の有無によらず継続して前記セキュリティ処理部から受信した通信フレーム内の前記セーフティヘッダを、前記データ置換部および前記符号計算・付与部により更新することを特徴とする請求項１から請求項３のいずれか１項に記載の制御装置。
【請求項９】
サービス不能攻撃の継続時間に対する許容値を外部から前記処理実施判定部に入力することを可能とした請求項１から請求項８のいずれか１項に記載の制御装置。
【請求項１０】
サービス不能攻撃の継続時間が前記許容値を超えた場合、前記処理実施判定部は、ユーザ側装置に警告を伝達することを可能とした請求項９に記載の制御装置。
【請求項１１】
サービス不能攻撃の継続時間が前記許容値を超えた場合、前記セーフティデータ置換部は、前記データ置換部および前記符号計算・付与部による前記セーフティヘッダの更新をせずに、前回出力した通信フレームを前記セーフティ処理部へ転送する請求項９または１０に記載の制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、制御装置に関する。
【背景技術】
【０００２】
従来より、プラント等を制御する制御システムは、社会基盤、産業基盤を支えるため２４時間３６５日の連続運転できることが最重要要件とされている。このような制御システムは、悪意ある第三者からの攻撃等により稼働が阻害された場合、社会的な影響が非常に大きい。従来の制御システムはクローズドシステムで構成され、外部ネットワークと接続されていないため、悪意ある第三者からの攻撃等の脅威は殆ど意識されてこなかった。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１３−１９６０５８号公報
【特許文献２】特開２０１２−０４３２３０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、近年、制御システムに汎用ＯＳが採用されるようになり、外部ネットワークからのリモートコントロールができるようになるなど、システムの構成・使用状況に変化が生じてきている。そのため、制御システムで従来から求められている安全性（以下セーフティと称す）と、セキュリティとを両立した制御システムが望まれている。
【０００５】
本発明が解決しようとする課題は、制御装置におけるセキュリティ機能とセーフティ機能の両立を実現し、両機能をもたせた当該制御装置が制御するシステムのアベイラビリティの低減を回避することができる制御装置を提供することである。
【課題を解決するための手段】
【０００６】
実施形態の制御装置は、セキュリティ処理部と、セーフティデータ置換部と、セーフティ処理部を備える。セキュリティ処理部は、通信フレームの入出力を行う通信インタフェース部と、通信フレームの送受信に係る統計情報を管理する通信処理部と統計情報として通信フレームの受信数を監視し、該受信数が一定時間内に予め規定された値を超えた場合は、通信フレームの新規受信の禁止を示す受信禁止信号を前記通信処理部に送信する監視部と、通信フレーム毎に変化するセーフティヘッダを含むセーフティデータを生成するセーフティデータ生成部と、を有する。セーフティデータ置換部は、監視部から受信禁止を示す情報を受信した場合に、セキュリティ処理部から受信した通信フレームのセーフティヘッダに対する置換処理を実施すると判定する処理実施判定部と処理実施判定部で置換処理を実施すると判定された場合に、セキュリティ処理部から受信した通信フレームのセーフティヘッダを健全であるとされる値に置換するデータ置換部と置換がなされた通信フレームの誤り検出符号を再計算し付与する符号計算・付与部とを有する。セーフティ処理部は、セーフティデータ置換部から受信した通信フレームの所定のデータから当該通信フレームの健全性を確認するセーフティデータ確認部と、セーフティデータ確認部によりセーフティデータ置換部から受信した通信フレームの健全性が確認された場合に、当該通信フレームのデータを基に配下の装置を制御するための制御値を算出する制御演算部と、配下の装置へ制御値を出力し、配下の装置からのデータを入力するＩ／Ｏデータ入出力部と、を有する。
【図面の簡単な説明】
【０００７】
【図１】図１は、第１の実施形態にかかる制御装置の構成を示すブロック図である。
【図２】図２は、第１の実施形態における監視部の動作フローを示すフローチャートである。
【図３】図３は、第１の実施形態におけるセーフティデータ置換部の動作フロー（通常処理）を示すフローチャートである。
【図４】図４は、第１の実施形態におけるフレームフォーマットの一例を示す図である。
【図５】図５は、第１の実施形態におけるセーフティ処理部の動作フローを示すフローチャートである。
【図６】図６は、第１の実施形態におけるサービス不能攻撃が収束した場合のセーフティデータ置換部の動作フローを示すフローチャートである。
【図７】図７は、第１の実施形態にかかる制御装置の、セキュリティ処理部、セーフティデータ置換部、およびセーフティ処理部間のデータの流れおよび動作を示す図である。
【図８】図８は、第２の実施形態にかかる制御装置の構成を示すブロック図である。
【図９Ａ】図９Ａは、第２の実施形態におけるフレームフォーマットの一例を示す図である。
【図９Ｂ】図９Ｂは、第２の実施形態における認証データベースのデータ構造の一例を示す図である。
【図１０】図１０は、第３の実施形態におけるセーフティデータ置換部の動作フロー（通常処理）を示すフローチャートである。
【図１１】図１１は、第３の実施形態にかかる制御装置の、セキュリティ処理部、セーフティデータ置換部、およびセーフティ処理部間のデータの流れおよび動作を示す図である。
【図１２】図１２は、第４の実施形態にかかる制御装置およびユーザ端末の構成を示すブロック図である。
【図１３】図１３は、第４の実施形態にかかる制御装置およびユーザ端末の構成（他の例）を示すブロック図である。
【図１４】図１４は、第４の実施形態におけるセーフティデータ置換部の動作フローを示すフローチャートである。
【図１５】図１５は、第４の実施形態にかかる制御装置の、セキュリティ処理部、セーフティデータ置換部、およびセーフティ処理部間のデータの流れおよび動作を示す図である。
【発明を実施するための形態】
【０００８】
（概要）
プラント等を制御する制御システムにおけるセーフティ機能とセキュリティ機能に関して、以下が知られている。
【０００９】
セーフティの観点では、ＩＥＣ６１５０８「電気・電子・プログラマブル電子安全関連系の機能安全」が定められている。セーフティ機能を実現する代表的な手法の一つとして、ブラックチャネル通信と呼ばれる手法が確立されている。これは、送信側で通信フレーム（以下、フレームと記す）内に時刻情報やシーケンス番号など、フレーム毎に変化する値や、ＣＲＣ（Cyclic  Redundancy  Check)などの誤り検出符号を付与し、受信側でそれらの情報の健全性を確認する手法である。上記フレーム毎に変化する値が一定の値から変化しない異常や、フレームの大幅な損失時など許容値以上の変化が生じる異常を、受信側で検出し、システムが安全側に遷移するようにする。
【００１０】
一方、セキュリティの観点では、標準化規格の策定や評価・認証機関の整備等、制御システムセキュリティのための取り組みが本格化しつつあり、保護機能や開発プロセスを定めたＩＥＣ国際標準規格（ＩＥＣ６２４４３）が策定中である。セキュリティにおける代表的な攻撃手法としてパケット（フレーム）を攻撃対象に大量に送信し、通信障害を生じさせるＤｏＳ（Denial  of  Service）攻撃と呼ばれる攻撃手法が存在する。本攻撃への対応方法としては、例えば、受信したフレームの数を監視し、その数が一定値以上の値になった場合にはＤｏＳ攻撃を受けているとみなして受信を禁止し、ＤｏＳ攻撃検出後は、一定間隔で受信したフレームの数を監視し、その数が閾値を下回った場合にＤｏＳ攻撃が収束したと判断して受信を許可するＤｏＳ攻撃対策がある。
【００１１】
しかしながら、上記のようなセーフティのためのブラックチャネル通信機能とセキュリティのためのＤｏＳ攻撃対策機能とを共に制御装置に実装した場合、以下の問題が生じる。
【００１２】
ＤｏＳ攻撃対策機能によりＤｏＳ攻撃を検出し、フレームの受信を禁止する場合、ＤｏＳ攻撃が収束するまでの間フレームは受信されない。このため、ＤｏＳ攻撃の収束後、新たにフレームを受信したとき、受信したフレームに含まれるタイムスタンプやシーケンス番号の値の変化が許容範囲外となると、セーフティ機能により、システムが安全停止してしまう。つまり、制御装置にセーフティ機能とセキュリティ機能であるＤｏＳ攻撃対策機能を共存させた場合、ＤｏＳ攻撃対策機能によりシステムのアベイラビリティが損なわれてしまう。
【００１３】
以下に説明する諸実施形態にかかる制御装置は、前段のセキュリティ機能を有する機能部と後段のセーフティ機能を有する機能部との間に、ＤｏＳ攻撃等のサービス不能攻撃時にブラックチャネル通信におけるタイムスタンプやシーケンス番号の付け替え（置換）、誤り検出符号の再計算および付与をすることにより、セーフティ機能によってシステムが自動的に安全停止しないようにする機能部を設けている。これにより、以下に説明する制御装置は、セキュリティ機能とセーフティ機能の両立を実現し、当該制御装置が制御するシステムのアベイラビリティの低減を回避する。
【００１４】
（第１の実施形態）
はじめに、第１の実施形態にかかる制御装置について図１を用いて説明する。図１は、第１の実施形態にかかる制御装置の構成を示すブロック図である。
【００１５】
図１に示す制御装置１００は、図示しない配下の装置を制御するとともに、上位装置に対して制御状態の通知等をする装置であり、セキュリティ処理部１０１、セーフティデータ置換部１０２、およびセーフティ処理部１０３の３つのブロックから構成される。これらは同一のハードウェア部品上に構成されてもよいし、別々のハードウェア部品上に構成されてもよい。
【００１６】
セキュリティ処理部１０１は、イーサネット（登録商標）等によるネットワークを介しフレームを送受信するためのインタフェースとなる通信Ｉ／Ｆ部１０４と、この通信Ｉ／Ｆ部１０４に接続され、受信したフレームを処理する通信処理部１０５と、通信処理部１０５に接続され、当該制御装置１００におけるフレーム受信状況を監視する監視部１０６とを備える。
【００１７】
通信Ｉ／Ｆ部１０４は、上位装置などネットワーク上の他の装置からのフレームを受信し、通信処理部１０５へ受信したフレームを転送する。また、通信Ｉ／Ｆ部１０４は、通信処理部１０５からのデータ（フレーム）を上位装置などネットワーク上の他の装置に送信する。
【００１８】
通信処理部１０５は、フレーム受信状況としてのフレーム受信数（受信したフレームの数）など、統計情報を管理する。また、通信処理部１０５は、監視部１０６により受信が許可されている場合、通信Ｉ／Ｆ部１０４からのフレームをセーフティデータ置換部１０２へ転送し、監視部１０６により受信が禁止されている場合、通信Ｉ／Ｆ部１０４からのフレームを破棄する。また、通信処理部１０５は、セーフティ処理部１０３からのフレームを通信Ｉ／Ｆ部１０４へ転送する。
【００１９】
監視部１０６は、上記のように通信処理部１０５で管理されるフレーム受信状況を監視し、フレームの受信の禁止／許可にかかる制御を行う。この監視部１０６の詳細については、後述する。
【００２０】
セーフティデータ置換部１０２は、セキュリティ処理部１０１の後段に接続される。このセーフティデータ置換部１０２は、前述の通信処理部１０５および監視部１０６からの情報（後述）が入力される処理実施判定部１０７と、処理実施判定部１０７に接続され、受信したフレームに含まれる健全性確認データ（所定のデータ）のセーフティヘッダの置換（後述）を行うデータ置換部１０８と、データ置換部１０８に接続され、健全性確認データに含まれる誤り検出符号（または誤り訂正符号）を、セーフティヘッダが置換されたフレームについて再計算しあらためて付与する符号計算・付与部１０９とを備える。
【００２１】
セーフティ処理部１０３は、セーフティデータ置換部１０２の後段に接続される。このセーフティ処理部１０３は、フレーム毎に変化する値をもつセーフティヘッダ、および誤り検出符号からなる安全性確認データを含むセーフティデータを生成しフレームに付与するセーフティデータ生成部１１０と、セーフティデータ置換部１０２からのデータの安全性を確認し、安全性が確認されたデータを制御演算部１１１へ転送するセーフティデータ確認部１１２と、セーフティデータ確認部１１２に接続され、図示しない配下の装置からのデータを処理しセーフティデータ生成部１１０に出力し、セーフティデータ確認部１１２からのデータを基に配下の装置に対する制御データ（制御値）を演算する制御演算部１１１と、制御演算部１１１からの制御データを配下の装置へ出力するとともに、配下の装置からのデータを制御演算部１１１へ出力するＩ／Ｏデータ入出力部１１３とを備える。なお、配下の装置からＩ／Ｏデータ入出力部１１３へ入力されたデータは、制御演算部１１１およびセーフティデータ生成部１１０を介し、セーフティデータ置換部１０２を経由することなく通信処理部１０５へ転送され、通信Ｉ／Ｆ部１０４を介して上位装置などへ送信される。
【００２２】
次に、上記構成による監視部１０６の動作の詳細について図２を用いて説明する。図２は、監視部１０６の動作フローを示すフローチャートである。
【００２３】
監視部１０６は、定周期で通信処理部１０５が管理しているフレーム受信数を含む統計情報を取得し、この統計情報に含まれるフレーム受信数からその前回値と今回値の差分を計算し、規定時間内に受信したフレームの数（規定時間受信数）を算出する（Ｓ１０１）。
【００２４】
この算出値（規定時間受信数）が規定値（閾値）以上の場合（Ｓ１０２でＹｅｓ）、サービス不能攻撃とみなし、監視部１０６は、通信処理部１０５に受信を停止するよう指令を出し（受信停止処理：Ｓ１０３）、さらに、セーフティデータ置換部１０２の処理実施判定部１０７に受信禁止中信号ＯＮを伝達する（Ｓ１０４）。一方、上記算出値（規定時間受信数）が規定値（閾値）未満の場合（Ｓ１０２でＮｏ）、監視部１０６は、通信処理部１０５に受信を許可する指令を出し（受信許可処理：Ｓ１０５）、セーフティデータ置換部１０２の処理実施判定部１０７に受信禁止中信号ＯＦＦを伝達する（Ｓ１０６）。
【００２５】
このように、本実施形態では、セキュリティ処理部１０１により、ＤｏＳ攻撃に代表されるサービス不能攻撃のような予め規定された許容値を超えた数のフレームを受信した場合には、強制的に受信を拒否する。そして、規定時間内に受信したフレームの数が規定値未満に収まった場合、監視部１０６は、サービス不能攻撃が収束したと判定し通信処理部１０５に再び受信を許可する。許可を受けた通信処理部１０５は、受信したフレームをセーフティデータ置換部１０２の処理実施判定部１０７に転送し、監視部１０６は、受信禁止中信号ＯＦＦを処理実施判定部１０７に伝達する。以上の処理を定周期で繰り返す。
【００２６】
次に、セーフティデータ置換部１０２の動作（通常処理）について図３を用いて説明する。図３は、セーフティデータ置換部１０２の通常処理における動作フローを示すフローチャートである。
【００２７】
セーフティデータ置換部１０２の処理実施判定部１０７は、受信禁止中信号のＯＮ／ＯＦＦを判断し、ＯＦＦの場合（Ｓ２０１でＮｏ）、セキュリティ処理部１０１から受信したフレームがあると（Ｓ２０６でＹｅｓ）、このフレームをそのままセーフティ処理部１０３へ転送し（Ｓ２０７）、無い場合は（Ｓ２０６でＮｏ）、Ｓ２０１に戻る。
【００２８】
一方、受信禁止中信号がＯＮの場合は（Ｓ２０１でＹｅｓ）、処理実施判定部１０７は、セーフティデータ置換部１０２からセーフティ処理部１０３へ前回送信したフレーム（前回出力フレーム）を採用し、この前回出力フレームをデータ置換部１０８に転送する（Ｓ２０２）。
【００２９】
データ置換部１０８は、この前回出力フレームについて、そのセーフティヘッダを更新する置換（後述）を行う（Ｓ２０３）。
【００３０】
ここで、図４に、フレームフォーマットの一例を示す。同図に示すように、１つのフレームは、宛先アドレスと、送信元アドレスと、データのタイプを示すデータ識別情報と、データ本体とフレームの健全性を確認するための健全性確認データとからなるセーフティデータとを含んで構成される。健全性確認データ内には、シーケンス番号やタイムスタンプなど、フレーム毎に変化する値を含むセキュリティヘッダと、誤り検出符号（図４の例では、ＣＲＣ）とが含まれる。なお、健全性確認データには、上記のシーケンス番号、タイムスタンプ、誤り検出符号のいずれかを含めるようにしてもよいし、全てを含めるようにしてもよい。
【００３１】
データ置換部１０８は、図４に示したフレームに含まれる健全性確認データ内のシーケンス番号、タイムスタンプなどのセーフティヘッダを、後段のセーフティ処理部１０３においてセーフティヘッダの値の変化が許容範囲内と判断されるように別の値に置換する。置換する方法は、セーフティヘッダの前回値のインクリメントでもよいし、ｎ倍などの算術計算に基づくものでもよい。
【００３２】
その後、符号計算・付与部１０９が、置換後のフレームを用いてこのフレームに対する誤り検出符号を再計算し、算出した符号を新しい誤り検出符号として上記置換後のフレームにあらためて付与し（Ｓ２０４）、セーフティ処理部１０３へ送信する（Ｓ２０５）。
【００３３】
次に、セーフティ処理部１０３の動作について図５を用いて説明する。図５は、セーフティ処理部１０３の動作フローを示すフローチャートである。
【００３４】
セーフティ処理部１０３では、セーフティデータ置換部１０２からフレームを受信すると、セーフティデータ確認部１１２が、受信したフレーム内の健全性確認データに含まれるセーフティヘッダ（シーケンス番号やタイムスタンプ）が前回値から更新されているか否かを確認し、更新されていなければエラーと判断し（Ｓ３０１でＮｏ）、制御演算部１１１がシステムを安全停止させるための安全停止処理へ遷移する（Ｓ３０５）。そうでなければ、セーフティデータ確認部１１２は、処理をＳ３０２へ移行する。
【００３５】
Ｓ３０２では、セーフティデータ確認部１１２によりセーフティヘッダの今回値と前回値との差分が許容値Ｘを超えているか否か確認し、超えていることが確認できた場合もエラーと判断し（Ｓ３０２でＮｏ）、制御演算部１１１が安全停止処理へ遷移する（Ｓ３０５）。
【００３６】
一方、セーフティデータ確認部１１２によりセーフティヘッダの今回値と前回値との差分が許容値以下（正常範囲内）と確認された場合（Ｓ３０２でＹｅｓ）、制御演算部１１１は、セーフティデータ置換部１０２から転送されてきたフレームのデータを採用し、配下の装置であるＩ／Ｏ（入力装置／出力装置）を制御するための制御値を演算し（制御値演算：Ｓ３０３）、この制御値をＩ／Ｏデータ入出力部１１３に出力させる（Ｉ／Ｏ出力：Ｓ３０４）。
【００３７】
なお、本制御装置１００によるシステムのアベイラビリティを、より考慮する構成として、上記許容値に加えリトライ回数を設けるようにしてもよい。この場合、セーフティデータ確認部１１２が上記のようにエラーと判定した場合にはそのときのフレームのデータを採用せずに前回セーフティ処理部１０３へ送信したフレームのデータを採用するとともに、エラー回数を保持するようにする。そして、セーフティデータ確認部１１２がリトライ回数分連続してエラーが生じたことを検出した場合に異常とみなし、制御演算部１１１に安全停止処理へ移行させることにより、上記のように許容値を超えると直ちに安全停止処理へ移行するよりも、システムのアベイラビリティが保たれる。
【００３８】
次に、サービス不能攻撃が収束した場合のセーフティデータ置換部１０２の動作について図６を用いて説明する。図６は、サービス不能攻撃が収束した場合のセーフティデータ置換部１０２の動作フローを示すフローチャートである。
【００３９】
サービス不能攻撃中は先述のとおり、セーフティデータ置換部１０２が健全性確認データを置換したフレームを生成し、セーフティ処理部１０３へ伝送する。その後サービス不能攻撃が収束した際に、そのときのセーフティデータ置換部１０２がもつ健全性確認データと、新しく受信したフレームの健全性確認データの値に乖離が生じた場合、セーフティ処理部１０３により受信フレームが異常と判断されることが懸念される。
【００４０】
こうした事態を避けるために、セーフティデータ置換部１０２の処理実施判定部１０７は、受信禁止中信号がＯＮからＯＦＦに変化したのを検出すると（Ｓ４０１）、前回、セーフティデータ置換部１０２からセーフティ処理部１０３へ送信したフレームのセーフティヘッダ（現セーフティヘッダ）をデータ置換部１０８から取得し（Ｓ４０２）、新規受信したフレームのセーフティヘッダ（新規受信セーフティヘッダ）を抽出する（Ｓ４０３）。そして、処理実施判定部１０７は、新規受信セーフティヘッダのデータ（例えば、シーケンス番号）と現セーフティヘッダのデータとの差分を算出する（Ｓ４０４）。その後、処理実施判定部１０７は、この差分の大小関係により、処理を分岐させる。
【００４１】
現セーフティヘッダの値（現出力値）より新規受信セーフティヘッダの値（新規受信値）の方が大きい場合で（Ｓ４０５でＹｅｓ）上記差分が許容値以下のとき（Ｓ４０６でＹｅｓ）、処理実施判定部１０７は、新規受信値を採用することとし新規受信フレームをそのままセーフティ処理部１０３に転送し（Ｓ４０７）、その後セーフティデータ置換部１０２は、図３を用いて前述した通常処理へと遷移する（Ｓ４１１）。
【００４２】
一方、上記差分が許容値を超えていた場合は（Ｓ４０６でＮｏ）、処理実施判定部１０７が、新規受信値と現出力値との差分を許容値で除算して算出される値を出力回数Ｉとして計算する（ただし、小数点以下切り捨て）（Ｓ４０８）。そして、その出力回数Ｉ分、データ置換部１０８でセーフティヘッダの現出力値に許容値を順次加算することによりインクリメントしたセーフティヘッダを生成し、生成したセーフティヘッダを元のセーフティヘッダと置換するとともに、符号計算・付与部１０９が誤り検出符号を再計算し付与して、これらの置換処理（更新）を施したフレーム（置換後フレーム）を順にセーフティ処理部１０３へ送信し（Ｓ４０９）、その後セーフティデータ置換部１０２は、図３を用いて前述した通常処理へと遷移する（Ｓ４１２）。
【００４３】
他方、セーフティヘッダの現出力値よりも新規受信値の方が小さいまたは同じ場合は（Ｓ４０５でＮｏ）、セーフティヘッダがとりうる最大値からセーフティヘッダの現出力値と新規受信値との差分を引いた値を許容値で除算して算出される値を出力回数Ｉとして計算する（ただし、小数点以下切り捨て）（Ｓ４１０）。そして、その出力回数Ｉ分、データ置換部１０８でセーフティヘッダの現出力値に許容値を順次加算することによりインクリメントしたセーフティヘッダを生成し、生成したセーフティヘッダを元のセーフティヘッダと置換するとともに、符号計算・付与部１０９が誤り検出符号を再計算し付与して、これらの置換処理を施したフレーム（置換後フレーム）を順にセーフティ処理部へ送信し（Ｓ４１１）、その後セーフティデータ置換部１０２は、図３を用いて前述した通常処理へと遷移する（Ｓ４１１）。
【００４４】
現出力値より新規受信値の方が大きい場合で、新規受信値と現出力値の差分が許容値以下のケースの具体例として、例えば、許容値が２５６、シーケンス番号の現出力値が１００、新規受信フレームのシーケンス番号が１０１の場合、上記差分は許容範囲内であるので、処理実施判定部１０７は、そのまま新規受信フレームを出力する。
【００４５】
一方、現出力値より新規受信値の方が大きい場合で、新規受信値と現出力値の差分が許容値を超えるケースの具体例として、例えば、許容値が２５６、データ置換部１０８が現在出力しているシーケンス番号が１００、新規受信フレームのシーケンス番号が３０００の場合、上記差分は許容範囲外となる。このときの出力回数Ｉは、
Ｉ＝（３０００−１００）／２５６＝１１．３＝＞１１
となり、セーフティデータ置換部１０２は、内部で許容値２５６分を順次インクリメントしたセーフティヘッダをもつフレームを１１回、順にセキュリティ処理部１０１へ送信することとなる。つまり、本処理が完了した際のシーケンス番号は、
１００＋１１×２５６＝２９１６
となる。これにより、シーケンス番号３０００の次回のフレームを受信しても、上記差分は、
３０００−２９１６＝８４≦２５６
となり、後段のセーフティ処理部はエラーを検出しない。本処理はシーケンス番号だけでなく、タイムスタンプなど他の健全性確認データについても同様の処理を行う。なお、新規受信値が現出力値以下となる場合も、同様の結果となる。
【００４６】
上述したセキュリティ処理部１０１、セーフティデータ置換部１０２、およびセーフティ処理部１０３間のデータの流れおよび動作を図７に示す。
【００４７】
同図に示すように、セーフティデータ置換部１０２は、通常時には、健全性確認データに対する置換処理を行わずにセーフティ処理部１０３へ受信したフレーム（ｄａｔａ１）をそのまま送信する。その後、Ｄｏｓ攻撃等のサービス不能攻撃により、セキュリティ処理部１０１から受信禁止中信号ＯＮを受信すると、セーフティデータ置換部１０２は健全性確認データに対する置換処理を実施し、置換後のフレーム（ｄａｔａ２−１、ｄａｔａ２−２）をセーフティ処理部１０３へ送信する。その後、セーフティデータ置換部１０２は、受信禁止中信号のＯＦＦを検出すると、検出直後のセーフティヘッダの現出力値に対して、上述のようにセーフティ処理部１０３への出力回数Ｉ分内部で置換処理を施しフレーム（ｄａｔａ２−ｎ）をセーフティ処理部１０３へ順に送信した後、図３を用いて前述した通常処理へと遷移し、新規受信したフレーム（ｄａｔａ  ｋ）をそのままセーフティ処理部１０３へ転送する。
【００４８】
以上説明したように、本実施形態の制御装置１００では、セキュリティ処理部１０１によるサービス不能攻撃からの保護機能が働いてもそれによるセーフティ処理部１０３の安全停止処理を避ける処理を行う装置をセーフティ処理部１０３の前段に備えることにより、安全性を担保するため変更を加えることが好ましくないセーフティ処理部１０３側に変更を加えずに、セキュリティとセーフティの両機能を実現し、セーフティ機能と、サービス不能攻撃に対処するセキュリティ機能とを共存させた場合のシステムのアベイラビリティの低減を抑制することが可能となる。
【００４９】
（第２の実施形態）
次に、第１の実施形態よりもセキュアなシステム構成とした第２の実施形態にかかる制御装置について図８を用いて説明する。図８は、第２の実施形態にかかる制御装置の構成を示すブロック図である。なお、構成については前述の第１の実施形態と重複する部分については同一の符号を用い説明は省略する。
【００５０】
本実施形態の制御装置１００は、図８に示すように、先述した図１に示した第１の実施形態の基本構成にセキュリティ認証部２００を追加した構成となっている。このセキュリティ認証部２００は、暗号化／復号部２０１、認証機能部２０２、および認証データベース（認証ＤＢ）２０３を備えている。本実施形態では、送受信するフレームのセーフティデータ部に、正常に復号できたか否かの判定を行うための特定のデータと、認証用のデータ（ＩＤおよびパスワード）からなるセキュリティヘッダが含められる（図９Ａ）。
【００５１】
暗号化／復号部２０１は、フレームの送受信の際のデータ暗号化／複合を行う機能部であり、暗号化／復号の方式は共通鍵や、秘密鍵方式などシステム共通の暗号化方式や通信セッション単位で固有の暗号化方式などを用いて行う。また、暗号化／復号部２０１は、受信したフレーム内の復号対象のデータ（例えば、セーフティデータ）を所定の鍵を用いて復号し、この復号対象のデータ内の特定データが正常に読み取れれば復号成功として復号したデータを含むフレームを後段に転送し、上記特定データが正常に読み取れない場合は復号失敗として受信フレームを破棄する。
【００５２】
また、暗号化／復号部２０１は、受信したフレームの暗号化されたセーフティデータが正常に復号できた場合でも認証機能部２０２により、図９Ｂに示すような送信元アドレス（図９ＢではＩＰアドレス）、ＩＤおよびパスワードを含む認証用データを記憶する認証ＤＢ２０３を参照し、そのデータの送信元が正当なＩＤとパスワードを送信しているか否かを判定する認証を行う。そして、認証機能部２０２は、認証が成功した場合は受信したフレームを後段に転送し、認証が失敗した場合は受信したフレームを破棄する。本構成により、正しく暗号化されていないデータや認証が失敗した受信フレームはセーフティ処理部１０３の前段で破棄されるため、よりセキュアな制御が可能になる。なお、図９Ｂに示すように認証ＤＢ２０３に認証済み判定項目を設け、認証に成功した場合は、認証済み判定として「済」を設定し、「済」の場合は、同一の送信元から受信するフレームの認証を省略することもできる。
【００５３】
（第３の実施形態）
次に、第３の実施形態にかかる制御装置について、図面を参照して説明する。なお、構成については第１の実施形態で述べた図１を元に説明をする。なお、第１の実施形態と重複する部分についての詳細な説明は省略する。
【００５４】
本実施形態におけるセキュリティ処理部１０１は、先述した第１の実施形態のものと同様であり、図２に示した監視処理フローに基づいてサービス不能攻撃を検出し、セーフティデータ置換部１０２に受信禁止信号を伝達する。
【００５５】
本実施形態におけるセーフティデータ置換部１０２は、先述した第１の実施形態のものがサービス不能攻撃を検出している間およびその直後のみ健全性確認データを置換する処理を行っていたのに対し、本実施形態では、セーフティデータ置換部１０２は一度サービス不能攻撃を受けた後は、サービス不能攻撃の検出有無に関わらず、健全性確認データについては継続して置換処理を施す。以下に、セーフティデータ置換部１０２の処理について図１０を用いて説明する。図１０は、セーフティデータ置換部１０２の動作フローを示すフローチャートである。
【００５６】
本実施形態では、受信禁止中信号がＯＮの場合（Ｓ５０１でＹｅｓ）、つまりサービス不能攻撃を受けているとき、第１の実施形態と同様に、処理実施判定部１０７が、前回、セーフティデータ置換部１０２からセーフティ処理部１０３に送信したフレーム（前回出力フレーム）を採用し（Ｓ５０２）、データ置換部１０８がそのセーフティヘッダを置換し（Ｓ５０３）、さらに符号計算・付与部１０９が再計算した誤り検出符号を付与して（Ｓ５０４）、これらの置換処理を施した置換後のフレームをセーフティ処理部１０３に送信する（Ｓ５０５）。また、受信禁止中信号が一度ＯＮとなった場合、処理実施判定部１０７は、受信禁止中信号がＯＮとなったことを記憶する。
【００５７】
一方、受信禁止中信号がＯＦＦの場合（Ｓ５０１でＮｏ）でセキュリティ処理部１０１から受信したフレームがあると（Ｓ５０６でＹｅｓ）、処理実施判定部１０７は、過去に受信禁止中信号がＯＮになったか否かを判定する（Ｓ５０７）。もし過去に一度もサービス不能攻撃を受けていない場合（Ｓ５０７でＮｏ）、処理実施判定部１０７は、受信したフレームをそのままセーフティ処理部１０３へ転送する（Ｓ５１３）。セキュリティ処理部１０１から受信したフレームが無い場合は（Ｓ５０６でＮｏ）、Ｓ５０１に戻る。
【００５８】
また、過去に一度でもサービス不能攻撃を受けた場合は（Ｓ５０７でＹｅｓ）、さらに受信フレームがあるか確認し、あれば（Ｓ５０８でＹｅｓ）、処理実施判定部１０７は、図３に示すような受信フレームに含まれている誤り検出符号（ＣＲＣ）を用いてデータの健全性を確認する（Ｓ５０９）。この確認で誤りが検出されれば（Ｓ５０９でＮｏ）、処理実施判定部１０７は受信フレームを破棄する（Ｓ５１３）。そうでなければ（Ｓ５０９でＹｅｓ）、データ置換部１０８がセーフティヘッダの置換を行い（Ｓ５１０）、符号計算・付与部１０９が誤り検出符号を再計算し付与し（Ｓ５１１）、置換後のフレームをセーフティ処理部１０３へ送信する（Ｓ５１２）。なお、Ｓ５１２およびＳ５１３の後、ならびにＳ５０８で受信フレームなしと判断される場合（Ｎｏ判定）、Ｓ５０８に戻る。
【００５９】
データ置換部１０８がＳ５０９でセーフティヘッダ（例えば、シーケンス番号）を更新する際のインクリメント値は、サービス不能攻撃から復帰した際のセーフティデータ置換部１０２からセキュリティ処理部１０１へ送信したフレームのセーフティヘッダの前回値と新たに受信したフレームのセーフティヘッダの値との差分を用いる。
【００６０】
例えば、サービス不能攻撃中にシーケンス番号が２００までインクリメントされ、次に受信したシーケンス番号が１９０だった場合、上記差分値は、
２００−１９０＝１０、
となる。つまり次回出力する新規受信フレームからはシーケンス番号を１０＋１＝１１だけインクリメントすることにより、置換後フレーム内のシーケンス番号は
１９０＋１１＝２０１＞２００（前回値）、
となり、置換後のフレームを受けるセーフティ処理部１０３は正常に動作を継続することが可能となる。逆に、新規に受信したフレーム内のシーケンス番号が２３０と、前回値の２００よりも進んでいた場合、上記差分値は、
２００−２３０＝−３０、
となる。つまり、次回出力する新規受信フレームからはシーケンス番号を−３０＋１＝−２９だけインクリメント（２９デクリメント）することにより、置換後フレーム内のシーケンス番号は、
２３０−２９＝２０１＞２００（前回値）、
となって、この場合もセーフティ処理部１０３は正常に動作を継続することが可能になる。本処理はシーケンス番号に対してだけでなく、タイムスタンプなど他の健全性確認データに対してもでも同様の処理を行う。
【００６１】
後段のセーフティ処理部１０３の動作は、第１の実施形態において先述したとおりである。
【００６２】
なお、本実施形態においてもシステムのアベイラビリティを、より考慮する構成として、許容値としてリトライ回数を設けるようにしてもよい。この場合、セーフティデータ確認部１１２が上記のようにエラーと判定した場合にそのフレームのデータを採用せず、前回セーフティ処理部１０３へ送信したフレームのデータを採用するとともに、エラー回数を保持するようにする。そして、そのエラー回数がリトライ回数分連続してエラーが生じた場合にセーフティデータ確認部１１２が異常とみなし、制御演算部１１１に安全停止処理へ移行させることにより、先述のように許容値を超えると直ちに安全停止処理へ移行するよりも、システムのアベイラビリティが保たれる。
【００６３】
図１１に、本実施形態にかかる制御装置１００の、セキュリティ処理部１０１、セーフティデータ置換部１０２、およびセーフティ処理部１０３間のデータの流れおよび動作を示す。
【００６４】
図１１に示すように、通常時は、受信したフレーム（ｄａｔａ１）をそのままセーフティ処理部１０３まで転送し、サービス不能攻撃中（受信禁止中信号ＯＮ）は、セーフティデータ置換部１０２は、前回、セーフティ処理部１０３へ送信したフレーム（ｄａｔａ２）を採用し、その健全性確認データを置換したフレーム（ｄａｔａ２−１、ｄａｔａ２−２）を生成し、セーフティ処理部１０３へ送信する。また、セーフティデータ置換部１０２は、サービス不能攻撃が収まった後も、新規受信したフレーム内の健全性確認データを置換し続け、置換後のフレーム（ｄａｔａ  ｋ−３、ｄａｔａ  Ｌ−４）を後段のセーフティ処理部１０３へ転送する。
【００６５】
本実施形態によれば、第１の実施形態の効果に加え、サービス不能攻撃の収束を検出した後も継続して健全性確認データの置換処理を行うことにより、第１の実施形態において図６を用いて説明したような、ある出力回数分置換処理を施したフレームをセーフティ処理部１０３へ送信するといった処理が不要となり、セーフティデータ置換部１０２の処理を簡素化した制御装置１００を提供できる。
【００６６】
また、第２の実施形態として前述した図８に示したセキュリティ認証部２００を含む、よりセキュアな構成を採用することも可能である。この構成をとった場合、暗号化機能および認証機能により正当なフレームのみがセーフティデータ置換部１０２へ伝送されることになり、セキュリティ機能がより向上する。
【００６７】
（第４の実施形態）
次に、第４の実施形態にかかる制御装置ついて、図１２および図１３を用いて説明する。図１２および図１３は、本実施形態にかかる制御装置１００およびユーザ端末の構成を示すブロック図である。なお、構成については前述の諸実施形態と重複する部分については同一の符号を用い説明は省略する。
【００６８】
本実施形態では、制御装置１００の外部に許容時間入力部３０１とアラーム表示部３０２を具備したユーザ端末（ユーザ側装置）３００を設け、許容時間入力部３０１とアラーム表示部３０２をそれぞれセーフティデータ置換部１０２の処理実施判定部１０７に接続する。なお、制御装置１００とユーザ端末３００との接続手段は、図１２に示すような専用の接続線に限らず、図１３に示すような上位装置等に接続するための制御用通信路（ネットワーク）を用いた構成としてもよい。また、ユーザ端末３００は、キーボードやマウス等の入力装置、液晶モニタ等の表示装置、および、処理実施判定部１０７に接続するためのインタフェースを備えた、ＰＣなどの汎用的な情報処理装置でもよいし、専用に構成されたハードウェアでもよい。ＰＣなどの汎用的な情報処理装置を用いる場合、当該情報処理装置にインストールされた制御プログラムと当該情報処理装置のハードウェアとが協働することにより、上記許容時間入力部３０１とアラーム表示部３０２の機能を実現する。
【００６９】
次に、本実施形態にかかる制御装置１００と、当該制御装置１００に接続するユーザ端末３００の動作について図１４を用いて説明する。図１４は、第４の実施形態におけるセーフティデータ置換部１０２の動作フローを示すフローチャートである。
【００７０】
以下では、ユーザ端末３００内の許容時間入力部３０１から処理実施判定部１０７へ、サービス不能攻撃に対する許容時間が設定されているものとする。
【００７１】
処理実施判定部１０７は、受信禁止中信号がＯＦＦの場合（Ｓ６０１でＮｏ）、セキュリティ処理部１０１から受信したフレームがあると（Ｓ６１０でＹｅｓ）、この受信したフレームをセーフティ処理部１０３へそのまま転送し（Ｓ６１１）、無い場合は（Ｓ６１０でＮｏ）、処理をＳ６０１に戻す。一方、受信禁止中信号がＯＮの場合（Ｓ６０１でＹｅｓ）、サービス不能攻撃が生じている時間（継続時間）を計測する（Ｓ６０２）。
【００７２】
そして、サービス不能攻撃の継続時間が設定された許容時間（許容値）内であれば（Ｓ６０３でＹｅｓ）、処理実施判定部１０７は、セーフティデータ置換部１０２からセーフティ処理部１０３へ前回送信したフレーム（前回出力フレーム）を採用し、この前回出力フレームをデータ置換部１０８に転送する（Ｓ６０４）。
【００７３】
そして、第１の実施形態で前述したように、データ置換部１０８による前回出力フレームのセーフティヘッダの置換を行い（Ｓ６０５）、符号計算・付与部１０９による誤り検出符号の再計算および付与を行って（Ｓ６０６）、セーフティ処理部１０３へ置換後のフレームを送信する（Ｓ６０７）。
【００７４】
一方、サービス不能攻撃が設定された許容時間を超えた場合（Ｓ６０３でＮｏ）、処理実施判定部１０７は、ユーザ端末３００に警告を通知する（Ｓ６０８）。ユーザ端末３００への警告の通知は、上記の制御装置１００とユーザ端末３００との接続手段（専用の接続線または制御用通信路（ネットワーク））を介して行うが、制御用通信路の場合は、サービス不能攻撃中は半二重通信では警告が通知できなくなるため、通信Ｉ／Ｆ部１０４は全二重通信により警告を通知する機能を備える。
【００７５】
処理実施判定部１０７がユーザ端末３００への警告を通知した後、セーフティデータ置換部１０２は、前回、セーフティ処理部１０３へ送信したフレームの健全性確認データをデータ置換部１０８および符号計算・付与部１０９にて更新することなく、そのフレームをそのままセーフティ処理部１０３へ送信する（Ｓ６０９）。システムのアベイラビリティの観点から、セーフティ処理部１０３のエラー判定がｎ回連続検出で安全停止する仕様になっていた場合、セーフティデータ置換部１０２は、ｎ回連続で前回値をもつ健全性確認データを含むフレームをセーフティ処理部１０３へ送信する。セーフティ処理部１０３は図５に示した動作フローに基づき動作し、セーフティデータ確認部１１２が健全性確認データが更新されていないことを検出すると、制御演算部１１１が安全停止処理へと遷移する。
【００７６】
図１５に、本実施形態にかかる制御装置１００の、セキュリティ処理部１０１、セーフティデータ置換部１０２、およびセーフティ処理部１０３間のデータ（フレーム）の流れおよび動作を示す。
【００７７】
同図に示すように、通常時、および、受信禁止中信号ＯＮでその後の経過時間が許容時間内の場合、図７を用いて前述したデータの流れとなるが、経過時間が許容時間を過ぎると（許容時間ＯＶＥＲ）、その後、経過時間が許容時間を過ぎる直前のフレーム（ｄａｔａ２−２）を連続して（繰り返して）セーフティ処理部１０３へ送信している。その結果、セーフティ処理部１０３で安全停止処理へ遷移しシステムは安全停止することとなる。
【００７８】
本実施形態では、以上のようにして、サービス不能攻撃が発生し、許容時間内まではデータ置換部１０８が前述の健全性確認データの置換を行い、符号計算・付与部１０９が誤り検出符号を再計算し付与したフレームを生成し、セーフティ処理部１０３へ転送するが、許容時間を超えた場合、セーフティデータ置換部１０２は、データ置換部１０８および符号計算・付与部１０９による置換処理を停止し、同一のフレームをセーフティ処理部１０３に転送することにより、システムを安全停止させる。
【００７９】
本実施形態によれば、安全停止処理に遷移する前に上記のようにユーザに対してシステムが安全停止する旨の警告を通知することで、ユーザによる対処の機会を提供することができ、また、ユーザが許容時間を任意に設定可能としたことで、制御対象プラントごとに異なる制御応答許容時間に合わせて、サービス不能攻撃に伴う安全停止処理へ遷移するか否かの判定時間をユーザが調整することが可能となる。
【００８０】
また、本実施形態においても、第２の実施形態として前述した図８に示したセキュリティ認証部２００を含む、よりセキュアな構成を採用することが可能である。この構成をとった場合、暗号化機能および認証機能により正当なフレームのみがセーフティデータ置換部１０２へ伝送されることになり、セキュリティ機能がより向上する。
【００８１】
以上説明したとおり、第１から第４の実施形態によれば、制御装置におけるセキュリティ機能とセーフティ機能の両立を実現し、当該制御装置を含むシステム全体のアベイラビリティの低減を回避することができる。
【００８２】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【００８３】
１００  制御装置
１０１  セキュリティ処理部
１０２  セーフティデータ置換部
１０３  セーフティ処理部
１０４  通信Ｉ／Ｆ部
１０５  通信処理部
１０６  監視部
１０７  処理実施判定部
１０８  データ置換部
１０９  符号計算・付与部
１１０  セーフティデータ生成部
１１１  制御演算部
１１２  セーフティデータ確認部
１１３  Ｉ／Ｏデータ入出力部
２００  セキュリティ認証部
２０１  暗号化／復号部
２０２  認証機能部
２０３  認証ＤＢ
３００  ユーザ端末
３０１  許容時間入力部
３０２  アラーム表示部
【図１】
0006633373.tif 000002
【図２】
0006633373.tif 000003
【図３】
0006633373.tif 000004
【図４】
0006633373.tif 000005
【図５】
0006633373.tif 000006
【図６】
0006633373.tif 000007
【図７】
0006633373.tif 000008
【図８】
0006633373.tif 000009
【図９Ａ】
0006633373.tif 000010
【図９Ｂ】
0006633373.tif 000011
【図１０】
0006633373.tif 000012
【図１１】
0006633373.tif 000013
【図１２】
0006633373.tif 000014
【図１３】
0006633373.tif 000015
【図１４】
0006633373.tif 000016
【図１５】
0006633373.tif 000017