JP2020057378A - クラウドサービスを提供するためのシステムおよび方法 - Google Patents

クラウドサービスを提供するためのシステムおよび方法 Download PDF

Info

Publication number
JP2020057378A
JP2020057378A JP2019165739A JP2019165739A JP2020057378A JP 2020057378 A JP2020057378 A JP 2020057378A JP 2019165739 A JP2019165739 A JP 2019165739A JP 2019165739 A JP2019165739 A JP 2019165739A JP 2020057378 A JP2020057378 A JP 2020057378A
Authority
JP
Japan
Prior art keywords
client device
security
security token
server
communication 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
JP2019165739A
Other languages
English (en)
Inventor
俊輔 馬場
Shunsuke Baba
俊輔 馬場
圭介 澤田
Keisuke Sawada
圭介 澤田
敦 辻井
Atsushi Tsujii
敦 辻井
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.)
Yokogawa Electric Corp
Original Assignee
Yokogawa Electric Corp
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 Yokogawa Electric Corp filed Critical Yokogawa Electric Corp
Publication of JP2020057378A publication Critical patent/JP2020057378A/ja
Pending legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/51Discovery or management thereof, e.g. service location protocol [SLP] or web services
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W12/00Security arrangements; Authentication; Protecting privacy or anonymity
    • H04W12/009Security arrangements; Authentication; Protecting privacy or anonymity specially adapted for networks, e.g. wireless sensor networks, ad-hoc networks, RFID networks or cloud networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/0876Network architectures or network communication protocols for network security for authentication of entities based on the identity of the terminal or configuration, e.g. MAC address, hardware or software configuration or device fingerprint
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/08Configuration management of networks or network elements
    • H04L41/0803Configuration setting
    • H04L41/0806Configuration setting for initial configuration or provisioning, e.g. plug-and-play
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/0807Network architectures or network communication protocols for network security for authentication of entities using tickets, e.g. Kerberos
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/10Network architectures or network communication protocols for network security for controlling access to devices or network resources
    • H04L63/102Entity profiles
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/10Network architectures or network communication protocols for network security for controlling access to devices or network resources
    • H04L63/108Network architectures or network communication protocols for network security for controlling access to devices or network resources when the policy decisions are valid for a limited amount of time
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • H04L9/0866Generation of secret information including derivation or calculation of cryptographic keys or passwords involving user or device identifiers, e.g. serial number, physical or biometrical information, DNA, hand-signature or measurable physical characteristics
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0894Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3226Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using a predetermined code, e.g. password, passphrase or PIN
    • H04L9/3228One-time or temporary data, i.e. information which is sent for every authentication or authorization, e.g. one-time-password, one-time-token or one-time-key
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W12/00Security arrangements; Authentication; Protecting privacy or anonymity
    • H04W12/30Security of mobile devices; Security of mobile applications
    • H04W12/35Protecting application or service provisioning, e.g. securing SIM application provisioning
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2463/00Additional details relating to network architectures or network communication protocols for network security covered by H04L63/00
    • H04L2463/062Additional details relating to network architectures or network communication protocols for network security covered by H04L63/00 applying encryption of the keys
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
    • H04L63/0442Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload wherein the sending and receiving network entities apply asymmetric encryption, i.e. different keys for encryption and decryption
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/06Network architectures or network communication protocols for network security for supporting key management in a packet data network
    • H04L63/067Network architectures or network communication protocols for network security for supporting key management in a packet data network using one-time keys
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/12Protocols specially adapted for proprietary or special-purpose networking environments, e.g. medical networks, sensor networks, networks in vehicles or remote metering networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W12/00Security arrangements; Authentication; Protecting privacy or anonymity
    • H04W12/04Key management, e.g. using generic bootstrapping architecture [GBA]
    • H04W12/043Key management, e.g. using generic bootstrapping architecture [GBA] using a trusted network node as an anchor
    • H04W12/0431Key distribution or pre-distribution; Key agreement
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W4/00Services specially adapted for wireless communication networks; Facilities therefor
    • H04W4/70Services for machine-to-machine communication [M2M] or machine type communication [MTC]

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Power Engineering (AREA)
  • Storage Device Security (AREA)
  • Computer And Data Communications (AREA)

Abstract

【課題】クライアントデバイスが安全かつ容易にクラウドサービスを利用できるようにする。【解決手段】サービス提供システムは、デバイスIDと、デバイスIDに対応する公開鍵・秘密鍵ペアとを記憶するセキュリティデータベースと、セキュリティデータベースと通信する通信サーバと、を有するクラウドプラットフォームを備え、通信サーバは、クライアントデバイスと通信し、クライアントデバイスから、クライアントデバイスのデバイスIDと、公開鍵で暗号化されたデータとを含み、セキュリティトークンの発行を求める要求を受信し、セキュリティデータベースを参照することにより、暗号化されたデータがクライアントデバイスに対応する秘密鍵で復号化されたかを判定し、暗号化されたデータが秘密鍵で復号化された場合、セキュリティトークンを発行してクライアントデバイスに送信する。【選択図】図2

Description

本発明は一般に、クラウドサービスを提供するための、IIoT(Industrial Internet of Things)等のIoT(Internet of Things)システムおよび方法などのサービス提供システムおよび方法に関する。
IoTシステムは、インターネットを介して各種クラウドサービスを提供することができる。図1は、顧客A,B,C,…,Xに属する多くのデバイスにそのようなクラウドサービスを提供する従来のIoTシステムを示す。例えば、顧客A,B,C,…,Xは、自宅に設置されたデバイス(カメラやセンサ等)を使用して自宅内部を遠隔監視する、患者に取り付けたデバイス(センサ等)を使用して病院などの場所で異常発生の自動通知を受信する、デバイス(スマートフォンや位置センサ等)を用いて人の現在位置を確認する、自動車や重機に設置されたデバイス(センサ等)を使用してその現在位置および/または動作状態を監視する、などを行うことができる。
しかしながら、このようなIoTシステムにおいては、管理者不明のデバイスおよび/またはセキュリティの問題のあるデバイスにより、予期または意図しない通信が発生することがある。さらに、乗っ取られたデバイスからの不正なパケットがインターネット上に多数検出されたこともあった。
IoTクラウドサービスプロバイダの一部は、デバイス/センサを管理して、安全な経路経由でデバイス/センサをクラウドプラットフォーム上のIoTハブに接続するシステムを提供している。例えば、マイクロソフト コーポレーションが提供するクラウドサービスであるMicrosoft(登録商標) Azure(登録商標)は「Azure IoT Hub Device Provisioning Service」を備える。このサービスを用いることで、デバイス/センサを管理し、デバイス/センサをクラウドプラットフォームに安全に接続して、デバイス/センサを容易に配置することが可能となる(非特許文献1参照)。
「Azure IoT Hub Device Provisioning Service」(HTTPS://docs.microsoft.com/en-us/azure/iotdps/about-iot-dps)
「Azure IoT Hub Device Provisioning Service」をデバイス/センサで使用するには、マイクロソフト コーポレーションが提供するSoftware Development Kit(SDK)を用いて特定のソフトウェアを開発して、デバイス/センサ上で動作させる必要がある。しかしながら、低演算能力、低メモリ容量、および/または低記憶容量のデバイス(ライトウェイトデバイス)は、SDKで作成したソフトウェアに対応したオペレーションシステムを備えておらず、このソフトウェアを実装することができない。
一以上の実施形態は、クライアントデバイスが安全かつ容易にクラウドサービスを利用できるようにするサービス提供システムおよび方法を提供する。
本発明の一以上の実施形態は、デバイス識別子と、前記デバイス識別子に対応する公開鍵および秘密鍵のペアとを記憶するセキュリティデータベースと、該セキュリティデータベースと通信する通信サーバと、を有するクラウドプラットフォームを備えるサービス提供システムであって、前記通信サーバは、クライアントデバイスと通信し、前記クライアントデバイスから、該クライアントデバイスのデバイス識別子と、公開鍵で暗号化されたデータとを含み、セキュリティトークンの発行を求める要求を受信し、前記セキュリティデータベースを参照することにより、前記暗号化されたデータが前記クライアントデバイスに対応する秘密鍵で復号化されたかを判定し、前記暗号化されたデータが前記秘密鍵で復号化された場合、前記セキュリティトークンを発行して前記クライアントデバイスに送信することを特徴とするサービス提供システムを提供する。
本発明の一以上の実施形態は、デバイス識別子と、該デバイス識別子に対応する公開鍵および秘密鍵のペアとを記憶するセキュリティデータベースと、該セキュリティデータベースと通信する通信サーバと、を有するクラウドプラットフォームを備えるサービス提供システムを使用してクラウドサービスを提供する方法であって、前記方法は、前記通信サーバが、クライアントデバイスから、該クライアントデバイスのデバイス識別子と、公開鍵で暗号化されたデータとを含み、セキュリティトークンの発行を求める要求を受信し、前記通信サーバが、前記セキュリティデータベースを参照することにより、前記暗号化されたデータが前記クライアントデバイスに対応する秘密鍵で復号化されたかを判定し、前記暗号化されたデータが前記秘密鍵で復号化された場合、前記通信サーバが、前記セキュリティトークンを発行して前記クライアントデバイスに送信することを特徴とする方法を提供する。
本発明によれば、クライアントデバイスが安全かつ容易にクラウドサービスを利用できる。
従来のIoTシステムの模式図を示す。 本発明の一以上の実施形態(以下「一以上の実施形態」と略す)に係るサービス提供システムのブロック図を示す。 一以上の実施形態に係るクライアントデバイスのブロック図を示す。 一以上の実施形態に係るデバイスセキュリティデータベースに記憶されている情報の図を示す。 一以上の実施形態に係る構成サーバのブロック図を示す。 一以上の実施形態に係る構成サーバにアクセスするクライアントデバイスのインタフェースの図を示す。 一以上の実施形態に係る構成サーバの機能を説明する図を示す。 一以上の実施形態に係る構成ファイルの図を示す。 一以上の実施形態に係る通信サーバのブロック図を示す。 一以上の実施形態に係る通信サーバの機能を説明する図を示す。 一以上の実施形態に係る構成ファイル要求処理のフローチャートを示す。 一以上の実施形態に係るセキュリティトークン発行要求処理のフローチャートを示す。 一以上の実施形態に係るデータ送信処理のフローチャートを示す。 一以上の実施形態に係るコマンド送信処理のフローチャートを示す。 HTTPS通信ネットワーク上で実行される処理と、通信経路が暗号化されていない他の通信ネットワーク上で実行される処理との比較表を示す。
添付の図面を参照して、本発明の特定の実施形態を以下に説明する。一貫性を保つために、複数の図において同じ構成要素には同一の参照符号を付す。
以下の本発明の実施形態の説明では、本発明をよく理解できるよう、特定の詳細を以下に記載する。しかし、このような特定の事項がなくても本発明を実施してよいことは、当業者には自明であろう。場合によっては、説明を複雑にするのを避けるため、周知の特徴については詳細に記載しない。
[サービス提供システム]
図2は、一以上の実施形態に係るサービス提供システム1000のブロック図を示し、当該システム1000は、IoT(Internet of Things)/IIoT(Industrial Internet of Things)システムを含む。サービス提供システム1000が提供するサービスとしては、自宅内の遠隔監視の実施、病院などの場所における異常発生の自動通知の受信、人の現在位置の確認、自動車や重機の現在位置および/または動作状態の監視が挙げられる。サービス提供システム1000は、クライアントデバイス100、デバイスセキュリティデータベース200、構成サーバ300、通信サーバ400、キッティング部500、デバイスファイルデータベース600、ファイル記憶部700を備える。構成サーバ300と通信サーバ400とは、クラウドプラットフォームCPのクラウドエッジCP1に存在し、デバイスセキュリティデータベース200、デバイスファイルデータベース600、およびファイル記憶部700はクラウドプラットフォームCPのバックエンドシステムCP2に存在する。本明細書において、「クラウドプラットフォーム」とは、インターネット等のネットワークを介して各種サービスを提供するコンピュータ環境を構成するハードウェア(CPU等)、サーバ、データベースの総称である。
一以上の実施形態において、キッティング部500、デバイスファイルデータベース600、およびファイル記憶部700は任意の構成要素であり、省略されてもよい。キッティング部500は、記録媒体に記憶され、クライアントデバイス100にインストールされているプログラムであり、出荷前にクライアントデバイス100を使用可能な状態にするのに必要な設定を自動的に実行する。デバイスファイルデータベース600は、クライアントデバイス100から通信サーバ400経由で送られるデータを処理し、当該データを時系列で記憶する。ファイル記憶部700は、ファイルを記憶しており、クライアントデバイス100からの要求に応え、通信サーバ400経由でクライアントデバイス100にファイルを送信する。
クラウドプラットフォームCPの各構成要素はワイドエリアネットワーク(WAN)、ローカルネットワーク(LAN)、携帯電話ネットワーク、インターネット等のネットワークを介して相互に接続されている。クライアントデバイス100はインターネットを介して構成サーバ300と通信サーバ400とに接続されている。一以上の実施形態によれば、クライアントデバイス100は、構成サーバ300および通信サーバ400と、HTTPS(Hypertext Transfer Protocol Secure)通信ネットワークを介して通信する、詳細には、SSL(Secure Sockets Layer)プロトコルまたはTLS(Transport Layer Security)プロトコルによって提供される安全な接続上でHTTP通信を行う。
(クライアントデバイス)
図3は、一以上の実施形態に係るクライアントデバイス100のブロック図を示す。クライアントデバイス100は、インタフェースモジュール110とアプリケーションモジュール120と備え、これらは通信コネクタによって相互に着脱可能に接続されている。インタフェースモジュール110は、複数のアプリケーションモジュール120のそれぞれと選択的に接続されてよい。インタフェースモジュール110は、アプリケーションモジュール120を、ワイドエリアネットワーク(WAN)、ローカルネットワーク(LAN)、携帯電話ネットワーク、インターネット等のネットワークに接続する。
インタフェースモジュール110は、CPU111、記憶部112、ネットワークインタフェース113、計時部114、および通信モジュール115を備える。インタフェースモジュール110は、ネットワークに無線接続用のアンテナ、位置測定用のGPS、データ入出力用のユーザインタフェース、および各機能部に給電するための電源の少なくともいずれかをさらに備えてもよい。
一以上の実施形態に係るCPU111は、ARMアーキテクチャに準拠して製造された低消費電力CPUであり、ライトウェイトデバイスに適したものである。
CPU111は、ネットワークインタフェース113を介して、構成サーバ300にアクセスして、クライアントデバイス100のデバイスID(デバイス識別子)を送信し、構成ファイルを受信する。デバイスIDは記憶部112にあらかじめ記憶されている。あるいは、構成サーバ300がデバイスIDを発行して、構成ファイルと共にデバイスIDをクライアントデバイス100に返信する。
また、CPU111は、ネットワークインタフェース113を介して通信サーバ400にもアクセスする。通信サーバ400との通信前に、CPU111は、通信サーバ400から取得した情報に基づいて、通信サーバ400が正しいサーバ(すなわち、不正なサーバや未知のサーバではない)ことを確認してよい。例えば、CPU111は、ルート証明書とサーバIDとが、通信サーバ400の完全修飾ドメイン名(Fully Qualified Domain Name;FQDN)に一致するかどうかを判定してよい。
次に、CPU111は、ネットワークインタフェース113のソケットを介して、通信サーバ400にHTTPリクエストを送信する。HTTPリクエストは、例えば、ネットワークインタフェース113または通信モジュール115を介した入力操作、あるいはユーザが行ったユーザインタフェース操作の発生時に、CPU111によって記述される。
CPU111は、通信サーバ400にセキュリティトークンの発行を要求するために、ヘッダにデバイスIDを、ボディにバイナリデータをそれぞれ記述してPOSTメソッドにHTTPリクエストを作成して、通信サーバ400にこのHTTPリクエストを送信する。一以上の実施形態によれば、バイナリデータは、デバイスIDと参照時間とを、構成ファイルに格納されている公開鍵で暗号化することにより作成される。参照時間は、クライアントデバイス100が通信サーバ400にHTTPリクエストを送信するときに計時部114から取得する現在時刻である。あるいは、参照時間を所定時間(5分など)前後させることで参照時間を取得してもよい。
次に、CPU111は、通信サーバ400が発行したセキュリティトークンとセキュリティトークンの有効期間(lifetime)とを受信する。通信サーバ400がセキュリティトークンを発行しない場合、CPU111は、通信サーバ400から、エラー応答(HTTP状態コード“500”など)を受信する。
クライアントデバイス100のクロックが、通信サーバ400またはデバイスセキュリティデータベース200のクロックに必ずしも同期していると限らないので、CPU111は、セキュリティトークンの参照時間と有効期間(1時間など)とに基づいて、セキュリティトークンの有効期限(年/月/日/時/分/秒)を計算する。例えば、CPU111は、参照時間に有効期間を加算して、セキュリティトークンの有効期限を求める。次に、CPU111は、セキュリティトークン、有効期間、および有効期限を記憶部112に記憶する。
セキュリティトークンの発行後、通信サーバ400にデータを送信する場合、CPU111は、ヘッダにデバイスIDとセキュリティトークンとを、ボディにJSON(JavaScript Object Notation)フォーマットで当該データをそれぞれ記述することでPOSTメソッドにHTTPリクエストを作成して、通信サーバ400にこのHTTPリクエストを送信する。通信サーバ400が、セキュリティトークンが有効であると判定した場合、CPU111は、「有効」を示す応答(HTTP状態コード“200”など)を通信サーバ400から受信する。一方、通信サーバ400が、セキュリティトークンが無効であると判定した場合、CPU111は、「無効」を示す応答(HTTP状態コード“450”など)を通信サーバ400から受信する。
クライアントデバイス100は、クライアントデバイス100の現在時刻とセキュリティトークンの有効期間とに基づいて、セキュリティトークンの有効期間が切れているかどうかを判定してよい。しかしながら、例えば、クライアントデバイス100の計時部114の時間が不正確な場合など、クライアントデバイス100は、有効期間の切れたセキュリティトークンと共にデータを送信することもある。このような場合、クライアントデバイス100は、通信サーバ400からHTTP状態コード“450”を受信した後にセキュリティトークン発行要求をリトライすることができる。
セキュリティトークンの発行後、通信サーバ400にコマンドを送信する場合、CPU111は、ヘッダにデバイスID、セキュリティトークン、およびコマンドIDを、ボディに任意でペイロードを記述することでPOSTメソッドにHTTPリクエストを作成して、通信サーバ400にこのHTTPリクエストを送信する。通信サーバ400が、セキュリティトークンが有効であると判定した場合、CPU111は、「有効」を示す応答(HTTP状態コード“200”など)を通信サーバ400から受信する。一方、通信サーバ400が、セキュリティトークンが無効であると判定した場合、CPU111は、「無効」を示す応答(HTTP状態コード“450”など)を通信サーバ400から受信する。
記憶部112は、少なくともRAM(ランダムアクセスメモリ)とROM(リードオンリーメモリ)とから構成される。記憶部112は、供給業者の識別情報、デバイスID(シリアル番号など)、機種名、ファンクショナルコードなど、クライアントデバイス100のデバイス情報を含む各種情報を記憶する。記憶部112は、通信モジュール115を介してアプリケーションモジュール120から取得した測定値などの各種データを記憶する。また、記憶部112は、(i)構成サーバ300から入力されるバイスIDおよび構成ファイル、(ii)通信サーバ400からネットワークインタフェース113を介して入力されるセキュリティトークンおよびセキュリティトークンの有効期間、ならびに(iii)セキュリティトークンの有効期限も記憶する。
ネットワークインタフェース113はネットワークに接続され、ネットワークを介してデバイスから、またはデバイスにデータを転送する。一以上の実施形態によれば、ネットワークインタフェース113は、クライアントデバイス100を、インターネット(HTTPS通信ネットワーク)を介して構成サーバ300および通信サーバ400と通信させる。ネットワークインタフェース113は1以上のソケットを備え、当該ソケットにHTTPリクエストが書き込まれてソケット通信が行われる。
計時部114はクロック機能を備え、現在時刻を出力する。
通信モジュール115は、CPU、メモリ、およびA/Dコンバータ等のコンバータを備え、通信コネクタを介してアプリケーションモジュール120と通信可能に接続され、アプリケーションモジュール120の機能に応じた通信を行う。
一以上の実施形態に係るアプリケーションモジュール120は、少なくとも1つのセンサ121を備えるセンサモジュールである。センサ121は物理量を計測するものであり、例えば、温度センサ、湿度センサ、流速センサ、圧力センサ、速度センサ、および/または電流センサなどでよい。
あるいは、アプリケーションモジュール120は、少なくとも1つのアクチュエータ122を備えるアクチュエータモジュールである。アクチュエータ122は、例えば、ファンまたはモータである。
あるいは、アプリケーションモジュール120は、リモートコントローラ、ランプ、およびディスプレイ装置の少なくともいずれかを備えるユーザインタフェースモジュールでもよい。
または、アプリケーションモジュール120は、他のデバイスに接続可能な入力ポート、出力ポート、入出力ポート(USBポート等)の少なくともいずれかを備える中継デバイスでもよい。他のデバイス/装置としては、カメラやビデオなどのキャプチャ装置、デバイス/装置に取り付けられたバーコードおよび/または二次元コード(QRコード(商標登録)等)を読み取る読み取り装置、設備内の異常音を収集して、警告音を発するマイクやスピーカなどの音響装置、各デバイスの位置情報を出力する位置検出装置が挙げられる。
アプリケーションモジュール120は、CPUと、アプリケーションモジュール120のデバイス情報を記憶する記憶部、クロック機能を備える計時部、各種データを出力/受信するユーザインタフェース、各機能部に給電する電源の少なくともいずれかとを備える。アプリケーションモジュール120のデバイス情報には、アプリケーションモジュール120の供給業者の識別情報、シリアル番号、機種名、およびファンクショナルコードが含まれる。
クライアントデバイス100は、ARM準拠のCPU111と、TSLサポート機能を備えるネットワークインタフェース113とが搭載されているシステムオンチップ(SoC)を備えてもよい。
クライアントデバイス100は前述のデバイスに限定されるものではなく、クライアントデバイス100は、インターネット(HTTPS通信ネットワーク)を介して構成サーバ300および通信サーバ400と通信し、構成ファイルをダウンロードすることができれば、モバイルデバイス、ラップトップコンピュータ、可搬型端末であってもよい。
(デバイスセキュリティデータベース)
一以上の実施形態に係るデバイスセキュリティデータベース200は、デバイスIDをキーとして用いて、構成ファイルなどの情報に高速でアクセスすることが可能な文書データベースである。あるいは、デバイスセキュリティデータベース200は、SQL(Structured Query Language)データベースでもよい。文書データベースのほうがSQLデータベースよりも関連付けられた情報により高速にアクセスすることができる。関連付けられた情報に高速にアクセスすることができれば、デバイスセキュリティデータベース200に他のデータモデルを用いてもよい。
図4は、一以上の実施形態に係るデバイスセキュリティデータベース200に記憶されている情報を示す図である。
デバイスセキュリティデータベース200は、構成サーバ300から送信される情報を記憶する。詳細には、デバイスセキュリティデータベース200は、構成サーバ300から送られる、デバイスIDと、当該デバイスIDに対応する秘密鍵・公開鍵ペアとを記憶する。一以上の実施形態によれば、秘密鍵と公開鍵は、RSA秘密鍵とRSA公開鍵である。暗号化アルゴリズムはRSA暗号化に限定されるものではなく、DES(Data Encryption Standard)やAES(Advanced Encryption Standard)などの他のアルゴリズムを使用してもよい。
また、デバイスセキュリティデータベース200は、通信サーバ400から送信される情報も記憶する。例えば、デバイスセキュリティデータベース200は、セキュリティトークン、セキュリティトークンの作成日時または更新日時、およびセキュリティトークンの有効期間を、デバイスIDに関連づけて記憶する。一以上の実施形態によれば、セキュリティトークンはワンタイムパスワードである。
デバイスセキュリティデータベース200は、後述する通信サーバ400と同様の機能構成を備える。デバイスセキュリティデータベース200のプロセッサは、通信サーバ400のプロセッサ410と協働して、あるいはプロセッサ410の代わりに、所定の処理を実行してもよい。例えば、デバイスセキュリティデータベース200のプロセッサは、セキュリティトークンを発行すべきかどうかの判定および/またはセキュリティトークンが有効であるかどうかの判定を行ってもよい。これらの処理についは、通信サーバ400のプロセッサ410が実行する処理として後述する。
(構成サーバ)
図5は、一以上の実施形態に係る構成サーバ300のブロック図を示す。構成サーバ300は、プロセッサ310、メモリ320、計時部330、入出力インタフェース340、および通信モジュール350を備える。
構成サーバ300は、クライアントデバイス100からのアクセスを受け付ける前に、クライアントデバイス100のユーザに対し、認証情報の入力を要求してもよい。図6は、Basic認証が実行されるときの、クライアントデバイス100のインタフェースモジュール110のユーザインタフェースでのブラウザ表示例を示す。認証が成立した場合、構成サーバ300はクライアントデバイス100からのアクセスを受け付ける。
図7は、一以上の実施形態に係る構成サーバ300の機能を説明するための図を示す。
クライアントデバイスが構成サーバ300にアクセスすると、プロセッサ310は、そのデバイスIDが存在するかどうか、詳細にはデバイスIDが指定可能かどうかを判定する。例えば、キッティング部500がクライアントデバイス100のデバイスIDを指定し、その後クライアントデバイス100を構成サーバ300にアクセスさせた場合、プロセッサ310はデバイスIDが存在すると判定する。プロセッサ310は、デバイスIDが存在しないと判定した場合、デバイスIDを作成して、構成ファイルと共にクライアントデバイスに返信してよい。
プロセッサ310は、デバイスIDが存在すると判定した場合、デバイスIDをキーとして用いて、デバイスセキュリティデータベース200で構成ファイルを検索し、デバイスIDに対応する構成ファイルがデバイスセキュリティデータベース200に存在するかどうかを判定する。プロセッサ310は、構成ファイルが存在すると判定した場合、デバイスセキュリティデータベース200から構成ファイルを読み出してクライアントデバイス100に返信する。
プロセッサ310は、構成ファイルが存在しないと判定した場合、デバイスIDに対応する秘密鍵・公開鍵ペアを作成し、デバイスIDと公開鍵とに基づいて構成ファイルを作成し、秘密鍵・公開鍵ペアと構成ファイルとをデバイスIDに関連づけてデバイスセキュリティデータベース200に記憶する。次にプロセッサ310は作成した構成ファイルをクライアントデバイス100に返信する。
構成ファイルは、クライアントデバイス100にインストールされ、クライアントデバイス100を特定できるようにするものである。構成ファイルは、デバイスIDと対応する公開鍵とをJSONフォーマットで記述することで作成される。図8は、一以上の実施形態に係る構成ファイルの図を示す。構成ファイルはデバイスIDと公開鍵とから構成される簡易な構造を有する。このため、ライトウェイトデバイスであっても構成ファイルを記憶して、構成ファイルを用いて処理を実行することができる。
メモリ320は各種データを記憶するものであり、デバイスセキュリティデータベース200に転送するデータなどのデータを一時的に記憶するための作業空間となる。また、メモリ320は、サーバID、IPアドレス、入出力インタフェース340のソケットのポート番号も記憶する。
計時部330はクロック機能を備え、現在時刻を出力する。
入出力インタフェース340は、キーボードやマウス等の入力インタフェースと、ディスプレイ等の出力インタフェースとを備える。あるいは、入出力インタフェース340は、入力機能と出力機能とを兼ね備えるタッチスクリーンを備えてもよい。
通信モジュール350は、CPUとメモリとを備え、構成サーバ300を、ネットワークを介してデバイスセキュリティデータベース200と通信させると共に、インターネット(HTTPS通信ネットワーク)を介してクライアントデバイス100と通信させる。一以上の実施形態によれば、通信モジュール350は、ソケット通信を行うための1以上のソケットを備える。構成サーバ300は、接続要求を待機し、接続要求を受け付けて、ソケットを介してクライアントデバイス100からHTTPリクエストを受信する。
(通信サーバ)
図9は、一以上の実施形態に係る通信サーバ400のブロック図を示す。通信サーバ400は、プロセッサ410、メモリ420、計時部430、入出力インタフェース440、および通信モジュール450を備える。
図10は、一以上の実施形態に係る通信サーバの機能を説明するための図を示す。
クライアントデバイス100が通信サーバ400にアクセスすると、プロセッサ410は、ルート証明書やサーバIDなど、通信サーバ400が正しいサーバかどうかを判定するのに必要な情報をクライアントサーバ100に送信してよい。
プロセッサ410は、クライアントデバイス100から送信され、入出力インタフェース440のソケットで受信したHTTPリクエストを読み出す。
プロセッサ410は、クライアントデバイス100からセキュリティトークン発行要求を受信すると、HTTPリクエストからデバイスIDとバイナリデータ(暗号化されたデータ)とを抽出し、デバイスセキュリティデータベース200を参照して、(1)デバイスIDがデバイスセキュリティデータベース200に存在するか;(2)バイナリデータをデバイスIDに対応する秘密鍵で復号化可能か;ならびに次に(3)復号化されたテキストにデバイスIDが含まれているか、のそれぞれについて真偽を判定する。
上記がすべて「真」の場合、プロセッサ410は、デバイスセキュリティデータベース200からセキュリティトークンとセキュリティトークンの有効期間とを取得し、クライアントデバイス100に返信する。このため、通信サーバ400は、デバイスIDと公開鍵とから構成された構成ファイルを持っているクライアントデバイスのみからのアクセスを受け付けるようになる。また、プロセッサ410は、デバイスセキュリティデータベース200において、セキュリティトークン、セキュリティトークンの発行時刻、およびセキュリティトークンの有効期間を更新する。上記のいずれかが「真」ではない場合、プロセッサ410は、クライアントデバイス100にエラー応答(HTTP状態コード“500”など)を返信する。
セキュリティトークンの発行後、所定の時間が経過し、プロセッサ410がクライアントデバイス100からデータ送信要求を受信すると、プロセッサ410はHTTPリクエストからデバイスIDとセキュリティトークンとを抽出し、デバイスセキュリティデータベース200を参照して、(i)デバイスIDがデバイスセキュリティデータベース200に存在するか;(ii)HTTPリクエストから抽出したセキュリティトークンが、デバイスIDに対応し、検索で得られたセキュリティトークンに一致するか;ならびに(iii)実時間がセキュリティトークンの有効期限を過ぎていないか、のそれぞれについて真偽を判定する。
上記がすべて「真」の場合、プロセッサ410は、セキュリティトークンが有効であると判定し、データをメモリ420に記憶する、データをデバイスファイルデータベース600に転送する、あるいはこの両方を実行し、「有効」を示す応答(HTTP状態コード“200”など)をクライアントデバイス100に返信する。上記のいずれかが「真」ではない場合、プロセッサ410は、セキュリティトークンが無効であると判定し、クライアントデバイス100にエラー応答(HTTP状態コード“450”など)を返信する。
セキュリティトークンの発行後、所定の時間が経過し、プロセッサ410がクライアントデバイス100からコマンド送信要求を受信すると、プロセッサ410はHTTPリクエストからデバイスIDとセキュリティトークンとを抽出し、デバイスセキュリティデータベース200を参照して、上記、(i)〜(iii)のそれぞれについて真偽を順に判定する。
プロセッサ410は、上記がすべて「真」であると判定した場合、セキュリティトークンが有効であると判定し、コマンドIDに対応する処理を実行し、クライアントデバイス100に「有効」を示す応答(HTTP状態コード“200”など)を返信する。上記のいずれかが「真」ではない場合、プロセッサ410は、セキュリティトークンが無効であると判定し、クライアントデバイス100にエラー応答(HTTP状態コード“450”など)を返信する。
コマンドIDに対応する処理は、入出力インタフェース440を介して入力されるか、メモリ420にあらかじめ記憶されているか、この両方である。一以上の実施形態によれば、コマンドIDに対応する処理としては、アプリケーションモジュール120から取得したデータをバックエンドシステムCP2のデバイスファイルデータベース600に転送する、特定のファイルをダウンロードしてクライアントデバイス100に転送するために、バックエンドシステムCP2のファイル記憶部700からファイルをダウンロードする、などが挙げられる。
メモリ420は各種データを記憶するものであり、デバイスセキュリティデータベース200、デバイスファイルデータベース600、および/またはクライアントデバイス100に転送するデータなどのデータを一時的に記憶するための作業空間となる。メモリ420は、クライアントデバイス100から送信されたコマンドIDに対応する処理を記憶する。また、メモリ420は、サーバID、ルート証明書、IPアドレス、入出力インタフェース440のソケットのポート番号も記憶する。
入出力インタフェース440は、キーボードやマウス等の入力インタフェースと、ディスプレイ等の出力インタフェースとを備える。あるいは、入出力インタフェース340は、入力機能と出力機能とを兼ね備えるタッチスクリーンを備えてもよい。
通信モジュール450は、CPUとメモリとを備え、通信サーバ400を、ネットワークを介してデバイスセキュリティデータベース200、デバイスファイルデータベース600、およびファイル記憶部700と通信させると共に、インターネット(HTTPS通信ネットワーク)を介してクライアントデバイス100と通信させる。一以上の実施形態によれば、通信モジュール450は、ソケット通信を行うための1以上のソケットを備える。通信サーバ400は、接続要求を待機し、接続要求を受け付けて、ソケットを介してクライアントデバイス100からHTTPリクエストを受信する。
(キッティング部)
キッティング部500は、CD−ROMやUSB等の記録媒体に記憶され、クライアントデバイス100にインストールされているプログラムである。キッティング部500は、例えば、製造工場において、出荷前にクライアントデバイス100を使用可能な状態にするのに必要な設定を、クライアントデバイス100に自動的に実行させる。キッティング部500は、インターネット(HTTPS通信ネットワーク)を介して、クライアントデバイス100を構成サーバ300に自動的に接続し、構成サーバ300から、設定に必要なアプリケーションをクライアントデバイス100にインストールする等を行う。キッティング部500が省略されている場合、ユーザがクライアントデバイス100のユーザインタフェースを用いて設定を手動で行うことができる。
キッティング部500が、クライアントデバイス100を構成サーバ300とHTTPS上で通信させるので、クライアントデバイス100のユーザまたはオペレータは、コマンドラインツールおよび/またはスクリプト言語で記述したプログラムを用いて、構成サーバ300にアクセスすることができる。このため、キッティング部500は構成サーバ300と容易に協働することが可能となる。
[クライアントデバイス−構成サーバ間の通信]
図11は、一以上の実施形態に係る構成ファイル要求処理のフローチャートを示す。
クライアントデバイス100が構成ファイルをダウンロードするために構成サーバ300にアクセスする(S101)と、構成サーバ300はクライアントデバイス100のBasic認証を実行する。入力した情報に基づき認証が成立した場合、クライアントデバイス100は構成ファイル要求処理を実行する。認証が成立しなかった場合、クライアントデバイス100と構成サーバ300間の通信が切断される。
認証の成立後、構成サーバ300のプロセッサ310は、デバイスIDが存在するかどうかを判定する(S102)。プロセッサ310が、デバイスIDが存在しないと判定した場合(S102で“No”)、デバイスIDが作成され(S103)、デバイスセキュリティデータベース200に記憶される(S104)。プロセッサ310が、デバイスIDが存在すると判定した場合(S102で“Yes”)、プロセッサ310は、デバイスIDに対応する構成ファイルをデバイスセキュリティデータベース200で検索し(S105)、構成ファイルが存在するかどうかを判定する(S106)。構成ファイルが存在しない場合(S106で“No”)、プロセッサ310は、秘密鍵・公開鍵ペアと構成ファイルとを作成して(S107)、デバイスIDに対応する該秘密鍵・公開鍵ペアと構成ファイルとをデバイスセキュリティデータベース200に記憶する(S108)。次に、プロセッサ310はデバイスID(作成した場合)と構成ファイルとをクライアントデバイス100に返信する(S109)。クライアントデバイス100は、デバイスID(作成された場合)と構成ファイルとを記憶部112に記憶する(S110)。
構成ファイル要求は、クライアントデバイス100にインストールされているキッティング部500によって自動的に実行されても、あるいは、製造工場でクライアントデバイス100のユーザまたはオペレータによって手動で実行されてもよい。
[クライアントデバイス−通信サーバ間の通信]
一以上の実施形態において、セキュリティトークン発行要求、JSONデータ送信、およびコマンド送信を実行する固有プロトコルは、OSI階層モデルのアプリケーション層のHTTP上で実装される。
(セキュリティトークン発行要求)
図12は、一以上の実施形態に係るセキュリティトークン発行要求のフローチャートを示す。
クライアントデバイス100が通信サーバ400にアクセスすると(S201)、通信サーバ400のプロセッサ410はルート証明書やサーバIDなどの情報をクライアントデバイス100に返信する(S202)。クライアントデバイス100は、受信した情報に基づいて通信サーバ400が正しいサーバであるかどうかを判定する(S203)。クライアントデバイス100が、通信サーバ400が正しいサーバでないと判定した場合(S203で“No”)、クライアントデバイス100と通信サーバ400間の通信が切断される(S204)。クライアントデバイス100が、通信サーバ400が正しいサーバであると判定した場合(S203で“Yes”)、クライアントデバイス100はセキュリティトークン発行要求を実行する。
クライアントデバイス100が、デバイスIDとバイナリデータ(暗号化されたデータ)とが含まれるHTTPリクエストを通信サーバ400に送信すると(S205)、プロセッサ410は、このデバイスIDがデバイスセキュリティデータベース200に存在するか(S206);バイナリデータをデバイスIDに対応する秘密鍵で復号化可能か(S207);ならびに、復号化されたテキストにデバイスIDが含まれているか(S208)、について判定する。上記のいずれかが「真」ではない場合、(S206が“No”、S207が“No”、あるいはS208が“No”)、プロセッサ410は、クライアントデバイス100にHTTP状態コード“500”を返信する(S209)。S206〜S208がすべて「真」の場合(S206が“Yes”、S207が“Yes”、かつS208が“Yes”)、プロセッサ410は、セキュリティトークンとセキュリティトークンの有効期間とを発行し(S210)、セキュリティトークン、セキュリティトークンの作成日時、およびセキュリティトークンの有効期間をデバイスセキュリティデータベース200に記憶する(S211)。次に、プロセッサ410は、セキュリティトークンとセキュリティトークンの有効期間とをクライアントデバイス100に返信する(S212)。クライアントデバイス100は、参照時間とセキュリティトークンの有効期間とに基づいてセキュリティトークンの有効期限を計算し、セキュリティトークン、セキュリティトークンの有効期間、およびセキュリティトークンの有効期限を記憶する(S213)。
(データ送信)
図13は、一以上の実施形態に係るデータ送信処理のフローチャートを示す。
ステップS301〜S304は前述のステップS201〜S204と同じである。セキュリティトークンの発行後、所定の時間が経過していない場合には、ステップS301〜S304を省略することができる。
クライアントデバイス100がデバイスID、セキュリティトークン、およびデータが含まれるHTTPリクエストを通信サーバ400に送信すると(S305)、通信サーバ400のプロセッサ410は、このデバイスIDがデバイスセキュリティデータベース200に存在するか(S306);HTTPリクエストから抽出したセキュリティトークンが、デバイスIDに対応し、検索で得られたセキュリティトークンに一致するか(S307);ならびに実時間がセキュリティトークンの有効期限を過ぎていないか(S308)、について判定する。上記のいずれかが「真」ではない場合、(S306が“No”、S307が“No”、あるいはS308が“No”)、プロセッサ410は、クライアントデバイス100にHTTP状態コード“450”を返信する(S309)。S306〜S308がすべて「真」の場合(S306が“Yes”、S307が“Yes”、かつS308が“Yes”)、プロセッサ410は、データをデバイスファイルデータベース600に転送して(S310)、データをデバイスセキュリティデータベース600に記憶する(S311)。あるいは、プロセッサ410はデータをメモリ420に記憶してもよい。次にプロセッサ410はHTTP状態コード“200”を返信し(S312)、クライアントデバイス100がHTTP状態コード“200”を受信する(S313)。
(コマンド送信)
図14は、一以上の実施形態に係るコマンド送信処理のフローチャートを示す。
ステップS401〜S404は前述のステップS201〜S204と同じである。セキュリティトークンの発行後、所定の時間が経過していない場合には、ステップS401〜S404を省略することができる。
クライアントデバイス100が、デバイスID、セキュリティトークン、およびコマンドIDが含まれるHTTPリクエストを送信すると(S405)、通信サーバ400のプロセッサ410は、このデバイスIDがデバイスセキュリティデータベース200に存在するか(S406);HTTPリクエストから抽出したセキュリティトークンが、デバイスIDに対応し、検索で得られたセキュリティトークンに一致するか(S407);ならびに実時間がセキュリティトークンの有効期限を過ぎていないか、のそれぞれについて真偽を判定するか(S408)、について判定する。上記のいずれかが「真」ではない場合、(S406が“No”、S407が“No”、あるいはS408が“No”)、プロセッサ410は、クライアントデバイス100にHTTP状態コード“450”を返信する(S409)。S406〜S408がすべて「真」の場合(S406が“Yes”、S407が“Yes”、かつS408が“Yes”)、プロセッサ410は、HTTPリクエストのペイロードをデバイスファイルデータベース600に転送して(S410)、ペイロードをデバイスセキュリティデータベース600に記憶する(S411)。あるいは、プロセッサ410はペイロードをメモリ420に記憶してもよい。これと同時に、プロセッサ410は、クライアントデバイス100から受信したコマンドIDに対応する処理を実行する(ステップS412)。次にプロセッサ410はHTTP状態コード“200”を返信し(S412)、クライアントデバイス100がHTTP状態コード“200”を受信する(S413)。
コマンドIDに対応する処理が、ファイル記憶部700からのファイルのダウンロードである場合、プロセッサ410はファイル記憶部700からファイルを取得して、当該ファイルをクライアントデバイス100に送信する。この場合、プロセッサ410はHTTP状態コード“200”を返信し、クライアントデバイス100がHTTP状態コード“200”を受信する。ファイル記憶部700にファイルが存在しない場合、プロセッサ410はHTTP状態コード“404”を返信し、クライアントデバイス100がHTTP状態コード“404”を受信する。
前述のように、一以上の実施形態によれば、クライアントデバイス100は、HTTPS通信ネットワークにおいて、構成サーバ300および/または通信サーバ400を介して、クラウドプラットフォームCPとの間でデータを安全に送受信することができる。
一以上の実施形態によれば、クライアントデバイス100は、クラウドプラットフォームCPが提供するサービスによって認識および管理されている構成サーバ300にアクセスするだけでよい。構成サーバ300が提供する構成ファイルはデバイスIDと公開鍵とのみから構成されているため、クライアントデバイス100がライトウェイトデバイスであっても、クライアントデバイス100はクラウドサービスを利用することができる。一以上の実施形態によれば、十分な演算能力、十分なメモリ容量、および十分な記憶容量を備えるクライアントデバイスもクラウドサービスを利用することができる。このため、クラウドサービスを利用する1台以上のクライアントデバイス100を容易に展開することができる。
一以上の実施形態によれば、クライアントデバイス100が、セキュリティトークンの発行を通信サーバ400に要求したときに、通信サーバ400は、対応する秘密鍵でバイナリデータを復号化可能かどうかを判定することで、クライアントデバイス100が正しいデバイスであるかどうかを判定する。このため、通信サーバ400は、クラウドサービスが管理するクライアントデバイス100を容易かつ正確に確認することができると共に、不正なデバイスまたは未知のデバイスによるアクセスを阻止することができる。また、クライアントデバイス100が正しくないサーバにアクセスすることも阻止することができる。
セキュリティトークンの発行後は、通信サーバ400は、デバイスIDとセキュリティトークンとによりクライアントデバイス100を指定することができる。このため、クライアントデバイス100の台数が増えても、通信サーバ400は、クラウドサービスが管理するクライアントデバイス400を容易に指定することができる。また、通信サーバ400は、セキュリティトークンの有効期間および/または有効期限に基づいて、クライアントデバイス100のそれぞれの動作条件を認識することができる。
一以上の実施形態によれば、クライアントデバイス100は、HTTPS通信ネットワークを介して構成サーバ300および通信サーバ400と通信する。さらに、HTTP上で固有プロトコルが実装されクライアントデバイス100と通信サーバ400間で通信が行われるので、デバイスID等の情報を安全な接続を介して送信することができる。このため、クライアントデバイス100は、通信サーバ400経由で、デバイスファイルデータベース600およびデバイスファイルデータベース700との間でデータを安全に送受信することができる。
一以上の実施形態は、HTTPS通信ネットワークに限らず、通信経路が暗号化されていない他の通信ネットワーク上でも実施することができる。
図15は、HTTPS通信ネットワーク上で実行される処理と、通信経路が暗号化されていない他の通信ネットワーク上で実行される処理との比較表を示す。
一以上の実施形態では、HTTPS上で暗号化された接続を用いる場合、デバイスID、セキュリティトークン、およびデータ/コマンドが、暗号化されずに送信される。通信経路が暗号化されていない通信ネットワーク上では、ネットワーク上でのデバイスIDの改ざんあるいは盗難を阻止するために、デバイスIDが公開鍵で暗号化される(以下「暗号化されたキー」と呼ぶ)。デバイスIDの代わりに暗号化されたキーが構成ファイルに記載され、通信サーバ400がデバイスセキュリティデータベース200にアクセスするために使用される。通信経路が暗号化されていない通信ネットワーク上では、データ/コマンドの改ざんや盗難を防ぐにはセキュリティトークンのみでは不十分なことがある。このため、データ/コマンドが公開鍵で暗号化され、暗号化されたキーと共に通信サーバ400に送信される。通信サーバ400は、暗号化されたキーを用いて、対応する秘密鍵をデバイスセキュリティデータベース20で検索し、検索された秘密鍵で暗号化されたデータ/コマンドを復号化する。通信サーバ400が暗号化されたデータ/コマンドを復号できない場合、通信サーバ400はデータ/コマンドを改ざんデータあるいは不正データとして破棄し、処理を終了する。
一以上の実施形態に係るサービス提供システム1000は、専用のサービスを作成することなく、一般的な商用クラウド上のPaaS(Platform as a Service)として作成されたウェブサービスおよび/またはデータベース上のプロトコルを提供することにより実施することができる。したがって、本サービス提供システム1000は、通常のPCサーバ上にサービスを作成する場合に比べ、コスト、セキュリティ対策、およびスケーラビリティの面でより有利に実施することができる。
また、一以上の実施形態に係るサービス提供システム1000は、インターネットに常時接続されているコネクテッドカーを用いたシステム、および/または省電力無線センサを使用する遠隔監視システムにも利用することができる。また、一以上の実施形態に係るサービス提供システム1000は、工場の部品の管理および/または資源の監視にも利用することができる。
限定された数の実施形態に関して本開示を説明したが、本開示の利益を受ける当業者は、本開示の範囲を逸脱することなく他の各種の実施形態が可能であることを理解するであろう。したがって、本発明の範囲は添付の特許請求の範囲のみによって限定される。
100 クライアントデバイス
110 インタフェースモジュール
111 CPU
112 記憶部
113 ネットワークインタフェース
114 計時部
115 通信モジュール
120 アプリケーションモジュール
121,122 センサ
1000 システム提供サービス
200 デバイスセキュリティデータベース
300 構成サーバ
310 プロセッサ
320 メモリ
330 計時部
340 入出力インタフェース
350 通信モジュール
400 通信サーバ
410 プロセッサ
420 メモリ
430 計時部
440 入出力インタフェース
450 通信モジュール
500 キッティング部
600 デバイスファイルデータベース
700 ファイル記憶部
CP クラウドプラットフォーム
CP1 クラウドエッジ
CP2 バックエンドシステム

Claims (20)

  1. デバイス識別子と、前記デバイス識別子に対応する公開鍵および秘密鍵のペアとを記憶するセキュリティデータベースと、
    該セキュリティデータベースと通信する通信サーバと、を有するクラウドプラットフォームを備えるサービス提供システムであって、
    前記通信サーバは、
    クライアントデバイスと通信し、
    前記クライアントデバイスから、該クライアントデバイスのデバイス識別子と、公開鍵で暗号化されたデータとを含み、セキュリティトークンの発行を求める要求を受信し、
    前記セキュリティデータベースを参照することにより、前記暗号化されたデータが前記クライアントデバイスに対応する秘密鍵で復号化されたかを判定し、
    前記暗号化されたデータが前記秘密鍵で復号化された場合、前記セキュリティトークンを発行して前記クライアントデバイスに送信することを特徴とするサービス提供システム。
  2. 前記通信サーバは、前記クライアントデバイスの前記デバイス識別子をキーとして用いて、前記クライアントデバイスに対応する前記秘密鍵を前記セキュリティデータベースで検索する
    ことを特徴とする請求項1記載のサービス提供システム。
  3. 前記通信サーバはさらに、
    前記復号化されたデータに前記クライアントデバイスの前記デバイス識別子が含まれるかどうかを判定し、
    前記復号化されたデータに前記クライアントデバイスの前記デバイス識別子が含まれる場合、前記セキュリティトークンを発行して前記クライアントデバイスに送信する
    ことを特徴とする請求項1記載のサービス提供システム。
  4. 前記通信サーバは、前記セキュリティトークンの有効期間を発行し、前記セキュリティトークンと共に前記クライアントデバイスに送信する
    ことを特徴とする請求項1記載のサービス提供システム。
  5. 前記通信サーバは、前記セキュリティトークンと該セキュリティトークンの前記有効期間とを発行すると、前記セキュリティデータベースにおいて、前記セキュリティトークンと該セキュリティトークンの前記有効期間とを記憶または更新する
    ことを特徴とする請求項4記載のサービス提供システム。
  6. 前記クラウドプラットフォームは、前記セキュリティデータベースおよび前記クライアントデバイスと通信するクラウド構成サーバをさらに備え、
    前記セキュリティデータベースは、前記デバイス識別子と、該デバイス識別子に対応する公開鍵とから構成される構成ファイルを記憶し、
    前記クライアントデバイスからの要求に応え、前記クラウド構成サーバは、前記クライアントデバイスに対応する構成ファイルを前記セキュリティデータベースから取得し、該構成ファイルを前記クライアントデバイスに送信する
    ことを特徴とする請求項1記載のサービス提供システム。
  7. 前記クライアントデバイスに対応する前記構成ファイルが前記セキュリティデータベースに存在しない場合、前記クラウド構成サーバは、前記クライアントデバイスに対応する公開鍵および秘密鍵のペアと、前記クライアントデバイスの前記デバイス識別子と作成した前記公開鍵とから構成される前記構成ファイルを作成し、作成した該構成ファイルを前記クライアントデバイスに送信する
    ことを特徴とする請求項6記載のサービス提供システム。
  8. 前記クラウド構成サーバは、前記公開鍵および秘密鍵のペアと前記構成ファイルとを作成すると、前記セキュリティデータベースにおいて前記公開鍵および秘密鍵のペアと前記構成ファイルとを記憶または更新する
    ことを特徴とする請求項7記載のサービス提供システム。
  9. 前記通信サーバは、HTTPS通信ネットワークを介して前記クライアントデバイスと通信する
    ことを特徴とする請求項1記載のサービス提供システム。
  10. 前記クラウド構成サーバは、HTTPS通信ネットワークを介して前記クライアントデバイスと通信する
    ことを特徴とする請求項6記載のサービス提供システム。
  11. デバイス識別子と、該デバイス識別子に対応する公開鍵および秘密鍵のペアとを記憶するセキュリティデータベースと、該セキュリティデータベースと通信する通信サーバと、を有するクラウドプラットフォームを備えるサービス提供システムを使用してクラウドサービスを提供する方法であって、
    前記方法は、
    前記通信サーバが、クライアントデバイスから、該クライアントデバイスのデバイス識別子と、公開鍵で暗号化されたデータとを含み、セキュリティトークンの発行を求める要求を受信するステップと、
    前記通信サーバが、前記セキュリティデータベースを参照することにより、前記暗号化されたデータが前記クライアントデバイスに対応する秘密鍵で復号化されたかを判定するステップと、
    前記暗号化されたデータが前記秘密鍵で復号化された場合、前記通信サーバが、前記セキュリティトークンを発行して前記クライアントデバイスに送信するステップと、を含むことを特徴とする方法。
  12. 前記判定するステップにおいて、前記クライアントデバイスの前記デバイス識別子をキーとして用いて、前記クライアントデバイスに対応する前記秘密鍵を前記セキュリティデータベースで検索する
    ことを特徴とする請求項11記載の方法。
  13. 前記判定するステップにおいて、前記復号化されたデータに前記クライアントデバイスの前記デバイス識別子が含まれるかどうかを判定し、
    前記復号化されたデータに前記クライアントデバイスの前記デバイス識別子が含まれる場合、前記通信サーバが、前記セキュリティトークンの発行および送信を実行する
    ことを特徴とする請求項11記載の方法。
  14. 前記発行および送信するステップにおいて、前記セキュリティトークンの有効期間を発行し、前記セキュリティトークンと共に前記クライアントデバイスに送信する
    ことを特徴とする請求項11記載の方法。
  15. 前記セキュリティトークンと該セキュリティトークンの前記有効期間とを発行すると、前記通信サーバが、前記セキュリティデータベースにおいて、前記セキュリティトークンと該セキュリティトークンの前記有効期間とを記憶または更新するステップをさらに含む
    ことを特徴とする請求項14記載の方法。
  16. 前記クラウドプラットフォームは、前記セキュリティデータベースおよび前記クライアントデバイスと通信するクラウド構成サーバをさらに備え、
    前記セキュリティデータベースは、前記デバイス識別子と、該デバイス識別子に対応する公開鍵とから構成される構成ファイルをさらに記憶し、
    前記方法はさらに、
    前記クライアントデバイスからの要求に応え、前記クラウド構成サーバが、前記クライアントデバイスに対応する前記構成ファイルを前記セキュリティデータベースから取得し、該構成ファイルを前記クライアントデバイスに送信するステップを含む
    ことを特徴とする請求項11記載の方法。
  17. 前記クライアントデバイスに対応する前記構成ファイルが前記セキュリティデータベースに存在しない場合、前記クラウド構成サーバが、前記クライアントデバイスに対応する公開鍵および秘密鍵のペアと、前記クライアントデバイスの前記デバイス識別子と作成した前記公開鍵とから構成される前記構成ファイルを作成し、作成した該構成ファイルを前記クライアントデバイスに送信するステップをさらに含む
    ことを特徴とする請求項16記載の方法。
  18. 前記クラウド構成サーバが、前記公開鍵および秘密鍵のペアと前記構成ファイルとを作成すると、前記セキュリティデータベースにおいて前記公開鍵および秘密鍵のペアと前記構成ファイルとを記憶または更新するステップをさらに含む
    ことを特徴とする請求項17記載の方法。
  19. 前記通信サーバが、HTTPS通信ネットワークを介して前記クライアントデバイスと通信する
    ことを特徴とする請求項11記載の方法。
  20. 前記クラウド構成サーバが、HTTPS通信ネットワークを介して前記クライアントデバイスと通信する
    ことを特徴とする請求項16記載の方法。
JP2019165739A 2018-09-28 2019-09-11 クラウドサービスを提供するためのシステムおよび方法 Pending JP2020057378A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US16/146,667 US20200106612A1 (en) 2018-09-28 2018-09-28 System and method for providing cloud service
US16/146,667 2018-09-28

Publications (1)

Publication Number Publication Date
JP2020057378A true JP2020057378A (ja) 2020-04-09

Family

ID=68104391

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2019165739A Pending JP2020057378A (ja) 2018-09-28 2019-09-11 クラウドサービスを提供するためのシステムおよび方法

Country Status (4)

Country Link
US (1) US20200106612A1 (ja)
EP (1) EP3629546B1 (ja)
JP (1) JP2020057378A (ja)
CN (1) CN110971657B (ja)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
HK1254273A2 (zh) * 2018-12-03 2019-07-12 Foris Ltd 安全的分佈式密鑰管理系統
US11030293B2 (en) * 2018-12-31 2021-06-08 Beijing Didi Infinity Technology And Development Co., Ltd. Method and system for configurable device fingerprinting
US11190514B2 (en) * 2019-06-17 2021-11-30 Microsoft Technology Licensing, Llc Client-server security enhancement using information accessed from access tokens
US11134117B1 (en) * 2020-06-30 2021-09-28 Amazon Technologies, Inc. Network request intercepting framework for compliance monitoring
CN115277053B (zh) * 2022-06-08 2024-04-23 深圳蜂鸟创新科技服务有限公司 基于SaaS和Pass平台的数据处理方法及系统

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130145140A1 (en) * 2011-12-01 2013-06-06 Htc Corporation System and method for temporary secure boot of an electronic device
WO2017141618A1 (ja) * 2016-02-18 2017-08-24 キヤノン株式会社 情報処理システム、情報処理装置、サーバ装置、情報処理システムの制御方法、及びプログラム

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101202753B (zh) * 2007-11-29 2010-11-17 中国电信股份有限公司 一种客户端访问插件应用系统的方法和装置
US8478996B2 (en) * 2009-12-21 2013-07-02 International Business Machines Corporation Secure Kerberized access of encrypted file system
US8977857B1 (en) * 2012-02-10 2015-03-10 Google Inc. System and method for granting access to protected information on a remote server
US9154470B2 (en) * 2012-05-25 2015-10-06 Canon U.S.A., Inc. System and method for processing transactions
AU2013101046A4 (en) * 2013-05-23 2013-09-19 Nowww.Us Pty Ltd A process for Encrypted Login to a Secure Computer Network, for the Creation of a Session of Encrypted Communications Between Computers and a Device Including a Mobile Phone Logged into a Network, for the Persistence of Encrypted Communications between Communication Devices, and for the Termination of Communications.
US9202076B1 (en) * 2013-07-26 2015-12-01 Symantec Corporation Systems and methods for sharing data stored on secure third-party storage platforms
US9538311B2 (en) * 2014-02-04 2017-01-03 Texas Instruments Incorporated Auto-provisioning for internet-of-things devices
US11132694B2 (en) * 2014-12-31 2021-09-28 Paypal, Inc. Authentication of mobile device for secure transaction
CN105471833B (zh) * 2015-05-14 2019-04-16 瑞数信息技术(上海)有限公司 一种安全通讯方法和装置
US10171462B2 (en) * 2015-12-14 2019-01-01 Afero, Inc. System and method for secure internet of things (IOT) device provisioning
CN106023458B (zh) * 2016-05-13 2019-08-13 智车优行科技(北京)有限公司 车辆控制方法、装置、终端、车辆、服务器及系统

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130145140A1 (en) * 2011-12-01 2013-06-06 Htc Corporation System and method for temporary secure boot of an electronic device
WO2017141618A1 (ja) * 2016-02-18 2017-08-24 キヤノン株式会社 情報処理システム、情報処理装置、サーバ装置、情報処理システムの制御方法、及びプログラム

Also Published As

Publication number Publication date
US20200106612A1 (en) 2020-04-02
EP3629546A1 (en) 2020-04-01
EP3629546B1 (en) 2021-06-09
CN110971657B (zh) 2022-06-03
CN110971657A (zh) 2020-04-07

Similar Documents

Publication Publication Date Title
JP2020057378A (ja) クラウドサービスを提供するためのシステムおよび方法
US11128612B1 (en) Zero-touch provisioning of IoT devices with multi factor authentication
US9762392B2 (en) System and method for trusted provisioning and authentication for networked devices in cloud-based IoT/M2M platforms
JP2018517319A (ja) 自動的無線ネットワーク認証のためのシステム及び方法
US8548916B2 (en) Managing passwords used when detecting information on configuration items disposed on a network
JP6600156B2 (ja) 動的な提示およびデータの構成を使用するセキュリティ保護されたモバイル共同アプリケーションを構築するためのプラットフォーム
EP3866411B1 (en) Distribution system for a signal communication system
JP7055200B2 (ja) ゲートウェイ管理コンソールにアクセスするためのコンピュータ処理方法、装置、システム、およびプログラム
TWI536787B (zh) 計算資源之安全地理位置
EP3811639A1 (en) Automated iot device configuration using user profile
US9100244B2 (en) Registration method and registration apparatus
JP2021502735A (ja) ゲートウェイ管理コンソールにアクセスする方法、システム、およびプログラム
US20190349348A1 (en) Registry apparatus, agent device, application providing apparatus and corresponding methods
JP2015138336A (ja) 電子データの管理方法、そのためのプログラム及び、プログラムの記録媒体
JP4611676B2 (ja) 通信装置、通信システム、通信方法及びプログラム
JP6654206B2 (ja) 計測システム
US20190082001A1 (en) Information processing apparatus, information processing method, and information processing system
JP6750260B2 (ja) 情報処理装置およびエージェントシステム
US11444771B2 (en) Leveraging a trusted party third-party HSM and database to securely share a key
US20220269770A1 (en) Information processing system, server apparatus, information processing method, and computer program product
TW202145157A (zh) 抄表系統、伺服器及資料收集程式
JP5721776B2 (ja) 制御システム、制御方法および制御装置
CN114584336A (zh) 用于将测试和测量仪器安全连接到网络服务的系统和方法
KR20200000047A (ko) 사물인터넷 장치의 등록 서비스 제공 시스템 및 방법
JP2019047429A (ja) 情報処理装置、情報処理方法、サーバ、およびコンピュータプログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20220713

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20230328

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20230329

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20230529

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20230822