(57)【要約】      （修正有）【課題】通信データの完全性検証に基づき、正当な場合はシステムの構成装置を動作させ、不適当な場合は構成装置を動作させないで構成装置の誤制御を防止する。【解決手段】制御装置は、通信データを生成したアプリケーションやコマンドに関する通信データ情報を取得して完全性検証用のデータを生成し、通信データを他の制御装置及び検知サーバへ送信する。検知サーバは、検証用付加情報の必要がある場合には検証用付加情報を取得し、ある制御装置から受信したデータに対して完全性検証処理を行い、他の制御装置及び制御サーバへ検証結果を送信する。他の制御装置は、通信データの完全性の検証結果を検知サーバから受信するまで通信データに基づく制御業務を行わず、検知サーバが送信した検証結果が正当の場合には通信データに従った制御業務を行い、検証結果が不適当の場合には通信データに従った制御業務を行わずある制御装置にエラーを送信する。【選択図】図１
2014211473.tif 000002
【特許請求の範囲】
【請求項１】
ネットワークを介して接続される、Ｉ／Ｏ装置を制御する複数の制御装置と、該制御装置が制御に用いる制御設定値を生成する制御サーバと、該ネットワーク上に送信される通信データの検証を行う検知サーバとを有する制御システムにおいて、
ある該制御装置は、通信データを生成したアプリケーションの情報やコマンドの情報に関する通信データ情報を取得して完全性検証用のデータを生成して、該通信データを他の制御装置及び該検知サーバへ送信し、
該検知サーバは、検証用付加情報の要否を判定し、必要があると判定された場合には検証用付加情報を取得し、ある制御装置から受信したデータに対して完全性検証処理を行い、他の制御装置及び該制御サーバへ該データの検証結果を送信し、
該他の制御装置は、該通信データに関する完全性の検証結果を、該検知サーバから受信するまで該通信データに基づく制御業務を行わず、該検知サーバが送信した該検証結果が正当の場合には、該通信データに従った制御業務を行い、該検証結果が不適当の場合には、該通信データに従った制御業務を行わず、該ある制御装置にエラーを送信する
ことを特徴とする完全性検証システム。
【請求項２】
複数の前記検知サーバが該ネットワークに接続され、
各該検知サーバが検証処理を行なう通信データの送信元となる該ある制御装置に関する情報を予めテーブルに保持しておき、
通信データを受信した場合には、通信データに含まれる送信元の該ある制御装置に関する情報が該テーブルに登録されているか否かを判定し、該送信元情報に関する情報が該テーブルに登録されていない場合には、パケットを破棄し、該送信元情報に関する情報が該テーブルに登録されている場合には、該通信データの検証処理を行なう
請求項１に記載の完全性検証システム。
【請求項３】
前記検知サーバは、自らが行う該検証処理として、
該通信データが、予め定められた上限値以下であるか否か、
該通信データが、予め定められた下限値以上であるか否か、
該通信データからＣＲＣ（Cyclic Redundancy Check）を生成し、該通信データに付与されたＣＲＣと一致するか否か、
該通信データとメッセージ認証子生成鍵からメッセージ認証子を生成し、該通信データに付与されたメッセージ認証子と一致するか否か、
の何れか１つ以上の項目を検証する請求項１乃至２のいずれかの項に記載の完全性検証システム。
【請求項４】
前記検知サーバは、該通信データが予め定められた上限値以下であるか否かを検証する場合、該検知サーバに予め上限値を格納しておき、検証時には該格納された上限値を用いて検証し、値が上限値以下の場合には該通信データが正当であると判断し、値が上限値より大きい場合には該通信データが不適当であると判断する
請求項３に記載の完全性検証システム。
【請求項５】
前記検知サーバは、該通信データが予め定められた下限値以上であるか否かを検証する場合、該検知サーバに予め下限値を格納しておき、検証時には該格納された下限値を用いて検証し、値が下限値以上の場合には該通信データが正当であると判断し、値が下限値より小さい場合には該通信データが不当であると判断する請求項３又は４に記載の完全性検証システム。
【請求項６】
該通信データに付与されたＣＲＣが正当であるか否かを検証する場合には、該ある制御装置は、該通信データに対するＣＲＣの生成および該通信データへの付与を行ない、検証時には該通信データに対するＣＲＣを生成し、該生成したＣＲＣと該付与されたＣＲＣが一致するか否かを確認する
請求項３乃至５のいずれかの項に記載の完全性検証システム。
【請求項７】
前記検知サーバが該通信データに付与されたメッセージ認証子が正当であるか否かを検証する場合、該ある制御装置は、該通信データ、及び該ある制御装置に予め格納されたＭＡＣ生成鍵を用いて該通信データに対するＭＡＣの生成および該通信データへの付与を行ない、検証時には該通信データ及び該検知サーバに予め格納されたＭＡＣ検証鍵を用いて該通信データに対するＭＡＣを生成し、該生成したＭＡＣと該付与されたＭＡＣが一致するか否かを確認する
請求項１乃至６のいずれかの項に記載の完全性検証システム。
【請求項８】
前記検知サーバが該通信データに付与された署名が正当であるか否かを検証する場合、該ある制御装置は、該通信データ、及びある該制御装置に予め格納された署名生成鍵を用いて該通信データに対する署名の生成および該通信データへの付与を行ない、検証時には該通信データ及び該検知サーバに予め格納された署名検証鍵を用いて該付与された署名の正当性を検証する
請求項１乃至７のいずれかの項に記載の完全性検証システム。
【請求項９】
該ある制御装置のエラー回数を保管するエラー回数保管部と回復の要否を判定する回復要否判定部と、該ある制御装置の回復手順を保管する回復手順保管部と、回復の要否を判定するために用いる回復閾値を有する回復サーバを更に有し、
該検知サーバは、検証結果を回復サーバへも送信し、
該検知サーバが送信した該検証結果が不適当である場合に、該エラー回数保管部に格納された該ある制御装置のエラー回数を１増加させ、
該エラー回数が該回復閾値より大きい場合に該ある制御装置のバックアップ装置に切り替えるコマンドを該回復手順保管部から取得して該ある制御装置に送信し、
該他の制御装置は、自身が行った該検証結果が正当の場合には、該データに従った制御業務を行い、該検証結果が不適当の場合には、該データに従った制御業務を行わず、該ある制御装置にエラーを送信する
ことを特徴とする請求項１乃至８のいずれかの項に記載の完全性検証システム。
【請求項１０】
ネットワークを介して接続される、Ｉ／Ｏ装置を制御する複数の制御装置と、該制御装置が制御に用いる制御設定値を生成する制御サーバと、該ネットワーク上に送信される通信データの検証を行う検知サーバとを有する制御システムにおいて、
該複数の制御装置は予め決められた第１の内容の検証を行い、該制御サーバは予め決められた第２の内容の検証を行い、該検知サーバは予め決められた第３の内容の検証を行うように、該複数の制御装置、該制御サーバ及び該検知サーバが行う検証の内容を予め決めておき、
該ある制御装置は、通信データを生成したアプリケーションの情報やコマンドの情報に関する通信データ情報を取得して完全性検証用のデータを生成して、該通信データを、該制御サーバと他の制御装置と該検知サーバへ送信し、
該制御サーバは、検証用付加情報の要否を判定し、必要があると判定された場合には、検証用付加情報を取得し、受信した該通信データに対して該第２の内容の検証を行って、該データの検証結果を該ある制御装置及び他の制御装置及び該検知サーバへ送信し、
該検知サーバは、検証用付加情報の要否を判定し、必要があると判定された場合には、検証用付加情報を取得し、ある制御装置から受信したデータに対して該第３の内容の検証を行って、該データの検証結果を該ある制御装置及び他の制御装置及び該制御サーバへ送信し、
該他の制御装置は、検証用付加情報の要否を判定し、必要があると判定された場合には、検証用付加情報を取得し、受信した該通信データに対して該第１の内容の検証を行い
該制御装置は、該検知サーバが行う該通信データに関する前記第３の内容の検証結果を受信するまで該通信データに基づく制御業務を行わず、該検知サーバが送信した該検証結果が正当の場合には、該通信データに従った制御業務を行い、該検証結果が不適当の場合には、該通信データに従った制御業務を行わず、該ある制御装置にエラーを送信する
ことを特徴とする完全性検証システム。
【請求項１１】
該複数の制御装置は前記第１の内容の検証として、該通信データからＣＲＣ（Cyclic Redundancy Check）を生成し、該通信データに付与されたＣＲＣと一致するか否かの検証を行い、
該制御サーバは前記第２の内容の検証として、該通信データが予め定められた上限値以下であるか否か、該通信データが予め定められた下限値以上であるか否か、の検証を行い、
該検知サーバは前記第３の内容の検証として、メッセージ認証子生成鍵からメッセージ認証子を生成し、該通信データに付与されたメッセージ認証子と一致するか否か、の検証を行う
請求項１０に記載の完全性検証システム。
【請求項１２】
ネットワークを介して接続される、Ｉ／Ｏ装置を制御する複数の制御装置と、該制御装置が制御に用いる制御設定値を生成する制御サーバと、該ネットワーク上に送信される通信データの検証を行う検知サーバとを有する制御システムにおける安全性の検証方法であって、
ある該制御装置は、通信データを生成したアプリケーションの情報やコマンドの情報に関する通信データ情報を取得して完全性検証用のデータを生成して、該通信データを他の制御装置及び該検知サーバへ送信し、
該検知サーバは、検証用付加情報の要否を判定し、必要があると判定された場合には検証用付加情報を取得し、ある制御装置から受信したデータに対して完全性検証処理を行い、他の制御装置及び該制御サーバへ該データの検証結果を送信し、
該他の制御装置は、該通信データに関する完全性の検証結果を、該検知サーバから受信するまで該通信データに基づく制御業務を行わず、該検知サーバが送信した該検証結果が正当の場合には、該通信データに従った制御業務を行い、該検証結果が不適当の場合には、該通信データに従った制御業務を行わず、該ある制御装置にエラーを送信する
ことを特徴とする完全性検証方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、完全性検証システム及び方法に係り、特に制御システムにおいてネットワークを介して接続される装置間で転送される通信データの完全性の検証に関する。
【背景技術】
【０００２】
電力、鉄道、水道、ガスといった社会インフラに適用される制御システムでは、センサの情報を基にバルブやアクチュエータのような制御機器を動作させ、予め設定されている圧力や温度を保つことが要求される。この動作を実現するためには、センサからの情報を定期的に取得して、状態を確認し、必要に応じた制御を行う。制御システムでは周期的にこのような処理を行うことが通例であり、システム内の各装置で実行される処理は１周期の中で完結することが要求される。
【０００３】
また、常に１周期内で完結するために、各処理の処理時間が状況によって変化せずに一定であることも求められる。このような条件を満たすように構築される現状の制御システムは、電力、鉄道、水道といった適用先によって周期や１周期内の空き時間が大きく異なっており、新たな処理を追加するためには、適用先毎に空き時間を見積もり、実装可能な処理内容を検討することが重要である。
【０００４】
一方、制御システムはこれまで専用ＯＳや専用プロトコルを利用しており、インターネット等の外部ネットワークからアクセスできない領域に孤立した状態で設置されているため、いわゆるコンピュータウィルスやＤｏＳ攻撃といったサイバー攻撃からは無縁であると考えられてきた。しかしながら、コスト削減のために汎用ＯＳや汎用プロトコルを利用する例が増加している。さらに、最近では、制御システムをターゲットとしたコンピュータウィルスが発見されており、制御システムにおいても情報システムと同様にセキュリティ対策が必要となってきている。
【０００５】
制御システムにおいて最も重要と考えられている完全性を保証するために、今後は制御システム内の装置に通信データの完全性保証技術を適用することが求められている。ここで、通信データの完全性保証とは、通信データを生成するソフトウェアが改ざんされていないこと、通信路上で通信データが改ざんされていないこと、等がある。
【０００６】
このようなセキュリティ対策の一つとしてメッセージ認証子 (ＭＡＣ：Message Authentication Code)やデジタル署名などの改ざん検知をはじめとするデータの完全性保証技術が知られている。しかしながら、ＣＰＵやメモリといったリソースの限られた装置では強固なデータの完全性保証技術を導入することは困難であることが予想される。
【０００７】
情報システムにおけるデータの検証に関して、例えば特許文献１には、処理能力の乏しい携帯端末に代わり、代理検証サーバが、送られてきたデータに付されている署名を検証する代理検証システムが開示されている。
【先行技術文献】
【特許文献】
【０００８】
【特許文献１】特開２００７−２７４７２２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００９】
メッセージ認証子やデジタル署名などの完全性保証技術では、暗号技術を利用することにより、データが改ざんされているか否かを確認することが可能となる。ところが、データ送信元の装置がサイバー攻撃を受け、データ送受信用のプログラムが改ざんされて第三者によって装置が乗っ取られると、送信元の装置から誤ったデータが送信される可能性がある。メッセージ認証子やデジタル署名が付与された、誤ったデータを受信側装置が受け取った場合、受信側装置は、受信したデータに対し、メッセージ認証子やデジタル署名の検証を行なうため、誤ったデータを正しいデータと認識してしまう問題がある。このような問題が起こると、制御システムは想定外の動作を行う可能性があり、重大な事故につながる恐れがある。
なお上記特許文献１には、多数の制御装置を有する制御システムにおいて代理検証サーバが検証を行う場合の課題及び解決手段について示唆がない。
【００１０】
本発明の目的は、多数の制御装置を有する制御システムにおいて通信データの完全性検証に基づき、正当な場合には制御装置を動作させ、不適当な場合には制御装置を動作させずに制御装置の誤制御を防止することにある。
【課題を解決するための手段】
【００１１】
本発明に係る完全性検証システムは、好ましくは、ネットワークを介して接続される、Ｉ／Ｏ装置を制御する複数の制御装置と、該制御装置が制御に用いる制御設定値を生成する制御サーバと、該ネットワーク上に送信される通信データの検証を行う検知サーバとを有する制御システムにおいて、
ある該制御装置は、通信データを生成したアプリケーションの情報やコマンドの情報に関する通信データ情報を取得して完全性検証用のデータを生成して、該通信データを他の制御装置及び該検知サーバへ送信し、
該検知サーバは、検証用付加情報の要否を判定し、必要があると判定された場合には検証用付加情報を取得し、ある制御装置から受信したデータに対して完全性検証処理を行い、他の制御装置及び該制御サーバへ該データの検証結果を送信し、
該他の制御装置は、該通信データに関する完全性の検証結果を、該検知サーバから受信するまで該通信データに基づく制御業務を行わず、該検知サーバが送信した該検証結果が正当の場合には、該通信データに従った制御業務を行い、該検証結果が不適当の場合には、該通信データに従った制御業務を行わず、該ある制御装置にエラーを送信することを特徴とする完全性検証システムとして構成される。
【００１２】
また、本発明に係る完全性検証システムは、好ましくは、ネットワークを介して接続される、Ｉ／Ｏ装置を制御する複数の制御装置と、該制御装置が制御に用いる制御設定値を生成する制御サーバと、該ネットワーク上に送信される通信データの検証を行う検知サーバとを有する制御システムにおいて、
該複数の制御装置は予め決められた第１の内容の検証を行い、該制御サーバは予め決められた第２の内容の検証を行い、該検知サーバは予め決められた第３の内容の検証を行うように、該複数の制御装置、該制御サーバ及び該検知サーバが行う検証の内容を予め決めておき、
該ある制御装置は、通信データを生成したアプリケーションの情報やコマンドの情報に関する通信データ情報を取得して完全性検証用のデータを生成して、該通信データを、該制御サーバと他の制御装置と該検知サーバへ送信し、
該制御サーバは、検証用付加情報の要否を判定し、必要があると判定された場合には、検証用付加情報を取得し、受信した該通信データに対して該第２の内容の検証を行って、該データの検証結果を該ある制御装置及び他の制御装置及び該検知サーバへ送信し、
該検知サーバは、検証用付加情報の要否を判定し、必要があると判定された場合には、検証用付加情報を取得し、ある制御装置から受信したデータに対して該第３の内容の検証を行って、該データの検証結果を該ある制御装置及び他の制御装置及び該制御サーバへ送信し、
該他の制御装置は、検証用付加情報の要否を判定し、必要があると判定された場合には、検証用付加情報を取得し、受信した該通信データに対して該第１の内容の検証を行い
該制御装置は、該検知サーバが行う該通信データに関する前記第３の内容の検証結果を受信するまで該通信データに基づく制御業務を行わず、該検知サーバが送信した該検証結果が正当の場合には、該通信データに従った制御業務を行い、該検証結果が不適当の場合には、該通信データに従った制御業務を行わず、該ある制御装置にエラーを送信することを特徴とする完全性検証システムとして構成される。
【００１３】
本発明に係る完全性検証方法は、好ましくは、上記安全性検証システムにおける安全性検証方法として構成される。
【発明の効果】
【００１４】
本発明によれば、制御システムにおいて通信データの完全性検証に基づいて、正当と判断した場合はバルブやアクチュエータのようなＩ／Ｏ装置を動作させ、不適当と判断した場合は、送信元の装置へエラー通知して、Ｉ／Ｏ装置を動作させないことにより、制御装置の誤制御を防止することができる。
【図面の簡単な説明】
【００１５】
【図１】一実施例（実施例１）による完全性検証システムが適用される制御システムの構成を示す図である。
【図２】制御サーバ１０のハードウェア構成を例示する図である。
【図３】制御装置２０のハードウェア構成を例示する図である。
【図４】通信データの完全性検証の処理動作を示すフローチャートである。
【図５】実施例２による完全性検証システムが適用される制御システムの構成を示す図である。
【図６Ａ】実施例２における通信データの完全性検証の処理動作を示すフローチャートである。
【図６Ｂ】実施例２における通信データの完全性検証の処理動作を示すフローチャートである。
【図７】一実施例による制御システムを構成する装置が担う検証内容を示す概念図である。
【発明を実施するための形態】
【００１６】
以下、図面を参照して、本発明の好ましい実施例について説明する。
【実施例１】
【００１７】
図１は、完全性検証システムが適用される制御システムの構成を示す。
この完全性検証システムは、図１に例示するように、制御サーバ１０と、複数の制御装置２０１〜２０ｎ（総じて２０と示す）と、複数のＩ／Ｏ装置３０１〜３０ｎ（総じて３０と示す）と、検知サーバ５０が、ネットワーク４０を介して接続して構成される。
【００１８】
制御サーバ１０は、制御装置２０で使用する制御設定値を生成する制御設定値生成部１０１と、通信データの宛先を確認する宛先判定部１０２と、後述する検知サーバ５０から送信される検証結果を判定する検証結果判定部１０３と、ネットワーク４０と通信を行う通信部１０５を有する。
【００１９】
制御装置２０は、制御サーバ１０から取得した制御設定値を基にＩ／Ｏ装置３０の制御を行う制御業務処理部２０１１〜２０１ｎ（総じて２０１と示す）と、通信データの宛先を確認する宛先判定部２０２１〜２０２ｎ（総じて２０２と示す）と、検知サーバ５０から送信される検証結果を判定する検証結果判定部２０３１〜２０３ｎ（総じて２０３と示す）と、ネットワーク４０と通信を行う通信部２０５１〜２０５ｎと、制御装置が制御を行うＩ／Ｏ装置とのデータ入出力を行う入出力部２０８１〜２０８ｎを有し、アクチュエータやセンサ等のＩ／Ｏ装置３０を制御する。
【００２０】
Ｉ／Ｏ装置３０は、バルブや弁のような機器の動作を制御するアクチュエータ３０１１〜３０１ｎや、圧力や温度や回転数などの状態を検知するセンサ３０２１〜３０２ｎを含む。
【００２１】
検知サーバ５０は、制御サーバ１０や制御装置２０から送信される通信データの完全性検証処理の結果を生成する検証結果生成部５０１と、通信データの宛先を確認する宛先判定部５０２と、制御サーバ１０や制御装置２０から送信される通信データに対する検証処理を行なう検証処理部５０３と、ネットワーク４０と通信を行う通信部５０５と、検証処理を実施する際に付加情報が必要か否かを判定する検証用付加情報要否判定部５０６と、検証処理を実施する際に必要となる付加情報を保管する検証用付加情報保管部５０７を有する。
【００２２】
なお、各装置から送信された通信データの検証エラーの回数を保管するエラー回数保管部５０４を含んでもよい。この場合、エラー回数保管部５０４に格納されている上記検証エラーの回数の初期値は０である。また、検知サーバ５０がエラー回数保管部５０４を含む場合、検証処理部５０３は、上述した検証処理の他、系切替えの要否を判定する機能を有するものとする。ここで、系切替えとは、各装置のバックアップへの切替えを指し、制御システムにおいて信頼性を確保するために用いられている。
【００２３】
図２は、制御サーバ１０のハードウェア構成を示す。制御サーバ１０は、通信装置１１と、入出力装置１２と、プログラムや種々のデータを記憶する記憶装置１３と、プログラムを実行するＣＰＵ１４と、プログラムや種々のデータを記憶するメモリ１５と、記憶媒体１７を読み込む読取装置１６が、バスなどの内部通信線１８により接続して構成される。プログラムは予め記憶装置に格納されていても良いし、他の記憶媒体または通信媒体（ネットワークまたはネットワークを伝搬する搬送波）を介して必要に応じて導入されても良い。
なお、検知サーバ５０のハードウェア構成も上記と同様である。
【００２４】
図３は制御装置２０のハードウェア構成を示す。制御装置２０は、通信装置２１と、センサ２３からのデータを読み込み、アクチュエータ２４に対してデータを出力する入出力装置２２と、プログラムや種々のデータを記憶する記憶装置２５と、プログラムを実行するＣＰＵ２６と、プログラムや種々のデータを記憶するメモリ２７が、バスなどの内部通信線２８で接続して構成される。
【００２５】
次に、図５を参照して、本実施例の完全性検証システムにおける処理動作について説明する。以下に述べる処理動作は、制御サーバ１０や検知サーバ５０、及び制御装置２０１〜２０ｎ（以下総じて２０と示す）の記憶装置に格納されたプログラムがメモリにロードされ、ＣＰＵにより実行されることにより、完全性検証システムを構成する装置上に具現化される各処理部により実行される。
【００２６】
まず、制御装置２０１は、他の装置に送信する通信データを生成する（Ｓ５０１）。次に、通信データを生成したアプリケーションの情報やコマンドの情報などの通信データ情報を取得する（Ｓ５０２）。そして、制御サーバ１０、制御装置２０、検知サーバ５０に対して通信データ（Ａ５０１）を送信する。
【００２７】
検知サーバ５０は通信データを受信し、受信したパケットの宛先情報を確認する（Ｓ５０３）。そして宛先情報が自装置宛でないと判断した場合には、パケットを破棄する（Ｓ５０４）。一方、自装置宛であると判断した場合には、検証用付加情報の要否を判定し（Ｓ５０５）、必要な場合には、検証用付加情報保管部５０７から検証用付加情報を取得し、通信データから、検証処理を行う（Ｓ５０６）。次に、検証処理部５０３は、通信データＡ５０１の送信先、受信先の情報、通信データ、および検証結果（正常または異常）などの検証結果データを取得し（Ｓ５０７）、制御サーバ１０、制御装置２０に対して検証結果（Ａ５０２）を送信する。ここで、検証用付加情報とは、例えばＭＡＣやデジタル署名の検証処理で使用するＭＡＣ鍵や署名検証鍵、制御設定値の上限（例えば、４０Ｍｐａ）と下限（例えば、１０Ｍｐａ）、などである。
【００２８】
また、検証処理とは、例えば、ＣＲＣ（Cyclic Redundancy Check）、制御設定値が予め定められた上限より大きくないか否かの判定、制御設定値が予め定められた下限より小さくないか否かの判定、やＭＡＣやデジタル署名の検証処理、などである。さらに、検証処理として、ネットワーク上を流れた制御設定値、制御設定値を受信した日時や制御対象のセンサやアクチュエータが物理的に設置されている場所の情報を格納していく。そして、制御設定値を受信した場合、上述の格納されている制御設定値、日時、場所の情報と上記受信した制御設定値とその日時、場所の情報を比較し、過去の制御設定値、日時、場所の情報と大きく異なる場合には検証エラーを出す、などの検証処理を含めてもよい。検証処理は上述の検証処理の例のうち、制御設定値が上限より大きくないか否かの判定または制御設定値が下限より小さくないか否かの判定を含む一つ以上の処理を実施すればよく、検証項目の個数や検証処理の内容にはよらない。また、検証処理Ｓ５０４がＣＲＣ、ＭＡＣ、デジタル署名の検証を行う場合には、通信データ情報取得Ｓ５０２の際にＣＲＣ、ＭＡＣ、デジタル署名の生成、および生成したデータを通信データに付与する処理を実施する。
【００２９】
制御サーバ１０および制御装置２０は受信したパケットの宛先情報を確認し（Ｓ５０８、Ｓ５０９、Ｓ５１０）、自装置宛でないと判断した場合には、パケットを破棄する（Ｓ５１１、Ｓ５１２、Ｓ５１３）。一方、自装置宛であると判断した場合には、検証結果Ａ５０２に含まれている検証結果が正常であるか、または異常であるか、を判定する（Ｓ５１４、Ｓ５１５、Ｓ５１６）。
【００３０】
なお、パケットの宛先情報の確認（Ｓ５０８、Ｓ５０９、Ｓ５１０）、および自装置宛でないと判断した場合のパケット破棄（Ｓ５１１、Ｓ５１２、Ｓ５１３）は検証結果Ａ５０２を受信する前の任意のタイミングとしてもよい。
【００３１】
制御サーバ１０および制御装置２０２〜２０ｎは検証結果が正常であると判断した場合には、制御データ処理を行う（Ｓ５１９、Ｓ５２０）。即ち、制御装置２０１〜２０ｎは入出力部２０８を介して、アクチュエータやセンサのＩ／Ｏ装置３０を適正に制御する。一方、検証結果が異常であると判断した場合には、制御サーバ１０および制御装置２０２〜２０ｎは通信データＡ５０１および検証結果Ａ５０２を破棄する（Ｓ５１７、Ｓ５１８）。
【００３２】
制御装置２０１は検証結果が正常であると判断した場合には、処理は実施せず、検証結果が異常であると判断した場合には、Ｓ５０１に戻り、通信データ生成処理を再度実施する。
【００３３】
以上、実施例１について説明したが、上記例に限定されずに種々変形して実施し得る。
例えば、図５の処理に加えて、下記の処理を実施してもよい。すなわち、検知サーバ５０は検証処理Ｓ５０４において、検証結果が異常であると判断した場合、エラー回数保管部５０４に保管している各装置のエラー回数のうち、制御装置２０１のエラー回数を１増加する。検証処理部５０３は系切替えの要否を判定する（Ｓ５３２）。系切替えの要否の判定の結果、系切替えが不要と判定された場合には、検知サーバは処理を実施しない。必要と判定された場合には、検証処理部５０３は系切替えのコマンドを取得する（Ｓ５３３）。そして、制御サーバ１０、制御装置２０に対してコマンド（Ａ５０３）を送信する。
【００３４】
コマンドＡ５０３を受信した制御サーバ１０および制御装置２０２〜２０ｎはＳ５３４（Ｓ５０９、Ｓ５１２、Ｓ５１５、Ｓ５１８）、Ｓ５３５（Ｓ５０８、Ｓ５１１、Ｓ５１４、Ｓ５１７）を実施する。コマンドＡ５０３を受信した制御装置２０１は系切替え処理を行なう（Ｓ５３６）。
以上の処理を追加することにより、制御装置２０１から送信される通信データの検証結果が異常である場合に、制御業務を継続できないという点を解消し、制御業務を継続することが可能になる。
【００３５】
さらに他の例について言えば、上記の系切替えの実施要否の判断およびその指令は検知サーバ５０が実施しているが、検知サーバ５０とは異なる回復サーバを追加設置し、上記の系切替えに関する処理Ｓ５３１〜Ｓ５３６を回復サーバに実施させてもよい。
【００３６】
さらに他の例について言えば、上記実施例では、検知サーバ５０が１台の場合で説明しているが、複数台の検知サーバを用いてもよい。ネットワークに接続される複数の検知サーバを用いる場合、各検知サーバが検証処理を行なう通信データの送信元となる制御装置を予め定めておく。この場合、検知サーバは検証対象の送信元となる制御装置に関する情報(例えば、ＩＰアドレス)をテーブルに予め登録しておき、検知サーバが通信データを受信した際に、通信データに含まれる送信元の制御装置に関する情報がテーブルに保持されているか否かを判定し、送信元情報に関する情報がテーブルに登録されていない場合には、パケットを破棄し、送信元情報に関する情報がテーブルに登録されている場合には、通信データの検証処理を実施する。
【００３７】
以上のように、実施例１によれば、完全性の検証処理を検知サーバで代行して実施することにより、制御サーバ及び制御装置は検知サーバから送信された検証結果の判定に基づいて制御業務を実行するため、既存の制御業務に影響を与える可能性が少ない。また、検知サーバがネットワークに送信される全ての通信データの完全性を検証するまでは、制御サーバや制御装置は制御業務を行なわないため、通信データの改ざんの検知やＩ／Ｏ装置への誤出力を防止することが可能となり、システムのセキュリティインシデントに対する耐性を向上させることが可能になる。
【実施例２】
【００３８】
実施例１では、検知サーバがネットワークに送信される全ての通信データの検証処理を行う例であるが、実施例２では、検証内容を予めレベル分けしておき、制御システムを構成する装置がそのレベルに応じて検証を分担する例である。
【００３９】
図７は、実施例２における制御システムを構成する各装置が担う検証内容を示す。ここで、検証内容とは、実施例１で述べたＣＲＣの検証、制御設定値の上限や下限の確認、ＭＡＣの検証、過去の制御設定値との整合性の確認、などである。本例では、各検証の処理に要する処理時間や安全性などに応じて、各検証内容をレベル分けする。図示のように例えば、ＣＲＣの検証をレベル１に、制御設定値の上限や下限の確認をレベル２に、ＭＡＣの検証をレベル３に、過去の制御設定値との整合性の確認をレベル４にそれぞれ割り当てている。そして装置毎の性能に基づいて、制御業務に影響を及ぼさない範囲の検証内容を、各装置に予め割り当てておく。各装置は予め割り当てられた内容に基づき、検証処理を実施する。
【００４０】
例えば図７に示すように、制御装置２０２〜２０ｎはＣＲＣの検証のみを実施し、制御サーバはＣＲＣの検証および制御設定値の上限、下限の確認を行い、その他の検証内容(ＭＡＣの検証や過去の制御設定値との整合性の確認)は行わない。検知サーバは各装置が実施していない検証項目を実施する。例えば、図７では、制御装置２０１〜２０ｎはレベル１であるＣＲＣの検証のみを行い、その他の検証内容は行わない。このため、検知サーバは制御装置２０２〜２０ｎ宛の通信データに対し、レベル２、レベル３、レベル４の検証内容を実施する。また、制御サーバは、他装置から送信され受信したデータに対してレベル１であるＣＲＣの検証、およびレベル２である制御設定値の上限、下限の確認を行い、その他の検証内容は行わないため、検知サーバは制御サーバ宛の通信データに対し、レベル３、レベル４の検証処理を実施する。
【００４１】
なお、レベルの数や検証内容は図７の例によらず、システム毎に任意に決めてよい。例えば、制御サーバがレベル３であるＭＡＣの検証のみを行なうようにした場合、検知サーバは制御サーバ宛の通信データに対し、レベル１、レベル２、レベル４（制御サーバが実施しない全ての検証内容）を実施してもよいし、レベル４のみを行なうようにしてもよいし、どの検証内容も実施しない、としてもよい。
【００４２】
これにより、実施例１と同様に、ネットワーク上を流れる全ての通信データに対して検証処理を実施することが可能である。さらに実施例２によれば、各装置が検証処理を分担して実施するので、実施例１の場合よりも早くセキュリティインシデントを検知することが可能になる。
【００４３】
図５は、実施例２による完全性検証システムが適用される制御システムを示す。
この制御システムは、制御サーバ７０と、制御装置２０１〜２０ｎ（総じて２０と示す）と、Ｉ／Ｏ装置３０１〜３０ｎ（総じて３０と示す）と、検知サーバ８０がネットワーク４０により接続して構成される。実施例１との主な違いは、制御サーバ７０、検知サーバ８０及び制御装置２０に、検証処理機能が追加された点である。
【００４４】
制御サーバ７０は、制御装置２０で使用する制御設定値を生成する制御設定値生成部７０１と、通信データの宛先を確認する宛先判定部７０２と、制御サーバ７０や制御装置２０から送信された通信データに対し、制御サーバ７０の性能に基づいて予め設定された完全性の検証レベルに従って検証を行う検証処理部７０３と、制御サーバ７０の性能に基づいて設定された検証レベルを格納する検証レベル保管部７０４と、ネットワーク４０と通信を行う通信部７０５と、検証処理部７０３が行なう検証処理を実施する際に付加情報が必要か否かを判定する検証用付加情報要否判定部７０６と、検証処理を実施する際に必要となる付加情報を保管する検証用付加情報保管部７０７を有する。
【００４５】
検知サーバ８０は、制御サーバ７０や制御装置２０から送信された通信データの完全性検証処理の結果を生成する検証結果生成部８０１と、通信データの宛先を確認する宛先判定部８０２と、制御サーバ７０や制御装置２０から送信された通信データに対する検証処理を行なう検証処理部８０３と、制御サーバ７０の性能に基づいて設定された検証レベルを格納する検証レベル保管部８０４と、ネットワーク４０と通信を行う通信部８０５と、検証処理を実施する際に付加情報が必要か否かを判定する検証用付加情報要否判定部８０６と、検証処理を実施する際に必要となる付加情報を保管する検証用付加情報保管部８０７と、回復手順保管部８１２に格納されている回復手順を取得する回復手順取得部８０８と、図５の各装置に対し、回復が必要か否かを判定する回復要否判定部８０９と、各装置から送信された通信データの検証エラー回数を保管するエラー回数保管部８１０と、各装置に対し、回復するか否かを判定するために用いる回復用閾値８１１と、各装置に対し、回復の手順を保管する回復手順保管部８１２を有する。ここで、回復用閾値８１１は自然数であり、回復手順保管部８１２に保管されている回復手順とは、制御システムにおいて信頼性を確保するために用いられている各装置のバックアップへの切替えのコマンドである。
【００４６】
制御装置２０は、Ｉ／Ｏ装置３０の制御を行う制御業務処理部２０１と、通信データの宛先を確認する宛先判定部２０２と、予め設定された完全性の検証レベルに従って検証を行う検証処理部２０３と、当該制御装置の性能に基づいて設定された検証レベルを格納する検証レベル保管部２０４と、ネットワーク４０と通信を行う通信部２０５と、検証処理部２０３が行なう検証処理を実施する際に付加情報が必要か否かを判定する検証用付加情報要否判定部２０６と、検証処理を実施する際に必要となる付加情報を保管する検証用付加情報保管部２０７と、制御装置が制御を行うＩ／Ｏ装置とのデータ入出力を行う入出力部２０８を有して構成される。
なお、図５の制御サーバ７０、制御装置２０、Ｉ／Ｏ装置３０、および検知サーバ８０のハードウェア構成は、実施例１と同様である。
【００４７】
次に、図６Ａ及び６Ｂを参照して、図５の完全性検証システムにおける各構成装置の処理動作について説明する。
まず、制御装置２０１は、他の装置に送信する通信データを生成する（Ｓ８０１）。次に、通信データを生成したアプリケーションの情報やコマンドの情報などの通信データ情報を取得する（Ｓ８０２）。次に、制御サーバ７０、制御装置２０２〜２０ｎ、検知サーバ８０に対して通信データ（Ａ８０１）を送信する。
【００４８】
ここで、処理Ｓ８０２は実施例１と同様、後述する検証処理Ｓ８０９がＣＲＣ、ＭＡＣ、デジタル署名の検証を行う場合には、通信データ情報取得Ｓ８０２の際にＣＲＣ、ＭＡＣ、デジタル署名の生成、および生成したデータを通信データに付与する処理を実施する。
【００４９】
制御サーバ７０、制御装置２０２〜２０ｎ、および検知サーバ８０は受信したパケットの宛先情報を確認し（Ｓ８０３）、自装置宛でないと判断した場合には、パケットを破棄する（Ｓ８０４）。以後、本実施例では、通信データＡ８０１の宛先は制御サーバ７０、または制御装置２０２〜２０ｎのうち、何れか一つ以上の装置宛であるとする。自装置宛であると判断した場合には、検証処理部７０３、２０３２〜２０３ｎは検証レベルを取得し（Ｓ８０６）、Ｓ８０６で取得した検証レベルから、検証用付加情報の要否を判定し（Ｓ８０７）、必要な場合には、検証用付加情報保管部７０７、２０７２〜２０７ｎから検証用付加情報を取得する（Ｓ８０８）。そして、通信データ、検証用データＡ８０１、およびＳ８０６で取得した検証レベルから、検証処理を行い（Ｓ８０９）、検証結果を判定する（Ｓ８１０）。この結果、異常であると判断した場合には、パケットを破棄し（Ｓ８１１）、エラーコードを生成し、エラーコードに検知サーバ８０と制御装置２０１の宛先情報を付与し（Ｓ８１２）、エラーコード（Ａ８０２）を自装置以外の制御サーバ７０および制御装置２０、検知サーバ８０に対して送信する。検証結果が正常であると判断した場合には、制御データ処理を行う（Ｓ８１４）。制御サーバ７０、制御装置２０及び検知サーバ８０は、受信したパケットの宛先情報を確認し、自装置宛でないと判断した場合には、パケットを破棄する（Ｓ８０５）。ここでは、制御装置２０１と検知サーバ８０が自装置宛であると判断する。
【００５０】
制御装置２０１が自装置宛であると判断した場合には、検証結果Ａ８０２に含まれている検証結果が正常であるか、または異常であるか、を判定する（Ｓ８１５）。制御装置２０１は検証結果が正常であると判断した場合には、処理は実施せず、検証結果が異常であると判断した場合には、Ｓ８０１に戻り、通信データ生成処理を再度実施する。
【００５１】
制御サーバ７０が自装置宛であると判断した場合には、検証処理に係る処理Ｓ８１３−２（Ｓ８０６、Ｓ８０７、Ｓ８０８、Ｓ８０９、Ｓ８１０、Ｓ８１１、Ｓ８１２）を実施する（Ｓ８１３）。ここで、制御装置２０１〜２０ｎが実施する検証処理に係る処理Ｓ８１３−１と、制御サーバ７０が実施する検証処理に係る処理Ｓ８１３−２は、図７で割り当てられたレベルによって異なる。Ｓ８１３の検証結果が異常であると判断した場合、エラーコード生成Ｓ８１２によって生成されたエラーコードをＡ８０３とする。エラーコードＡ８０３を自装置以外の制御サーバ７０および制御装置２０に対して送信する。制御サーバ７０および制御装置２０は宛先確認に係る処理Ｓ８０５を実施する。ここでは、検知サーバ８０が自装置宛であると判断する。
【００５２】
検知サーバ８０は、エラー回数保管部６０４に保管している各装置のエラー回数のうち、制御装置２０１のエラー回数を１増加する（Ｓ８１６）。回復要否判定部６０３は系切替えの要否を判定する（Ｓ８１７）。系切替えの要否の判定の結果、系切替えが不要と判定された場合には、検知サーバは処理を実施しない。必要と判定された場合には、回復手順取得部８０８は系切替えのコマンドを回復手順保管部８１２から取得する（Ｓ８１８）。そして、制御サーバ７０、制御装置２０に対してコマンド（Ａ８０４）を送信する。
【００５３】
コマンドＡ８０４を受信した制御サーバ７０及び制御装置２０２〜２０ｎはＳ８０５（Ｓ８０３、Ｓ８０４）を実施する。コマンドＡ８０４を受信した制御装置２０１は系切替え処理を行なう（Ｓ８１９）。
以上の処理により、制御装置２０１から送信される通信データの検証結果が異常である場合に、制御業務を継続できないという点を解消し、制御業務を継続することが可能になる。
【００５４】
なお、実施例２は種々変形して実施し得る。
例えば、本発明の趣旨からすれば、実施例２における回復処理機能８０８〜８１２は必ずしも無くてもよい。一方これらの回復処理機能を有する場合、これらの回復処理機能は検知サーバ８０と異なるサーバ（回復サーバ）に持たせてもよい。
【００５５】
また他の例として、実施例２では上述の系切替えの実施要否の判断、およびその指令は検知サーバ８０が実施しているが、検知サーバ８０がもつ機能を、検知サーバ８０とは異なるサーバ（回復サーバ）に持たせることにより、上述の系切替えに関する処理Ｓ８１６〜Ｓ８１９は回復サーバが実施してもよい。
【００５６】
また、実施例１及び２において使用した用語は一例であって、本発明の趣旨を逸脱しない限り、他の用語を用いることができる。例えば、検知サーバは検証サーバと呼んでもよい。また実施例２の図９で検証レベルを各装置に割当てる、としたが、検証レベルと言わずに検証内容と呼んでもよい。
【００５７】
以上のように、実施例２によれば、実施例１と同様に、制御サーバ、制御装置は自身が行なう検証によって正当な通信データと判断された場合にバルブやアクチュエータのようなＩ／Ｏ装置を動作させ、不適当と判断された場合には、送信元装置にエラーを通知し、Ｉ／Ｏ装置を動作させないので、通信データの改ざんの検知やＩ／Ｏ装置への誤出力を防止できる。さらに、制御システムを構成する装置が完全性の検証処理を分担して実施するので、実施例１と比較し、検知するまでの時間を短くすることが可能となり、システムのセキュリティインシデントに対する耐性を向上させることが可能となる。
【符号の説明】
【００５８】
１０：制御サーバ      ２０１〜２０ｎ、２０：制御装置
２０８１〜２０８ｎ、２０８：入出力部    ３０１〜３０ｎ、３０：Ｉ／Ｏ装置
３０１１〜３０１ｎ、３０１：アクチュエータ
３０２１〜３０２ｎ、３０２：センサ
４０：ネットワーク    ５０：検知サーバ
【図１】
2014211473.tif 000003
【図２】
2014211473.tif 000004
【図３】
2014211473.tif 000005
【図４】
2014211473.tif 000006
【図５】
2014211473.tif 000007
【図６Ａ】
2014211473.tif 000008
【図６Ｂ】
2014211473.tif 000009
【図７】
2014211473.tif 000010