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

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

Info

Publication number
JP2021150745A
JP2021150745A JP2020047153A JP2020047153A JP2021150745A JP 2021150745 A JP2021150745 A JP 2021150745A JP 2020047153 A JP2020047153 A JP 2020047153A JP 2020047153 A JP2020047153 A JP 2020047153A JP 2021150745 A JP2021150745 A JP 2021150745A
Authority
JP
Japan
Prior art keywords
server
control
message
authorization
control server
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2020047153A
Other languages
English (en)
Inventor
一也 梅崎
Kazuya Umezaki
一也 梅崎
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 JP2020047153A priority Critical patent/JP2021150745A/ja
Publication of JP2021150745A publication Critical patent/JP2021150745A/ja
Pending legal-status Critical Current

Links

Images

Landscapes

  • Telephonic Communication Services (AREA)
  • Selective Calling Equipment (AREA)

Abstract

【課題】正当な権限を有しない制御サーバによって制御対象機器が制御される事態を防止する。【解決手段】MQTTプロトコルに従って通信を行うIoT機器3を制御可能な機器制御システム1であって、IoT機器3を制御する第1制御サーバ5(第2制御サーバ6)と、IoT機器3から第1制御サーバ5に送信されるメッセージの許否を判定する認可サーバ7と、を備える。認可サーバ7は、IoT機器3からの制御サーバ宛メッセージ送信認可要求に対して許可情報を生成して返送する。IoT機器3は、認可サーバ7から許可情報を受け付けた場合に、許可情報を含むメッセージを第1制御サーバ5へ送信する。第1制御サーバ5は、IoT機器3からメッセージを受け付けた場合に認証サーバ7に対しメッセージに含まれる許可情報の有効性を検証し、その検証結果に応じてIoT機器3から送信されたメッセージの許否を判定する。【選択図】図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クライアントとしてブローカを介して通信するシステム構成が出てきている。このような構成では、制御対象機器が、単一のブローカを介して制御サーバ(制御アプリケーション)に対してメッセージを送信することが考えられる。制御対象機器がエアコンであり、単一のブローカを介してこのエアコンを制御する制御サーバが存在する場合を想定する。例えば、制御対象機器のセンサから収集されたエアコンの周辺温度のメッセージ(検出値)が制御サーバへ送信される。
このような環境下においても、既存のMQTTプロトコルに従えば、MQTTクライアントである制御サーバおよび制御対象機器に対する認証は、それらとブローカとの間のみで行われる。このため、実際の通信段階において、制御対象機器と制御サーバは、相手がブローカとの間でどのように認証されたかを知らないまま、ブローカ上のトピックを介して通信を行うことになる。したがって、例えば、悪意の第三者によってブローカが不正アクセスされてしまうと、制御サーバに対し不正なメッセージを送信することが可能となる。不正なメッセージを受け付けた制御サーバは、不正なメッセージに基づき制御されることにより、制御対象となる制御対象機器の種別によっては重大な損害が発生する事態も想定される。
本発明は、このような実情に鑑みてなされたものであり、メッセージの送信元の制御対象機器が認可されているものであるかを判定することができる機器制御システム及び機器制御方法を提供することを目的の1つとする。
本実施形態の機器制御システムは、その一態様では、MQTTプロトコルに従って通信を行う制御対象機器を制御可能な機器制御システムであって、前記制御対象機器を制御する制御サーバと、前記制御対象機器から前記制御サーバに送信されるメッセージの許否を判定する認可サーバと、を具備し、前記認可サーバは、前記制御対象機器からの制御サーバ宛メッセージ送信許可要求に対して許可情報を生成して返送し、前記制御対象機器は、前記認可サーバから前記許可情報を受け付けた場合に、前記許可情報を含む前記メッセージを前記制御サーバへ送信し、前記制御サーバは、前記制御対象機器から前記メッセージを受け付けた場合に前記認可サーバに対し前記メッセージに含まれる前記許可情報の有効性を検証し、その検証結果に応じて前記制御対象機器から送信された前記メッセージの許否を判定することを特徴とする。
本実施形態の機器制御方法は、その一態様では、MQTTプロトコルに従って通信を行う制御対象機器を制御する制御サーバと、前記制御対象機器から前記制御サーバに送信されるメッセージの許否を判定する認可サーバと、を用いた機器制御方法であって、前記認可サーバにて、前記制御対象機器からの制御サーバ宛メッセージ送信認可要求に対して許可情報を生成して返送するステップと、前記制御対象機器にて、前記認可サーバから前記許可情報を受け付けた場合に、前記許可情報を含む前記メッセージを前記制御サーバへ送信するステップと、前記制御サーバにて、前記制御対象機器から前記メッセージを受け付けた場合に前記認可サーバに対し前記メッセージに含まれる前記許可情報の有効性を検証し、その検証結果に応じて前記制御対象機器から送信された前記メッセージの許否を判定するステップと、を有することを特徴とする。
本発明によれば、メッセージの送信元の制御対象機器が認可されているものであるかを判定することができる。
本実施の形態に係る機器制御システムのネットワーク構成の説明図である。 本実施の形態に係る機器制御システムの制御対象となるIoT機器の機能ブロック図である。 本実施の形態に係る機器制御システムが有する認可サーバの機能ブロック図である。 本実施の形態に係る機器制御システムが有するブローカの機能ブロック図である。 本実施の形態に係る機器制御システムが有する第1制御サーバの機能ブロック図である。 本実施の形態に係る機器制御システムにおいて、IoT機器から制御サーバへメッセージを送信する際の動作を説明するためのシーケンス図である。 認可サーバで行われる認証に利用される認証情報テーブルの一例を示す図である。 認可サーバで許可情報(トークン)の管理に利用される許可情報テーブルの一例を示す図である。
IoTの普及に伴い、複数の制御サーバ(制御アプリケーション)が、単一のブローカを介して同一の制御対象機器に対して異なる制御を実行することが想定される。制御サーバは、クラウドアプリケーションやサービス提供アプリケーションと呼ぶこともできる。このような環境下においても、現状では、制御サーバ及び制御対象機器に対する認証が、それらとブローカとの間のみで行われる。このため、制御対象機器と制御サーバは、相手がブローカとの間でどのように認証されたかを知らないまま、ブローカ上のトピックを介して通信を行うことになる。したがって、例えば、悪意の第三者によってブローカが不正アクセスされてしまうと、制御サーバに対し不正なメッセージを送信することが可能となる。不正なメッセージを受け付けた制御サーバは、不正なメッセージに基づき制御されることにより、制御対象となる制御対象機器の種別によっては重大な損害が発生する事態も想定される。
本発明者は、MQTTプロトコルに規定された、ブローカによるユーザ名及びパスワードを利用したクライアント認証では、上述したような認可されていない制御対象機器からのメッセージを判定することができない点に着目した。そして、MQTTプロトコルにおける認証処理とは別に、送信を要求した制御対象機器かの正当性を検証する仕組みを採用することが、不正なメッセージによって制御サーバが実行され、制御対象機器が制御される事態の防止に寄与することを見出し、本発明に想到した。
すなわち、本発明に係る機器制御システムの骨子は、MQTTプロトコルに従って通信を行う制御対象機器を制御可能な機器制御システムにおいて、制御対象機器を制御する制御サーバと、制御対象機器から制御サーバに送信されるメッセージの許否を判定する認可サーバと、を備え、認可サーバにて、制御対象機器からの制御サーバ宛メッセージ送信認可要求に対して許可情報を生成して返送し、制御対象機器にて、認可サーバから許可情報を受け付けた場合に、許可情報を含むメッセージを制御サーバへ送信し、制御サーバにて、制御対象機器からメッセージを受け付けた場合に認可サーバに対しメッセージに含まれる許可情報の有効性を検証し、その検証結果に応じて制御対象機器から送信されたメッセージの許否を判定することである。
本発明に係る機器制御システムによれば、認可サーバは、制御対象機器からの制御サーバ宛メッセージ送信認可要求に対して許可情報を生成して返送し、制御対象機器によって、メッセージを制御サーバへ送信する場合には、認可サーバで生成された許可情報を含むメッセージを送信する一方、制御対象機器からメッセージを受け付けた制御サーバは、認可サーバで許可情報の有効性が検証されることから、許可情報が含まれていない制御対象機器からのメッセージを受け入れることを回避することができる。
以下、本発明に係る機器制御システムの実施形態について、図面を参照して説明する。図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)などの制御装置で構成されてもよい。例えば、IoT機器3は、工場内の特定の区画の温度を検出する温度センサや、工場内の設備から排出される排水の流量を検出する流量センサで構成される。これらの温度センサや流量センサは、機器制御システム1からの要求に応じた制御を実行することができ、例えば、検出値などのメッセージを機器制御システム1に出力する。詳細について後述するように、IoT機器3は、認可サーバ7から許可情報(トークン)を受け付けた場合に、許可情報を含むメッセージを第1制御サーバ5(第2制御サーバ6)へ送信する。
機器制御システム1は、例えば、クラウドサービスを提供するクラウドサービス事業者のネットワーク内に配設される。例えば、機器制御システム1は、MQTT(Message Queue Telemetry Transport)ブローカ(以下、単に「ブローカ」という)4、第1制御サーバ5、第2制御サーバ6及び認可サーバ(判定サーバ)7を含んで構成される。しかしながら、機器制御システム1の構成については、これに限定されるものではなく適宜変更が可能である。制御サーバの数は、2つに限定されず、1つ又は3つ以上含まれていてもよい。機器制御システム1は、クラウドサービス事業者のネットワーク以外のネットワークに配設されてもよい。
ブローカ4は、MQTTプロトコルに従って、IoT機器3から出力されたメッセージ(例えば、検出値)を機器制御システム1の特定の構成要素(第1制御サーバ5等)に配信する一方、機器制御システム1の構成要素からのメッセージ(例えば、指示信号)を特定のIoT機器3に配信する。また、ブローカ4は、MQTTプロトコルに従って通信を行う際、通信対象となるIoT機器3との間において、ユーザ名及びパスワードを利用した認証を行う機能を有している。なお、ブローカ4は、MQTTサーバと呼ばれることもある。
第1、第2制御サーバ5、6は、IoT機器3を制御可能な制御サーバである。例えば、第1制御サーバ5(第2制御サーバ6)は、制御の一態様として、IoT機器3が検出した検出値を収集するデータ収集制御を実行する。第2制御サーバ6(第1制御サーバ5)は、制御の一態様として、所定のIoT機器3を遠隔操作する遠隔操作制御を実行する。第1、第2制御サーバ5、6は、IoT機器3に対して同一の制御を実行してもよいし、異なる制御を実行してもよい。詳細について後述するように、第1制御サーバ5(第2制御サーバ6)は、IoT機器3からメッセージを受け付けた場合に認可サーバ7に対しメッセージに含まれる許可情報の有効性を検証し、その検証結果に応じて制御対象機器から送信されたメッセージの許否を判定する。
認可サーバ7は、IoT機器3からの第1制御サーバ5(第2制御サーバ6)宛メッセージ送信認可要求に対して許可情報を生成する。そして生成した許可情報をIoT機器3へ返送する。そして、第1制御サーバ5(第2制御サーバ6)は、IoT機器3からメッセージを受け付けた場合に認可サーバ7に対しメッセージに含まれる許可情報の有効性を検証し、その検証結果に応じてIoT機器3から送信されたメッセージの許否を判定する。より具体的にいうと、認可サーバ7は、IoT機器3から第1制御サーバ5(第2制御サーバ6)に対するメッセージが正当な権限を有するIoT機器3であることを認可(証明)する許可情報を生成してIoT機器3へ返送する。そして、IoT機器3からメッセージを受け付けた第1制御サーバ5(第2制御サーバ6)は、メッセージに含まれる許可情報の有効性を検証し、その検証結果に応じてIoT機器3から送信されたメッセージが、正当な権限を有するIoT機器3からのメッセージであるか否かを検証することで、IoT機器3からのメッセージを受け入れるか否かを判定する。
以下、機器制御システム1の構成要素及びIoT機器3の機能について、図2〜図5を参照して説明する。なお、第1制御サーバ5及び第2制御サーバ6は、同一の機能を有するため、第1制御サーバ5について代表して説明し、第2制御サーバ6の説明を省略する。
図2は、本実施の形態に係る機器制御システム1の制御対象となるIoT機器3の機能ブロック図である。図2に示すように、IoT機器3は、記憶部31、処理部32及び通信部33を含んで構成されるが、これに限定されない。IoT機器3の使用者又は管理者がIoT機器3を操作するために必要な操作部を備えるようにしてもよい。例えば、IoT機器3は、所定機能を有する各種機器にIoT機器プログラム(以下、適宜「機器プログラム」という)をインストールすることで実現される機器で構成されるが、これに限定されない。
記憶部31は、IoT機器プログラム記憶部(以下、「機器プログラム記憶部」という)311及び認可情報記憶部312を有する。機器プログラム記憶部311は、IoT機器3が各種処理を実行するためのプログラムを記憶する。各種処理には、操作実行処理などが含まれていてもよい。認可情報記憶部312は、後述の認可サーバ7が生成して返送された許可情報(トークン)及び許可情報の有効期限、認証情報などを記憶する。許可情報には、メッセージの送信先である第1制御サーバ5(第2制御サーバ6)を一意に識別するためのサービスIDや、IoT機器3を一意に識別するための端末IDを有する。
処理部32は、認可要求処理部321及びメッセージ送信処理部322を有する。認可要求処理部321は、第1制御サーバ5(第2制御サーバ6)に対するメッセージ送信に対する許可情報(トークン)の生成を認可サーバ7に対し要求する処理(以下、「認可情報要求処理」という)を行う。認可情報要求処理は、IoT機器3が第1制御サーバ5(第2制御サーバ6)に対してメッセージを送る際に実行される。なお、すでにIoT機器3が有効な許可情報を有している場合には、認可要求処理部321は、認可サーバ7に対し認可情報要求処理を実行しない。
メッセージ送信処理部322は、認可サーバ7から許可情報(トークン)を受け付けた場合に、許可情報(トークン)を含むメッセージを第1制御サーバ5(第2制御サーバ6)へ送信する処理(以下、「メッセージ送信処理」という)を行う。メッセージ送信処理は、IoT機器3からメッセージ(例えば、IoT機器3のセンサから収集された検出値)を第1制御サーバ5(第2制御サーバ6)へ送信する際に実行される。
通信部33は、ブローカ通信部331及び認可サーバ通信部332を有する。ブローカ通信部331は、ブローカ4との間の通信を行う。認可サーバ通信部332は、認可サーバ7との間の通信を行う。通信部33とブローカ4及び/又は認可サーバ7と通信を行うことができる。通信部33とブローカ4及び/又は認可サーバ7との間の通信は、有線により行われることが望ましいが、無線により行うようにしてもよい。
図3は、本実施の形態に係る機器制御システム1が有する認可サーバ7の機能ブロック図である。図3に示すように、認可サーバ7は、記憶部71、処理部72及び通信部73を含んで構成されるが、これに限定されない。認可サーバ7の使用者又は管理者が認可サーバ7を操作するために必要な操作部を備えるようにしてもよい。例えば、認可サーバ7は、汎用的なコンピュータシステムに認可サーバプログラムをインストールすることで実現されるサーバ装置で構成されるが、これに限定されない。
記憶部71は、認可サーバプログラム記憶部711、認証情報記憶部712及び認可情報記憶部713を有する。認可サーバプログラム記憶部711は、認可サーバ7が各種処理を実行するためのプログラムを記憶する。各種処理には、認可要求判定処理などが含まれる。認証情報記憶部712は、認証対象のIoT機器3を識別する端末ID、複数の制御サーバのうちサービスの提供先の制御サーバを一意に識別するためのサービスIDを記憶する。認可情報記憶部713は、認可要求処理部321が、認可サーバ7に対し認可情報要求処理を実行し、後述する認可情報生成部721により生成された許可情報(トークン)を記憶する。例えば、許可情報(トークン)には、IoT機器3を一意に識別するための端末ID、資格情報、許可情報の有効期限などが含まれる。
処理部72は、認可情報生成部721及び認可情報検証部722を有する。認可情報生成部721は、IoT機器3からの第1制御サーバ5(第2制御サーバ6)宛の制御サーバ宛メッセージ送信認可要求に対する許可情報を生成する処理(以下、「認可情報生成処理」という)を行う。具体的には、認可情報生成部721は、認可情報生成処理において、IoT機器3からの許可情報(トークン)要求に含まれる端末IDとクライアント証明書を照合する。そして、許可情報(トークン)要求に含まれる端末IDとサービスIDの組み合わせが認証情報記憶部712に記憶されていることをチェックする。チェックの結果、端末IDとサービスIDの組み合わせが認証情報記憶部712に記憶されている場合には、認可サーバ7は、許可情報(トークン)要求を行ったIoT機器3を識別する端末IDと、制御サーバ(サービス)を一意に識別するためのサービスIDと、を含む許可情報(トークン)を生成する。認可情報生成部721は、許可情報(トークン)に署名情報を埋め込む。したがって、許可情報(トークン)が改変された場合には、不正な許可情報(トークン)であることを検知することができる。なお、適切に認可情報生成処理が行われると、認可情報生成部721は、生成した許可情報(トークン)をIoT機器3へ返送する。本実施の形態では、許可情報として認可サーバ7の公開鍵が出力されるが、これに限定されない。認可情報検証部722は生成した許可情報(トークン)と有効期限の情報を認可情報記憶部713に記憶する。
認可情報検証部722は、第1制御サーバ5(第2制御サーバ6)がIoT機器3からメッセージを受け付けた場合にメッセージに含まれる許可情報(トークン)の有効性を検証要求に応じて許可情報(トークン)の有効性の検証を行う処理(以下、「認可情報検証処理」という)を行う。認可情報検証処理は、第1制御サーバ5(第2制御サーバ6)から認可情報検証要求を受け付けた際に実行される。適切に認可情報検証処理が行われると、認可情報検証部722は、検証結果を第1制御サーバ5(第2制御サーバ6)へ出力する。本実施の形態では、認可サーバ7の秘密鍵によるメッセージへの署名が許可情報(トークン)として出力されるが、これに限定されない。
通信部73は、機器通信部731及び制御サーバ通信部732を有する。機器通信部731は、IoT機器3との間の通信を行う。機器通信部731は、IoT機器3との間でメッセージや許可情報(トークン)を送受する際に通信を行う。制御サーバ通信部732は、制御サーバ(例えば、第1制御サーバ5)との間の通信を行う。通信部73とブローカ4及び/又は制御サーバとの間の通信は、有線により行われることが望ましいが、無線により行うようにしてもよい。
図4は、本実施の形態に係る機器制御システム1が有するブローカ4の機能ブロック図である。図4に示すように、ブローカ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機器通信部(以下、「機器通信部」という)432を有する。制御サーバ通信部431は、制御サーバ(例えば、第1制御サーバ5)との間の通信を行う。機器通信部432は、IoT機器3との間の通信を行う。通信部43と制御サーバ、認可サーバ7及び/又はIoT機器3との間の通信は、有線により行われることが望ましいが、無線により行うようにしてもよい。
図5は、本実施の形態に係る機器制御システム1が有する第1制御サーバ5の機能ブロック図である。図5に示すように、第1制御サーバ5は、記憶部51、処理部52及び通信部53を含んで構成されるが、これに限定されない。第1制御サーバ5の使用者又は管理者が第1制御サーバ5を操作するために必要な操作部を備えるようにしてもよい。例えば、第1制御サーバ5は、汎用的なコンピュータシステムに制御サーバプログラムをインストールすることで実現されるサーバ装置で構成されるが、これに限定されない。第1制御サーバ5は、クラウドアプリケーションのように、サーバ装置の一部の機能により実現されてもよい。
記憶部51は、制御サーバプログラム記憶部511及び制御対象情報記憶部512を有する。制御サーバプログラム記憶部511は、第1制御サーバ5が各種処理を実行するためのプログラムを記憶する。制御対象情報記憶部512は、第1制御サーバ5が制御を実行する対象となる制御対象機器(IoT機器)に関する情報(制御対象情報)を記憶する。例えば、制御対象情報には、制御対象となるIoT機器3の識別情報や操作可能な内容(操作内容)が含まれる。
処理部52は、検証要求処理部521を有する。検証要求処理部521は、IoT機器3からメッセージを受け付けた場合に認可サーバ7に対しメッセージに含まれる許可情報(トークン)の有効性の検証を要求する処理(以下、「検証要求処理」という)を行い、認可サーバ7で行われた認可検証処理の検証結果に応じてIoT機器3から送信されたメッセージの許否を判定する。認可検証処理は、第1制御サーバ5が特定のIoT機器3に対する制御を実行する前に実行される。
通信部53は、ブローカ通信部531及び認可サーバ通信部532を有する。ブローカ通信部531は、ブローカ4との間の通信を行う。ブローカ通信部531は、ブローカ4を介してIoT機器3との間でメッセージを送受する際にブローカ4と通信を行う。認可サーバ通信部532は、認可サーバ7との間の通信を行う。通信部53とブローカ4及び/又は認可サーバ7との間の通信は、有線により行われることが望ましいが、無線により行うようにしてもよい。
以下、本実施の形態に係る機器制御システム1において、IoT機器3から制御サーバへメッセージを送信する際の動作について、図6を参照して説明する。図6は、本実施の形態に係る機器制御システム1において、IoT機器3から制御サーバへメッセージを送信する際の動作を説明するためのシーケンス図である。以下では、IoT機器3から第1制御サーバ5へメッセージを送信する際の動作について説明するものとする。機器制御システム1の管理対象となるIoT機器3は、説明の便宜上、全てエアコンであるものとする。
IoT機器情報の登録に先立ち、IoT機器3と認可サーバ7及び/又は第1制御サーバ5との間では、通信セキュリティが担保される。例えば、IoT機器3と認可サーバ7及び/又は第1制御サーバ5との間には、予め暗号鍵を共有しておき、MQTTプロトコルに従って通信される情報を暗号化することで、通信セキュリティを担保することができる。なお、IoT機器3と認可サーバ7及び/又は第1制御サーバ5との間の通信プロトコルとして、MQTTプロトコル以外のプロトコルを用いることで通信セキュリティを担保するようにしてもよい。
IoT機器3から第1制御サーバ5へメッセージが送信される場合、まず、IoT機器3の処理部32は、認可情報記憶部312に有効期限内の有効な許可情報(トークン)が記憶されているか判定する。認可情報記憶部312に有効期限内の許可情報(トークン)が記憶されている場合には、後述のST11〜ST16の処理は省略される。なお、認可情報記憶部312に記憶されている許可情報(トークン)は、有効期限が経過すると消去されるようにしてもよい。認可情報記憶部312に有効期限内の許可情報(トークン)が記憶されていない場合には、処理部32のアプリケーションは、第1制御サーバ5に対するメッセージ送信に対する許可情報(トークン)の生成を通信部33を通じて認可サーバ7に対し要求する認可情報要求処理を行う(ST11)。認可情報要求処理では、認可要求処理部321は、端末ID、サービスIDを含めた情報を認可サーバ7へ送信する。端末IDは、MQTTSで通信するIoT機器3を識別するためのIDである。サービスIDは、データ送信元である第1制御サーバ5(第2制御サーバ6)(サービス)を識別するためのIDである。認可要求処理部321は、端末ID、サービスIDに加えてテナントIDを含めた情報を認可サーバ7へ送信してもよい。テナントIDは、IoT機器3が設置される顧客のIDである。テナントIDは、IoT機器3の設置時に予め設定されている。通信部33は、認可サーバ7に対しTLS(Transport Layer Security)でクライアント証明書により認証して接続し(ST12)、端末ID、テナントID、サービスIDを含めた情報を認可サーバ7へ送信して許可情報(トークン)を要求する(ST13)。
IoT機器3から許可情報(トークン)要求を受け取ると、認可サーバ7は、IoT機器3から受け取った許可情報(トークン)要求の認証を行う(ST14)。許可情報(トークン)要求の認証では、許可情報(トークン)要求に含まれる端末IDとクライアント証明書を照合するとともに、端末IDとサービスIDの組み合わせが認証情報記憶部712に記憶されていることをチェックする。端末IDとサービスIDの組み合わせが認証情報記憶部712に記憶されている場合には、認可サーバ7は、許可情報(トークン)要求を行ったIoT機器3を識別する端末IDと、制御サーバ(サービス)を一意に識別するためのサービスIDと、を含む許可情報(トークン)を生成する。許可情報(トークン)には、署名情報が埋め込まれる。認可サーバ7は、生成した許可情報(トークン)を発行し(ST15)、通信部33は認可サーバ7から発行された許可情報(トークン)を処理部32のアプリケーションへ発行する(ST16)。
処理部32のアプリケーションは、認可サーバ7から許可情報(トークン)を受け付けた場合に、許可情報(トークン)を含むメッセージ(サービスデータ)を第1制御サーバ5(第2制御サーバ6)へ送信する(ST17)。通信部33は、ブローカ4に対しTLS(Transport Layer Security)でクライアント証明書により認証して接続し(ST18)、許可情報(トークン)を含むメッセージ(サービスデータ)をブローカ4へ送信する(ST19)。ブローカ4は、IoT機器3からメッセージを受け取ると、当該メッセージに含まれるトピックを識別し、そのトピックに応じた配信先にメッセージを配信する。ここでは、トピックに、制御サーバを識別する内容が含まれる。ブローカ4は、トピックを識別することで、配信先として第1制御サーバ5(第2制御サーバ6)を特定し、メッセージ(サービスデータ)を第1制御サーバ5(第2制御サーバ6)に送信する(ST20)。
このとき、ブローカ4では、機器通信部432がIoT機器3から登録要求メッセージを受信する。トピック識別処理部421が登録要求メッセージに含まれるトピックを識別する。トピック識別処理部421は、トピック記憶部412に記憶されたトピック情報に基づいてトピックを識別する。メッセージ配信処理部422は、トピック識別処理部421が識別したトピックに応じてメッセージの配信先を決定する。機器通信部432は、メッセージ配信処理部422が決定したメッセージの配信先である第1制御サーバ5(第2制御サーバ6)にメッセージ(サービスデータ)を送信する。
ブローカ4を介してIoT機器3からメッセージを受け付けると、第1制御サーバ5(第2制御サーバ6)は、メッセージに含まれる許可情報(トークン)の有効性を検証するために、認可サーバ7に対し許可情報(トークン)とサービスIDを含む検証要求を行う(S21)。検証要求を受け付けた認可サーバ7は、許可情報(トークン)の署名を検証するとともに、認可情報記憶部713に記憶されている情報を参照して、許可情報(トークン)が、検証要求を行った制御サーバのサービスIDに対して認可されていることをチェックして検証する(ST22)。認可サーバ7は、チェックした許可情報(トークン)の検証結果を検証要求を行った制御サーバに対し送信する(ST23)。
第1制御サーバ5(第2制御サーバ6)は、認可サーバ7から送信された検証結果に応じてIoT機器3から送信されたメッセージの許否を判定する(ST24)。そして、認証結果がOKの場合には、第1制御サーバ5(第2制御サーバ6)は、正当な端末から送信されたメッセージ(サービスデータ)であるとして受け入れる。これに対し、認証結果がNGの場合には、第1制御サーバ5(第2制御サーバ6)は、不正アクセスにより送信元不明の端末から送信されたメッセージ(サービスデータ)であるとして受け入れない。認証結果の中には、認可サーバ7により付加される許可情報(トークン)の有効性を検証するための検証情報が含まれる。ここでは、検証情報として、認可サーバ7の公開鍵が含まれる。
図7は、認可サーバ7で行われる認証に利用される認証情報テーブルの一例を示す図である。図7に示すように、認証情報テーブルには、端末ID、サービスIDの情報が予め記憶される。なお、認証情報テーブルに記憶される内容は、これに限定されるものではなく適宜変更が可能である。認証情報テーブルは、例えば、認証情報記憶部712に記憶される。
認証情報テーブルの番号#1の登録内容について説明する。番号#1には、IoT機器3a(機器3a)についての許可情報が記憶されている。番号#1では、機器IDとして「IoT機器3a」が登録され、そのサービス先として「第1制御サーバ5」が登録されている。これは、IoT機器3aと第1制御サーバ5との組み合わせが有効であることを示している。したがって、認可サーバ7はIoT機器3aから第1制御サーバ5に対するメッセージに対する許可情報の生成要求を受け付けた場合には、認証情報テーブルの番号#1に基づいて認証を行い、許可情報(トークン)を生成して、IoT機器3aへ返送する。
図8は、認可サーバ7で許可情報(トークン)の管理に利用される認可情報テーブルの一例を示す図である。図8に示すように、認可情報テーブルには、端末ID、サービスID、及び許可情報(トークン)の有効期限の情報が記憶される。なお、認可情報テーブルに記憶される内容は、これに限定されるものではなく適宜変更が可能である。認可情報テーブルは、例えば、認可情報記憶部713に記憶される。
認可情報テーブルの番号#1の登録内容について説明する。番号#1には、IoT機器3a(機器3a)についての許可情報が記憶されている。番号#1では、機器IDとして「IoT機器3a」が登録され、そのサービス先として「第1制御サーバ5」が登録され、その有効期限として「2020/4/1」が登録されている。これは、IoT機器3aから第1制御サーバ5へのメッセージの送信が2020年4月1日まで有効であることを示している。このような許可情報が、IoT機器3からの要求に応じて生成されて認可サーバ7の認可情報テーブルに記憶される。
一方、第1制御サーバ5は、IoT機器3aからメッセージを受け付けた場合、認可サーバ7に対しメッセージに含まれる許可情報(トークン)の有効性を検証する検証要求を行う。検証要求を受け付けた認可サーバ7は、認可情報テーブルの番号#1に基づいて許可情報(トークン)の検証を行い、有効期限が有効であることを確認したうえで検証結果を第1制御サーバ5へ送信する。第1制御サーバ5は、その検証結果に応じてIoT機器3から送信されたメッセージの許否を判定する。
このように機器制御システム1においては、IoT機器3からの第1制御サーバ5に対するメッセージを送信する際には、IoT機器3は、認可サーバ7に対して許可情報(トークン)の生成を要求する。要求を受け付けた認可サーバ7は、許可情報(トークン)を生成してIoT機器3へ発行する。IoT機器3は、生成された許可情報(トークン)をメッセージにつけて、ブローカ4を通じて第1制御サーバ5へ送信する。第1制御サーバ5は、メッセージを受け付けると、メッセージについた許可情報(トークン)の許可情報の有効性を認可サーバ7に対し問合せを行う。問い合わせを受けた認可サーバ7は、許可情報(トークン)の検証を行い、問合せを行ってきた第1制御サーバ5に対し検証結果を送信する。そして、検証結果を受け付けた第1制御サーバ5は、検証結果に基づいてメッセージの許否の判定を行い、検証結果がOKの場合は正当な送信元からのメッセージであるとして受け付け、検証結果がNGの場合は不正な送信元からのメッセージであるとして拒否する。これにより、ブローカ4の改変を必要とせずに、メッセージの送信元の制御対象機器が認可されているかどうかを判定することができる。
なお、本発明は上記実施の形態に限定されず、種々変更して実施することが可能である。上記実施の形態において、添付図面に図示されている構成要素の大きさや形状、機能などについては、これに限定されず、本発明の効果を発揮する範囲内で適宜変更することが可能である。その他、本発明の目的の範囲を逸脱しない限りにおいて適宜変更して実施することが可能である。
例えば、上記実施の形態では、機器制御システム1がMQTTプロトコルに従ってIoT機器3を制御する場合について説明している。しかしながら、IoT機器3を制御する際の通信プロトコルは、これに限定されない。例えば、MQTTプロトコルのように、非同期で通信制御を行うと共に、ブローカ4などの単一の制御装置で制御対象機器の認証を行う任意の通信プロトコルに適用することができる。
また、上記実施の形態では、IoT機器3がブローカ4を介して認可サーバ7と通信を行う場合について説明している。しかしながら、認可サーバ7に対するIoT機器3の通信方法については、これに限定されるものではなく適宜変更が可能である。例えば、IoT機器3は、ブローカ4を介在させることなく直接的に認可サーバ7と通信を行うような態様であってもよい。
さらに、上記実施の形態では、認可サーバ7にて、操作要求を認可サーバ7の秘密鍵で暗号化することで許可情報を生成する場合について説明している。しかしながら、許可情報の内容についてはこれに限定されるものではなく適宜変更が可能である。例えば、メッセージ認証コードを許可情報として利用することも可能である。この場合、IoT機器3は、検証情報として、認可サーバ7との間で共有する秘密鍵を取得する。IoT機器3は、この認可サーバ7と共有する秘密鍵によって許可情報であるメッセージ認証コードの有効性を検証することができる。
本発明の機器制御システム及びIoT機器操作方法は、メッセージの送信元の制御対象機器が認可されているものであるかを判定することができる効果を有するものであり、あらゆるIoT機器が接続される任意のネットワークに好適である。尚、本発明の一実施例では、IoT機器を制御対象の機器、制御サーバをIoT機器に対して制御を実行する制御サーバとしていたが、IoT機器を計測機器とし、制御サーバを各種センサからの計測データを計測機器経由で収集する収集サーバとしても本発明は成り立つ。このとき、収集サーバは、不正なメッセージ(計測データ)を受け付けず、メッセージの送信元が許可された計測機器からの計測データのみ受け付けることが可能となる。つまり、本発明は、機器制御システムのかわりに収集システムにおいても採用できる。
1 :機器制御システム
2 :インターネット
3、3a〜3n:IoT機器
31 :記憶部
311 :機器プログラム記憶部
312 :認可情報記憶部
32 :処理部
321 :認可要求処理部
322 :メッセージ送信処理部
33 :通信部
331 :ブローカ通信部
332 :認可サーバ通信部
4 :MQTTブローカ(ブローカ)
41 :記憶部
411 :ブローカプログラム記憶部
412 :トピック記憶部
42 :処理部
421 :トピック識別処理部
422 :メッセージ配信処理部
43 :通信部
431 :制御サーバ通信部
432 :機器通信部
5 :第1制御サーバ
51 :記憶部
511 :制御サーバプログラム記憶部
512 :制御対象情報記憶部
52 :処理部
521 :検証要求処理部
53 :通信部
531 :ブローカ通信部
532 :認可サーバ通信部
6 :第2制御サーバ
7 :認可サーバ
711 :認可サーバプログラム記憶部
712 :認証情報記憶部
713 :認可情報記憶部
71 :記憶部
72 :処理部
721 :認可情報生成部
722 :認可要求判定処理部
73 :通信部
731 :機器通信部
732 :制御サーバ通信部

Claims (4)

  1. MQTT(Message Queue Telemetry Transport)プロトコルに従って通信を行う制御対象機器を制御可能な機器制御システムであって、
    前記制御対象機器を制御する制御サーバと、
    前記制御対象機器から前記制御サーバに送信されるメッセージの許否を判定する認可サーバと、を具備し、
    前記認可サーバは、前記制御対象機器からの制御サーバ宛メッセージ送信認可要求に対して許可情報を生成して返送し、
    前記制御対象機器は、前記認可サーバから前記許可情報を受け付けた場合に、前記許可情報を含む前記メッセージを前記制御サーバへ送信し、
    前記制御サーバは、前記制御対象機器から前記メッセージを受け付けた場合に前記認可サーバに対し前記メッセージに含まれる前記許可情報の有効性を検証し、その検証結果に応じて前記制御対象機器から送信された前記メッセージの許否を判定することを特徴とする機器制御システム。
  2. 前記機器制御システムは、前記制御サーバを少なくとも2以上具備し、
    前記認可サーバは、前記制御対象機器からの前記制御サーバのうち一の制御サーバ宛の前記制御サーバ宛メッセージ送信認可要求に対して前記許可情報を生成して返送し、
    前記制御対象機器は、前記認可サーバから前記許可情報を受け付けた場合に、前記許可情報を含む前記メッセージを前記一の制御サーバへ送信し、
    前記一の制御サーバは、前記制御対象機器から前記メッセージを受け付けた場合に前記認可サーバに対し前記メッセージに含まれる前記許可情報の有効性を検証し、その検証結果に応じて前記制御対象機器から送信された前記メッセージの許否を判定することを特徴とする請求項1に記載の機器制御システム。
  3. 前記制御対象機器を一意に識別する端末IDと前記制御サーバを一意に識別するサービスIDとの組み合わせを記憶する認証情報記憶部を更に備え、
    前記認可サーバは、前記制御対象機器から前記許可情報の要求を受け付けた場合には、要求を受け付けた前記制御対象機器の前記端末IDと前記メッセージの送信先の前記制御サーバの前記サービスIDとの組み合わせが、前記認証情報記憶部に記憶されているかチェックし、前記チェックの結果、前記制御サーバの前記サービスIDとの組み合わせが前記認証情報記憶部に記憶されている場合には、前記認可情報を生成する
    ことを特徴とする請求項1または2に記載の機器制御システム。
  4. MQTTプロトコルに従って通信を行う制御対象機器を制御する制御サーバと、前記制御対象機器から前記制御サーバに送信されるメッセージの許否を判定する認可サーバと、を用いた機器制御方法であって、
    前記認可サーバにて、前記制御対象機器からの制御サーバ宛メッセージ送信認可要求に対して許可情報を生成して返送するステップと、
    前記制御対象機器にて、前記認可サーバから前記許可情報を受け付けた場合に、前記許可情報を含む前記メッセージを前記制御サーバへ送信するステップと、
    前記制御サーバにて、前記制御対象機器から前記メッセージを受け付けた場合に前記認可サーバに対し前記メッセージに含まれる前記許可情報の有効性を検証し、その検証結果に応じて前記制御対象機器から送信された前記メッセージ許否を判定するステップと、
    を有することを特徴とする機器制御方法。
JP2020047153A 2020-03-18 2020-03-18 機器制御システム及び機器制御方法 Pending JP2021150745A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2020047153A JP2021150745A (ja) 2020-03-18 2020-03-18 機器制御システム及び機器制御方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2020047153A JP2021150745A (ja) 2020-03-18 2020-03-18 機器制御システム及び機器制御方法

Publications (1)

Publication Number Publication Date
JP2021150745A true JP2021150745A (ja) 2021-09-27

Family

ID=77849524

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2020047153A Pending JP2021150745A (ja) 2020-03-18 2020-03-18 機器制御システム及び機器制御方法

Country Status (1)

Country Link
JP (1) JP2021150745A (ja)

Similar Documents

Publication Publication Date Title
US7489783B2 (en) Digital certificate management system, digital certificate management apparatus, digital certificate management method, update procedure determination method and program
US6715073B1 (en) Secure server using public key registration and methods of operation
US7584351B2 (en) Method of transferring digital certificate,apparatus for transferring digital certificate, and system, program, and recording medium for transferring digital certificate
EP3308516B1 (en) Authorization apparatus and method for an authorized issuing of an authentication token for a device
JP4758095B2 (ja) 証明書無効化装置、通信装置、証明書無効化システム、プログラム及び記録媒体
EP1521426B1 (en) Communication apparatus, communication system, certificate transmission method and program
JP6810334B2 (ja) プロファイルデータ配信制御装置、プロファイルデータ配信制御方法およびプロファイルデータ配信制御プログラム
US20160013948A1 (en) System, method and apparatus for providing enrollment of devices in a network
EP1545049B1 (en) Digital Certificate Updating Method, and Apparatus and System therefor
US20120260318A1 (en) Access to a network for distributing digital content
WO2014068632A1 (ja) 設備管理装置、設備管理システム及びプログラム
JP2006139747A (ja) 通信システムおよび安全性保証装置
GB2530028A (en) Registry apparatus, agent device, application providing apparatus and corresponding methods
JP4525609B2 (ja) 権限管理サーバ、権限管理方法、権限管理プログラム
CN102823217A (zh) 证书机构
JP2008544405A (ja) 通信ネットワーク上でのクライアントとサーバ間の安全なデータ通信
JP2019050485A (ja) 通信制御システム、及び通信制御装置
JP2007053569A (ja) 電子メールセキュリティ化装置及び該システム
JP5012574B2 (ja) 共通鍵自動共有システム及び共通鍵自動共有方法
CN112335215B (zh) 用于将终端设备联接到可联网的计算机基础设施中的方法
JP2021150745A (ja) 機器制御システム及び機器制御方法
JP2020135199A (ja) 機器制御システム及び機器制御方法
JP7081348B2 (ja) 機器制御システム及び機器制御方法
JP5665592B2 (ja) サーバ装置並びにコンピュータシステムとそのログイン方法
JP2005157845A (ja) サーバシステム、クライアントサーバシステム、及びクライアントサーバシステムへのログイン方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20230213

RD03 Notification of appointment of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7423

Effective date: 20231019

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20231228

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20240116

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20240227

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20240521