(57)【要約】      （修正有）【課題】インテグリティに基づいて産業企業システムにおけるエンドポイントの通信を制御する方法および装置を提供する。【解決手段】装置は、インテグリティ測定値を基準値と比較するインテグリティ測定値比較部を含む。インテグリティ測定値は、産業企業システムのネットワークにおけるエンドポイントによってエンドポイントの状態に基づいて生成される。基準値は、前記エンドポイントの信用できる状態に対応する。例示的な装置は、更に、基準値に対するインテグリティ測定値の比較に基づいてネットワークへのエンドポイントの通信アクセスを可能にする許可コントローラを含む。【選択図】図６
2017004521.tif 000002
【特許請求の範囲】
【請求項１】
インテグリティ測定値を基準値と比較するインテグリティ測定値比較部であって、前記インテグリティ測定値が産業企業システムのネットワークにおけるエンドポイントによって前記エンドポイントの状態に基づいて生成され、前記基準値が前記エンドポイントの信用できる状態に対応する、インテグリティ測定値比較部と、
前記基準値に対する前記インテグリティ測定値の比較に基づいて前記ネットワークへの前記エンドポイントの通信アクセスを可能にする許可コントローラと、を備える装置。
【請求項２】
前記インテグリティ測定値と前記基準値との間の相違の承認された無効化に基づいて前記インテグリティ測定値に対応するよう前記基準値を更新するインテグリティ測定制御部を更に備える、請求項１記載の装置。
【請求項３】
前記インテグリティ測定値が前記基準値と一致する場合、前記エンドポイントの前記通信アクセスは全通信アクセスに対応し、前記許可コントローラは前記全通信アクセスを可能にするよう前記エンドポイントに許可情報を供給する、請求項１記載の装置。
【請求項４】
前記エンドポイントの状態は、前記エンドポイントにロードされたソフトウェア、前記エンドポイントに割り当てられた構成データ、または、前記エンドポイントに接続された周辺機器の少なくとも一つに対応する、請求項１記載の装置。
【請求項５】
前記インテグリティ測定値は、前記エンドポイントにロードされた前記ソフトウェアのチェックサムを計算することで生成される、請求項４記載の装置。
【請求項６】
前記通信アクセスは、前記チェックサムが前記基準値に一致しない場合、ファームウェア交信通信アクセスに対応する、請求項５記載の装置。
【請求項７】
前記インテグリティ測定値は、前記エンドポイントに記憶された前記構成データのチェックサムを計算することで生成される、請求項４記載の装置。
【請求項８】
前記通信アクセスは、前記チェックサムが前記基準値に一致しない場合、構成通信アクセスに対応する、請求項７記載の装置。
【請求項９】
前記基準値は、前記ネットワークについて生成される構成ファイルに基づいて生成される、請求項７記載の装置。
【請求項１０】
前記インテグリティ測定値は、前記エンドポイントの前記周辺機器についてチェックサムを計算することで生成される、請求項４記載の装置。
【請求項１１】
前記インテグリティ測定値は、前記エンドポイントのブート時間中に前記エンドポイントによって生成される、請求項１記載の装置。
【請求項１２】
前記インテグリティ測定値は、前記エンドポイントのランタイム中に前記エンドポイントによって生成される、請求項１記載の装置。
【請求項１３】
前記許可コントローラは、（１）前記インテグリティ測定値が前記基準値と一致しない場合、疑わしいエンドポイントのインテグリティを示す警告を発生すること、または、（２）前記インテグリティ測定値が前記基準値と一致しない場合、前記エンドポイントから供給されるデータをフラグを立てることであって、前記フラグが立たされたデータが疑わしいエンドポイントのインテグリティを示す、のいずれか一方を行う、請求項１記載の装置。
【請求項１４】
前記許可コントローラは、前記インテグリティ測定値が前記基準値と一致しない場合、前記ネットワークへの前記エンドポイントの通信アクセスを防止し、冗長のエンドポイントの通信アクセスを可能にする、請求項１記載の装置。
【請求項１５】
前記ネットワークは、前記産業企業システム内の制御システムの制御ネットワークに対応し、前記エンドポイントは、前記制御ネットワークに通信可能に接続されるワークステーション、サーバー、制御部、入力／出力装置、または、フィールド装置のいずれかに対応する、請求項１記載の装置。
【請求項１６】
前記ネットワークは、前記産業企業システム内の監視システムの監視ネットワークに対応し、前記エンドポイントは、前記監視システムに従属する制御システムに対応する、請求項１記載の装置。
【請求項１７】
前記インテグリティ測定値は、前記制御システムの制御ネットワークにおける異なるエンドポイントに対応する異なるインテグリティ測定値の組み合わせのチェックサムである、請求項１６記載の装置。
【請求項１８】
産業企業システムのネットワークにおけるエンドポイントからインテグリティ測定値を受信し、前記インテグリティ測定値が前記エンドポイントによって前記エンドポイントの状態に基づいて生成され、
前記インテグリティ測定値を前記エンドポイントの信用できる状態に対応する基準値と比較し、
前記比較に基づいて前記ネットワークへの前記エンドポイントの通信アクセスを可能にすることを有する、方法。
【請求項１９】
前記インテグリティ測定値と前記基準値との間の相違を無効にする承認を受信し、
前記承認に基づいて前記インテグリティ測定値に対応するよう前記基準値を更新することを更に含む、請求項１８記載の方法。
【請求項２０】
前記インテグリティ測定値が前記基準値と一致する場合、前記エンドポイントに許可情報を供給することで前記エンドポイントの全通信アクセスを可能にすることを更に含む、請求項１８記載の方法。
【請求項２１】
前記エンドポイントの状態は、前記エンドポイントにロードされたソフトウェア、前記エンドポイントに割り当てられた構成データ、または、前記エンドポイントに接続された周辺機器の少なくとも一つに対応する、請求項１８記載の方法。
【請求項２２】
前記インテグリティ測定値は、前記エンドポイントにロードされた前記ソフトウェアのチェックサムを計算することで、前記エンドポイントによって生成される、請求項２１記載の方法。
【請求項２３】
前記チェックサムが前記基準値に一致しない場合、前記エンドポイントにファームウェア交信通信アクセスを可能にすることを更に含む、請求項２２記載の方法。
【請求項２４】
前記インテグリティ測定値は、前記エンドポイントに記憶された前記構成データのチェックサムを計算することで、前記エンドポイントによって生成される、請求項２１記載の方法。
【請求項２５】
前記チェックサムが前記基準値と一致しない場合、構成通信アクセスを可能にすることを更に含む、請求項２４記載の方法。
【請求項２６】
前記基準値は、前記ネットワークについて生成される構成ファイルに基づいて生成される、請求項２４記載の方法。
【請求項２７】
前記インテグリティ測定値は、前記エンドポイントの前記周辺機器についてチェックサムを計算することで、前記エンドポイントによって生成される、請求項２１記載の方法。
【請求項２８】
前記インテグリティ測定値は、前記エンドポイントのブート時間中に前記エンドポイントによって生成される、請求項１８記載の方法。
【請求項２９】
前記インテグリティ測定値は、前記エンドポイントのランタイム中に前記エンドポイントによって生成される、請求項１８記載の方法。
【請求項３０】
前記インテグリティ測定値が前記基準値と一致しない場合に警告を発する、または、
前記インテグリティ測定値が前記基準値と一致しない場合に前記エンドポイントから供給されるデータをフラグを立てる、少なくとも一方を更に含み、
前記警告および前記フラグが立たされたデータそれぞれは疑わしいエンドポイントのインテグリティを示す、請求項１８記載の方法。
【請求項３１】
前記インテグリティ測定値が前記基準値と一致しない場合、前記ネットワークへの前記エンドポイントの通信アクセスを無効にし、
冗長のエンドポイントの通信アクセスを可能にする、ことを更に含む、請求項１８記載の方法。
【請求項３２】
前記ネットワークは、前記産業企業システム内の制御システムの制御ネットワークに対応し、前記エンドポイントは、前記制御ネットワークに通信可能に接続されるワークステーション、サーバー、制御部、入力／出力装置、または、フィールド装置のいずれかに対応する、請求項１８記載の方法。
【請求項３３】
前記ネットワークは、前記産業企業システム内の監視システムの監視ネットワークに対応し、前記エンドポイントは、前記監視システムに従属する制御システムに対応する、請求項１８記載の方法。
【請求項３４】
前記インテグリティ測定値は、前記制御システムの制御ネットワークにおける異なるエンドポイントに対応する異なるインテグリティ測定値の組み合わせのチェックサムである、請求項３３記載の方法。
【請求項３５】
命令を有する製品であって、
前記命令が実行されると、少なくとも機械に、
産業企業システムのネットワークにおけるエンドポイントからインテグリティ測定値を受信させ、前記インテグリティ測定値が前記エンドポイントによって前記エンドポイントの状態に基づいて生成され、
前記インテグリティ測定値を前記エンドポイントの信用できる状態に対応する基準値と比較させ、
前記比較に基づいて前記ネットワークへの前記エンドポイントの通信アクセスを可能にさせる、製品。
【請求項３６】
前記命令は、更に、機械に
前記インテグリティ測定値と前記基準値との間の相違を無効にする承認を受信させ、
前記承認に基づいて前記インテグリティ測定値に対応するよう前記基準値を更新させることを含む、請求項３５記載の製品。
【請求項３７】
命令は、更に、機械に、前記インテグリティ測定値が前記基準値と一致する場合、前記エンドポイントに許可情報を供給することで前記エンドポイントの全通信アクセスを可能にさせることを含む、請求項３５記載の製品。
【請求項３８】
前記エンドポイントの状態は、前記エンドポイントにロードされたソフトウェア、前記エンドポイントに割り当てられた構成データ、または、前記エンドポイントに接続された周辺機器の少なくとも一つに対応する、請求項３５記載の製品。
【請求項３９】
前記インテグリティ測定値は、前記エンドポイントにロードされた前記ソフトウェアのチェックサムを計算することで、前記エンドポイントによって生成される、請求項３８記載の製品。
【請求項４０】
前記チェックサムが前記基準値に一致しない場合、前記エンドポイントにファームウェア交信通信アクセスを可能にさせることを更に含む、請求項３９記載の製品。
【請求項４１】
前記インテグリティ測定値は、前記エンドポイントに記憶された前記構成データのチェックサムを計算することで、前記エンドポイントによって生成される、請求項３８記載の製品。
【請求項４２】
前記チェックサムが前記基準値と一致しない場合、構成通信アクセスを可能にさせることを更に含む、請求項４１記載の製品。
【請求項４３】
前記基準値は、前記ネットワークについて生成される構成ファイルに基づいて生成される、請求項４１記載の製品。
【請求項４４】
前記インテグリティ測定値は、前記エンドポイントの前記周辺機器についてチェックサムを計算することで、前記エンドポイントによって生成される請求項３８記載の製品。
【請求項４５】
前記インテグリティ測定値は、前記エンドポイントのブート時間中に前記エンドポイントによって生成される、請求項３５記載の製品。
【請求項４６】
前記インテグリティ測定値は、前記エンドポイントのランタイム中に前記エンドポイントによって生成される、請求項３５記載の製品。
【請求項４７】
前記命令は、更に、機械に、
前記インテグリティ測定値が前記基準値と一致しない場合に警告を発生させ、または、
前記インテグリティ測定値が前記基準値と一致しない場合に前記エンドポイントから供給されるデータをフラグ立てさせ、
前記警告および前記フラグ立てされたデータそれぞれは疑わしいエンドポイントのインテグリティを示す、請求項３５記載の製品。
【請求項４８】
前記命令は、更に、機械に、
前記インテグリティ測定値が前記基準値と一致しない場合、前記ネットワークへの前記エンドポイントの通信アクセスを無効にさせ、
冗長のエンドポイントの通信アクセスを可能にさせる、ことを含む、請求項３５記載の製品。
【請求項４９】
前記ネットワークは、前記産業企業システム内の制御システムの制御ネットワークに対応し、前記エンドポイントは、前記制御ネットワークに通信可能に接続されるワークステーション、サーバー、制御部、入力／出力装置、または、フィールド装置のいずれかに対応する請求項３５記載の製品。
【請求項５０】
前記ネットワークは、前記産業企業システム内の監視システムの監視ネットワークに対応し、前記エンドポイントは、前記監視システムに従属する制御システムに対応する、請求項３５記載の製品。
【請求項５１】
前記インテグリティ測定値は、前記制御システムの制御ネットワークにおける異なるエンドポイントに対応する異なるインテグリティ測定値の組み合わせのチェックサムである、請求項５０記載の製品。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、一般的に、産業統制に係わり、特に、インテグリティに基づき産業企業システムにおけるエンドポイントの通信を制御する方法および装置に関わる。
【背景技術】
【０００２】
化学、石油、または、他の産業企業において使用されるようなプロセス制御システムは、典型的には、アナログ、デジタル、または、組み合わされたアナログ／デジタル・バスを介して一つ以上のフィールド装置に通信可能に接続される日筒以上のプロセス制御部を含む。例えば、弁、弁保定装置、スイッチ、および、送信器（例えば、温度、圧力、および、流量センサ）等のフィールド装置は、弁の開閉やプロセス制御パラメータの測定等、プロセス内でプロセス制御機能を実施する。プロセス制御部は、フィールド装置によって得られるプロセス測定結果を表す信号を受信し、該情報を処理するおよび／または該情報を他の制御部、ワークステーション、または、制御システム内の他の構成要素に通信する。更に、多数の制御システムは、より高レベルの企業システムのサブシステムでもよく、別個のサブシステムからの情報は互いに通信されるおよび／または監視システムによって監視されてもよい。
【発明の概要】
【０００３】
インテグリティに基づき産業企業システムにおけるエンドポイントの通信を制御する方法および装置が開示される。例示的な装置は、インテグリティ測定値を基準値と比較するインテグリティ測定値比較部を含む。インテグリティ測定値は、エンドポイントの状態に基づき産業企業システムのネットワークにおけるエンドポイントによって生成される。基準値は、エンドポイントの信用できる状態に対応する。例示的な装置は、インテグリティ測定値の基準値に対する比較に基づきネットワークへのエンドポイントの通信アクセスを可能にする許可コントローラを含む。
【０００４】
例示的な方法は、産業企業システムのネットワークにおけるエンドポイントからインテグリティ測定値を受信することを含む。インテグリティ測定値は、エンドポイントの状態に基づいてエンドポイントによって生成される。例示的な方法は、更に、インテグリティ測定値をエンドポイントの信用できる状態に対応する基準値と比較することを含む。例示的な方法は、比較に基づいて、ネットワークへのエンドポイントの通信アクセスを可能にすることを含む。
【０００５】
製造の例示的な項目は命令を含み、該命令が実行されると、機械に産業企業システムのネットワークにおけるエンドポイントからインテグリティ測定値を少なくとも受信させる。インテグリティ測定値は、エンドポイントの状態に基づいてエンドポイントによって生成される。命令は、更に、機械にインテグリティ測定値をエンドポイントの信用できる状態に対応する基準値と比較させる。命令は、機械に比較に基づいてネットワークへのエンドポイントの通信アクセスを可能にさせる。
【図面の簡単な説明】
【０００６】
【図１】図１は、産業企業システムにおける構成要素の例示的な階層のブロック図を示す。
【図２】図２は、図１の例示的な階層の制御システム・レベルに対応する例示的な制御システムのブロック図を示す。
【図３】図３は、図１の例示的な階層の監視システム・レベルに対応する例示的な監視システムのブロック図を示す。
【図４】図４は、図２の例示的な構成モジュールを実行する例示的な方法を示す。
【図５】図５は、図２および／または図３の例示的なインテグリティ測定モジュールを実行する例示的な方法を示す。
【図６】図６は、図２および／または図３の例示的なシステム・インテグリティ・モニタを実行する例示的な方法を示す。
【図７】図７は、図２および／または図４の例示的な構成モジュールを実行するために行われる例示的な方法を表すフローチャートを示す。
【図８】図８は、図２、図３、および／または図５の例示的なインテグリティ測定モジュールを実行するために行われる例示的な方法を表すフローチャートを示す。
【図９】図９は、図２、図３、および／または図５の例示的なインテグリティ測定モジュールを実行するために行われる例示的な方法を表すフローチャートを示す。
【図１０】図１０は、図２、図３、および／または図５の例示的なインテグリティ測定モジュールを実行するために行われる例示的な方法を表すフローチャートを示す。
【図１１】図１１は、図２、図３、および／または図６の例示的なシステム・インテグリティ・モニタを実行するために行われる例示的な方法を表すフローチャートを示す。
【図１２】図１２は、図２、図３、および／または図６の例示的なシステム・インテグリティ・モニタを実行するために行われる例示的な方法を表すフローチャートを示す。
【図１３】図１３は、図２、図３、および／または図６の例示的なシステム・インテグリティ・モニタを実行するために行われる例示的な方法を表すフローチャートを示す。
【図１４】図１４は、図２、図３、および／または図６の例示的なシステム・インテグリティ・モニタを実行するために行われる例示的な方法を表すフローチャートを示す。
【図１５】図１５は、図２、図３、および／または図６の例示的なシステム・インテグリティ・モニタを実行するために行われる例示的な方法を表すフローチャートを示す。
【図１６】図１６は、図２、図３、および／または図６の例示的なシステム・インテグリティ・モニタを実行するために行われる例示的な方法を表すフローチャートを示す。
【図１７】図１７は、図７の例示的な方法を行うよう、および／または、より一般的には、図２および／または図４の例示的な構成モジュールを実行するために使用されるおよび／またはプログラミングされる例示的なプロセッサ・プラットホームを例示する概略図を示す。
【図１８】図１８は、図８乃至図１０の例示的な方法を行うよう、および／または、より一般的には、図２、図３、および／または、図５の例示的なインテグリティ測定モジュールを実行するために使用されるおよび／またはプログラミングされる例示的なプロセッサ・プラットホームを例示する概略図を示す。
【図１９】図１９は、図１１乃至図１６の例示的な方法を行うよう、および／または、より一般的には、図２、図３、および／または、図６の例示的なシステム・インテグリティ・モニタを実行するために使用される、および／または、プログラミングされる例示的なプロセッサ・プラットホームを例示する概略図を示す。
【発明を実施するための形態】
【０００７】
本願で用いるように、産業企業システムは、原材料および関連する物理的プロセス、このようなプロセスと相互作用するフィールド装置、該プロセスを制御する対応する制御システム、および、産業企業のより高いレベルの管理システムを示している。そのため、産業企業システムは、対応するネットワークを介して典型的には相互接続される階層的に関連するシステム（即ち、多数のレベルを有する）のシステムである。本願で用いるように、産業システム計算エンドポイント（あるいは、エンドポイント）は、産業企業システム内のネットワーク（全てのレベルにおける）のノードとして機能して、他のこのような構成要素と通信する、全ての計算構成要素を示す。そのため、本願で用いるように、エンドポイントは、個別の計算装置（例えば、フィールド装置、制御部、Ｉ／Ｏ装置、制御部およびＩ／Ｏ装置用の内蔵型プラグイン・カード、ワークステーション、サーバー等）、並びに、幾らかのより高レベルのシステム（例えば、より大きい制御システム内のモジュール式制御システム、監視システム内の制御システム等）に従属する一体化されたものとして動作するこのような装置のシステムまたはグループを含む。典型的には、産業企業システムにおけるエンドポイントは、それぞれの構成情報（より能力が高いエンドポイントに対して）またはそれぞれの物理的接続性（より能力が低いエンドポイントに対して）のいずれかに基づいて互いと通信を確立する。コンピュータおよびデータ・セキュリティに関連して、エンドポイント間の通信の確立は、絶対の信頼の形態に基づく。これは、どのエンドポイントも他のエンドポイントからの通信が本当に安全で信頼性があるか、あるいは、何等かのセキュリティ違反または他の障害によって信用が落とされたか分からないからである。特に、産業企業を動作させるようエンドポイント間で通信を確立することは、他のエンドポイントが（ａ）正当である（即ち、他のエンドポイントは申告通りである）、（ｂ）完全なインテグリティで動作している（即ち、他のエンドポイントは正しく機能し、送られた通信並びに該通信に対して生成されたデータの信用が落とされていない）といったことを各エンドポイントが信用することに依存する。
【０００８】
幾つかの公知の産業システムのエンドポイントは、各エンドポイントと関連付けられる情報（例えば、シリアル番号、ハードウェア・アドレス、または、ＩＰアドレス）を識別する際の通信のセキュリティおよび／または信頼性、および、通信するために使用される通信プロトコルの知識に信用を基づかせる。これにより、特定のエンドポイント（例えば、エンドポイントが申告通りか）の正当性が確認されるが、このようなアプローチ法は各エンドポイントのインテグリティのどんな信頼性のある表示を提供するにも不十分である（例えば、エンドポイントが予想通り動作しているか、または、信用が落とされ、動作の信頼性が問題視されているか）。過去には、インテグリティに基づく信用の大部分は、通信に伴われる計算エンドポイントの製造業者による製品品質の保証に基づいて推測される。つまり、製造業者は、ソフトウェア、ファームウェア、および／または、ハードウェアの開発および試験に対する品質保証プロセスを定める標準（例えば、国際標準化機構（ＩＳＯ）９０００）に典型的には従う。その結果、このような製造業者によって生産される装置（例えば、エンドポイント）が設計通り（即ち、信用できるインテグリティをもって）機能するであろうといったある程度の信用が得られる。
【０００９】
製造業者の品質保証は、製造業者が生産する計算装置のインテグリティにおいてある程度の信用を提供するが、このような保証の重みは、製造業者の制御下から装置が離れた後のセキュリティの違反または障害の他の原因の可能性により、時間とともに低くなる。例えば、製造業者から装置が出荷されるときからエンド・ユーザに配達されるときまでの間に計算装置が改ざんされる可能性がある。更に、計算装置がエンド・ユーザによって受け取られた後でも、装置がハッキングされ悪質なコードで変更される可能性がある。セキュリティ対策は典型的には、このような攻撃を減少させおよび／または検出するために実施されるが、特定の攻撃が認識されない場合、悪質なソフトウェアが計算装置の動作に影響を与え得る。その結果、このような装置のインテグリティにおける信用および／または装置から送られる通信が間違えられ得る。したがって、エンドポイントが新しく取得され、構成され、動作された場合にエンドポイントのインテグリティを検証し、更に、経時的に産業企業システムにおけるエンドポイントのインテグリティをモニタリングしてこのようなエンドポイントのインテグリティへの全ての起こり得る脅威または欠点を検出し、このようなエンドポイントからの通信に与えられる信用のレベルにおける全ての対応する変化に基づいて好適な応答を実行することが必要である。
【００１０】
本願記載の実施例は、対応するネットワーク上でエンドポイントが通信することを許可する前に、信用できる状態（即ち、インテグリティの状態）にあるエンドポイントの状態に対応する公知の良値に対して比較するために、現在の状態のある態様を示す計算されたまたは測定された値をネットワーク上のエンドポイントに供給させることで上述の問題を克服する。自身の状態に関してエンドポイントによって生成される測定結果は、本願では、インテグリティ測定値と称される。幾つかの実施例では、インテグリティ測定値は、エンドポイントの動作、セキュリティ、および／または、信頼性の表示を提供することができるエンドポイントの様々な態様の一つ以上のチェックサムを計算することで生成される。それにより、幾つかの実施例では、インテグリティ測定値は、本願では、計算されるものとして説明される。つまり、エンドポイントの様々な態様と関連付けられるデータは、暗号チェックサム・アルゴリズムを実施されて、インテグリティ測定値として使用され得る値を生成する、または、インテグリティ測定値を（エンドポイントの他の態様について計算されたチェックサムと共に）構築する。幾つかの実施形態では、インテグリティ測定値はエンドポイントのソフトウェア・スタックに基づいて生成される。幾つかの実施例では、インテグリティ測定値は、制御システム内のエンドポイントの構成に基づいて生成される。幾つかの実施例では、インテグリティ測定値は、エンドポイントと関連付けられる周辺機器に基づいて生成される。幾つかの実施例では、インテグリティ測定値は、エンドポイントと関連付けられる独立型のセキュリティ・チップによって生成される。更に、幾つかの実施例では、インテグリティ測定値はエンドポイントのブート時間中に生成される。他の実施例では、インテグリティ測定値は、エンドポイントのランタイム中に生成される。エンドポイントが多数の計算装置（例えば、エンドポイント）のサブシステムに対応する幾つかの実施例では、インテグリティ測定値は、サブシステム内の個々の装置それぞれと関連付けられる多数のより低レベルのインテグリティ測定値の組み合わせである。
【００１１】
エンドポイントによって生成される各インテグリティ測定値は、エンドポイントに対する信用できる状態に対応するとして公知の対応する基準値と比較されてもよい。幾つかの実施例では、基準値は、エンドポイントが最初に取得され、設置され、および／または、構成された際に生成されるインテグリティ測定値に基づく。幾つかの実施例では、基準値は、エンドポイントの製造業者によって提供される値に基づいて定められる。インテグリティ測定値と基準値との比較が一致を表す場合、下流エンドポイントは信用できる状態にあると確認される。つまり、ソフトウェア／ファームウェア、ハードウェア／周辺機器、構造、および／または、エンドポイントの他の測定された態様は予想通りであり、エンドポイントからの通信は信用できるおよび／または信頼される。このような状況では、エンドポイントは検証されたインテグリティに基づき全通信で対応するネットワークに参入許可が得られる。しかしながら、インテグリティ測定値が対応する基準値に一致しない場合、エンドポイントのインテグリティは疑わしくなり、適当な応答が実行され得る。幾つかのこのような実施例では、エンドポイントの通信アクセスのタイプおよび／または程度は制限され、全通信アクセス未満のものとして定義され得る。幾つかの実施例では、エンドポイントに提供される通信アクセスの程度またはタイプは、エンドポイント間の通信を完全にするために使用される秘密および／または公開値または鍵を生成または定義するために使用される上流エンドポイントによって提供される許可情報に基づいて確立される。このようなインテグリティに基づく検証プロセスは、ネットワークに追加される新しいエンドポイントに対して（ネットワークに登録されるおよび／または構成される前にエンドポイントが正当であり予想通り動作していることを確実にするために）実行されてもよく、および／または、既に動作しているエンドポイントに（先に構成されたエンドポイントが何等かの形で信用を落とされ、インテグリティが問題視されたかを検証するために）適用されてもよい。
【００１２】
図１は、典型的な産業企業システムのレベル１０２、１０４、１０６、１０８、１１０、１１２の例示的な階層１００のブロック図を示す。図１の例示的な階層は、ＩＳＡ９５（国際計測制御学会９５）に概要が説明されているパデュー・リファレンス・モデルに従う。最低レベルでは、階層１００は製造／処理企業の物理的プロセス１０２で開始される。例えば、産業企業システムにおける物理的プロセス１０２は、処理される材料および／または製品、並びに、処理される材料および／または製品と直接相互作用する管、タンク、加熱器、コンベア、および／または、他の機器資源に対応する。階層における次のレベルは装置レベル１０４である。装置レベル１０４は、物理的プロセスを感知し、モニタリングし、および／または、操作するスマートおよび／または非スマート・フィールド装置に対応する。例えば、装置レベル１０４は、弁、アクチュエータ、温度センサ、圧力センサ等を含む。
【００１３】
更に、装置レベル１０４は、フィールド装置と相互作用するおよび／またはフィールド装置を制御する制御部および／またはＩ／Ｏ装置を含んでもよい。このような制御部およびＩ／Ｏ装置は、装置レベル１０４と階層１００においてその真上の制御システム・レベル１０６との間のインターフェイスとして機能する。制御システム・レベル１０６は、フィールド装置を直接監視し制御することで物理的プロセスを制御する。制御システム・レベル１０６における制御システムは、分散制御システム（ＤＣＳ）、監視制御データ収集（ＳＣＡＤＡ）システム、および／または、他のプロセス制御システムでもよい。典型的には、制御システム・レベル１０６は、装置レベル１０４と関連付けられるフィールド装置と直接接続される一つ以上の制御部および／またはＩ／Ｏ装置を含む。更に、制御システム・レベル１０６は、ヒューマン・マシン・インターフェース（ＨＭＩ）を提供する一つ以上のサーバーおよび／またはワークステーションを典型的には含み、オペレータは該ヒューマン・マシン・インターフェースを用いて物理的プロセスの制御を構成し、モニタリングし、および／または、調節し得る。特定の制御システムにおける制御部、Ｉ／Ｏ装置、ワークステーション、および／または、サーバーそれぞれは、本願では制御システムの制御ネットワークと称される、制御システムのネットワークを介して接続されてもよい。
【００１４】
監視システム・レベル１０８が階層１００における次のレベルであり、企業の製造および／処理を監視する動作を代表している。そのため、監視システム・レベル１０８は、典型的には、サブシステム（例えば、制御システム・レベル１０６と関連付けられる一つ以上の制御システムに対応する）、および、サブシステムと相互作用する一つ以上のワークステーションおよび／またはサーバーのシステムを含む。このようなシステムは、本願では監視システムと称される。幾つかの実施例では、監視システムは、企業内の特定の設備の製造／処理動作を監視してもよい。ワークステーション、サーバー、および、他のサブシステム（例えば、制御システム・レベル１０６と関連付けられる異なる制御システム）それぞれは、本願では監視システムの設備ネットワークまたは監視ネットワークと称される、監視システムに対するネットワークを介して接続されてもよい。
【００１５】
冠詞システム・レベル１０８の上には、企業の全ての面を管理し監督するビジネス関連のアクティビティおよび判断に対応するビジネス・システム・レベル１１０が設けられる。例示する実施例の階層１００における最高レベルは、インターネット１１２に対応する。インターネットは、理論的には、特定の企業内のレベルではないが、企業はインターネットを介して実現される通信に基づいてしばしば実行される。このように、インターネット１１２は、産業企業システムに関連するためコンピュータ・セキュリティおよびインテグリティを述べる際に説明目的で表される。
【００１６】
企業の意図する目的を達成するために、階層１００の各レベルにおけるコンピュータ・エンドポイントのインテグリティの重要性または信用性を表すインテグリティ・スケール１１４が図１の例示的な階層１００の長さ方向に沿って延在している。例示する実施例に示すように、物理的プロセスに近い階層レベルではより高い程度のインテグリティが必要となり、計算装置が物理的プロセスから離れて実行されるほどインテグリティの重要性が低くなる。例えば、企業（物理的プロセス１０２に対応する）における最低レベルの動作が予想通り動作すると信用されていない場合、そもそも企業を確立した主な目的である処理および／または製造されて結果として得られる製品に信用はなくなる。しかしながら、物理的プロセス１０２の一部として処理される物理的な機器資源および材料は、管、タンク、ホッパ等、並びに、関連する原材料に典型的には対応する。そのため、物理的プロセス１０２の正しい動作は産業企業システムにとって重要であるが、コンピュータおよびデータ・インテグリティの視点からすると、最も重要なレベルは装置レベル１０４である。装置レベル１０４は、物理的プロセス１０２に最も近く、且つ、物理的プロセス１０２と直接相互作用する計算装置またはエンドポイントに対応するため、最も重要である（即ち、対応する装置（フィールド装置、制御部、Ｉ／Ｏ装置等）のインテグリティが最も重要である）。
【００１７】
インテグリティの目的で階層１００における次に重要なレベルは制御システム・レベル１０６である。これは、制御システムが装置レベル１０４で制御部、Ｉ／Ｏ装置、および、フィールド装置の構成および実行を定めるからである。監視システム・レベル１０８でなされる判断は、典型的には、物理的プロセスに直接影響を与えず、該レベルはインテグリティに関してはそれほど重要でない。物理的プロセス１０２から離れる方向にある各連続的なレベルで必要とされるインテグリティの程度は、インターネットに到達するまで低下し続ける。インターネット１１２は、事実上誰もが接続することができ、誰もがそれを用いて通信することができるオープン・ネットワークであるため、インターネットでは、インテグリティは重要でなく、または、少なくとも期待されない。レベル間の通信を可能にしながら階層１００における低レベルで実行されるエンドポイントのインテグリティを確実にして維持するために、階層１００における低レベルでのエンドポイント間、および、高レベルでのエンドポイント間の通信には制限が設けられる。特に、通信アクセスの特質またはタイプ、並びに、通信の程度（例えば、第一のエンドポイントが通信する他のエンドポイントの数およびタイプ）は、特定のエンドポイントが破損される（例えば、セキュリティ違反によりインテグリティが失われる）機会を減少するよう正確に制御されてもよい。同様にして、システムにおける潜在的に破損されたエンドポイントが他のエンドポイントに影響を与える可能性を減少するよう制限され、具体的に制御される。
【００１８】
以下に十分に説明するように、エンドポイントを保護し、エンドポイントが破損される可能性を低減するようエンドポイント間の通信を制御することに加え、幾つかの実施例では、エンドポイントのインテグリティまたは信用性が時間における様々な点で試験されて、信用を落とした全てのエンドポイントを特定的に識別し、このようなエンドポイントからの通信を制限するおよび／または完全に拒否することで積極的に応答する。簡単に、幾つかの実施例では、例示的な階層１００における所与のレベル内のエンドポイントは、階層１００における一つ上のレベルのベットワークへの登録および／または参入許可を要請する。全通信アクセスが可能となるおよび／または許されるよう参入許可を得るためには、幾つかの実施例では、現在の状態を示す各エンドポイントによって提供される測定結果は、公知の信用できる状態（例えば、インテグリティの状態）にあるときにエンドポイントに対応する基準値と一致する必要がある。測定結果が対応する基準値と一致しない場合、通信の参入許可は完全に拒否されるか、エンドポイントは通信の特質および／または範囲が著しく制限される（例えば、ソフトウェア／ファームウェアのアップデートに制限される）是正モードにおかれる。本願記載の幾つかの実施例では、インテグリティに基づく測定は、階層１００における異なるレベルでのエンドポイント間の通信を許可する前に実行される。特に、より低い階層レベルのエンドポイントは、より高い階層レベルとの通信が可能にされる前にインテグリティについて試験される。例えば、図１の矢印１１６によって表わされるように、装置レベル１０４でのフィールド装置、または、対応する制御部および／またはＩ／Ｏ装置は、フィールド装置または対応する制御部および／またはＩ／Ｏ装置が制御システム・レベル１０６において制御システムの制御ネットワーク上で通信し得る前に対応する基準値と一致する現在の状態のインテグリティ測定値を提供する必要がある。同様にして、図１の矢印１１８によって表わされるように、制御システム・レベル１０６での制御システムは、制御システムが監視システム・レベル１０８で監視システムの監視ネットワーク上で通信し得る前に対応する基準値と一致する現在の状態のインテグリティ測定値を提供する必要がある。より高レベルの構成要素（インテグリティの重要性が低い）によるより低レベルのエンドポイント（インテグリティの重要性が高い）の本検証プロセスにより、物理的プロセス１０２に最も近いエンドポイントが予想通り（即ち、インテグリティをもって）動作していることが確実にされる。
【００１９】
図２は、図１の階層における制御システム・レベル１０６に対応する例示的な制御システム２００の概略図を示す。図２の例示的な制御システム２００は、図１の階層１００の装置レベル１０４に対応するフィールド装置２０６、２０８、２１０、２１２、２１４とインターフェイス接続される一つ以上のプロセス制御部２０２、および、一つ以上のＩ／Ｏ装置２０４を含む。図２の例示的な制御システム２００は、追加的に、一つ以上のサーバー２１６および一つ以上のオペレータステーション、アプリケーションステーション、および／または、他のワークステーション（本願ではまとめてワークステーションと称する）を含む。例示する実施例では、制御システム２００内の一つのワークステーションは構成ワークステーション２１８と指定される、あるいは、構成ワークステーションとして機能し、別のワークステーションは主ワークステーション２２０として機能する（他のワークステーションが参照番号２２２で示される）。例示する実施例では、例示的な制御部２０２、例示的なＩ／Ｏ装置２０４、例示的なサーバー２１６、および、例示的なワークステーション２１８、２２０、２２２は、本願では一般的に制御システム２００の制御ネットワークと称される、通信バスおよび／またはローカル・エリア・ネットワーク２２４を介して通信可能に接続される。
【００２０】
例示的な構成ワークステーション２１８は、制御システム２００内の装置（例えば、エンドポイント）の実行において望まれる全てのパラメータおよび論理を定める、エンジニア、オペレータ、および／または、他の担当者によって提供される構成データに基づいて構成ファイルを生成するよう、構成モジュール（ＣＭ）２２６を含む。一旦構成ファイルが生成されると、構成ワークステーション２１８は制御システム２００における制御ネットワーク２２４のエンドポイントそれぞれに構成ファイルを送信し、それにより各エンドポイントが構成され得る。
【００２１】
例示的な主ワークステーション２２０は、制御システム２００の制御ネットワーク２２４上の各エンドポイントの通信アクセスを監督、許可、および／または、制御するよう、システム・インテグリティ・モニタ（ＳＩＭ）２２８を含む。つまり、以下に十分説明するように、図２の例示的な主ワークステーション２２０のＳＩＭ２２８は、通信アクセスを許可するか通信アクセスを制限するよう制御システム２００内の他のエンドポイントのインテグリティを確認するおよび／または検証する。特に、幾つかの実施例では、ＳＩＭ２２８は、各エンドポイントと関連付けられるインテグリティ測定モジュール（ＩＭＭ）２３０によって生成される一つ以上のインテグリティ測定値を各エンドポイントから受信する。ＳＩＭ２２８でインテグリティ測定値が受信されるため、ＳＩＭ２２８はインテグリティ測定値を基準値のデータベースと比較する。測定結果が基準値と一致する場合、対応するエンドポイントは制御ネットワーク２２４上で他のエンドポイントと全通信することが認められる。他方で、インテグリティ測定値が基準値と一致しない場合、ＳＩＭ２２８は是正措置を施して通信に対する制御ネットワーク２２４へのアクセスを制限するまたは拒否する。幾つかの実施例では、主ワークステーション２２０のＳＩＭ２２８は、全ての変化を検出し、相応じて応答するよう制御ネットワーク２２４上の他のエンドポイントのインテグリティをモニタリングする。主ワークステーション２２０および構成ワークステーション２１８は別個のワークステーションとして表わされているが、幾つかの実施例では、単一のワークステーションが両機能（例えば、ＣＭ２２６およびＳＩＭ２２８の両方を実行する）を行ってもよい。
【００２２】
図２の例示的な制御ネットワーク２２４は、任意の所望の通信媒体およびプロトコルを用いて実行されてもよい。例えば、例示的な制御ネットワーク２２４は、有線および／または無線イーサネット（登録商標）通信スキームに基づいてもよい。しかしながら、全ての他の好適な通信媒体および／またはプロトコルが使用され得る。
【００２３】
図２の例示的なＩ／Ｏ装置２０４は、デジタル・データ・バス２３２を介して複数のスマート・フィールド装置２１０、２１２、２１４に接続される。スマート・フィールド装置２１０、２１２、２１４は、フィールドバス対応弁、アクチュエータ、センサ等でもよく、この場合、スマート・フィールド装置２１０、２１２、２１４は周知のファウンデーション・フィールドバス・プロトコルを用いデジタル・データ・バス２３２を介して通信する。当然のことながら、他のタイプのスマート・フィールド装置および通信プロトコルが代わりに使用されてもよい。例えば、スマート・フィールド装置２１０、２１２、２１４は、代わりに、周知のプロフィバスおよびＨＡＲＴ通信プロトコルを用いデータ・バス２３２を介して通信するプロフィバスおよび／またはＨＡＲＴ対応装置でもよい。例示的なスマート・フィールド装置２１０、２１２、２１４に加えて、一つ以上の非スマート・フィールド装置２０６、２０８が例示的な制御部２０２に通信可能に接続されてもよい。図２の例示的な非スマート・フィールド装置２０６、２０８は、例えば、それぞれの有線リンクを介して制御部２０２と通信する従来の４〜２０ミリアンプ（ｍＡ）または０乃至１０ボルト直流（ＶＤＣ）装置でもよい。典型的には、フィールド装置２０６、２０８、２１０、２１２、２１４は、それぞれの指定された機能を実行することに特異的な比較的制限された処理能力を有するよう設計される。したがって、フィールド装置は、フィールド装置の現在の状態を示すインテグリティ測定値を生成するＩＭＭ２３０を実行しないこともある。しかしながら、幾つかの実施例では、一つ以上のフィールド装置２０６、２０８、２１０、２１２、２１４が上述の他の装置と同様にＩＭＭ２３０を実行してもよい。幾つかのこのような実施例では、対応する制御部２０２またはＩ／Ｏ装置２０４は、フィールド装置２０６、２０８、２１０、２１２、２１４とそれぞれの制御部２０２またはＩ／Ｏ装置２０４との間の通信を統制する別個のＳＩＭを実行してもよい。他のこのような実施例では、主ワークステーション２２０によって実行されるＳＩＭ２２８は、このようなフィールド装置の通信アクセスを制御してもよい。
【００２４】
図２は、以下により詳細に説明するインテグリティ測定値に基づいて通信参入許可を制御する方法および装置が有利的に使用される例示的な制御システム２００を例示するが、当業者には本願記載の教授が、所望の場合には、図２の例示する実施例よりも複雑なあるいは単純な（例えば、一つ以上の地理的場所にわたって一つ以上の制御部を有する等）他の制御システムにおいて有利的に用いられてもよいことは容易に理解されるであろう。
【００２５】
図３は、図１の階層１００における監視システム・レベル１０８に対応する例示的な監視システム３００の概略図を示す。図３の例示的な監視システム３００は、図２の制御システム２００、および、図１の階層１００の制御システム・レベル１０６に対応する別の制御システム３０２を含む。図３の例示的な監視システム３００は、追加的に、一つ以上のサーバー３０４および一つ以上のワークステーション３０６、３０８を含む。例示する実施例では、制御システム２００、３０２、サーバー３０４、および、ワークステーション３０６、３０８は、本願では一般的に監視システム３００に対する監視ネットワークと称される通信バスおよび／またはローカル・エリア・ネットワーク３１０を介して通信可能に接続される。
【００２６】
例示する実施例では、ワークステーション３０６の一つは主ワークステーションとして動作して、図２の制御システム２００における主ワークステーション２２０と同じにあるいは同じように、監視ネットワーク３１０に接続される他のエンドポイント（例えば、監視システム３００のサブシステムとして個々のサーバー３０４およびワークステーション３０８、または、制御システム２００、３０２）の通信アクセスを監督するおよび／または制御する。つまり、例示する実施例では、主ワークステーション３０６には、他のエンドポイントの現在の状態を示すインテグリティ測定値を受信し、測定結果を基準値と比較するようＳＩＭ２２８が設けられる。例示する実施例では、サーバー３０４および／またはワークステーション３０８と関連付けられるインテグリティ測定値は、サーバー３０４およびワークステーション３０８それぞれの対応するＩＭＭを介して生成される。各制御システム２００、３０２は（監視システム３００の視点から）エンドポイントとして扱われてもよいが、制御システム２００、３０２が多数の装置のサブシステムを代表するため、単一のＩＭＭが主ワークステーション３０６のＳＩＭ２２８によって分析されるべきインテグリティ測定値を生成することはできない。したがって、幾つかの実施例では、各制御システム内の主ワークステーション３０６のＳＩＭ２２８（例えば、図２の制御システム２００の主ワークステーション２２０）は、監視システム３００の主ワークステーション３０６のＳＩＭ２２８に提供されるべき全サブシステムの状態を示す一つ以上のインテグリティ測定値を生成する。幾つかの実施例では、全制御システム（監視ネットワークにおけるエンドポイントとして）に対するインテグリティ測定値は、制御システムの制御ネットワークの各エンドポイントで実行されるＩＭＭ２３０それぞれから得られるインテグリティ測定値の組み合わせに基づく。
【００２７】
図３は、本願記載の教授が有利的に使用される例示的な監視システム３００を例示するが、当業者には本願記載の教授が、所望の場合には、図３の例示する実施例よりも複雑なあるいは単純な（例えば、一つ以上の地理的場所にわたってより多くの制御システムを有する等）他の制御システムにおいて有利的に用いられてもよいことは容易に理解されるであろう。
【００２８】
図４は、図２の例示的な構成モジュール（ＣＭ）２２６を実行する例示的な方法を示す。例示する実施例では、ＣＭ２２６は、例示的なユーザ・インターフェイス４０２、例示的な構成ファイル生成部４０４、例示的な基準値生成部４０６、例示的な構成データベース４０８、および、例示的な通信インターフェイス４１０を含む。
【００２９】
図４の例示的なＣＭ２２６には、ＣＭ２２６と構成エンジニアおよび／または他のユーザとの間の相互作用を可能にするよう例示的なユーザ・インターフェイス４０２が設けられる。特に、システム・エンジニアは、ユーザ・インターフェイス４０２を介して、パラメータを割り当て、制御論理を定義し、ＩＰアドレスを特定し、物理的カードに対する名前を指定し、および／または、制御システム２００内の各エンドポイントを構成するに必要な全ての他の関連する構成データを提供する。例示する実施例の例示的な構成ファイル生成部４０４は、入力された構成データを用いて構成データが適用されるべきプロジェクトまたは制御システムに対する構成ファイルを生成する。幾つかの実施例では、構成データおよび結果として得られる構成ファイルは、例示的な構成データベース４０８に記憶される。
【００３０】
図４の例示する実施例では、ＣＭ２２６には、構成ファイルに基づきインテングリティ（例えば、インテグリティ測定モジュール（ＩＭＭ））についてモニタリングされるべき制御システム２００における各エンドポイントに対して構成基準値を計算するよう例示的な基準値生成部４０６が設けられる。つまり、図２の例示する実施例に基づき、ＣＭ２２６の例示的な構成基準値生成部４０６は、制御部２０２、Ｉ／Ｏ装置２０４、サーバー２１６、および、ワークステーション２１８、２２０、２２２それぞれに対して基準値を生成する。幾つかの実施例では、基準値は、関心のある特定のエンドポイントと関連付けられる構成データの暗号チェックサムとして生成されるまたは計算される。このような実施例では、チェックサムが元の構成ファイル（システム・エンジニアによって開発される）に基づいて計算されるため、チェックサムの計算値は、各エンドポイントの正しい構成に対応する。このように、これらのチェックサム値（インテグリティ測定値）は、後の時点で、エンドポイントの実際の構成を比較するよう、ベースラインまたは基準として使用され得る。そのため、特定のエンドポイントが後の時点で自身の構成のインテグリティ測定値を生成する（チェックサムを計算する）場合、生成されたインテグリティ測定値は基準値と一致するはずである。後に生成されたインテグリティ測定値が対応する基準値と一致しない場合、構成の状態が予想通りでなく、あるいは、元々定義された通りでないため、インテグリティの信用がなくなったエンドポイントに何か問題がある可能性がある。追加的にあるいは代替的に、基準値生成部４０６は、構成データに基づいて各エンドポイントと関連付けられるハードウェア（周辺機器）の状態に対応する基準ルールを計算してもよい。
【００３１】
図４の例示する実施例では、ＣＭ２２６には、ＣＭ２２６と制御システム２００における他のエンドポイントとの間の通信を可能にするよう例示的な通信インターフェイス４０２が設けられる。幾つかの実施例では、一旦生成されると、構成ファイルは通信インターフェイス４１０を介して各エンドポイントに送信され、各装置がシステム・エンジニアの設計に応じて構成されるようにする。更に、幾つかの実施例では、通信インターフェイス４１０は、後の時点で取得されるエンドポイントのインテグリティ測定値と比較するために、主ワークステーション２２０のシステム・インテグリティ・モニタ（ＳＩＭ）２２８に生成された基準値を供給するよう使用される。
【００３２】
図２のＣＭ２２６を実行する例示的な方法は図４に示されるが、図４に例示する素子、プロセス、および／または、装置のうちの一つ以上が全ての他の方法で組み合わされ、分割され、再配置され、省略され、排除され、および／または、実行されてもよい。更に、例示的なユーザ・インターフェイス４０２、例示的な構成ファイル生成部４０４、例示的な基準値生成部４０６、例示的な構成データベース４０８、例示的な通信インターフェイス４１０、および／または、より一般的には、図４の例示的なＣＭ２２６は、ハードウェア、ソフトウェア、ファームウェア、および／または、ハードウェア、ソフトウェア、および／または、ファームウェアの全ての組み合わせによって実行されてもよい。したがって、例えば、例示的なユーザ・インターフェイス４０２、例示的な構成ファイル生成部４０４、例示的な基準値生成部４０６、例示的な構成データベース４０８、例示的な通信インターフェイス４１０、および／または、より一般的には、例示的なＣＭ２２６のいずれかは、一つ以上のアナログまたはデジタル回路、論理回路、プログラマブル・プロセッサ、特定用途向け集積回路（ＡＳＩＣ）、プログラマブル論理回路（ＰＬＤ）、および／または、フィールド・プログラマブル論理回路（ＦＰＬＤ）によって実行され得る。純粋なソフトウェアおよび／またはファームウェア実行を網羅するよう本特許の装置またはシステムクレームのいずれかを読むと、例示的なユーザ・インターフェイス４０２、例示的な構成ファイル生成部４０４、例示的な基準値生成部４０６、例示的な構成データベース４０８、および／または、例示的な通信インターフェイス４１０の少なくとも一つは、ここでは、ソフトウェアおよび／またはファームウェアを記憶するメモリ、デジタル多用途ディスク（ＤＶＤ）、コンパクト・ディスク（ＣＤ）、ブルーレイ・ディスク等の有形コンピュータ読み取り可能記憶装置またはストレージ・ディスクを含むよう明確に定義される。更に、図２の例示的なＣＭ２２６は、図４に例示する素子、プロセス、および／または、装置に加えてあるいはそれらの代わりに一つ以上の素子、プロセス、および／または、装置を含んでもよく、および／または、例示する素子、プロセス、および、装置のいずれかを一つ以上または全てを含んでもよい。
【００３３】
図５は、図２および／または図３のインテグリティ測定モジュール（ＩＭＭ）の１例２３０を実装する方法の１実施例を示す。図示の実施例では、ＩＭＭ２３０はインテグリティ測定ジェネレータの１例５０２と、インテグリティ測定自己テスタの１例５０４と、インテグリティ測定コントローラの１例５０６と、通信認証器の１例５０８と、通信インターフェースの１例５１０と、ソフトウェア測定レジスタの１例５１２と、構成測定レジスタの１例５１４と、ハードウェア測定レジスタの１例５１６と、許可情報データベースの１例５１８と、構成データベースの１例５２０とを含む。
【００３４】
図５の図示の実施例では、ＩＭＭ２３０はインテグリティ測定ジェネレータの例５０２を備えて、ＩＭＭ２３０を実装する特定のエンドポイントと関連するインテグリティ測定値を算出するか、または生成する。いくつかの実施例では、インテグリティ測定値は、本明細書でソフトウェアインテグリティ測定値と呼ばれる、ＩＭＭ２３０を実装するエンドポイントのソフトウェアおよび／またはファームウェアと対応する。いくつかの実施例では、ソフトウェアインテグリティ測定値が、対応するエンドポイントのソフトウェアスタックをロードしているブートタイム中に生成される。そのようないくつかの実施例では、ソフトウェアそれぞれがロードされる時、ソフトウェア用暗号チェックサムをインテグリティ測定ジェネレータ５０２が計算して、ソフトウェア測定レジスタの例５１２に付加する（例えば、予め計算したチェックサム値に付加する）。一部の実施例では、ソフトウェアのすべてがロードされると（またはソフトウェアすべてがロードされる前に）計算されたチェックサムの結果としての文字列がハッシュアルゴリズムを通過して、ソフトウェアインテグリティ測定値をより扱いやすくすることができる（例えば、メモリの消費が少ないなど）。一部の実施例では、ＩＭＭ２３０がハードウェアデバイス（例えば、セキュリティチップ）として実装されて、エンドポイントが実装されたその他のソフトウェアと関わりなくなっている。あるいは、一部の実施例では、別のセキュリティデバイスが利用できない場合（例えば、既存のデバイス内で）、ＩＭＭ２３０が対応するエンドポイントにロードされるソフトウェアとして実装されてもよい。
【００３５】
一部の実施例では、インテグリティ測定値が、本明細書で構成インテグリティ測定値と呼ばれる、ＩＭＭ２３０を実装するエンドポイントの構成に、代替としてまたは追加として対応する。上述のように、システムエンジニアまたは他の人員は、構成ワークステーション２１８で構成ファイルを生成し、制御システム２００のエンドポイントそれぞれに提供することができる。いくつかの実施例では、特定のエンドポイントそれぞれに適切であるシステム用の構成ファイルの部分がそのエンドポイントを構成するために用いられる。いくつかの実施例では、エンドポイントが構成されると、エンドポイントを構成するパラメータ、ロジックおよび／または他の構成データベース５２０がＩＭＭ２３０の構成データベースの例５２０に記憶される。それによって一部の実施例では、対応するエンドポイントに割り当てられた構成データベース５２０の構成データベースの各部分の暗号チェックサムを計算することで構成インテグリティ測定値が発生する。構成データの各部分用のチェックサムをインテグリティ測定ジェネレータ５０２が計算すると、チェックサムは対応する構成測定レジスタ５１４の予め計算されたチェックサムに付加される。一部の実施例では、単一のチェックサムがエンドポイントに割り当てられた全体の構成ファイル用に計算される。他の実施例では、複数のチェックサムが構成データの様々な部分用に計算されて、組み合わされる（例えば、文字列に互いに付加される）。一部の実施例では、別の構成ファイルがソフトウェアスタックの別の層に適用されてもよいし、かつ／または、そうでない場合、エンドポイントが複数の構成ファイルを記憶してもよい（例えば、種々のバージョンを）。一部の実施例では、別のチェックサムが構成ファイルそれぞれと関連する構成データ用に計算されて、結果の値が互いに付加される。一部の実施例では、チェックサムがすべての構成データ用に計算されると（または、すべての構成データが解析される前に）、計算されたチェックサムの結果としての文字列がハッシュアルゴリズムを通過することができ、構成インテグリティ測定値をより扱いやすくすることができる。
【００３６】
一部の実施例では、インテグリティ測定値が、本明細書でハードウェアインテグリティ測定値と呼ばれる、ＩＭＭ２３０を実装するエンドポイントと関連するハードウェアに、代替としてまたは追加として対応する。一部の実施例では、エンドポイントと関連するハードウェアはエンドポイントに差し込まれているか、またはそうでない場合、エンドポイントと結合する（例えば、コントローラに差し込まれたＩ／Ｏカード）周辺機器に対応する。一部の実施例では、エンドポイントに関連する周辺機器それぞれの暗号チェックサムを計算することでハードウェアインテグリティ測定値が生成される。一部の実施例では、測定値（例えば、チェックサム）が生成されるべき周辺機器は構成データベース５２０に記憶された構成データに基づいて特定される。そのような実施例の一部では、インテグリティ測定値が周辺機器に関連する構成ファイルに基づいて生成される。他の実施例では、周辺機器はエンドポイントからの要求に応答して、その状態を示すチェックサム値を提供する。周辺機器それぞれのチェックサムがインテグリティ測定ジェネレータ５０２によって生成されると、それぞれのチェックサムは、対応するハードウェア測定レジスタ５１６の予め計算されたチェックサムに付加される。一部の実施例では、エンドポイントに関連するハードウェアすべて（またはいずれか一部）のチェックサムが計算されると、計算されたチェックサムの結果としての文字列がハッシュアルゴリズムを通過して、ハードウェアインテグリティ測定値をより扱いやすくすることができる。
【００３７】
図５の図示の実施例では、ＩＭＭ２３０はインテグリティ測定自己テスタの例５０４を備えて、インテグリティ測定値を生成する際に利用する機能上で予備テストを実施する。すなわち、いくつかの実施例では、インテグリティ測定自己テスタ５０４はインテグリティ測定ジェネレータ５０２の性能の内部テストを実行して、インテグリティ測定値に対応する値を適切に計算する。例えば、インテグリティ測定自己テスタ５０４は、インテグリティ測定ジェネレータ５０２が実装するハッシュアルゴリズムおよびチェックサムアルゴリズムが既知の入力に基づいて期待される出力を生成することを検証する。
【００３８】
図５の図示の実施例では、ＩＭＭ２３０はインテグリティ測定自己コントローラの例５０６を備え、ＩＭＭ２３０の様々な動作を制御する。一部の実施例では、インテグリティ測定コントローラ５０６はＩＭＭ２３０の例の他の部分への指令または命令を通信し、それら部分の動作を制御する。例えば、インテグリティ測定ジェネレータ５０２がインテグリティ測定値を生成し、かつレジスタ５１２、５１４、５１６それぞれに値が加算される時、通信インターフェース５１０を介してインテグリティ測定値が報告される時、レジスタ５１２、５１４、５１６の記憶されたインテグリティ測定値を消去する時などに、インテグリティ測定コントローラ５０６は指示を出す。
【００３９】
図５の図示の実施例では、対応する制御ネットワークに完全な通信アクセスが与えられた後、ＩＭＭ２３０は通信認証器の例５０８を備えて、他のエンドポイントとの通信を認証し、検証する。一部の実施例では、デジタル署名、暗号化／復号化、認証などのための秘密および／または公開値を生成するためにエンドポイントが使用する許可情報をＳＩＭ２２８が提供することで完全な通信アクセスが可能になる。
【００４０】
一部の実施例では、エンドポイントのインテグリティが確認または検証された後で、通信認証器５０８が使用する許可情報がＩＭＭ２３０に与えられ、完全な通信アクセスが可能になる。例えば、新しい構成ファイルを受信すると、エンドポイントの初期構成および初期認定の部分は、エンドポイントの再起動を必要とする。再起動中、一部の実施例では、上述の通りインテグリティ測定ジェネレータ５０２がソフトウェアインテグリティ測定値を生成する。一部の実施例では、構成インテグリティ測定値および／またはハードウェアインテグリティ測定値もまた生成されてもよい。これらのインテグリティ測定値はエンドポイントの現在の状態を示す（すなわち、再起動時の）。構成ファイルに従って構成された後、新たに認定されたエンドポイントは制御システムに登録および承認を要求することができる。制御ネットワーク上で通信することを許可される前にインテグリティ測定値は基準値と比較される。インテグリティ測定値が基準値と一致すれば、エンドポイントは、秘密および／または関連する公開値を生成する許可情報を与えられて完全な通信アクセスを得る。一部の実施例では、対応する許可情報が対応するネットワークの他のエンドポイントに与えられて、エンドポイントそれぞれが新しく承認されたエンドポイントと（同様に互いに）通信することが可能になる。
【００４１】
特定のエンドポイントが初期構成の後でおよびエンドポイントに完全な通信アクセスを与える許可情報を受領した後で、いくつかの方法で危険にさらされる可能性がある。従って、一部の実施例では、エンドポイントのインテグリティは時間と共に監視されるか、またはやがて異なる点で検証され、インテグリティを無くしたことを示すエンドポイントの状態のいかなる変化も検出する（例えば、もはや信頼できる状態ではない）。一部の実施例では、危険にさらされたエンドポイントが検出されると、新規の許可情報が将来の通信での使用のため他のエンドポイントすべてに分散される。この方法では、以前受領した許可情報はもはや有効ではなく、危険にさらされたエンドポイントは今後の完全な通信を否認される。さらに、そのような一部の実施例では、危険にさらされたエンドポイントに独特な許可情報を与えることによりエンドポイントを治療モードに配置し、かつ／または限定的性質の通信アクセスのみ可能になる。
【００４２】
いくつかの実施例では、以前得た許可情報を使用するインテグリティが疑わしいエンドポイントに対する懸念を、エンドポイントが許可情報を最初に受け取った時と同じ状態にある時だけ後で復号化して使用することができる方法で通信認証器５０８が最初に受領した時、許可情報を暗号化することにより解決する。このように、エンドポイントが現在の状態に悪影響を及ぼすなんらかの方法で危険にさらされた場合（インテグリティ測定値の変化で示されるように）、エンドポイントはもはや他のエンドポイントと通信するために必要な許可情報にアクセスすること（復号する）ができないであろう。その結果、いくつかの実施例では、危険にさらされた一エンドポイントからの通信を、ＳＩＭ２２８がエンドポイントのインテグリティの喪失を検出することなく防ぐことができる。
【００４３】
エンドポイントが送信する一部のメッセージはエンドポイント用のインテグリティ測定値の報告を含む。ネットワークセキュリティの課題は虚偽の報告をするエンドポイントのことである。例えば、エンドポイントのインテグリティがインテグリティ測定値を既知の信頼できる状態に対応する基準値と比較することにより検証される限りは、感染したエンドポイントが、実際のエンドポイントの状態および／または現在のエンドポイントの状態から生成されるインテグリティ測定値を提供するより基準値と一致する以前決定したインテグリティ測定値をただ単に繰り返す可能性がある（それはエンドポイントが感染していることを示す）。この問題を解決するために、いくつかの実施例では、ＩＭＭ２３０はインテグリティ測定値を要求するたびにノンスを受け取る（一度だけ使用する固有の値）。そのような一部の実施例では、要求に応答する際に通信認証器５０８はインテグリティ測定値とノンスを組み合わせて、その結果、インテグリティ測定値用の前から存在する値（ノンス無しで）をただ単に報告するエンドポイントを検出することができる。
【００４４】
図２および／または図３のＩＭＭ２３０を実装する方法の１実施例を図５に図示するが、図５に図示する１個または複数の構成部分、１つまたは複数のプロセス、および／あるいは１個または複数のデバイスは、どのような他の方法で、組み合わされ、分割され、再構成され、省略され、削除され、および／または実装されてもよい。さらに、インテグリティ測定ジェネレータの例５０２と、インテグリティ測定自己テスタの例５０４と、インテグリティ測定コントローラの例５０６と、通信認証器の例５０８と、通信インターフェースの例５１０と、ソフトウェア測定レジスタの例５１２と、構成測定レジスタの例５１４と、ハードウェア測定レジスタの例５１６と、許可情報データベースの例５１８と、構成データベースの例５２０、および／または、より一般に図５のＩＭＭ２３０の例がハードウェア、ソフトウェア、ファームウェアおよび／またはハードウェア、ソフトウェアおよび／またはファームウェアの組み合わせによって実装されてもよい。従って、例えば、インテグリティ測定ジェネレータの例５０２と、インテグリティ測定自己テスタの例５０４と、インテグリティ測定コントローラの例５０６と、通信認証器の例５０８と、通信インターフェースの例５１０と、ソフトウェア測定レジスタの例５１２と、構成測定レジスタの例５１４と、ハードウェア測定レジスタの例５１６と、許可情報データベースの例５１８と、構成データベースの例５２０のいずれか、および／または、より一般に図５のＩＭＭ２３０の例が、１個または複数のアナログ回路、１個または複数のデジタル回路、１個または複数の論理回路、１個または複数のプログラム可能プロセッサ、１個または複数の特定用途向け集積回路（ＡＳＩＣ）、１個または複数のプログラム可能論理デバイス（ＰＬＤおよび／または再書き換え可能プログラム可能論理デバイス（ＦＰＬＤ））によって実装されてもよい。単にソフトウェアおよび／またはファームウェアの実装を包含する本特許の装置またはシステムのいずれの請求項を読んでも、インテグリティ測定ジェネレータの例５０２と、インテグリティ測定自己テスタの例５０４と、インテグリティ測定コントローラの例５０６と、通信認証器の例５０８と、通信インターフェースの例５１０と、ソフトウェア測定レジスタの例５１２と、構成測定レジスタの例５１４と、ハードウェア測定レジスタの例５１６と、許可情報データベースの例５１８、および／または構成データベースの例５２０の少なくとも一つが、これによって明白に、ソフトウェアおよび／またはファームウェアを記憶する、メモリ、デジタル多用途ディスク（ＤＶＤ）、コンパクトディスク（ＣＤ）、ブルーレイディスクなどの有形のコンピュータ可読記憶デバイスまたは記憶ディスクを含むことを規定される。さらに、図２および／または図３のＩＭＭ２３０の例は、図５に図示のものに加えて、またはその代わりに、１個または複数の構成部分、１個または複数のプロセス、および／あるいは１個または複数のデバイスを含んでもよく、および／または図示の構成部分、図示のプロセスおよび図示のデバイスのいずれか２つ以上、またはそれらすべてを含んでもよい。
【００４５】
図６は、図２および／または図３のシステムインテグリティモニタ（ＳＩＭ）の例２２８を実装する方法の１実施例を図示する。図示の実施例では、ＳＩＭ２２８は、通信インターフェースの１例６０２と、インテグリティ測定コンパレータの１例６０４と、許可コントローラの１例６０６と、インテグリティ測定ジェネレータの１例６０８と、インテグリティ測定自己テスタの１例６１０と、インテグリティモニタコントローラの１例６１２と、ユーザインターフェースの１例６１４と、基準値データベースの１例６１６と、インテグリティ測定データベースの１例６１８と、許可情報データベースの１例６２０と、ソフトウェア測定レジスタの１例６２２と、ハードウェア測定レジスタの１例６２４と、構成測定レジスタの１例６２６を含む。
【００４６】
図６の図示の実施例では、ＳＩＭ２２８は通信インターフェース６０２を備え、対応するネットワークの他のエンドポイントと通信する。例えば、ＳＩＭ２２８の通信インターフェース６０２は、他のエンドポイントからのインテグリティ測定値の要求を発信する。同様に、通信インターフェースの例６０２は、他のエンドポイントのＩＭＭ２３０および／またはサブシステム（例えば、監視システム３００のエンドポイントとしての制御システム２００）の１次ワークステーションのＳＩＭ２２８からインテグリティ測定値の報告を受信する。そのように、一部の実施例では、制御システムの１次ワークステーションのＳＩＭ２２８は、監視システムの１次ワークステーションのＳＩＭ２２８にインテグリティ測定値を伝達することができる。
【００４７】
図６のＳＩＭ２２８の例はインテグリティ測定コンパレータの例６０４を備え、インテグリティ測定値を基準値データベースの例６１６に記憶された基準値と比較する。一部の実施例では、基準値は、構成ワークステーション２１８の構成モジュール２２６で生成された構成ファイルに基づいて受信され、かつ／または生成される。一部の実施例では、基準値は、対応するエンドポイントの相手先商標製造会社が与える値に基づいてユーザインターフェースの例６１４を介して値を手動入力するユーザから受領する（例えば、デバイスと共に出荷された書類に含まれて、および／またはオンラインで提供されて）。このように、値は製造時のように信頼できるので、出荷時にデバイスと共にどのように改ざんされても検出することができる。加えてまたは代替として、一部の実施例では、エンドポイントが対応するネットワークに初期に構成され、認定され、および／または追加された時、一部、またはすべての基準値が各エンドポイントのＩＭＭ２３０が生成するインテグリティ測定値に基づいている。そのような一部の実施例では、エンジニアおよび／またはユーザが、そのようなインテグリティ測定値を基準値として承認する。この方法では、エンジニアは特定のエンドポイントそれぞれが正しく構成され、やがて後の時点でこれらの値がエンドポイントのインテグリティをテストした際に使用されたものになると期待されたように機能することを検証する機会を与えられる。
【００４８】
図６の図示の実施例では、ＳＩＭ２２８は許可コントローラの例６０６を備え、報告されたインテグリティ測定値を記憶された基準値と比較した結果に基づいて、適切な通信承認またはエンドポイントへのアクセスを確立する。いくつかの実施例では、インテグリティ測定値が基準値と一致する場合、許可コントローラ６０６が許可情報をエンドポイントに提供することにより他の承認されたエンドポイントすべてがそれらエンドポイント相互間で通信できるようになる。いくつかの実施例では、他のエンドポイントに送出された許可情報も、次の基準用にＳＩＭ２２８の許可情報データベースの例６２０に記憶される。
【００４９】
一部の実施例では、インテグリティ測定値が対応する基準値と一致しない場合、許可コントローラ６０６が改善措置を採る。一部の実施例では、改善措置は、エンドポイントへの通信アクセスを遮断することを含む（例えば、他のエンドポイントに新しい許可情報を提供することにより）。他の実施例では、エンドポイントへの通信アクセスは完全には遮断されないが、所定の方法に限定される。例えば、エンドポイントはエンドポイントにファームウェア更新の通信アクセスに限定する固有の許可情報を提供されるかもしれない（例えば、実行してもよい通信はエンドポイントのファームウェアの更新に関連することだけ）。一部の実施例では、エンドポイントはエンドポイントに構成の通信アクセスに限定する固有の許可情報を提供されるかもしれない（例えば、実行してもよい通信はエンドポイントの構成を更新することに関連することだけ）。一部の実施例では、エンドポイントからの通信が許可されてもよいが、そのような通信は警告を与えられる。一部の実施例では、許可コントローラ６０６は警報および／または警告を発して、ユーザにインテグリティの喪失の恐れがあることを知らせる。一部の実施例では、破損したエンドポイントからの通信を防止することに加えて、許可コントローラ６０６は許可情報を冗長なエンドポイントまたはフェイルオーバーエンドポイントに提供して、破損したエンドポイントの役割を引き継ぐ。一部の実施例では、許可コントローラ６０６は上述の改善措置のいずれの組み合わせを実装してもよい。
【００５０】
さらに、いくつかの実施例では、許可コントローラ６０６は応答に対応するＩＭＭ２３０が使用するインテグリティ測定値の要求と一緒に与えられるノンス値を生成し、その結果エンドポイントからの応答を正当であると検証してもよい。
【００５１】
図６の図示の実施例では、ＳＩＭ２２８はインテグリティ測定ジェネレータ６０８を備え、ＳＩＭ２２８が監視しているエンドポイントのシステム全体のインテグリティの状態を示すインテグリティ測定値を生成する。一部の実施例では、そのようなシステム全体のインテグリティ測定値が、ＳＩＭ２２８が監視している関連するネットワークのそれぞれのエンドポイントから収集したインテグリティ測定値を組み合わせて生成される。この組み合わせたインテグリティ測定値は図１の階層１００のより高いレベルと関連するワークステーションで他のＳＩＭ２２８に報告されてもよい。一部の実施例では、インテグリティ測定ジェネレータ６０８が、ネットワークの各エンドポイントから報告された各インテグリティ測定値を対応するソフトウェアレジスタ６２２、ハードウェアレジスタ６２４、および構成レジスタ６２６に付加し、また値の結果としての文字列用にチェックサムを計算することにより組み合わされたインテグリティ測定値を生成する。一部の実施例では、ＳＩＭ２２８は各エンドポイントからのインテグリティ測定値を要求し、その後組み合わされたインテグリティ測定値を生成する。加えてまたは代替として、組み合わされたインテグリティ測定値はインテグリティ測定データベース６１８に記憶された以前報告されたインテグリティ測定値に基づいて生成されてもよい。
【００５２】
図６の図示の実施例では、ＳＩＭ２２８はインテグリティ測定自己テスタの例６１０を備えて、インテグリティ測定値を生成する際に利用する機能上で予備テストを実施する。すなわち、いくつかの実施例では、インテグリティ測定自己テスタ６１０はインテグリティ測定ジェネレータ６０８の性能の内部テストを実行して、インテグリティ測定値に対応する値（例えば、チェックサム）を適切に計算する。例えば、インテグリティ測定自己テスタ６１０は、インテグリティ測定ジェネレータ６０８が実装するハッシュアルゴリズムおよびチェックサムアルゴリズムが既知の入力に基づいて期待される出力を発生することを検証する。
【００５３】
図６の図示の実施例では、ＳＩＭ２２８はインテグリティモニタコントローラの例６１２を備え、ＳＩＭ２２８の様々な動作を制御する。一部の実施例では、インテグリティモニタコントローラ６１２はＳＩＭ２２８の例の他の部分への指令または命令を通信し、それらの部分の動作を制御する。例えば、インテグリティモニタコントローラ６１２はインテグリティ測定値を他のエンドポイントのＩＭＭ２３０から要求されるスケジュールを維持することができる。一部の実施例では、順序が文字列全体の結果のチェックサム値に影響を与えるので、インテグリティモニタコントローラ６１２は、異なるエンドポイントからの異なるインテグリティ測定値が組み合わされたインテグリティ測定値を生成するために組み合わされる順序を制御し、および／または規定する。
【００５４】
図２および／または図３のＳＩＭ２２８を実装する方法の１実施例を図６に図示するが、図６に図示する１個または複数の構成部分、１つまたは複数のプロセス、および／あるいは１個または複数のデバイスは、どのような他の方法で、組み合わされ、分割され、再構成され、省略され、削除され、および／または実装されてもよい。さらに、インテグリティ通信インターフェースの例６０２と、インテグリティ測定コンパレータの例６０４と、許可コントローラの例６０６と、インテグリティ測定ジェネレータの例６０８と、インテグリティ測定自己テスタの例６１０と、インテグリティモニタコントローラの例６１２と、ユーザインターフェースの例６１４と、基準値データベースの例６１６と、インテグリティ測定データベースの例６１８と、許可情報データベースの例６２０と、ソフトウェア測定レジスタ６２２と、ハードウェア測定レジスタ６２４と、構成測定レジスタ６２６、および／または、より一般に図６のＳＩＭ２２８の例がハードウェア、ソフトウェア、ファームウェアおよび／またはハードウェア、ソフトウェアおよび／またはファームウェアのどのような組み合わせにより実装されてもよい。従って、例えば、通信インターフェースの例６０２と、インテグリティ測定コンパレータの例６０４と、許可コントローラの例６０６と、インテグリティ測定ジェネレータの例６０８と、インテグリティ測定自己テスタの例６１０と、インテグリティモニタコントローラの例６１２と、ユーザインターフェースの例６１４と、基準値データベースの例６１６と、インテグリティ測定データベースの例６１８と、許可情報データベースの例６２０と、ソフトウェア測定レジスタ６２２と、ハードウェア測定レジスタ６２４と、構成測定レジスタ６２６のいずれか、および／または、より一般にＳＩＭ２２８の例が、１個または複数のアナログ回路あるいは１個または複数のデジタル回路、１個または複数の論理回路、１個または複数のプログラム可能プロセッサ、１個または複数の特定用途向け集積回路（ＡＳＩＣ）、１個または複数のプログラム可能論理デバイス（ＰＬＤおよび／または再書き換え可能プログラム可能論理デバイス（ＦＰＬＤ））によって実装されてもよい。単にソフトウェアおよび／またはファームウェアの実装を包含する本特許の装置またはシステムのいずれの請求項を読んでも、通信インターフェースの例６０２と、インテグリティ測定コンパレータの例６０４と、許可コントローラの例６０６と、インテグリティ測定ジェネレータの例６０８と、インテグリティ測定自己テスタの例６１０と、インテグリティモニタコントローラの例６１２と、ユーザインターフェースの例６１４と、基準値データベースの例６１６と、インテグリティ測定データベースの例６１８と、許可情報データベースの例６２０と、ソフトウェア測定レジスタ６２２と、ハードウェア測定レジスタ６２４および／または構成測定レジスタ６２６の少なくとも一つが、これによって明白に、ソフトウェアおよび／またはファームウェアを記憶するメモリ、デジタル多用途ディスク（ＤＶＤ）、コンパクトディスク（ＣＤ）、ブルーレイディスクなどの有形のコンピュータ可読記憶デバイスまたは記憶ディスクを含むことを規定される。さらに、図２および／または図３のＳＩＭ２２８の例は、図６に図示のものに加えて、またはその代わりに、１個または複数の構成部分、１個または複数のプロセス、および／あるいは１個または複数のデバイスを含んでもよく、および／または図示の構成部分、図示のプロセスおよび図示のデバイスのいずれか２つ以上、またはそれらすべてを含んでもよい。
【００５５】
図２のＣＭ２２６の例を実装する方法の１実施例を表す流れ図を図７に示す。図２および／または図３のＩＭＭ２３０の例を実装する方法の実施例を表す流れ図を図８〜１０に示す。図２および／または図３のＳＩＭ２２８の例を実装する方法の実施例を表す流れ図を図１１〜１６に示す。それらの方法は、図１７〜１９と関連して以下に説明するプロセッサのプラットフォームの例１７００、１８００、１９００に示すプロセッサ１７１２、１８１２、１９１０などのプロセッサが実行するプログラムを含む機械可読命令を用いて実装されてもよい。それらのプログラムはプロセッサ１７１２、１８１２、１９１０と関連するＣＤ−ＲＯＭ、フロッピーディスク、ハードドライブ、デジタル多用途ディスク（ＤＶＤ）、ブルーレイディスク、またはメモリなどの有形のコンピュータ可読記憶媒体に記憶されるソフトウェアで実施されてもよいが、すべてのプログラムおよび／または一部のプログラムは、あるいはプロセッサ１７１２、１８１２、１９１０以外のデバイスで実行されてもよく、かつ／またはファームウェアもしくは専用のハードウェアで実行されてもよい。さらに、プログラムの例は、図７〜１６に図示の流れ図を参照して説明されるが、ＣＭ２２６の例と、ＩＭＭ２３０の例と、ＳＩＭ２２８の例を実装する多くの他の方法が代わりに使用されてもよい。例えば、ブロックを実行する順序が変更されてもよい、および／または記述されたブロックの一部は変更され、削除され、または組み合わされてもよい。
【００５６】
上述の通り、図７〜１６の方法の実施例は、情報を任意の期間（例えば、長時間の場合、永久に、短時間の例では、一時的なバッファとして、および／または情報のキャッシュとして）記憶するハードディスクドライブ、フラッシュメモリ、読み出し専用メモリ（ＲＯＭ）、コンパクトディスク（ＣＤ）、デジタル多用途ディスク（ＤＶＤ）、キャッシュ、ランダムアクセスメモリ（ＲＡＭ）および／またはいずれの他の記憶デバイスまたは記憶ディスクなどの有形のコンピュータ可読記憶媒体に記憶されたコード化された命令（例えば、コンピュータ可読命令および／または機械可読命令）を用いて実行されてもよい。本明細書で使用される時、有形のコンピュータ可読記憶媒体という言葉は、どのような種類のコンピュータ可読記憶媒体、および／または記憶ディスクも含み、かつ伝播信号を除くことまた伝送媒体を除くことが、はっきりと規定される。本明細書で使用される時、「有形のコンピュータ可読記憶媒体」および「有形の機械可読記憶媒体」はほとんど同じ意味で使用される。加えてまたは代替として、図７〜１６の方法の実施例は、情報を任意の期間（例えば、長時間の場合、永久に、短時間の例では、一時的なバッファとして、および／または情報のキャッシュとして）記憶するハードディスクドライブ、フラッシュメモリ、読み出し専用メモリ、コンパクトディスク、デジタル多用途ディスク、キャッシュ、ランダムアクセスメモリおよび／またはいずれの他の記憶デバイスまたは記憶ディスクなどの非一時的コンピュータ可読媒体および／または機械可読媒体に記憶されたコード化された命令（例えば、コンピュータ可読命令および／または機械可読命令）を用いて実行されてもよい。本明細書で使用される時、非一時的コンピュータ可読媒体という言葉は、どのような種類のコンピュータ可読記憶デバイスおよび／または記憶ディスクも含み、かつ伝播信号を除くことまた伝送媒体を除くことが、はっきりと規定される。本明細書で使用されるように、「少なくとも」という句が請求項の前提部分の移行句として使用される時、「備える」という言葉に制約がないのと同じように、「少なくとも」も制約がない。
【００５７】
図の詳細に目を向けると、図７は図２および／または図４の構成モジュール（ＣＭ）の例２２６を実装する方法の１実施例を表す流れ図である。その方法の実施例はブロック７００で始まり、そこでユーザインターフェースの例は制御システム用の構成データを受信する（例えば、図２の制御システム２００）。一部の実施例では、構成データは、エンジニアが提供する構成パラメータ、構成論理および構成入力のすべてに対応して、制御システムを構成する。ブロック７０２で、ユーザインターフェースの例は、制御システムのエンドポイント用のソフトウェア基準値および／またはハードウェア基準値を受信する。一部の実施例では、ソフトウェア基準値およびハードウェア基準値は、エンドポイントデバイスの製造者が指定する値に基づいてエンジニアが入力した値に対応する。一部の実施例では、ソフトウェアの値および／またはハードウェアの値は構成データとして同時に収集される。他の実施例では、ソフトウェアのデータおよび／またはハードウェアのデータは別に構成データから収集される。一部の実施例では、ソフトウェア基準値および／またはハードウェア基準値のいずれも収集されない。そのような実施例では、ソフトウェア基準値および／またはハードウェア基準値は以下で説明するようにしばらく経って収集されても、および／または生成されてもよい。
【００５８】
ブロック７０４で、構成ファイルジェネレータの例４０４は構成データに基づいて構成ファイルを生成する。ブロック７０６で、基準値ジェネレータの例４０６は構成ファイルに基づいて制御システムのエンドポイント用の基準値を生成する。一部の実施例では、基準値は構成ファイル用および／またはエンドポイントに割り当てられた構成ファイルの部分用の１つまたは複数のチェックサムを計算して生成される。一部の実施例では、ソフトウェア基準値およびハードウェア基準値がブロック７０２で受信される場合、生成された基準値は対応するエンドポイント用の構成基準値に対応する。一部の実施例では、生成された基準値はハードウェア基準値を含む（例えば、そのような値がブロック７０２でユーザ定義されていない場合）。ブロック７０８で、構成基準ジェネレータ４０６は対応する構成データを備える他のエンドポイントがあるかどうか判定する。他のエンドポイントがある場合、制御はブロック７０６に戻り、エンドポイント用に対応する構成基準値を計算する。他のエンドポイントがない場合、制御はブロック７１０へ進み、そこで通信インターフェースの例４１０が構成ファイルを制御システムのエンドポイントに送信する。この送信に基づいて、各エンドポイントは受信し、かつ／またはダウンロードし、また構成ファイル（または構成ファイルの関連する部分）のインスタンスを生成して、再起動して以下により詳細に説明するように構成プロセスを完了する。ブロック７１２で、通信インターフェースの例４１０は基準値（例えば、構成基準値、ソフトウェア基準値、および／またはハードウェア基準値）をシステムインテグリティモニタ（ＳＩＭ）に送信する（例えば、図２のＳＩＭ２２８）。その後、図７の方法の実施例は終了する。
【００５９】
図８は、エンドポイント用の起動時間インテグリティ測定値を生成する図２、３および／または５のインテグリティ測定モジュール（ＩＭＭ）の例２３０を実装する方法の１実施例を表す流れ図である。図８の方法の実施例は、例えば、図７のブロック７１０と関連する上述の構成ファイルを受信した後など、エンドポイントがＩＭＭ２３０の起動を実装する時に実行する。他の実施例では、エンドポイントはＳＩＭ２２８が与える再起動の要求に基づいて再起動してもよい。他の実施例では、エンドポイントは手動で再起動してもよい。ブロック８０２で、インテグリティ測定自己テスタ５０４の例はＩＭＭ２３０のインテグリティ測定機能を試験する。例えば、インテグリティ測定自己テスタ５０４は既知の入力および既知の出力に基づくインテグリティ測定値を生成することに使用されるチェックサムアルゴリズムとハッシュアルゴリズムなどをテストする。ブロック８０４で、インテグリティ測定コントローラの例５０６はインテグリティ測定機能が適切に働いているかどうか判定する（例えば、出力は期待通り）。そうでない場合、図８の方法の実施例は終了する。一部の実施例では、インテグリティ測定コントローラ５０６は方法が終了する前にテストに失敗したことを表すエラーメッセージを生成する。インテグリティ測定コントローラ５０６の例はインテグリティ測定機能が適切に稼働している（ブロック８０４）ことを判定し、制御はブロック８０６へ進む。
【００６０】
ブロック８０６で、インテグリティ測定コントローラ５０６の例はインテグリティ測定レジスタ５１２、５１４、５１６のすべてを削除する。ブロック８０８で、インテグリティ測定ジェネレータ５０２はエンドポイントでロードされる１つのソフトウェア（および／またはファームウェア）用のインテグリティ測定値を生成する。例えば、インテグリティ測定ジェネレータ５０２はその１つのソフトウェアの暗号チェックサムを計算する。ブロック８１０で、インテグリティ測定コントローラの例５０６はインテグリティ測定値をソフトウェア測定レジスタの例５１２に加算する。ブロック８１２で、インテグリティ測定コントローラの例は起動プロセス中にロードされるもう１つのソフトウェアがあるかどうか判定する。もう１つソフトウェアがある場合は、制御はブロック８０８に戻り、そこでインテグリティ測定値はその１つのソフトウェア用に生成され、そしてソフトウェア測定レジスタ５１２（ブロック８１０）に加算される。一部の実施例では、その後の複数のソフトウェアと関連するインテグリティ測定値がソフトウェアのスタック（例えば、起動時に以前ロードされた）の下の方の他の複数のソフトウェア用に以前生成されたインテグリティ測定値と関連するインテグリティ測定値に付加される。一部の実施例では、付加された値の文字列がソフトウェア測定レジスタ５１２にとってあまりにも長くなりすぎた場合、インテグリティ測定ジェネレータ５０２は組み合わされた値に対してハッシュアルゴリズムを実行して、より扱いやすい量にそれらを減らす。インテグリティ測定コントローラの例が起動プロセス中（ブロック８１２）にロードするソフトウェアがこれ以上ないと判定した場合、制御はブロック８１４へ進む。すべてのソフトウェア（例えば、任意のハッシュ後）用の組み合わせたインテグリティ測定値は、その後要求に応じてＳＩＭ２２８に報告されてもよいエンドポイント用の最終ソフトウェアインテグリティ測定値に対応する。
【００６１】
ブロック８１４で、インテグリティ測定ジェネレータの例５０２はエンドポイントに割り当てられた構成データ用のインテグリティ測定値を生成する。例えば、インテグリティ測定ジェネレータ５０２は暗号チェックサムを構成ファイルまたはエンドポイントに記憶された構成ファイルの部分用に計算する。ブロック８１６で、インテグリティ測定コントローラの例５０６は、インテグリティ測定値をインテグリティ測定レジスタの例５１４に加算する。ブロック８１８で、インテグリティ測定コントローラの例はさらに構成データがあるかどうか判定する。さらに構成データがある場合、制御はブロック８１４に戻って、そこでインテグリティ測定値をその構成データ用に生成して、構成測定レジスタ５１４に加算する（ブロック８１６）。一部の実施例では、後で解析される構成データに関連するインテグリティ測定値が、他の構成データ用に以前生成されたインテグリティ測定値に関連するインテグリティ測定値に付加されて、レジスタ５１４に加算される。一部の実施例では、付加された値の文字列がインテグリティ測定レジスタ５１４にとって長すぎる場合、インテグリティ測定ジェネレータの例５０２が、組み合わせた値に対してハッシュアルゴリズムを実行して、より扱いやすい量に減らす。インテグリティ測定コントローラの例がこれ以上構成はないと判定した場合、制御はブロック８２０へ進む。すべての構成データ（例えば、任意のハッシュ後）用の組み合わせたインテグリティ測定値は、要求に応じてその後ＳＩＭ２２８に報告されてもよいエンドポイントの最終構成インテグリティ測定値に対応する。
【００６２】
ブロック８２０で、インテグリティ測定ジェネレータの例５０２は、エンドポイントの周辺機器用にインテグリティ測定値を生成する。例えば、インテグリティ測定ジェネレータ５０２はエンドポイント用の対応する構成ファイル内に指定された周辺機器用の暗号チェックサムを計算する。ブロック８２２で、インテグリティ測定コントローラの例５０６はインテグリティ測定値をハードウェア測定レジスタの例５１６に加算する。ブロック８２４で、インテグリティ測定コントローラの例は他の周辺機器があるかどうか判定する。他の周辺機器がある場合は、制御はブロック８２０に戻り、そこでインテグリティ測定値がその周辺機器用に生成されて、ハードウェア測定レジスタ５１６に加算される（ブロック８１６）。一部の実施例では、その次の周辺機器に関連するインテグリティ測定値は他の周辺機器用に以前生成されたインテグリティ測定値に関連するインテグリティ測定値に付加されてレジスタ５１６に加算される。いくつかの実施例では、付加された値の文字列がハードウェア測定レジスタ５１６にとって長くなりすぎた場合、インテグリティ測定ジェネレータの例５０２は組み合わせた値に対してハッシュアルゴリズムを実行して、より扱いやすい量にそれらを減らす（例えば、文字列が短くなるとメモリの使用も減る）。すべての周辺機器用の組み合わせたインテグリティ測定値（任意のハッシュ後）は要求に応じてその後ＳＭＩ２２８へ報告されるエンドポイント用の最終ハードウェアインテグリティ測定値に対応する。インテグリティ測定コントローラの例がこれ以上周辺機器はないと判定した場合（ブロック８２４）、図８の方法の実施例は終了する。
【００６３】
図９は、エンドポイント用の実行時間インテグリティ測定値を生成する図２、３および／または５のインテグリティ測定モジュール（ＩＭＭ）の例２３０を実装する方法の１実施例を表す流れ図である。すなわち、図９の方法の実施例はエンドポイントが構成されてネットワークに承認されて作動した後で起こる。図９の方法の実施例はブロック９０２で始まり、そこで通信インターフェースの例５１０はシステムのインテグリティモニタ（例えば、図２、３および／または６のＳＩＭ２２８の例）から実行時間インテグリティ測定値に対する要求を受信する。いくつかの実施例では、その要求は回答を生成するために使用されるノンス値を含んでいる。ＳＩＭ２２８に関するさらなる詳細およびそのような要求を受信した時のシナリオは図１１〜１３に関連して以下で説明する。ブロック９０４で、インテグリティ測定自己テスタの例５０４はＩＭＭ２３０のインテグリティ測定機能をテストする。ブロック９０６で、インテグリティ測定コントローラの例５０６はインテグリティ測定機能が適切に働いているか判定する（例えば、出力が期待された通りか）。そうでない場合、図９の方法の実施例は終了する。一部の実施例では、インテグリティ測定コントローラ５０６は方法が終了する前にテストに失敗したことを表すエラーメッセージを生成する。インテグリティ測定コントローラ５０６の例はインテグリティ測定機能が適切に稼働している（ブロック９０６）ことを判定し、制御はブロック９０８へ進む。
【００６４】
ブロック９０８で、インテグリティ測定コントローラの例５０６は構成インテグリティ測定レジスタ５１４およびハードウェアインテグリティ測定レジスタ５１６を削除する。一部の実施例では、ソフトウェアインテグリティ測定値はエンドポイントが起動時にソフトウェアをロードした際に生成されたため、ソフトウェア測定レジスタ５１２は、図９の方法の実施例で実装された時に実行時間インテグリティ測定値と関連して削除されない。この方法では、エンドポイントの最後の起動時に生成されたソフトウェア測定レジスタ５１２に記憶された以前収集されたソフトウェアインテグリティ測定値は報告用にまだ入手可能であってもよい。
【００６５】
ブロック９１０で、インテグリティ測定ジェネレータの例５０２は、エンドポイントに割り当てられた構成データ用のインテグリティ測定値を生成する。一部の実施例では、エンドポイントに割り当てられた構成データは構成ファイルおよび／またはエンドポイントに記憶された構成ファイル部分に基づく。ブロック９１２で、インテグリティ測定コントローラの例５０６はインテグリティ測定値を構成測定レジスタの例５１４に加算する。ブロック９１４で、インテグリティ測定コントローラの例はさらに構成データがあるかどうか判定する。構成データがある場合は、制御はブロック９１０に戻り、そこでインテグリティ測定値がその構成データ用に生成されて、構成測定レジスタ５１４に加算される（ブロック９１２）。一部の実施例では、その次に解析される構成データに関連するインテグリティ測定値は他の構成データ用に以前生成されたインテグリティ測定値に関連するインテグリティ測定値に付加されてレジスタ５１４に加算される。いくつかの実施例では、付加された値が構成測定レジスタ５１４にとって長くなりすぎた場合、インテグリティ測定ジェネレータの例５０２は組み合わせた値に対してハッシュアルゴリズムを実行して、より扱いやすい量にそれらを減らしてもよい。インテグリティ測定コントローラの例がこれ以上構成データはないと判定した場合（ブロック９１４）、制御はブロック９１６へ進む。エンドポイントに割り当てられた（例えば任意のハッシュ後）すべての構成データ用の組み合わせたインテグリティ測定値はエンドポイント用の最終構成インテグリティ測定値に対応する。
【００６６】
ブロック９１６で、インテグリティ測定ジェネレータの例５０２は、エンドポイントの周辺機器用のインテグリティ測定値を生成する。ブロック９１８で、インテグリティ測定コントローラの例５０６はインテグリティ測定値をハードウェア測定レジスタの例５１６に加算する。ブロック９２０で、インテグリティ測定コントローラの例は他の周辺機器があるかどうか判定する。周辺機器がある場合は、制御はブロック９１６に戻り、そこでインテグリティ測定値がその周辺機器用に生成されて、ハードウェア測定レジスタ５１６に加算される（ブロック９１８）。一部の実施例では、その次の周辺機器に関連するインテグリティ測定値は他の周辺機器用に以前生成されたインテグリティ測定値に関連するインテグリティ測定値に付加されてハードウェア測定レジスタレジスタ５１６に加算される。いくつかの実施例では、付加された値がハードウェア測定レジスタ５１６にとって長くなりすぎた場合、インテグリティ測定ジェネレータの例５０２は組み合わせた値に対してハッシュアルゴリズムを実行して、より扱いやすい量にそれらを減らしてもよい。すべての周辺機器（任意のハッシュ後）用の組み合わせたインテグリティ測定値はエンドポイント用の最終ハードウェアインテグリティ測定値に対応する。
【００６７】
インテグリティ測定コントローラの例はこれ以上周辺機器がないと判定した場合（ブロック９２０）、制御はブロック９２２へ進み、そこで通信インターフェースの例５１０がインテグリティ測定値の報告を発信する。いくつかの実施例では、報告されたインテグリティ測定値はソフトウェア測定レジスタ５１２に記憶されたソフトウェアインテグリティ測定値（以前エンドポイントの起動時に生成された）と、構成測定レジスタ５１４に記憶された構成インテグリティ測定値（ブロック９１８で生成された）と、ハードウェア測定レジスタ５１６に記憶されたハードウェアインテグリティ測定値（ブロック９１８で生成された）とを含む。いくつかの実施例では、インテグリティ測定値の報告は測定値の要求と共に提供されるノンス値と共に提供される。インテグリティ測定値を報告した後、図９の方法の実施例は終了する。
【００６８】
図１０は、エンドポイントが信頼できる状態にある場合の状況のエンドポイントに提供された許可情報の使用を制限する図２、３、および／または５のインテグリティ測定モジュール（ＩＭＭ）の例２３０を実装する方法の実施例を表す流れ図である。上述の通り、エンドポイントが秘密および／または公開値または鍵を生成するエンドポイントに提供された許可情報を介して通信が可能になる。一部の実施例では、エンドポイントは許可情報を暗号化した形式で記憶して、エンドポイントが、許可情報が復号化された時と同じ状態にある時だけアクセス（復号化）できるようになる。一部の実施例では、許可情報がエンドポイントに供給される前に、許可情報が復号化された時エンドポイントが信頼できる状態であるようにエンドポイントのインテグリティが検証される。従って、一部の実施例では、エンドポイントが危険にさらされてもはや信頼できる状態にない場合（例えば、インテグリティ測定値が基準値に一致しない）、エンドポイントは許可情報を復号化することができないので、許可情報を使用することができなくなる。この方法では、危険にさらされる可能性のあるエンドポイントからの通信を、以下でさらに十分説明するように、エンドポイントをＳＩＭ２２８が特別にテストすることなく防止することができる。
【００６９】
図１０の方法の実施例はエンドポイントがＩＭＭ２３０の起動を実行する際に始まる。図示の実施例では、ＩＭＭ２３０はすでに構成され、許可情報データベース５１８の中に暗号化された形式で記憶されていた許可情報を受信した後起動が起きている。図１０の方法の実施例はブロック１００２で開始し、そこでインテグリティ測定ジェネレータの例５０２が起動時間インテグリティ測定値を収集する（例えば、図８の方法の実施例を実装して）。ブロック１００４で、通信認証器の例５０８は暗号化された許可情報を許可情報データベース５１８から回収する。ブロック１００６で、通信認証器の例５０８は起動時間インテグリティ測定値に基づいて、許可情報を解読しようとする。すなわち、いくつかの実施例では、通信認証器５０８はインテグリティ測定値が示すエンドポイントの状態を使用して暗号化された許可情報を復号する。
【００７０】
ブロック１００８で、通信認証器の例５０８は許可情報が上手く解読されたかどうか判定する。上手く解読できた場合、それはエンドポイントの状態が期待されたインテグリティの状態（例えば、信頼できる状態）にあり、またエンドポイントが許可情報にアクセスし、かつ許可情報を使用して通信することができることを示す。従って、ブロック１０１０で、通信インターフェースの例５１０は制御システム内での通信用に解読された許可情報を使用する。その後、図１０の方法の実施例は終了する。
【００７１】
通信認証器の例５０８が許可情報を上手く解読できなかった（ブロック１００８）と判定する場合、制御はブロック１０１２へ進む。暗号化された許可情報を上手く解読できなかったことは何かエンドポイントの状態（インテグリティ測定値が示すように）が所望のエンドポイントの状態（例えば、インテグリティ）と一致しないことを示す。ブロック１０１２で、インテグリティ測定コントローラの例５０６は構成ファイルが入手可能かどうか判定する。入手可能な場合、制御はブロック１０１４に進み、そこで通信インターフェースの例５１０は制御ネットワークへ参入許可の要求を送信する。いくつかの実施例では、本要求により以下で説明する図１２の方法の実施例を開始してもよい。その後、図１０の方法の実施例は終了する。ブロック１０１２に戻り、インテグリティ測定コントローラの例５０６が構成ファイルは入手できないと判定した場合、制御はブロック１０１６に進み、その後図１０の方法の実施例は終了する。ブロック１０１６で、通信インターフェースの例５１０は制御ネットワークに対して登録要求を送信する。いくつかの実施例では、本要求は以下に説明する図１１の方法の実施例の始まりに対応する。
【００７２】
図１１は、初期に関連する制御ネットワーク上に登録するエンドポイントのインテグリティをチェックする図２、３および／または６のシステムインテグリティモニタ２２８の例を実装する方法の１実施例を表す流れ図である。その方法の実施例はブロック１１０２で始まり、そこで通信インターフェースの例６０２はエンドポイントからの登録の要求を受信する。エンドポイントの登録は、前に接続されたことがないかまたは構成データを有していないエンドポイントを実装する制御システムに対応する制御ネットワーク上のノードまたはエンドポイントの接続および識別を参照する（例えば、図１０のブロック１０１６での要求）。ブロック１１０４で、通信インターフェースの例６０２はノンス（例えば、許可コントローラの例６０６が生成する）をエンドポイントにエンドポイント用ソフトウェアインテグリティ測定値の要求と共に送信する。一部の実施例では、ノンスは「虚偽の報告をするエンドポイント」（例えば、単に以前生成された値を繰り返すエンドポイント）を検出する働きをする。図示の実施例では、エンドポイントは未だ構成されていない新たに実装されたデバイスなので、対応する構成インテグリティ測定値および／またはハードウェアインテグリティ測定値が対応する基準値に一致する有効な結果を生成しないと想定される。従って、図示の実施例では、ソフトウェアインテグリティ測定値は要求されるが、他の種類のインテグリティ測定値（例えば、ハードウェアインテグリティ測定値および／または構成インテグリティ測定値）は要求されない。しかし、それにもかかわらず、一部の実施例では、ハードウェアインテグリティ測定値および／または構成インテグリティ測定値がブロック１１０４でソフトウェアインテグリティ測定値と共に要求されてもよい。
【００７３】
ブロック１１０６で、通信インターフェースの例６０２はソフトウェアインテグリティ測定値の報告を受信する。一部の実施例では、エンドポイントは図８に関連して上述されているように最初に起動した時に、前もって生成されているので、報告されたソフトウェアインテグリティ測定値はソフトウェア測定レジスタ５１２に記憶されるどのような値にも対応する。ブロック１１０８で、インテグリティ測定データベースの例６１８は報告されたソフトウェアインテグリティ測定値を記憶する。一部の実施例では、インテグリティ測定値は基準値に対する引き続き実行される比較用および／または図１６に関連して以下でより完全に説明するように監視システムに対する制御システムすべて（統合した全体）のインテグリティ検証用に記憶される。
【００７４】
ブロック１１１０で、インテグリティ測定コンパレータの例６０４はソフトウェアインテグリティ測定値をソフトウェア基準値と比較する。一部の実施例では、ソフトウェア基準値はエンドポイントデバイスの製造者が提供するデータに基づいたユーザインターフェース６１４を介してユーザによって前もって入力されている。この方法では、基準値はエンドポイントからの直接のフィードバックと無関係に設定することができるので、それによってエンドポイントが製造者の所有を離れた後であって、ネットワークに接続される前に（例えば、輸送中）、改ざんされる可能性を回避できる。一部の実施例では、ハードウェア基準値および／または構成基準値もまたエンジニアまたは他の人員によって入力されてもよい。他の実施例では、ソフトウェア基準値は以下でより完全に説明されるように、ブロック１１０６で初期のソフトウェアインテグリティ測定値に基づいて取得される。一部の実施例では、同様に、ハードウェア基準値および／または構成基準値を設定する初期データは対応するインテグリティ測定値の初期の計算から取得されてもよい。
【００７５】
ブロック１１１２で、インテグリティ測定コンパレータの例６０４は報告されたインテグリティ測定値が基準値と一致するかどうかを判定する。基準値は前もってユーザが手動で入力し、エンドポイントは製造者を離れて以降変更されていない場合、ソフトウェアインテグリティ測定値は基準値と一致するはずである。その場合、制御はブロック１１１４へ進み、そこで許可コントローラの例６０６は構成通信アクセス用のエンドポイントを承認する。一部の実施例では、構成通信アクセスはエンドポイントを構成するために使用される構成データをエンドポイントが受信することができるようにする（例えば、図７に関連して上述した構成ファイルに基づいて）。
【００７６】
インテグリティ測定値が基準値と一致しない場合（ブロック１１１２）制御はブロック１１１６へ進み、そこでインテグリティモニタコントローラの例６１２が管理者を促して不一致を上書きする。一部の実施例では、エンドポイントが初めて実装されて（例えば、新たに取得されたおよび／または設置されたデバイス）、かつ基準値が前もってユーザインターフェース６１４を介して手動で入力されていない時、インテグリティ測定値は基準値と一致することができない。従って、ブロック１１１６で提供されたプロンプトにより管理者は初めて報告されたインテグリティ測定値が所望の値に対応する場合、そのインテグリティ測定値を新しい基準値として受け入れることができる。このように、ブロック１１１８で、インテグリティモニタコントローラの例６１２は上書きが承認されるかどうか判定する。承認された場合、制御はブロック１１２０へ進み、そこでインテグリティモニタコントローラの例６１２は報告されたインテグリティ測定値を新しい基準値として割り当てる。この方法では、ソフトウェア基準値は、上述のように手動の値の入力を必要とせず、エンドポイントのインテグリティ測定値に基づいて初期設定されてもよい。そのような実施例では、報告されたインテグリティ測定値はブロック１１２０で基準値として割り当てられるので、インテグリティ測定値と基準値は必ず一致して、その結果制御は１１１４へ進んで、構成通信アクセス用エンドポイントを承認する。
【００７７】
エンドポイントが環境設定通信アクセスの権限を認められると（ブロック１１１４）、図７に関連して上述したように、環境設定モジュール２２６からエンドポイントへ環境設定ファイルを送信できる。その後、エンドポイントは再起動して環境設定プロセスを完了できる。こうして、エンドポイントは、有効な環境設定データを獲得して、エンドポイントのインテグリティを検証できるようにソフトウェア、ハードウェア、および環境設定のインテグリティ測定値の各々にエンドポイントの適正な状態を反映させる。ブロック１１２２で、例示的な通信インタフェース６０２は、環境設定の再起動後にエンドポイントから受け入れ要求を受信する。エンドポイントの受け入れとは、エンドポイントを実装しようとする、エンドポイントが登録済みである（例えば、ブロック１１０２での登録要求への応答としてブロック１１１４で）制御システムに関連付けられた制御ネットワーク内の他のエンドポイントとの通信に受け入れられる（例えば、通信が可能になる）ということを指す。ブロック１１２４で、例示的なインテグリティモニタコントローラ６１２は環境設定が全て完了したエンドポイントのインテグリティを検証する。環境設定が万全なエンドポイントのインテグリティを検証する例示的な方法について以下に図１２を参照しながら詳述する。ブロック１１２６で、例示的なインテグリティモニタコントローラ６１２は、制御システムの制御ネットワークに受け入れられる別のエンドポイントがあるか否かを決定する。別のエンドポイントがある場合、処理はブロック１１０２へ戻る。そうでない場合、図１１の例示的な方法は終了する。
【００７８】
ブロック１１１８へ戻り、例示的なインテグリティモニタコントローラ６１２が書き換えは認められない（例えば、管理者が、エンドポイントから報告されたソフトウェアインテグリティ測定値を新しい基準値として使用したくない）と決定した場合、処理はブロック１１２８へ進み、例示的な許可コントローラ６０６はエンドポイントをファームウェア更新通信アクセスに制限する。いくつかの実施例では、ファームウェア更新通信アクセスはエンドポイントをファームウェア更新の受信に制限し、それ以外のエンドポイントとの通信を許可しない。エンドポイントの通信アクセス制限（ブロック１１２８）後、処理はブロック１１２６へ進み、例示的なインテグリティモニタコントローラは例示的な方法を終了するか繰り返して別のエンドポイントを処理するかを決定する。
【００７９】
図１２は、図２、３および／または６の例示的なシステムインテグリティモニタ２２８を実装して制御システムの制御ネットワーク内で通信アクセスを探すエンドポイントのインテグリティをチェックする例示的な方法を示すフローチャートである。具体的には、図１２の例示的な方法は図１１のブロック１１２４に対応する。図１２の例示的な方法はブロック１２０２から開始し、ここで例示的な通信インタフェース６０２は、エンドポイントのインテグリティ測定要求によって当該エンドポイントへノンス（例えば、例示的な許可コントローラ６０６によって生成された）を送信する。図１１のブロック１１０４ではソフトウェアインテグリティ測定値のみが要求されたが、これとは対照的に、この時点では、エンドポイントは環境設定が全て完了しており、基準値データベース６１６はそのようなインテグリティ測定値と比較する全ての該当する基準値を有しているため、例示的な通信インタフェース６０２はソフトウェア、ハードウェア、および環境設定のインテグリティ測定値の各々の値を要求できる。いくつかの実施例では、ソフトウェア検証（図１１）が実行され、最初に、製造業者から提供されたエンドポイントが予想通りに動作していることを確認し、次いで当該エンドポイントが使用されている特定のアプリケーションに関して当該エンドポイントが正しく環境設定されている（図１２）ことを検証する。いくつかの実施例では、図１１および１２の例示的な方法を組み合わせて、エンドポイントのソフトウェア、ハードウェア、および環境設定のインテグリティが同時に検証される。
【００８０】
ブロック１２０４で、例示的な通信インタフェース６０２はインテグリティ測定値のレポートを受信する。いくつかの実施例では、インテグリティ測定値はランタイム中に行う計算に基づく。そのようないくつかの実施例では、報告されたソフトウェアインテグリティ測定値はソフトウェア測定値レジスタ５１２内に以前に記憶された値に対応する。これは、エンドポイントが再起動されず新しい測定値が得られていないためである。すなわち、ソフトウェアインテグリティ測定値は、エンドポイントが最後に（例えば、図１１のブロック１１２２の直前に）再起動された時の以前の生成値に対応していてもよい。これとは対照的に、いくつかの実施例では、ハードウェアおよび環境設定のインテグリティ測定値はランタイム中に新たに生成される。ブロック１２０６で、例示的なインテグリティ測定値データベース６１８は報告されたインテグリティ測定値を記憶する。
【００８１】
ブロック１２０８で、例示的なインテグリティ測定値コンパレータ６０４は、報告されたインテグリティ測定値を基準値と比較する。いくつかの実施例では、基準値は図１１のブロック１１０２で受信された、かつ／またはブロック１１２０で割り当てられた値に対応する。ブロック１２１０で、例示的なインテグリティ測定値コンパレータ６０４は報告されたインテグリティ測定値が基準値に一致するか否かを決定する。一致しない場合、処理はブロック１２１２へ進み、例示的なインテグリティモニタコントローラ６１２は、管理者に対して不一致を解消するように促す。いくつかの実施例では、この促しによって管理者は報告されたインテグリティ測定値を新しい基準値として受け入れることができる。ブロック１２１４で、例示的なインテグリティモニタコントローラ６１２は書き換えが認められるか否かを決定する。認められる場合、処理はブロック１２１６へ進み、例示的なインテグリティモニタコントローラ６１２は報告されたインテグリティ測定値を基準値として割り当て、その後、処理はブロック１２１８へ進む。
【００８２】
ブロック１２１８で、例示的な許可コントローラ６０６は許可情報をエンドポイントに提供することでエンドポイントに対して無制限の通信アクセスを許可する。いくつかの実施例では、エンドポイントは無制限の通信アクセスを用いてエンドポイントが実装された制御ネットワーク内の他のエンドポイントと無制限に通信できる。いくつかの実施例では、無制限の通信アクセスは、エンドポイントが秘密および／または公開値を生成するために使用する許可情報をエンドポイントに提供することで可能になる。ブロック１２１０へ戻り、例示的なインテグリティ測定値コンパレータ６０４が報告されたインテグリティ測定値が基準値に一致すると決定した場合、処理は直接ブロック１２１８へ進む。エンドポイントが無制限の通信アクセスを許可される（ブロック１２１８）と、図１２の例示的な方法は終了し、前に戻って図１１の例示的な方法が完了する。
【００８３】
ブロック１２１４へ戻り、例示的なインテグリティモニタコントローラ６１２が書き換えは認められない（例えば、管理者が、報告されたインテグリティ測定値を新しい基準値として使用したくない）と決定した場合、処理はブロック１２２０へ進み、例示的なインテグリティ測定値コンパレータ６０４は報告されたソフトウェアインテグリティ測定値がソフトウェア基準値に一致するか否かを決定する。一致しない場合、エンドポイント上のソフトウェアが疑わしい。したがって、処理はブロック１２２２へ進み、例示的な許可コントローラ６０６はエンドポイントをファームウェア更新通信アクセスに制限する。エンドポイントに通信アクセスの制限（ブロック１２２２）後、図１２の例示的な方法は終了し、前に戻って図１１の例示的な方法が完了する。ブロック１２２０へ戻り、例示的なインテグリティ測定値コンパレータ６０４が報告されたソフトウェアインテグリティ測定値がソフトウェア基準値に一致すると決定した場合、処理はブロック１２２４へ進む。ブロック１２２４で、例示的な許可コントローラ６０６はエンドポイントを環境設定通信アクセスに制限する。その後、例示的な方法は終了し、前に戻って図１２の例示的な方法が完了する。
【００８４】
図１３は、図２、３および／または６の例示的なシステムインテグリティモニタ２２８を実装してランタイム中の制御システムの制御ネットワーク内のエンドポイントのインテグリティをチェックする例示的な方法を示すフローチャートである。すなわち、図１１および１２が、初期設定され制御ネットワーク上で環境設定されたエンドポイントのインテグリティを検証する例示的な方法を示す一方で、図１３は、エンドポイントが動作中かつ／または稼働中である後の時点におけるエンドポイントのインテグリティの検証を示す。こうして、エンドポイントの獲得、インストール、および使用のための環境設定後に発生する潜在的なセキュリティ侵害を検出しそれに従って応答できる。
【００８５】
図１３の例示的な方法はブロック１３０２で開始し、例示的なインテグリティモニタコントローラ６１２はエンドポイントのランタイムインテグリティを検証するタイミングであるか否かを決定する。制御システム内の多数のコンピュータデバイス（エンドポイント）は切断も再起動もされることなく長期間（例えば、数ヶ月または数年）にわたって動作している可能性がある。したがって、起動時間中にエンドポイントのインテグリティを検証することはソフトウェアスタック（ブート中にロードされる）の状態を確認するのに有用ではあるが、そのような試験はエンドポイントの潜在的な変更を検出するために充分な規則性をもって実行されない場合がある。したがって、いくつかの実施例では、ユーザは、ランタイムインテグリティをより規則的かつ頻繁な周期的または非周期的なスケジュールで定義することができる。いくつかの実施例では、ランタイムインテグリティ測定はネットワーク内の各エンドポイントに対して１日１回実行される。ただし、ランタイムインテグリティ試験を任意の好適なスケジュールで実施してもよい。さらに、いくつかの実施例では、例えば、エンドポイントがその動作環境である制御システムにとって有する重要性に基づいて、ある種のエンドポイントを他よりも頻繁に試験してもよい（例えば、重要なエンドポイントでは１時間ごとに）。追加的に、または別法として、いくつかの実施例では、ある種のインテグリティ測定（ソフトウェア、ハードウェア、または環境設定）が特定の時点で要求される。いくつかの実施例では、ソフトウェア、ハードウェア、および環境設定のインテグリティ測定のモニタリングに別々のスケジュールを適用してもよい。例示的なインテグリティモニタコントローラ６１２が、あるエンドポイントのランタイムインテグリティを検証するタイミングではないと決定した場合（ブロック１３０２）、例示的なインテグリティモニタコントローラ６１２はそのタイミングになるまで待つ。
【００８６】
エンドポイントのランタイムインテグリティの検証タイミングが訪れると、処理はブロック１３０４へ進み、例示的な通信インタフェース６０２は、エンドポイントのインテグリティ測定要求によって当該エンドポイントへノンス（例えば、例示的な許可コントローラ６０６によって生成された）を送信する。ブロック１３０６で、例示的な通信インタフェース６０２はインテグリティ測定値のレポートを受信する。いくつかの実施例では、インテグリティ測定値はランタイム中に行う計算に基づく。ただし、いくつかの実施例では、インテグリティ測定値はエンドポイントが最後に起動された時に生成されたインテグリティ測定値に基づくので、新しいソフトウェアインテグリティ測定値はランタイム中に生成されない。そのような実施例では、ソフトウェアインテグリティ測定値はエンドポイントが最後に起動された時に生成された値に対応する。これとは対照的に、いくつかの実施例では、ハードウェアおよび環境設定のインテグリティ測定値はランタイム中に新たに生成される。ブロック１３０８で、例示的なインテグリティ測定値データベース６１８は報告されたインテグリティ測定値を記憶する。
【００８７】
ブロック１３１０で、例示的なインテグリティ測定値コンパレータ６０４は、報告されたインテグリティ測定値を基準値と比較する。ブロック１３１２で、例示的なインテグリティ測定値コンパレータ６０４は報告されたインテグリティ測定値が基準値に一致するか否かを決定する。一致しない場合、処理はブロック１３１４へ進み、例示的なインテグリティモニタコントローラ６１２は不一致のインテグリティ測定値に基づいて応答を実施する。いくつかの実施例では、具体的な応答はどのタイプ（例えば、ソフトウェア、ハードウェア、および／または環境設定）のインテグリティ測定値が基準値に一致しなかったかによって変わる。いくつかの実施例では、応答の性質は、エンドポイントの性質および／またはその環境設定と対応するネットワーク内の他のエンドポイントとの関係の性質によって変わる。いくつかの実施例では、応答は、警報を生成するステップ（ブロック１３１６）、エンドポイントから受信する将来のデータに疑わしいという目印を付けるステップ（ブロック１３１８）、エンドポイントをファームウェア更新通信アクセスおよび／または環境設定する通信アクセスに制限するステップ（ブロック１３２０）、および／または冗長エンドポイントへ切り替えるステップ（ブロック１３２２）を含む。いくつかの実施例では、応答は、ブロック１３１６、１３１８、１３２０、１３２２の２つ以上の組み合わせを含む。いくつかの実施例では、実施される応答はエンドポイントの環境設定時にユーザによって定義される。適当な応答が実施された（ブロック１３１４）後で、処理はブロック１３２４へ進む。ブロック１３１２へ戻り、例示的なインテグリティ測定値コンパレータ６０４がインテグリティ測定値が基準値に一致すると決定した場合、エンドポイントのインテグリティが検証され、その後のアクションは不要である。そのような実施例では、処理は直接ブロック１３２４へ進む。
【００８８】
ブロック１３２４で、例示的なインテグリティモニタコントローラ６１２は検証すべき別のエンドポイントがあるか否かを決定する。別のエンドポイントがある場合、処理はブロック１３０２へ戻る。そうでない場合、処理はブロック１３２６へ進み、例示的なインテグリティモニタコントローラ６１２は処理を継続するか否かを決定する。継続する場合、処理はブロック１３０２へ戻る。そうでない場合、図１３の例示的な方法は終了する。
【００８９】
上記の図１１〜１３は、図１の階層１００の制御システムレベル１０６にある制御システム（例えば、図２の制御システム２００）のプライマリワークステーション内へのＳＩＭ２２８の実装ステップに対応する。したがって、図１１〜１３は、階層１００の制御システムレベル１０６に関連付けられた制御ネットワーク上の階層１００レベルのデバイスレベル１０４にあるプロセス制御デバイス（例えば、コントローラ、Ｉ／Ｏデバイス、フィールドデバイスなど）に対する通信アクセスの環境設定およびインテグリティベースの許可に関する。追加的に、または別法として、図１１〜１３は、制御システムレベル１０６に関連付けられた制御ネットワーク上の、制御システムレベル１０６の異なるエンドポイント（例えば、ワークステーション、サーバなど）間の通信のインテグリティベースの許可に関する。したがって、いくつかの実施例では、図１１〜１３に関連付けられたＳＩＭ２２８は、通信が許可されている制御ネットワークに指定されたプライマリワークステーション（例えば、図２のプライマリワークステーション２２０）内に実装されている。さらに、そのような実施例では、ＩＭＭ２３０は制御ネットワークに通信可能に接続された特定のデバイスに対応するエンドポイント内に実装されている。
【００９０】
これとは対照的に、上記の図１４〜１５は、図１の監視レベル１０８の階層１００の監視システムレベル１０８にある監視システム（例えば、図３の監視システム３００）のプライマリワークステーション内へのＳＩＭ２２８の実装ステップに対応する。したがって、図１４〜１５は、図１の監視システムレベル１０８に関連付けられた監視システム（例えば、図３の監視システム３００）のプライマリワークステーション内のエンドポイントに対する通信アクセス、および／または制御システムレベル１０６にある従属システム（例えば、図３の制御システム２００、３０２）と監視システムレベル１０８にある他のエンドポイントとの間の通信アクセスのインテグリティベースの許可に関する。したがって、いくつかの実施例では、図１４〜１５に関連して参照されるＳＩＭ２２８は、通信が許可されている監視ネットワークに指定されたプライマリワークステーション（例えば、図３のプライマリワークステーション３０６）内に実装されている。さらに、そのような実施例では、監視ネットワーク３１０に受け入れられるエンドポイントはＩＭＭ２３０を実装する個々のコンピュータデバイス（例えば、ワークステーション３０８、サーバ３０４など）に対応する。追加的に、または別法として、いくつかの実施例では、監視ネットワーク３１０に受け入れられるエンドポイントは制御システムレベル１０６にある監視システムの従属システム（例えば、制御システム２００）に対応する。そのようないくつかの実施例では、従属システムに関連付けられたプライマリワークステーション（例えば、制御システム２００のプライマリワークステーション２２０）内に実装されたＳＩＭ２２８は、図１６に関連して以下に述べる監視システムのワークステーション内に実装されたＳＩＭ２２８によって要求されるインテグリティ測定値を提供する
【００９１】
図１４は、図２、３および／または６の例示的なシステムインテグリティモニタ２２８を実装して監視システムへの受け入れを探すエンドポイントのインテグリティを検証する例示的な方法を示すフローチャートである。図示の実施例では、ＳＩＭ２２８は監視システムのプライマリワークステーション（例えば、監視システム３００のプライマリワークステーション３０６）内に実装されたＳＩＭに対応する。図１４の例示的な方法はブロック１４００から開始し、例示的な通信インタフェース６０２は監視システム内のエンドポイントから接続要求を受信する。いくつかの実施例では、要求は監視システムの監視ネットワークに通信可能に接続された特定のエンドポイント（例えば、ワークステーション３０８、サーバ３０４など）から送信される。いくつかの実施例では、要求は従属システムのプライマリワークステーション（例えば、制御システム２００のプライマリワークステーション２２０）から送信される。ブロック１４０２で、例示的な通信インタフェース６０２は、エンドポイントのインテグリティ測定要求によって当該エンドポイントへノンス（例えば、例示的な許可コントローラ６０６によって生成された）を送信する。
【００９２】
ブロック１４０４で、例示的な通信インタフェース６０２はインテグリティ測定値のレポートを受信する。いくつかの実施例では、監視システムレベル１０８にあるエンドポイントのインテグリティ測定値は、制御システムレベル１０６にあるエンドポイントによって実装されたＩＭＭに関して上述したのと同じまたは同様の方法で当該エンドポイントによって実装されたＩＭＭによって生成される。ただし、監視システムは、通常、制御システムと同様に、特に指定された環境設定を有していない。したがって、いくつかの実施例では、報告されたインテグリティ測定値は環境設定のインテグリティ測定値を含まない。他方、エンドポイントが制御システムに対応するいくつかの実施例では、インテグリティ測定値は、図１６に関連して以下に詳述するように、制御システム内の全エンドポイントから受信する環境設定のインテグリティ測定値の組み合わせに対応する値を含んでいてもよい。ブロック１４０６で、例示的なインテグリティ測定値データベース６１８は報告されたインテグリティ測定値を記憶する。
【００９３】
ブロック１４０８で、例示的なインテグリティ測定値コンパレータ６０４は、報告されたインテグリティ測定値を基準値と比較する。ブロック１４１０で、例示的なインテグリティ測定値コンパレータ６０４は報告されたインテグリティ測定値が基準値に一致するか否かを決定する。一致しない場合、処理はブロック１４１２へ進み、例示的なインテグリティモニタコントローラ６１２は、管理者に対して不一致を解消するように促す。ブロック１４１４で、例示的なインテグリティモニタコントローラ６１２は書き換えが認められるか否かを決定する。認められる場合、処理はブロック１４１６へ進み、例示的なインテグリティモニタコントローラ６１２は報告されたインテグリティ測定値を基準値として割り当てる。ブロック１４１８で、例示的な許可コントローラ６０６は許可情報をエンドポイントに提供することでエンドポイントに対して無制限の通信アクセスを許可する。ブロック１４１０へ戻り、例示的なインテグリティ測定値コンパレータ６０４が報告されたインテグリティ測定値が基準値に一致すると決定した場合、処理は直接ブロック１４１８へ進む。ブロック１４２０で、例示的なインテグリティモニタコントローラ６１２は別のエンドポイントがあるか否かを決定する。別のエンドポイントがある場合、処理はブロック１４００へ戻る。そうでない場合、図１４の例示的な方法は終了する。
【００９４】
ブロック１４１４へ戻り、例示的なインテグリティモニタコントローラ６１２が書き換えは認められない（例えば、管理者が、報告されたインテグリティ測定値を新しい基準値として使用したくない）と決定した場合、処理はブロック１４２２へ進む。ブロック１４２２で、例示的な許可コントローラ６０６は、エンドポイントの通信アクセスを制限する。いくつかの実施例では、通信アクセスは拒否される（すなわち、通信アクセスは提供されない）。いくつかの実施例では、エンドポイントはファームウェア更新通信アクセスに制限される。別の実施例では、通信は可能であるが、特定ノードからのデータが疑わしいという目印または表示が付けられる。いくつかの実施例では、監視システム上のある種のエンドポイントに通信アクセスが提供され、その他のエンドポイントへの通信は阻止される。エンドポイントの通信アクセスの制限（ブロック１４２２）後、処理はブロック１４２０へ進み、例示的なインテグリティモニタコントローラ６１２は上記の別のエンドポイントがあるか否かを決定する。
【００９５】
図１５は、図２、３および／または６の例示的なシステムインテグリティモニタ２２８を実装してランタイム中の監視システムの監視ネットワーク内のエンドポイントのインテグリティをチェックする例示的な方法を示すフローチャートである。すなわち、図１４が、最初に監視システムに受け入れられようとするエンドポイントのインテグリティを検証する例示的な方法を示す一方で、図１５は、エンドポイントが動作中かつ／または稼働中である後の時点におけるエンドポイントのインテグリティの検証を示す。こうして、エンドポイントの獲得、インストール、および使用のための環境設定後に発生する潜在的なセキュリティ侵害を検出しそれに従って応答できる。上記のように、図１５に示す実施例では、ＳＩＭ２２８は監視システムのプライマリワークステーション（例えば、監視システム３００のプライマリワークステーション３０６）内に実装されたＳＩＭに対応する。
【００９６】
図１５の例示的な方法はブロック１５０２から開始し、例示的なインテグリティモニタコントローラ６１２はエンドポイントのランタイムインテグリティを検証するタイミングであるか否かを決定する。いくつかの実施例では、ランタイムインテグリティ測定はあるゆる好適な周期的または非周期的なスケジュールで実行される。例えば、ネットワーク内の各エンドポイントについて、ランタイムインテグリティ測定を１日１回要求してもよい。さらに、いくつかの実施例では、エンドポイントがその動作環境である制御システムにとって有する重要性に基づいてある種のエンドポイントを他のエンドポイントよりも頻繁に試験してもよい。１例示的なインテグリティモニタコントローラ６１２が、あるエンドポイントのランタイムインテグリティを検証するタイミングではないと決定した場合（ブロック１５０２）、例示的なインテグリティモニタコントローラ６１２はそのタイミングになるまで待つ。
【００９７】
エンドポイントのランタイムインテグリティの検証タイミングが訪れると、処理はブロック１５０４へ進み、例示的な通信インタフェース６０２は、エンドポイントのインテグリティ測定要求によって当該エンドポイントへノンス（例えば、例示的な許可コントローラ６０６によって生成された）を送信する。ブロック１５０６で、例示的な通信インタフェース６０２はインテグリティ測定値のレポートを受信する。いくつかの実施例では、監視システムレベル１０８にあるエンドポイントのインテグリティ測定値は、制御システムレベル１０６にあるエンドポイントによって実装されたＩＭＭに関して上述したのと同じまたは同様の方法で当該エンドポイントによって実装されたＩＭＭによって生成される。ただし、いくつかの実施例では、監視システムが通常、システムの環境設定方法を定義した環境設定ファイルを有していないため、インテグリティ測定値は環境設定のインテグリティ測定値を含まない。他方、エンドポイントが制御システムに対応するいくつかの実施例では、インテグリティ測定値は、図１６に関連して以下に詳述するように、制御システム内の全エンドポイントから受信する環境設定のインテグリティ測定値の組み合わせに対応する値を含んでいてもよい。ブロック１５０８で、例示的なインテグリティ測定値データベース６１８は報告されたインテグリティ測定値を記憶する。
【００９８】
ブロック１５１０で、例示的なインテグリティ測定値コンパレータ６０４は、報告されたインテグリティ測定値を基準値と比較する。ブロック１５１２で、例示的なインテグリティ測定値コンパレータ６０４は報告されたインテグリティ測定値が基準値に一致するか否かを決定する。一致しない場合、処理はブロック１５１４へ進み、例示的なインテグリティモニタコントローラ６１２は不一致のインテグリティ測定値に基づいて応答を実施する。いくつかの実施例では、具体的な応答はどのタイプ（例えば、ソフトウェア、ハードウェア、および／または環境設定）のインテグリティ測定値が基準値に一致しなかったかによって変わる。いくつかの実施例では、応答の性質は、エンドポイントの性質および／または対応するネットワーク内の他のエンドポイントとの関係の性質によって変わる。いくつかの実施例では、応答は、警報を生成するステップ（ブロック１５１６）と、エンドポイントから受信する将来のデータに疑わしいという目印を付けるステップ（ブロック１５１８）、および／またはエンドポイントの通信アクセスを制限するステップ（ブロック１５２０）を含む。いくつかの実施例では、通信アクセスは拒否される（すなわち、通信アクセスは提供されない）。いくつかの実施例では、エンドポイントはファームウェア更新通信アクセスに制限される。別の実施例では、通信は可能であるが、特定ノードからのデータが疑わしいという目印または表示が付けられる。いくつかの実施例では、監視システム上のある種のエンドポイントに通信アクセスが提供され、その他のエンドポイントへの通信は阻止される。いくつかの実施例では、応答は、ブロック１５６、１５８、１５２０、および１５２２の２つ以上の組み合わせを含む。いくつかの実施例では、実施される応答はエンドポイントの環境設定時にユーザによって定義される。
【００９９】
適当な応答が実施された（ブロック１５１４）後で、処理はブロック１５２２へ進む。ブロック１５１２へ戻り、例示的なインテグリティ測定値コンパレータ６０４がインテグリティ測定値が基準値に一致すると決定した場合、エンドポイントのインテグリティが検証され、その後のアクションは不要である。そのような実施例では、処理は直接ブロック１５２２へ進む。ブロック１５２２で、例示的なインテグリティモニタコントローラ６１２は検証すべき別のエンドポイントがあるか否かを決定する。別のエンドポイントがある場合、処理はブロック１５０２へ戻る。そうでない場合、処理はブロック１５２６へ進み、例示的なインテグリティモニタコントローラ６１２は処理を継続するか否かを決定する。継続する場合、処理はブロック１５０２へ戻る。そうでない場合、図１５の例示的な方法は終了する。
【０１００】
図１６は、図２、３および／または６の例示的なシステムインテグリティモニタ（ＳＩＭ）２２８を実装して下位レベルのエンドポイントのシステム（例えば、図３の監視システム３００内のエンドポイントとしての制御システム２００）に対応するエンドポイントに関して組み合わせのインテグリティ測定値を生成する例示的な方法を示すフローチャートである。すなわち、図１６に示す実施例では、ＳＩＭ２２８は監視システムのプライマリワークステーション（例えば、監視システム３００のプライマリワークステーション３０６）と通信する制御システムのプライマリワークステーション（例えば、制御システム２００のプライマリワークステーション２２０）内に実装されたＳＩＭに対応する。言い換えると、監視システム３００のプライマリワークステーション３０６の観点から、図６に実装されたＳＩＭ２２８は、上記のＩＭＭ２３０と同じまたは同様の方法でインテグリティ測定値を報告するよう機能する。ただし、以下に詳述するように、そのようなインテグリティ測定値を獲得または収集するために、ＳＩＭ２２８は、ＳＩＭ２２８がモニタしている下位レベルのエンドポイント内に実装されたＩＭＭ２３０からインテグリティ測定値を先に獲得または収集する必要がある。
【０１０１】
図１６の例示的な方法はブロック１６０２から開始し、例示的な通信インタフェース６０２は、要求を用いて、従属システム（例えば、監視システム内の制御システム）に対応するエンドポイントのインテグリティ測定値のシステムインテグリティモニタからノンスを受信する。いくつかの実施例では、エンドポイントはサブシステム全体を指すとはいえ、エンドポイントは要求を受信するＳＩＭ２２８を実装するサブシステム内のプライマリワークステーションによって効果的に表される。いくつかの実施例では、要求によって提供されるノンス値は応答を生成するために使用しなければならない。ブロック１６０４で、例示的なインテグリティ測定セルフテスター５０４は、ＳＩＭのインテグリティ測定機能を試験する。ブロック１６０６で、例示的なインテグリティモニタコントローラ６１２はインテグリティ測定機能が正常に働いているか（例えば、出力が予想通りである）か否かを決定する。働いていない場合、図１６の例示的な方法は終了する。いくつかの実施例では、インテグリティモニタコントローラ６１２は、方法が終了する前に試験が失敗したことを示すエラーメッセージを生成する。例示的なインテグリティモニタコントローラ６１２がインテグリティ測定機能が正常に働いていると決定した場合（ブロック１６０６）、処理はブロック１６０８へ進む。
【０１０２】
ブロック１６０８で、例示的なインテグリティモニタコントローラ６１２は全てのインテグリティ設定値レジスタ６２２、６２４、６２６をクリアする。ブロック１６１０で、例示的なインテグリティモニタコントローラ６１２は、従属システム内のエンドポイントから受信したソフトウェアインテグリティ測定値を例示的なソフトウェア測定値レジスタ６２２に追加する。いくつかの実施例では、ソフトウェアインテグリティ測定値は、対応するエンドポイントモニタしているＳＩＭ２２８によって以前に要求されたインテグリティ測定値データベース６１８から得られる。別の実施例では、ＳＩＭ２２８はブロック１６０２で受信した要求に応答してソフトウェアインテグリティ測定値を要求する。ブロック１６１２で、例示的なインテグリティモニタコントローラ６１２は、従属システム内のエンドポイントから受信したハードウェアインテグリティ測定値を例示的なハードウェア測定値レジスタ６２４に追加する。いくつかの実施例では、ハードウェアインテグリティ測定値は対応するエンドポイントモニタしているＳＩＭ２２８によって以前に要求されたインテグリティ測定値データベース６１８から得られる。別の実施例では、ＳＩＭ２２８はブロック１６０２で受信した要求に応答してハードウェアインテグリティ測定値を要求する。ブロック１６１４で、例示的なインテグリティモニタコントローラ６１２は、従属システム内のエンドポイントから受信した環境設定のインテグリティ測定値を例示的な環境設定測定値レジスタ６２６に追加する。いくつかの実施例では、環境設定のインテグリティ測定値は対応するエンドポイントモニタしているＳＩＭ２２８によって以前に要求されたインテグリティ測定値データベース６１８から得られる。別の実施例では、ＳＩＭ２２８はブロック１６０２で受信した要求に応答して環境設定のインテグリティ測定値を要求する。
【０１０３】
ブロック１６１６で、例示的なインテグリティモニタコントローラ６１２は従属システム内に別のエンドポイントがあるか否かを決定する。別のエンドポイントがある場合、処理はブロック１６１０、１６１２、および１６１４へ戻り、エンドポイントから受信した対応するインテグリティ測定値を対応するレジスタ６２２、６２４、６２６に追加する。いくつかの実施例では、インテグリティ測定値は、以前に追加されたインテグリティ測定値に付加することでそれぞれのレジスタに追加される。例示的なインテグリティモニタコントローラ６１２が従属システム内にこれ以上エンドポイントはないと決定した場合（ブロック１６１６）、処理はブロック１６１８へ進み、例示的なインテグリティ測定値ジェネレータ６０８は従属システムのインテグリティ測定値の組み合わせを生成する。いくつかの実施例では、インテグリティ測定値の組み合わせはソフトウェア、ハードウェア、および環境設定レジスタ６２２、６２４、６２６の各々に記憶された値の文字列のチェックサムを計算することによって生成される。ブロック１６２０で、例示的な通信インタフェース６０２はインテグリティ測定値の組み合わせのレポートを監視システムのＳＩＭへ送信し、この時点で図１６の例示的な方法は終了する。
【０１０４】
図１７は、図７の例示的な方法を実行して図２および／または４の例示的な環境設定モジュール２２６を実施するために使用でき、かつ／またはプログラミングできる例示的なプロセッサプラットフォーム１７００のブロック図である。プロセッサプラットフォーム１７００は、例えば、サーバ、パーソナルコンピュータ、移動体デバイス（例えば、携帯電話、スマートフォン、ｉＰａｄ（商標）などのタブレット）、パーソナルディジタルアシスタント（ＰＤＡ）、インターネット装置、ＤＶＤプレーヤー、ＣＤプレーヤー、ディジタルビデオレコーダ、ブルーレイプレーヤー、ゲーム機、パーソナルビデオレコーダ、セットトップボックス、またはその他の任意のタイプのコンピュータデバイスであってもよい。
【０１０５】
図示の実施例のプロセッサプラットフォーム１７００は、プロセッサ１７１２を含む。図示の実施例のプロセッサ１７１２はハードウェアである。例えば、プロセッサ１７１２は、任意の所望のファミリまたは製造業者から入手できる１つ又は複数の集積回路、論理回路、マイクロプロセッサまたはコントローラによって実施できる。
【０１０６】
図示の実施例のプロセッサ１７１２はローカルメモリ１７１３（例えば、キャッシュ）を含む。図示の実施例では、プロセッサ１７１２は例示的な環境設定ファイルジェネレータ４０４および／または例示的な基準値ジェネレータ４０６を実施する。図示の実施例のプロセッサ１７１２は、揮発性メモリ１７１４と不揮発性メモリ１７１６とを含むメインメモリとバス１７１８を介して通信している。揮発性メモリ１７１４は、シンクロナスダイナミックランダムアクセスメモリ（ＳＤＲＡＭ）、ダイナミックランダムアクセスメモリ（ＤＲＡＭ）、ラムバスダイナミックランダムアクセスメモリ（ＲＤＲＡＭ）および／またはその他の任意のタイプのランダムアクセスメモリデバイスによって実施できる。不揮発性メモリ１７１６は、フラッシュメモリおよび／またはその他の任意の所望のタイプのメモリデバイスによって実施できる。メインメモリ１７１４、１７１６へのアクセスはメモリコントローラによって制御されている。
【０１０７】
図示の実施例のプロセッサプラットフォーム１７００は、インタフェース回路１７２０をさらに含む。インタフェース回路１７２０は、イーサネット（登録商標）インタフェース、ユニバーサルシリアルバス（ＵＳＢ）、および／またはＰＣＩエクスプレスインタフェースなどの任意のタイプのインタフェース標準によって実施できる。
【０１０８】
図示の実施例では、１つ又は複数の入力デバイス１７２２がインタフェース回路１７２０に接続されている。入力デバイス１７２２を用いて、ユーザはプロセッサ１７１２にデータおよびコマンドを入力できる。入力デバイスは、例えば、オーディオセンサ、マイクロフォン、カメラ（スチールまたはビデオ）、キーボード、ボタン、マウス、タッチスクリーン、トラックパッド、トラックボール、アイソポイントおよび／または音声認識システムによって実施できる。
【０１０９】
図示の実施例のインタフェース回路１７２０には、１つ又は複数の出力デバイス１７２４も接続されている。出力デバイス１７２４は、例えば、ディスプレイデバイス（例えば、発光ダイオード（ＬＥＤ）、有機発光ダイオード（ＯＬＥＤ）、液晶ディスプレイ、陰極線管ディスプレイ（ＣＲＴ）、タッチスクリーン、タクタイル出力デバイス、発光ダイオード（ＬＥＤ）、プリンタおよび／またはスピーカ）によって実施できる。したがって、図示の実施例のインタフェース回路１７２０は、通常、グラフィックスドライバカード、グラフィックスドライバチップまたはグラフィックスドライバプロセッサを含む。
【０１１０】
図示の実施例のインタフェース回路１７２０は、ネットワーク１７２６（例えば、イーサネット（登録商標）接続、ディジタル加入者線（ＤＳＬ）、電話回線、同軸ケーブル、セルラ電話システムなど）を介した外付けマシン（例えば、任意の種類のコンピュータデバイス）とのデータ交換を容易にする送信機、受信機、送受信機、モデムおよび／またはネットワークインタフェースカードなどの通信デバイスをさらに含む。
【０１１１】
図示の実施例のプロセッサプラットフォーム１７００は、ソフトウェアおよび／またはデータを記憶する１つ又は複数の大容量記憶装置１７２８をさらに含む。例えば、大容量記憶装置１７２８は図４の例示的な環境設定データベース４０８を含んでいてもよい。そのような大容量記憶装置１７２８の例は、フロッピーディスクドライブ、ハードドライブディスク、コンパクトディスクドライブ、ブルーレイディスクドライブ、ＲＡＩＤシステム、およびディジタルバーサタイルディスク（ＤＶＤ）ドライブを含む。
【０１１２】
図７の方法を実施するコード化命令１７３２は、大容量記憶装置１７２８内に、揮発性メモリ１７１４内に、不揮発性メモリ１７１６内に、および／またはＣＤもしくはＤＶＤなどの着脱式の有形コンピュータ可読記憶媒体上に記憶できる。
【０１１３】
図１８は、図８〜１０の例示的な方法を実行して図２、３、および／または５の例示的なインテグリティ測定モジュール２３０を実施するために使用でき、かつ／またはプログラミングできる例示的なプロセッサプラットフォーム１８００のブロック図である。プロセッサプラットフォーム１８００は、例えば、サーバ、パーソナルコンピュータ、移動体デバイス（例えば、携帯電話、スマートフォン、ｉＰａｄ（商標）などのタブレット）、パーソナルディジタルアシスタント（ＰＤＡ）、インターネット装置、ＤＶＤプレーヤー、ＣＤプレーヤー、ディジタルビデオレコーダ、ブルーレイプレーヤー、ゲーム機、パーソナルビデオレコーダ、セットトップボックス、またはその他の任意のタイプのコンピュータデバイスであってもよい。
【０１１４】
図示の実施例のプロセッサプラットフォーム１８００は、プロセッサ１８１２を含む。図示の実施例のプロセッサ１８１２はハードウェアである。例えば、プロセッサ１８１２は、任意の所望のファミリまたは製造業者から入手できる１つ又は複数の集積回路、論理回路、マイクロプロセッサまたはコントローラによって実施できる。
【０１１５】
図示の実施例のプロセッサ１８１２はローカルメモリ１８１３（例えば、キャッシュ）を含む。図示の実施例では、プロセッサ１８１２は、例示的なインテグリティ測定値ジェネレータ５０２、例示的なインテグリティ測定値セルフテスター５０４、例示的なインテグリティ測定値コントローラ５０６、および／または例示的な通信オーセンティケータ５０８を実施する。図示の実施例のプロセッサ１８１２は、揮発性メモリ１８１４と不揮発性メモリ１８１６とを含むメインメモリとバス１８１８を介して通信している。揮発性メモリ１８１４は、シンクロナスダイナミックランダムアクセスメモリ（ＳＤＲＡＭ）、ダイナミックランダムアクセスメモリ（ＤＲＡＭ）、ラムバスダイナミックランダムアクセスメモリ（ＲＤＲＡＭ）および／またはその他の任意のタイプのランダムアクセスメモリデバイスによって実施できる。不揮発性メモリ１８１６は、フラッシュメモリおよび／またはその他の任意の所望のタイプのメモリデバイスによって実施できる。メインメモリ１８１４、１８１６へのアクセスはメモリコントローラによって制御されている。
【０１１６】
図示の実施例のプロセッサプラットフォーム１８００は、インタフェース回路１８２０をさらに含む。インタフェース回路１８２０は、イーサネット（登録商標）インタフェース、ユニバーサルシリアルバス（ＵＳＢ）、および／またはＰＣＩエクスプレスインタフェースなどの任意のタイプのインタフェース標準によって実施できる。
【０１１７】
図示の実施例では、１つ又は複数の入力デバイス１８２２がインタフェース回路１８２０に接続されている。入力デバイス１８２２を用いて、ユーザはプロセッサ１８１２にデータおよびコマンドを入力できる。入力デバイスは、例えば、オーディオセンサ、マイクロフォン、カメラ（スチールまたはビデオ）、キーボード、ボタン、マウス、タッチスクリーン、トラックパッド、トラックボール、アイソポイントおよび／または音声認識システムによって実施できる。
【０１１８】
図示の実施例のインタフェース回路１８２０には、１つ又は複数の出力デバイス１８２４も接続されている。出力デバイス１８２４は、例えば、ディスプレイデバイス（例えば、発光ダイオード（ＬＥＤ）、有機発光ダイオード（ＯＬＥＤ）、液晶ディスプレイ、陰極線管ディスプレイ（ＣＲＴ）、タッチスクリーン、タクタイル出力デバイス、発光ダイオード（ＬＥＤ）、プリンタおよび／またはスピーカ）によって実施できる。したがって、図示の実施例のインタフェース回路１８２０は、通常、グラフィックスドライバカード、グラフィックスドライバチップまたはグラフィックスドライバプロセッサを含む。
【０１１９】
図示の実施例のインタフェース回路１８２０は、ネットワーク１８２６（例えば、イーサネット（登録商標）接続、ディジタル加入者線（ＤＳＬ）、電話回線、同軸ケーブル、セルラ電話システムなど）を介した外付けマシン（例えば、任意の種類のコンピュータデバイス）とのデータ交換を容易にする送信機、受信機、送受信機、モデムおよび／またはネットワークインタフェースカードなどの通信デバイスをさらに含む。
【０１２０】
図示の実施例のプロセッサプラットフォーム１８００は、ソフトウェアおよび／またはデータを記憶する１つ又は複数の大容量記憶装置１８２８をさらに含む。例えば、大容量記憶装置１９２８は図５の例示的なソフトウェア測定値レジスタ５１２、例示的な環境設定測定値レジスタ５１４、例示的なハードウェア測定値レジスタ５１６、例示的な許可情報データベース５１８、および／または例示的な環境設定データベース５２０を含んでいてもよい。そのような大容量記憶装置１８２８の例は、フロッピーディスクドライブ、ハードドライブディスク、コンパクトディスクドライブ、ブルーレイディスクドライブ、ＲＡＩＤシステム、およびディジタルバーサタイルディスク（ＤＶＤ）ドライブを含む。
【０１２１】
図８〜１０の方法を実施するコード化命令１８３２は、大容量記憶装置１８２８内に、揮発性メモリ１８１４内に、不揮発性メモリ１８１６内に、および／またはＣＤまたはＤＶＤなどの着脱式の有形コンピュータ可読記憶媒体上に記憶できる。
【０１２２】
図１９は、図１１〜１６の例示的な方法を実行して図２、３、および／または６の例示的なインテグリティ測定モジュール２２８を実施するために使用でき、かつ／またはプログラミングできる例示的なプロセッサプラットフォーム１９００のブロック図である。プロセッサプラットフォーム１９００は、例えば、サーバ、パーソナルコンピュータ、移動体デバイス（例えば、携帯電話、スマートフォン、ｉＰａｄ（商標）などのタブレット）、パーソナルディジタルアシスタント（ＰＤＡ）、インターネット装置、ＤＶＤプレーヤー、ＣＤプレーヤー、ディジタルビデオレコーダ、ブルーレイプレーヤー、ゲーム機、パーソナルビデオレコーダ、セットトップボックス、またはその他の任意のタイプのコンピュータデバイスであってもよい。
【０１２３】
図示の実施例のプロセッサプラットフォーム１９００は、プロセッサ１９１２を含む。図示の実施例のプロセッサ１９１２はハードウェアである。例えば、プロセッサ１９１２は、任意の所望のファミリまたは製造業者から入手できる１つ又は複数の集積回路、論理回路、マイクロプロセッサまたはコントローラによって実施できる。
【０１２４】
図示の実施例のプロセッサ１９１２はローカルメモリ１９１３（例えば、キャッシュ）を含む。図示の実施例では、プロセッサ１９１２は、例示的なインテグリティ測定値コンパレータ６０４、例示的な許可コントローラ６０６、例示的なインテグリティ測定値ジェネレータ６０８、例示的なインテグリティ測定値セルフテスター６１０、および／または例示的なインテグリティモニタコントローラ６１２を実施する。図示の実施例のプロセッサ１９１２は、揮発性メモリ１９１４と不揮発性メモリ１９１６とを含むメインメモリとバス１９１８を介して通信している。揮発性メモリ１９１４は、シンクロナスダイナミックランダムアクセスメモリ（ＳＤＲＡＭ）、ダイナミックランダムアクセスメモリ（ＤＲＡＭ）、ラムバスダイナミックランダムアクセスメモリ（ＲＤＲＡＭ）および／またはその他の任意のタイプのランダムアクセスメモリデバイスによって実施できる。不揮発性メモリ１９１６は、フラッシュメモリおよび／またはその他の任意の所望のタイプのメモリデバイスによって実施できる。メインメモリ１９１４、１９１６へのアクセスはメモリコントローラによって制御されている。
【０１２５】
図示の実施例のプロセッサプラットフォーム１９００は、インタフェース回路１９２０をさらに含む。インタフェース回路１９２０は、イーサネット（登録商標）インタフェース、ユニバーサルシリアルバス（ＵＳＢ）、および／またはＰＣＩエクスプレスインタフェースなどの任意のタイプのインタフェース標準によって実施できる。
【０１２６】
図示の実施例では、１つ又は複数の入力デバイス１９２２がインタフェース回路１９２０に接続されている。入力デバイス１９２２を用いて、ユーザはプロセッサ１９１２にデータおよびコマンドを入力できる。入力デバイスは、例えば、オーディオセンサ、マイクロフォン、カメラ（スチールまたはビデオ）、キーボード、ボタン、マウス、タッチスクリーン、トラックパッド、トラックボール、アイソポイントおよび／または音声認識システムによって実施できる。
【０１２７】
図示の実施例のインタフェース回路１９２０には、１つ又は複数の出力デバイス１９２４も接続されている。出力デバイス１９２４は、例えば、ディスプレイデバイス（例えば、発光ダイオード（ＬＥＤ）、有機発光ダイオード（ＯＬＥＤ）、液晶ディスプレイ、陰極線管ディスプレイ（ＣＲＴ）、タッチスクリーン、タクタイル出力デバイス、発光ダイオード（ＬＥＤ）、プリンタおよび／またはスピーカ）によって実施できる。したがって、図示の実施例のインタフェース回路１９２０は、通常、グラフィックスドライバカード、グラフィックスドライバチップまたはグラフィックスドライバプロセッサを含む。
【０１２８】
図示の実施例のインタフェース回路１９２０は、ネットワーク１９２６（例えば、イーサネット（登録商標）接続、ディジタル加入者線（ＤＳＬ）、電話回線、同軸ケーブル、セルラ電話システムなど）を介した外付けマシン（例えば、任意の種類のコンピュータデバイス）とのデータ交換を容易にする送信機、受信機、送受信機、モデムおよび／またはネットワークインタフェースカードなどの通信デバイスをさらに含む。
【０１２９】
図示の実施例のプロセッサプラットフォーム１９００は、ソフトウェアおよび／またはデータを記憶する１つ又は複数の大容量記憶装置１９２８をさらに含む。例えば、大容量記憶装置１９２８は、図６の例示的な基準値データベース６１６、例示的なインテグリティ測定値データベース６１８、例示的な許可情報データベース６２０、例示的なソフトウェア測定値レジスタ６２２、例示的なハードウェア測定値レジスタ６２４、および／または例示的な環境設定測定値レジスタ６２６を含んでいてもよい。そのような大容量記憶装置１９２８の例は、フロッピーディスクドライブ、ハードドライブディスク、コンパクトディスクドライブ、ブルーレイディスクドライブ、ＲＡＩＤシステム、およびディジタルバーサタイルディスク（ＤＶＤ）ドライブを含む。
【０１３０】
図１１〜１６の方法を実施するコード化命令１９３２は、大容量記憶装置１９２８内に、揮発性メモリ１９１４内に、不揮発性メモリ１９１６内に、および／またはＣＤまたはＤＶＤなどの着脱式の有形コンピュータ可読記憶媒体上に記憶できる。
【０１３１】
以上の説明から、上記に開示された方法、装置および製品が工業企業システム内の構成要素のセキュリティおよび信頼性を向上させることが理解されよう。相手先商標製造会社からの品質保証に基づくネットワーク通信デバイス（エンドポイント）内のインテグリティを想定する既存の手法とは異なり、本明細書に開示する実施例はそのようなエンドポイントのインテグリティを検証する。さらに、そのような検証はエンドポイントが最初に特定のネットワークに登録され、かつ／または受け入れられた時に、および／またはエンドポイントがランタイム中に動作している間に達成できる。こうして、エンドポイントのインテグリティを危殆化させる潜在的なセキュリティ侵害および／またはその他の障害を発生時にかかわらず検出して、そのようなエンドポイントからの通信が他のエンドポイントに影響を与えないように保証し、危殆化したエンドポイントに関して是正措置を講じることを可能にする。さらに、本明細書に開示する教示は、上位レベルの監視システムに従属する対応するシステムの検証のための下位レベルのエンドポイントのインテグリティ測定値のロールアップおよび組み合わせを可能にする。
【０１３２】
本明細書では、特定の方法、装置および製品について開示してきたが、本発明の適用範囲はそれに限定されない。逆に、本発明は、本発明の請求の範囲に記載する全ての方法、装置および製品を含む。
【図１】
2017004521.tif 000003
【図２】
2017004521.tif 000004
【図３】
2017004521.tif 000005
【図４】
2017004521.tif 000006
【図５】
2017004521.tif 000007
【図６】
2017004521.tif 000008
【図７】
2017004521.tif 000009
【図８】
2017004521.tif 000010
【図９】
2017004521.tif 000011
【図１０】
2017004521.tif 000012
【図１１】
2017004521.tif 000013
【図１２】
2017004521.tif 000014
【図１３】
2017004521.tif 000015
【図１４】
2017004521.tif 000016
【図１５】
2017004521.tif 000017
【図１６】
2017004521.tif 000018
【図１７】
2017004521.tif 000019
【図１８】
2017004521.tif 000020
【図１９】
2017004521.tif 000021