JP2020136717A - 機器制御システム及び機器制御方法 - Google Patents

機器制御システム及び機器制御方法 Download PDF

Info

Publication number
JP2020136717A
JP2020136717A JP2019023391A JP2019023391A JP2020136717A JP 2020136717 A JP2020136717 A JP 2020136717A JP 2019023391 A JP2019023391 A JP 2019023391A JP 2019023391 A JP2019023391 A JP 2019023391A JP 2020136717 A JP2020136717 A JP 2020136717A
Authority
JP
Japan
Prior art keywords
control
control message
message
server
broker
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Withdrawn
Application number
JP2019023391A
Other languages
English (en)
Inventor
雄一郎 古賀
Yuichiro Koga
雄一郎 古賀
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fuji Electric Co Ltd
Original Assignee
Fuji Electric Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fuji Electric Co Ltd filed Critical Fuji Electric Co Ltd
Priority to JP2019023391A priority Critical patent/JP2020136717A/ja
Publication of JP2020136717A publication Critical patent/JP2020136717A/ja
Withdrawn legal-status Critical Current

Links

Images

Abstract

【課題】正当な権限を有しない制御サーバによって制御対象機器が制御される事態を防止することができる機器制御システムを提供する。【解決手段】機器制御システム1は、MQTT(Message Queue Telemetry Transport)プロトコルに従いブローカ4を介して通信を行う制御対象機器3を制御可能なシステムである。機器制御システム1に備わる制御サーバ5は、制御対象機器に対する今回の制御メッセージに、制御対象機器に送信した過去の制御メッセージを暗号化鍵として認証付き暗号化を施し、今回の制御メッセージの暗号文及び認証タグを含む認証付き暗号化データを生成して制御対象機器に送信する。制御対象機器は、受信した認証付き暗号化データに対して、過去の制御メッセージを復号鍵とした復号及び認証タグを用いた検証を行い、その結果に基づいて、今回の制御メッセージに基づく制御を受け付けるか否か判定する。【選択図】図1

Description

本発明は、機器制御システム及び機器制御方法に関する。
近年、IoT(Internet of Things)と呼ばれる、様々な機器をインターネットに接続し、情報交換することにより相互に制御する仕組みが普及している。このようなIoTの仕組みを利用し、工場内に設置された複数のPLC(Programmable Logic Controller)が検出するデータを含む、多種多様なデータをネットワーク経由で収集するシステムが提案されている(例えば、特許文献1参照)。
一般に、IoTにおける通信においては、TCP/IPスタックをベースに作成されたMQTT(Message Queue Telemetry Transport)プロトコルが標準的な通信プロトコルとして利用されている。このMQTTプロトコルでは、ネットワーク内におけるエンティティのタイプとして、メッセージ・ブローカ(ブローカ)及びクライアントの2つが定義され、これらの間でメッセージが送受信される。
MQTTプロトコルでは、ブローカ上に作成されるトピックを介してメッセージの送受信が行われる。ブローカは、あるトピック宛のメッセージをクライアントから受信すると、そのトピックからの受信を予め要求していた別のクライアントにそのメッセージを配信する。また、MQTTプロトコルに従った通信を行う際、ブローカがクライアントに対してユーザ名及びパスワードを利用した認証を行うことで、ネットワーク上の安全性を確保している。このようなMQTTの仕組みを利用することにより、複数の機器からリアルタイムでデータを収集する一方、特定の機器に対して遠隔地から操作することができる。
特開2017−220053号公報
ところで、IoTの普及に伴い、制御対象機器とその制御サーバがMQTTクライアントとしてブローカを介して通信するシステム構成が出てきている。このような構成では、複数の制御サーバ(制御アプリケーション)が、単一のブローカを介して同一の制御対象機器に対して異なる制御を実行することが考えられる。制御対象機器がエアコンであり、単一のブローカを介してこのエアコンを制御する第1、第2の制御サーバが存在する場合を想定する。例えば、第1の制御サーバにより、エアコンの設定温度の変更等の遠隔操作制御が実行される。
このような環境下においても、既存のMQTTプロトコルに従えば、MQTTクライアントである制御サーバおよび制御対象機器に対する認証は、それらとブローカとの間のみで行われる。このため、実際の通信段階において、制御対象機器と制御サーバは、相手がブローカとの間でどのように認証されたかを知らないまま、ブローカ上のトピックを介して通信を行うことになる。したがって、例えば、悪意の第三者によって制御サーバがブローカに接続されてしまうと、制御対象機器を制御(例えば、遠隔操作制御)することが可能となる。制御対象となる制御対象機器の種別によっては重大な損害が発生する事態も想定される。
本発明は、このような実情に鑑みてなされたものであり、正当な権限を有しない制御サーバによって制御対象機器が制御される事態を防止することができる機器制御システム及び機器制御方法を提供することを目的の1つとする。
本実施の形態の機器制御システムは、その一態様では、MQTT(Message Queue Telemetry Transport)プロトコルに従ってブローカを介して通信を行う制御対象機器を制御可能な機器制御システムであって、前記制御対象機器を制御する制御サーバを具備し、前記制御サーバは、前記制御サーバからの前記制御対象機器に対する今回の制御メッセージに、前記制御対象機器に送信した過去の制御メッセージを暗号化鍵として認証付き暗号化を施し、前記今回の制御メッセージの暗号文及び認証タグを含む認証付き暗号化データを生成し、前記制御対象機器は、前記過去の制御メッセージを復号鍵とした前記認証付き暗号化データの復号及び前記認証タグを用いた検証を行い、その結果に基づいて、前記今回の制御メッセージに基づく制御を受け付けるか否か判定することを特徴とする。
本実施の形態の機器制御方法は、その一態様では、MQTT(Message Queue Telemetry Transport)プロトコルに従ってブローカを介して通信を行う制御対象機器を制御可能な機器制御方法であって、前記制御対象機器を制御する制御サーバに、前記制御サーバからの前記制御対象機器に対する今回の制御メッセージに、前記制御対象機器に送信した過去の制御メッセージを暗号化鍵として認証付き暗号化を施し、前記今回の制御メッセージの暗号文及び認証タグを含む認証付き暗号化データを生成するステップと、前記認証付き暗号化データを、前記ブローカを介して前記制御対象機器に送信するステップと、を行わせ、前記制御対象機器に、前記ブローカから前記認証付き暗号化データを受信させるステップと、前記過去の制御メッセージを復号鍵とした前記認証付き暗号化データの復号及び前記認証タグを用いた検証を実施させるステップと、前記検証の結果に基づいて前記今回の制御メッセージに基づく制御を受け付けるか否か判定するステップと、を行わせることを特徴とする。
本発明によれば、正当な権限を有しない制御サーバによって制御対象機器が制御される事態を確実に防止することができる。
本実施の形態に係る機器制御システムのネットワーク構成の説明図である。 本実施の形態に係る機器制御システムが有する第1制御サーバの機能ブロック図である。 本実施の形態に係る機器制御システムが有するブローカの機能ブロック図である。 本実施の形態に係る機器制御システムの制御対象となるIoT機器の機能ブロック図である。 本実施の形態に係る機器制御システムの第1制御サーバの制御メッセージ生成処理部が生成する制御メッセージを示す説明図である。 本実施の形態に係る機器制御システムにおける制御メッセージによるIoT機器の制御パラメータの更新の具体例を示す説明図である。 本実施の形態に係る機器制御システムにおいて、第1制御サーバからIoT機器を制御する際の動作を説明するためのシーケンス図である。 本実施の形態に係る本実施の形態に係る機器制御システムにおける認証付き暗号化と各種データの遷移を示す説明図である。
IoTの普及に伴い、複数の制御サーバ(制御アプリケーション)が、単一のブローカを介して同一の制御対象機器に対して異なる制御を実行することが想定される。制御サーバは、クラウドアプリケーションやサービス提供アプリケーションと呼ぶこともできる。このような環境下においても、現状では、制御サーバ及び制御対象機器に対する認証が、それらとブローカとの間のみで行われる。このため、制御対象機器と制御サーバは、相手がブローカとの間でどのように認証されたかを知らないまま、ブローカ上のトピックを介して通信を行うことになる。したがって、例えば、悪意の第三者によって制御サーバがブローカに接続されてしまうと、制御対象機器が遠隔操作される事態が発生し得る。制御対象機器の種別によっては重大な損害が発生する事態も想定される。
本発明者は、上記課題を解決するために鋭意検討した結果、制御サーバから制御対象機器に過去に送信した制御のためのメッセージ(以下、「過去の制御メッセージ」という)を共通鍵として認証付き暗号化を実施し、制御サーバからのメッセージの真正性を保証することを見出し、本発明に想到した。
すなわち、本発明に係る機器制御システムの骨子は、MQTTプロトコルに従ってブローカを介して通信を行う制御対象機器を制御可能な機器制御システムであって、前記制御対象機器を制御する制御サーバを具備し、前記制御サーバは、前記制御サーバからの前記制御対象機器に対する今回の制御メッセージに、前記制御対象機器に送信した過去の制御メッセージを暗号化鍵として認証付き暗号化を施し、前記今回の制御メッセージの暗号文及び認証タグを含む認証付き暗号化データを生成し、前記制御対象機器は、前記過去の制御メッセージを復号鍵とした前記認証付き暗号化データの復号及び前記認証タグを用いた検証を行い、その結果に基づいて、前記今回の制御メッセージに基づく制御を受け付けるか否か判定することである。
また、本発明に係る機器制御方法の骨子は、MQTTプロトコルに従ってブローカを介して通信を行う制御対象機器を制御可能な機器制御方法であって、前記制御対象機器を制御する制御サーバに、前記制御サーバからの前記制御対象機器に対する今回の制御メッセージに、前記制御対象機器に送信した過去の制御メッセージを暗号化鍵として認証付き暗号化を施し、前記今回の制御メッセージの暗号文及び認証タグを含む認証付き暗号化データを生成するステップと、前記認証付き暗号化データを、前記ブローカを介して前記制御対象機器に送信するステップと、を行わせ、前記制御対象機器に、前記ブローカから前記認証付き暗号化データを受信させるステップと、前記過去の制御メッセージを復号鍵とした前記認証付き暗号化データの復号及び前記認証タグを用いた検証を実施させるステップと、前記検証の結果に基づいて前記今回の制御メッセージに基づく制御を受け付けるか否か判定するステップと、を行わせることである。
本発明に係る機器制御システムによれば、制御サーバは、過去の制御メッセージを暗号化鍵として、今回の制御メッセージの暗号化及び認証タグの生成を行い、暗号文及び認証タグを含む認証付き暗号化データを得て、これをブローカを介して制御対象機器に送信する。制御対象機器は、ブローカから受信した認証付き暗号化データに含まれる暗号文を過去の制御メッセージを復号鍵として復号すると共に認証タグを生成し、当該認証タグを、前記認証付き暗号化データに含まれる認証タグを用いて検証することで、正当な制御サーバからの制御メッセージであることを確認した上で制御を実行する。これにより、第3者の機関・機能等を介することなく、制御メッセージの真正性を検証できる。その結果、正当な権限を有しない制御サーバによって制御対象機器が制御される事態を確実に防止することができる。
以下、本発明に係る機器制御システムの実施形態について、図面を参照して説明する。図1は、本実施の形態に係る機器制御システムのネットワーク構成の説明図である。図1に示すように、本実施の形態に係る機器制御システム1は、インターネット2を介して制御対象機器としてのIoT機器3(3a、3b、3c…3n)が接続されている。以下においては、これらのIoT機器3a、3b、3c…3nを総称する際、IoT機器3と呼ぶものとする。
本発明の制御対象機器の一例である、IoT機器3は、インターネット2を介して通信を行う機能を有する任意の機器で構成される。例えば、IoT機器3は、任意の場所に設置されるエアコン等で構成されるが、これに限定されない。また、IoT機器3は、これらのエアコン等を制御するPLC(Programmable Logic Controller)などの制御装置で構成されてもよい。
機器制御システム1は、例えば、クラウドサービスを提供するクラウドサービス事業者のネットワーク内に配設される。例えば、機器制御システム1は、MQTT(Message Queue Telemetry Transport)ブローカ(以下、単に「ブローカ」という)4、第1制御サーバ5、第2制御サーバ6及び第3制御サーバ7を含んで構成される。しかしながら、機器制御システム1の構成については、これに限定されるものではなく適宜変更が可能である。制御サーバの数は、3つに限定されず、1つ、2つ又は4つ以上含まれていてもよい。機器制御システム1は、クラウドサービス事業者のネットワーク以外のネットワークに配設されてもよい。
ブローカ4は、MQTTプロトコルに従って、機器制御システム1の構成要素からのメッセージを特定のIoT機器3に配信する。また、ブローカ4は、MQTTプロトコルに従って通信を行う際、通信対象となるIoT機器3との間において、ユーザ名及びパスワードを利用した認証を行う機能を有している。なお、ブローカ4は、MQTTサーバと呼ばれることもある。
第1、第2、第3制御サーバ5、6、7は、IoT機器3を制御可能な制御サーバである。例えば、第1制御サーバ5(第2制御サーバ6、第3制御サーバ7)は、制御の一態様として、所定のIoT機器3を遠隔操作する遠隔操作制御を実行する。第1、第2、第3制御サーバ5、6、7は、IoT機器3に対して同一の制御を実行してもよいし、異なる制御を実行してもよい。
本実施の形態における遠隔操作制御の一例は、IoT機器3の制御パラメータの値を所望の値に更新することである。より具体的には、IoT機器3がエアコンである場合、空調設定温度に対応する制御パラメータの値を、現在の設定値から所望の設定値に更新することにより行われる。
以下、機器制御システム1の構成要素及びIoT機器3の機能について、図2〜図4を参照して説明する。なお、第1制御サーバ5、第2制御サーバ6及び第3制御サーバ7は、同一の機能を有するため、第1制御サーバ5について代表して説明し、第2制御サーバ6及び第3制御サーバ7の説明を省略する。以下においては、機器制御システム1(制御サーバ)からの制御要求の一例として、遠隔操作等の操作要求を例示して説明する。
[制御サーバの機能]
図2は、本実施の形態に係る機器制御システム1が有する第1制御サーバ5の機能ブロック図である。図2に示すように、第1制御サーバ5は、記憶部51、処理部52及び通信部53を含んで構成されるが、これに限定されない。第1制御サーバ5の使用者又は管理者が第1制御サーバ5を操作するために必要な操作部を備えるようにしてもよい。例えば、第1制御サーバ5は、汎用的なコンピュータシステムに制御サーバプログラムをインストールすることで実現されるサーバ装置で構成されるが、これに限定されない。第1制御サーバ5は、クラウドアプリケーションのように、サーバ装置の一部の機能により実現されてもよい。
記憶部51は、制御サーバプログラム記憶部511、制御メッセージ記憶部512及び秘密情報記憶部513を有する。制御サーバプログラム記憶部511は、第1制御サーバ5が後述の各種処理を実行するためのプログラムを記憶する。
制御メッセージ記憶部512は、自らが生成した制御メッセージ、及び、第2制御サーバ6又は第3制御サーバ7から受信し、復号及び検証された制御メッセージを記憶する。
秘密情報記憶部513は、MQTTプロトコルで使用する秘密情報、例えば、ユーザ名及びパスワードを記憶する。
処理部52は、制御メッセージ生成処理部521、暗号化処理部522、復号・検証処理部523及びメッセージ保存処理部524を有する。
制御メッセージ生成処理部521は、制御対象機器を制御するための制御メッセージを生成する処理(以下、「制御メッセージ生成処理」という)を行う。制御メッセージ生成処理の詳細については後述する。
暗号化処理部522は、制御メッセージ生成処理で生成した制御メッセージ全体を暗号化する処理(以下、「暗号化処理」という)を行う。暗号化処理では、共通鍵を用いて制御メッセージ全体を暗号化して暗号文を生成すると共に、MAC(Message Authentication Code;メッセージ認証コード)を生成する。MACは、上述の認証タグの一例であるが、特に限定されない。暗号化処理の詳細については後述する。
復号・検証処理部523は、受信した暗号文を復号する処理(以下、「復号処理」という)と、MACを検証する「検証処理」を行う。本実施の形態では、復号処理及び検証処理は同時に行われるので、「復号・検証処理」又は「認証付き復号」ともいう。復号・検証処理の詳細については後述する。
メッセージ保存処理部524は、制御メッセージ生成処理部521が生成した制御メッセージを制御メッセージ記憶部512に記憶させる処理(以下、「制御メッセージ保存処理」という)を行う。また、メッセージ保存処理部524は、復号・検証処理部523により、検証された制御メッセージを制御メッセージ記憶部512に記憶させ、検証済み制御メッセージを保存する処理(以下、「検証済みメッセージ保存処理」という)を行う。制御メッセージ保存処理及び検証済みメッセージ保存処理の詳細については後述する。
通信部53は、ブローカ通信部531を有する。ブローカ通信部531は、ブローカ4との間の通信を行う。ブローカ通信部531は、ブローカ4を介してIoT機器3、第2制御サーバ6及び第3制御サーバ7との間で制御メッセージを送受する際にブローカ4と通信を行う。通信部53とブローカ4及び/又は第2、第3制御サーバ6、7との間の通信は、有線により行われることが望ましいが、無線により行うようにしてもよい。
[ブローカの機能]
図3は、本実施の形態に係る機器制御システム1が有するブローカ4の機能ブロック図である。図3に示すように、ブローカ4は、記憶部41、処理部42及び通信部43を含んで構成されるが、これに限定されない。ブローカ4の使用者又は管理者がブローカ4を操作するために必要な操作部を備えるようにしてもよい。例えば、ブローカ4は、汎用的なコンピュータシステムにブローカプログラムをインストールすることで実現されるサーバ装置で構成されるが、これに限定されない。ブローカ4は、サーバ装置の一部の機能により実現されてもよい。
記憶部41は、ブローカプログラム記憶部411及びトピック記憶部412を有する。ブローカプログラム記憶部411は、ブローカ4が各種処理を実行するためのプログラムを記憶する。
トピック記憶部412は、制御サーバ又はIoT機器3から送信されたメッセージの送り先を特定するためのトピックを記憶する。トピックは、機器制御システム1のネットワーク管理者、或いは、IoT機器3からの登録要求に応じてトピック記憶部412に記憶される。
処理部42は、トピック識別処理部421及びメッセージ配信処理部422を有する。トピック識別処理部421は、制御サーバ又はIoT機器3から送信されたメッセージに含まれるトピックを識別する処理(以下、「トピック識別処理」という)を行う。メッセージ配信処理部422は、トピック識別処理部421が識別したトピックに従ってメッセージを配信する処理(以下、「メッセージ配信処理」という)を行う。
通信部43は、制御サーバ通信部431及びIoT機器通信部(以下、「機器通信部」という)433を有する。制御サーバ通信部431は、制御サーバ(例えば、第1制御サーバ5)との間の通信を行う。機器通信部433は、IoT機器3との間の通信を行う。通信部43と第1、第2、第3制御サーバ5、6、7及び/又はIoT機器3との間の通信は、有線により行われることが望ましいが、無線により行うようにしてもよい。
[IoT機器の機能]
図4は、本実施の形態に係る機器制御システム1の制御対象となるIoT機器3の機能ブロック図である。図4に示すように、IoT機器3は、記憶部31、処理部32及び通信部33を含んで構成されるが、これに限定されない。IoT機器3の使用者又は管理者がIoT機器3を操作するために必要な操作部を備えるようにしてもよい。例えば、IoT機器3は、所定機能を有する各種機器にIoT機器プログラム(以下、適宜「機器プログラム」という)をインストールすることで実現される機器で構成されるが、これに限定されない。
記憶部31は、IoT機器プログラム記憶部(以下、「機器プログラム記憶部」という)311、秘密情報記憶部312及び制御メッセージ記憶部313を有する。機器プログラム記憶部311は、IoT機器3が各種処理を実行するためのプログラムを記憶する。
秘密情報記憶部312は、図2を参照して説明した秘密情報記憶部513と同様である。
制御メッセージ記憶部313は、第1制御サーバ5、第2制御サーバ6及び第3制御サーバ7から受信し、復号及び検証された制御メッセージを記憶する。
処理部32は、復号・検証処理部321、メッセージ保存処理部322、判定処理部323及び制御実行処理部324を有する。
復号・検証処理部321は、上述の復号・復号処理を行う。復号・検証処理の詳細については後述する。
メッセージ保存処理部322は、復号・検証処理部321により復号・検証された制御メッセージを制御メッセージ記憶部313に記憶させ、検証済みメッセージ保存処理を行う。検証済みメッセージ保存処理の詳細について後述する。
判定処理部323は、復号・検証処理部321での検証結果に基づいて、IoT機器3で制御を受け付けるか否かの判定する処理(以下、「判定処理」という)を行う。判定処理の詳細については後述する。
制御実行処理部324は、第1制御サーバ5から受信した制御メッセージで指示された制御を実行する処理(以下、「制御実行処理」という)を行う。制御実行処理は、判定処理での判定が「可」である場合、すなわち制御メッセージの真正性が保証された場合に実行される。
通信部33は、ブローカ通信部331を有する。ブローカ通信部331は、ブローカ4との間の通信を行う。通信部33は、ブローカ4を介して制御サーバ(例えば、第1制御サーバ5)と通信を行うことができる。通信部33とブローカ4との間の通信は、有線により行われることが望ましいが、無線により行うようにしてもよい。
[制御サーバ側での処理]
<制御メッセージ生成処理>
制御メッセージ生成処理の詳細について説明する。本実施の形態では、第1制御サーバ5において、制御メッセージ生成処理部521は、例えば、IoT機器3での遠隔操作制御のための制御メッセージを生成する。
[制御メッセージ]
図5は、本実施の形態に係る機器制御システム1の第1制御サーバ5の制御メッセージ生成処理部521が生成する制御メッセージを示す説明図である。図5に示すように制御メッセージには、データ項目No.1〜6に、パラメータ「シーケンス番号」、「タイムスタンプ」、「発行者ID」、「制御対象機器ID」、「制御対象パラメータ」、「制御指令値」及び「MAC」の値がそれぞれ格納されるように構成されている。
各パラメータについては、「シーケンス番号」は、制御メッセージ毎に付与される通番となる番号を示す。また、「タイムスタンプ」は、制御メッセージの送信時刻を示す。また、「発行者ID」は、制御メッセージを送信する第1制御サーバ5の識別情報を示す。また、制御対象機器IDは、制御対象となるIoT機器3の識別情報を示す。また、「制御対象パラメータ」は、制御対象となるIoT機器3における制御パラメータの名称(識別情報の一例)を示す。「制御指令値」は、「制御対象パラメータ」に格納された制御パラメータの値を更新するための値を示す。「MAC」については後述する。
ここで、「タイムスタンプ」は、上述の通り、制御メッセージの送信時刻を示すが、実際には、制御メッセージ生成処理で制御メッセージを生成した時刻を用いている。しかし、「タイムスタンプ」は、この例には限定されない。
図5に示す制御メッセージは一例であり、データ項目(パラメータ)はここで示したものに限定されない。
図5に示す制御メッセージでは、説明の便宜のため、制御メッセージにデータ項目の番号(No.)及びパラメータ名が含まれているが、制御メッセージにこれらが含まれている必要はない。
図5に示す制御メッセージにおいて、「シーケンス番号」、「タイムスタンプ」及び「MAC」のデータ項目(パラメータ)は、制御毎に変更になる、言い換えれば、制御メッセージ生成処理で制御メッセージを生成する度に必ず変化するデータ項目(パラメータ)である。
制御毎に変更になるデータ項目としては、「シーケンス番号」及び「タイムスタンプ」の少なくともいずれか1つが制御メッセージに含まれていればよいが、認証の正確性を高める観点から両者を含んでいることが好ましい。
<制御メッセージ保存処理>
メッセージ保存処理部524は、制御メッセージ生成処理部521が生成した制御メッセージを制御メッセージ記憶部512に記憶させ、保存する。本実施の形態では、第1制御サーバ5で生成した制御メッセージが、「過去の制御メッセージ」として制御メッセージ記憶部512に記憶される。この「過去の制御メッセージ」は、第1制御サーバ5からIoT機器3へ制御メッセージを送信する度に更新される。ここで、「過去」とは、今回行われるIoT機器への制御(以下、「今回」の制御という)よりも前の制御を意味する。本実施の形態では、今回の一つ前、つまり「前回」の制御メッセージを使用している。以下、過去の制御メッセージとして前回の制御メッセージを使用した場合を例に挙げて説明する。
<暗号化処理>
暗号化処理の詳細について説明する。本実施の形態において、暗号化処理部522は、図5に示す制御メッセージのデータ項目No.1〜6まで(以下、「データ全体」という)と、暗号化鍵としての前回の制御メッセージとを、認証付き暗号化アルゴリズムの一例であるAES−GCMに入力する。この結果、暗号化された制御メッセージのデータ全体(以下、「暗号文」という)と、MAC(図5に示すメッセージの項目No.7「MAC」)とが出力される。
ここで暗号化鍵として使用している前回の制御メッセージには、認証の正確性を高める観点から、図5に示す制御メッセージのデータ全体、及び、データ全体に基づいて生成したMACが含まれていることが好ましい。
本実施の形態で使用される認証付き暗号化アルゴリズムは、AES−GCMに限定されない。
<復号・検証処理>
第1制御サーバ5の復号・検証処理部523は、第2制御サーバ6又は第3制御サーバ7から受信した制御メッセージを復号及び検証する。第1制御サーバ5で行われる復号・検証処理は、後述のIoT機器3での復号・検証処理と同様である。
<検証済みメッセージ保存処理>
メッセージ保存処理部524は、復号・検証処理での検証が成功したならば、検証済み制御メッセージを制御メッセージ記憶部512に記憶させ、保存する。本実施の形態では、第1制御サーバ5において、第2制御サーバ6又は第3制御サーバ7から制御メッセージを受信し、復号及び検証が行われる度に、制御メッセージ記憶部512に記憶された検証済み制御メッセージが更新される。
[ブローカでの処理]
ブローカ4は、第1制御サーバ5から制御メッセージを受け取る。メッセージを受け取ると、ブローカ4は、当該制御メッセージに含まれるトピックを識別し、そのトピックに応じた配信先に制御メッセージを配信する。ここでは、トピックに、配信対象となるIoT機器3を識別する内容が含まれる。ブローカ4は、トピックを識別することで、配信先としてIoT機器3を特定し、メッセージをIoT機器3に配信する。
このとき、ブローカ4では、制御サーバ通信部431が第1制御サーバ5から制御メッセージを受信する。トピック識別処理部421が制御メッセージに含まれるトピックを識別する。トピック識別処理部421は、トピック記憶部412に記憶されたトピック情報に基づいてトピックを識別する。メッセージ配信処理部422は、トピック識別処理部421が識別したトピックに応じて制御メッセージの配信先を決定する。機器通信部433は、メッセージ配信処理部422が決定した制御メッセージの配信先であるIoT機器3に制御メッセージを送信する。
[IoT機器側での処理]
<復号・検証処理>
復号・検証処理の詳細について説明する。本実施の形態では、IoT機器3において、復号・検証処理部321は、まず、制御メッセージ記憶部313から前回の制御メッセージを取得する。
次いで、復号・検証処理部321は、今回受信した暗号文及びMAC、並びに前回の制御メッセージを、認証付き復号アルゴリズムの一例であるAES−GCMに入力する。この結果、暗号文を復号した、今回の制御メッセージの平文と、今回生成したMACとが出力される。さらに、復号・検証処理部321は、前回の制御メッセージからMACを算出し、当該算出したMACと今回受信したMACとを比較し、両者が一致したならば検証が「成功」したと判定し、両者が一致しなければ検証が「失敗」したと判定し、その結果を示す値(以下、「検出結果」という)を出力する。
<判定処理>
判定処理の詳細について説明する。本実施の形態では、IoT機器3において、判定処理部323は、復号・検証処理での検証結果に基づいて、IoT機器3で制御に従った制御実行の可否を判定する。まず、判定処理部323は、復号・検証処理での検証結果が「成功」を示す場合には、制御実行を「可」すると判定し、検証結果が「失敗」を示す場合には、制御実行を「否」と判定する。
<検証済みメッセージ保存処理>
検証済みメッセージ保存処理の詳細について説明する。本実施の形態では、IoT機器3において、メッセージ保存処理部322は、復号・検証処理での検証結果が「成功」を示す場合には、今回受信した制御メッセージ(平文)を、制御メッセージ記憶部313に記憶させ、検証済み制御メッセージとして保存する。
本実施の形態では、IoT機器3において、第1制御サーバ5から受信した制御メッセージに従って制御(遠隔操作)が実行される度に、制御メッセージ記憶部313に記憶された検証済み制御メッセージが更新される。これにより、前回の検証済み制御メッセージが制御メッセージ記憶部313に秘密情報として保存される。
[認証付き暗号化アルゴリズム]
本実施の形態では、認証付き暗号化アルゴリズム及び認証付き復号アルゴリズムの例としてAES−GCMを用いている。AES−GCMは、暗号化処理において、今回の制御メッセージと暗号化鍵とを入力すると、暗号化アルゴリズムを用いて制御メッセージのデータ全体を暗号化した暗号文と、暗号学的ハッシュ関数をもちいて生成した認証タグ(MAC)とを出力する。そのため、第1制御サーバ5から制御メッセージとしては、暗号文及び認証タグが一緒にIoT機器3へ送信される。この暗号文及び認証タグを含むデータを、認証付き暗号化データという。
しかし、認証付き暗号化アルゴリズムによっては、認証付き暗号化データの形式が異なることがある。すなわち、AES−GCMは、制御メッセージのデータ全体(平文)を暗号化した暗号文と、認証タグとを組み合わせた形式である。これに対し、例えば、認証タグを制御メッセージの平文と共に暗号化した形式もある。しかしながら、本実施の形態に係る機器制御システム1において、認証付き暗号化データの形式は特に限定されない。
また、AES−GCMは、制御メッセージの平文から認証タグを生成しているが、認証付き暗号化アルゴリズムによっては、制御メッセージの暗号文から認証タグを生成することもある。
認証付き暗号化アルゴリズムの他の例としては、AES−CCMが挙げられる。
また、本実施の形態では、制御メッセージのデータ全体を暗号化鍵及び復号鍵(合わせて「共通鍵」ともいう)に用いているが、前回の制御メッセージの一部を共通鍵に使用することができる。このとき、図5に示す制御メッセージのデータ項目のうち「シーケンス番号」及び「タイムスタンプ」のように、毎回の制御で変更になるデータが含まれることが好ましい。
図6は、本実施の形態に係る機器制御システム1における制御メッセージによるIoT機器3の制御パラメータの更新の具体例を示す説明図である。図6Aは、IoT機器3における更新前の制御パラメータを示し、図6Bは、制御メッセージを示し、図6Cは、IoT機器3における更新後の制御パラメータを示す。
図6Aに示すように、IoT機器3の制御パラメータ1〜3のそれぞれに対して値が設定されている。IoT機器3は、これらの値に基づいて設定パラメータ1〜3に対応する制御を実施するように構成されている。例えば、IoT機器3がエアコンである場合、制御パラメータの値が示す空調設定温度に室温が保たれるように空調制御が行われる。
図6Bに示す制御メッセージにおいて、制御対象パラメータに格納された「制御パラメータ1」を、制御指令値に格納された値「200」に更新することが、IoT機器3への制御内容として設定されている。
IoT機器3は、図6に示す制御メッセージに従い、図6Cに示すように、制御パラメータ1の値を「100」から「200」に更新する。この結果、IoT機器3では、制御パラメータ1に対応する制御において、更新後の値「200」に従って制御が行われる。
以下、本実施の形態に係る機器制御システム1において、制御サーバからIoT機器3を制御(遠隔操作)する際の動作について、図7を参照して説明する。図7は、本実施の形態に係る機器制御システム1において、第1制御サーバ5からIoT機器3を制御する際の動作を説明するためのシーケンス図である。以下では、第1制御サーバ5からIoT機器3を制御する際の動作について説明するものとする。
図7に示すように、第1制御サーバ5がIoT機器3を制御する際、まず、第1制御サーバ5が識別情報の一例である制御サーバID(例えば、「server1」)を、MQTTプロトコルを用いて、ブローカ4を介して、IoT機器3、第2制御サーバ6及び第3制御サーバ7に送信する(S10)。IoT機器3、第2制御サーバ6及び第3制御サーバ7は、受信した制御サーバIDを、例えば設定ファイルとして記憶部31、51に記憶しておく。これにより、機器サーバIDが、IoT機器3、第2制御サーバ6及び第3制御サーバ7と共有される。
この制御サーバIDは、初回の制御メッセージの認証付き暗号化のための共通鍵として使用される。初回の制御において、IoT機器3、第2制御サーバ6及び第3制御サーバ7が復号及び認証した検証済み制御メッセージを、制御メッセージ記憶部512、313(図2、図4参照)に記憶する。2回目以降の制御では、制御メッセージ記憶部512、313に記憶された検証済み制御メッセージを共通鍵として使用する。機器サーバIDは、初回に用いる共通鍵の一例に過ぎず、第1制御サーバ5、IoT機器3、第2制御サーバ6及び第3制御サーバ7が予め共通して保持しているデータであれば使用することが可能であり、特に限定されない。また、制御サーバIDの共有方法も、上述の方法に限定されない。
2回目以降の制御では、まず、第1制御サーバ5において、制御メッセージ生成処理が行われる(S101)。次いで、制御メッセージの暗号化が、前回の制御メッセージを暗号化鍵として行なわれる(S102)。S102で得られた認証付き暗号化データを、ブローカ4のトピック宛に送信する(S103)。
ブローカ4は、そのトピックに登録(サブスクライブ)されたIoT機器3、第2制御サーバ6及び第3制御サーバ7に認証付き暗号化データを送信する(S104、S105、S106)。
IoT機器3では、認証付き暗号化データを受信したならば、復号・検証処理(S110)、判定処理(S111)、制御実行処理(S112)及び検証済みメッセージ保存処理(S113)が順次行われる。
一方、第2制御サーバ6及び第3制御サーバ7では、認証付き暗号化データを受信したならば、復号・検証処理(S120、S130)及び検証済みメッセージ保存処理(S121、S131)が順次行われる。
このようにして、第1制御サーバ5からIoT機器3へ送信した制御メッセージは、IoT機器3、第2制御サーバ6及び第3制御サーバ7で復号・検証された後、前回の制御メッセージとして保存される。これにより、IoT機器3aだけでなく、第2制御サーバ6及び第3制御サーバ7(本発明の他のサーバの一例)でも復号・検証処理(図7中、S120、S130)を行うことで、第2制御サーバ6及び第3制御サーバ7でも制御メッセージの改ざんやなりすましを検出することが可能になる。
また、今回の制御では主体となっていない第2制御サーバ6及び第3制御サーバ7でも前回の制御メッセージを受信し、復号及び認証し、検証済み制御メッセージを保存しているので、IoT機器3への次回の制御が、第1制御サーバ5、第2制御サーバ6及び第3制御サーバ7のいずれから行われても、今回の制御メッセージを共通鍵として使用することが可能になる。
次に、図8を参照して、本実施の形態における各種データの遷移について説明する。図8は、本実施の形態に係る本実施の形態に係る機器制御システム1における認証付き暗号化と各種データの遷移を示す説明図である。図8に示すように、第1制御サーバ5において、今回の制御メッセージが、記憶部51に保存された前回の制御メッセージを暗号化鍵とした暗号化アルゴリズム(図8中、単に「暗号化」と記載する)で暗号化され、暗号文が生成される。
また、今回の制御メッセージが、記憶部51に保存された前回の制御メッセージを共通鍵とした暗号学的ハッシュ関数(図8中、単に「ハッシュ関数」と記載する)で演算され、MAC(認証タグ)が生成される。
また、今回の制御メッセージが、前回(過去)の制御メッセージとして記憶部51に保存される。ここで、保存には、前回の制御メッセージを更新すること、及び、前回の制御メッセージを保持したままで、今回の制御メッセージを追加することの両方が含まれる。
その後、暗号文及びMACを含む認証付き暗号化データが、第1制御サーバ5からブローカ4を介して、IoT機器3に送信される。IoT機器3では、認証付き暗号化データに含まれる暗号文が、記憶部31に記憶された前回の制御メッセージを復号鍵とした復号アルゴリズム(図8中、単に「復号」と記載する)で復号され、今回の制御メッセージ(平文)が生成される。
また、今回の制御メッセージが、記憶部31に保存された前回の制御メッセージを共通鍵とした暗号学的ハッシュ関数で演算され、MACが再生成される。次いで、受信したMACと再生成したMACとを比較することにより検証が行われる。検証の結果が「成功」であった場合、今回の制御メッセージ(平文)が、前回(過去)の制御メッセージとして記憶部31に保存される。
以上説明したように機器制御システム1においては、前回の制御メッセージを共通鍵として第1制御サーバ5及びIoT機器3で共有し、この共有鍵を用いて第1制御サーバ5での認証付き暗号化、及び、IoT機器3での復号・検証を行い、第1制御サーバ5が正当な権限を有し、それからの制御を受け付けてもよいか否かを判定しているので、正当な権限を有しない制御サーバによって制御対象機器が制御される事態を確実に防止できるという効果を奏する。
また、認証付き暗号化を前回の制御メッセージ(過去の制御メッセージ)を共通鍵として用いるため、共通鍵を第1制御サーバ5及びIoT機器3の間で予め共有させておく必要がなくなり、また共通鍵を定期的に更新するなどの管理も省くことができる。
なお、本発明は上記実施の形態に限定されず、種々変更して実施することが可能である。上記実施の形態において、添付図面に図示されている構成要素の大きさや形状、機能などについては、これに限定されず、本発明の効果を発揮する範囲内で適宜変更することが可能である。その他、本発明の目的の範囲を逸脱しない限りにおいて適宜変更して実施することが可能である。
例えば、上記実施の形態では、機器制御システム1がMQTTプロトコルに従ってIoT機器3を制御する場合について説明している。しかしながら、IoT機器3を制御する際の通信プロトコルは、これに限定されない。例えば、MQTTプロトコルのように、非同期で通信制御を行うと共に、ブローカ4などの単一の制御装置で制御対象機器の認証を行う任意の通信プロトコルに適用することができる。
また、上記実施の形態では、前回の制御メッセージを共通鍵に用いて認証付き暗号化及び復号・検証を行っているが、前回の制御メッセージだけでなくさらにそれ以前の制御時に用いられた制御メッセージを一緒に用いてもよい。
すなわち、本発明では、前回の制御メッセージだけでなく、それ以前の制御メッセージ、すなわち過去の制御メッセージを履歴として保存しておき、過去の制御メッセージのうち、いずれか1つ又は複数の組み合わせを認証付き暗号化アルゴリズムに入力し、暗号化及び認証タグの生成を行ってもよい。したがって、前回の制御メッセージを用いるだけではなく、予め定められたルールに従い、例えば、X回前の制御メッセージとY回前の制御メッセージとを組み合わせ、共通鍵として使用することなども本発明に包含される。
また、第1、第2、第3制御サーバ5、6、7及びIoT機器(図1参照)において、制御メッセージ記憶部313、512(図2、図3参照)に、過去の制御メッセージの全て又は一定期間の制御で用いたものを記憶しておき、予め定められたルールに従って、暗号化及び復号を行うようにしてもよい。予め定められたルールは、複数の過去の制御メッセージを暗号化及び復号においてどのように取り扱い、使うかを決めたものである。より具体的には、以下のようなルールが考えられるが特に限定されない。
(1)複数の制御メッセージのうちどれをどのように組み合わせるかのルール
(2)制御メッセージをランダム関数で縮めるかのルール
(3)ランダム関数を使って、暗号側及び復号側で互いのランダムの数値を合わせながら同期をとり、いずれの過去の制御メッセージを使うか、又は、制御メッセージのうちどのデータ項目(パラメータ)を使うかを決めるルール
このようなルールは、暗号化処理部522(図2参照)及び復号・検証処理部321、523(図2、図4参照)を実現するプログラムに埋め込むか、プログラムが参照するファイルに格納されるが、特に限定されない。
本発明の機器制御システム及び機器制御方法は、正当な権限を有しない制御サーバによって制御対象機器が制御される事態を確実に防止することができる効果を有するものであり、あらゆるIoT機器が接続される任意のネットワークに好適である。
1 :機器制御システム
2 :インターネット
3、3a〜3n: IoT機器(制御対象機器)
31 :記憶部
311 :機器プログラム記憶部
312 :秘密情報記憶部
313 :制御メッセージ記憶部
32 :処理部
321 :符号・検証処理部
322 :メッセージ保存処理部
323 :判定処理部
324 :制御実行処理部
33 :通信部
331 :ブローカ通信部
4 :ブローカ
41 :記憶部
411 :ブローカプログラム記憶部
412 :トピック記憶部
42 :処理部
421 :トピック識別処理部
422 :メッセージ配信処理部
43 :通信部
431 :制御サーバ通信部
433 :機器通信部
5 :第1制御サーバ(制御サーバ)
51 :記憶部
511 :制御サーバプログラム記憶部
512 :制御メッセージ記憶部
513 :秘密情報記憶部
52 :処理部
521 :制御メッセージ生成処理部
522 :暗号化処理部
523 :検証処理部
524 :メッセージ保存処理部
53 :通信部
531 :ブローカ通信部
6 :第2制御サーバ(他のサーバ)
7 :第3制御サーバ(他のサーバ)

Claims (6)

  1. MQTT(Message Queue Telemetry Transport)プロトコルに従ってブローカを介して通信を行う制御対象機器を制御可能な機器制御システムであって、
    前記制御対象機器を制御する制御サーバを具備し、
    前記制御サーバは、前記制御サーバからの前記制御対象機器に対する今回の制御メッセージに、前記制御対象機器に送信された過去の制御メッセージを暗号化鍵として認証付き暗号化を施し、前記今回の制御メッセージの暗号文及び認証タグを含む認証付き暗号化データを生成し、
    前記制御対象機器は、前記過去の制御メッセージを復号鍵とした前記認証付き暗号化データの復号及び前記認証タグを用いた検証を行い、その結果に基づいて、前記今回の制御メッセージに基づく制御を受け付けるか否か判定することを特徴とする機器制御システム。
  2. 前記過去の制御メッセージは、制御毎に変更になるデータ項目を少なくとも含むことを特徴とする請求項1に記載の機器制御システム。
  3. 他のサーバをさらに具備し、前記他のサーバは、前記認証付き暗号化データを前記制御サーバから受信し、前記過去の制御メッセージを復号鍵として、前記復号及び前記検証を行うことを特徴とする請求項1又は請求項2に記載の機器制御システム。
  4. MQTT(Message Queue Telemetry Transport)プロトコルに従ってブローカを介して通信を行う制御対象機器を制御可能な機器制御方法であって、
    前記制御対象機器を制御する制御サーバに、
    前記制御サーバからの前記制御対象機器に対する今回の制御メッセージに、前記制御対象機器に送信した過去の制御メッセージを暗号化鍵として認証付き暗号化を施し、前記今回の制御メッセージの暗号文及び認証タグを含む認証付き暗号化データを生成するステップと、
    前記認証付き暗号化データを、前記ブローカを介して前記制御対象機器に送信するステップと、を行わせ、
    前記制御対象機器に、
    前記ブローカから前記認証付き暗号化データを受信させるステップと、
    前記過去の制御メッセージを復号鍵とした前記認証付き暗号化データの復号及び前記認証タグを用いた検証を実施させるステップと、
    前記検証の結果に基づいて前記今回の制御メッセージに基づく制御を受け付けるか否か判定するステップと、
    を行わせることを特徴とする機器制御方法。
  5. 前記過去の制御メッセージは、制御毎に変更になるデータ項目を少なくとも含むことを特徴とする請求項4に記載の機器制御方法。
  6. 他のサーバに、前記認証付き暗号化データを前記制御サーバから受信させ、前記過去の制御メッセージを復号鍵として、前記復号及び前記検証を行なわせることを特徴とする請求項4又は請求項5に記載の機器制御方法。
JP2019023391A 2019-02-13 2019-02-13 機器制御システム及び機器制御方法 Withdrawn JP2020136717A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2019023391A JP2020136717A (ja) 2019-02-13 2019-02-13 機器制御システム及び機器制御方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2019023391A JP2020136717A (ja) 2019-02-13 2019-02-13 機器制御システム及び機器制御方法

Publications (1)

Publication Number Publication Date
JP2020136717A true JP2020136717A (ja) 2020-08-31

Family

ID=72263848

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2019023391A Withdrawn JP2020136717A (ja) 2019-02-13 2019-02-13 機器制御システム及び機器制御方法

Country Status (1)

Country Link
JP (1) JP2020136717A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2020135199A (ja) * 2019-02-15 2020-08-31 富士電機株式会社 機器制御システム及び機器制御方法

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0512129A (ja) * 1991-07-01 1993-01-22 Fujitsu Ltd コンピユータ機密保護システム
US20170024586A1 (en) * 2014-04-11 2017-01-26 Avl List Gmbh Device and Method for Transmitting Data

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0512129A (ja) * 1991-07-01 1993-01-22 Fujitsu Ltd コンピユータ機密保護システム
US20170024586A1 (en) * 2014-04-11 2017-01-26 Avl List Gmbh Device and Method for Transmitting Data

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2020135199A (ja) * 2019-02-15 2020-08-31 富士電機株式会社 機器制御システム及び機器制御方法

Similar Documents

Publication Publication Date Title
CN100581097C (zh) 在两计算机间传输数据的系统和方法
US20190074977A1 (en) Method and system for producing a secure communication channel for terminals
WO1999000958A1 (en) Data communications
US9054863B2 (en) Industrial protocol system authentication and firewall
WO2015193945A1 (ja) 更新プログラム及び方法、及び、管理プログラム及び方法
US11838409B2 (en) Method and apparatus for transferring data in a publish-subscribe system
EP1517514B1 (en) Method for installing and updating certificates used for device authentication.
JP2007053569A (ja) 電子メールセキュリティ化装置及び該システム
US11190345B2 (en) Email verification
Friesen et al. A comparative evaluation of security mechanisms in DDS, TLS and DTLS
KR100559958B1 (ko) 이동통신 단말기간의 인증도구 중계 서비스 시스템 및 방법
JP5012574B2 (ja) 共通鍵自動共有システム及び共通鍵自動共有方法
KR102413497B1 (ko) 보안 전자 데이터 전송을 위한 시스템 및 방법
JP2020136717A (ja) 機器制御システム及び機器制御方法
CN110311937B (zh) 数据转发系统
EP3624394B1 (en) Establishing a protected communication channel through a ttp
JP2006115083A (ja) 正規コンテンツ確認方法
WO2018038998A4 (en) Vault appliance for identity verification and secure dispatch of rights
KR20180041840A (ko) 암호화 통신 시스템 및 방법, 이를 위한 가드 시스템 및 사용자 단말기
KR101690093B1 (ko) 제어된 보안 도메인
JP6678842B1 (ja) データ配信システム、データ処理装置、及びプログラム
JP7176547B2 (ja) 期限管理システム、及び期限管理方法
JP2020135199A (ja) 機器制御システム及び機器制御方法
JP2021150745A (ja) 機器制御システム及び機器制御方法
CN115955303A (zh) 可信校验方法、装置、可读存储介质及电子设备

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20220114

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20221019

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20221025

A761 Written withdrawal of application

Free format text: JAPANESE INTERMEDIATE CODE: A761

Effective date: 20221215