(57)【要約】      （修正有）【課題】ネットワーク制御システムにおける改ざんを自動で検出するための装置及び方法を提供する。【解決手段】ネットワーク制御システム１０において、コンフィギュレーション管理部２０は、複数のセンサ１２（温度計１２ａ、光学センサ１２ｂ、加速度計１２ｃ）及びアクチュエータ１６に関連付けられている。コンフィギュレーション管理部は、これらのセンサ及びアクチュエータのハードウェアコンフィギュレーション及び／又はソフトウェアコンフィギュレーションを自動で特定し、この情報を分析して、いずれかのセンサ及びアクチュエータが改ざんされていないかを検出する。コンフィギュレーション管理部は、改ざんを検出すると、制御管理部１４に改ざんを通知する。制御管理部は、ネットワーク制御システムに生じうる被害を最小限に留めるように機能する。【選択図】図１
2019133649.tif 000002
【特許請求の範囲】
【請求項１】
複数のネットワークコンポーネントと前記複数のネットワークコンポーネントを管理する制御管理部とを含む自動システム、を制御するためのコンフィギュレーション管理装置であって、
前記複数のネットワークコンポーネント及び前記制御管理部と通信するよう構成された通信インターフェース、及び、
前記通信インターフェースに機能的に接続された処理回路、を含み、
前記処理回路が、
特定のネットワークコンポーネントから受信したコンフィギュレーションデータと、データベースに格納された参照用のコンフィギュレーションデータと、の比較に基づいて、前記受信したコンフィギュレーションデータにおける不整合を検出し、
不整合を検出すると、前記特定のネットワークコンポーネントが改ざんされていることを示す改ざん検出信号を前記制御管理部に送信するよう構成されている、
コンフィギュレーション管理装置。
【請求項２】
前記処理回路は、前記制御管理部が不適正なソフトウェアコンポーネントを使用して前記特定のネットワークコンポーネントを制御していることを検出することで、前記特定のネットワークコンポーネントから受信した前記コンフィギュレーションデータにおける不整合を検出するよう構成されている、請求項１に記載のコンフィギュレーション管理装置。
【請求項３】
前記処理回路は、前記制御管理部が不適正なコンフィギュレーションパラメータを使用して前記特定のネットワークコンポーネントを制御していることを検出することで、前記特定のネットワークコンポーネントから受信した前記コンフィギュレーションデータにおける不整合を検出するよう構成されている、請求項１に記載のコンフィギュレーション管理装置。
【請求項４】
前記処理回路は、前記制御管理部が、前記特定のネットワークコンポーネントについて不適正なコンフィギュレーションを使用して前記特定のネットワークコンポーネントからの受信信号を解釈していることを検出することで、前記特定のネットワークコンポーネントから受信した前記コンフィギュレーションデータにおける不整合を検出するよう構成されている、請求項１に記載のコンフィギュレーション管理装置。
【請求項５】
前記改ざん検出信号は、前記制御管理部に、前記特定のネットワークコンポーネントの動作を停止させるか、前記特定のネットワークコンポーネントとの通信を、予備のネットワークコンポーネントとの通信に切り替えるか、のいずれかを実行させる、請求項１に記載のコンフィギュレーション管理装置。
【請求項６】
前記処理回路は、さらに、前記コンフィギュレーションデータと前記参照用コンフィギュレーションデータとの前記比較に基づいて、特定のネットワークコンポーネントから受信した前記コンフィギュレーションデータに不整合がないことを検出するよう構成されている、請求項１に記載のコンフィギュレーション管理装置。
【請求項７】
前記処理回路は、前記コンフィギュレーションデータに不整合がないことを検出した場合、
前記複数のネットワークコンポーネントが動作モードにある間、前記特定のネットワークコンポーネントから前記制御管理部に送信されるデータの特性を監視し、
前記特性における不整合を、前記データベースに格納された参照用の特性との比較に基づいて検出し、
前記受信した特性における不整合を検出すると、前記特定のネットワークコンポーネントが改ざんされていることを示す前記改ざん検出信号を前記制御管理部に送信するよう構成されている、請求項１に記載のコンフィギュレーション管理装置。
【請求項８】
前記データの特性は、
信号パターンと、
前記特定のネットワークコンポーネントが前記制御管理部にデータを送信する速度と、
前記特定のネットワークコンポーネントから前記制御管理部に送信された信号の種類と、のうちの１つ以上を含む、
請求項７に記載のコンフィギュレーション管理装置。
【請求項９】
前記特定のネットワークコンポーネントは、センサ及びアクチュエータのうちの一つである、請求項１に記載のコンフィギュレーション管理装置。
【請求項１０】
複数のネットワークコンポーネントと前記複数のネットワークコンポーネントを管理する制御管理部とを含む自動システム、を制御するための方法であって、
特定のネットワークコンポーネントから受信したコンフィギュレーションデータと、データベースに格納された参照用のコンフィギュレーションデータと、の比較に基づいて、前記受信したコンフィギュレーションデータにおける不整合を検出することと、及び、
不整合を検出すると、前記特定のネットワークコンポーネントが改ざんされている旨を前記制御管理部に通知することと、
を含む方法。
【請求項１１】
前記特定のネットワークコンポーネントが認識されたネットワークコンポーネントであるか、あるいは、認識されていないネットワークコンポーネントであるかを判定することをさらに含む、請求項１０に記載の方法。
【請求項１２】
前記特定のネットワークコンポーネントが認識されたネットワークコンポーネントであると判定した場合に、前記コンフィギュレーションデータを前記参照用コンフィギュレーションデータと比較することをさらに含む、請求項１１に記載の方法。
【請求項１３】
前記特定のネットワークコンポーネントが認識されていないネットワークコンポーネントであると判定した場合に、前記特定のネットワークコンポーネントが改ざんされている旨を前記制御管理部に通知することをさらに含む、請求項１１に記載の方法。
【請求項１４】
前記コンフィギュレーションデータに不整合がないことを検出することをさらに含み、
前記コンフィギュレーションデータに不整合がないことを検出した場合に、
前記複数のネットワークコンポーネントが動作モードにある間、前記特定のネットワークコンポーネントから前記制御管理部に送信されるデータの特性を監視することと、
前記データベースに格納された参照用の特性との比較に基づいて、前記特性における不整合を検出することと、
前記特性に不整合を検出した場合に、前記特定のネットワークコンポーネントが改ざんされている旨を前記制御管理部に通知することと、をさらに含む、
請求項１０に記載の方法。
【請求項１５】
前記コンフィギュレーションデータ及び前記参照用コンフィギュレーションデータの一方は、ソフトウェアコンフィギュレーションデータであり、前記コンフィギュレーションデータ及び前記参照用コンフィギュレーションデータの他方は、ハードウェアコンフィギュレーションデータである、請求項１０に記載の方法。
【請求項１６】
前記特定のネットワークコンポーネントが改ざんされている旨を前記制御管理部に通知することは、
改ざん検出メッセージを生成することと、
前記改ざん検出メッセージを前記制御管理部に送信することと、
を含み、
前記改ざん検出メッセージが、
前記特定のネットワークコンポーネントを識別する情報と、
前記特定のネットワークコンポーネントの動作を停止させるか、前記特定のネットワークコンポーネントとの通信を、予備のネットワークコンポーネントとの通信に切り替えるか、のいずれかを前記制御管理部に実行させる指示と、を含むものである、
請求項１０に記載の方法。
【請求項１７】
前記複数のネットワークコンポーネントのうちの１つ以上にコンフィギュレーションデータを要求するメッセージを送信することと、
当該ネットワークコンポーネントから、当該ネットワークコンポーネントのコンフィギュレーションデータを含む応答メッセージを受信することと、
をさらに含む、請求項１０に記載の方法。
【請求項１８】
前記応答メッセージのヘッダを検査することと、
前記特定のネットワークコンポーネントが前記応答メッセージの送信に用いたプロトコルを特定することと、
前記特定したプロトコルに基づいて前記応答メッセージを処理して、前記コンフィギュレーションを取得することと、
をさらに含む、請求項１７に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、概して、ネットワーク制御システム（ＮＣＳ）の分野に関し、具体的には、ＮＣＳにおける改ざんを自動で検出するための装置及び方法に関する。
【背景技術】
【０００２】
ネットワーク制御システム（ＮＣＳ）は、センサ及びアクチュエータが通信ネットワークを介してコントローラと通信する閉ループシステムである。このようなシステムは、例えば、様々な設定環境で発生する機能及び処理の監視及び制御に用いられる。ここでいう設定環境の例としては、限定するものではないが、自律システム、製造プラント、化学プラントや原子力発電所、環境制御システムがあり、また、航空機や衛星に用いられているものも含まれる。ほとんどのＮＣＳにおいて、監視機能及び制御機能は、コントローラがシステム内の異なるセンサ及びアクチュエータとの間でフィードバック情報と制御信号を交換することで実行される。ただし、これらの機能が適切に実行されるためには、コントローラ、センサ、及び、アクチュエータが、最新且つ正確なコンフィギュレーション情報（configuration information）を互いに共有している必要がある。コンポーネント間でコンフィギュレーション情報の不整合（discrepancy）があると、システムの誤動作のリスクが高くなる。
【発明の概要】
【０００３】
本開示の側面は、ネットワーク制御システム（ＮＣＳ）に含まれる様々なコンポーネントのハードウェアコンフィギュレーション及び／又はソフトウェアコンフィギュレーションの設定を自動で特定するための、また、これらのコンポーネントに対する改ざんの有無を自動で検出するための方法及び装置に関する。そのようなコンポーネントとしては、限定するものではないが、センサやアクチュエータ、また、自動あるいは所定の処理や機能を実行可能なその他の自動装置が挙げられる。本開示によれば、これらの側面は、ＮＣＳにおいて、センサ、アクチュエータ、及び、その他の機器の間に通信可能に配置されたコンピュータ装置と、ＮＣＳコンポーネントの動作を管理するよう構成された制御管理部と、によって実現することができる。
【０００４】
本開示の一側面によれば、コンフィギュレーション管理装置は、複数のネットワークコンポーネントと前記複数のコンポーネントを管理する制御管理部とを有する自動システムに含まれる。この側面では、前記コンフィギュレーション管理装置は、通信インターフェース及び前記通信インターフェースに機能的に接続された処理回路を含む。前記通信インターフェースは、前記複数のネットワークコンポーネント及び前記制御管理部と通信するよう構成されている。前記処理回路は、特定のネットワークコンポーネントから受信したコンフィギュレーションデータと、データベースに格納された参照用のコンフィギュレーションデータと、の比較に基づいて、前記受信したコンフィギュレーションデータにおける不整合を検出するよう構成されているとともに、不整合を検出すると、前記特定のネットワークコンポーネントが改ざんされていることを示す改ざん検出信号を前記制御管理部に送信するよう構成されている。
【０００５】
一側面において、前記コンフィギュレーションデータ及び前記参照用コンフィギュレーションデータの一方は、ソフトウェアコンフィギュレーションデータであり、前記コンフィギュレーションデータ及び前記参照用コンフィギュレーションデータの他方は、ハードウェアコンフィギュレーションデータである。
【０００６】
前記特定のネットワークコンポーネントから受信した前記コンフィギュレーションデータにおける不整合を検出するために、一側面における前記処理回路は、前記制御管理部が不適正なソフトウェアコンポーネントを使用して前記特定のネットワークコンポーネントを制御していることを検出するよう構成されている。
【０００７】
前記特定のネットワークコンポーネントから受信した前記コンフィギュレーションデータにおける不整合を検出するために、他の側面における前記処理回路は、前記制御管理部が不適正なコンフィギュレーションパラメータを使用して前記特定のネットワークコンポーネントを制御していることを検出するよう構成されている。
【０００８】
前記特定のネットワークコンポーネントから受信した前記コンフィギュレーションデータにおける不整合を検出するために、他の側面における前記処理回路は、前記特定のネットワークコンポーネントについて不適正なコンフィギュレーションを使用して前記特定のネットワークコンポーネントからの受信信号を解釈していることを検出するよう構成されている。
【０００９】
一側面において、前記改ざん検出信号は、前記制御管理部に、前記特定のネットワークコンポーネントの動作を停止させるか、前記特定のネットワークコンポーネントとの通信を、予備のネットワークコンポーネントとの通信に切り替えるか、のいずれかを実行させる。
【００１０】
一側面において、前記処理回路は、さらに、前記コンフィギュレーションデータと前記参照用コンフィギュレーションデータとの前記比較に基づいて、特定のネットワークコンポーネントから受信した前記コンフィギュレーションデータに不整合がないことを検出するよう構成されている。
【００１１】
前記処理回路は、このような場合、前記複数のネットワークコンポーネントが動作モードにある間、前記特定のネットワークコンポーネントから前記制御管理部に送信されるデータの特性を監視して、前記特性における不整合を、前記データベースに格納された参照用の特性との比較に基づいて検出し、前記特定のネットワークコンポーネントから送信された特性における不整合を検出すると、前記特定のネットワークコンポーネントが改ざんされていることを示す前記改ざん検出信号を前記制御管理部に送信するよう構成されている。
【００１２】
一側面において、前記特定のネットワークコンポーネントから送信された前記データの特性は、信号パターンと、前記特定のネットワークコンポーネントが前記制御管理部にデータを送信する速度と、前記特定のネットワークコンポーネントから前記制御管理部に送信された信号の種類と、のうちの１つ以上を含む。
【００１３】
一側面において、前記特定のネットワークコンポーネントは、センサ及びアクチュエータのうちの一つである。
【００１４】
一側面において、複数のネットワークコンポーネントと前記複数のネットワークコンポーネントを管理する制御管理部とを含む自動システム、を制御するための方法は、特定のネットワークコンポーネントから受信したコンフィギュレーションデータと、データベースに格納された参照用のコンフィギュレーションデータと、の比較に基づいて、前記受信したコンフィギュレーションデータにおける不整合を検出することと、不整合を検出すると、前記特定のネットワークコンポーネントが改ざんされている旨を前記制御管理部に通知することと、を含む。
【００１５】
一側面において、前記方法は、前記特定のネットワークコンポーネントが認識されたネットワークコンポーネントであるか、あるいは、認識されていないネットワークコンポーネントであるかを判定することをさらに含む。
【００１６】
一側面において、前記方法は、前記特定のネットワークコンポーネントが認識されたネットワークコンポーネントであると判定した場合に、前記コンフィギュレーションデータを前記参照用コンフィギュレーションデータと比較することをさらに含む。
【００１７】
一側面において、前記方法は、前記特定のネットワークコンポーネントが認識されていないネットワークコンポーネントであると判定した場合に、前記特定のネットワークコンポーネントが改ざんされている旨を前記制御管理部に通知することをさらに含む。
【００１８】
一側面において、前記方法は、前記コンフィギュレーションデータに不整合がないことを検出することをさらに含む。前記方法は、前記コンフィギュレーションデータに不整合がないことを検出した場合に、前記複数のネットワークコンポーネントが動作モードにある間、前記特定のネットワークコンポーネントから前記制御管理部に送信されるデータの特性を監視することと、前記データベースに格納された参照用の特性との比較に基づいて、前記特性における不整合を検出することと、前記特性に不整合を検出した場合に、前記特定のネットワークコンポーネントが改ざんされている旨を前記制御管理部に通知することと、をさらに含む。
【００１９】
一側面において、前記コンフィギュレーションデータ及び前記参照用コンフィギュレーションデータの一方は、ソフトウェアコンフィギュレーションデータであり、前記コンフィギュレーションデータ及び前記参照用コンフィギュレーションデータの他方は、ハードウェアコンフィギュレーションデータである。
【００２０】
一側面において、前記特定のネットワークコンポーネントが改ざんされている旨を前記制御管理部に通知することは、改ざん検出メッセージを生成し、前記制御管理部に送信することを含む。そのような側面では、前記改ざん検出メッセージは、前記特定のネットワークコンポーネントを識別する情報と、前記特定のネットワークコンポーネントの動作を停止させるか、前記特定のネットワークコンポーネントとの通信を、予備のネットワークコンポーネントとの通信に切り替えるか、のいずれかを前記制御管理部に実行させる指示と、を含む。
【００２１】
一側面において、前記方法は、前記複数のネットワークコンポーネントのうちの１つ以上にコンフィギュレーションデータを要求するメッセージを送信することと、当該ネットワークコンポーネントから応答メッセージを受信することと、をさらに含む。これらの側面では、前記応答メッセージは、当該ネットワークコンポーネントのコンフィギュレーションデータを含む。
【００２２】
一側面において、前記方法は、前記応答メッセージのヘッダを検査することと、当該ネットワークコンポーネントが前記応答メッセージの送信に用いたプロトコルを特定することと、前記特定したプロトコルに基づいて前記応答メッセージを処理して、前記コンフィギュレーションを取得することと、をさらに含む。
【００２３】
一側面において、本開示は、プログラム可能なコンピュータ装置を制御するよう構成されたコンピュータプログラムプロダクトを格納した非一時的なコンピュータ可読媒体を提供する。このような側面では、前記コンピュータプログラムプロダクトは、ソフトウェア命令を含み、前記ソフトウェア命令は、前記プログラム可能なコンピュータ装置の処理回路に実行されると、当該処理回路に、ネットワークコンポーネントから受信したコンフィギュレーションデータと、データベースに格納された参照用のコンフィギュレーションデータと、の比較に基づいて、前記受信したコンフィギュレーションデータにおける不整合を検出させるとともに、不整合を検出すると、前記ネットワークコンポーネントが改ざんされていることを示す改ざん検出信号を制御管理部に送信させる。
【図面の簡単な説明】
【００２４】
添付図面に示す本開示の側面は例示であって、限定を課すものではない。図面では、同様の要素には同じ参照符号が用いられている。
【００２５】
【図１】本開示の一側面によって構成されたネットワーク制御システム（ＮＣＳ）を示す。
【図２】本開示の一側面による、改ざんされたセンサ又はアクチュエータに対処する方法を示すフロー図である。
【図３Ａ−３Ｃ】本開示の一側面による、センサ又はアクチュエータの改ざんの有無を検出し、改ざんが検出されたことに基づいてセンサ又はアクチュエータの機能を制御する方法を示すフロー図である。
【図４】本開示の一側面によって構成されたコンフィギュレーション管理装置を示す機能ブロック図である。
【図５】本開示の一側面によるコンフィギュレーション管理装置の回路を構成する機能部及び／又はモジュールを示す機能ブロック図である。
【発明を実施するための形態】
【００２６】
本開示の側面は、ネットワーク制御システム（ＮＣＳ）を構成するセンサ、アクチュエータ、及び、その他の自動装置のハードウェアコンフィギュレーション、及び／又は、ソフトウェアコンフィギュレーションを自動で特定するとともに、これらＮＣＳコンポーネントの改ざんの有無を自動で検出するための装置、及び、これに対応する方法に関する。本開示によれば、改ざんの検出は、システムに含まれる各ＮＣＳコンポーネントのソフトウェアコンフィギュレーション情報、及び／又は、ハードウェアコンフィギュレーション情報をコンフィギュレーション管理装置（configuration manager device）が分析することによって行われる。改ざんが検出された場合、本開示の側面は、「改ざんされた」コンポーネントの動作及び処理を自動的に停止及び／又は終了させ、場合によっては、予備のコンポーネント（redundant component）を起動させることで、被害の発生を回避するよう構成されている。
【００２７】
本開示の側面は、多くの異なる種類のシステム、プラント、及び、アセンブリにおいて好適に用いることができる。あくまでも例示ではあるが、本開示の側面は、ロボットアセンブリ、自律システム、環境制御システム、航空機及び宇宙船の製造に用いられるシステム、航空機及び宇宙船に搭載されたシステム、さらには、化学プラントで化学プロセスを行うシステムに関連づけられたセンサ及びアクチュエータの監視及び制御に適用することができる。このような種類のシステムには、通常、何千（場合によっては、何百万）にも及ぶ数のセンサ、アクチュエータ、及び、自動装置が用いられているので、これらのコンポーネントのそれぞれの動作を監視し、制御することは困難であり、複雑である。しかしながら、本開示の様々な側面によれば、手動でＮＣＳのセンサ及びアクチュエータを監視して改ざんの有無を検出する必要を大幅に減らしたり、完全になくしたりすることができる。これにより、費用を節約し、処理の安全性を高め、そのようなシステム及びプラントにより提供される製品及び／又はサービスの質及び信頼性を高めることができる。
【００２８】
図面を参照すると、図１は、本開示の一側面にしたがって構成されたＮＣＳ１０を示す。なお、当業者には理解されるであろうが、図１に示し、本明細書で説明するコンポーネントは、あくまでも例示である。ＮＣＳ１０は、具体的に特定や言及していないものでも、必要な、及び／又は、所望のコンポーネントを他にも含むことができる。
【００２９】
図１に示す側面では、ＮＣＳ１０は、１つ以上のセンサ１２ａ、１２ｂ、１２ｃ（まとめて「１２」と表示する）、制御管理部１４、１つ以上のアクチュエータ１６、プラント／プロセス１８、及び、コンフィギュレーション管理部２０を含む複数のネットワークコンポーネントを有する。これらの各コンポーネントは、１つ以上の無線及び／又は有線通信ネットワークを経由して通信可能に接続されている。このネットワークでは、任意の既知の通信プロトコル又はその組み合わせを用いて情報及び信号が交換される。そのようなプロトコルの例には、限定するものではないが、ＴＣＰ／ＩＰ、ＢＡＣｎｅｔ、Ｍｏｄｂｕｓ、ＩＥＥＥ８０２系、ＩｎｆｒａＲｅｄ、及び、ＢＬＵＥＴＯＯＴＨがある。
【００３０】
複数のセンサ１２は、１つ以上のデバイス及び／又はハードウェア回路であり、それぞれが動作する物理的環境における所定の特性を測定するよう構成されている。これら複数のセンサ１２は、同じデバイスであっても、異なるデバイスであってもよい。したがって、これらセンサは、必要な、又は、所望の時間間隔や期間で、同じ特性を検知、測定するようにも、異なる特性を検知、測定するようにも構成可能である。あくまでも例示であるが、図１に示すＮＣＳ１０のセンサ１２は、温度を測定する１つ以上の温度計１２ａ、光（あるいは、光量不足）を測定する１つ以上の光学センサ１２ｂ、及び、ＮＣＳ１０に接続された物体の加速度を測定する１つ以上の加速度計１２ｃを含む。当然ながら、その他のセンサを含むことも可能であり、便宜上図示していないものも含まれうる。そのようなセンサとしては、限定するものではないが、ジャイロスコープ、圧力センサ、傾斜センサ、近接センサ、速度センサ、音響センサ、ナビゲーション機器に関連付けられたセンサ、力センサ、密度センサ、環境センサ、化学センサなどがある。
【００３１】
制御管理部１４は、ＮＣＳ１０を構成する各コンポーネントの健全性及び動作を監視するとともに、これらのコンポーネントの動作を制御するよう構成されたコンピュータ装置である。一側面において、制御管理部１４は、各センサ１２からそれぞれの測定値を示す信号及び情報を受信する。制御管理部１４は、これらの信号及び情報を、自動測定サイクルの一環として定期的に受信してもよいし、センサ１２に送信された明示的な要求に対する応答として受信してもよいし、その両方でもよい。どのような時間間隔であるかに関わらず、制御管理部１４は、センサ１２から受信した信号及び情報を分析するよう構成されている。制御管理部１４は、分析結果に基づいて制御信号を生成、送信して、ＮＣＳ１０の様々なコンポーネントを分析結果にしたがって制御する。
【００３２】
あくまでも例示ではあるが、制御管理部１４が温度計１２ａから、当該温度計１２ａに関連づけられた主電源（図示せず）が過熱状態にあることを示す信号を受信した場合を想定してみよう。制御管理部１４は、過熱状態を判定すると、制御信号又は制御信号群を生成し、主電源に送信して、当該電源を遮断するか、「オフライン」状態にするか、あるいは、その動作を終了又は停止させる。これに加えて、あるいは、これに代えて、制御管理部１４は、別の制御信号又は制御信号群を生成し、これを「バックアップ用の」（即ち、予備の）電源に送信して、この予備コンポーネントを自動的に起動させる。
【００３３】
アクチュエータ１６は、ＮＣＳ１０に関連づけられた１つ以上のアクチュエータを含む。アクチュエータ１６は、所定の機能を実行するよう構成された必要な、又は、望ましい種類のアクチュエータである。本開示の様々な側面によれば、適切なアクチュエータとしては、限定するものではないが、例えば、空気圧アクチュエータ、電動アクチュエータ、熱アクチュエータ、機械式アクチュエータ、リニアアクチュエータ、及び、ロータリーアクチュエータがある。アクチュエータ１６の具体的な種類や機能に関わらず、これらのアクチュエータ１６は、プラント／プロセス１８における処理、動作、又は、機能を実行するために使用可能であり、また、制御管理部１４が生成し、送信する１つ以上の制御信号によって制御される。上述したように、制御管理部１４がセンサ１２から測定信号及び情報を受信すると、制御信号が生成され、送信される。つまり、制御管理部１４は、これら測定信号及び情報を用いて、アクチュエータ１６の機能を停止又は終了させ、及び／又は、予備アクチュエータ１６を起動させることができる。
【００３４】
プラント／プロセス１８は、センサ１２から受信した測定信号及び情報に基づいて制御管理部１４によって制御されるデバイス又はデバイス系統（例えば、アセンブリ）で構成される。一側面では、例えば、プラント／プロセス１８は、アクチュエータ１６を有するロボットアームアセンブリで構成される。つまり、ロボットアームアセンブリの動作は、１つ以上のセンサ１２から受信した測定信号及び情報の分析に基づいて、制御管理部１４がアクチュエータ１６を介して制御する。プラント／プロセス１８は、任意あるいは所望の種類のプラント又はプロセスであって、例えば、ロボットアーム、自律システム、航空機の環境制御システム、化学プラントの機器において実行される化学プロセス、製造プラントにおける製造プロセスなどが含まれる。
【００３５】
コンフィギュレーション管理部２０は、センサ１２、アクチュエータ１６、及び、制御管理部１４の間に、通信可能に介装されている。一側面では、コンフィギュレーション管理部２０は、ネットワークに通信可能に接続された独立型のコンピュータ装置を含む。一側面では、コンフィギュレーション管理部２０及び制御管理部１４は、同一のコンピュータ装置上で動作する。コンフィギュレーション管理部２０が独立型の装置であるか、制御管理部１４と同一のコンピュータ装置上で並列に動作する機能を有する装置であるかに関わらず、コンフィギュレーション管理部２０は、各センサ１２及びアクチュエータ１６のソフトウェアコンフィギュレーション及び／又はハードウェアコンフィギュレーションの設定を自動で取得し、これらセンサ１２及びアクチュエータ１６のソフトウェアコンフィギュレーション及び／又はハードウェアコンフィギュレーションを監視して、これらコンポーネントの改ざんの有無を自動で判定する。コンフィギュレーション管理部２０がセンサ１２及び／又はアクチュエータ１６のコンフィギュレーション情報における異常を検出した場合、このような異常は、改ざんの可能性を示唆するので、コンフィギュレーション管理部２０は、１つ以上の改ざん検出信号を生成し、これを制御管理部１４に送信し、該当するセンサ１２及び／又はアクチュエータ１６の動作を停止又は終了させる。
【００３６】
加えて、本開示の一実施形態では、コンフィギュレーション管理部２０から送信された改ざん検出信号は、制御管理部１４に１つ以上の制御信号を生成させ、「改ざんされた」コンポーネントの機能の置き換えを行わせる。より具体的には、改ざん検出信号を受信すると、制御管理部１４は、予備コンポーネントを起動させるために必要な制御信号を生成し、次いで、「改ざんされた」コンポーネントとの通信を、新たに起動させた予備コンポーネントとの通信に切り換える。制御管理部１４の動作をこのように制御することで、「改ざんされた」コンポーネントがネットワークとの通信から切り離され、新たに起動させた予備コンポーネントがネットワークと通信可能に投入される。これにより、新たに起動させた予備コンポーネントが、制御管理部１４と通信し、及び／又は、制御される。
【００３７】
例えば、コンフィギュレーション管理部２０が加速度計１２Ｃの改ざんの可能性を検出したと想定しよう。この場合、コンフィギュレーション管理部２０は、改ざんを示唆する改ざん検出信号を生成して、制御管理部１４に送信する。これを受けて、制御管理部１４は、１つ以上の制御信号を生成し、加速度計１２ｃに送信して、加速度計１２ｃを「オフライン」状態にする。これにより、加速度計１２ｃを実質的に隔離して、制御管理部１４と測定信号及び情報の通信が行われないようにする。次いで、制御管理部１４は、所定の代替用加速度計１２ｃを起動するために必要な制御信号を生成し、送信する。代替用加速度計が起動されると、コンフィギュレーション管理部２０は、代替用加速度計１２ｃ及び制御管理部１４が、互いのソフトウェアコンフィギュレーション及び／又は、ハードウェアコンフィギュレーションの最新の設定を共有するようにし、次いで、新たに起動した加速度計１２ｃ及び制御管理部１４の一方又は両方を制御して、通常の動作モードで互いに通信を開始させる。
【００３８】
図２は、本開示の一側面にしたがってコンフィギュレーション管理部２０により実行される方法であって、改ざんされたＮＣＳコンポーネント（例えば、センサ２１及び／又はアクチュエータ１６）に対処する方法３０を示すフロー図である。図２に示すように、コンフィギュレーション管理部２０は、先ず、例えば、センサ１２ａ又はアクチュエータ１６などのネットワークコンポーネントから受信したコンフィギュレーションデータにおける不整合を検出する（ボックス３２）。本開示によれば、設定の不整合は、改ざんの可能性を示唆し、様々な方法で検出することができる。この実施例では、コンフィギュレーションの不整合、ひいては、改ざんは、コンフィギュレーション管理部２０によって、ネットワークコンポーネントから受信したコンフィギュレーションデータと、当該ネットワークコンポーネントについて検索、抽出した参照用のコンフィギュレーションデータと、を比較した結果に基づいて検出される。参照用のコンフィギュレーションデータは、コンフィギュレーション管理部２０からアクセス可能なデータベースに格納されており、該当するネットワークコンポーネントのソフトウェアコンフィギュレーション及び／又はハードウェアコンフィギュレーションのパラメータに期待される一組の適正値（expected value）を含む。ＮＣＳ１０に含まれるネットワークコンポーネントは、通常、それぞれが独自の参照用コンフィギュレーションデータを有するが、本開示は、それに限定されない。いくつかの側面では、同じ、又は、類似の種類のネットワークコンポーネントは、同じ、又は、類似のコンフィギュレーションデータを有する。
【００３９】
一側面では、例えば、コンフィギュレーション管理部２０が行った比較の結果、ネットワークコンポーネントから受信したコンフィギュレーションデータのパラメータの１つ以上が、対応する１つ以上の参照用コンフィギュレーションデータのパラメータから所定の閾値（例えば、５％）の範囲外にある場合に、不整合であると判定される。この代わりに、あるいは、これに加えて、コンフィギュレーション管理部２０は、ネットワークコンポーネントから受信した特定のコンフィギュレーションパラメータの値が、対応する参照用コンフィギュレーションデータのコンフィギュレーションパラメータの適正値から外れている場合に、不整合であると判定する。これらの側面では、いくつかのコンフィギュレーションパラメータは、そのネットワークコンポーネントの通信及び制御を可能にするために、他のコンフィギュレーションパラメータよりも重要度が高いとみなされる。したがって、本開示の一側面では、ネットワークコンポーネントのコンフィギュレーションパラメータは、その重要度順に優先的に扱われる。コンフィギュレーション管理部２０は、各ネットワークコンポーネントについて、優先扱いのパラメータが、対応する参照用コンフィギュレーションデータのコンフィギュレーションパラメータの適正値から外れている場合は、その差分が僅かであっても、改ざんされていると判定する。
【００４０】
コンフィギュレーションの不整合の検出方法に関わらず、コンフィギュレーション管理部２０は、そのような不整合があれば、改ざんされていると判定し、「改ざん検出信号」を制御管理部１４に送信する（ボックス３４）。一側面において、改ざん検出信号は、改ざんされた特定のネットワークコンポーネントを識別するメッセージを含み、加えて、いくつかの側面では、改ざん検出信号は、当該ネットワークコンポーネントから受信された様々なコンフィギュレーションデータ、及び、比較に使用された参照用コンフィギュレーションデータ（又は、当該データへのリンク）の両方を含む。改ざんの通知を受けると、制御管理部１４は、上述したように、該当するネットワークコンポーネントの動作を一時的又は永久的に停止又は終了させるか、及び／又は、予備ネットワークコンポーネントを起動して、ＮＣＳ１０における当該ネットワークコンポーネントの機能を代替させる。
【００４１】
図３Ａ〜図３Ｃは、本開示の一側面にしたがって、ネットワークコンポーネント（例えば、センサ１２ａ及び／又はアクチュエータ１６）が改ざんされているか否かを検出し、改ざんが検出されたことに基づいて当該ネットワークコンポーネントの機能を制御する方法４０を示すフロー図である。上述したように、方法４０として示す側面は、コンフィギュレーション管理部２０によって実現され、このコンフィギュレーション管理部は、独立型のコンピュータ装置であってもよいし、制御管理部１４の機能も実現する共有コンピュータ装置であってもよい。
【００４２】
方法４０は、コンフィギュレーション管理部２０が制御管理部１４から、制御管理部１４が管理する１つ以上のセンサ１２及び１つ以上のアクチュエータ１６のコンフィギュレーションデータの取得要求を受信する（ボックス４２）ことで開始される。いくつかの側面では、要求メッセージは、取得すべきコンフィギュレーションデータに対応する１つ以上の特定のセンサ１２（例えば、センサ１２ａ）及び／又は１つ以上の特定のアクチュエータ１６を識別する情報を含む。ただし、別の側面においては、要求メッセージは、制御管理部１４が管理するすべてのセンサ１２及びアクチュエータ１６のからコンフィギュレーションデータをコンフィギュレーション管理部２０に取得させるコマンド、命令、又は、メッセージを含む。いずれの場合でも、コンフィギュレーション管理部２０は、制御管理部１４から要求を受信すると、コンフィギュレーション情報要求メッセージを生成し、センサ１２及び／又はアクチュエータ１６に送信する（ボックス４４）。
【００４３】
送信したコンフィギュレーション要求メッセージへの応答として、コンフィギュレーション管理部２０は、センサ１２及びアクチュエータ１６から応答メッセージを受信する（ボックス４６）。一側面において、各応答メッセージは、当該応答メッセージを送信した特定のセンサ１２又はアクチュエータ１６を識別するデータ（例えば、デバイスＩＤ又はネットワークアドレス）を含み、また、当該センサ１２又はアクチュエータ１６の現在の設定（ハードウェア及び／又はソフトウェア）を示す１つ以上のパラメータ値も含む。また、その他の情報及びデータも可能である。コンフィギュレーション管理部２０は、いずれかのセンサ１２又はアクチュエータ１６から応答メッセージを受信すると、コンフィギュレーション管理部２０は、応答メッセージに含まれている情報を利用して、当該応答メッセージの処理方法を決定する（ボックス４８）。
【００４４】
例えば、ＮＣＳ１０に含まれる１つ以上のセンサ１２及び／又は１つ以上のアクチュエータ１６が、コンフィギュレーション管理部２０及び制御管理部１４などＮＣＳ１０に含まれる他のデバイスとの通信に用いるプロトコルが互いに異なっている場合がありうる。これに加えて、あるいは、これに代えて、１つ以上のセンサ１２及び／又はアクチュエータ１６が、それぞれのコンフィギュレーションデータの通知に用いるフォーマットが互いに異なっている場合がありうる。このように異なるフォーマットが使用されるのは、センサ１２及びアクチュエータ１６が、第三者である様々な製造業者の製品であることによる。これらのコンポーネントが同一の製造業者による製品であったとしても、センサ１２及び／又はアクチュエータ１６がコンフィギュレーションデータの蓄積及び／又は通知に用いるフォーマットは、製造業者が当該コンポーネントのソフトウェア及び／又はハードウェアを更新することで変更される可能性がある。したがって、そのような違いに対処するために、本開示の一側面は、受信する応答メッセージのヘッダをコンフィギュレーション管理部２０が分析するよう構成されている。ヘッダに含まれる情報、及び／又は、ヘッダに含まれる情報のフォーマットに基づいて、コンフィギュレーション管理部２０は、受信した応答メッセージに含まれる情報をどのように処理（または解析）して所望のコンフィギュレーションパラメータデータを抽出するかを決定する。
【００４５】
受信したメッセージからコンフィギュレーションパラメータ情報が識別されて、抽出又はコピーされると、コンフィギュレーション管理部２０は、受信したコンフィギュレーション情報を、当該応答メッセージを送信した特定のセンサ１２又はアクチュエータ１６に対応する参照用コンフィギュレーション情報と比較する（ボックス５０）。例えば、一側面では、コンフィギュレーション管理部２０は、当該応答メッセージを送信した特定のセンサ１２又はアクチュエータ１６のＩＤを、参照用設定ファイルのデータベースのインデックスとして使用する（ボックス５２）。当該ネットワークコンポーネントのコンフィギュレーション情報がデータベースに見つからなければ、コンフィギュレーション管理部２０は、当該応答メッセージを送信した特定のセンサ１２又はアクチュエータ１６が改ざんされているか、無効であるか、当該ネットワークに属するものではないと判定する。いずれにせよ、特定のセンサ１２又はアクチュエータ１６の参照用コンフィギュレーション情報が存在しない場合は、制御管理部１４が当該コンポーネントの制御のベースとして使用できるコンフィギュレーション情報がないことになる。よって、そのような状況では、コンフィギュレーション管理部２０は、単に改ざん検出信号を生成して、制御管理部１４に送信する（ボックス５６）。上述したように、改ざん検出信号は、応答メッセージを送信したセンサ１２又はアクチュエータ１６が改ざんされていることを制御管理部１４に通知するとともに、制御管理部１４に当該コンポーネントの動作を一時的又は永久的に停止又は終了させるように機能する。加えて、いくつかの側面では、改ざん検出信号は、制御管理部１４に、予備のセンサ１２又はアクチュエータ１６を起動させて、「改ざんされた」センサ１２又はアクチュエータ１６の機能を、この予備センサ１２又は予備アクチュエータ１６に一時的又は永続的に代替させるようにも機能する。
【００４６】
一方、コンフィギュレーション管理部２０が上記特定のセンサ１２又はアクチュエータ１６に対応する参照用コンフィギュレーション情報をデータベースから見つけた場合、コンフィギュレーション管理部２０は、受信した応答メッセージに含まれるコンフィギュレーション情報をこの参照用コンフィギュレーション情報と比較する（ボックス５４）。比較の結果、応答メッセージで受信したコンフィギュレーション情報が、参照用コンフィギュレーション情報に対して所定の閾値（例えば、５％）の範囲内にない場合、あるいは、１つ以上の「優先扱いの」コンフィギュレーションパラメータの値が、対応する参照用コンフィギュレーション情報のコンフィギュレーションパラメータの適正値から外れている場合、コンフィギュレーション管理部２０は、上述したように、改ざん検出信号を生成し、制御管理部１４に送信する（ボックス５６）。
【００４７】
一方、比較の結果、コンフィギュレーション情報が一致すれば（ボックス５４）、コンフィギュレーション管理部２０はコンフィギュレーション確認信号を生成し、制御管理部１４に送信する（ボックス５８）。ここで生成され、制御管理部１４に送信されるコンフィギュレーション確認信号は、特定のセンサ１２又はアクチュエータ１６が「有効」であり、改ざんされていないことを示す信号である。この確認により、制御管理部１４は、高い信頼性で当該センサ１２又はアクチュエータ１６と通常の通信を開始し、当該コンポーネントの動作の制御に必要な制御信号を生成することができる。上述したように、この制御は、センサ１２及び／又はアクチュエータ１６から送信された測定データに基づく制御である。
【００４８】
センサ１２及びアクチュエータ１６が制御管理部１４と通常の通信を開始した後は、コンフィギュレーション管理部２０は、センサ１２及びアクチュエータ１６の動作を定期的に監視して、これらのデバイスに対する改ざんの有無を判定する（ボックス６０）。あくまでも例示であるが、一側面におけるコンフィギュレーション管理部２０は、センサ１２及び／又はアクチュエータ１６からの測定データ及びその他の情報をインターセプト（intercept）するよう構成されている。コンフィギュレーション管理部２０は、受信データの時間制限付きの分析（time-qualified analysis）に基づいて、コンフィギュレーションデータ及び情報の送信元であるセンサ１２又はアクチュエータ１６が正常に動作しているか、あるいは、異常があるかを判定することができる。
【００４９】
例えば、コンフィギュレーション管理部２０は、様々な異なる特性に基づいて判定を行うことができる。そのような特性としては、限定するものではないが、センサ１２から供給される測定データ、センサ１２又はアクチュエータ１６から出力される信号の特性又はパターンの変化（例えば、信号が振動信号であるか、平坦な信号であるか）、センサ１２又はアクチュエータ１６から供給される信号に検出される変化の割合、信号が供給される時間間隔の想定外の変化、センサ１２又はアクチュエータ１６により供給される信号の種類の変化、などが含まれる。具体的には、コンフィギュレーション管理部２０は、受信した特性を、データベースに格納されている参照用特性の組と比較して（ボックス６２）、これらの特性に想定外の変化が発生したか否かを判定する。比較の結果、コンフィギュレーション管理部２０が、センサ１２及び／又はアクチュエータ１６の動作特性に想定外の変化を検出すれば（ボックス６４）、上述したように、コンフィギュレーション管理部２０は、改ざん検出信号を生成して制御管理部１４に送信する（ボックス６６）。検出しなければ、コンフィギュレーション管理部２０は、センサ１２及び／又はアクチュエータ１６の動作を引き続き定期的に監視する（ボックス６０）。
【００５０】
上述したように、本開示のコンフィギュレーション管理部２０は、１つ以上のコンピュータ装置として実現することができ、例えば、１つ以上のワークステーション、あるいは、ネットワーク型のコンピュータサーバ（例えば、アプリケーションサーバ）として実現することができる。図４は、本開示の一側面にしたがって構成されたコンフィギュレーション管理部２０を示す機能ブロック図である。
【００５１】
図４に示す通り、コンフィギュレーション管理部２０は処理回路７０を含み、これは、１つ以上のバスを介して通信インターフェース回路７２及びメモリ７４に接続されている。本開示の様々な側面によれば、処理回路７０は、１つ以上のマイクロプロセッサ、マイクロコントローラ、ハードウェア回路、ディスクリートな論理回路、ハードウェアレジスタ、デジタル信号プロセッサ（ＤＳＰ）、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）、特定用用途向け回路（ＡＳＩＣ）、又は、それらの組み合わせを含む。そのような一側面では、処理回路７０は、例えば、メモリ７４に格納された機械可読のコンフィギュレーション管理制御プログラム７６に含まれるソフトウェア命令を実行して、本開示の側面を実現することができるプログラマブルハードウェアを含む。
【００５２】
より具体的には、本開示によれば、処理回路７０は、コンフィギュレーション管理制御プログラム７６を実行して、上述した本開示の側面を実現するよう構成されている。ここでいう側面は、限定するものではないが、１つ以上のセンサ１２及び／又は１つ以上のアクチュエータ１６のコンフィギュレーション情報と、データベースに格納された参照用のコンフィギュレーション情報との比較に基づいて、これらのデバイスの改ざんの有無を検出することと、改ざんが検出された場合に改ざん検出信号を制御管理部１４に送信することと、を含む。
【００５３】
通信インターフェース回路７２は、コンフィギュレーション管理部２０が１つ以上の遠隔デバイスに対してデータ及び情報を通信すること可能にする回路を含む。上述したように、これらのデバイスには、ＮＣＳ１０を構成するセンサ１２、制御管理部１４、アクチュエータ１６、及び、プラント／プロセス１８が含まれ、また、参照用コンフィギュレーション情報を検索、抽出するためのデータベース（図示せず）が含まれる。一般的に、通信インターフェース回路７２は、イーサネットカード、又は、コンフィギュレーション管理部２０がコンピュータネットワークを介してデータ及び情報を通信することを可能にするよう特別に構成されたその他の回路を含む。ただし、本開示の他の側面では、通信インターフェース回路７２は、無線ネットワークを介して他の装置と信号の送受信を行うよう構成された送受信機を含む。いくつかの態様では、通信インターフェース回路７２は、コンフィギュレーション管理部２０がいくつかのデバイスと無線ネットワーク経由で通信することを可能にするために必要なハードウェア及びソフトウェアを含む。
【００５４】
メモリ７４は、当業界で公知の、あるいは、今後開発される任意の非一時的な機械可読の記憶媒体であって、揮発性ものでも、不揮発性のものでもよい。その例には、（限定するものではないが）固体媒体（例えば、ＳＲＡＭ、ＤＲＡＭ、ＤＤＲＡＭ、ＲＯＭ、ＰＲＯＭ、ＥＰＲＯＭ、フラッシュメモリ、固体ドライブなど）、リムーバブル記憶デバイス（例えば、セキュアデジタル（ＳＤ）カード、ミニＳＤカード、マイクロＳＤカード、メモリスティック、サムドライブ、ＵＳＢフラッシュドライブ、ＲＯＭカードリッジ、ユニバーサル・メディア・ディスク）、固定ドライブ（例えば、磁気ハードディスクドライブ）などのそれぞれ、あるいは、それらの任意の組み合わせが含まれる。図４に示すように、メモリ７４は、処理回路７０により実行されて上述した本開示の側面を実現するコンフィギュレーション管理制御プログラム７６を格納するよう構成されている。
【００５５】
図５は、本開示の一側面にしたがって構成されたコンフィギュレーション管理部２０の処理回路７０を構成する機能部及び／又はモジュールを示す機能ブロック図である。図５に示すように、処理回路７０は、通信部／モジュール８０、処理決定部／モジュール８２、参照用データ検索部／モジュール８４、コンポーネント認識部／モジュール８６、不整合検出部／モジュール８８、改ざん検出信号生成部／モジュール９０、及び、ネットワークコンポーネント監視部／モジュール９２を実装する。
【００５６】
通信部／モジュール８０は、センサ１２、制御管理部１４、アクチュエータ１６、プラント／プロセス１８、及び、参照用のコンフィギュレーション情報を格納するデータベースとの通信経路を確立し、維持するよう構成されている。加えて、通信部／モジュール８０は、センサ１２及びアクチュエータ１６にコンフィギュレーション情報の要求メッセージを送信し、要求されたコンフィギュレーション情報を含む応答メッセージを、当該センサ１２及びアクチュエータ１６から受信するよう構成されている。
【００５７】
処理決定部／モジュール８２は、センサ１２及びアクチュエータ１６から受信した応答メッセージを分析して、コンフィギュレーション情報の処理方法を決定するよう構成されている。この分析には、例えば、受信したパケットの中身を細かく検査する方法、及び／又は、パケットのヘッダを検査する方法がある。処理決定部／モジュール８２が、受信したコンフィギュレーション情報の処理経路を特定できるのであれば、他の任意の方法も可能である。参照用データ検索部／モジュール８４は、各センサ１２及びアクチュエータ１６のコンフィギュレーション情報を、データベース又は他の記憶媒体から検索、抽出するよう構成されている。コンポーネント認識部／モジュール８６は、応答メッセージの送信元である特定のセンサ１２及び／又はアクチュエータ１６を識別するよう構成されている。そのような情報は、参照用データ検索部／モジュール８４による参照用コンフィギュレーション情報の検索、抽出において有用である。
【００５８】
不整合検出部／モジュール８８は、様々なセンサ１２及びアクチュエータ１６から受信したコンフィギュレーション情報を、対応する参照用コンフィギュレーション情報と比較するよう構成されている。改ざん検出信号生成部／モジュール９０は、不整合検出部／モジュール８８による比較の結果に基づいて、改ざん検出信号を生成し、生成した改ざん検出信号を制御管理部１４に送信するよう構成されている。ネットワークコンポーネント監視部／モジュール９２は、ＮＣＳ１０に含まれる様々なセンサ１２及びアクチュエータ１６を通常動作の間、監視し、これらセンサ１２及びアクチュエータ１６が通常動作の間に改ざんされていないかを検出する。
【００５９】
本開示の側面は、さらに、本明細書に記載の様々な方法及びプロセスが、上述の大まかな説明とは詳細な構成が異なる様々なハードウェアコンフィギュレーションを用いて実現される場合も含む。例を挙げると、上述した処理機能の１つ以上は、例えば、各技術における設計とコストのバランス、及び／又は、システムレベル要件によっては、プログラム命令を組み込んだマイクロプロセッサによってではなく、専用のハードウェアで実現してもよい。
【００６０】
上述の説明及び添付の図面は、本開示の方法及び装置の実施例を示すが、本開示はこれに限定されない。したがって、本開示の側面は、上述の説明及び添付図面によって限定されるものではなく、本開示の側面は、下記の特許請求の範囲、及び、その法的な均等範囲によってのみ限定されるものである。
【図１】
2019133649.tif 000003
【図２】
2019133649.tif 000004
【図３Ａ】
2019133649.tif 000005
【図３Ｂ】
2019133649.tif 000006
【図３Ｃ】
2019133649.tif 000007
【図４】
2019133649.tif 000008
【図５】
2019133649.tif 000009
【外国語明細書】
2019133649000001.pdf
2019133649000002.pdf
2019133649000003.pdf
2019133649000004.pdf