JP2014211473A - 完全性検証システム及び方法 - Google Patents

完全性検証システム及び方法 Download PDF

Info

Publication number
JP2014211473A
JP2014211473A JP2013086415A JP2013086415A JP2014211473A JP 2014211473 A JP2014211473 A JP 2014211473A JP 2013086415 A JP2013086415 A JP 2013086415A JP 2013086415 A JP2013086415 A JP 2013086415A JP 2014211473 A JP2014211473 A JP 2014211473A
Authority
JP
Japan
Prior art keywords
communication data
verification
control
control device
detection server
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.)
Pending
Application number
JP2013086415A
Other languages
English (en)
Inventor
恵輔 伯田
Keisuke Hakuta
恵輔 伯田
宏樹 内山
Hiroki Uchiyama
宏樹 内山
博隆 吉田
Hirotaka Yoshida
博隆 吉田
鍛忠司
Tadashi Kaji
忠司 鍛
訓 大久保
Satoshi Okubo
訓 大久保
直也 益子
Naoya Masuko
直也 益子
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.)
Hitachi Ltd
Original Assignee
Hitachi 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 Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP2013086415A priority Critical patent/JP2014211473A/ja
Publication of JP2014211473A publication Critical patent/JP2014211473A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09CCIPHERING OR DECIPHERING APPARATUS FOR CRYPTOGRAPHIC OR OTHER PURPOSES INVOLVING THE NEED FOR SECRECY
    • G09C1/00Apparatus or methods whereby a given sequence of signs, e.g. an intelligible text, is transformed into an unintelligible sequence of signs by transposing the signs or groups of signs or by replacing them by others according to a predetermined system

Abstract

【課題】通信データの完全性検証に基づき、正当な場合はシステムの構成装置を動作させ、不適当な場合は構成装置を動作させないで構成装置の誤制御を防止する。【解決手段】制御装置は、通信データを生成したアプリケーションやコマンドに関する通信データ情報を取得して完全性検証用のデータを生成し、通信データを他の制御装置及び検知サーバへ送信する。検知サーバは、検証用付加情報の必要がある場合には検証用付加情報を取得し、ある制御装置から受信したデータに対して完全性検証処理を行い、他の制御装置及び制御サーバへ検証結果を送信する。他の制御装置は、通信データの完全性の検証結果を検知サーバから受信するまで通信データに基づく制御業務を行わず、検知サーバが送信した検証結果が正当の場合には通信データに従った制御業務を行い、検証結果が不適当の場合には通信データに従った制御業務を行わずある制御装置にエラーを送信する。【選択図】図1

Description

本発明は、完全性検証システム及び方法に係り、特に制御システムにおいてネットワークを介して接続される装置間で転送される通信データの完全性の検証に関する。
電力、鉄道、水道、ガスといった社会インフラに適用される制御システムでは、センサの情報を基にバルブやアクチュエータのような制御機器を動作させ、予め設定されている圧力や温度を保つことが要求される。この動作を実現するためには、センサからの情報を定期的に取得して、状態を確認し、必要に応じた制御を行う。制御システムでは周期的にこのような処理を行うことが通例であり、システム内の各装置で実行される処理は1周期の中で完結することが要求される。
また、常に1周期内で完結するために、各処理の処理時間が状況によって変化せずに一定であることも求められる。このような条件を満たすように構築される現状の制御システムは、電力、鉄道、水道といった適用先によって周期や1周期内の空き時間が大きく異なっており、新たな処理を追加するためには、適用先毎に空き時間を見積もり、実装可能な処理内容を検討することが重要である。
一方、制御システムはこれまで専用OSや専用プロトコルを利用しており、インターネット等の外部ネットワークからアクセスできない領域に孤立した状態で設置されているため、いわゆるコンピュータウィルスやDoS攻撃といったサイバー攻撃からは無縁であると考えられてきた。しかしながら、コスト削減のために汎用OSや汎用プロトコルを利用する例が増加している。さらに、最近では、制御システムをターゲットとしたコンピュータウィルスが発見されており、制御システムにおいても情報システムと同様にセキュリティ対策が必要となってきている。
制御システムにおいて最も重要と考えられている完全性を保証するために、今後は制御システム内の装置に通信データの完全性保証技術を適用することが求められている。ここで、通信データの完全性保証とは、通信データを生成するソフトウェアが改ざんされていないこと、通信路上で通信データが改ざんされていないこと、等がある。
このようなセキュリティ対策の一つとしてメッセージ認証子 (MAC:Message Authentication Code)やデジタル署名などの改ざん検知をはじめとするデータの完全性保証技術が知られている。しかしながら、CPUやメモリといったリソースの限られた装置では強固なデータの完全性保証技術を導入することは困難であることが予想される。
情報システムにおけるデータの検証に関して、例えば特許文献1には、処理能力の乏しい携帯端末に代わり、代理検証サーバが、送られてきたデータに付されている署名を検証する代理検証システムが開示されている。
特開2007−274722号公報
メッセージ認証子やデジタル署名などの完全性保証技術では、暗号技術を利用することにより、データが改ざんされているか否かを確認することが可能となる。ところが、データ送信元の装置がサイバー攻撃を受け、データ送受信用のプログラムが改ざんされて第三者によって装置が乗っ取られると、送信元の装置から誤ったデータが送信される可能性がある。メッセージ認証子やデジタル署名が付与された、誤ったデータを受信側装置が受け取った場合、受信側装置は、受信したデータに対し、メッセージ認証子やデジタル署名の検証を行なうため、誤ったデータを正しいデータと認識してしまう問題がある。このような問題が起こると、制御システムは想定外の動作を行う可能性があり、重大な事故につながる恐れがある。
なお上記特許文献1には、多数の制御装置を有する制御システムにおいて代理検証サーバが検証を行う場合の課題及び解決手段について示唆がない。
本発明の目的は、多数の制御装置を有する制御システムにおいて通信データの完全性検証に基づき、正当な場合には制御装置を動作させ、不適当な場合には制御装置を動作させずに制御装置の誤制御を防止することにある。
本発明に係る完全性検証システムは、好ましくは、ネットワークを介して接続される、I/O装置を制御する複数の制御装置と、該制御装置が制御に用いる制御設定値を生成する制御サーバと、該ネットワーク上に送信される通信データの検証を行う検知サーバとを有する制御システムにおいて、
ある該制御装置は、通信データを生成したアプリケーションの情報やコマンドの情報に関する通信データ情報を取得して完全性検証用のデータを生成して、該通信データを他の制御装置及び該検知サーバへ送信し、
該検知サーバは、検証用付加情報の要否を判定し、必要があると判定された場合には検証用付加情報を取得し、ある制御装置から受信したデータに対して完全性検証処理を行い、他の制御装置及び該制御サーバへ該データの検証結果を送信し、
該他の制御装置は、該通信データに関する完全性の検証結果を、該検知サーバから受信するまで該通信データに基づく制御業務を行わず、該検知サーバが送信した該検証結果が正当の場合には、該通信データに従った制御業務を行い、該検証結果が不適当の場合には、該通信データに従った制御業務を行わず、該ある制御装置にエラーを送信することを特徴とする完全性検証システムとして構成される。
また、本発明に係る完全性検証システムは、好ましくは、ネットワークを介して接続される、I/O装置を制御する複数の制御装置と、該制御装置が制御に用いる制御設定値を生成する制御サーバと、該ネットワーク上に送信される通信データの検証を行う検知サーバとを有する制御システムにおいて、
該複数の制御装置は予め決められた第1の内容の検証を行い、該制御サーバは予め決められた第2の内容の検証を行い、該検知サーバは予め決められた第3の内容の検証を行うように、該複数の制御装置、該制御サーバ及び該検知サーバが行う検証の内容を予め決めておき、
該ある制御装置は、通信データを生成したアプリケーションの情報やコマンドの情報に関する通信データ情報を取得して完全性検証用のデータを生成して、該通信データを、該制御サーバと他の制御装置と該検知サーバへ送信し、
該制御サーバは、検証用付加情報の要否を判定し、必要があると判定された場合には、検証用付加情報を取得し、受信した該通信データに対して該第2の内容の検証を行って、該データの検証結果を該ある制御装置及び他の制御装置及び該検知サーバへ送信し、
該検知サーバは、検証用付加情報の要否を判定し、必要があると判定された場合には、検証用付加情報を取得し、ある制御装置から受信したデータに対して該第3の内容の検証を行って、該データの検証結果を該ある制御装置及び他の制御装置及び該制御サーバへ送信し、
該他の制御装置は、検証用付加情報の要否を判定し、必要があると判定された場合には、検証用付加情報を取得し、受信した該通信データに対して該第1の内容の検証を行い
該制御装置は、該検知サーバが行う該通信データに関する前記第3の内容の検証結果を受信するまで該通信データに基づく制御業務を行わず、該検知サーバが送信した該検証結果が正当の場合には、該通信データに従った制御業務を行い、該検証結果が不適当の場合には、該通信データに従った制御業務を行わず、該ある制御装置にエラーを送信することを特徴とする完全性検証システムとして構成される。
本発明に係る完全性検証方法は、好ましくは、上記安全性検証システムにおける安全性検証方法として構成される。
本発明によれば、制御システムにおいて通信データの完全性検証に基づいて、正当と判断した場合はバルブやアクチュエータのようなI/O装置を動作させ、不適当と判断した場合は、送信元の装置へエラー通知して、I/O装置を動作させないことにより、制御装置の誤制御を防止することができる。
一実施例(実施例1)による完全性検証システムが適用される制御システムの構成を示す図である。 制御サーバ10のハードウェア構成を例示する図である。 制御装置20のハードウェア構成を例示する図である。 通信データの完全性検証の処理動作を示すフローチャートである。 実施例2による完全性検証システムが適用される制御システムの構成を示す図である。 実施例2における通信データの完全性検証の処理動作を示すフローチャートである。 実施例2における通信データの完全性検証の処理動作を示すフローチャートである。 一実施例による制御システムを構成する装置が担う検証内容を示す概念図である。
以下、図面を参照して、本発明の好ましい実施例について説明する。
図1は、完全性検証システムが適用される制御システムの構成を示す。
この完全性検証システムは、図1に例示するように、制御サーバ10と、複数の制御装置20〜20(総じて20と示す)と、複数のI/O装置30〜30(総じて30と示す)と、検知サーバ50が、ネットワーク40を介して接続して構成される。
制御サーバ10は、制御装置20で使用する制御設定値を生成する制御設定値生成部101と、通信データの宛先を確認する宛先判定部102と、後述する検知サーバ50から送信される検証結果を判定する検証結果判定部103と、ネットワーク40と通信を行う通信部105を有する。
制御装置20は、制御サーバ10から取得した制御設定値を基にI/O装置30の制御を行う制御業務処理部201〜201(総じて201と示す)と、通信データの宛先を確認する宛先判定部202〜202(総じて202と示す)と、検知サーバ50から送信される検証結果を判定する検証結果判定部203〜203(総じて203と示す)と、ネットワーク40と通信を行う通信部205〜205と、制御装置が制御を行うI/O装置とのデータ入出力を行う入出力部208〜208を有し、アクチュエータやセンサ等のI/O装置30を制御する。
I/O装置30は、バルブや弁のような機器の動作を制御するアクチュエータ301〜301や、圧力や温度や回転数などの状態を検知するセンサ302〜302を含む。
検知サーバ50は、制御サーバ10や制御装置20から送信される通信データの完全性検証処理の結果を生成する検証結果生成部501と、通信データの宛先を確認する宛先判定部502と、制御サーバ10や制御装置20から送信される通信データに対する検証処理を行なう検証処理部503と、ネットワーク40と通信を行う通信部505と、検証処理を実施する際に付加情報が必要か否かを判定する検証用付加情報要否判定部506と、検証処理を実施する際に必要となる付加情報を保管する検証用付加情報保管部507を有する。
なお、各装置から送信された通信データの検証エラーの回数を保管するエラー回数保管部504を含んでもよい。この場合、エラー回数保管部504に格納されている上記検証エラーの回数の初期値は0である。また、検知サーバ50がエラー回数保管部504を含む場合、検証処理部503は、上述した検証処理の他、系切替えの要否を判定する機能を有するものとする。ここで、系切替えとは、各装置のバックアップへの切替えを指し、制御システムにおいて信頼性を確保するために用いられている。
図2は、制御サーバ10のハードウェア構成を示す。制御サーバ10は、通信装置11と、入出力装置12と、プログラムや種々のデータを記憶する記憶装置13と、プログラムを実行するCPU14と、プログラムや種々のデータを記憶するメモリ15と、記憶媒体17を読み込む読取装置16が、バスなどの内部通信線18により接続して構成される。プログラムは予め記憶装置に格納されていても良いし、他の記憶媒体または通信媒体(ネットワークまたはネットワークを伝搬する搬送波)を介して必要に応じて導入されても良い。
なお、検知サーバ50のハードウェア構成も上記と同様である。
図3は制御装置20のハードウェア構成を示す。制御装置20は、通信装置21と、センサ23からのデータを読み込み、アクチュエータ24に対してデータを出力する入出力装置22と、プログラムや種々のデータを記憶する記憶装置25と、プログラムを実行するCPU26と、プログラムや種々のデータを記憶するメモリ27が、バスなどの内部通信線28で接続して構成される。
次に、図5を参照して、本実施例の完全性検証システムにおける処理動作について説明する。以下に述べる処理動作は、制御サーバ10や検知サーバ50、及び制御装置20〜20(以下総じて20と示す)の記憶装置に格納されたプログラムがメモリにロードされ、CPUにより実行されることにより、完全性検証システムを構成する装置上に具現化される各処理部により実行される。
まず、制御装置20は、他の装置に送信する通信データを生成する(S501)。次に、通信データを生成したアプリケーションの情報やコマンドの情報などの通信データ情報を取得する(S502)。そして、制御サーバ10、制御装置20、検知サーバ50に対して通信データ(A501)を送信する。
検知サーバ50は通信データを受信し、受信したパケットの宛先情報を確認する(S503)。そして宛先情報が自装置宛でないと判断した場合には、パケットを破棄する(S504)。一方、自装置宛であると判断した場合には、検証用付加情報の要否を判定し(S505)、必要な場合には、検証用付加情報保管部507から検証用付加情報を取得し、通信データから、検証処理を行う(S506)。次に、検証処理部503は、通信データA501の送信先、受信先の情報、通信データ、および検証結果(正常または異常)などの検証結果データを取得し(S507)、制御サーバ10、制御装置20に対して検証結果(A502)を送信する。ここで、検証用付加情報とは、例えばMACやデジタル署名の検証処理で使用するMAC鍵や署名検証鍵、制御設定値の上限(例えば、40Mpa)と下限(例えば、10Mpa)、などである。
また、検証処理とは、例えば、CRC(Cyclic Redundancy Check)、制御設定値が予め定められた上限より大きくないか否かの判定、制御設定値が予め定められた下限より小さくないか否かの判定、やMACやデジタル署名の検証処理、などである。さらに、検証処理として、ネットワーク上を流れた制御設定値、制御設定値を受信した日時や制御対象のセンサやアクチュエータが物理的に設置されている場所の情報を格納していく。そして、制御設定値を受信した場合、上述の格納されている制御設定値、日時、場所の情報と上記受信した制御設定値とその日時、場所の情報を比較し、過去の制御設定値、日時、場所の情報と大きく異なる場合には検証エラーを出す、などの検証処理を含めてもよい。検証処理は上述の検証処理の例のうち、制御設定値が上限より大きくないか否かの判定または制御設定値が下限より小さくないか否かの判定を含む一つ以上の処理を実施すればよく、検証項目の個数や検証処理の内容にはよらない。また、検証処理S504がCRC、MAC、デジタル署名の検証を行う場合には、通信データ情報取得S502の際にCRC、MAC、デジタル署名の生成、および生成したデータを通信データに付与する処理を実施する。
制御サーバ10および制御装置20は受信したパケットの宛先情報を確認し(S508、S509、S510)、自装置宛でないと判断した場合には、パケットを破棄する(S511、S512、S513)。一方、自装置宛であると判断した場合には、検証結果A502に含まれている検証結果が正常であるか、または異常であるか、を判定する(S514、S515、S516)。
なお、パケットの宛先情報の確認(S508、S509、S510)、および自装置宛でないと判断した場合のパケット破棄(S511、S512、S513)は検証結果A502を受信する前の任意のタイミングとしてもよい。
制御サーバ10および制御装置20〜20は検証結果が正常であると判断した場合には、制御データ処理を行う(S519、S520)。即ち、制御装置20〜20は入出力部208を介して、アクチュエータやセンサのI/O装置30を適正に制御する。一方、検証結果が異常であると判断した場合には、制御サーバ10および制御装置20〜20は通信データA501および検証結果A502を破棄する(S517、S518)。
制御装置20は検証結果が正常であると判断した場合には、処理は実施せず、検証結果が異常であると判断した場合には、S501に戻り、通信データ生成処理を再度実施する。
以上、実施例1について説明したが、上記例に限定されずに種々変形して実施し得る。
例えば、図5の処理に加えて、下記の処理を実施してもよい。すなわち、検知サーバ50は検証処理S504において、検証結果が異常であると判断した場合、エラー回数保管部504に保管している各装置のエラー回数のうち、制御装置20のエラー回数を1増加する。検証処理部503は系切替えの要否を判定する(S532)。系切替えの要否の判定の結果、系切替えが不要と判定された場合には、検知サーバは処理を実施しない。必要と判定された場合には、検証処理部503は系切替えのコマンドを取得する(S533)。そして、制御サーバ10、制御装置20に対してコマンド(A503)を送信する。
コマンドA503を受信した制御サーバ10および制御装置202〜20nはS534(S509、S512、S515、S518)、S535(S508、S511、S514、S517)を実施する。コマンドA503を受信した制御装置201は系切替え処理を行なう(S536)。
以上の処理を追加することにより、制御装置201から送信される通信データの検証結果が異常である場合に、制御業務を継続できないという点を解消し、制御業務を継続することが可能になる。
さらに他の例について言えば、上記の系切替えの実施要否の判断およびその指令は検知サーバ50が実施しているが、検知サーバ50とは異なる回復サーバを追加設置し、上記の系切替えに関する処理S531〜S536を回復サーバに実施させてもよい。
さらに他の例について言えば、上記実施例では、検知サーバ50が1台の場合で説明しているが、複数台の検知サーバを用いてもよい。ネットワークに接続される複数の検知サーバを用いる場合、各検知サーバが検証処理を行なう通信データの送信元となる制御装置を予め定めておく。この場合、検知サーバは検証対象の送信元となる制御装置に関する情報(例えば、IPアドレス)をテーブルに予め登録しておき、検知サーバが通信データを受信した際に、通信データに含まれる送信元の制御装置に関する情報がテーブルに保持されているか否かを判定し、送信元情報に関する情報がテーブルに登録されていない場合には、パケットを破棄し、送信元情報に関する情報がテーブルに登録されている場合には、通信データの検証処理を実施する。
以上のように、実施例1によれば、完全性の検証処理を検知サーバで代行して実施することにより、制御サーバ及び制御装置は検知サーバから送信された検証結果の判定に基づいて制御業務を実行するため、既存の制御業務に影響を与える可能性が少ない。また、検知サーバがネットワークに送信される全ての通信データの完全性を検証するまでは、制御サーバや制御装置は制御業務を行なわないため、通信データの改ざんの検知やI/O装置への誤出力を防止することが可能となり、システムのセキュリティインシデントに対する耐性を向上させることが可能になる。
実施例1では、検知サーバがネットワークに送信される全ての通信データの検証処理を行う例であるが、実施例2では、検証内容を予めレベル分けしておき、制御システムを構成する装置がそのレベルに応じて検証を分担する例である。
図7は、実施例2における制御システムを構成する各装置が担う検証内容を示す。ここで、検証内容とは、実施例1で述べたCRCの検証、制御設定値の上限や下限の確認、MACの検証、過去の制御設定値との整合性の確認、などである。本例では、各検証の処理に要する処理時間や安全性などに応じて、各検証内容をレベル分けする。図示のように例えば、CRCの検証をレベル1に、制御設定値の上限や下限の確認をレベル2に、MACの検証をレベル3に、過去の制御設定値との整合性の確認をレベル4にそれぞれ割り当てている。そして装置毎の性能に基づいて、制御業務に影響を及ぼさない範囲の検証内容を、各装置に予め割り当てておく。各装置は予め割り当てられた内容に基づき、検証処理を実施する。
例えば図7に示すように、制御装置20〜20はCRCの検証のみを実施し、制御サーバはCRCの検証および制御設定値の上限、下限の確認を行い、その他の検証内容(MACの検証や過去の制御設定値との整合性の確認)は行わない。検知サーバは各装置が実施していない検証項目を実施する。例えば、図7では、制御装置20〜20はレベル1であるCRCの検証のみを行い、その他の検証内容は行わない。このため、検知サーバは制御装置20〜20宛の通信データに対し、レベル2、レベル3、レベル4の検証内容を実施する。また、制御サーバは、他装置から送信され受信したデータに対してレベル1であるCRCの検証、およびレベル2である制御設定値の上限、下限の確認を行い、その他の検証内容は行わないため、検知サーバは制御サーバ宛の通信データに対し、レベル3、レベル4の検証処理を実施する。
なお、レベルの数や検証内容は図7の例によらず、システム毎に任意に決めてよい。例えば、制御サーバがレベル3であるMACの検証のみを行なうようにした場合、検知サーバは制御サーバ宛の通信データに対し、レベル1、レベル2、レベル4(制御サーバが実施しない全ての検証内容)を実施してもよいし、レベル4のみを行なうようにしてもよいし、どの検証内容も実施しない、としてもよい。
これにより、実施例1と同様に、ネットワーク上を流れる全ての通信データに対して検証処理を実施することが可能である。さらに実施例2によれば、各装置が検証処理を分担して実施するので、実施例1の場合よりも早くセキュリティインシデントを検知することが可能になる。
図5は、実施例2による完全性検証システムが適用される制御システムを示す。
この制御システムは、制御サーバ70と、制御装置20〜20(総じて20と示す)と、I/O装置30〜30(総じて30と示す)と、検知サーバ80がネットワーク40により接続して構成される。実施例1との主な違いは、制御サーバ70、検知サーバ80及び制御装置20に、検証処理機能が追加された点である。
制御サーバ70は、制御装置20で使用する制御設定値を生成する制御設定値生成部701と、通信データの宛先を確認する宛先判定部702と、制御サーバ70や制御装置20から送信された通信データに対し、制御サーバ70の性能に基づいて予め設定された完全性の検証レベルに従って検証を行う検証処理部703と、制御サーバ70の性能に基づいて設定された検証レベルを格納する検証レベル保管部704と、ネットワーク40と通信を行う通信部705と、検証処理部703が行なう検証処理を実施する際に付加情報が必要か否かを判定する検証用付加情報要否判定部706と、検証処理を実施する際に必要となる付加情報を保管する検証用付加情報保管部707を有する。
検知サーバ80は、制御サーバ70や制御装置20から送信された通信データの完全性検証処理の結果を生成する検証結果生成部801と、通信データの宛先を確認する宛先判定部802と、制御サーバ70や制御装置20から送信された通信データに対する検証処理を行なう検証処理部803と、制御サーバ70の性能に基づいて設定された検証レベルを格納する検証レベル保管部804と、ネットワーク40と通信を行う通信部805と、検証処理を実施する際に付加情報が必要か否かを判定する検証用付加情報要否判定部806と、検証処理を実施する際に必要となる付加情報を保管する検証用付加情報保管部807と、回復手順保管部812に格納されている回復手順を取得する回復手順取得部808と、図5の各装置に対し、回復が必要か否かを判定する回復要否判定部809と、各装置から送信された通信データの検証エラー回数を保管するエラー回数保管部810と、各装置に対し、回復するか否かを判定するために用いる回復用閾値811と、各装置に対し、回復の手順を保管する回復手順保管部812を有する。ここで、回復用閾値811は自然数であり、回復手順保管部812に保管されている回復手順とは、制御システムにおいて信頼性を確保するために用いられている各装置のバックアップへの切替えのコマンドである。
制御装置20は、I/O装置30の制御を行う制御業務処理部201と、通信データの宛先を確認する宛先判定部202と、予め設定された完全性の検証レベルに従って検証を行う検証処理部203と、当該制御装置の性能に基づいて設定された検証レベルを格納する検証レベル保管部204と、ネットワーク40と通信を行う通信部205と、検証処理部203が行なう検証処理を実施する際に付加情報が必要か否かを判定する検証用付加情報要否判定部206と、検証処理を実施する際に必要となる付加情報を保管する検証用付加情報保管部207と、制御装置が制御を行うI/O装置とのデータ入出力を行う入出力部208を有して構成される。
なお、図5の制御サーバ70、制御装置20、I/O装置30、および検知サーバ80のハードウェア構成は、実施例1と同様である。
次に、図6A及び6Bを参照して、図5の完全性検証システムにおける各構成装置の処理動作について説明する。
まず、制御装置201は、他の装置に送信する通信データを生成する(S801)。次に、通信データを生成したアプリケーションの情報やコマンドの情報などの通信データ情報を取得する(S802)。次に、制御サーバ70、制御装置20〜20、検知サーバ80に対して通信データ(A801)を送信する。
ここで、処理S802は実施例1と同様、後述する検証処理S809がCRC、MAC、デジタル署名の検証を行う場合には、通信データ情報取得S802の際にCRC、MAC、デジタル署名の生成、および生成したデータを通信データに付与する処理を実施する。
制御サーバ70、制御装置20〜20、および検知サーバ80は受信したパケットの宛先情報を確認し(S803)、自装置宛でないと判断した場合には、パケットを破棄する(S804)。以後、本実施例では、通信データA801の宛先は制御サーバ70、または制御装置20〜20のうち、何れか一つ以上の装置宛であるとする。自装置宛であると判断した場合には、検証処理部703、203〜203は検証レベルを取得し(S806)、S806で取得した検証レベルから、検証用付加情報の要否を判定し(S807)、必要な場合には、検証用付加情報保管部707、207〜207から検証用付加情報を取得する(S808)。そして、通信データ、検証用データA801、およびS806で取得した検証レベルから、検証処理を行い(S809)、検証結果を判定する(S810)。この結果、異常であると判断した場合には、パケットを破棄し(S811)、エラーコードを生成し、エラーコードに検知サーバ80と制御装置201の宛先情報を付与し(S812)、エラーコード(A802)を自装置以外の制御サーバ70および制御装置20、検知サーバ80に対して送信する。検証結果が正常であると判断した場合には、制御データ処理を行う(S814)。制御サーバ70、制御装置20及び検知サーバ80は、受信したパケットの宛先情報を確認し、自装置宛でないと判断した場合には、パケットを破棄する(S805)。ここでは、制御装置201と検知サーバ80が自装置宛であると判断する。
制御装置201が自装置宛であると判断した場合には、検証結果A802に含まれている検証結果が正常であるか、または異常であるか、を判定する(S815)。制御装置201は検証結果が正常であると判断した場合には、処理は実施せず、検証結果が異常であると判断した場合には、S801に戻り、通信データ生成処理を再度実施する。
制御サーバ70が自装置宛であると判断した場合には、検証処理に係る処理S813−2(S806、S807、S808、S809、S810、S811、S812)を実施する(S813)。ここで、制御装置201〜20nが実施する検証処理に係る処理S813−1と、制御サーバ70が実施する検証処理に係る処理S813−2は、図7で割り当てられたレベルによって異なる。S813の検証結果が異常であると判断した場合、エラーコード生成S812によって生成されたエラーコードをA803とする。エラーコードA803を自装置以外の制御サーバ70および制御装置20に対して送信する。制御サーバ70および制御装置20は宛先確認に係る処理S805を実施する。ここでは、検知サーバ80が自装置宛であると判断する。
検知サーバ80は、エラー回数保管部604に保管している各装置のエラー回数のうち、制御装置201のエラー回数を1増加する(S816)。回復要否判定部603は系切替えの要否を判定する(S817)。系切替えの要否の判定の結果、系切替えが不要と判定された場合には、検知サーバは処理を実施しない。必要と判定された場合には、回復手順取得部808は系切替えのコマンドを回復手順保管部812から取得する(S818)。そして、制御サーバ70、制御装置20に対してコマンド(A804)を送信する。
コマンドA804を受信した制御サーバ70及び制御装置202〜20nはS805(S803、S804)を実施する。コマンドA804を受信した制御装置201は系切替え処理を行なう(S819)。
以上の処理により、制御装置201から送信される通信データの検証結果が異常である場合に、制御業務を継続できないという点を解消し、制御業務を継続することが可能になる。
なお、実施例2は種々変形して実施し得る。
例えば、本発明の趣旨からすれば、実施例2における回復処理機能808〜812は必ずしも無くてもよい。一方これらの回復処理機能を有する場合、これらの回復処理機能は検知サーバ80と異なるサーバ(回復サーバ)に持たせてもよい。
また他の例として、実施例2では上述の系切替えの実施要否の判断、およびその指令は検知サーバ80が実施しているが、検知サーバ80がもつ機能を、検知サーバ80とは異なるサーバ(回復サーバ)に持たせることにより、上述の系切替えに関する処理S816〜S819は回復サーバが実施してもよい。
また、実施例1及び2において使用した用語は一例であって、本発明の趣旨を逸脱しない限り、他の用語を用いることができる。例えば、検知サーバは検証サーバと呼んでもよい。また実施例2の図9で検証レベルを各装置に割当てる、としたが、検証レベルと言わずに検証内容と呼んでもよい。
以上のように、実施例2によれば、実施例1と同様に、制御サーバ、制御装置は自身が行なう検証によって正当な通信データと判断された場合にバルブやアクチュエータのようなI/O装置を動作させ、不適当と判断された場合には、送信元装置にエラーを通知し、I/O装置を動作させないので、通信データの改ざんの検知やI/O装置への誤出力を防止できる。さらに、制御システムを構成する装置が完全性の検証処理を分担して実施するので、実施例1と比較し、検知するまでの時間を短くすることが可能となり、システムのセキュリティインシデントに対する耐性を向上させることが可能となる。
10:制御サーバ 20〜20、20:制御装置
208〜208、208:入出力部 30〜30、30:I/O装置
301〜301n、301:アクチュエータ
302〜302、302:センサ
40:ネットワーク 50:検知サーバ

Claims (12)

  1. ネットワークを介して接続される、I/O装置を制御する複数の制御装置と、該制御装置が制御に用いる制御設定値を生成する制御サーバと、該ネットワーク上に送信される通信データの検証を行う検知サーバとを有する制御システムにおいて、
    ある該制御装置は、通信データを生成したアプリケーションの情報やコマンドの情報に関する通信データ情報を取得して完全性検証用のデータを生成して、該通信データを他の制御装置及び該検知サーバへ送信し、
    該検知サーバは、検証用付加情報の要否を判定し、必要があると判定された場合には検証用付加情報を取得し、ある制御装置から受信したデータに対して完全性検証処理を行い、他の制御装置及び該制御サーバへ該データの検証結果を送信し、
    該他の制御装置は、該通信データに関する完全性の検証結果を、該検知サーバから受信するまで該通信データに基づく制御業務を行わず、該検知サーバが送信した該検証結果が正当の場合には、該通信データに従った制御業務を行い、該検証結果が不適当の場合には、該通信データに従った制御業務を行わず、該ある制御装置にエラーを送信する
    ことを特徴とする完全性検証システム。
  2. 複数の前記検知サーバが該ネットワークに接続され、
    各該検知サーバが検証処理を行なう通信データの送信元となる該ある制御装置に関する情報を予めテーブルに保持しておき、
    通信データを受信した場合には、通信データに含まれる送信元の該ある制御装置に関する情報が該テーブルに登録されているか否かを判定し、該送信元情報に関する情報が該テーブルに登録されていない場合には、パケットを破棄し、該送信元情報に関する情報が該テーブルに登録されている場合には、該通信データの検証処理を行なう
    請求項1に記載の完全性検証システム。
  3. 前記検知サーバは、自らが行う該検証処理として、
    該通信データが、予め定められた上限値以下であるか否か、
    該通信データが、予め定められた下限値以上であるか否か、
    該通信データからCRC(Cyclic Redundancy Check)を生成し、該通信データに付与されたCRCと一致するか否か、
    該通信データとメッセージ認証子生成鍵からメッセージ認証子を生成し、該通信データに付与されたメッセージ認証子と一致するか否か、
    の何れか1つ以上の項目を検証する請求項1乃至2のいずれかの項に記載の完全性検証システム。
  4. 前記検知サーバは、該通信データが予め定められた上限値以下であるか否かを検証する場合、該検知サーバに予め上限値を格納しておき、検証時には該格納された上限値を用いて検証し、値が上限値以下の場合には該通信データが正当であると判断し、値が上限値より大きい場合には該通信データが不適当であると判断する
    請求項3に記載の完全性検証システム。
  5. 前記検知サーバは、該通信データが予め定められた下限値以上であるか否かを検証する場合、該検知サーバに予め下限値を格納しておき、検証時には該格納された下限値を用いて検証し、値が下限値以上の場合には該通信データが正当であると判断し、値が下限値より小さい場合には該通信データが不当であると判断する請求項3又は4に記載の完全性検証システム。
  6. 該通信データに付与されたCRCが正当であるか否かを検証する場合には、該ある制御装置は、該通信データに対するCRCの生成および該通信データへの付与を行ない、検証時には該通信データに対するCRCを生成し、該生成したCRCと該付与されたCRCが一致するか否かを確認する
    請求項3乃至5のいずれかの項に記載の完全性検証システム。
  7. 前記検知サーバが該通信データに付与されたメッセージ認証子が正当であるか否かを検証する場合、該ある制御装置は、該通信データ、及び該ある制御装置に予め格納されたMAC生成鍵を用いて該通信データに対するMACの生成および該通信データへの付与を行ない、検証時には該通信データ及び該検知サーバに予め格納されたMAC検証鍵を用いて該通信データに対するMACを生成し、該生成したMACと該付与されたMACが一致するか否かを確認する
    請求項1乃至6のいずれかの項に記載の完全性検証システム。
  8. 前記検知サーバが該通信データに付与された署名が正当であるか否かを検証する場合、該ある制御装置は、該通信データ、及びある該制御装置に予め格納された署名生成鍵を用いて該通信データに対する署名の生成および該通信データへの付与を行ない、検証時には該通信データ及び該検知サーバに予め格納された署名検証鍵を用いて該付与された署名の正当性を検証する
    請求項1乃至7のいずれかの項に記載の完全性検証システム。
  9. 該ある制御装置のエラー回数を保管するエラー回数保管部と回復の要否を判定する回復要否判定部と、該ある制御装置の回復手順を保管する回復手順保管部と、回復の要否を判定するために用いる回復閾値を有する回復サーバを更に有し、
    該検知サーバは、検証結果を回復サーバへも送信し、
    該検知サーバが送信した該検証結果が不適当である場合に、該エラー回数保管部に格納された該ある制御装置のエラー回数を1増加させ、
    該エラー回数が該回復閾値より大きい場合に該ある制御装置のバックアップ装置に切り替えるコマンドを該回復手順保管部から取得して該ある制御装置に送信し、
    該他の制御装置は、自身が行った該検証結果が正当の場合には、該データに従った制御業務を行い、該検証結果が不適当の場合には、該データに従った制御業務を行わず、該ある制御装置にエラーを送信する
    ことを特徴とする請求項1乃至8のいずれかの項に記載の完全性検証システム。
  10. ネットワークを介して接続される、I/O装置を制御する複数の制御装置と、該制御装置が制御に用いる制御設定値を生成する制御サーバと、該ネットワーク上に送信される通信データの検証を行う検知サーバとを有する制御システムにおいて、
    該複数の制御装置は予め決められた第1の内容の検証を行い、該制御サーバは予め決められた第2の内容の検証を行い、該検知サーバは予め決められた第3の内容の検証を行うように、該複数の制御装置、該制御サーバ及び該検知サーバが行う検証の内容を予め決めておき、
    該ある制御装置は、通信データを生成したアプリケーションの情報やコマンドの情報に関する通信データ情報を取得して完全性検証用のデータを生成して、該通信データを、該制御サーバと他の制御装置と該検知サーバへ送信し、
    該制御サーバは、検証用付加情報の要否を判定し、必要があると判定された場合には、検証用付加情報を取得し、受信した該通信データに対して該第2の内容の検証を行って、該データの検証結果を該ある制御装置及び他の制御装置及び該検知サーバへ送信し、
    該検知サーバは、検証用付加情報の要否を判定し、必要があると判定された場合には、検証用付加情報を取得し、ある制御装置から受信したデータに対して該第3の内容の検証を行って、該データの検証結果を該ある制御装置及び他の制御装置及び該制御サーバへ送信し、
    該他の制御装置は、検証用付加情報の要否を判定し、必要があると判定された場合には、検証用付加情報を取得し、受信した該通信データに対して該第1の内容の検証を行い
    該制御装置は、該検知サーバが行う該通信データに関する前記第3の内容の検証結果を受信するまで該通信データに基づく制御業務を行わず、該検知サーバが送信した該検証結果が正当の場合には、該通信データに従った制御業務を行い、該検証結果が不適当の場合には、該通信データに従った制御業務を行わず、該ある制御装置にエラーを送信する
    ことを特徴とする完全性検証システム。
  11. 該複数の制御装置は前記第1の内容の検証として、該通信データからCRC(Cyclic Redundancy Check)を生成し、該通信データに付与されたCRCと一致するか否かの検証を行い、
    該制御サーバは前記第2の内容の検証として、該通信データが予め定められた上限値以下であるか否か、該通信データが予め定められた下限値以上であるか否か、の検証を行い、
    該検知サーバは前記第3の内容の検証として、メッセージ認証子生成鍵からメッセージ認証子を生成し、該通信データに付与されたメッセージ認証子と一致するか否か、の検証を行う
    請求項10に記載の完全性検証システム。
  12. ネットワークを介して接続される、I/O装置を制御する複数の制御装置と、該制御装置が制御に用いる制御設定値を生成する制御サーバと、該ネットワーク上に送信される通信データの検証を行う検知サーバとを有する制御システムにおける安全性の検証方法であって、
    ある該制御装置は、通信データを生成したアプリケーションの情報やコマンドの情報に関する通信データ情報を取得して完全性検証用のデータを生成して、該通信データを他の制御装置及び該検知サーバへ送信し、
    該検知サーバは、検証用付加情報の要否を判定し、必要があると判定された場合には検証用付加情報を取得し、ある制御装置から受信したデータに対して完全性検証処理を行い、他の制御装置及び該制御サーバへ該データの検証結果を送信し、
    該他の制御装置は、該通信データに関する完全性の検証結果を、該検知サーバから受信するまで該通信データに基づく制御業務を行わず、該検知サーバが送信した該検証結果が正当の場合には、該通信データに従った制御業務を行い、該検証結果が不適当の場合には、該通信データに従った制御業務を行わず、該ある制御装置にエラーを送信する
    ことを特徴とする完全性検証方法。
JP2013086415A 2013-04-17 2013-04-17 完全性検証システム及び方法 Pending JP2014211473A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2013086415A JP2014211473A (ja) 2013-04-17 2013-04-17 完全性検証システム及び方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2013086415A JP2014211473A (ja) 2013-04-17 2013-04-17 完全性検証システム及び方法

Publications (1)

Publication Number Publication Date
JP2014211473A true JP2014211473A (ja) 2014-11-13

Family

ID=51931296

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013086415A Pending JP2014211473A (ja) 2013-04-17 2013-04-17 完全性検証システム及び方法

Country Status (1)

Country Link
JP (1) JP2014211473A (ja)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2016127426A (ja) * 2014-12-27 2016-07-11 富士通株式会社 通信制御装置、通信制御方法、および、通信制御プログラム
JP2017139512A (ja) * 2016-02-01 2017-08-10 株式会社日立製作所 ユーザ許可の確認システム
WO2019124044A1 (ja) * 2017-12-19 2019-06-27 株式会社日立製作所 制御システム
US10621334B2 (en) 2016-04-07 2020-04-14 Renesas Electronics Corporation Electronic device and system

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2016127426A (ja) * 2014-12-27 2016-07-11 富士通株式会社 通信制御装置、通信制御方法、および、通信制御プログラム
JP2017139512A (ja) * 2016-02-01 2017-08-10 株式会社日立製作所 ユーザ許可の確認システム
US10621334B2 (en) 2016-04-07 2020-04-14 Renesas Electronics Corporation Electronic device and system
WO2019124044A1 (ja) * 2017-12-19 2019-06-27 株式会社日立製作所 制御システム
JP2019109754A (ja) * 2017-12-19 2019-07-04 株式会社日立製作所 制御システム
JP7021928B2 (ja) 2017-12-19 2022-02-17 株式会社日立製作所 制御システム
US11609999B2 (en) 2017-12-19 2023-03-21 Hitachi, Ltd. Control system

Similar Documents

Publication Publication Date Title
JP6773617B2 (ja) 更新制御装置、ソフトウェア更新システムおよび更新制御方法
EP2852090B1 (en) Data authentication method and apparatus thereof
JP5543949B2 (ja) 制御装置およびモニタプログラム
CN105721500B (zh) 一种基于TPM的Modbus/TCP协议的安全增强方法
JP5949572B2 (ja) 車両不正状態検出方法、車載システムにおける制御方法、およびシステム
CN107038391B (zh) 用于通过嵌入式系统保护数据完整性的方法和设备
CN110198297B (zh) 流量数据监控方法、装置、电子设备及计算机可读介质
US9054863B2 (en) Industrial protocol system authentication and firewall
JP2019050507A (ja) 情報処理装置、情報処理方法およびプログラム
JP6200068B2 (ja) Icカードのオフラインpinの検証方法及びicカードのオフライン検証システム
US11403428B2 (en) Protecting integrity of log data
JP2014211473A (ja) 完全性検証システム及び方法
US20160014077A1 (en) System, Method and Process for Mitigating Advanced and Targeted Attacks with Authentication Error Injection
WO2013120356A1 (zh) 端口控制协议快速恢复方法和装置
CN108028846B (zh) 对测试数据组完整性的监视
JPWO2014147934A1 (ja) 通信装置、通信システム及び通信方法
US10862675B2 (en) Method for exchanging messages between security-relevant devices
Pricop et al. Method for authentication of sensors connected on modbus tcp
CN112653699B (zh) 一种bfd认证方法、装置及电子设备
WO2013147732A1 (en) Programmable logic controller having embedded dynamic generation of encryption keys
Pingale et al. Design aspects for upgrading firmware of a resource constrained device in the field
US10972268B2 (en) Cryptographic diversity
US20180337923A1 (en) Authentication method and authentication system
Koopman et al. Integrity in embedded control networks
Khan et al. A novel trusted hardware-based scalable security framework for IoT edge devices