JP2019511141A - System and method for automatic wireless network authentication in Internet of Things (IoT) system - Google Patents

System and method for automatic wireless network authentication in Internet of Things (IoT) system Download PDF

Info

Publication number
JP2019511141A
JP2019511141A JP2018535040A JP2018535040A JP2019511141A JP 2019511141 A JP2019511141 A JP 2019511141A JP 2018535040 A JP2018535040 A JP 2018535040A JP 2018535040 A JP2018535040 A JP 2018535040A JP 2019511141 A JP2019511141 A JP 2019511141A
Authority
JP
Japan
Prior art keywords
iot
hub
service
key
extender
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.)
Granted
Application number
JP2018535040A
Other languages
Japanese (ja)
Other versions
JP7075345B2 (en
JP2019511141A5 (en
Inventor
クリフ リウ
クリフ リウ
ロビー ポインター
ロビー ポインター
ケリー クイン
ケリー クイン
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.)
Afero Inc
Original Assignee
Afero Inc
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 Afero Inc filed Critical Afero Inc
Publication of JP2019511141A publication Critical patent/JP2019511141A/en
Publication of JP2019511141A5 publication Critical patent/JP2019511141A5/ja
Application granted granted Critical
Publication of JP7075345B2 publication Critical patent/JP7075345B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/02Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
    • 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
    • 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
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/562Brokering proxy services
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W12/00Security arrangements; Authentication; Protecting privacy or anonymity
    • H04W12/06Authentication
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/02Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
    • H04L63/0227Filtering policies
    • H04L63/0236Filtering by address, protocol, port number or service, e.g. IP-address or URL
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W12/00Security arrangements; Authentication; Protecting privacy or anonymity
    • H04W12/60Context-dependent security
    • H04W12/69Identity-dependent
    • H04W12/71Hardware identity
    • 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]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W48/00Access restriction; Network selection; Access point selection
    • H04W48/02Access restriction performed under specific conditions
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W84/00Network topologies
    • H04W84/02Hierarchically pre-organised networks, e.g. paging networks, cellular networks, WLAN [Wireless Local Area Network] or WLL [Wireless Local Loop]
    • H04W84/04Large scale networks; Deep hierarchical networks
    • H04W84/042Public Land Mobile systems, e.g. cellular systems
    • H04W84/047Public Land Mobile systems, e.g. cellular systems using dedicated repeater stations

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Medical Informatics (AREA)
  • General Health & Medical Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Telephonic Communication Services (AREA)
  • Mobile Radio Communication Systems (AREA)
  • Information Transfer Between Computers (AREA)
  • Selective Calling Equipment (AREA)

Abstract

システム、装置、及び方法は、安全なIoT無線ネットワーク構成について記載されている。例えば、モノのインターネット(IoT)ハブの一実施形態は、1つ以上のIoTデバイス及び/又はIoTエクステンダハブとのローカル無線接続を確立するローカル無線通信インタフェースと、IoTデバイス及び/又はIoTエクステンダハブの代わりにインターネットを介してネットワーク接続を確立するネットワークルータと、パスフレーズ及び非表示サービスセット識別子(SSID)を用いて予め構成された認証モジュールであって、この認証モジュールは、IoTデバイス及び/又はIoTエクステンダハブから接続要求を受信し、IoTデバイス及び/又はIoTエクステンダハブが予め構成されたパスフレーズ及び非表示SSIDを使用するとき、接続要求を認める認証モジュールと、既知のホスト名で指定されたIoTサービスのサーバ宛ての接続要求以外のすべての入/出接続要求をブロックするIoTハブのファイアウォールと、を含む。Systems, devices, and methods are described for secure IoT wireless network configurations. For example, one embodiment of an Internet of Things (IoT) hub may be a local wireless communication interface that establishes a local wireless connection with one or more IoT devices and / or IoT extender hubs, an IoT device and / or an IoT extender hub Instead, a network router that establishes a network connection via the Internet, and an authentication module that is preconfigured using a passphrase and a hidden service set identifier (SSID), which is an IoT device and / or an IoT device. When the IoT device and / or IoT extender hub receives a connection request from the extender hub and the IoT device and / or IoT extender hub use a preconfigured pass phrase and hidden SSID, an authentication module that accepts the connection request and an Io specified by a known host name To block all incoming / outgoing request other than the connection request of the services of the server destined includes a firewall of IoT hub, the.

Description

本発明は、概して、コンピュータシステムの分野に関する。より具体的には、本発明は、IoTシステムにおける自動的無線ネットワーク認証のためのシステム及び方法に関する。   The present invention relates generally to the field of computer systems. More specifically, the present invention relates to systems and methods for automatic wireless network authentication in an IoT system.

「モノのインターネット」は、インターネットインフラストラクチャ内に、一意的に識別可能に組み込まれたデバイスの相互接続を指す。最終的に、IoTは、事実上あらゆるタイプの物理的なモノが、それ自体若しくはその周囲についての情報を提供し得、及び/又はインターネットをわたってクライアントデバイスを介して遠隔制御され得る、広範囲の新しいタイプのアプリケーションをもたらすことが期待される。   "Internet of Things" refers to the interconnection of devices that are uniquely identifiable within the Internet infrastructure. Finally, IoT has a broad spectrum that virtually any type of physical thing can provide information about itself or its surroundings and / or can be remotely controlled via a client device across the Internet It is expected to bring new types of applications.

ユーザが、WiFiに対応したIoTデバイスなどの新しいWiFi使用可能なデバイスを手に入れたとき、この新しいデバイスとユーザのホームネットワークの間で登録プロセスが実行される必要がある。このプロセスは、ユーザがWiFi資格情報を覚えていない場合、又はデバイスがWiFiカバレッジエリアの外にある場合、厄介であり得る。更に、デバイスがWiFiネットワークのカバレッジ縁部にある場合、低カバレッジ状態により登録プロセスが損なわれるため、登録は失敗し、その結果アクセスポイントは新しいデバイスの登録を拒絶することになる。自宅やビジネス内部に複数のWiFiネットワークを有するユーザにとって、問題はより複雑である。このような状況では、各ネットワークは、それ自体の登録プロセスを必要とすることになる。   When a user gets a new WiFi enabled device, such as a WiFi enabled IoT device, a registration process needs to be performed between the new device and the user's home network. This process can be cumbersome if the user does not remember WiFi credentials, or if the device is outside the WiFi coverage area. Furthermore, if the device is at the coverage edge of the WiFi network, the registration process will fail because the low coverage condition will impair the registration process, which will result in the access point rejecting the registration of the new device. The problem is more complicated for users who have multiple WiFi networks at home or business. In such a situation, each network will need its own registration process.

最終的に、ユーザは、プライベートネットワークをホストする自宅又はビジネス内部にいなくては、新しいデバイスの登録を確立することができない。それ故に、相手先ブランド製造会社(OEM)は、初期状態でユーザのWiFiネットワークに接続する準備ができたデバイスをユーザに送ることができない。   Finally, the user can not establish registration of a new device without being at home or inside a business hosting a private network. Hence, an original equipment manufacturer (OEM) can not send the user a device that is initially ready to connect to the user's WiFi network.

本発明のより良好な理解は、以下の図面と併せた以下の詳細な説明から得ることができる。   A better understanding of the present invention can be obtained from the following detailed description in conjunction with the following drawings.

IoTシステムアーキテクチャの異なる実施形態を例示する。7 illustrates different embodiments of the IoT system architecture. IoTシステムアーキテクチャの異なる実施形態を例示する。7 illustrates different embodiments of the IoT system architecture. 本発明の一実施形態によるIoTデバイスを例示する。1 illustrates an IoT device according to an embodiment of the present invention. 本発明の一実施形態によるIoTハブを例示する。1 illustrates an IoT hub according to an embodiment of the present invention. IoTデバイスからのデータを制御及び収集し、通知を生成するための本発明の実施形態を例示する。Fig. 6 illustrates an embodiment of the invention for controlling and collecting data from IoT devices and generating notifications. IoTデバイスからのデータを制御及び収集し、通知を生成するための本発明の実施形態を例示する。Fig. 6 illustrates an embodiment of the invention for controlling and collecting data from IoT devices and generating notifications. IoTデバイスからのデータを収集し、IoTハブ及び/又はIoTサービスからの通知を生成するための本発明の実施形態を例示する。FIG. 5 illustrates an embodiment of the present invention for collecting data from IoT devices and generating notifications from IoT hubs and / or IoT services. 暗号化及びデジタル署名などの改善されたセキュリティ技術を実装する本発明の実施形態を例示する。8 illustrates an embodiment of the invention implementing improved security techniques such as encryption and digital signatures. IoTデバイス上に鍵を記憶するために加入者識別モジュール(subscriber identity module)(SIM)が使用されるアーキテクチャの一実施形態を例示する。1 illustrates one embodiment of an architecture in which a subscriber identity module (SIM) is used to store keys on an IoT device. バーコード又はQRコード(登録商標)を使用してIoTデバイスが登録される一実施形態を示す。7 illustrates an embodiment in which an IoT device is registered using barcode or QR code (registered trademark). バーコード又はQRコード(登録商標)を使用してペアリングが実行される一実施形態を例示する。8 illustrates one embodiment in which pairing is performed using barcodes or QR codes (registered trademark). IoTハブを使用してSIMをプログラミングするための方法の一実施形態を例示する。7 illustrates one embodiment of a method for programming a SIM using an IoT hub. IoTデバイスをIoTハブ及びIoTサービスに登録するための方法の一実施形態を例示する。7 illustrates one embodiment of a method for registering an IoT device with an IoT hub and an IoT service. IoTデバイスに送信されるデータを暗号化するための方法の一実施形態を例示する。7 illustrates one embodiment of a method for encrypting data sent to an IoT device. ネットワーク資格情報を収集及び記憶するためのアーキテクチャの一実施形態を例示する。1 illustrates one embodiment of an architecture for collecting and storing network credential information. ユーザを無線アクセスポイントに登録するためのアーキテクチャの一実施形態を例示する。1 illustrates one embodiment of an architecture for registering a user with a wireless access point. ネットワーク資格情報を収集及び記憶するための方法の一実施形態を例示する。1 illustrates one embodiment of a method for collecting and storing network credential information. 記憶された資格情報を使用して新しいデバイスを登録するための方法の一実施形態を例示する。5 illustrates one embodiment of a method for registering a new device using stored credentials. IoTサービスとIoTデバイスとの間でデータを暗号化するための本発明の異なる実施形態を例示する。5 illustrates different embodiments of the present invention for encrypting data between an IoT service and an IoT device. IoTサービスとIoTデバイスとの間でデータを暗号化するための本発明の異なる実施形態を例示する。5 illustrates different embodiments of the present invention for encrypting data between an IoT service and an IoT device. 安全な鍵交換を実行し、共通シークレットを生成し、シークレットを使用してキーストリームを生成するための本発明の実施形態を例示する。Fig. 5 illustrates an embodiment of the invention for performing secure key exchange, generating a common secret, and generating a key stream using the secret. 本発明の一実施形態によるパケット構造を例示する。Fig. 6 illustrates a packet structure according to an embodiment of the present invention. IoTデバイスと正式にペアリングすることなくIoTデバイスとの間でデータを読み書きするための一実施形態に用いられる技術を例示する。8 illustrates a technique used in one embodiment to read and write data to and from an IoT device without pairing with the IoT device formally. 本発明の一実施形態で用いられるコマンドパケットの例示的なセットを例示する。FIG. 7 illustrates an exemplary set of command packets used in one embodiment of the present invention. コマンドパケットを使用したトランザクションの例示的なシーケンスを例示する。7 illustrates an exemplary sequence of transactions using command packets. 本発明の一実施形態による方法を例示する。5 illustrates a method according to an embodiment of the present invention. 本発明の一実施形態による安全なペアリングのための方法を例示する。6 illustrates a method for secure pairing according to an embodiment of the present invention. 本発明の一実施形態による安全なペアリングのための方法を例示する。6 illustrates a method for secure pairing according to an embodiment of the present invention. 本発明の一実施形態による安全なペアリングのための方法を例示する。6 illustrates a method for secure pairing according to an embodiment of the present invention. WiFiセキュリティデータを用いてIoTハブを構成するためのシステムの一実施形態を例示する。1 illustrates one embodiment of a system for configuring an IoT hub using WiFi security data. 本発明の一実施形態で用いられるシステムアーキテクチャを例示する。1 illustrates a system architecture used in one embodiment of the present invention. 本発明の一実施形態による方法を例示する。5 illustrates a method according to an embodiment of the present invention. 認証ロジック及びファイアウォールを有するWiFiルータを備えるマスターIoTハブの一実施形態を例示する。1 illustrates one embodiment of a master IoT hub comprising a WiFi router with authentication logic and a firewall. 本発明の一実施形態による方法を例示する。5 illustrates a method according to an embodiment of the present invention.

以下の説明では、説明を目的として、以下に記載される本発明の実施形態の完全な理解を提供するために、多数の特定の詳細が示される。しかしながら、本発明の実施形態がこれらの特定の詳細のうちのいくつかを用いずに実施され得ることは、当業者には明らかである。他の例では、本発明の実施形態の根本的な原理を不明瞭にすることを避けるために、周知の構造及びデバイスをブロック図の形態で示す。   In the following description, for the purposes of explanation, numerous specific details are set forth in order to provide a thorough understanding of the embodiments of the present invention described below. However, it will be apparent to those skilled in the art that embodiments of the present invention may be practiced without some of these specific details. In other instances, well-known structures and devices are shown in block diagram form in order to avoid obscuring the underlying principles of embodiments of the present invention.

本発明の一実施形態は、新しいIoTデバイス及びアプリケーションを設計及び構築するために開発者によって利用され得るモノのインターネット(IoT)プラットフォームを含む。具体的には、一実施形態は、既定のネットワーキングプロトコルスタックを含むIoTデバイス、及びIoTデバイスがインターネットに連結されるIoTハブ用の基本ハードウェア/ソフトウェアプラットフォームを含む。加えて、一実施形態は、IoTサービスを含み、これを通じてIoTハブ及び接続されたIoTデバイスが、以下に説明するようにアクセスされ、管理され得る。加えて、IoTプラットフォームの一実施形態は、IoTサービス、ハブ、及び接続されたデバイスにアクセスし、それらを構成する、IoTアプリケーション又はウェブアプリケーション(例えば、クライアントデバイス上で実行される)を含む。既存のオンライン小売業者及び他のウェブサイトオペレータは、本明細書に記載されたIoTプラットフォームを利用して、既存のユーザベースに独自のIoT機能を容易に提供することができる。   One embodiment of the present invention includes the Internet of Things (IoT) platform that can be utilized by developers to design and build new IoT devices and applications. Specifically, one embodiment includes an IoT device including a predetermined networking protocol stack, and a basic hardware / software platform for an IoT hub where the IoT device is connected to the Internet. In addition, one embodiment includes IoT services through which the IoT hub and connected IoT devices may be accessed and managed as described below. In addition, one embodiment of the IoT platform includes an IoT application or web application (eg, running on a client device) that accesses and configures IoT services, hubs, and connected devices. Existing online retailers and other website operators can easily provide their own IoT functionality to their existing user base using the IoT platform described herein.

図1Aは、本発明の実施形態を実装することができるアーキテクチャプラットフォームの概要を例示する。具体的には、図示の実施形態は、それ自体インターネット220を介してIoTサービス120に通信可能に連結されている中央IoTハブ110に、ローカル通信チャネル130を介して通信可能に連結された複数のIoTデバイス101〜105を含む。IoTデバイス101〜105のそれぞれは、ローカル通信チャネル130のそれぞれを有効にするために、IoTハブ110と最初にペアリングすることができる(例えば、後述するペアリング技術を使用して)。一実施形態では、IoTサービス120は、各ユーザのIoTデバイスから収集されたユーザアカウント情報及びデータを維持するためのエンドユーザデータベース122を含む。例えば、IoTデバイスがセンサ(例えば、温度センサ、加速度計、熱センサ、動作検出器など)を含む場合、データベース122は、IoTデバイス101〜105により収集されるデータを記憶するように継続的に更新され得る。次いで、データベース122内に記憶されたデータは、ユーザデバイス135上にインストールされたIoTアプリケーション又はブラウザを介して(又はデスクトップ若しくは他のクライアントコンピュータシステムを介して)エンドユーザに、かつウェブクライアント(例えば、IoTサービス120に加入しているウェブサイト130など)に、アクセス可能にされてもよい。   FIG. 1A illustrates an overview of an architectural platform on which embodiments of the present invention can be implemented. Specifically, the illustrated embodiment includes a plurality of communicatively coupled via a local communication channel 130 to a central IoT hub 110, which is itself communicatively coupled to the IoT service 120 via the Internet 220. The IoT devices 101 to 105 are included. Each of the IoT devices 101-105 can be initially paired with the IoT hub 110 to enable each of the local communication channels 130 (e.g., using pairing techniques described below). In one embodiment, the IoT service 120 includes an end user database 122 for maintaining user account information and data collected from each user's IoT device. For example, if the IoT device includes sensors (eg, temperature sensors, accelerometers, heat sensors, motion detectors, etc.), the database 122 is continually updated to store data collected by the IoT devices 101-105 It can be done. The data stored in database 122 may then be delivered to the end user via an IoT application or browser installed on user device 135 (or via a desktop or other client computer system), and to a web client (eg, The website 130 that subscribes to the IoT service 120 may be made accessible.

IoTデバイス101〜105には、それ自体及びその周辺に関する情報を収集し、収集された情報を、IoTハブ110を介してIoTサービス120、ユーザデバイス135、及び/又は外部ウェブサイト130に提供するための様々なタイプのセンサが備わっていてもよい。IoTデバイス101〜105のうちのいくつかは、IoTハブ110を介して送信される制御コマンドに応答して、指定された機能を実行することができる。IoTデバイス101〜105によって収集される情報の様々な具体例及び制御コマンドが以下に提供される。以下に説明する一実施形態では、IoTデバイス101は、ユーザ選択を記録し、ユーザ選択をIoTサービス120及び/又はウェブサイトに送信するように設計されたユーザ入力デバイスである。   The IoT devices 101 to 105 collect information about themselves and their surroundings, and provide the collected information to the IoT service 120, the user device 135, and / or the external website 130 through the IoT hub 110. And various types of sensors may be provided. Some of the IoT devices 101-105 can perform designated functions in response to control commands sent via the IoT hub 110. Various examples and control commands of information collected by the IoT devices 101-105 are provided below. In one embodiment described below, the IoT device 101 is a user input device designed to record user preferences and transmit user preferences to the IoT service 120 and / or a website.

一実施形態では、IoTハブ110は、4G(例えば、モバイルWiMAX、LTE)又は5Gセルラーデータサービスなどのセルラーサービス115を介してインターネット220への接続を確立するセルラー無線を含む。代替的に、又は加えて、IoTハブ110は、WiFiアクセスポイント又はルータ116を介してWiFi接続を確立するためのWiFi無線を含むことができ、これは、IoTハブ110をインターネットに(例えば、エンドユーザにインターネットサービスを提供するインターネットサービスプロバイダを介して)連結する。当然のことながら、本発明の基本的な原理は、特定のタイプの通信チャネル又はプロトコルに限定されないことに留意すべきである。   In one embodiment, the IoT hub 110 includes a cellular radio that establishes a connection to the Internet 220 via a cellular service 115 such as 4G (eg, mobile WiMAX, LTE) or 5G cellular data service. Alternatively, or in addition, the IoT hub 110 can include a WiFi radio to establish a WiFi connection via a WiFi access point or router 116, which connects the IoT hub 110 to the Internet (e.g. Connect through Internet service providers that provide Internet services to users. It should be appreciated that the basic principles of the present invention are not limited to any particular type of communication channel or protocol.

一実施形態では、IoTデバイス101〜105は、電池電力で長期間(例えば、数年)動作することができる超低電力デバイスである。電力を節約するために、ローカル通信チャネル130は、Bluetooth(登録商標) Low Energy(LE)などの低電力無線通信技術を使用して実装することができる。この実施形態では、IoTデバイス101〜105及びIoTハブ110のそれぞれには、Bluetooth LE無線及びプロトコルスタックが備わっている。   In one embodiment, the IoT devices 101-105 are ultra low power devices that can operate for long periods of time (eg, several years) on battery power. To conserve power, the local communication channel 130 can be implemented using low power wireless communication technologies such as Bluetooth® Low Energy (LE). In this embodiment, each of the IoT devices 101-105 and the IoT hub 110 is equipped with a Bluetooth LE radio and a protocol stack.

上述したように、一実施形態では、IoTプラットフォームは、ユーザが、接続されたIoTデバイス101〜105、IoTハブ110、及び/又はIoTサービス120にアクセスし、それらを構成することを可能にする、ユーザデバイス135上で実行されるIoTアプリケーション又はウェブアプリケーションを含む。一実施形態では、アプリケーション又はウェブアプリケーションは、そのユーザベースにIoT機能を提供するように、ウェブサイト130のオペレータによって設計されてもよい。例示したように、ウェブサイトは、各ユーザに関連するアカウント記録を含むユーザデータベース131を維持することができる。   As mentioned above, in one embodiment, the IoT platform enables users to access and configure the connected IoT devices 101-105, the IoT hub 110, and / or the IoT service 120, It includes an IoT application or web application executed on the user device 135. In one embodiment, the application or web application may be designed by the operator of website 130 to provide IoT functionality to its user base. As illustrated, the website can maintain a user database 131 that contains account records associated with each user.

図1Bは、複数のIoTハブ110〜111、190に対する追加の接続オプションを例示する。この実施形態では、単一のユーザが、単一のユーザ構内180(例えば、ユーザの自宅又はビジネス)にオンサイトでインストールされた複数のハブ110〜111を有することができる。これは、例えば、IoTデバイス101〜105のすべてを接続するのに必要な無線範囲を拡張するために行われ得る。上述したように、ユーザが複数のハブ110、111を有する場合、それらは、ローカル通信チャネル(例えば、Wifi、イーサネット(登録商標)、電力線ネットワーキングなど)を介して接続されてもよい。一実施形態では、ハブ110〜111のそれぞれは、セルラー115又はWiFi 116接続(図1Bには明示されていない)を介してIoTサービス120への直接接続を確立することができる。代替的に、又は加えて、IoTハブ110などのIoTハブのうちの1つは、「マスター」ハブとして機能することができ、これは、IoTハブ111などのユーザ構内180上の他のすべてのIoTハブに接続性及び/又はローカルサービスを提供する(IoTハブ110とIoTハブ111を接続する点線で示すように)。例えば、マスターIoTハブ110は、IoTサービス120への直接接続を確立する唯一のIoTハブであってもよい。一実施形態では、「マスター」IoTハブ110のみに、IoTサービス120への接続を確立するためのセルラー通信インタフェースが備わっている。このように、IoTサービス120と他のIoTハブ111との間のすべての通信は、マスターIoTハブ110を通って流れる。この役割において、マスターIoTハブ110には、他のIoTハブ111とIoTサービス120との間で交換されるデータ(例えば、可能であれば、いくつかのデータ要求にローカルでサービスする)に対してフィルタリング動作を実行するための追加のプログラムコードが提供され得る。   FIG. 1B illustrates additional connection options for multiple IoT hubs 110-111, 190. In this embodiment, a single user may have multiple hubs 110-111 installed on-site at a single user premises 180 (e.g., the user's home or business). This may be done, for example, to extend the radio range needed to connect all of the IoT devices 101-105. As mentioned above, if the user has multiple hubs 110, 111, they may be connected via a local communication channel (eg, Wifi, Ethernet, Powerline Networking, etc.). In one embodiment, each of the hubs 110-111 can establish a direct connection to the IoT service 120 via a cellular 115 or WiFi 116 connection (not explicitly shown in FIG. 1B). Alternatively, or in addition, one of the IoT hubs, such as IoT hub 110, can function as a "master" hub, which is associated with all other user premises 180, such as IoT hub 111 Provide connectivity and / or local services to the IoT hub (as shown by the dotted line connecting the IoT hub 110 and the IoT hub 111). For example, the master IoT hub 110 may be the only IoT hub that establishes a direct connection to the IoT service 120. In one embodiment, only the "master" IoT hub 110 is equipped with a cellular communication interface to establish a connection to the IoT service 120. Thus, all communication between the IoT service 120 and the other IoT hubs 111 flows through the master IoT hub 110. In this role, the master IoT hub 110 is responsible for the data exchanged between the other IoT hub 111 and the IoT service 120 (eg, serving some data requests locally if possible) Additional program code may be provided to perform the filtering operation.

IoTハブ110〜111がどのように接続されていようとも、一実施形態では、IoTサービス120は、ハブをユーザと論理的に関連付け、取り付けられたIoTデバイス101〜105のすべてを、インストールされたアプリケーション135(及び/又はブラウザベースのインタフェース)を有するユーザデバイスを介してアクセス可能な、単一の包括的なユーザインタフェースの下に結合する。   No matter how the IoT hubs 110-111 are connected, in one embodiment, the IoT service 120 logically associates the hub with the user and the installed application of all of the attached IoT devices 101-105 Coupled under a single generic user interface accessible via a user device having 135 (and / or a browser based interface).

この実施形態では、マスターIoTハブ110及び1つ以上のスレーブIoTハブ111は、WiFiネットワーク116、イーサネットネットワーク、及び/又は電力線通信(power-line communications)(PLC)ネットワーキング(例えば、ネットワークの全部若しくは一部がユーザの電力線を介して実行される)とすることができる、ローカルネットワークを介して接続してもよい。加えて、IoTハブ110〜111に対して、IoTデバイス101〜105のそれぞれは、いくつか例を挙げると、WiFi、イーサネット、PLC、又はBluetooth LEなどの、任意のタイプのローカルネットワークチャネルを使用して、IoTハブ110〜111と相互接続してもよい。   In this embodiment, the master IoT hub 110 and one or more slave IoT hubs 111 may be WiFi network 116, Ethernet network, and / or power-line communications (PLC) networking (eg, all or one of the networks). Unit may be implemented via the user's power line), and may be connected via a local network. In addition, for IoT hubs 110-111, each of the IoT devices 101-105 use any type of local network channel, such as WiFi, Ethernet, PLC or Bluetooth LE, to name a few. And may be interconnected with the IoT hubs 110-111.

図1Bはまた、第2のユーザ構内181にインストールされたIoTハブ190を示す。実質的に無制限の数のそのようなIoTハブ190は、世界中のユーザ構内のIoTデバイス191〜192からデータを収集するようにインストールされ、構成され得る。一実施形態では、2つのユーザ構内180〜181は、同じユーザに対して構成されてもよい。例えば、一方のユーザ構内180がユーザの基本的なホームであり、他方のユーザ構内181がユーザのバケーションホームであってもよい。そのような場合、IoTサービス120は、IoTハブ110〜111、190をユーザと論理的に関連付け、取り付けられたすべてのIoTデバイス101〜105、191〜192を、単一の包括的なユーザインタフェースの下に結合し、インストールされたアプリケーション135(及び/又はブラウザベースのインタフェース)を有するユーザデバイスを介してアクセス可能にする。   FIG. 1B also shows the IoT hub 190 installed on the second user premises 181. A substantially unlimited number of such IoT hubs 190 may be installed and configured to collect data from IoT devices 191-192 at user premises around the world. In one embodiment, two user premises 180-181 may be configured for the same user. For example, one user premises 180 may be the user's basic home and the other user premises 181 may be the user's vacation home. In such a case, the IoT service 120 logically associates the IoT hubs 110-111, 190 with the user, and attaches all attached IoT devices 101-105, 191-192 to a single, comprehensive user interface. Coupled below and accessible via a user device having the installed application 135 (and / or a browser based interface).

図2に例示するように、IoTデバイス101の例示的な実施形態は、プログラムコード及びデータ201〜203を記憶するメモリ210と、プログラムコードを実行しデータを処理する低電力マイクロコントローラ200とを含む。メモリ210は、ダイナミックランダムアクセスメモリ(dynamic random access memory)(DRAM)などの揮発性メモリであってもよいし、フラッシュメモリなどの不揮発性メモリであってもよい。一実施形態では、不揮発性メモリを永続記憶に使用し、揮発性メモリをプログラムコードの実行及びデータの実行に使用することができる。更に、メモリ210は、低電力マイクロコントローラ200内に統合されてもよく、バス又は通信ファブリックを介して低電力マイクロコントローラ200に連結されてもよい。本発明の根本的な原理は、メモリ210のいかなる特定の実装にも限定されない。   As illustrated in FIG. 2, an exemplary embodiment of the IoT device 101 includes a memory 210 for storing program code and data 201-203, and a low power microcontroller 200 for executing program code and processing data. . The memory 210 may be volatile memory such as dynamic random access memory (DRAM) or non-volatile memory such as flash memory. In one embodiment, non-volatile memory may be used for persistent storage and volatile memory may be used to execute program code and execute data. Furthermore, memory 210 may be integrated within low power microcontroller 200 and may be coupled to low power microcontroller 200 via a bus or communication fabric. The underlying principles of the present invention are not limited to any particular implementation of memory 210.

例示したように、プログラムコードは、IoTデバイス101のアプリケーション開発者によって利用され得る既定のビルディングブロックのセットを含む、IoTデバイス201及びライブラリコード202によって実行される特定用途向けの機能セットを定義するアプリケーションプログラムコード203を含むことができる。一実施形態では、ライブラリコード202は、各IoTデバイス101とIoTハブ110との間の通信を可能にするための通信プロトコルスタック201などのIoTデバイスを実装するために必要とされる基本機能のセットを含む。上述したように、一実施形態では、通信プロトコルスタック201は、Bluetooth LEプロトコルスタックを含む。この実施形態では、Bluetooth LE無線機及びアンテナ207は、低電力マイクロコントローラ200内に統合されてもよい。しかしながら、本発明の基本原理は、いかなる特定の通信プロトコルにも限定されない。   As illustrated, the program code is an application that defines an application specific function set to be executed by the IoT device 201 and the library code 202, including a set of predefined building blocks that may be utilized by application developers of the IoT device 101. Program code 203 may be included. In one embodiment, library code 202 is a set of basic functions required to implement an IoT device, such as communication protocol stack 201, to enable communication between each IoT device 101 and IoT hub 110. including. As mentioned above, in one embodiment, communication protocol stack 201 includes a Bluetooth LE protocol stack. In this embodiment, the Bluetooth LE radio and antenna 207 may be integrated into the low power microcontroller 200. However, the basic principles of the invention are not limited to any particular communication protocol.

図2に示す特定の実施形態はまた、ユーザ入力を受信し、ユーザ入力を低電力マイクロコントローラに提供する複数の入力デバイス又はセンサ210を含み、低電力マイクロコントローラは、アプリケーションコード203及びライブラリコード202に従ってユーザ入力を処理する。一実施形態では、入力デバイスのそれぞれは、エンドユーザにフィードバックを提供するLED 209を含む。   The particular embodiment shown in FIG. 2 also includes multiple input devices or sensors 210 that receive user input and provide user input to the low power microcontroller, the low power microcontroller comprising application code 203 and library code 202. Process user input according to. In one embodiment, each of the input devices includes an LED 209 that provides feedback to the end user.

加えて、例示した実施形態は、低電力マイクロコントローラに電力を供給するための電池208を含む。一実施形態では、非充電式コイン型電池が使用される。しかしながら、別の実施形態では、統合された充電式電池を使用することができる(例えば、交流電源(図示せず)にIoTデバイスを接続することによって再充電可能)。   In addition, the illustrated embodiment includes a battery 208 for providing power to the low power microcontroller. In one embodiment, a non-rechargeable coin cell battery is used. However, in another embodiment, an integrated rechargeable battery can be used (e.g., rechargeable by connecting the IoT device to an AC power supply (not shown)).

オーディオを発生するためのスピーカ205も設けられている。一実施形態では、低電力マイクロコントローラ299は、スピーカ205上にオーディオを発生するために圧縮されたオーディオストリーム(例えば、MPEG−4/アドバンストオーディオコーディング(Advanced Audio Coding)(AAC)ストリーム)を復号するための、オーディオ復号ロジックを含む。代替的に、低出力マイクロコントローラ200及び/又はアプリケーションコード/データ203が、ユーザが入力デバイス210を介して選択を入力すると、エンドユーザに口頭のフィードバックを提供するための、デジタルでサンプリングされたオーディオスニペットを含むことができる。   A speaker 205 is also provided for generating audio. In one embodiment, low power microcontroller 299 decodes the compressed audio stream (eg, MPEG-4 / Advanced Audio Coding (AAC) stream) to generate audio on speaker 205 Include audio decoding logic. Alternatively, digitally sampled audio for providing low end microcontroller 200 and / or application code / data 203 with verbal feedback to the end user when the user inputs a selection via input device 210. It can contain snippets.

一実施形態では、IoTデバイス101が設計される特定用途に基づいて、1つ以上の他の/代替のI/Oデバイス又はセンサ250が、IoTデバイス101に含まれてもよい。例えば、温度、圧力、湿度などを測定するために環境センサを含めることができる。IoTデバイスがセキュリティデバイスとして使用される場合には、セキュリティセンサ及び/又はドアロックオープナが含まれてもよい。当然のことながら、これらの例は、単に例示のために提供されている。本発明の基本原理は、いかなる特定のタイプのIoTデバイスにも限定されない。実際に、ライブラリコード202が備わった低電力マイクロコントローラ200の高度にプログラマブルな性質を考慮すると、アプリケーション開発者は、新しいアプリケーションコード203及び新しいI/Oデバイス250を容易に開発して、実質的に任意のタイプのIoTアプリケーションのために低電力マイクロコントローラとインタフェースをとることができる。   In one embodiment, one or more other / alternative I / O devices or sensors 250 may be included in the IoT device 101 based on the particular application for which the IoT device 101 is designed. For example, environmental sensors can be included to measure temperature, pressure, humidity, and the like. If the IoT device is used as a security device, security sensors and / or door lock openers may be included. Of course, these examples are provided for illustration only. The basic principles of the invention are not limited to any particular type of IoT device. In fact, given the highly programmable nature of low power microcontroller 200 with library code 202, application developers can easily develop new application code 203 and new I / O device 250, substantially It can interface with low power microcontrollers for any type of IoT application.

一実施形態では、低電力マイクロコントローラ200はまた、通信を暗号化するための、及び/又は署名を生成するための暗号鍵を記憶するための安全な鍵ストアを含む。代替的に、鍵は、加入者識別モジュール(SIM)内に確保されてもよい。   In one embodiment, the low power microcontroller 200 also includes a secure key store for encrypting communications and / or storing cryptographic keys for generating signatures. Alternatively, the key may be secured in a subscriber identity module (SIM).

一実施形態では、実質的に電力を消費していない超低電力状態からIoTデバイスを起動させるために、ウェイクアップ受信機207が含まれる。一実施形態では、ウェイクアップ受信機207は、図3に示すように、IoTハブ110上に構成されたウェイクアップ送信機307から受信されたウェイクアップ信号に応答して、IoTデバイス101をこの低電力状態から出させるように構成される。具体的には、一実施形態では、送信機307と受信機207は共に、テスラコイルなどの電気共振トランス回路を形成する。動作中、ハブ110が非常に低い電力状態からIoTデバイス101を復帰させる必要がある場合、エネルギは送信機307から受信機207への無線周波数信号を介して送信される。エネルギ移動の理由で、IoTデバイス101は、それが低電力状態にあるときには、ハブからの信号を継続的に「聞く」必要がないので、実質的に電力を消費しないように構成することができる(ネットワーク信号を介してデバイスを起動させることができる、ネットワークプロトコルの場合と同様に)。むしろ、IoTデバイス101のマイクロコントローラ200は、送信機307から受信機207に電気的に送信されたエネルギを使用することによって、事実上パワーダウンされた後にウェイクアップするように構成することができる。   In one embodiment, a wakeup receiver 207 is included to wake up the IoT device from a substantially powerless ultra-low power state. In one embodiment, the wakeup receiver 207 responds to the wakeup signal received from the wakeup transmitter 307 configured on the IoT hub 110 as shown in FIG. It is configured to get out of the power state. Specifically, in one embodiment, the transmitter 307 and receiver 207 together form an electrical resonant transformer circuit, such as a Tesla coil. In operation, when the hub 110 needs to recover the IoT device 101 from a very low power state, energy is transmitted from the transmitter 307 via a radio frequency signal to the receiver 207. Because of energy transfer, the IoT device 101 can be configured to consume substantially no power when it is in a low power state, as there is no need to continually "listen" to the signal from the hub (The device can be activated via network signaling, as in the case of network protocols). Rather, the microcontroller 200 of the IoT device 101 can be configured to wake up after being effectively powered down by using the energy electrically transmitted from the transmitter 307 to the receiver 207.

図3に例示するように、IoTハブ110はまた、プログラムコード及びデータ305を記憶するためのメモリ317と、プログラムコードを実行しデータを処理するためのマイクロコントローラなどのハードウェアロジック301とを含む。広域ネットワーク(wide area network)(WAN)インタフェース302及びアンテナ310は、IoTハブ110をセルラーサービス115に連結する。代替的に、上述したように、IoTハブ110は、ローカルエリアネットワーク通信チャネルを確立するためにWiFiインタフェース(及びWiFiアンテナ)又はイーサネットインタフェースなどのローカルネットワークインタフェース(図示せず)を含むこともできる。一実施形態では、ハードウェアロジック301はまた、通信を暗号化するための、及び/又は署名を生成/検証するための暗号鍵を記憶するための安全な鍵ストアを含む。代替的に、鍵は、加入者識別モジュール(SIM)内に確保されてもよい。   As illustrated in FIG. 3, the IoT hub 110 also includes a memory 317 for storing program code and data 305, and hardware logic 301 such as a microcontroller for executing the program code and processing the data. . A wide area network (WAN) interface 302 and an antenna 310 couple the IoT hub 110 to the cellular service 115. Alternatively, as mentioned above, the IoT hub 110 may also include a local network interface (not shown) such as a WiFi interface (and a WiFi antenna) or an Ethernet interface to establish a local area network communication channel. In one embodiment, hardware logic 301 also includes a secure key store for encrypting communications and / or storing cryptographic keys for generating / verifying signatures. Alternatively, the key may be secured in a subscriber identity module (SIM).

ローカル通信インタフェース303及びアンテナ311は、IoTデバイス101〜105のそれぞれとのローカル通信チャネルを確立する。上述したように、一実施形態では、ローカル通信インタフェース303/アンテナ311はBluetooth LE規格を実装する。しかしながら、本発明の根底にある原理は、IoTデバイス101〜105とのローカル通信チャネルを確立するためのいかなる特定のプロトコルにも限定されない。図3においては別個のユニットとして示されているが、WANインタフェース302及び/又はローカル通信インタフェース303は、ハードウェアロジック301と同じチップ内に組み込まれてもよい。   The local communication interface 303 and the antenna 311 establish a local communication channel with each of the IoT devices 101-105. As mentioned above, in one embodiment, the local communication interface 303 / antenna 311 implements the Bluetooth LE standard. However, the underlying principles of the present invention are not limited to any particular protocol for establishing a local communication channel with the IoT devices 101-105. Although shown as separate units in FIG. 3, WAN interface 302 and / or local communication interface 303 may be incorporated into the same chip as hardware logic 301.

一実施形態では、プログラムコード及びデータは、ローカル通信インタフェース303及びWANインタフェース302を介して通信するための別個のスタックを含むことができる通信プロトコルスタック308を含む。加えて、デバイスペアリングプログラムコード及びデータ306は、IoTハブを新しいIoTデバイスとペアリングすることができるようにメモリに記憶され得る。一実施形態では、各新しいIoTデバイス101〜105には、ペアリングプロセス中にIoTハブ110に通信される一意的なコードが割り当てられる。例えば、一意的なコードは、IoTデバイス上のバーコードに組み込まれてもよく、かつバーコードリーダ106によって読み取られてもよく、又はローカル通信チャネル130を介して通信されてもよい。別の実施形態では、一意的なIDコードがIoTデバイスに磁気的に組み込まれ、IoTハブは、無線周波数ID(radio frequency ID)(RFID)又は近距離通信(near field communication)(NFC)センサなどの磁気センサを有し、IoTデバイス101がIoTハブ110の数インチ内で移動するとき、コードを検出する。   In one embodiment, the program code and data include a communication protocol stack 308 that can include separate stacks for communicating via the local communication interface 303 and the WAN interface 302. In addition, device pairing program code and data 306 may be stored in memory so that the IoT hub can be paired with a new IoT device. In one embodiment, each new IoT device 101-105 is assigned a unique code that is communicated to the IoT hub 110 during the pairing process. For example, the unique code may be embedded in the barcode on the IoT device and may be read by the barcode reader 106 or may be communicated via the local communication channel 130. In another embodiment, a unique ID code is magnetically integrated into the IoT device, such as an IoT hub, such as a radio frequency ID (RFID) or near field communication (NFC) sensor, etc. And detect codes when the IoT device 101 moves within several inches of the IoT hub 110.

一実施形態では、一意的なIDが通信されると、IoTハブ110は、ローカルデータベース(図示せず)に問い合わせること、コードが許容可能であることを検証するためにハッシュを実行すること、並びに/又はIoTサービス120、ユーザデバイス135、及び/若しくはウェブサイト130と通信することによって、一意的なIDを検証して、IDコードの妥当性を確認することができる。妥当性が確認されると、一実施形態では、IoTハブ110は、IoTデバイス101をペアリングし、メモリ317(これは、上述したように、不揮発性メモリを含むことができる)にペアリングデータを記憶する。ペアリングが完了すると、IoTハブ110は、本明細書に記載の様々なIoT機能を実行するためにIoTデバイス101と接続することができる。   In one embodiment, once the unique ID is communicated, the IoT hub 110 queries a local database (not shown), performs hashing to verify that the code is acceptable, and By communicating with the IoT service 120, the user device 135, and / or the website 130, the unique ID can be verified to validate the ID code. Once validated, in one embodiment, the IoT hub 110 pairs the IoT device 101 and pairing data to the memory 317 (which may include non-volatile memory as described above) Remember. Once pairing is complete, the IoT hub 110 can connect with the IoT device 101 to perform the various IoT functions described herein.

一実施形態では、IoTサービス120を実行する組織は、開発者が新しいIoTサービスを容易に設計できるように、IoTハブ110及び基本ハードウェア/ソフトウェアプラットフォームを提供することができる。具体的には、IoTハブ110に加えて、開発者には、ハブ110内で実行されるプログラムコード及びデータ305を更新するためのソフトウェア開発キット(software development kit)(SDK)が提供されてもよい。加えて、IoTデバイス101については、SDKは、様々な異なるタイプのアプリケーション101の設計を容易にするために、ベースのIoTハードウェア(例えば、低電力マイクロコントローラ200及び図2に示す他の構成要素)用に設計された広範なライブラリコード202のセットを含んでもよい。一実施形態では、SDKは、開発者がIoTデバイスの入力と出力を指定するだけでよいグラフィカルデザインインタフェースを含む。IoTデバイス101がハブ110及びサービス120に接続することを可能にする通信スタック201を含むネットワーキングコードはすべて、開発者のために既に配置されている。加えて、一実施形態では、SDKは、モバイルデバイス(例えば、iPhone(登録商標)及びAndroid(登録商標)デバイス)用のアプリケーションの設計を容易にするライブラリコードベースも含む。   In one embodiment, an organization running IoT services 120 can provide an IoT hub 110 and a base hardware / software platform so that developers can easily design new IoT services. Specifically, in addition to the IoT hub 110, the developer may be provided with a software development kit (SDK) for updating program code and data 305 executed in the hub 110. Good. In addition, for IoT devices 101, the SDK is based on IoT hardware (eg, low power microcontroller 200 and other components shown in FIG. 2) to facilitate the design of various different types of applications 101. May include a broad set of library code 202 designed for. In one embodiment, the SDK includes a graphical design interface that the developer need only specify the inputs and outputs of the IoT device. All networking code, including the communication stack 201 that allows the IoT device 101 to connect to the hub 110 and the service 120, is already deployed for the developer. In addition, in one embodiment, the SDK also includes a library code base that facilitates the design of applications for mobile devices (e.g., iPhone (R) and Android (R) devices).

一実施形態では、IoTハブ110は、IoTデバイス101〜105とIoTサービス120との間のデータの連続的な双方向ストリームを管理する。IoTデバイス101〜105への/からの更新がリアルタイムで要求される状況(例えば、ユーザがセキュリティデバイス又は環境測定値の現在の状態を見る必要がある状況)では、IoTハブは、ユーザデバイス135及び/又は外部のウェブサイト130に定期的な更新を提供するためにオープンTCPソケットを維持することができる。更新を提供するために使用される特定のネットワーキングプロトコルは、基本用途のニーズに基づいて調整されてもよい。例えば、連続的な双方向ストリームを有することが理にかなっていない可能性がある場合、必要なときに情報を収集するために単純な要求/応答プロトコルを使用することができる。   In one embodiment, IoT hub 110 manages a continuous bi-directional stream of data between IoT devices 101-105 and IoT service 120. In situations where updates to / from IoT devices 101-105 are required in real time (e.g. situations where the user needs to see the current status of security devices or environmental measurements), the IoT hub An open TCP socket can be maintained to provide periodic updates to external website 130. The particular networking protocol used to provide the update may be adjusted based on the needs of the base application. For example, if it may not make sense to have a continuous bi-directional stream, a simple request / response protocol can be used to gather information when needed.

一実施形態では、IoTハブ110及びIoTデバイス101〜105の両方が、ネットワークを介して自動的に更新可能である。具体的には、IoTハブ110について新しい更新が利用可能であるとき、IoTサービス120から更新を自動的にダウンロードしてインストールすることができる。それは、古いプログラムコードを交換する前に、まず、更新されたコードをローカルメモリにコピーし、実行して、更新を検証し得る。同様に、IoTデバイス101〜105のそれぞれについて更新が利用可能である場合、更新は、IoTハブ110によって最初にダウンロードされ、IoTデバイス101〜105のそれぞれにプッシュアウトされてもよい。各IoTデバイス101〜105は、IoTハブに関して上述したのと同様の方法で更新を適用し、更新の結果をIoTハブ110に報告することができる。更新が成功した場合、IoTハブ110は、更新をそのメモリから削除し、(例えば、各IoTデバイスについての新しい更新を確認し続けることができるように)それぞれのIoTデバイスにインストールされているコードの最新バージョンを記録することができる。   In one embodiment, both the IoT hub 110 and the IoT devices 101-105 can be automatically updated via the network. Specifically, when a new update is available for the IoT hub 110, the update can be automatically downloaded and installed from the IoT service 120. It may first copy the updated code to local memory and execute it to verify the update before replacing the old program code. Similarly, if updates are available for each of the IoT devices 101-105, the updates may be initially downloaded by the IoT hub 110 and pushed out to each of the IoT devices 101-105. Each IoT device 101-105 can apply the update in a manner similar to that described above for the IoT hub and report the results of the update to the IoT hub 110. If the update is successful, the IoT hub 110 removes the update from its memory and (for example, keeps on checking for new updates for each IoT device) of the code installed on each IoT device The latest version can be recorded.

一実施形態では、IoTハブ110は、A/C電力を介して給電される。具体的には、IoTハブ110は、A/C電源コードを介して供給されるA/C電圧をより低いDC電圧に変換するための変圧器を備えた電源ユニット390を含むことができる。   In one embodiment, the IoT hub 110 is powered via A / C power. Specifically, the IoT hub 110 can include a power supply unit 390 with a transformer for converting the A / C voltage supplied via the A / C power cord to a lower DC voltage.

図4Aは、IoTシステムを使用してユニバーサル遠隔制御操作を実行するための、本発明の一実施形態を例示する。具体的には、この実施形態では、IoTデバイス101〜103のセットには、(ほんの数例を挙げると)空気調節装置/ヒータ430、照明システム431、及び視聴覚機器432を含む、様々な異なるタイプの電子機器を制御する遠隔制御コードを送信するための、赤外線(infrared)(IR)及び/又は無線周波数(radio frequency)(RF)ブラスタ401〜403がそれぞれ備わっている。図4Aに示される実施形態では、IoTデバイス101〜103にはまた、以下に説明するように、それらが制御するデバイスの動作を検出するためのセンサ404〜406がそれぞれ備わっている。   FIG. 4A illustrates one embodiment of the present invention for performing universal remote control operations using an IoT system. Specifically, in this embodiment, the set of IoT devices 101-103 includes a variety of different types including air conditioners / heaters 430, lighting systems 431, and audiovisual equipment 432 (to name but a few) An infrared (IR) and / or radio frequency (RF) blasters 401-403 are provided for transmitting remote control codes for controlling the electronic devices of the invention. In the embodiment shown in FIG. 4A, the IoT devices 101-103 are also each equipped with sensors 404-406 for detecting the operation of the devices they control, as described below.

例えば、IoTデバイス101におけるセンサ404は、現在の温度/湿度を検知し、それに応じて、現在の所望の温度に基づき空気調節装置/ヒータ430を制御するための温度及び/又は湿度センサであってもよい。この実施形態では、空気調節装置/ヒータ430は、遠隔制御デバイス(典型的には、それ自体が温度センサをその中に組み込んだ遠隔制御装置)を介して制御されるように設計されるものである。一実施形態では、ユーザは、ユーザデバイス135上にインストールされたアプリケーション又はブラウザを介して、所望の温度をIoTハブ110に提供する。IoTハブ110上で実行される制御ロジック412は、センサ404から現在の温度/湿度データを受信し、それに応じて、所望の温度/湿度に従ってIR/RFブラスタ401を制御するように、IoTデバイス101にコマンドを送信する。例えば、温度が所望の温度未満である場合、制御ロジック412は、温度を上げるように、IR/RFブラスタ401を介して空気調節装置/ヒータにコマンドを送信してもよい(例えば、空気調節装置をオフにすることか、又はヒータをオンにすることのいずれかによって)。コマンドは、IoTハブ110上のデータベース413に記憶された必要な遠隔制御コードを含んでもよい。代替的に、又は加えて、IoTサービス421は、指定されたユーザ選好及び記憶された制御コード422に基づき電子機器430〜432を制御するために、制御ロジック421を実装してもよい。   For example, the sensor 404 in the IoT device 101 is a temperature and / or humidity sensor for detecting the current temperature / humidity and accordingly controlling the air conditioner / heater 430 based on the current desired temperature. It is also good. In this embodiment, the air conditioner / heater 430 is designed to be controlled via a remote control device (typically a remote control that itself incorporates a temperature sensor therein). is there. In one embodiment, the user provides the desired temperature to the IoT hub 110 via an application or browser installed on the user device 135. The control logic 412 running on the IoT hub 110 receives the current temperature / humidity data from the sensor 404 and, accordingly, controls the IR / RF blaster 401 according to the desired temperature / humidity. Send command to For example, if the temperature is below the desired temperature, the control logic 412 may send a command to the air conditioner / heater via the IR / RF blaster 401 to raise the temperature (eg, air conditioner) (By either turning off or turning on the heater). The command may include the necessary remote control code stored in the database 413 on the IoT hub 110. Alternatively or additionally, the IoT service 421 may implement control logic 421 to control the electronics 430-432 based on specified user preferences and stored control code 422.

例示した実施例におけるIoTデバイス102は、照明431を制御するために使用される。具体的には、IoTデバイス102のセンサ405は、照明設備431(又は他の照明装置)によってもたらされている光の現在の輝度を検出するように構成された光センサ又は光検出器であってもよい。ユーザは、ユーザデバイス135を介して、IoTハブ110に所望の照明レベル(オン又はオフの表示を含む)を指定してもよい。それに応答して、制御ロジック412は、照明431の現在の輝度レベルを制御するように、IR/RFブラスタ402にコマンドを送信する(例えば、現在の輝度が低すぎる場合は照明を明るくするか、若しくは現在の輝度が高すぎる場合は照明を暗くするか、又は単純に照明をオン若しくはオフにする)。   The IoT device 102 in the illustrated embodiment is used to control the lighting 431. Specifically, the sensor 405 of the IoT device 102 is a light sensor or light detector configured to detect the current brightness of the light being provided by the lighting fixture 431 (or other lighting device) May be The user may specify a desired illumination level (including an on or off indication) to the IoT hub 110 via the user device 135. In response, the control logic 412 sends a command to the IR / RF blaster 402 to control the current intensity level of the illumination 431 (eg, brighten the illumination if the current intensity is too low, or Or dim the light if the current brightness is too high, or simply turn the light on or off).

例示した実施例におけるIoTデバイス103は、視聴覚機器432(例えば、テレビ、A/V受信機、ケーブル/衛星受信機、AppleTV(商標)など)を制御するように構成される。IoTデバイス103のセンサ406は、現在の周囲音量レベルを検出するためのオーディオセンサ(例えば、マイクロホン及び関連ロジック)、並びに/又はテレビによって生成された光に基づき、(例えば、指定されたスペクトル内の光を測定することによって)テレビがオンであるか、それともオフであるかを検出するための光センサであってもよい。代替的に、センサ406は、検出された温度に基づき、オーディオ機器がオンであるか、それともオフであるかを検出するための、視聴覚機器に接続された温度センサを含んでもよい。この場合も、ユーザデバイス135を介したユーザ入力に応答して、制御ロジック412は、IoTデバイス103のIRブラスタ403を介して視聴覚機器にコマンドを送信してもよい。   The IoT device 103 in the illustrated embodiment is configured to control audiovisual equipment 432 (eg, television, A / V receiver, cable / satellite receiver, AppleTVTM, etc.). The sensor 406 of the IoT device 103 is based on light generated by an audio sensor (eg, a microphone and associated logic) and / or a television to detect a current ambient volume level (eg, in a designated spectrum) It may be a light sensor to detect whether the television is on or off by measuring the light). Alternatively, sensor 406 may include a temperature sensor connected to the audiovisual device to detect whether the audio device is on or off based on the detected temperature. Again, in response to user input via the user device 135, the control logic 412 may send commands to the audiovisual device via the IR blaster 403 of the IoT device 103.

上記が本発明の一実施形態の単なる例示した実施例であることに留意すべきである。本発明の基本原理は、IoTデバイスによって制御されるいかなる特定のタイプのセンサ又は機器にも限定されない。   It should be noted that the above are merely illustrative examples of an embodiment of the present invention. The basic principles of the invention are not limited to any particular type of sensor or device controlled by an IoT device.

IoTデバイス101〜103がBluetooth LE接続を介してIoTハブ110に連結される実施形態では、センサデータ及びコマンドは、Bluetooth LEチャネルを介して送信される。しかしながら、本発明の基本原理は、Bluetooth LE又はいずれの他の通信標準にも限定されない。   In embodiments where IoT devices 101-103 are coupled to IoT hub 110 via a Bluetooth LE connection, sensor data and commands are transmitted via a Bluetooth LE channel. However, the basic principles of the invention are not limited to Bluetooth LE or any other communication standard.

一実施形態では、電子機器のそれぞれを制御するために必要とされる制御コードは、IoTハブ110上のデータベース413及び/又はIoTサービス120上のデータベース422に記憶される。図4Bに例示するように、制御コードは、IoTサービス120上で維持される異なる機器に対して、制御コード422のマスターデータベースからIoTハブ110に提供されてもよい。エンドユーザは、ユーザデバイス135上で実行されるアプリケーション又はブラウザを介して制御される電子(又は他の)機器のタイプを指定してもよく、それに応答して、IoTハブ上の遠隔制御コード学習モジュール491は、IoTサービス120上の遠隔制御コードデータベース492から、必要とされるIR/RFコードを取得してもよい(例えば、一意的なIDを有する各電子機器を識別する)。   In one embodiment, the control code needed to control each of the electronic devices is stored in database 413 on IoT hub 110 and / or database 422 on IoT service 120. As illustrated in FIG. 4B, control code may be provided from the master database of control code 422 to the IoT hub 110 for different devices maintained on the IoT service 120. The end user may specify the type of electronic (or other) equipment controlled via the application or browser running on the user device 135, in response to remote control code learning on the IoT hub Module 491 may obtain the required IR / RF code from remote control code database 492 on IoT service 120 (eg, identify each electronic device with a unique ID).

加えて、一実施形態では、IoTハブ110には、遠隔制御コード学習モジュール491が、電子機器と共に提供された元の遠隔制御装置495から直接新しい遠隔制御コードを「学習」することを可能にする、IR/RFインタフェース490が備わっている。例えば、空気調節装置430と共に提供された元の遠隔制御装置の制御コードが、遠隔制御データベースに含まれていない場合、ユーザは、ユーザデバイス135上のアプリケーション/ブラウザを介してIoTハブ110と対話して、元の遠隔制御装置によって生成される様々な制御コードをIoTハブ110に教えてもよい(例えば、温度を上げる、温度を下げるなど)。遠隔制御コードが学習されると、それらは、IoTハブ110上の制御コードデータベース413に記憶されてもよく、かつ/又は中央遠隔制御コードデータベース492に含められるように、IoTサービス120に送り返されてもよい(続いて、同じ空気調節装置ユニット430を有する他のユーザによって使用されてもよい)。   In addition, in one embodiment, the IoT hub 110 allows the remote control code learning module 491 to "learn" a new remote control code directly from the original remote control 495 provided with the electronics. , IR / RF interface 490. For example, if the control code of the original remote control provided with the air conditioner 430 is not included in the remote control database, the user interacts with the IoT hub 110 via the application / browser on the user device 135 Then, various control codes generated by the original remote control device may be taught to the IoT hub 110 (eg, temperature increase, temperature decrease, etc.). As remote control codes are learned, they may be stored in the control code database 413 on the IoT hub 110 and / or sent back to the IoT service 120 to be included in the central remote control code database 492 (May be subsequently used by other users having the same air conditioner unit 430).

一実施形態では、IoTデバイス101〜103のそれぞれは、極端に小さいフォームファクタを有し、両面テープ、小さい釘、磁気アタッチメントなどを使用して、それらの対応する電子機器430〜432の上又は付近に取り付けられてもよい。空気調節装置430などの1つの機器を制御するために、IoTデバイス101を十分に離して配置し、センサ404が自宅内の周囲温度を正確に測定することができるようにすることが望ましい(例えば、空気調節装置上に直接IoTデバイスを配置すると、温度測定値は、空気調節装置が作動しているときは低すぎになり、ヒータが作動しているときは高すぎになるであろう)。対照的に、照明を制御するために使用されるIoTデバイス102は、センサ405が現在の照明レベルを検出するために、照明設備431の上又は付近に配置されてもよい。   In one embodiment, each of the IoT devices 101-103 has an extremely small form factor and is on or near their corresponding electronics 430-432 using double-sided tape, small nails, magnetic attachments, etc. It may be attached to In order to control one device, such as air conditioner 430, it is desirable to position IoT device 101 far enough to allow sensor 404 to accurately measure the ambient temperature in the home (eg, If you place the IoT device directly on the air conditioner, the temperature measurement will be too low when the air conditioner is operating and will be too high when the heater is operating). In contrast, the IoT device 102 used to control the lighting may be located on or near the lighting fixture 431 in order for the sensor 405 to detect the current lighting level.

記載される一般的な制御機能を提供することに加えて、IoTハブ110及び/又はIoTサービス120の一実施形態は、各電子機器の現在の状態に関連した通知をエンドユーザに送信する。通知は、テキストメッセージ及び/又はアプリケーション特有の通知であってもよく、次いで、通知は、ユーザのモバイルデバイス135のディスプレイ上に表示されてもよい。例えば、ユーザの空気調節装置が長期間オンであるが温度が変化していない場合、IoTハブ110及び/又はIoTサービス120は、空気調節装置が適切に機能していないという通知をユーザに送信してもよい。ユーザが自宅におらず(このことは、動作センサを介して検出されてもよく、若しくはユーザの現在の検出された位置に基づいてもよい)、センサ406が、視聴覚機器430がオンであることを示すか、又はセンサ405が、照明がオンであることを示す場合、ユーザが視聴覚機器432及び/又は照明431をオフにすることを希望するか尋ねる通知がユーザに送信されてもよい。同じタイプの通知が、任意の機器のタイプに対して送信されてもよい。   In addition to providing the general control functionality described, one embodiment of the IoT hub 110 and / or the IoT service 120 sends notifications to end users related to the current state of each electronic device. The notification may be a text message and / or an application specific notification, which may then be displayed on the display of the mobile device 135 of the user. For example, if the user's air conditioning unit is on for a long time but the temperature has not changed, the IoT hub 110 and / or the IoT service 120 sends a notification to the user that the air conditioning unit is not functioning properly. May be If the user is not at home (which may be detected via the motion sensor or may be based on the user's current detected position), the sensor 406 may be on the audiovisual device 430 Or if the sensor 405 indicates that the light is on, a notification may be sent to the user asking if the user wishes to turn off the audiovisual device 432 and / or the light 431. The same type of notification may be sent for any device type.

ユーザが通知を受信すると、彼/彼女は、ユーザデバイス135上のアプリケーション又はブラウザを介して電子機器430〜432を遠隔制御してもよい。一実施形態では、ユーザデバイス135は、タッチスクリーンデバイスであり、アプリケーション又はブラウザは、機器430〜432を制御するためのユーザが選択可能なボタンを含む遠隔制御装置の画像を表示する。通知を受信した後、ユーザは、グラフィカル遠隔制御装置を開き、様々な異なる機器をオフにするか、又は調節してもよい。IoTサービス120を介して接続されている場合、ユーザの選択は、IoTサービス120からIoTハブ110に転送されてもよく、IoTハブ110は、次いで制御ロジック412を介して機器を制御することになる。代替的に、ユーザ入力は、ユーザデバイス135からIoTハブ110に直接送信されてもよい。   When the user receives the notification, he / she may remotely control the electronic device 430-432 via an application or browser on the user device 135. In one embodiment, the user device 135 is a touch screen device, and the application or browser displays an image of a remote control including user selectable buttons for controlling the devices 430-432. After receiving the notification, the user may open the graphical remote control and turn off or adjust various different devices. If connected via IoT service 120, user preferences may be transferred from IoT service 120 to IoT hub 110, which will then control the device via control logic 412. . Alternatively, user input may be sent directly from user device 135 to IoT hub 110.

一実施形態では、ユーザは、電子機器430〜432に対して様々な自動制御機能を実行するように、IoTハブ110上の制御ロジック412をプログラミングしてもよい。上記の所望の温度、輝度レベル、及び音量レベルを維持することに加えて、制御ロジック412は、ある特定の条件が検出された場合に電子機器を自動的にオフにしてもよい。例えば、制御ロジック412が、ユーザが自宅にいないこと、及び空気調節装置が機能していないことを検出する場合、制御ロジック412は、空気調節装置を自動的にオフにしてもよい。同様に、ユーザが自宅におらず、センサ406が、視聴覚機器430がオンであることを示すか、又はセンサ405が、照明がオンであることを示す場合、制御ロジック412は、視聴覚機器及び照明をそれぞれオフにするように、IR/RFブラスタ403及び402を介してコマンドを自動的に送信してもよい。   In one embodiment, the user may program the control logic 412 on the IoT hub 110 to perform various automatic control functions on the electronic devices 430-432. In addition to maintaining the desired temperature, brightness level, and volume level described above, control logic 412 may automatically turn off the electronics when certain conditions are detected. For example, if the control logic 412 detects that the user is not at home and the air conditioner is not functioning, the control logic 412 may automatically turn off the air conditioner. Similarly, if the user is not at home and the sensor 406 indicates that the audiovisual device 430 is on, or if the sensor 405 indicates that the illumination is on, then the control logic 412 controls the audiovisual device and the illumination. The commands may be sent automatically via the IR / RF blasters 403 and 402 to turn off each of the

図5は、電子機器530及び531を監視するためのセンサ503及び504が備わった、IoTデバイス104及び105の追加の実施形態を例示する。具体的には、この実施形態のIoTデバイス104は、コンロがオンのままであるときを検出するためにコンロ530の上又は付近に配置されてもよい、温度センサ503を含む。一実施形態では、IoTデバイス104は、温度センサ503によって測定された現在の温度をIoTハブ110及び/又はIoTサービス120に送信する。コンロが閾値期間を超えてオンであることが検出される場合(例えば、測定された温度に基づき)、制御ロジック512は、コンロ530がオンであることをユーザに通知する通知を、エンドユーザのデバイス135に送信してもよい。加えて、一実施形態では、IoTデバイス104は、ユーザからの命令を受信することに応答して、又は自動的に(制御ロジック512がそうするようにユーザによってプログラミングされる場合)、のいずれかによって、コンロをオフにするための制御モジュール501を含んでもよい。一実施形態では、制御ロジック501は、コンロ530への電気又はガスを遮断するためのスイッチを備える。しかしながら、他の実施形態では、制御ロジック501は、コンロ自体内に統合されてもよい。   FIG. 5 illustrates an additional embodiment of IoT devices 104 and 105 with sensors 503 and 504 for monitoring electronics 530 and 531. Specifically, the IoT device 104 of this embodiment includes a temperature sensor 503 that may be placed on or near the stove 530 to detect when the stove remains on. In one embodiment, the IoT device 104 transmits the current temperature measured by the temperature sensor 503 to the IoT hub 110 and / or the IoT service 120. If it is detected that the stove is on for more than a threshold period (eg, based on the measured temperature), control logic 512 may notify the end user of a notification to the user that stove 530 is on. It may be sent to the device 135. Additionally, in one embodiment, the IoT device 104 is either responsive to receiving an instruction from the user or automatically (if the control logic 512 is programmed by the user to do so) May include a control module 501 for turning the stove off. In one embodiment, the control logic 501 comprises a switch to shut off the electricity or gas to the stove 530. However, in other embodiments, control logic 501 may be integrated within the stove itself.

図5はまた、洗濯機及び/又は乾燥機などのある特定のタイプの電子機器の動作を検出するための動作センサ504を有する、IoTデバイス105を例示する。使用され得る別のセンサは、周囲の音量レベルを検出するためのオーディオセンサ(例えば、マイクロホン及びロジック)である。上記の他の実施形態のように、この実施形態は、ある特定の指定された条件が満たされた場合、エンドユーザに通知を送信してもよい(例えば、動作が長期間検出され、洗濯機/乾燥機がオフになっていないことを示す場合)。図5に示されないが、IoTデバイス105にはまた、自動的に、かつ/又はユーザ入力に応答して、(例えば、電気/ガスをオフに切り替えることによって)洗濯機/乾燥機531をオフにするための制御モジュールが備わっていてもよい。   FIG. 5 also illustrates an IoT device 105 having a motion sensor 504 for detecting the motion of certain types of electronic devices, such as a washer and / or dryer. Another sensor that may be used is an audio sensor (eg, a microphone and logic) to detect ambient volume levels. As with the other embodiments described above, this embodiment may send a notification to the end user if certain specified conditions are met (e.g. operation is detected for a long time, washing machine / Indicate that the dryer is not turned off). Although not shown in FIG. 5, the IoT device 105 also turns off the washer / dryer 531 (eg, by switching off electricity / gas) automatically and / or in response to user input. A control module may be provided.

一実施形態では、制御ロジック及びスイッチを有する第1のIoTデバイスは、ユーザの自宅内のすべての電力をオフにするように構成されてもよく、制御ロジック及びスイッチを有する第2のIoTデバイスは、ユーザの自宅内のすべてのガスをオフにするように構成されてもよい。次いで、センサを有するIoTデバイスは、ユーザの自宅内の電気又はガス駆動の機器の上又は付近に位置付けられてもよい。特定の機器がオンのままである(例えば、コンロ530)ことをユーザが通知された場合、ユーザは、自宅内のすべての電気又はガスをオフにするコマンドを送信して、損害を防止してもよい。代替的に、IoTハブ110及び/又はIoTサービス120の制御ロジック512は、そのような状況において電気又はガスを自動的にオフにするように構成されてもよい。   In one embodiment, a first IoT device having control logic and a switch may be configured to turn off all power in the user's home, and a second IoT device having control logic and a switch is , May be configured to turn off all the gas in the user's home. The IoT device with the sensor may then be located on or near an electrical or gas powered device in the user's home. If the user is notified that a particular device remains on (e.g. stove 530), the user sends a command to turn off all electricity or gas in the home to prevent damage It is also good. Alternatively, control logic 512 of IoT hub 110 and / or IoT service 120 may be configured to automatically turn off electricity or gas in such situations.

一実施形態では、IoTハブ110及びIoTサービス120は、周期的な間隔で通信する。IoTサービス120が、IoTハブ110への接続が切れていることを検出する場合(例えば、指定された継続時間、IoTハブからの要求又は応答を受信していないことによって)、IoTサービス120は、この情報をエンドユーザのデバイス135に通信することになる(例えば、テキストメッセージ又はアプリケーション特有の通知を送信することによって)。
改善されたセキュリティのための実施形態
In one embodiment, the IoT hub 110 and the IoT service 120 communicate at periodic intervals. If the IoT service 120 detects that the connection to the IoT hub 110 is broken (e.g., by not receiving a request or response from the IoT hub for a specified duration), the IoT service 120 may This information will be communicated to the end user's device 135 (eg, by sending a text message or an application specific notification).
Embodiments for Improved Security

一実施形態では、各IoTデバイス101の低電力マイクロコントローラ200及びIoTハブ110の低電力ロジック/マイクロコントローラ301は、以下に説明する実施形態によって使用される暗号化鍵を記憶するための安全な鍵ストアを含む(例えば、図6〜11及び関連する文章を参照されたい)。代替的に、鍵は、後述するように、加入者識別モジュール(SIM)内に確保されてもよい。   In one embodiment, the low power microcontroller 200 of each IoT device 101 and the low power logic / microcontroller 301 of the IoT hub 110 are secure keys for storing encryption keys used by the embodiments described below. Contains the store (see, eg, FIGS. 6-11 and the associated text). Alternatively, the key may be secured in a subscriber identity module (SIM), as described below.

図6は、IoTサービス120、IoTハブ110、並びにIoTデバイス101及び102の間の通信を暗号化するために公開鍵インフラストラクチャ(public key infrastructure)(PKI)技術及び/又は対称鍵交換/暗号化技術を使用する、高レベルアーキテクチャを例示する。   FIG. 6 illustrates public key infrastructure (PKI) technology and / or symmetric key exchange / encryption to encrypt communications between IoT service 120, IoT hub 110, and IoT devices 101 and 102. Illustrate high-level architecture using technology.

公開/秘密鍵ペアを使用する実施形態をまず説明し、続いて、対称鍵交換/暗号化技術を使用する実施形態を説明する。具体的には、PKIを使用するある実施形態において、一意的な公開/秘密鍵ペアが、各IoTデバイス101〜102、各IoTハブ110、及びIoTサービス120に関連付けられる。一実施形態では、新しいIoTハブ110がセットアップされるとき、その公開鍵がIoTサービス120に提供され、新しいIoTデバイス101がセットアップされるとき、その公開鍵がIoTハブ110及びIoTサービス120の両方に提供される。デバイス間で公開鍵を安全に交換するための様々な技術を以下に説明する。一実施形態では、いかなる受信デバイスも、署名の妥当性を確認することによって公開鍵の妥当性を検証することができるように、すべての公開鍵が、受信デバイスのすべてに既知である親鍵(すなわち、一種の証明書)によって署名される。したがって、未加工の公開鍵を単に交換するのではなく、むしろこれらの証明書が交換されることになる。   An embodiment using a public / private key pair is described first, followed by an embodiment using a symmetric key exchange / encryption technique. Specifically, in one embodiment using PKI, a unique public / private key pair is associated with each IoT device 101-102, each IoT hub 110, and IoT service 120. In one embodiment, when a new IoT hub 110 is set up, its public key is provided to the IoT service 120, and when a new IoT device 101 is set up, its public key is distributed to both the IoT hub 110 and the IoT service 120. Provided. Various techniques for securely exchanging public keys between devices are described below. In one embodiment, a parent key in which all public keys are known to all of the receiving devices so that any receiving device can verify the validity of the public key by verifying the validity of the signature That is, it is signed by a kind of certificate). Thus, rather than merely exchanging the raw public key, these certificates will be exchanged.

例示したように、一実施形態では、各IoTデバイス101、102は、各デバイスの秘密鍵を記憶するセキュリティのために、それぞれ、安全な鍵記憶装置601、603を含む。次いで、セキュリティロジック602、1304が、安全に記憶された秘密鍵を用いて、本明細書に記載される暗号化/解読動作を実行する。同様に、IoTハブ110は、IoTハブ秘密鍵、並びにIoTデバイス101〜102及びIoTサービス120の公開鍵を記憶するための安全な記憶装置611、並びに、鍵を使用して暗号化/解読動作を実行するためのセキュリティロジック612を含む。最後に、IoTサービス120は、それ自体の秘密鍵、様々なIoTデバイス及びIoTハブの公開鍵を記憶するセキュリティのための安全な記憶装置621、並びに鍵を使用してIoTハブ及びデバイスとの通信を暗号化/解読するためのセキュリティロジック613を含んでもよい。一実施形態では、IoTハブ110がIoTデバイスから公開鍵証明書を受信すると、IoTハブ110は、それを(例えば、上記の親鍵を使用して署名の妥当性を確認することにより)検証し、次いで、その中から公開鍵を抽出し、その公開鍵をその安全な鍵ストア611内に記憶することができる。   As illustrated, in one embodiment, each IoT device 101, 102 includes a secure key store 601, 603, respectively, for security storing the secret key of each device. Security logic 602, 1304 then performs the encryption / decryption operations described herein using the secret key stored securely. Similarly, the IoT hub 110 uses the IoT hub secret key and the secure storage device 611 for storing the IoT devices 101 to 102 and the public key of the IoT service 120, and an encryption / decryption operation using the key. Security logic 612 to execute is included. Finally, the IoT service 120 communicates with the IoT hub and devices using a secure storage device 621 for security storing its own secret key, various IoT devices and the public key of the IoT hub, and the key. May include security logic 613 to encrypt / decrypt. In one embodiment, when IoT hub 110 receives a public key certificate from the IoT device, IoT hub 110 validates it (eg, by verifying the signature using the parent key described above). Then, the public key can be extracted therefrom, and the public key can be stored in the secure key store 611.

例として、一実施形態では、IoTサービス120が、コマンド又はデータ(例えば、ドアを開錠するコマンド、センサを読み取る要求、IoTデバイスにより処理/表示されるべきデータなど)をIoTデバイス101に送信する必要があるとき、セキュリティロジック613は、IoTデバイス101の公開鍵を使用してそのデータ/コマンドを暗号化して、暗号化されたIoTデバイスパケットを生成する。一実施形態では、次いで、セキュリティロジック1013は、IoTハブ110の公開鍵を使用し、IoTデバイスパケットを暗号化して、IoTハブパケットを生成し、IoTハブパケットをIoTハブ110に送信する。一実施形態では、デバイス101が、それが信頼されるソースから変更されていないメッセージを受信していることを検証することができるように、サービス120は、その秘密鍵又は上述の親鍵を用いて、暗号化されたメッセージに署名する。次いで、デバイス101は、秘密鍵及び/又は親鍵に対応する公開鍵を使用して、署名の妥当性を確認してもよい。上述したように、対称鍵交換/暗号化技術が、公開/秘密鍵暗号化の代わりに使用されてもよい。これらの実施形態では、1つの鍵をプライベートに記憶し、対応する公開鍵を他のデバイスに提供するのではなく、それぞれのデバイスに、暗号化のために、かつ署名の妥当性を確認するために使用されるものと同じ対称鍵のコピーを提供してもよい。対称鍵アルゴリズムの一例は高度暗号化標準(Advanced Encryption Standard)(AES)であるが、本発明の基本原理は、いかなるタイプの特定の対称鍵にも限定されない。   As an example, in one embodiment, the IoT service 120 sends a command or data (eg, a command to unlock the door, a request to read a sensor, data to be processed / displayed by the IoT device, etc.) to the IoT device 101 When needed, the security logic 613 encrypts its data / commands using the IoT device's 101 public key to generate an encrypted IoT device packet. In one embodiment, the security logic 1013 then encrypts the IoT device packet using the public key of the IoT hub 110 to generate an IoT hub packet and sends the IoT hub packet to the IoT hub 110. In one embodiment, service 120 uses its private key or the above-mentioned parent key so that device 101 can verify that it has received an unaltered message from a trusted source. Sign the encrypted message. The device 101 may then use the public key corresponding to the private key and / or the parent key to verify the validity of the signature. As mentioned above, symmetric key exchange / encryption techniques may be used instead of public / private key encryption. In these embodiments, rather than storing one key privately and providing the corresponding public key to the other device, to each device for encryption and to validate the signature. You may provide a copy of the same symmetric key as that used in. One example of a symmetric key algorithm is the Advanced Encryption Standard (AES), but the basic principles of the invention are not limited to any type of specific symmetric key.

ある対称鍵実装形態を使用すると、各デバイス101は、IoTハブ110と対称鍵を交換するために、安全な鍵交換プロトコルに入る。動的対称鍵プロビジョニングプロトコル(Dynamic Symmetric Key Provisioning Protocol)(DSKPP)などの安全な鍵プロビジョニングプロトコルが、安全な通信チャネルを介して鍵を交換するために使用され得る(例えば、コメント要求(Request for Comments)(RFC)6063を参照されたい)。しかしながら、本発明の基本原理は、いかなる特定の鍵プロビジョニングプロトコルにも限定されるものではない。   Using a symmetric key implementation, each device 101 enters a secure key exchange protocol to exchange symmetric keys with the IoT hub 110. A secure key provisioning protocol such as Dynamic Symmetric Key Provisioning Protocol (DSKPP) may be used to exchange keys over a secure communication channel (e.g. Request for Comments) ) (RFC) 6063)). However, the basic principles of the invention are not limited to any particular key provisioning protocol.

対称鍵が交換されると、それらは、各デバイス101及びIoTハブ110によって、通信を暗号化するために使用され得る。同様に、IoTハブ110及びIoTサービス120は、安全な対称鍵交換を実行し、次いで、交換された対称鍵を使用して通信を暗号化し得る。一実施形態では、新しい対称鍵が、デバイス101とハブ110との間、及びハブ110とIoTサービス120との間で定期的に交換される。一実施形態では、デバイス101、ハブ110、及びサービス120の間での新しい通信セッションのたびに、新しい対称鍵が交換される(例えば、通信セッションごとに新しい鍵が生成され、安全に交換される)。一実施形態では、IoTハブ内のセキュリティモジュール612が信頼される場合、サービス120は、ハブセキュリティモジュール1312とセッション鍵を交渉し得、次いで、セキュリティモジュール612が、各デバイス120とセッション鍵を交渉することになる。次いで、サービス120からのメッセージは、ハブセキュリティモジュール612で解読及び検証され、その後、デバイス101への送信のために再暗号化される。   Once symmetric keys are exchanged, they can be used by each device 101 and the IoT hub 110 to encrypt communications. Similarly, IoT hub 110 and IoT service 120 may perform secure symmetric key exchange and then encrypt communications using the exchanged symmetric key. In one embodiment, new symmetric keys are exchanged periodically between the device 101 and the hub 110 and between the hub 110 and the IoT service 120. In one embodiment, on each new communication session between device 101, hub 110 and service 120, a new symmetric key is exchanged (eg, a new key is generated for each communication session and exchanged securely) ). In one embodiment, if the security module 612 in the IoT hub is trusted, the service 120 may negotiate a session key with the hub security module 1312 and then the security module 612 negotiates a session key with each device 120 It will be. The message from service 120 is then decrypted and verified at hub security module 612 and then re-encrypted for transmission to device 101.

一実施形態では、ハブセキュリティモジュール612でのセキュリティ侵害を防止するために、1回限りの(恒久的な)インストール鍵が、インストール時にデバイス101とサービス120との間で交渉されてもよい。メッセージをデバイス101に送るとき、サービス120は、まずこのデバイスインストール鍵を用いて暗号化/MACし、次いでハブのセッション鍵を用いてそれを暗号化/MACし得る。次いで、ハブ110は、暗号化されたデバイスブロブを検証及び抽出し、それをデバイスに送ることになる。   In one embodiment, a one-time (permanent) installation key may be negotiated between the device 101 and the service 120 at installation time to prevent a security breach at the hub security module 612. When sending a message to the device 101, the service 120 may first encrypt / MAC using this device installation key and then encrypt / MAC it using the hub's session key. The hub 110 will then verify and extract the encrypted device blob and send it to the device.

本発明の一実施形態では、リプレイアタックを防止するためにカウンタ機構が実装される。例えば、デバイス101からハブ110へ(又は逆もまた同様)の連続する通信それぞれに、継続的に増加するカウンタ値が割り当てられ得る。ハブ110とデバイス101との両方がこの値を追跡し、デバイス間での連続する通信それぞれにおいてその値が正しいことを検証する。これと同じ技術が、ハブ110とサービス120との間に実装され得る。この方法でカウンタを使用すると、各デバイス間での通信を偽装することがより困難になるであろう(カウンタ値が誤ったものになるため)。しかしながら、これを用いずとも、サービスとデバイスとの間で共有されたインストール鍵は、すべてのデバイスに対するネットワーク(ハブ)規模の攻撃を防止するであろう。   In one embodiment of the invention, a counter mechanism is implemented to prevent replay attacks. For example, each successive communication from device 101 to hub 110 (or vice versa) may be assigned a continuously increasing counter value. Both the hub 110 and the device 101 track this value and verify that the value is correct in each successive communication between the devices. The same technology may be implemented between the hub 110 and the service 120. Using counters in this way will make it more difficult to spoof communication between devices (because the counter values will be incorrect). However, without this, the installation key shared between the service and the device will prevent network (hub) scale attacks on all devices.

一実施形態では、公開/秘密鍵暗号化を使用するとき、IoTハブ110は、その秘密鍵を使用してIoTハブパケットを解読し、暗号化されたIoTデバイスパケットを生成し、それを、関連付けられたIoTデバイス101に送信する。次いで、IoTデバイス101は、その秘密鍵を使用してIoTデバイスパケットを解読して、IoTサービス120を起点とするコマンド/データを生成する。次いで、IoTデバイス101は、データを処理し、かつ/又はコマンドを実行してもよい。対称暗号化を使用すると、各デバイスは、共有された対称鍵を用いて暗号化及び解読を行う。いずれかの場合であれば、各送信デバイスはまた、受信デバイスがメッセージの信頼性を検証することができるように、その秘密鍵を用いてメッセージに署名してもよい。   In one embodiment, when using public / private key encryption, the IoT hub 110 decrypts the IoT hub packet using its private key, generates an encrypted IoT device packet, and associates it To the selected IoT device 101. Then, the IoT device 101 decrypts the IoT device packet using the secret key to generate a command / data originating from the IoT service 120. The IoT device 101 may then process the data and / or execute commands. Using symmetric encryption, each device performs encryption and decryption using a shared symmetric key. In any case, each sending device may also sign the message with its private key so that the receiving device can verify the authenticity of the message.

異なる鍵のセットが、IoTデバイス101からIoTハブ110への通信及びIoTサービス120への通信を暗号化するために使用されてもよい。例えば、ある公開/秘密鍵構成を使用すると、一実施形態では、IoTデバイス101上のセキュリティロジック602が、IoTハブ110の公開鍵を使用して、IoTハブ110に送信されたデータパケットを暗号化する。次いで、IoTハブ110上のセキュリティロジック612は、IoTハブの秘密鍵を使用して、データパケットを解読し得る。同様に、IoTデバイス101上のセキュリティロジック602及び/又はIoTハブ110上のセキュリティロジック612は、IoTサービス120の公開鍵を使用して、IoTサービス120に送信されたデータパケットを暗号化し得る(これは次いで、IoTサービス120上のセキュリティロジック613によって、サービスの秘密鍵を使用して解読され得る)。対称鍵を使用すると、デバイス101及びハブ110は、ある対称鍵を共有し得、一方でハブ及びサービス120は、異なる対称鍵を共有し得る。   Different sets of keys may be used to encrypt the communication from the IoT device 101 to the IoT hub 110 and the communication to the IoT service 120. For example, using a public / private key configuration, in one embodiment, security logic 602 on IoT device 101 encrypts data packets sent to IoT hub 110 using the public key of IoT hub 110. Do. Security logic 612 on IoT hub 110 may then decrypt the data packet using the IoT hub's secret key. Similarly, security logic 602 on IoT device 101 and / or security logic 612 on IoT hub 110 may encrypt data packets sent to IoT service 120 using the IoT service 120's public key. May then be decrypted by the security logic 613 on the IoT service 120 using the service's private key). Using a symmetric key, device 101 and hub 110 may share one symmetric key while hub and service 120 may share different symmetric keys.

上記の説明において、ある特定の具体的詳細が上に記載されているが、本発明の基本原理は様々な異なる暗号化技術を使用して実装され得ることに留意すべきである。例えば、上述した一部の実施形態は非対称の公開/秘密鍵ペアを使用するが、別の実施形態は、様々なIoTデバイス101〜102、IoTハブ110、及びIoTサービス120の間で安全に交換される対称鍵を使用し得る。更に、一部の実施形態では、データ/コマンド自体は暗号化されないが、データ/コマンド(又は他のデータ構造)上の署名を生成するために鍵が使用される。次いで、受信者が、その鍵を使用して署名の妥当性を確認し得る。   Although in the above description certain specific details have been described above, it should be noted that the basic principles of the invention can be implemented using various different encryption techniques. For example, while some embodiments described above use asymmetric public / private key pairs, other embodiments securely exchange between various IoT devices 101-102, IoT hub 110, and IoT service 120 Can use symmetric keys. Furthermore, in some embodiments, the data / command itself is not encrypted but a key is used to generate a signature on the data / command (or other data structure). The recipient may then use the key to validate the signature.

図7に例示するように、一実施形態では、各IoTデバイス101上の安全な鍵記憶装置は、プログラマブル加入者識別モジュール(SIM)701を使用して実装される。この実施形態では、IoTデバイス101は、IoTデバイス101上のSIMインタフェース700内に据え付けられたプログラムされていないSIMカード701と共にエンドユーザに最初に提供され得る。1つ以上の暗号鍵のセットを用いてSIMをプログラミングするために、ユーザは、プログラマブルSIMカード701をSIMインタフェース500から取り出し、それをIoTハブ110上のSIMプログラミングインタフェース702に挿入する。次いで、IoTハブ上のプログラミングロジック725が、IoTデバイス101をIoTハブ110及びIoTサービス120に登録/ペアリングするように、SIMカード701を安全にプログラミングする。一実施形態では、公開/秘密鍵ペアは、プログラミングロジック725によってランダムに生成されてもよく、次いで、このペアの公開鍵は、IoTハブの安全な記憶デバイス411内に記憶されてもよく、一方で秘密鍵は、プログラマブルSIM 701内に記憶されてもよい。加えて、プログラミングロジック525は、IoTハブ110、IoTサービス120、及び/又は任意の他のIoTデバイス101の公開鍵を、(IoTデバイス101上のセキュリティロジック1302による発信データの暗号化に使用するために)SIMカード601上に記憶してもよい。SIM 701がプログラミングされると、新しいIoTデバイス101に、SIMを安全な識別子として使用して(例えば、SIMを用いてデバイスを登録するための既存の技術を使用して)IoTサービス120がプロビジョニングされ得る。プロビジョニング後、IoTハブ110とIoTサービス120との両方が、IoTデバイスの公開鍵のコピーを、IoTデバイス101との通信を暗号化する際に使用されるように安全に記憶する。   As illustrated in FIG. 7, in one embodiment, the secure key store on each IoT device 101 is implemented using a programmable subscriber identity module (SIM) 701. In this embodiment, the IoT device 101 may be initially provided to the end user with an unprogrammed SIM card 701 installed in the SIM interface 700 on the IoT device 101. To program the SIM with one or more sets of cryptographic keys, the user retrieves the programmable SIM card 701 from the SIM interface 500 and inserts it into the SIM programming interface 702 on the IoT hub 110. The programming logic 725 on the IoT hub then securely programs the SIM card 701 to register / pair the IoT device 101 to the IoT hub 110 and the IoT service 120. In one embodiment, the public / private key pair may be randomly generated by the programming logic 725, and then the public key of the pair may be stored in the secure storage device 411 of the IoT hub, The secret key may be stored in the programmable SIM 701. In addition, the programming logic 525 may use the public key of the IoT hub 110, the IoT service 120, and / or any other IoT device 101 (for encryption of outgoing data by the security logic 1302 on the IoT device 101) ) May be stored on the SIM card 601. Once the SIM 701 is programmed, the new IoT device 101 is provisioned with the IoT service 120 using the SIM as a secure identifier (e.g. using existing technology to register the device using the SIM) obtain. After provisioning, both the IoT hub 110 and the IoT service 120 securely store a copy of the IoT device's public key for use in encrypting communications with the IoT device 101.

図7に関して上述した技術は、新しいIoTデバイスをエンドユーザに提供する際に多大な柔軟性を提供する。(現在行われているのと同様に)ユーザが販売/購入の際に各SIMを特定のサービスプロバイダに直接登録することを要するのではなく、SIMは、エンドユーザによりIoTハブ110を介して直接プログラミングされてもよく、プログラミングの結果は、IoTサービス120に安全に通信され得る。それ故に、新しいIoTデバイス101がオンライン又はローカルの小売業者からエンドユーザに販売され、後にIoTサービス120が安全にプロビジョニングされ得る。   The techniques described above with respect to FIG. 7 provide great flexibility in providing new IoT devices to end users. Rather than requiring users to register each SIM directly with a particular service provider for sale / purchase (as is currently done), the SIM can be directly configured by the end user via the IoT hub 110 It may be programmed and the results of the programming may be securely communicated to the IoT service 120. Therefore, new IoT devices 101 can be sold to end users from online or local retailers and IoT services 120 can be securely provisioned later.

SIM(加入者識別モジュール)という具体的な文脈において登録及び暗号化技術を上述したが、本発明の基本原理は「SIM」デバイスに限定されない。むしろ、本発明の基本原理は、暗号鍵セットを記憶するための安全な記憶装置を有する、いかなるタイプのデバイスを使用して実装されてもよい。更に、上記の実施形態は取り外し可能なSIMデバイスを含むのに対し、一実施形態では、SIMデバイスは取り外し可能でないが、IoTデバイス自体が、IoTハブ110のプログラミングインタフェース702に挿入されてもよい。   Although the registration and encryption techniques are described above in the specific context of a SIM (Subscriber Identity Module), the basic principle of the invention is not limited to "SIM" devices. Rather, the basic principles of the present invention may be implemented using any type of device having secure storage for storing cryptographic key sets. Furthermore, while the above embodiments include removable SIM devices, in one embodiment, the SIM device is not removable, but the IoT device itself may be inserted into the programming interface 702 of the IoT hub 110.

一実施形態では、ユーザがSIM(又は他のデバイス)をプログラミングすることを要するのではなく、SIMは、エンドユーザへの流通前に、IoTデバイス101に予めプログラミングされる。この実施形態において、ユーザがIoTデバイス101をセットアップするとき、本明細書に記載される様々な技術が、IoTハブ110/IoTサービス120と新しいIoTデバイス101との間で暗号鍵を安全に交換するために使用され得る。   In one embodiment, rather than requiring the user to program the SIM (or other device), the SIM is preprogrammed into the IoT device 101 prior to distribution to the end user. In this embodiment, when the user sets up the IoT device 101, the various techniques described herein securely exchange cryptographic keys between the IoT hub 110 / IoT service 120 and the new IoT device 101. Can be used for

例えば、図8Aに例示するように、各IoTデバイス101又はSIM 401は、IoTデバイス101及び/又はSIM 701を一意的に識別するバーコード又はQRコード701と共に梱包されていてもよい。一実施形態では、バーコード又はQRコード801は、IoTデバイス101又はSIM 1001の公開鍵の符号化表現を含む。代替的に、バーコード又はQRコード801は、IoTハブ110及び/又はIoTサービス120によって、公開鍵を識別又は生成するために使用されてもよい(例えば、安全な記憶装置内に既に記憶されている公開鍵に対するポインタとして使用される)。バーコード又はQRコード601は、別個のカード上に(図8Aに示されるように)印刷されてもよく、又はIoTデバイス自体上に直接印刷されてもよい。バーコードが印刷される場所に関わらず、一実施形態では、IoTハブ110には、バーコードを読み取り、得られたデータをIoTハブ110上のセキュリティロジック1012及び/又はIoTサービス120上のセキュリティロジック1013に提供するための、バーコードリーダ206が備わっている。次いで、IoTハブ110上のセキュリティロジック1012は、その安全な鍵記憶装置1011内にIoTデバイスの公開鍵を記憶してもよく、IoTサービス120上のセキュリティロジック1013は、その安全な記憶装置1021内に公開鍵を(後の暗号化通信に使用するために)記憶してもよい。   For example, as illustrated in FIG. 8A, each IoT device 101 or SIM 401 may be packaged with a barcode or QR code 701 that uniquely identifies the IoT device 101 and / or SIM 701. In one embodiment, the barcode or QR code 801 includes an encoded representation of the IoT device 101 or SIM 1001 public key. Alternatively, the barcode or QR code 801 may be used by the IoT hub 110 and / or the IoT service 120 to identify or generate a public key (eg, already stored in a secure storage device) Used as a pointer to the public key). The barcode or QR code 601 may be printed on a separate card (as shown in FIG. 8A) or may be printed directly on the IoT device itself. Regardless of where the barcode is printed, in one embodiment, the IoT hub 110 reads the barcode and obtains the obtained data on security logic 1012 on the IoT hub 110 and / or security logic on the IoT service 120 A barcode reader 206 is provided to provide to 1013. The security logic 1012 on the IoT hub 110 may then store the IoT device's public key in its secure key store 1011, and the security logic 1013 on the IoT service 120 in its secure storage 1021. The public key may be stored in (for later use in encrypted communication).

一実施形態では、バーコード又はQRコード801内に含まれるデータはまた、インストールされたIoTアプリケーション又はIoTサービスプロバイダにより設計されたブラウザベースのアプレットを用いて、ユーザデバイス135(例えば、iPhone又はAndroidデバイスなど)によりキャプチャされてもよい。キャプチャされると、バーコードデータは、安全な接続(例えば、セキュアソケットレイヤー(secure sockets layer)(SSL)接続など)を介して、IoTサービス120に安全に通信され得る。バーコードデータはまた、安全なローカル接続を介して(例えば、ローカルWiFi又はBluetooth LE接続を介して)、クライアントデバイス135からIoTハブ110に提供されてもよい。   In one embodiment, the data contained within the barcode or QR code 801 may also be stored in the user device 135 (eg, an iPhone or Android device) using an installed IoT application or browser-based applet designed by the IoT service provider. Etc.). Once captured, the barcode data may be securely communicated to the IoT service 120 via a secure connection (eg, a secure sockets layer (SSL) connection, etc.). Barcode data may also be provided from client device 135 to IoT hub 110 via a secure local connection (eg, via a local WiFi or Bluetooth LE connection).

IoTデバイス101上のセキュリティロジック1002及びIoTハブ110上のセキュリティロジック1012は、ハードウェア、ソフトウェア、ファームウェア、又はそれらの任意の組み合わせを使用して実装され得る。例えば、一実施形態では、セキュリティロジック1002、1012は、IoTデバイス101とIoTハブ110との間にローカル通信チャネル130を確立するために使用されるチップ(例えば、ローカルチャネル130がBluetooth LEである場合は、Bluetooth LEチップ)内に実装される。セキュリティロジック1002、1012の具体的な位置に関わらず、一実施形態では、セキュリティロジック1002、1012は、ある特定のタイプのプログラムコードを実行するために安全な実行環境を確立するように設計される。これは、例えば、TrustZone技術(一部のARMプロセッサで利用可能)及び/又はトラステッド・エグゼキューション・テクノロジー(Intelにより設計)を使用することによって、実装され得る。当然のことながら、本発明の基本原理は、いかなる特定のタイプの安全な実行技術にも限定されない。   Security logic 1002 on IoT device 101 and security logic 1012 on IoT hub 110 may be implemented using hardware, software, firmware, or any combination thereof. For example, in one embodiment, the security logic 1002, 1012 is a chip used to establish the local communication channel 130 between the IoT device 101 and the IoT hub 110 (eg, if the local channel 130 is a Bluetooth LE) Is implemented in the Bluetooth LE chip). Regardless of the specific location of the security logic 1002, 1012, in one embodiment, the security logic 1002, 1012 is designed to establish a secure execution environment to execute certain types of program code. . This can be implemented, for example, by using TrustZone technology (available on some ARM processors) and / or trusted execution technology (designed by Intel). It will be appreciated that the basic principle of the invention is not limited to any particular type of secure implementation technology.

一実施形態では、バーコード又はQRコード701は、各IoTデバイス101をIoTハブ110とペアリングするために使用され得る。例えば、Bluetooth LEデバイスをペアリングするために現在使用されている標準的な無線ペアリングプロセスを使用するのではなく、バーコード又はQRコード701内に組み込まれたペアリングコードをIoTハブ110に提供して、IoTハブを対応するIoTデバイスとペアリングしてもよい。   In one embodiment, the barcode or QR code 701 may be used to pair each IoT device 101 with the IoT hub 110. For example, instead of using the standard wireless pairing process currently used to pair Bluetooth LE devices, the IoT hub 110 is provided with a pairing code embedded in a barcode or QR code 701 Then, the IoT hub may be paired with the corresponding IoT device.

図8Bは、IoTハブ110上のバーコードリーダ206が、IoTデバイス101に関連付けられたバーコード/QRコード801をキャプチャする、一実施形態を例示する。上述したように、バーコード/QRコード801は、IoTデバイス101上に直接印刷されてもよく、又はIoTデバイス101と共に提供される別個のカード上に印刷されてもよい。いずれの場合においても、バーコードリーダ206は、バーコード/QRコード801からペアリングコードを読み取り、このペアリングコードをローカル通信モジュール880に提供する。一実施形態では、ローカル通信モジュール880は、Bluetooth LEチップ及び関連付けられたソフトウェアであるが、本発明の基本原理は、いかなる特定のプロトコル標準にも限定されない。ペアリングコードが受信されると、それは、ペアリングデータ885を含む安全な記憶装置内に記憶され、IoTデバイス101とIoTハブ110とが自動的にペアリングされる。この方法でIoTハブが新しいIoTデバイスとペアリングされるたびに、そのペアリングに関するペアリングデータが、安全な記憶装置685内に記憶される。一実施形態では、IoTハブ110のローカル通信モジュール880がペアリングコードを受信すると、それは、このコードを鍵として使用して、ローカル無線チャネルを介したIoTデバイス101との通信を暗号化し得る。   FIG. 8B illustrates an embodiment in which the barcode reader 206 on the IoT hub 110 captures the barcode / QR code 801 associated with the IoT device 101. As mentioned above, the barcode / QR code 801 may be printed directly on the IoT device 101 or may be printed on a separate card provided with the IoT device 101. In any case, the barcode reader 206 reads the pairing code from the barcode / QR code 801 and provides the pairing code to the local communication module 880. In one embodiment, the local communication module 880 is a Bluetooth LE chip and associated software, but the basic principles of the invention are not limited to any particular protocol standard. When the pairing code is received, it is stored in a secure storage device including pairing data 885, and the IoT device 101 and the IoT hub 110 are automatically paired. Each time an IoT hub is paired with a new IoT device in this manner, pairing data regarding the pairing is stored in the secure storage device 685. In one embodiment, when the local communication module 880 of the IoT hub 110 receives the pairing code, it may use this code as a key to encrypt communication with the IoT device 101 over the local wireless channel.

同様に、IoTデバイス101側では、ローカル通信モジュール890が、IoTハブとのペアリングを示すペアリングデータを、ローカルの安全な記憶デバイス895内に記憶する。ペアリングデータ895は、バーコード/QRコード801で識別される予めプログラミングされたペアリングコードを含んでもよい。ペアリングデータ895はまた、安全なローカル通信チャネルを確立するために必要な、IoTハブ110上のローカル通信モジュール880から受信されるペアリングデータ(例えば、IoTハブ110との通信を暗号化するための追加の鍵)を含んでもよい。   Similarly, on the IoT device 101 side, the local communication module 890 stores pairing data indicating pairing with the IoT hub in the local secure storage device 895. The pairing data 895 may include the preprogrammed pairing code identified by the barcode / QR code 801. The pairing data 895 is also for pairing data received from the local communication module 880 on the IoT hub 110 (eg, to encrypt communication with the IoT hub 110, necessary to establish a secure local communication channel) Additional keys) may be included.

したがって、バーコード/QRコード801は、ペアリングコードが無線で送信されないため、現在の無線ペアリングプロトコルよりも遥かに安全な方法でローカルペアリングを実行するために使用され得る。加えて、一実施形態では、ペアリングに使用されるものと同じバーコード/QRコード801を使用して暗号鍵を識別し、IoTデバイス101からIoTハブ110へ、かつIoTハブ110からIoTサービス120への安全な接続を構築することができる。   Thus, the barcode / QR code 801 can be used to perform local pairing in a much more secure way than current wireless pairing protocols, as no pairing code is sent wirelessly. In addition, in one embodiment, the same bar code / QR code 801 used for pairing is used to identify the encryption key, and from the IoT device 101 to the IoT hub 110 and from the IoT hub 110 to the IoT service 120 You can build a secure connection to it.

本発明の一実施形態によるSIMカードをプログラミングするための方法が、図9に例示される。本方法は、上述のシステムアーキテクチャ内で実装され得るが、いかなる特定のシステムアーキテクチャにも限定されない。   A method for programming a SIM card according to an embodiment of the present invention is illustrated in FIG. The method may be implemented within the system architecture described above, but is not limited to any particular system architecture.

901において、ユーザは、空のSIMカードを備えた新しいIoTデバイスを受け取り、802において、ユーザは、空のSIMカードをIoTハブに挿入する。903において、ユーザは、1つ以上の暗号鍵のセットを用いて空のSIMカードをプログラミングする。例えば、上述のように、一実施形態において、IoTハブは、公開/秘密鍵ペアをランダムに生成し、秘密鍵をSIMカード上に、かつ公開鍵をそのローカルの安全な記憶装置内に記憶し得る。加えて、904において、IoTデバイスを識別し、かつIoTデバイスとの暗号化通信を確立するために使用され得るように、少なくとも公開鍵がIoTサービスに送信される。上述したように、一実施形態では、「SIM」カード以外のプログラマブルデバイスが、図9に示される方法でSIMカードと同じ機能を実行するために使用されてもよい。   At 901, the user receives a new IoT device with an empty SIM card, and at 802, the user inserts an empty SIM card into the IoT hub. At 903, the user programs an empty SIM card with one or more sets of encryption keys. For example, as described above, in one embodiment, the IoT hub randomly generates a public / private key pair, stores the private key on the SIM card, and stores the public key in its local secure storage device. obtain. In addition, at 904, at least the public key is sent to the IoT service so that it can be used to identify the IoT device and establish encrypted communication with the IoT device. As mentioned above, in one embodiment, programmable devices other than the "SIM" card may be used to perform the same function as the SIM card in the manner shown in FIG.

新しいIoTデバイスをネットワークに統合するための方法が、図10に例示される。本方法は、上述のシステムアーキテクチャ内で実装され得るが、いかなる特定のシステムアーキテクチャにも限定されない。   A method for integrating a new IoT device into a network is illustrated in FIG. The method may be implemented within the system architecture described above, but is not limited to any particular system architecture.

1001において、ユーザは、暗号鍵が予め割り当てられている新しいIoTデバイスを受け取る。1002において、この鍵がIoTハブに安全に提供される。上述のように、一実施形態では、これは、IoTデバイスに関連付けられたバーコードを読み取って、デバイスに割り当てられた公開/秘密鍵ペアの公開鍵を識別することを伴う。バーコードは、IoTハブによって直接読み取られても、又はアプリケーション若しくはブラウザを介してモバイルデバイスによってキャプチャされてもよい。別の実施形態では、Bluetooth LEチャネル、近距離通信(NFC)チャネル、又は安全なWiFiチャネルなどの安全な通信チャネルが、鍵の交換のためにIoTデバイスとIoTハブとの間に確立されてもよい。鍵の送信方法に関わらず、受信されると、鍵はIoTハブデバイスの安全な鍵ストア内に記憶される。上述のように、セキュアエンクレーブ、トラステッド・エグゼキューション・テクノロジー(Trusted Execution Technology)(TXT)、及び/又はTrustzoneなどの様々な安全な実行技術が、鍵の記憶及び保護のためにIoTハブで使用され得る。加えて、1003において、鍵はIoTサービスに安全に送信され、IoTサービスは、この鍵をそれ自体の安全な鍵ストア内に記憶する。IoTサービスは次いで、この鍵を使用して、IoTデバイスとの通信を暗号化し得る。この場合も、この交換は、証明書/署名付き鍵を使用して実行されてもよい。ハブ110内では、記憶された鍵の改変/追加/除去を防止することが特に重要である。   At 1001, the user receives a new IoT device to which an encryption key has been pre-assigned. At 1002, this key is securely provided to the IoT hub. As mentioned above, in one embodiment, this involves reading the barcode associated with the IoT device to identify the public key of the public / private key pair assigned to the device. The barcode may be read directly by the IoT hub or captured by the mobile device via an application or browser. In another embodiment, a secure communication channel such as a Bluetooth LE channel, a near field communication (NFC) channel, or a secure WiFi channel may be established between the IoT device and the IoT hub for key exchange. Good. Regardless of how the key is sent, once received, the key is stored in the IoT hub device's secure keystore. As mentioned above, various secure execution technologies such as Secure Enclave, Trusted Execution Technology (TXT), and / or Trustzone are used at the IoT hub for key storage and protection It can be done. In addition, at 1003, the key is securely transmitted to the IoT service, which stores the key in its own secure key store. The IoT service may then use this key to encrypt communication with the IoT device. Again, this exchange may be performed using a certificate / signed key. Within the hub 110, it is particularly important to prevent modification / addition / removal of stored keys.

公開/秘密鍵を使用してコマンド/データをIoTデバイスに安全に通信するための方法が、図11に例示される。本方法は、上述のシステムアーキテクチャ内で実装され得るが、いかなる特定のシステムアーキテクチャにも限定されない。   A method for securely communicating commands / data to an IoT device using a public / private key is illustrated in FIG. The method may be implemented within the system architecture described above, but is not limited to any particular system architecture.

1101において、IoTサービスは、IoTデバイス公開鍵を使用してデータ/コマンドを暗号化して、IoTデバイスパケットを作成する。次いで、IoTサービスは、IoTハブの公開鍵を使用し、このIoTデバイスパケットを暗号化して、IoTハブパケットを作成する(例えば、IoTデバイスパケット周囲のIoTハブラッパーを作成する)。1102において、IoTサービスは、IoTハブパケットをIoTハブに送信する。1103において、IoTハブは、IoTハブの秘密鍵を使用してIoTハブパケットを解読して、IoTデバイスパケットを生成する。次いで、1104において、IoTハブは、IoTデバイスパケットをIoTデバイスに送信し、IoTデバイスは、1105において、IoTデバイス秘密鍵を使用してIoTデバイスパケットを解読して、データ/コマンドを生成する。1106において、IoTデバイスは、データ/コマンドを処理する。   At 1101, the IoT service encrypts data / commands using the IoT device public key to create an IoT device packet. The IoT service then encrypts this IoT device packet using the IoT hub's public key to create an IoT hub packet (eg, create an IoT hub wrapper around the IoT device packet). At 1102, the IoT service sends an IoT hub packet to the IoT hub. At 1103, the IoT hub decrypts the IoT hub packet using the IoT hub's secret key to generate an IoT device packet. Then, at 1104, the IoT hub sends the IoT device packet to the IoT device, and the IoT device decrypts the IoT device packet at 1105 using the IoT device secret key to generate data / commands. At 1106, the IoT device processes data / commands.

対称鍵を使用するある実施形態において、対称鍵交換は、各デバイス間(例えば、各デバイスとハブと、及びハブとサービスとの間)で交渉され得る。鍵交換が完了すると、各送信デバイスは、対称鍵を使用して各送信を暗号化し、かつ/又はそれに署名し、その後、データを受信デバイスに送信する。
自動的無線ネットワーク認証のための実施形態
In certain embodiments that use symmetric keys, symmetric key exchange may be negotiated between each device (e.g., between each device and a hub, and between a hub and a service). When the key exchange is complete, each transmitting device encrypts and / or signs each transmission using the symmetric key and then transmits the data to the receiving device.
Embodiments for Automatic Wireless Network Authentication

IoTハブをWiFiネットワークなどのローカル無線ネットワークに接続するためには、ユーザは、ネットワークセキュリティ鍵又はパスワードなどのネットワーク資格情報を提供しなければならない。ユーザID/パスワードの組み合わせなどの他の認証層が必要とされることもある。一実施形態では、IoTハブが、ユーザにより提供されたネットワーク資格情報を使用してローカル無線ネットワークに無事接続すると、IoTハブは、このネットワーク資格情報をIoTサービス120などの安全な記憶位置に安全に送信する。続いて、ユーザが新しいIoTデバイスを受け取るとき、このIoTデバイスは、ネットワーク資格情報要求をIoTハブに送信するように構成されていてもよい。それに応答して、IoTハブは、この要求をIoTサービス120に転送することができ、IoTサービス120は、例えば、IoTデバイス、ユーザ、及び/又はそれへの接続が必要とされるアクセスポイントの識別を使用して、資格情報データベース内でルックアップを行い、関連するネットワーク資格情報を識別することができる。ネットワーク資格情報が識別され得る場合、ネットワーク資格情報がIoTデバイスに送り返され、次いで、IoTデバイスは、このネットワーク資格情報を使用してローカル無線ネットワークにシームレスに接続する。   In order to connect the IoT hub to a local wireless network such as a WiFi network, the user has to provide network credentials such as a network security key or password. Other authentication layers, such as user ID / password combinations may be required. In one embodiment, when the IoT hub successfully connects to the local wireless network using the network credentials provided by the user, the IoT hub securely secures the network credentials to a secure storage location such as the IoT service 120. Send. Subsequently, when the user receives a new IoT device, this IoT device may be configured to send a network credential request to the IoT hub. In response, the IoT hub can forward this request to the IoT service 120, which, for example, identifies the IoT device, the user, and / or the access point to which a connection to it is required. Can be used to look up in the credential database to identify relevant network credentials. If network credentials can be identified, the network credentials are sent back to the IoT device, which then seamlessly connects to the local wireless network using the network credentials.

図12は、IoTハブ1202上の資格情報管理モジュール1210が本明細書に記載の資格情報処理技術を実装する、例示的なシステムアーキテクチャを例示する。例示したように、ユーザは、ネットワークセキュリティ鍵又はパスワードなどのネットワーク資格情報をユーザデバイス135(これは、モバイルスマートフォンデバイス、装着可能なデータ処理デバイス、ラップトップコンピュータ、又はデスクトップコンピュータであり得る)を介してIoTハブ1202に提供し得る。ユーザデバイス135は、最初に有線接続又はBTLEなどの近距離無線接続を通じてIoTハブ1202に接続し、ユーザは、IoTハブ1202と接続するように構成されたアプリケーション又はブラウザを介して資格情報を提供する。   FIG. 12 illustrates an exemplary system architecture in which the credential information management module 1210 on the IoT hub 1202 implements the credential information processing technology described herein. As illustrated, the user has network credentials such as a network security key or password via user device 135 (which may be a mobile smart phone device, wearable data processing device, laptop computer, or desktop computer). Can be provided to the IoT hub 1202. The user device 135 initially connects to the IoT hub 1202 through a wired connection or a near field wireless connection such as BTLE, and the user provides credentials via an application or browser configured to connect with the IoT hub 1202 .

一実施形態では、ネットワーク資格情報は、Wi−Fi Protected Access(WPA)又はWi−Fi Protected Access II(WPA2)などのセキュリティ鍵を含む。この実施形態では、ネットワーク資格情報は、WPAパーソナル実装用の事前共有鍵(PSK)の形態であってもよく、又はWPAエンタープライズ(これは、RADIUS認証サーバ及び様々な形態の拡張認証プロトコル(EAP)を利用できる)により使用されるものなどのより先進の認証技術に依拠してもよい。   In one embodiment, the network credentials include a security key such as Wi-Fi Protected Access (WPA) or Wi-Fi Protected Access II (WPA 2). In this embodiment, the network credentials may be in the form of a pre-shared key (PSK) for WPA personal implementation, or WPA enterprise (which may be a RADIUS authentication server and various forms of Extensible Authentication Protocol (EAP) May rely on more advanced authentication technologies such as those used by

使用される特定の認証/暗号化技術に関わらず、必要なネットワーク資格情報をユーザが提供すると、IoTハブ1202は、その資格情報を使用してWiFiアクセスポイント/ルータ1200への安全な無線接続を確立し、次いで、WiFiアクセスポイント/ルータ1200が、インターネット1222をわたってクラウドサービス1220への接続を提供する。一実施形態では、IoTハブ1210上の資格情報管理モジュール1210は、クラウドサービス1220上の資格情報管理モジュール1215との接続を確立する(例えば、これは、上記のIoTサービス120又は外部ウェブサイト130であってもよい)。   Regardless of the specific authentication / encryption technology used, when the user provides the necessary network credentials, the IoT hub 1202 uses that credentials to provide a secure wireless connection to the WiFi access point / router 1200. Once established, the WiFi access point / router 1200 provides a connection to the cloud service 1220 across the Internet 1222. In one embodiment, the credential information management module 1210 on the IoT hub 1210 establishes a connection with the credential information management module 1215 on the cloud service 1220 (eg, this is the IoT service 120 or external website 130 described above). May be).

一実施形態では、上記の鍵ベースの技術のうち1つ以上を用いて、IoTハブ1202上の資格情報管理モジュール1210とクラウドサービス1220上の資格情報管理モジュール1215の間の接続が必ず安全であるようにしてもよい(例えば、対称鍵又は非対称鍵を使用してすべてのネットワートラフィックを暗号化することにより)。安全な接続が確立されると、IoTハブ1202上の資格情報管理モジュール1210は、ネットワーク資格情報のコピーをクラウドサービス上の資格情報管理モジュール1215に送信し、資格情報管理モジュール1215は、資格情報のコピーを安全な資格情報データベース1230内に記憶する。資格情報データベース1230は、IoTハブ1202を一意的に識別するデータ、IoTハブ1202に関連付けられたユーザアカウントを一意的に識別するデータ、及び/又はWiFiアクセスポイント/ルータ1200を一意的に識別するデータ(ネットワーク資格情報が必ず正しいユーザ及びWiFiアクセスポイント/ルータに関連付けられるようにするために)を含んでもよい。   In one embodiment, the connection between the credential management module 1210 on the IoT hub 1202 and the credential management module 1215 on the cloud service 1220 is necessarily secure using one or more of the key-based techniques described above (Eg, by encrypting all network traffic using symmetric or asymmetric keys). Once a secure connection is established, the credential management module 1210 on the IoT hub 1202 sends a copy of the network credential to the credential management module 1215 on the cloud service, and the credential management module 1215 Store the copy in secure credential database 1230. The credential information database 1230 may be data uniquely identifying the IoT hub 1202, data uniquely identifying a user account associated with the IoT hub 1202, and / or data uniquely identifying the WiFi access point / router 1200. (To ensure that network credentials are always associated with the correct user and WiFi access point / router).

図13に例示するように、ネットワーク資格情報が資格情報データベース1230内に記憶された後で、ユーザが新しいIoTデバイス1300を購入すると、このIoTデバイスは、そのローカル無線インタフェース(例えば、BTLE)を有効にし、カバレッジ内に有効なデバイス(例えば、IoTハブ1202、他のIoTデバイス、又はユーザのモバイルデバイス)がないか検索することになる。図13に示される特定の実施形態では、IoTデバイス1300は、IoTハブ1202を検出し、それに接続している。一実施形態では、接続が確立されると、ネットワーク登録モジュール1310が、ネットワーク資格情報要求をIoTハブ1202上の資格情報管理モジュール1210に送信する。資格情報要求は、IoTデバイス1300が接続することを希望するWiFIアクセスポイント/ルータ1200を識別するデータ(例えば、SSID、MACアドレス、又はWiFiアクセスポイント/ルータ1200を一意的に識別する他のデータ)、並びにIoTデバイス1300を一意的に識別するデータを含んでもよい。   As illustrated in FIG. 13, when the user purchases a new IoT device 1300 after the network credentials are stored in the credential database 1230, the IoT device validates its local wireless interface (eg, BTLE) And search for valid devices (eg, IoT hub 1202, other IoT devices, or user's mobile devices) within the coverage. In the particular embodiment shown in FIG. 13, the IoT device 1300 detects and connects to the IoT hub 1202. In one embodiment, when the connection is established, the network registration module 1310 sends a network credential request to the credential management module 1210 on the IoT hub 1202. The credential information request is data identifying the WiFI access point / router 1200 with which the IoT device 1300 wishes to connect (eg, SSID, MAC address, or other data uniquely identifying the WiFi access point / router 1200) , As well as data uniquely identifying the IoT device 1300.

次いで、資格情報管理モジュール1210は、資格情報管理要求をクラウドサービス1220上の資格情報管理モジュール1215に安全に送信し、資格情報管理モジュール1215は、ユーザ、IoTデバイス1300、及び/又はWiFiアクセスポイント/ルータ1200を一意的に識別するデータを使用して資格情報データベース1230内でルックアップを行う。この場合も、任意の鍵ベースのセキュリティ技術を使用して、IoTハブとクラウドサービスの間の接続が必ず安全であるようにしてもよい。要求の中で提供されたデータに基づいて資格情報が発見された場合、資格情報管理モジュール1215は、ネットワーク資格情報をIoTハブ1202上の資格情報管理モジュール1210に安全に送り返し、次いで、資格情報管理モジュール1210は、そのネットワーク資格情報をIoTデバイス1300のネットワーク登録モジュール1310に提供する。次いで、IoTデバイス1300は、ネットワーク資格情報を使用してWiFiアクセスポイント/ルータ1200への安全な接続を自動的に確立する。結果として、ユーザは、WiFiアクセスポイント/ルータ1200に接続するために新しいIoTデバイス1300を手動で構成する必要がない。むしろ、ネットワーク資格情報が既にクラウドサービス1220上のそのユーザのアカウントに関連付けられているため、ネットワーク資格情報はIoTデバイス1300に自動的に提供され得、次いで、IoTデバイス1300はシームレスにネットワークに接続することになる。   The credential management module 1210 then securely sends a credential management request to the credential management module 1215 on the cloud service 1220, the credential management module 1215 may be a user, an IoT device 1300, and / or a WiFi access point // A lookup is performed in credential database 1230 using data that uniquely identifies router 1200. Again, any key based security technology may be used to ensure that the connection between the IoT hub and the cloud service is secure. If credential information is found based on the data provided in the request, credential management module 1215 securely sends back network credential information to credential management module 1210 on IoT hub 1202 and then credential management. Module 1210 provides the network credential to network registration module 1310 of IoT device 1300. The IoT device 1300 then automatically establishes a secure connection to the WiFi access point / router 1200 using the network credentials. As a result, the user does not have to manually configure the new IoT device 1300 to connect to the WiFi access point / router 1200. Rather, because network credentials are already associated with the user's account on the cloud service 1220, network credentials may be automatically provided to the IoT device 1300, which then seamlessly connects to the network It will be.

上述したように、図13はIoTハブ1202を通じて接続するIoTデバイス1300を例示しているものの、IoTデバイス1300は、IoTハブ1202が範囲内にない場合、別のIoTデバイスを通じて接続してもよい。次いで、他のIoTデバイス(これは、IoTハブに接続されている)が、新しいIoTデバイスをIoTハブ1202上の資格情報管理モジュール1210に連結してもよい。同様に、IoTハブと別のIoTの両方が利用不可能(例えば、範囲外)である場合、IoTデバイス1300は、ユーザのモバイルデバイス135に接続するように構成されてもよく、モバイルデバイス135は、クラウドサービス上の資格情報管理モジュール1215に(直接、又はIoTハブ1202を通じて、のいずれかにより)接続するためのブラウザ/アプリケーションを含んでもよい。   As mentioned above, although FIG. 13 illustrates the IoT device 1300 connecting through the IoT hub 1202, the IoT device 1300 may connect through another IoT device if the IoT hub 1202 is not in range. Then, another IoT device (which is connected to the IoT hub) may couple the new IoT device to the credential management module 1210 on the IoT hub 1202. Similarly, if both the IoT hub and another IoT are unavailable (eg, out of range), the IoT device 1300 may be configured to connect to the mobile device 135 of the user, and the mobile device 135 may , A browser / application for connecting to the credential management module 1215 on the cloud service (either directly or through the IoT hub 1202).

一実施形態では、IoTハブ1300上のネットワーク登録モジュール1310は、まずIoTハブ1202を、次いで別のIoTデバイスを、次いでユーザモバイルデバイスを検索するように構成される。次いで、ネットワーク登録モジュール1310は、上記デバイスのうち最初のものに接続し、接続を提供することになる。上記の接続は、BTLEを含むが、それに限定されない任意の種類のローカル通信プロトコルを使用して形成することができる。   In one embodiment, the network registration module 1310 on the IoT hub 1300 is configured to search for the IoT hub 1202 first, then another IoT device, and then the user mobile device. The network registration module 1310 will then connect to the first of the devices and provide a connection. The above connections can be made using any type of local communication protocol, including but not limited to BTLE.

一実施形態では、ネットワーク資格情報は、IoTハブ1202によりアクセス可能な安全な記憶デバイス内にローカルに記憶されてもよく、又はIoTハブ1202内に収容されてもよい(クラウドサービス1220上に遠隔にネットワーク資格情報を記憶することに加えて、又はその代わりに)。それ故に、この実施形態では、ネットワーク資格情報は、クラウドサービス1220への遠隔クエリの必要性なしに提供され得る。   In one embodiment, network credential information may be stored locally in a secure storage device accessible by IoT hub 1202 or may be contained within IoT hub 1202 (remotely on cloud service 1220) In addition to or instead of storing network credentials). Thus, in this embodiment, network credential information may be provided without the need for remote queries to the cloud service 1220.

「クラウドサービス」及び「IoTクラウドサービス」という用語は、本明細書に記載のIoTデバイス用のネットワーク資格情報を記憶及び提供することができるインターネット上の任意のサービスを指し得る(例えば、上記のIoTサービス及び外部サービスなど)。一実施形態では、クラウドサービス1220は、IoTハブ及びIoTデバイスをエンドユーザに提供する主体と同じ主体により所有及び運営される。別の実施形態では、IoTデバイスのうち少なくとも一部は、本明細書に記載の技術がクラウドサービス1220を使用して必ず実装され得るように、クラウドサービスと協調するOEMにより設計及び販売されてもよい(例えば、合意された事業協定を介して)。   The terms "cloud service" and "IoT cloud service" may refer to any service on the Internet that can store and provide network credential information for the IoT devices described herein (e.g., the IoT above) Services and external services, etc.) In one embodiment, the cloud service 1220 is owned and operated by the same entity as the IoT hub and the entity that provides the IoT device to the end user. In another embodiment, at least a portion of the IoT devices may also be designed and sold by an OEM that cooperates with the cloud service, such that the techniques described herein can always be implemented using the cloud service 1220. Good (eg, through an agreed business agreement).

本発明の一実施形態に従ってネットワーク資格情報を収集及び記憶するための方法が、図14に例示される。本方法は、上記のシステムアーキテクチャとの関連で実装され得るが、いかなる特定のアーキテクチャにも限定されない。   A method for collecting and storing network credentials in accordance with one embodiment of the present invention is illustrated in FIG. The method may be implemented in the context of the system architecture described above, but is not limited to any particular architecture.

1401において、ユーザがネットワーク資格情報をIoTハブに提供する。資格情報は、例えば、ユーザのデータ処理デバイス上にインストールされたブラウザ又はアプリケーション内で実行されるネットワーク設定ウィザードを通じて提供されてもよく、データ処理デバイスは、有線接続又はローカル無線接続(例えば、BTLE)を通じてIoTハブに接続し得る。ネットワーク資格情報が提供されると、1402において、IoTハブは、インターネットをわたってIoTクラウドサービスへの安全な接続を確立し、1403において、ネットワーク資格情報をIoTクラウドサービスに安全に送信する。1404において、IoTクラウドサービスは、そのデータベース内にネットワーク資格情報を記憶し、資格情報をIoTクラウドサービス上のユーザのアカウントに、及び/又はそのためにネットワーク資格情報が使用されている特定のWiFiアクセスポイント/ルータに関連付ける。   At 1401, a user provides network credential information to the IoT hub. The credentials may be provided, for example, through a network configuration wizard running in a browser or application installed on the user's data processing device, which may be a wired connection or a local wireless connection (eg BTLE). Can connect to the IoT hub through Once the network credentials are provided, at 1402, the IoT hub establishes a secure connection to the IoT cloud service across the Internet and, at 1403, securely sends the network credentials to the IoT cloud service. At 1404, the IoT Cloud Service stores network credential information in its database, and the particular WiFi Access Point for which the credential information is used for the user's account on the IoT Cloud Service and / or for which network credential information is used Associate with / router.

図15は、記憶されたネットワーク資格情報を使用して新しいIoTデバイスをシームレスに更新するための、本発明の一実施形態に従った方法を例示する。本方法は、上記のシステムアーキテクチャとの関連で実装され得るが、いかなる特定のアーキテクチャにも限定されない。   FIG. 15 illustrates a method according to an embodiment of the present invention for seamlessly updating a new IoT device using stored network credentials. The method may be implemented in the context of the system architecture described above, but is not limited to any particular architecture.

1501において、ユーザが新しいIoTデバイスを受け取る。IoTデバイスは、IoTクラウドサービスから、及び/又はIoTクラウドサービスと関係があるOEMから注文したものであってもよい。いずれの場合も、新しいIoTデバイスは、新しいIoTデバイスを受け取ったユーザのアカウントに関連付けられている。   At 1501, the user receives a new IoT device. The IoT device may be ordered from an IoT cloud service and / or from an OEM associated with the IoT cloud service. In any case, the new IoT device is associated with the account of the user who received the new IoT device.

1502において、新しいIoTデバイスが電源オンされると、新しいIoTデバイスは最初にローカルIoTハブを検索する。上述したように、検索は、BTLEなどのローカル無線プロトコルを使用して行われてもよい。新しいIoTデバイスがIoTハブを発見できない場合(例えば、それが範囲外にあるため)、次いで、新しいIoTデバイスは、別のIoTデバイス及び/又はエンドユーザのモバイルデバイスを検索してもよい(IoTクラウドサービスへの接続を有効にするためにモバイルデバイス上にインストールされたアプリケーション又はブラウザにより)。   At 1502, when a new IoT device is powered on, the new IoT device first searches for a local IoT hub. As mentioned above, the search may be performed using a local wireless protocol such as BTLE. If the new IoT device can not find the IoT hub (eg because it is out of range), then the new IoT device may search for another IoT device and / or the end user's mobile device (IoT cloud By an application or browser installed on the mobile device to activate the connection to the service).

1503において、新しいIoTデバイスがIoTハブ、別のIoTデバイス、又はユーザのモバイルデバイスの存在を検出したかどうかに関する判定がなされる。IoTハブが検出された場合、次いで1504において、新しいIoTデバイスはIoTハブに接続し、1505において、IoTハブは新しいIoTデバイスに代わってネットワーク資格情報をクラウドサービスから取得し、資格情報を新しいIoTデバイスに提供する。1510において、新しいIoTデバイスは、ネットワーク資格情報を使用して無線ネットワークに登録する。   At 1503, a determination is made as to whether the new IoT device has detected the presence of an IoT hub, another IoT device, or a mobile device of a user. If an IoT hub is detected, then at 1504, the new IoT device connects to the IoT hub, and at 1505, the IoT hub retrieves network credentials from the cloud service on behalf of the new IoT device, and the credentials are the new IoT device To provide. At 1510, the new IoT device registers with the wireless network using the network credentials.

新しいIoTデバイスが別のIoTデバイスを検出した場合、次いで1506において、新しいIoTデバイスはその別のIoTデバイスに接続し、1507において、IoTデバイスはネットワーク資格情報をIoTクラウドサービスから取得し、それを新しいIoTデバイスに提供する。一実施形態では、これは、IoTハブを通じて達成され得る(すなわち、その別のデバイスがIoTハブに接続されている場合)。この場合も、1510において、新しいIoTデバイスは、ネットワーク資格情報を使用して無線ネットワークに登録する。   If the new IoT device detects another IoT device, then, at 1506, the new IoT device connects to that other IoT device, and at 1507, the IoT device obtains network credentials from the IoT Cloud Service, which is new Provide to IoT devices. In one embodiment, this may be accomplished through the IoT hub (ie, if that other device is connected to the IoT hub). Again, at 1510, the new IoT device registers with the wireless network using the network credentials.

新しいIoTデバイスがユーザのモバイルデバイスを検出した場合、次いで1508において、新しいIoTデバイスはそのモバイルデバイスに接続する。一実施形態では、接続は、接続ウィザードなどのアプリケーション又はユーザのモバイルデバイス上のブラウザで実行可能なコードにより管理される。1509において、IoTデバイスは、ネットワーク資格情報をIoTクラウドサービスから取得し、それを新しいIoTデバイスに提供する。一実施形態では、これは、IoTハブを通じて達成され得る(すなわち、その別のデバイスがIoTハブに接続されている場合)。1510において、新しいIoTデバイスは、ネットワーク資格情報を使用して無線ネットワークに登録する。   If the new IoT device detects the user's mobile device, then, at 1508, the new IoT device connects to the mobile device. In one embodiment, the connection is managed by an application such as a connection wizard or browser executable code on the user's mobile device. At 1509, the IoT device obtains network credential information from the IoT cloud service and provides it to the new IoT device. In one embodiment, this may be accomplished through the IoT hub (ie, if that other device is connected to the IoT hub). At 1510, the new IoT device registers with the wireless network using the network credentials.

上述したように、一実施形態では、新しいモバイルデバイス上で実行されるネットワーク登録モジュール1310は、接続優先度スキームを利用して、電源オンされたときにネットワーク登録モジュール1310が検索すべきデバイスの順序を決定する。一実施形態では、ネットワーク登録モジュール1310は、最初にIoTハブを検索し、1つも見つけることができなかった場合、他のIoTデバイスを検索することになる。1つもないか、又は利用可能である場合、次いで、ネットワーク登録モジュール1310は、ユーザのモバイルデバイスに接続することを試みる。代替的に、新しいIoTデバイスは、単純に新しいIoTデバイスが発見した最初のデバイスに接続してもよく、かつ/又は新しいIoTデバイスが最も高い信号強度(すなわち、RSSI値)を見出したデバイスに接続してもよい。本発明の基本原理を順守しながら、様々な他の接続技術をネットワーク登録モジュール1310内にプログラミングすることができる。
モノのインターネット(IoT)システム内で安全な通信チャネルを確立するための装置及び方法
As mentioned above, in one embodiment, the network registration module 1310 running on the new mobile device uses the connection priority scheme to order the devices that the network registration module 1310 should search when powered on. Decide. In one embodiment, the network registration module 1310 will first search for an IoT hub and will search for other IoT devices if none are found. If none or available, then the network registration module 1310 attempts to connect to the user's mobile device. Alternatively, the new IoT device may simply connect to the first device discovered by the new IoT device, and / or connect to the device where the new IoT device found the highest signal strength (ie, RSSI value) You may Various other connection technologies can be programmed into the network registration module 1310 while adhering to the basic principles of the present invention.
Apparatus and method for establishing a secure communication channel in an internet of things (IoT) system

本発明の一実施形態では、通信チャネルをサポートするために使用される中間デバイス(例えば、ユーザのモバイルデバイス611及び/又はIoTハブ110など)に関わらず、データの暗号化及び解読は、IoTサービス120と各IoTデバイス101との間で実行される。IoTハブ110を介して通信する一実施形態が図16Aに例示され、IoTハブを必要としない別の実施形態が図16Bに例示される。   In one embodiment of the present invention, regardless of the intermediate device used to support the communication channel (e.g., the user's mobile device 611 and / or IoT hub 110, etc.), the encryption and decryption of the data may take It is performed between 120 and each IoT device 101. One embodiment of communicating via IoT hub 110 is illustrated in FIG. 16A, and another embodiment not requiring an IoT hub is illustrated in FIG. 16B.

最初に図16Aで、IoTデバイス101とIoTサービス120との間の通信を暗号化/解読するために、IoTサービス120は、「サービスセッション鍵」1650のセットを管理する暗号化エンジン1660を含み、各IoTデバイス101は、「デバイスセッション鍵」1651のセットを管理する暗号化エンジン1661を含む。暗号化エンジンは、本明細書に記載するセキュリティ/暗号化技術を実行するとき、セッション公開/秘密鍵ペアを生成して、このペアのセッション秘密鍵へのアクセスを防止するための(他のものの中でも)ハードウェアセキュリティモジュール1630〜1631、及び導出したシークレットを使用してキーストリームを生成するためのキーストリーム生成モジュール1640〜1641を含む、異なるハードウェアモジュールに依拠することができる。一実施形態では、サービスセッション鍵1650及びデバイスセッション鍵1651は、関連する公開/秘密鍵ペアを含む。例えば、一実施形態では、IoTデバイス101上のデバイスセッション鍵1651は、IoTサービス120の公開鍵、及びIoTデバイス101の秘密鍵を含む。以下に詳細に説明するように、一実施形態では、安全な通信セッションを確立するために、セッション公開/秘密鍵ペア1650及び1651がそれぞれの暗号化エンジン、それぞれ1660及び1661によって使用されて、同じシークレットを生成し、このシークレットは次にSKGM 1640〜1641によって使用されて、IoTサービス120とIoTデバイス101との間の通信を暗号化及び解読するキーストリームを生成する。本発明の一実施形態によるシークレットの生成及び使用に関連付けられた追加の詳細は、以下に提供される。   First, in FIG. 16A, to encrypt / decrypt communication between the IoT device 101 and the IoT service 120, the IoT service 120 includes an encryption engine 1660 that manages a set of “service session keys” 1650, Each IoT device 101 includes an encryption engine 1661 that manages a set of “device session keys” 1651. When performing the security / encryption techniques described herein, the encryption engine generates a session public / private key pair to prevent access to the session private key of this pair (of others Different hardware modules can be relied on, including hardware security modules 1630-1631, and key stream generation modules 1640-1641 for generating key streams using derived secrets, among others. In one embodiment, service session key 1650 and device session key 1651 include associated public / private key pairs. For example, in one embodiment, the device session key 1651 on the IoT device 101 includes the public key of the IoT service 120 and the secret key of the IoT device 101. As described in detail below, in one embodiment, session public / private key pairs 1650 and 1651 are used by respective encryption engines, 1660 and 1661 respectively, to establish a secure communication session, and are identical A secret is generated, which is then used by the SKGM 1640 to 1641 to generate a key stream that encrypts and decrypts the communication between the IoT service 120 and the IoT device 101. Additional details associated with the generation and use of secrets according to one embodiment of the present invention are provided below.

図16Aで、鍵1650〜1651を使用してシークレットが生成されると、クライアントは、クリアトランザクション1611によって示されるように常にIoTサービス120を介してIoTデバイス101にメッセージを送信することになる。本明細書で使用されるとき「クリア」は、根本的なメッセージが本明細書に記載された暗号化技術を使用して暗号化されていないことを示すことを意味する。しかし、例示したように、一実施形態では、セキュアソケットレイヤー(SSL)チャネル又は他の安全なチャネル(例えば、インターネットプロトコルセキュリティ(Internet Protocol Security)(IPSEC)チャネル)は、通信を保護するためにクライアントデバイス611とIoTサービス120との間で確立される。IoTサービス120上の暗号化エンジン1660は、次に、生成されたシークレットを使用してメッセージを暗号化して、1602で暗号化メッセージをIoTハブ110に送信する。メッセージを直接暗号化するためにシークレットを使用するのではなく、一実施形態では、シークレット及びカウンタ値を使用して、キーストリームを生成し、このキーストリームを使用して、それぞれのメッセージパケットを暗号化する。この実施形態の詳細は、図17に関して以下に説明する。   In FIG. 16A, once the secret is generated using the keys 1650-1651, the client will always send a message to the IoT device 101 via the IoT service 120 as indicated by the clear transaction 1611. As used herein, "clear" means to indicate that the underlying message is not encrypted using the encryption techniques described herein. However, as illustrated, in one embodiment, a Secure Socket Layer (SSL) channel or other secure channel (eg, an Internet Protocol Security (IPSEC) channel) is a client to secure communications. It is established between the device 611 and the IoT service 120. The encryption engine 1660 on the IoT service 120 then encrypts the message using the generated secret and sends the encrypted message to the IoT hub 110 at 1602. Rather than using a secret to encrypt messages directly, in one embodiment, a secret and a counter value are used to generate a key stream, which is used to encrypt each message packet Turn The details of this embodiment are described below with respect to FIG.

例示したように、SSL接続又は他の安全なチャネルは、IoTサービス120とIoTハブ110との間で確立することができる。IoTハブ110(一実施形態ではメッセージを解読する能力を有さない)は、1603で(例えば、Bluetooth Low Energy(BTLE)通信チャネルを介して)暗号化メッセージをIoTデバイスに送信する。IoTデバイス101上の暗号化エンジン1661は、次に、シークレットを使用してメッセージを解読して、メッセージコンテンツを処理することができる。キーストリームを生成するためにシークレットを使用する実施形態では、暗号化エンジン1661は、シークレット及びカウンタ値を使用してキーストリームを生成し、次にメッセージパケットの解読のためにキーストリームを使用することができる。   As illustrated, an SSL connection or other secure channel can be established between the IoT service 120 and the IoT hub 110. The IoT hub 110 (in one embodiment, having no ability to decrypt the message) sends an encrypted message to the IoT device at 1603 (eg, via a Bluetooth Low Energy (BTLE) communication channel). The encryption engine 1661 on the IoT device 101 may then decrypt the message using the secret to process the message content. In embodiments that use a secret to generate a key stream, the encryption engine 1661 generates the key stream using the secret and the counter value, and then uses the key stream to decrypt the message packet. Can.

メッセージ自体は、IoTサービス120とIoTデバイス101との間の任意の形態の通信を含むことができる。例えば、メッセージは、測定を行ってその結果をクライアントデバイス611に通知して返すことなどの特定の機能を実行することをIoTデバイス101に命令するコマンドパケットを含むことができる、又はIoTデバイス101の動作を構成する構成データを含むことができる。   The message itself may include any form of communication between the IoT service 120 and the IoT device 101. For example, the message may include a command packet that instructs the IoT device 101 to perform a specific function, such as performing measurements and notifying the client device 611 of the results back, or It can include configuration data that constitutes an operation.

応答が必要とされる場合、IoTデバイス101上の暗号化エンジン1661は、シークレット又は導出されたキーストリームを使用して、応答を暗号化し、1604で暗号化応答をIoTハブ110に送信し、IoTハブ110は、1605で応答をIoTサービス120に転送する。IoTサービス120上の暗号化エンジン1660は、次に、シークレット又は導出されたキーストリームを使用して応答を解読して、1606で(例えば、SSL又は他の安全な通信チャネルを介して)解読された応答をクライアントデバイス611に送信する。   If a response is required, the encryption engine 1661 on the IoT device 101 encrypts the response using the secret or derived keystream and sends an encrypted response to the IoT hub 110 at 1604, The hub 110 forwards the response to the IoT service 120 at 1605. The encryption engine 1660 on the IoT service 120 is then decrypted (eg, via SSL or other secure communication channel) at 1606, decrypting the response using the secret or derived key stream Sends a response to the client device 611.

図16Bは、IoTハブを必要としない実施形態を例示する。むしろ、この実施形態では、IoTデバイス101とIoTサービス120との間の通信は、クライアントデバイス611を介して行われる(例えば、図6〜9Bに関して上述した実施形態におけるように)。この実施形態では、メッセージをIoTデバイス101に送信するために、クライアントデバイス611は、1611でメッセージの非暗号化バージョンをIoTサービス120に送信する。暗号化エンジン1660は、シークレット又は導出されたキーストリームを使用してメッセージを暗号化して、1612で暗号化メッセージをクライアントデバイス611に返送する。クライアントデバイス611は、次に、1613で暗号化メッセージをIoTデバイス101に転送し、暗号化エンジン1661は、シークレット又は導出されたキーストリームを使用してメッセージを解読する。IoTデバイス101は、次に、本明細書に記載されたようにメッセージを処理することができる。応答が必要とされる場合、暗号化エンジン1661は、シークレットを使用して、応答を暗号化し、1614で暗号化応答をクライアントデバイス611に送信し、クライアントデバイス611は、1615で暗号化応答をIoTサービス120に転送する。暗号化エンジン1660は、次に、応答を解読して、1616で解読された応答をクライアントデバイス611に送信する。   FIG. 16B illustrates an embodiment that does not require an IoT hub. Rather, in this embodiment, communication between the IoT device 101 and the IoT service 120 occurs via the client device 611 (e.g., as in the embodiment described above with respect to FIGS. 6-9B). In this embodiment, to send the message to the IoT device 101, the client device 611 sends a non-encrypted version of the message to the IoT service 120 at 1611. The encryption engine 1660 encrypts the message using the secret or derived key stream and sends the encrypted message back to the client device 611 at 1612. The client device 611 then forwards 1613 the encrypted message to the IoT device 101, and the encryption engine 1661 decrypts the message using the secret or derived key stream. The IoT device 101 may then process the message as described herein. If a response is required, the encryption engine 1661 encrypts the response using the secret and sends an encrypted response to the client device 611 at 1614, and the client device 611 IoT an encrypted response at 1615 Transfer to service 120 The encryption engine 1660 then decrypts the response and sends 1616 the decrypted response to the client device 611.

図17は、IoTサービス120とIoTデバイス101との間で最初に実行することができる鍵交換及びキーストリーム生成を例示する。一実施形態では、この鍵交換は、IoTサービス120及びIoTデバイス101が新しい通信セッションを確立するたびに実行することができる。代替的に、鍵交換を実行することができ、交換されたセッション鍵を指定された期間(例えば、一日、一週間など)使用することができる。簡潔にするために図17に中間デバイスは示されていないが、通信は、IoTハブ110及び/又はクライアントデバイス611を介して行うことができる。   FIG. 17 illustrates key exchange and key stream generation that may initially be performed between the IoT service 120 and the IoT device 101. In one embodiment, this key exchange may be performed each time IoT service 120 and IoT device 101 establish a new communication session. Alternatively, key exchange can be performed, and the exchanged session key can be used for a specified period of time (e.g., one day, one week, etc.). Although intermediate devices are not shown in FIG. 17 for simplicity, communication may occur via the IoT hub 110 and / or the client device 611.

一実施形態では、IoTサービス120の暗号化エンジン1660は、セッション公開/秘密鍵ペアを生成するために、コマンドをHSM 1630(例えば、Amazon(登録商標)によって提供されるCloudHSMなどとすることができる)に送信する。HSM 1630は、その後、このペアのセッション秘密鍵へのアクセスを防止することができる。同様に、IoTデバイス101上の暗号化エンジンは、セッション公開/秘密鍵ペアを生成してこのペアのセッション秘密鍵へのアクセスを防止するHSM 1631(例えば、Atmel Corporation(登録商標)によるAtecc508 HSMなどの)にコマンドを送信することができる。当然のことながら、本発明の基本原理は、いかなる特定のタイプの暗号化エンジン又は製造業者にも限定されない。   In one embodiment, the encryption engine 1660 of the IoT service 120 can be a command such as HSM 1630 (eg, CloudHSM provided by Amazon®, etc.) to generate a session public / private key pair Send to). The HSM 1630 can then prevent access to this pair's session private key. Similarly, the encryption engine on the IoT device 101 generates a session public / private key pair to prevent access to the session private key of this pair (eg, Atecc 508 HSM by Atmel Corporation, etc.) Can send commands to It will be appreciated that the basic principle of the invention is not limited to any particular type of encryption engine or manufacturer.

一実施形態では、IoTサービス120は、1701で、HSM 1630を使用して生成されたそのセッション公開鍵をIoTデバイス101に送信する。IoTデバイスは、そのHSM 1631を使用して、それ自体のセッション公開/秘密鍵ペアを生成し、1702でそのペアの公開鍵をIoTサービス120に送信する。一実施形態では、暗号化エンジン1660〜1661は、楕円曲線Diffie−Hellman(Elliptic curve Diffie-Hellman)(ECDH)プロトコルを使用し、このプロトコルは、楕円曲線公開−秘密鍵ペアを有する2つの当事者が共有シークレットを確立することができる匿名鍵の取り決めである。一実施形態では、これらの技術を使用して、1703で、IoTサービス120の暗号化エンジン1660は、IoTデバイスセッション公開鍵及びそれ自体のセッション秘密鍵を使用してシークレットを生成する。同様に、1704で、IoTデバイス101の暗号化エンジン1661は、IoTサービス120のセッション公開鍵及びそれ自体のセッション秘密鍵を使用して同じシークレットを独自に生成する。より具体的には、一実施形態では、IoTサービス120上の暗号化エンジン1660は、シークレット=IoTデバイスセッション公開鍵*IoTサービスセッション秘密鍵という式に従って、シークレットを生成し、ここで(*)は、IoTデバイスセッション公開鍵がIoTサービスセッション秘密鍵によって点乗積されることを意味する。IoTデバイス101上の暗号化エンジン1661は、シークレット=IoTサービスセッション公開鍵*IoTデバイスセッション秘密鍵という式に従って、シークレットを生成し、IoTサービスセッション公開鍵は、IoTデバイスセッション秘密鍵によって点乗積される。結局、IoTサービス120及びIoTデバイス101は両方とも、以下に説明するように通信を暗号化するのに使用される同じシークレットを生成した。一実施形態では、暗号化エンジン1660〜1661は、シークレットを生成するための上記の動作を実行するKSGM、それぞれ1640〜1641などのハードウェアモジュールに依拠する。 In one embodiment, the IoT service 120 sends the session public key generated using the HSM 1630 to the IoT device 101 at 1701. The IoT device uses its HSM 1631 to generate its own session public / private key pair and sends the public key of the pair to the IoT service 120 at 1702. In one embodiment, the encryption engine 1660-1661 uses the Elliptic curve Diffie-Hellman (ECDH) protocol, which consists of two parties with an elliptic curve public-private key pair. An arrangement of anonymous keys that can establish a shared secret. In one embodiment, using these techniques, at 1703, the encryption engine 1660 of the IoT service 120 generates a secret using the IoT device session public key and its own session private key. Similarly, at 1704, the encryption engine 1661 of the IoT device 101 uniquely generates the same secret using the session public key of the IoT service 120 and its own session private key. More specifically, in one embodiment, the encryption engine 1660 on the IoT service 120 generates a secret according to the formula secret = IoT device session public key * IoT service session private key, where ( * ) is It means that the IoT device session public key is dot-multiplied by the IoT service session private key. The encryption engine 1661 on the IoT device 101 generates a secret according to the formula secret = IoT service session public key * IoT device session private key, and the IoT service session public key is dotted with the IoT device session private key Ru. Eventually, both the IoT service 120 and the IoT device 101 have generated the same secret that is used to encrypt the communication as described below. In one embodiment, the encryption engine 1660-1661 relies on hardware modules such as KSGM, 1640-1641, respectively, to perform the above-described operations for generating a secret.

シークレットが決定されると、シークレットは、暗号化エンジン1660及び1661によって使用されて、データを直接暗号化及び解読することができる。代替的に、一実施形態では、暗号化エンジン1660〜1661は、コマンドをKSGM 1640〜1641に送信して、それぞれのデータパケットを暗号化/解読するためにシークレットを使用して新しいキーストリームを生成する(すなわち、それぞれのパケットに対して新しいキーストリームデータ構造が生成される)。具体的には、キーストリーム生成モジュール1640〜1641の一実施形態は、それぞれのデータパケットに対してカウンタ値が増加され、キーストリームを生成するためにシークレットと組み合わせて使用される、Galois/カウンタモード(Galois/Counter Mode)(GCM)を実装する。したがって、データパケットをIoTサービス120に送信するために、IoTデバイス101の暗号化エンジン1661は、シークレット及び現在のカウンタ値を使用して、KSGM 1640〜1641に新しいキーストリームを生成させ、次のキーストリームを生成するためにカウンタ値を増加させる。次に、新たに生成されたキーストリームを使用して、データパケットを暗号化し、その後、IoTサービス120に送信される。一実施形態では、キーストリームは、データでXORされて、暗号化データパケットを生成する。一実施形態では、IoTデバイス101は、カウンタ値を暗号化データパケットと共にIoTサービス120に送信する。IoTサービス上の暗号化エンジン1660は、次に、KSGM 1640と通信し、KSGM 1640は、受信したカウンタ値及びシークレットを使用して、キーストリーム(同じシークレット及びカウンタ値が使用されるので同じキーストリームでなければならない)を生成し、生成されたキーストリームを使用して、データパケットを解読する。   Once the secret is determined, the secret can be used by the encryption engines 1660 and 1661 to directly encrypt and decrypt data. Alternatively, in one embodiment, the encryption engine 1660-1661 sends a command to the KSGM 1640-1641 to generate a new key stream using the secret to encrypt / decrypt each data packet (Ie, a new keystream data structure is generated for each packet). Specifically, one embodiment of the key stream generation module 1640-1641 is used in combination with a secret to generate a key stream, the counter value is incremented for each data packet, Galois / Counter mode Implement (Galois / Counter Mode) (GCM). Thus, to send a data packet to the IoT service 120, the encryption engine 1661 of the IoT device 101 uses the secret and the current counter value to cause the KSGM 1640 to 1641 to generate a new key stream, and the next key Increment the counter value to generate a stream. The newly generated key stream is then used to encrypt the data packet, which is then sent to the IoT service 120. In one embodiment, the key stream is XOR'd with data to generate an encrypted data packet. In one embodiment, the IoT device 101 sends the counter value to the IoT service 120 along with the encrypted data packet. The encryption engine 1660 on the IoT service then communicates with the KSGM 1640, which uses the received counter values and secrets to the key stream (the same secret and counter values are used so the same key stream And the generated key stream is used to decrypt the data packet.

一実施形態では、IoTサービス120からIoTデバイス101に送信されるデータパケットは、同じ方法で暗号化される。具体的には、それぞれのデータパケットに対してカウンタが増加されて、シークレットと共に使用されて、新しいキーストリームを生成する。キーストリームは、次に、データを暗号化するために使用され(例えば、データ及びキーストリームのXORを実行して)、暗号化データパケットは、カウンタ値と共にIoTデバイス101に送信される。IoTデバイス101上の暗号化エンジン1661は、次に、KSGM 1641と通信し、KSGM 1641は、カウンタ値及びシークレットを使用して、データパケットを解読するために使用される同じキーストリームを生成する。したがって、この実施形態では、暗号化エンジン1660〜1661は、それら自体のカウンタ値を使用して、データを暗号化するキーストリームを生成し、暗号化データパケットと共に受信したカウンタ値を使用して、データを解読するキーストリームを生成する。   In one embodiment, data packets transmitted from IoT service 120 to IoT device 101 are encrypted in the same manner. Specifically, for each data packet, a counter is incremented and used with the secret to generate a new key stream. The key stream is then used to encrypt data (eg, performing an XOR of the data and key stream), and the encrypted data packet is sent to the IoT device 101 with the counter value. The encryption engine 1661 on the IoT device 101 then communicates with the KSGM 1641, which uses the counter value and the secret to generate the same key stream that is used to decrypt the data packet. Thus, in this embodiment, the encryption engines 1660-1661 use their own counter values to generate a keystream that encrypts data, and using the counter values received with the encrypted data packet, Generate a keystream that decrypts the data.

一実施形態では、それぞれの暗号化エンジン1660〜1661は、それが他方から受信した最後のカウンタ値を追跡し、カウンタ値がシーケンス外で受信されたか否か又は同じカウンタ値が1回より多く受信されたか否かを検出するシーケンシングロジックを含む。カウンタ値がシーケンス外で受信された場合、又は同じカウンタ値が1回より多く受信された場合、これは、リプレイアタックが試みられていることを示し得る。それに応答して、暗号化エンジン1660〜1661は、通信チャネルから接続を切ることができる、及び/又はセキュリティアラートを生成することができる。   In one embodiment, each encryption engine 1660-1661 tracks the last counter value it received from the other, whether the counter value was received out of sequence or the same counter value received more than once It includes sequencing logic to detect whether it has been done or not. If the counter value is received out of sequence, or if the same counter value is received more than once, this may indicate that a replay attack is being attempted. In response, the encryption engine 1660-1661 can disconnect from the communication channel and / or generate a security alert.

図18は、4バイトのカウンタ値1800と、可変サイズの暗号化データフィールド1801と、6バイトのタグ1802とを含む、本発明の一実施形態で用いられる例示的な暗号化データパケットを例示する。一実施形態では、タグ1802は、解読されたデータ(それが解読されたら)の妥当性を確認するチェックサム値を含む。   FIG. 18 illustrates an exemplary encrypted data packet for use in one embodiment of the present invention, including a 4-byte counter value 1800, a variable-size encrypted data field 1801, and a 6-byte tag 1802. . In one embodiment, tag 1802 includes a checksum value that validates the decrypted data (if it is decrypted).

上述したように、一実施形態では、IoTサービス120とIoTデバイス101との間で交換されたセッション公開/秘密鍵ペア1650〜1651は、定期的に、及び/又はそれぞれの新しい通信セッションの開始に応答して生成することができる。   As mentioned above, in one embodiment, the session public / private key pair 1650-1651 exchanged between the IoT service 120 and the IoT device 101 periodically and / or at the start of each new communication session It can be generated in response.

本発明の一実施形態は、IoTサービス120とIoTデバイス101との間のセッションを認証するための追加の技術を実装する。具体的には、一実施形態では、親鍵ペア、工場鍵ペアのセット、並びにIoTサービス鍵ペアのセット及びIoTデバイス鍵ペアのセットを含む、公開/秘密鍵ペアの階層が使用される。一実施形態では、親鍵ペアは、他の鍵ペアのすべてに対する信頼のルートを含み、単一の高度に安全な場所に(例えば、本明細書に記載されたIoTシステムを実装する組織の管理下に)維持される。マスター秘密鍵を使用して、工場鍵ペアなどの様々な他の鍵ペアの上に署名を生成する(及びそれによって認証する)ことができる。署名は、次に、マスター公開鍵を使用して検証することができる。一実施形態では、IoTデバイスを製造するそれぞれの工場は、それ自体の工場鍵ペアを割り当てられ、工場鍵ペアは、次に、IoTサービス鍵及びIoTデバイス鍵を認証するために使用することができる。例えば、一実施形態では、工場秘密鍵を使用して、IoTサービス公開鍵及びIoTデバイス公開鍵の上に署名を生成する。これらの署名は、次に、対応する工場公開鍵を使用して検証することができる。これらのIoTサービス/デバイス公開鍵は、図16A〜Bに関して上述した「セッション」公開/秘密鍵と同じではないことに留意されたい。上述したセッション公開/秘密鍵は、一時的であり(すなわち、サービス/デバイスセッションに対して生成される)、一方、IoTサービス/デバイス鍵ペアは、恒久的なものである(すなわち、工場で生成される)。   One embodiment of the present invention implements an additional technique for authenticating the session between the IoT service 120 and the IoT device 101. Specifically, in one embodiment, a hierarchy of public / private key pairs is used, including a parent key pair, a set of factory key pairs, and a set of IoT service key pairs and a set of IoT device key pairs. In one embodiment, the parent key pair includes a root of trust for all of the other key pairs and is managed in a single highly secure location (eg, managing an organization implementing the IoT system described herein) Down). The master secret key can be used to generate (and thereby authenticate) signatures on various other key pairs, such as factory key pairs. The signature can then be verified using the master public key. In one embodiment, each factory that manufactures IoT devices is assigned its own factory key pair, which can then be used to authenticate the IoT service key and the IoT device key . For example, in one embodiment, the factory secret key is used to generate a signature on the IoT service public key and the IoT device public key. These signatures can then be verified using the corresponding factory public key. Note that these IoT service / device public keys are not the same as the “session” public / private keys described above with respect to FIGS. 16A-B. The session public / private key mentioned above is temporary (ie generated for service / device session) while IoT service / device key pair is permanent (ie generated at the factory) Will be

親鍵、工場鍵、サービス/デバイス鍵の間の上述の関係を念頭に、本発明の一実施形態は、IoTサービス120とIoTデバイス101との間の認証及びセキュリティの追加のレイヤを提供するために、以下の動作を実行する。
A.一実施形態では、IoTサービス120は、最初に、以下を含むメッセージを生成する。
1.IoTサービスの一意的なID:
・IoTサービスのシリアルナンバー、
・タイムスタンプ、
・この一意的なIDに署名するために使用される工場鍵のID、
・一意的なID(すなわち、サービス)のクラス、
・IoTサービスの公開鍵、
・一意的なIDの上の署名。
2.以下を含む工場証明書:
・タイムスタンプ、
・証明書に署名するために使用される親鍵のID、
・工場公開鍵、
・工場証明書の署名。
3.IoTサービスセッション公開鍵(図16A〜Bに関して上述したような)
4.IoTサービスセッション公開鍵署名(例えば、IoTサービスの秘密鍵で署名された)。
B.一実施形態では、メッセージは、交渉チャネル(以下に説明する)上でIoTデバイスに送信される。IoTデバイスは、メッセージを解析して:
1.工場証明書の署名(メッセージペイロード内に存在する場合のみ)を検証する。
2.一意的なIDによって識別された鍵を使用して一意的なIDの署名を検証する。
3.一意的なIDからのIoTサービスの公開鍵を使用してIoTサービスセッション公開鍵署名を検証する。
4.IoTサービスの公開鍵、並びにIoTサービスのセッション公開鍵を保存する。
5.IoTデバイスセッション鍵ペアを生成する。
C.IoTデバイスは、次に、以下を含むメッセージを生成する:
1.IoTデバイスの一意的なID、
・IoTデバイスのシリアルナンバー、
・タイムスタンプ、
・この一意的なIDに署名するために使用される工場鍵のID、
・一意的なID(すなわち、IoTデバイス)のクラス、
・IoTデバイスの公開鍵、
・一意的なIDの署名。
2.IoTデバイスのセッション公開鍵。
3.IoTデバイスの鍵で署名された(IoTデバイスセッション公開鍵+IoTサービスセッション公開鍵)の署名。
D.このメッセージは、IoTサービスに返送される。IoTサービスは、メッセージを解析して:
1.工場公開鍵を使用して一意的なIDの署名を検証する。
2.IoTデバイスの公開鍵を使用してセッション公開鍵の署名を検証する。
3.IoTデバイスのセッション公開鍵を保存する。
E.IoTサービスは、次に、IoTサービスの鍵で署名された(IoTデバイスセッション公開鍵+IoTサービスセッション公開鍵)の署名を含むメッセージを生成する。
F.IoTデバイスは、メッセージを解析して:
1.IoTサービスの公開鍵を使用してセッション公開鍵の署名を検証する。
2.IoTデバイスセッション秘密鍵及びIoTサービスのセッション公開鍵からキーストリームを生成する。
3.IoTデバイスは、次に、「メッセージング利用可能」メッセージを送信する。
G.IoTサービスは、次に、以下を実行する:
1.IoTサービスセッション秘密鍵及びIoTデバイスのセッション公開鍵からキーストリームを生成する。
2.以下を含めて、メッセージングチャネル上で新しいメッセージを作成する:
・ランダムな2バイト値を生成して記憶する。
・ブーメラン属性Id(以下に説明する)及びランダム値を有する属性メッセージを設定する。
H.IoTデバイスは、メッセージを受信して:
1.メッセージを解読することを試みる。
2.示された属性Id上と同じ値を有する更新を送信する。
I.IoTサービスは、メッセージペイロードがブーメラン属性更新を含むことを認識する:
1.そのペアリング状態を真に設定する。
2.交渉チャネル上でペアリング完了メッセージを送信する。
J.IoTデバイスは、メッセージを受信して、IoTデバイスのペアリング状態を真に設定する。
With the above relationships between parent key, factory key, service / device key in mind, one embodiment of the present invention provides an additional layer of authentication and security between IoT service 120 and IoT device 101 Perform the following actions:
A. In one embodiment, the IoT service 120 initially generates a message that includes:
1. Unique ID of IoT Service:
・ Serial number of IoT service,
·Time stamp,
The ID of the factory key used to sign this unique ID,
・ Class of unique ID (ie, service),
・ Public key of IoT service,
-Signature over unique ID.
2. Factory certificate including:
·Time stamp,
The ID of the parent key used to sign the certificate,
・ Factory public key,
・ Signature of factory certificate.
3. IoT Service Session Public Key (as described above for Figures 16A-B)
4. IoT service session public key signature (eg signed with the secret key of the IoT service).
B. In one embodiment, the message is sent to the IoT device over a negotiation channel (described below). IoT devices analyze messages:
1. Verify the factory certificate signature (only if present in the message payload).
2. Verify the signature of the unique ID using the key identified by the unique ID.
3. Verify the IoT service session public key signature using the IoT service public key from a unique ID.
4. Save the public key of IoT service and the session public key of IoT service.
5. Generate an IoT device session key pair.
C. The IoT device then generates a message that includes:
1. Unique ID of IoT Device,
・ IoT device serial number,
·Time stamp,
The ID of the factory key used to sign this unique ID,
・ Class of unique ID (ie IoT device),
・ Public key of IoT device,
-Unique ID signature.
2. Session public key of IoT device.
3. Signed with the key of the IoT device (IoT device session public key + IoT service session public key).
D. This message is sent back to the IoT service. IoT services analyze messages:
1. Verify unique ID signature using factory public key.
2. Verify the session public key signature using the IoT device's public key.
3. Save session public key of IoT device.
E. The IoT service then generates a message that includes the signature of the IoT service key (IoT device session public key + IoT service session public key).
F. IoT devices analyze messages:
1. Verify the session public key signature using the IoT service's public key.
2. Generate a key stream from the IoT device session secret key and the session public key of the IoT service.
3. The IoT device then sends a "Messaging Available" message.
G. The IoT service then performs the following:
1. Generate key stream from IoT service session secret key and session public key of IoT device.
2. Create a new message on the messaging channel, including:
Generate and store random 2-byte values.
Set an attribute message with a boomerang attribute Id (described below) and a random value.
H. IoT Device Receives Messages:
1. Try to decipher the message.
2. Send an update with the same value as on the indicated attribute Id.
I. The IoT service recognizes that the message payload contains boomerang attribute updates:
1. Set the pairing state to true.
2. Send a pairing complete message on the negotiation channel.
J. The IoT device receives the message and sets the pairing state of the IoT device to true.

上述の技術は「IoTサービス」及び「IoTデバイス」に関して説明したが、本発明の基本原理は、ユーザのクライアントデバイス、サーバ、及びインターネットサービスを含む、任意の2つのデバイス間で安全な通信チャネルを確立するように実装することができる。   Although the techniques described above have been described in terms of "IoT services" and "IoT devices", the basic principles of the present invention are: a secure communication channel between any two devices, including the user's client device, server, and Internet service It can be implemented to establish.

上述の技術は、秘密鍵が無線で共有されない(シークレットが片方の当事者から他方に送信される現在のBluetoothペアリング技術と対照的に)ので、高度に安全である。会話全体を聞いている攻撃者は、公開鍵を有するのみということになり、これは、共有シークレットを生成するために不十分である。これらの技術はまた、署名された公開鍵を交換することによる中間者攻撃を防止する。加えて、GCM及び別個のカウンタがそれぞれのデバイス上で使用されるため、任意の種類の「リプレイアタック」(中間者がデータをキャプチャしてそれを再度送信する)が防止される。いくつかの実施形態はまた、非対称カウンタを使用することによりリプレイアタックを防止する。
デバイスを正式にペアリングすることなくデータ及びコマンドを交換するための技術
The techniques described above are highly secure because the secret key is not shared wirelessly (as opposed to the current Bluetooth pairing technique where the secret is sent from one party to the other). An attacker listening to the entire conversation will only have the public key, which is insufficient to generate a shared secret. These techniques also prevent man-in-the-middle attacks by exchanging signed public keys. In addition, since the GCM and separate counters are used on each device, any kind of "Replay Attack" (intermediate captures data and sends it again) is prevented. Some embodiments also prevent replay attacks by using an asymmetric counter.
Technology for exchanging data and commands without formally pairing devices

GATTは、一般属性プロファイル(Generic Attribute Profile)に対する頭字語であり、これは、2つのBluetooth Low Energy(BTLE)デバイスがデータを往復して伝送する方法を規定する。これは、属性プロトコル(Attribute Protocol)(ATT)と呼ばれる一般データプロトコルを利用し、このプロトコルは、簡単なルックアップテーブルに、テーブルへの入力ごとに16ビットの特性IDを使用してサービス、特性、及び関連データを記憶するために使用される。一方で「特性」は、「属性」と呼ばれることもあることに留意されたい。   GATT is an acronym for Generic Attribute Profile, which defines how two Bluetooth Low Energy (BTLE) devices transmit data back and forth. It makes use of a general data protocol called Attribute Protocol (ATT), which uses a simple lookup table, a service using 16 bit attribute IDs for each entry into the table, a characteristic , And used to store related data. It should be noted that "characteristics" may also be referred to as "attributes".

Bluetoothデバイス上で、最も一般的に使用される特性は、デバイスの「名前」(特性ID 10752(0x2A00)を有する)である。例えば、Bluetoothデバイスは、その近傍内の他のBluetoothデバイスを、GATTを使用してこれらの他のBluetoothデバイスによって発行された「名前」特性を読み取ることにより、識別することができる。したがって、Bluetoothデバイスは、デバイスを正式にペアリング/結合することなくデータを交換するための固有の能力を有する(「ペアリング」と「結合」とが時として交換可能に使用される点に留意されたい。この議論の残りは、用語「ペアリング」を使用することになる)。   On Bluetooth devices, the most commonly used property is the "name" of the device (with property ID 10752 (0x2A00)). For example, a Bluetooth device can identify other Bluetooth devices in its vicinity by reading the "name" property issued by these other Bluetooth devices using GATT. Thus, note that Bluetooth devices have the inherent ability to exchange data without formally pairing / binding devices ("pairing" and "coupling" are sometimes used interchangeably) The rest of this discussion will use the term "pairing").

本発明の一実施形態は、BTLE対応IoTデバイスと、これらのデバイスと正式にペアリングすることなく通信するために、この能力を利用する。それぞれの個別のIoTデバイスとのペアリングは、ペアリングするために必要とされる時間のため、及び同時に1つのペアリングされた接続のみを確立することができるため、著しく非効率であろう。   One embodiment of the present invention utilizes this capability to communicate with BTLE enabled IoT devices without formally pairing with these devices. Pairing with each individual IoT device would be extremely inefficient because of the time required to pair and because only one paired connection can be established at a time.

図19は、Bluetooth(BT)デバイス1910が、ペアリングされたBT接続を正式に確立することなくIoTデバイス101のBT通信モジュール1901とのネットワークソケットアブストラクションを確立する、特定の一実施形態を例示する。BTデバイス1910は、図16Aに示すようなIoTハブ110及び/又はクライアントデバイス611内に含めることができる。例示したように、BT通信モジュール1901は、特性ID、それらの特性IDに関連付けられた名前、及びそれらの特性IDに対する値のリストを含むデータ構造を維持する。それぞれの特性に対する値は、現在のBT標準に従って特性IDにより識別された20バイトのバッファに記憶することができる。しかしながら、本発明の基本原理は、いかなる特定のバッファサイズにも限定されない。   FIG. 19 illustrates one particular embodiment in which the Bluetooth (BT) device 1910 establishes a network socket abstraction with the BT communication module 1901 of the IoT device 101 without formally establishing a paired BT connection. . The BT device 1910 can be included in the IoT hub 110 and / or the client device 611 as shown in FIG. 16A. As illustrated, the BT communication module 1901 maintains a data structure that includes a property ID, a name associated with the property ID, and a list of values for the property ID. The values for each property can be stored in a 20 byte buffer identified by the property ID according to the current BT standard. However, the basic principles of the invention are not limited to any particular buffer size.

図19の実施例では、「名前」特性は、「IoTデバイス14」の特定の値を割り当てられたBTで規定された特性である。本発明の一実施形態は、BTデバイス1910との安全な通信チャネルを交渉するために使用される追加の特性の第1のセット、及びBTデバイス1910との暗号化通信のために使用される追加の特性の第2のセットを指定する。具体的には、例示した実施例で特性ID<65532>により識別された「交渉書込」特性は、発信交渉メッセージを送信するために使用することができ、特性ID<65533>により識別された「交渉読取」特性は、受信交渉メッセージを受信するために使用することができる。「交渉メッセージ」は、本明細書に記載されたような安全な通信チャネルを確立するためにBTデバイス1910及びBT通信モジュール1901によって使用されるメッセージを含むことができる。例として、図17で、IoTデバイス101は、「交渉読取」特性<65533>を介してIoTサービスセッション公開鍵1701を受信することができる。鍵1701は、IoTサービス120からBTLE対応IoTハブ110又はクライアントデバイス611に送信することができ、それらは、次に、GATTを使用して、特性ID<65533>により識別された交渉読取値バッファに鍵1701を書込むことができる。IoTデバイスのアプリケーションロジック1902は、次に、特性ID<65533>により識別された値バッファから鍵1701を読み取って、上述したようにそれを処理することができる(例えば、それを使用してシークレットを生成し、シークレットを使用してキーストリームを生成するなど)。   In the example of FIG. 19, the “name” property is a BT defined property assigned a specific value of “IoT device 14”. One embodiment of the present invention is the first set of additional properties used to negotiate a secure communication channel with BT device 1910 and the additional used for encrypted communication with BT device 1910 Specify a second set of properties of. In particular, the "negotiate write" characteristic identified by characteristic ID <65532> in the illustrated embodiment can be used to send an outgoing negotiation message and identified by characteristic ID <65533>. The "negotiate read" feature can be used to receive an incoming negotiation message. The “negotiation message” may include the message used by BT device 1910 and BT communication module 1901 to establish a secure communication channel as described herein. As an example, in FIG. 17, the IoT device 101 can receive the IoT service session public key 1701 via the "Negotiate Read" feature <65533>. The key 1701 can be sent from the IoT service 120 to the BTLE enabled IoT hub 110 or client device 611, which in turn use the GATT to negotiate a reading buffer identified by property ID <65533> The key 1701 can be written. The application logic 1902 of the IoT device can then read the key 1701 from the value buffer identified by the property ID <65533> and process it as described above (e.g. using it a secret Generate and generate keystreams using secrets, etc.)

鍵1701が20バイト(一部の現在の実装形態での最大バッファサイズ)より大きい場合は、鍵は20バイトの部分に書き込むことができる。例えば、最初の20バイトは、BT通信モジュール1903によって特性ID<65533>に書き込んで、IoTデバイスアプリケーションロジック1902によって読み取ることができ、IoTデバイスアプリケーションロジック1902は、次に、確認応答メッセージを特性ID<65532>により識別された交渉書込値バッファに書込むことができる。GATTを使用して、BT通信モジュール1903は、この確認応答を特性ID<65532>から読み取ることができ、それに応じて、鍵1701の次の20バイトを特性ID<65533>により識別された交渉読取値バッファに書込むことができる。この方法で、特性ID<65532>及び<65533>により規定されたネットワークソケットアブストラクションは、安全な通信チャネルを確立するために使用される交渉メッセージを交換するために確立される。   If the key 1701 is larger than 20 bytes (the maximum buffer size in some current implementations), the key can be written in 20-byte parts. For example, the first 20 bytes can be written to feature ID <65533> by the BT communication module 1903 and read by the IoT device application logic 1902, which in turn can use the acknowledgment message to identify the feature ID < The negotiated write value buffer identified by Using the GATT, the BT communication module 1903 can read this acknowledgment from the property ID <65532>, and correspondingly, reads the next 20 bytes of the key 1701 the negotiation read identified by the property ID <65533>. You can write to the value buffer. In this manner, network socket abstractions defined by property IDs <65532> and <65533> are established to exchange negotiation messages used to establish a secure communication channel.

一実施形態では、安全な通信チャネルが確立されると、特性ID<65534>(IoTデバイス101から暗号化データパケットを送信するための)及び特性ID<65533>(IoTデバイスにより暗号化データパケットを受信するための)を使用して、第2のネットワークソケットアブストラクションが確立される。すなわち、BT通信モジュール1903が送信する暗号化データパケット(例えば、図16Aの暗号化メッセージ1603などの)を有するとき、BT通信モジュール1903は、特性ID<65533>により識別されたメッセージ読取値バッファを使用して一度に20バイト、暗号化データパケットを書込み始める。IoTデバイスアプリケーションロジック1902は、次に、読取値バッファから一度に20バイト、暗号化データパケットを読み取り、必要に応じて特性ID<65532>により識別された書込値バッファを介して確認応答メッセージをBT通信モジュール1903に送信することになる。   In one embodiment, once the secure communication channel is established, feature ID <65534> (for sending encrypted data packets from IoT device 101) and feature ID <65533> (for encrypted data packets with IoT device) A second network socket abstraction is established using (for receiving). That is, when the BT communication module 1903 has an encrypted data packet (for example, the encrypted message 1603 in FIG. 16A, etc.) to be transmitted, the BT communication module 1903 uses the message reading buffer identified by the characteristic ID <65533>. Use 20 bytes at a time to start writing encrypted data packets. The IoT device application logic 1902 then reads the encrypted data packet, 20 bytes at a time, from the reading buffer and, if necessary, acknowledges the message via the writing buffer identified by property ID <65532>. It is to be transmitted to the BT communication module 1903.

一実施形態では、後述するGET、SET、及びUPDATEのコマンドを使用して、2つのBT通信モジュール1901と1903との間でデータ及びコマンドを交換する。例えば、BT通信モジュール1903は、特性ID<65533>を識別しSETコマンドを含むパケットを送信して、特性ID<65533>により識別された値フィールド/バッファに書込むことができ、それは次に、IoTデバイスアプリケーションロジック1902によって読み取ることができる。IoTデバイス101からデータを取得するために、BT通信モジュール1903は、特性ID<65534>により識別された値フィールド/バッファに向けられたGETコマンドを送信することができる。GETコマンドに応答して、BT通信モジュール1901は、特性ID<65534>により識別された値フィールド/バッファからのデータを含むUPDATEパケットをBT通信モジュール1903に送信することができる。加えて、UPDATEパケットは、IoTデバイス101上の特定の属性の変化に応答して、自動的に送信することができる。例えば、IoTデバイスが照明システムに関連付けられていて、ユーザが照明をオンにする場合、UPDATEパケットを送信して、照明アプリケーションに関連付けられたオン/オフ属性にこの変化を反映することができる。   In one embodiment, data and commands are exchanged between the two BT communication modules 1901 and 1903 using GET, SET and UPDATE commands described below. For example, BT communication module 1903 may identify feature ID <65533> and send a packet containing a SET command to write to the value field / buffer identified by feature ID <65533>, which is then: It can be read by the IoT device application logic 1902. In order to obtain data from the IoT device 101, the BT communication module 1903 may send a GET command directed to the value field / buffer identified by the feature ID <65534>. In response to the GET command, the BT communication module 1901 can transmit to the BT communication module 1903 an UPDATE packet including data from the value field / buffer identified by the characteristic ID <65534>. In addition, UPDATE packets can be sent automatically in response to changes in certain attributes on the IoT device 101. For example, if the IoT device is associated with a lighting system and the user turns on lighting, an UPDATE packet can be sent to reflect this change in the on / off attribute associated with the lighting application.

図20は、本発明の一実施形態による、GET、SET、及びUPDATE用に使用される例示的なパケット形式を例示する。一実施形態では、これらのパケットは、交渉の後に、メッセージ書込<65534>及びメッセージ読取<65533>チャネルを介して送信される。GETパケット2001では、最初の1バイトのフィールドは、パケットをGETパケットとして識別する値(0×10)を含む。2番目の1バイトのフィールドは、現在のGETコマンドを一意的に識別する(すなわち、GETコマンドが関連付けられた現在のトランザクションを識別する)要求IDを含む。例えば、サービス又はデバイスから送信されたGETコマンドのそれぞれのインスタンスに、異なる要求IDを割り当てることができる。これは、例えば、カウンタを増加させて、カウンタ値を要求IDとして使用することにより、実行することができる。しかしながら、本発明の基本原理は、要求IDを設定するためのいかなる特定の方法にも限定されるものではない。   FIG. 20 illustrates an exemplary packet format used for GET, SET, and UPDATE, according to one embodiment of the present invention. In one embodiment, these packets are sent after the message write <65534> and read message <65533> channels. In GET packet 2001, the first 1-byte field contains a value (0 × 10) that identifies the packet as a GET packet. The second one-byte field contains a request ID that uniquely identifies the current GET command (ie, identifies the current transaction with which the GET command is associated). For example, different request IDs can be assigned to each instance of a GET command sent from a service or device. This can be done, for example, by incrementing the counter and using the counter value as the request ID. However, the basic principle of the present invention is not limited to any particular method for setting the request ID.

2バイトの属性IDは、パケットが向けられたアプリケーション特有の属性を識別する。例えば、GETコマンドが図19に例示したIoTデバイス101に送信されている場合、属性IDを使用して、要求されている特定のアプリケーション特有の値を識別することができる。上述の実施例に戻って、GETコマンドは、照明システムの電源状態などのアプリケーション特有の属性IDに向けることができ、この属性IDは、照明が電源がオン又はオフになっているかを識別する値(例えば、1=オン、0=オフ)を含む。IoTデバイス101がドアに関連付けられたセキュリティ装置である場合、値フィールドは、ドアの現在の状態(例えば、1=開いている、0=閉じている)を識別することができる。GETコマンドに応答して、属性IDにより識別された現在の値を含む応答を送信することができる。   The 2-byte attribute ID identifies the application-specific attribute to which the packet was directed. For example, if a GET command is being sent to the IoT device 101 illustrated in FIG. 19, the attribute ID can be used to identify the specific application-specific value being requested. Returning to the above example, the GET command can be directed to an application specific attribute ID, such as the power state of the lighting system, which is a value that identifies whether the light is powered on or off. (Eg, 1 = on, 0 = off). If the IoT device 101 is a security device associated with a door, the value field can identify the current state of the door (eg, 1 = open, 0 = closed). In response to the GET command, a response can be sent that includes the current value identified by the attribute ID.

図20に例示したSETパケット2002及びUPDATEパケット2003もまた、パケットのタイプ(すなわち、SET及びUPDATE)を識別する最初の1バイトのフィールド、要求IDを含む2番目の1バイトのフィールド、及びアプリケーションで定義された属性を識別する2バイトの属性IDフィールドを含む。加えて、SETパケットは、nバイトの値データフィールドに含まれたデータの長さを識別する2バイト長の値を含む。値データフィールドは、IoTデバイス上で実行されるコマンド、及び/又はなんらかの方法でIoTデバイスの動作を構成する(例えば、所望のパラメータを設定する、IoTデバイスの電源を切るなど)コンフィギュレーションデータを含むことができる。例えば、IoTデバイス101がファンの速度を制御する場合、値フィールドは、現在のファンの速度を反映することができる。   The SET packet 2002 and the UPDATE packet 2003 illustrated in FIG. 20 also include the first 1-byte field identifying the type of packet (ie, SET and UPDATE), the second 1-byte field including the request ID, and the application. It contains a 2 byte Attribute ID field that identifies the defined attribute. In addition, the SET packet contains a 2-byte long value that identifies the length of the data contained in the n-byte value data field. The value data field contains commands that are executed on the IoT device and / or configuration data that configures the operation of the IoT device in some way (eg, set desired parameters, power off the IoT device, etc.) be able to. For example, if the IoT device 101 controls the speed of a fan, the value field can reflect the current speed of the fan.

UPDATEパケット2003は、SETコマンドの結果の更新を提供するために送信することができる。UPDATEパケット2003は、SETコマンドの結果に関連したデータを含むことができるnバイトの値データフィールドの長さを識別する、2バイト長の値フィールドを含む。加えて、1バイトの更新状態フィールドは、更新されている変数の現在の状態を識別することができる。例えば、SETコマンドがIoTデバイスにより制御された照明をオフにすることを試みた場合、更新状態フィールドは、照明が正常にオフにされたか否かを示すことができる。   An UPDATE packet 2003 can be sent to provide an update of the result of the SET command. The UPDATE packet 2003 includes a 2-byte-long value field that identifies the length of an n-byte value data field that can include data associated with the result of the SET command. In addition, a 1-byte update status field can identify the current status of the variable being updated. For example, if the SET command attempts to turn off the light controlled by the IoT device, the update status field may indicate whether the light was turned off normally.

図21は、SET及びUPDATEコマンドを伴うIoTサービス120とIoTデバイス101との間の例示的なトランザクションのシーケンスを例示する。IoTハブ及びユーザのモバイルデバイスなどの中間デバイスは、本発明の基本原理を不明瞭にすることを避けるために示されていない。2101で、SETコマンド2101は、IoTサービスからIoTデバイス101に送信されて、BT通信モジュール1901により受信され、BT通信モジュール1901は、それに応じて、2102で特性IDにより識別されたGATT値バッファを更新する。SETコマンドは、2103で低電力マイクロコントローラ(low power microcontroller)(MCU)200により(又は図19に示すIoTデバイスアプリケーションロジック1902などの低電力MCU上で実行されているプログラムコードにより)値バッファから読み取られる。2104で、MCU 200又はプログラムコードは、SETコマンドに応答して動作を実行する。例えば、SETコマンドは、新しい温度などの新しい構成パラメータを指定する属性IDを含むことができる、又はオン/オフなどの状態値(IoTデバイスを「オン」又は低電力状態に入らせるための)を含むことができる。したがって、2104で、新しい値がIoTデバイスに設定され、2105でUPDATEコマンドが返され、2106でGATT値フィールドの実際の値が更新される。場合により、実際の値は、所望の値に等しいであろう。他の場合では、更新された値は、異なることがある(すなわち、IoTデバイス101がある特定のタイプの値を更新するのに時間がかかることがあるため)。最終的に、2107で、GATT値フィールドからの実際の値を含むUPDATEコマンドがIoTサービス120に返送される。   FIG. 21 illustrates an exemplary sequence of transactions between the IoT service 120 and the IoT device 101 with SET and UPDATE commands. Intermediate devices such as IoT hubs and user mobile devices are not shown to avoid obscuring the basic principles of the present invention. At 2101, a SET command 2101 is sent from the IoT service to the IoT device 101 and received by the BT communication module 1901, which correspondingly updates the GATT value buffer identified by the characteristic ID at 2102 Do. The SET command is read from the value buffer at 2103 by a low power microcontroller (MCU) 200 (or by program code running on a low power MCU such as IoT device application logic 1902 shown in FIG. 19). Be At 2104, the MCU 200 or program code performs an action in response to a SET command. For example, the SET command can include an attribute ID that specifies a new configuration parameter, such as a new temperature, or a state value such as on / off (to cause the IoT device to enter an "on" or low power state) Can be included. Thus, at 2104, a new value is set to the IoT device, an UPDATE command is returned at 2105, and the actual value of the GATT value field is updated at 2106. In some cases, the actual value will be equal to the desired value. In other cases, the updated values may be different (ie, it may take time for the IoT device 101 to update certain types of values). Finally, at 2107, an UPDATE command including the actual value from the GATT value field is sent back to the IoT service 120.

図22は、本発明の一実施形態によるIoTサービスとIoTデバイスとの間で安全な通信チャネルを実装するための方法を例示する。本方法は、上述のネットワークアーキテクチャとの関連で実装され得るが、いかなる特定のアーキテクチャにも限定されない。   FIG. 22 illustrates a method for implementing a secure communication channel between an IoT service and an IoT device according to an embodiment of the present invention. The method may be implemented in the context of the network architecture described above, but is not limited to any particular architecture.

2201で、IoTサービスは、楕円曲線デジタル署名アルゴリズム(elliptic curve digital signature algorithm)(ECDSA)証明書を使用してIoTハブと通信するための暗号化チャネルを作成する。2202で、IoTサービスは、セッションシークレットを使用してIoTデバイスパケット内のデータ/コマンドを暗号化して、暗号化デバイスパケットを作成する。上述したように、セッションシークレットは、IoTデバイス及びIoTサービスによって独自に生成することができる。2203で、IoTサービスは、暗号化チャネルを介して暗号化デバイスパケットをIoTハブに送信する。2204で、解読することなく、IoTハブは、暗号化デバイスパケットをIoTデバイスに渡す。22−5で、IoTデバイスは、セッションシークレットを使用して、暗号化デバイスパケットを解読する。上述したように、一実施形態では、これは、シークレット及びカウンタ値(暗号化デバイスパケットと共に提供される)を使用してキーストリームを生成し、次にキーストリームを使用してパケットを解読することにより実現することができる。2206で、IoTデバイスは、次に、デバイスパケットに含まれたデータ及び/又はコマンドを抽出して処理する。   At 2201, the IoT service creates an encrypted channel for communicating with the IoT hub using an elliptic curve digital signature algorithm (ECDSA) certificate. At 2202, the IoT service encrypts data / commands in the IoT device packet using the session secret to create an encrypted device packet. As mentioned above, session secrets can be uniquely generated by IoT devices and IoT services. At 2203, the IoT service sends the encrypted device packet to the IoT hub via the encrypted channel. At 2204, without decryption, the IoT hub passes the encrypted device packet to the IoT device. At 22-5, the IoT device decrypts the encrypted device packet using the session secret. As mentioned above, in one embodiment, this generates a keystream using the secret and counter value (provided with the encrypted device packet) and then decrypts the packet using the keystream Can be realized by At 2206, the IoT device then extracts and processes data and / or commands contained in the device packet.

したがって、上述の技術を使用して、標準的なペアリング技術を使用して、BTデバイスを正式にペアリングすることなく、2つのBT対応デバイス間で双方向の安全なネットワークソケットアブストラクションを確立することができる。これらの技術は、IoTサービス120と通信するIoTデバイス101に関して上述したが、本発明の基本原理は、任意の2つのBT対応デバイス間で安全な通信チャネルを交渉して確立するように実装することができる。   Thus, using the techniques described above, establish a two-way secure network socket abstraction between two BT enabled devices without formally pairing BT devices using standard pairing techniques be able to. While these techniques are described above with respect to the IoT device 101 communicating with the IoT service 120, the basic principles of the present invention may be implemented to negotiate and establish a secure communication channel between any two BT enabled devices Can.

図23A〜Cは、本発明の一実施形態によるデバイスをペアリングするための詳細な方法を例示する。本方法は、上述のシステムアーキテクチャとの関連で実装され得るが、いかなる特定のシステムアーキテクチャにも限定されない。   23A-C illustrate a detailed method for pairing devices according to one embodiment of the present invention. The method may be implemented in the context of the system architecture described above, but is not limited to any particular system architecture.

2301で、IoTサービスは、IoTサービスのシリアルナンバー及び公開鍵を含むパケットを作成する。2302で、IoTサービスは、工場秘密鍵を使用してパケットに署名する。2303で、IoTサービスは、暗号化チャネルを介してIoTハブにパケットを送信し、2304で、IoTハブは、非暗号化チャネルを介してIoTデバイスにパケットを転送する。2305で、IoTデバイスは、パケットの署名を検証し、2306で、IoTデバイスは、IoTデバイスのシリアルナンバー及び公開鍵を含むパケットを生成する。2307で、IoTデバイスは、工場秘密鍵を使用してパケットに署名し、2308で、IoTデバイスは、非暗号化チャネルを介してIoTハブにパケットを送信する。   At 2301, the IoT service creates a packet that includes the serial number of the IoT service and the public key. At 2302, the IoT service signs the packet using the factory secret key. At 2303, the IoT service sends the packet to the IoT hub via the encrypted channel, and at 2304 the IoT hub forwards the packet to the IoT device via the unencrypted channel. At 2305, the IoT device verifies the signature of the packet, and at 2306, the IoT device generates a packet that includes the serial number of the IoT device and the public key. At 2307, the IoT device signs the packet using the factory secret key, and at 2308, the IoT device sends the packet to the IoT hub over the unencrypted channel.

2309で、IoTハブは、暗号化チャネルを介してパケットをIoTサービスに転送し、2310で、IoTサービスは、パケットの署名を検証する。2311で、IoTサービスは、セッション鍵ペアを生成し、2312で、IoTサービスは、セッション公開鍵を含むパケットを生成する。IoTサービスは、次に、2313で、IoTサービス秘密鍵でパケットに署名し、2314で、IoTサービスは、暗号化チャネルを介してパケットをIoTハブに送信する。   At 2309, the IoT hub forwards the packet to the IoT service via the encryption channel, and at 2310, the IoT service verifies the packet's signature. At 2311 the IoT service generates a session key pair, and at 2312 the IoT service generates a packet containing the session public key. The IoT service then signs the packet with the IoT service secret key at 2313, and at 2314 the IoT service sends the packet to the IoT hub via the encrypted channel.

図23Bに移って、2315で、IoTハブは、非暗号化チャネルを介してパケットをIoTデバイスに転送し、2316で、IoTデバイスは、パケットの署名を検証する。2317で、IoTデバイスは、セッション鍵ペアを生成し(例えば、上述の技術を使用して)、2318で、IoTデバイスセッション公開鍵を含むIoTデバイスパケットが生成される。2319で、IoTデバイスは、IoTデバイス秘密鍵でIoTデバイスパケットに署名する。2320で、IoTデバイスは、非暗号化チャネルを介してIoTハブにパケットを送信し、2321で、IoTハブは、暗号化チャネルを介してIoTサービスにパケットを転送する。   Moving on to FIG. 23B, at 2315, the IoT hub forwards the packet to the IoT device via the unencrypted channel, and at 2316, the IoT device verifies the signature of the packet. At 2317, the IoT device generates a session key pair (eg, using the techniques described above), and at 2318 an IoT device packet is generated that includes the IoT device session public key. At 2319, the IoT device signs the IoT device packet with the IoT device secret key. At 2320, the IoT device sends the packet to the IoT hub via the unencrypted channel, and at 2321 the IoT hub forwards the packet to the IoT service via the encrypted channel.

2322で、IoTサービスは、パケットの署名を検証し(例えば、IoTデバイス公開鍵を使用して)、2323で、IoTサービスは、IoTサービス秘密鍵及びIoTデバイス公開鍵を使用して、セッションシークレットを生成する(先に詳細に説明したように)。2324で、IoTデバイスは、IoTデバイス秘密鍵及びIoTサービス公開鍵を使用して、セッションシークレットを生成し(また、上述したように)、2325で、IoTデバイスは、乱数を生成して、セッションシークレットを使用してその乱数を暗号化する。2326で、IoTサービスは、暗号化チャネルを介して暗号化パケットをIoTハブに送信する。2327で、IoTハブは、非暗号化チャネルを介して暗号化パケットをIoTデバイスに転送する。2328で、IoTデバイスは、セッションシークレットを使用してパケットを解読する。   At 2322, the IoT service verifies the signature of the packet (eg, using the IoT device public key), and at 2323 the IoT service uses the IoT service secret key and the IoT device public key to Generate (as detailed above). At 2324, the IoT device generates a session secret (also as described above) using the IoT device secret key and the IoT service public key, and at 2325 the IoT device generates a random number to generate a session secret Use to encrypt that random number. At 2326, the IoT service sends the encrypted packet to the IoT hub via the encryption channel. At 2327, the IoT hub forwards the encrypted packet to the IoT device over the unencrypted channel. At 2328, the IoT device decrypts the packet using the session secret.

図23Cに移って、2329で、IoTデバイスは、セッションシークレットを使用してパケットを再暗号化し、2330で、IoTデバイスは、非暗号化チャネルを介して暗号化パケットをIoTハブに送信する。2331で、IoTハブは、暗号化チャネルを介して暗号化パケットをIoTサービスに転送する。2332で、IoTサービスは、セッションシークレットを使用してパケットを解読する。2333で、IoTサービスは、乱数がIoTサービスが送信した乱数と一致することを検証する。IoTサービスは、次に、2334で、ペアリングが完了したことを示すパケットを送信し、2335で、その後のメッセージはすべて、セッションシークレットを使用して暗号化される。
IoTシステムにおいてWiFiセキュリティデータを共有するための装置及び方法
Moving on to FIG. 23C, at 2329, the IoT device re-encrypts the packet using the session secret, and at 2330, the IoT device sends the encrypted packet to the IoT hub via the unencrypted channel. At 2331, the IoT hub forwards the encrypted packet to the IoT service via the encryption channel. At 2332 the IoT service decrypts the packet using the session secret. At 2333, the IoT service verifies that the random number matches the random number sent by the IoT service. The IoT service then sends a packet at 2334 indicating that pairing is complete, and at 2335 all subsequent messages are encrypted using the session secret.
Apparatus and method for sharing WiFi security data in an IoT system

上述したように、特定のIoTデバイス及びIoTハブは、WiFiネットワークを介して通信チャネルを確立するように構成され得る。そのような安全なWiFiネットワークを介した接続を確立する際、構成を実行して、WiFiキーをIoTデバイス/ハブに提供する必要がある。以下に記載される本発明の実施形態は、WiFiキーなどのセキュリティデータを共有することによって、IoTハブを安全なWiFiチャネルに接続し、それにより構成プロセスを簡略化するための技術を含む。   As mentioned above, certain IoT devices and IoT hubs may be configured to establish a communication channel via a WiFi network. When establishing a connection via such a secure WiFi network, configuration needs to be performed to provide a WiFi key to the IoT device / hub. Embodiments of the invention described below include techniques for connecting an IoT hub to a secure WiFi channel by sharing security data, such as a WiFi key, thereby simplifying the configuration process.

図24に例示されるように、本発明の一実施形態は、(上述した以前の実施形態のように)インターネット220を介して複数のIoTデバイス101〜103をIoTサービス120に接続するように設計されたIoTハブ110との関連で実行される。一実施形態では、上述したセキュリティ技術を使用して、IoTハブ110にWiFiキー及びローカルWiFiルータ116のSSIDなど他のデータを安全に提供する。一実施形態では、IoTハブ110を構成するために、クライアントデバイス135上のアプリは、IoTハブの機能を一時的に実行して、IoTハブ110をIoTサービスに通信可能に連結する。次いで、IoTハブ110及びIoTサービス120は、安全な通信チャネルを確立して、後述されるIoTハブにWiFiセキュリティデータを提供する。   As illustrated in FIG. 24, one embodiment of the present invention is designed to connect multiple IoT devices 101-103 to IoT service 120 via the Internet 220 (as in the previous embodiment described above) Is performed in association with the IoT hub 110. In one embodiment, the security techniques described above are used to securely provide the IoT hub 110 with other data such as the WiFi key and the SSID of the local WiFi router 116. In one embodiment, to configure the IoT hub 110, the app on the client device 135 temporarily executes the functions of the IoT hub to communicatively couple the IoT hub 110 to the IoT service. The IoT hub 110 and the IoT service 120 then establish a secure communication channel to provide WiFi security data to the IoT hub described below.

特に、図25は、IoTハブ110及びIoTサービス120が安全な通信チャネルを確立するために暗号化エンジン1660〜1661、安全な鍵ストア1650〜1651、KSGMモジュール1640〜1641、及びHSMモジュール1630〜1631を含む上述した様々なセキュリティ構成要素をどのように含むかを例示する。これらの構成要素は、実質的に上述のように動作して、IoTハブ110をIoTサービス120に安全に接続する。一実施形態では、クライアントデバイス135上で実行されるクライアントアプリ2505(又は他のプログラムコード)は、IoTハブ110及びIoTサービス120と、後述のようにWiFiセキュリティデータを暗号化するために使用されるシークレットを生成し、共有するためのセキュリティモジュール2502との間に通信チャネルを確立するためのハブ/サービス接続ロジック2503を含む。一実施形態では、クライアントデバイス130は、IoTハブ110とのBTLE接続及びIoTサービス120とのWiFi又はセルラーデータ接続を形成して、IoTハブ110とIoTサービス120との間の接続を確立する。   In particular, FIG. 25 illustrates that the IoT hub 110 and the IoT service 120 can establish a secure communication channel with an encryption engine 1660-1661, a secure key store 1650-1651, a KSGM module 1640-1641, and an HSM module 1630-1631. And how to include the various security components described above. These components operate substantially as described above to securely connect the IoT hub 110 to the IoT service 120. In one embodiment, client application 2505 (or other program code) running on client device 135 is used to encrypt IoT hub 110 and IoT service 120 and WiFi security data as described below Hub / service connection logic 2503 for establishing a communication channel with the security module 2502 for generating and sharing secrets. In one embodiment, client device 130 forms a BTLE connection with IoT hub 110 and a WiFi or cellular data connection with IoT service 120 to establish a connection between IoT hub 110 and IoT service 120.

上述したように、一実施形態では、BTLE接続がIoTハブ110とクライアントデバイス135との間で形成され、WiFi/セルラー接続がクライアントデバイス135とIoTサービス120との間で形成された後で、IoTサービス120は、上述したECDH鍵交換技術を用いたIoTハブによって認証する。この実施形態では、クライアントデバイス135上のハブ/サービス接続ロジック2503は、上述したIoTハブと同じ又は類似の機能を実行する(例えば、双方向通信チャネルを形成してデータトラフィックにIoTハブ110とIoTサービス120との間を通過させる)。   As mentioned above, in one embodiment, after the BTLE connection is formed between the IoT hub 110 and the client device 135 and the WiFi / cellular connection is formed between the client device 135 and the IoT service 120, the IoT The service 120 authenticates with the IoT hub using the ECDH key exchange technology described above. In this embodiment, the hub / service connection logic 2503 on the client device 135 performs the same or similar functions as the IoT hub described above (e.g., forming a two-way communication channel to transmit data traffic to the IoT hub 110 and IoT) Pass between services 120).

一実施形態では、クライアントアプリ2505のセキュリティモジュール2502は、暗号化に使用されるシークレットを生成し、そのシークレットをIoTハブにBTLE通信チャネルを介して送信する。一実施形態では、シークレットは、32バイト乱数を含む(例えば、上述した鍵ストリームと類似の方法で生成される)。攻撃者は、シークレットを使用する基本となるデータにアクセスしないので、この実施形態では、シークレットは平文で送信されてもよい(例えば、WiFiキー及び関連データ)。   In one embodiment, the security module 2502 of the client application 2505 generates a secret used for encryption and sends the secret to the IoT hub via the BTLE communication channel. In one embodiment, the secret comprises a 32 byte random number (eg, generated in a manner similar to the key stream described above). In this embodiment, the secret may be sent in plaintext (eg, WiFi key and related data), as the attacker does not access the underlying data using the secret.

クライアントアプリ2505は次に、WiFiキー及び他のWiFiデータ(例えば、SSIDなど)を取得し、シークレットを使用して暗号化し、これをIoTサービス120も送信する。一実施形態では、クライアントアプリ2505は、この情報を直接ユーザに要求する(例えば、GUI経由で鍵を入力するようにユーザに求める)。他の実施形態では、クライアントアプリ2505は、エンドユーザによる認証の後にこの情報をローカルの安全な記憶装置から取得する。IoTサービス120は、セキュリティモジュール2502によって生成されたシークレットを有しないので、WiFiキー及び他のデータを読み取ることができない。   The client application 2505 then retrieves the WiFi key and other WiFi data (eg, SSID, etc.), encrypts it using the secret, and also sends it to the IoT service 120. In one embodiment, the client application 2505 directly requests this information from the user (eg, asking the user to enter a key via the GUI). In another embodiment, the client application 2505 obtains this information from the local secure storage after authentication by the end user. Because the IoT service 120 does not have the secret generated by the security module 2502, it can not read the WiFi key and other data.

一実施形態では、IoTサービス120は次に、(既に暗号化された)鍵及び他のデータを暗号化し、ハブ/サービス接続ロジック2503を介して、2回暗号化された鍵/データをIoTハブ110に送信する。この実施形態のクライアントアプリ2505は、IoTサービス120及びIoTハブ110のみがセッションシークレットを有するので、このトラフィックを読み取ることができない(例えば、図16A〜図23C及び関連した文章を参照)。したがって、2回暗号化された鍵及び他のデータを受信すると、IoTハブ110は、セッションシークレットを使用して2回暗号化された鍵/データを解読して、暗号化された鍵/データを生成する(セキュリティモジュール2502によって生成されたシークレットを使用して暗号化されたバージョン)。   In one embodiment, the IoT service 120 then encrypts the (already encrypted) key and other data and sends the twice encrypted key / data to the IoT hub via the hub / service connection logic 2503. Send to 110 The client application 2505 in this embodiment can not read this traffic because only the IoT service 120 and the IoT hub 110 have session secrets (see, eg, FIGS. 16A-23C and related text). Thus, upon receiving the twice encrypted key and other data, the IoT hub 110 decrypts the twice encrypted key / data using the session secret to decrypt the encrypted key / data. Generate (a version encrypted using the secret generated by the security module 2502).

一実施形態では、IoTハブ上のWiFiデータ処理ロジック2510は次に、セキュリティモジュール2502によって提供されるシークレットを使用して、暗号化された鍵及び他のデータを解読し、完全に解読されたWiFiキー及び関連したデータをもたらす。次にローカルWiFiルータ116との安全な通信チャネルを確立するために、WiFiキー及びデータ(例えば、WiFiルータ116のSSID)を使用してもよい。次にIoTサービス120と接続するために、この接続を使用してもよい。   In one embodiment, the WiFi data processing logic 2510 on the IoT hub then decrypts the encrypted key and other data using the secret provided by the security module 2502 to completely decrypt the WiFi Provides keys and associated data. The WiFi key and data (eg, WiFi router 116 SSID) may then be used to establish a secure communication channel with the local WiFi router 116. This connection may then be used to connect to the IoT service 120.

本発明の一実施形態に従う方法が図26に示されている。本方法は、上記のシステムアーキテクチャとの関連で実装され得るが、いかなる特定のアーキテクチャにも限定されない。   A method in accordance with one embodiment of the present invention is illustrated in FIG. The method may be implemented in the context of the system architecture described above, but is not limited to any particular architecture.

2601において、IoTサービスは、セッションシークレットを使用して暗号化された通信チャネルを作成して、クライアントデバイスを介してIoTハブと通信する。2602において、クライアントデバイス上のアプリは、暗号化に使用されるシークレットを生成し、IoTハブにシークレットを送信する。2603において、クライアントデバイス上のアプリは、WiFiキーを取得し、シークレットを使用してWiFiキーを暗号化し、IoTサービスに送信する。上述したように、WiFiキーを取得することは、ユーザが手動でキーを入力すること又はクライアントデバイス上の安全な記憶装置からキーを読み取ることを伴い得る。   At 2601, the IoT service creates a communication channel encrypted using the session secret to communicate with the IoT hub via the client device. At 2602, the app on the client device generates a secret used for encryption and sends the secret to the IoT hub. At 2603, the app on the client device obtains the WiFi key, encrypts the WiFi key using the secret, and sends it to the IoT service. As mentioned above, obtaining the WiFi key may involve the user manually entering the key or reading the key from secure storage on the client device.

2604において、IoTサービスは、既に暗号化された鍵を暗号化して2回暗号化された鍵を生成し、クライアントデバイスアプリを介してIoTハブに送信する。2605において、IoTハブは、IoTハブとIoTサービスとの間の安全な通信チャネルを形成するのに使用されるセッションシークレットを使用して2回暗号化された鍵を解読する。結果として生じる暗号化された鍵は、クライアントデバイス上のアプリによって生成されたシークレットを使用して暗号化されたバージョンである。2606において、IoTハブは、アプリによって提供されるシークレットを使用して暗号化された鍵を解読し、暗号化されていない鍵をもたらす。最後に、2607において、IoTハブは、暗号化されていないWiFiキーを使用して、IoTサービスに接続するために使用する安全なWiFi接続を確立する。
モノのインターネット(IoT)システムにおける自動的無線ネットワーク認証のためのシステム及び方法
At 2604, the IoT service encrypts the already encrypted key to generate a twice encrypted key and sends it to the IoT hub via the client device application. At 2605, the IoT hub decrypts the twice encrypted key using the session secret used to form a secure communication channel between the IoT hub and the IoT service. The resulting encrypted key is a version encrypted using the secret generated by the application on the client device. At 2606, the IoT hub decrypts the encrypted key using the secret provided by the app, resulting in an unencrypted key. Finally, at 2607, the IoT hub establishes a secure WiFi connection to use to connect to the IoT service using the unencrypted WiFi key.
System and method for automatic wireless network authentication in Internet of Things (IoT) system

本発明の一実施形態は、安全にかつ自動的に新しいIoTデバイス及びIoTハブをWiFiルータに接続するための技術を実装する。この実施形態は、最初に1つ以上のエクステンダIoTハブ2710〜2711及び/又はIoTデバイス105へのローカル無線接続を形成するマスターIoTハブ2716を含む図27に関して記述される。本明細書で使用するとき、「エクステンダ」IoTハブは、IoTデバイス101〜104(例えば、マスターIoTハブ2716の範囲外であるIoTデバイス)をIoTシステムに接続するためにマスターIoTハブ2716の無線範囲を拡大するIoTハブである。例えば、IoTデバイス101〜104は、(本明細書に記述される様々な技術を使用して)IoTエクステンダハブ2710〜2711とのBTLE接続を形成することができ、エクステンダIoTハブ2710〜2711は、マスターIoTハブ2716へのWiFi接続を形成する。例示したように、マスターIoTハブ2716はまた、範囲内の特定のIoTデバイス105への直接的なローカル無線接続も形成することができる(例えば、BTLE又はWiFi接続)。   One embodiment of the present invention implements techniques for connecting new IoT devices and IoT hubs to WiFi routers securely and automatically. This embodiment is described with respect to FIG. 27, which initially includes a master IoT hub 2716 that forms a local wireless connection to one or more extender IoT hubs 2710-2711 and / or IoT devices 105. As used herein, an “extender” IoT hub is a wireless range of the master IoT hub 2716 to connect the IoT devices 101-104 (eg, an IoT device that is out of range of the master IoT hub 2716) to the IoT system It is an IoT hub that expands For example, IoT devices 101-104 can form a BTLE connection with IoT extender hubs 2710-2711 (using various techniques described herein), and extender IoT hubs 2710-2711 can be Form a WiFi connection to the master IoT hub 2716. As illustrated, the master IoT hub 2716 can also form a direct local wireless connection to a particular IoT device 105 within range (eg, BTLE or WiFi connection).

IoTハブのすべての機能を実行することに加えて、マスターIoTハブ2716の一実施形態はまた、様々なIoTデバイス101〜105及びIoTエクステンダハブ2710〜2711をIoTサービス120にインターネット220を介して接続するWiFiルータでもある。一実施形態では、マスターIoTハブ2716は、ローカルネットワーク上の様々なIoTデバイス101〜105及びエクステンダIoTハブ2710〜2711を認証するための認証モジュール2720を含む。具体的には、一実施形態では、認証モジュール2720は、非表示サービスセット識別子(SSID)を、様々なIoTデバイス101〜105及びエクステンダIoTハブ2710〜2711の中に予めプログラミングされている既知のコモンネームと共に使用する。例えば、「_afero」などのSSIDは、認証モジュール2720によって使用されてもよく、各IoTデバイス101〜104及びエクステンダIoTハブ2710〜2711は、これらのハブ/デバイスが自動的にマスターIoTハブ2716に接続し得るように、このSSIDを用いて予めプログラミングされていてもよい。加えて、認証ロジック2720は、WPA2パスフレーズなどのセキュリティパスフレーズを必要とし得る。一実施形態では、各IoTデバイス101〜105及びエクステンダIoTハブ2710〜2711はまた、ユーザインストール中にマスターIoTハブ2716に自動的に接続するように、このパスフレーズを用いて予めプログラミングされている。   In addition to performing all the functions of the IoT hub, one embodiment of the master IoT hub 2716 also connects various IoT devices 101-105 and IoT extender hubs 2710-2711 to the IoT service 120 via the Internet 220 Is also a WiFi router. In one embodiment, the master IoT hub 2716 includes an authentication module 2720 for authenticating various IoT devices 101-105 and extender IoT hubs 2710-2711 on the local network. In particular, in one embodiment, the authentication module 2720 is configured to pre-program non-displayed service set identifiers (SSIDs) into various IoT devices 101-105 and extender IoT hubs 2710-2711. Use with the name. For example, an SSID such as “_afero” may be used by the authentication module 2720, and each IoT device 101-104 and extender IoT hub 2710-2711 will be automatically connected to the master IoT hub 2716 by these hubs / devices As is possible, it may be preprogrammed with this SSID. In addition, authentication logic 2720 may require a security passphrase, such as a WPA2 passphrase. In one embodiment, each IoT device 101-105 and extender IoT hub 2710-2711 are also pre-programmed with this pass phrase to automatically connect to the master IoT hub 2716 during user installation.

一実施形態では、ファイアウォール2730は、既知のホスト名を有するIoTサービス120(又は他の外部サービス)内部の小さいサーバ群に対するものを除くすべての入接続要求及び出接続要求を阻止するように、マスターIoTハブ2716上に実装されている。この実施形態では、IoTデバイス101〜105は、マスターIoTハブ2716を通じてIoTサービス120を使用し得るが、マスターIoTハブ2716内にプログラミングされたもの以外のどんなサーバに接続することも許可されない。この方法で、IoTデバイス101〜104は、エンドユーザによって安全に構成され、IoTサービス120に接続され得る。   In one embodiment, the firewall 2730 is configured to block all incoming and outgoing requests except those for small servers within the IoT service 120 (or other external service) with known hostnames. It is implemented on the IoT hub 2716. In this embodiment, the IoT devices 101-105 may use the IoT service 120 through the master IoT hub 2716 but are not permitted to connect to any server other than one programmed in the master IoT hub 2716. In this manner, the IoT devices 101-104 may be securely configured by the end user and connected to the IoT service 120.

加えて、追加のセキュリティの層のために、マスターIoTハブ2716に接続することを許可されているすべてのIoTデバイス101〜105及びエクステンダIoTハブ2710〜2711を指定するホワイトリストを用いて、認証モジュール2720又はファイアウォール2730をプログラミングしてもよい。一実施形態では、それぞれ認可されたIoTデバイス101〜105及びエクステンダIoTハブ2710〜2711の媒体アクセス制御(MAC)アドレスは、ホワイトリストに含まれている。ホワイトリスト上にあるそれらのIoTデバイス及びエクステンダIoTハブだけが、マスターIoTハブ2716を通って接続することを許可されている。IoTサービス120は、新しいIoTデバイス101〜105及びエクステンダIoTハブ2710〜2711がエンドユーザに提供されるときに周期的にホワイトリストを更新してもよい。   In addition, an authentication module with a whitelist specifying all IoT devices 101-105 and extender IoT hubs 2710-2711 that are allowed to connect to the master IoT hub 2716 for an additional layer of security 2720 or firewall 2730 may be programmed. In one embodiment, the Media Access Control (MAC) addresses of the licensed IoT devices 101-105 and the extender IoT hubs 2710-2711 are included in the whitelist. Only those IoT devices and extender IoT hubs that are on the whitelist are allowed to connect through the master IoT hub 2716. The IoT service 120 may periodically update the whitelist as new IoT devices 101-105 and extender IoT hubs 2710-2711 are provided to the end user.

一実施形態では、本明細書に記載された様々な機能を実行するように既存のWiFiルータを構成してもよい。例えば、IoTサービス120のサーバからのもの以外のすべての入/出接続をブロックするように、WiFiルータのファイアウォール2730をプログラミングしてもよい。加えて、ホワイトリスト上にあるMACアドレスを有するIoTデバイス及びIoTエクステンダハブからの接続だけを許可するように、ファイアウォール2730を構成してもよい(上述したように周期的に又は動的にIoTサービス120から更新されてもよい)。加えて、WiFiルータは、IoTデバイス101〜105及びIoTエクステンダハブ2710〜2711に予め構成された、非表示SSID及びパスフレーズを用いてプログラミングされてもよい。   In one embodiment, an existing WiFi router may be configured to perform the various functions described herein. For example, the WiFi router firewall 2730 may be programmed to block all in / out connections other than from the server of the IoT service 120. In addition, the firewall 2730 may be configured to only allow connections from IoT devices with MAC addresses that are on the whitelist and IoT extender hubs (periodically or dynamically as described above IoT services May be updated from 120). In addition, the WiFi router may be programmed with a hidden SSID and pass phrase preconfigured on the IoT devices 101-105 and IoT extender hubs 2710-2711.

本発明の一実施形態による方法が図28に示されている。本方法は、上述のシステムアーキテクチャ上で実装され得るが、いかなる特定のシステムアーキテクチャにも限定されない。   A method according to an embodiment of the invention is shown in FIG. The method may be implemented on the above described system architecture, but is not limited to any particular system architecture.

2801において、マスターIoTハブは、非表示SSID及びパスフレーズを用いてプログラミングされる。2802において、1つ以上のエクステンダIoTハブ及び/又はIoTデバイスは、SSID及びパスフレーズを使用してマスターIoTハブに接続する。2803において、マスターIoTハブ上のファイアウォールは、指定したサーバ群(例えば、IoTサービス内部のサーバ)に対するもの以外のすべての入接続要求及び出接続要求をブロックするようにプログラミングされる。2804において、IoTハブは、IoTデバイス及び/又はエクステンダIoTハブのMACアドレスのホワイトリストを用いてプログラミングされる。2805において、IoTデバイス及び/又はエクステンダIoTハブは、マスターIoTハブを通じて接続しようと試みる。接続要求が(例えば、IoTサービス内の)2807で判定される認可されたサーバ宛てでない場合は、次にその接続試行は、2809でブロックされる。サーバが認可されている場合は、次に2807において、IoTデバイス又はエクステンダIoTハブのMACアドレスがホワイトリストに含まれるかどうか判定される。そうでない場合、その接続は、2809でブロックされる。そうである場合、その接続は、2808で確立される。   At 2801, the master IoT hub is programmed with the hidden SSID and pass phrase. At 2802, one or more extender IoT hubs and / or IoT devices connect to the master IoT hub using the SSID and pass phrase. At 2803, the firewall on the master IoT hub is programmed to block all incoming and outgoing connection requests other than for designated servers (eg, servers internal to the IoT service). At 2804, the IoT hub is programmed with a white list of MAC addresses for the IoT device and / or extender IoT hub. At 2805, the IoT device and / or extender IoT hub attempts to connect through the master IoT hub. If the connection request is not destined for an authorized server determined at 2807 (eg, in an IoT service), then the connection attempt is blocked at 2809. If the server is authorized, then it is determined at 2807 whether the MAC address of the IoT device or extender IoT hub is included in the white list. Otherwise, the connection is blocked at 2809. If so, the connection is established at 2808.

本発明の実施形態は、上で説明した様々な工程を含み得る。本工程は、汎用又は特殊目的のプロセッサに本工程を実行させるために使用され得る、機械実行可能な命令において具現化することができる。代替的に、これらの工程は、工程を実行するためのハードワイヤードロジックを含む特定のハードウェア構成要素によって、又はプログラミングされたコンピュータ構成要素及びカスタムハードウェア構成要素の任意の組み合わせによって、実行することができる。   Embodiments of the present invention may include the various steps described above. The process may be embodied in machine-executable instructions that may be used to cause a general purpose or special purpose processor to perform the process. Alternatively, these steps may be performed by specific hardware components including hardwired logic to perform the steps, or by any combination of programmed computer components and custom hardware components. Can.

本明細書に記載される場合に、命令は、ある特定の動作を行うように構成されるか、又は所定の機能若しくはソフトウェア命令が非一時的コンピュータ可読媒体中に具現化されたメモリ内に記憶されている、特定用途向け集積回路(ASIC)などの、ハードウェアの特定の構成を指し得る。したがって、図面に示される技術は、1つ以上の電子デバイス(例えば、エンドステーション、ネットワーク要素など)上に記憶及び実行されるコード及びデータを使用して実装され得る。そのような電子デバイスは、非一時的コンピュータ機械可読記憶媒体(例えば、磁気ディスク、光ディスク、ランダムアクセスメモリ、読み出し専用メモリ、フラッシュメモリデバイス、相変化メモリ)、並びに一時的なコンピュータ機械可読通信媒体(例えば、搬送波、赤外線信号、デジタル信号などの電気的、光学的、音響的又は他の形態の伝搬信号)などのコンピュータ機械可読記憶媒体を使用して、コード及びデータを記憶及び(内部で及び/又はネットワークを介して他の電子デバイスと)通信する。加えて、そのような電子デバイスは、典型的に、1つ以上の記憶デバイス(非一時的機械可読記憶媒体)、ユーザ入力/出力デバイス(例えば、キーボード、タッチスクリーン、及び/又はディスプレイ)、並びにネットワーク接続などの、1つ以上の他の構成要素に連結された1つ以上のプロセッサのセットを含む。プロセッサの組と他の構成要素との連結は、典型的には、1つ以上のバス及びブリッジ(バスコントローラとも呼ばれる)を通じて行われる。記憶デバイスとネットワークトラフィックを運ぶ信号のそれぞれは、1つ以上の機械可読記憶媒体及び機械可読通信媒体を表す。したがって、所与の電子デバイスの記憶デバイスは、その電子デバイスの1つ以上のプロセッサのセット上で実行するためのコード及び/又はデータを、典型的に記憶する。当然のことながら、本発明の実施形態の1つ以上の部分は、ソフトウェア、ファームウェア、及び/又はハードウェアの異なる組み合わせを使用して実装されてもよい。   As described herein, the instructions are configured to perform certain operations or are stored in a memory in which predetermined functions or software instructions are embodied in a non-transitory computer readable medium. It may refer to a specific configuration of hardware, such as an application specific integrated circuit (ASIC) that has been Thus, the techniques shown in the drawings may be implemented using code and data stored and executed on one or more electronic devices (eg, end stations, network elements, etc.). Such electronic devices include non-transitory computer machine readable storage media (eg, magnetic disks, optical disks, random access memory, read only memory, flash memory devices, phase change memory), as well as temporary computer machine readable communication media (eg For example, code and data may be stored and / or internally using a computer machine readable storage medium such as a carrier wave, an infrared signal, an electrical, optical, acoustic or other form of propagated signal such as a digital signal. Or communicate with other electronic devices via a network). In addition, such electronic devices typically include one or more storage devices (non-transitory machine-readable storage media), user input / output devices (eg, keyboards, touch screens, and / or displays), and It includes a set of one or more processors coupled to one or more other components, such as network connections. The coupling of a set of processors to other components is typically performed through one or more buses and bridges (also called bus controllers). Each of the storage device and the signal carrying the network traffic represents one or more machine readable storage media and a machine readable communication medium. Thus, the storage device of a given electronic device typically stores code and / or data for execution on the set of one or more processors of the electronic device. It should be appreciated that one or more parts of the embodiments of the present invention may be implemented using different combinations of software, firmware and / or hardware.

この詳細な説明全体を通じて、説明を目的として、本発明の完全な理解を提供するために、多数の特定の詳細を記載した。しかしながら、本発明は、これらの具体的な詳細の一部がなくても実施され得ることは、当業者にとって明らかであろう。ある特定の例では、既知の構造及び機能は、本発明の主題を不明瞭にすることを回避するために、詳述しなかった。したがって、本発明の範囲及び趣旨は、以下の特許請求の範囲の観点から判断されるべきである。   Throughout the detailed description, for the purposes of explanation, numerous specific details are set forth in order to provide a thorough understanding of the present invention. However, it will be apparent to one skilled in the art that the present invention may be practiced without some of these specific details. In certain instances, known structures and functions have not been described in detail to avoid obscuring the subject matter of the present invention. Accordingly, the scope and spirit of the present invention should be determined in terms of the following claims.

Claims (24)

モノのインターネット(IoT)ハブであって、
第1のローカル無線通信プロトコルを使用して1つ以上のIoTデバイス及び/又はIoTエクステンダハブとの第1のローカル無線接続を確立する第1のローカル無線通信インタフェースと、
前記IoTデバイス及び/又はIoTエクステンダハブのすべて又はサブセットの代わりに前記インターネットを介してネットワーク接続を確立するネットワークルータと、
前記IoTデバイス及び/又はIoTエクステンダハブから接続要求を受信し、前記IoTデバイス及び/又はIoTエクステンダハブが適切な認証を使用するとき、前記接続要求を認める認証モジュールと、
既知のホスト名で指定されたIoTサービスのサーバ宛ての接続要求以外のすべての入/出入/出接続要求をブロックする前記IoTハブのファイアウォールと、を備えるIoTハブ。
It is the Internet of Things (IoT) hub,
A first local wireless communication interface establishing a first local wireless connection with one or more IoT devices and / or IoT extender hubs using a first local wireless communication protocol;
A network router establishing a network connection via the Internet instead of all or a subset of the IoT device and / or IoT extender hub;
An authentication module that receives connection requests from the IoT device and / or IoT extender hub, and admits the connection request when the IoT device and / or IoT extender hub use appropriate authentication;
An IoT hub comprising: a firewall of the IoT hub that blocks all incoming / outgoing / outgoing connection requests other than connection requests for servers of the IoT service specified by a known host name.
前記認証モジュールが、既知の媒体アクセス制御(MAC)アドレスを有するIoTデバイス及び/又はIoTエクステンダハブからの接続要求以外の接続要求を拒否するように更に構成されている、請求項1に記載のIoTハブ。   The IoT according to claim 1, wherein the authentication module is further configured to reject connection requests other than connection requests from an IoT device and / or an IoT extender hub having a known medium access control (MAC) address. Hub. 前記第1のローカル無線通信インタフェースが、WiFiインタフェースを含む、請求項1に記載のIoTハブ。   The IoT hub of claim 1, wherein the first local wireless communication interface comprises a WiFi interface. 前記WiFiインタフェースが、802.11acインタフェースを含む、請求項3に記載のIoTハブ。   The IoT hub of claim 3, wherein the WiFi interface comprises an 802.11ac interface. 前記ファイアウォールが、前記IoTサービスの指定されたサーバの新しいホスト名を含めるために前記インターネットを介して更新される、請求項1に記載のIoTハブ。   The IoT hub of claim 1, wherein the firewall is updated via the Internet to include a new host name of a designated server of the IoT service. 第2のローカル無線通信プロトコルを使用して、1つ以上の他のIoTデバイスとの第2のローカル無線接続を確立する第2のローカル無線通信インタフェース、を更に備える、請求項1に記載のIoTハブ。   The IoT according to claim 1, further comprising: a second local wireless communication interface establishing a second local wireless connection with one or more other IoT devices using a second local wireless communication protocol. Hub. 前記第2のローカル無線通信インタフェースが、Bluetooth Low Energy(BTLE)インタフェースを含む、請求項6に記載のIoTハブ。   The IoT hub of claim 6, wherein the second local wireless communication interface comprises a Bluetooth Low Energy (BTLE) interface. 前記認証モジュールが、パスフレーズ及び非表示サービスセット識別子(SSID)を用いて予め構成されており、前記認証モジュールは、前記予め構成されたパスフレーズ及び非表示SSIDを使用するこれらのIoTデバイス及び/又はIoTエクステンダハブに対する前記接続要求を認める、請求項1に記載のIoTハブ。   The authentication module is pre-configured with a passphrase and a hidden service set identifier (SSID), and the authentication module uses the pre-configured passphrase and non-displayed SSID to configure these IoT devices and / or The IoT hub according to claim 1, wherein the connection request is accepted by the IoT extender hub. 方法であって、
第1のローカル無線通信プロトコルを使用して、IoTハブと、1つ以上のIoTデバイス及び/又はIoTエクステンダハブとの間に第1のローカル無線接続を確立することと、
適切な認証を使用する前記IoTデバイス及び/又はIoTエクステンダハブから接続要求を受信することと、
前記IoTデバイス及び/又はIoTエクステンダハブが前記予め構成されたパスフレーズ及び非表示SSIDを使用するとき、前記接続要求を認め、それに応じて前記IoTデバイス及び/又はIoTハブをIoTサービスに接続することと、
既知のホスト名で指定された前記IoTサービスのサーバ宛ての要求以外のすべての入/出接続要求をブロックすることと、を含む、方法。
Method,
Establishing a first local wireless connection between the IoT hub and the one or more IoT devices and / or the IoT extender hub using a first local wireless communication protocol;
Receiving a connection request from the IoT device and / or the IoT extender hub using appropriate authentication;
When the IoT device and / or IoT extender hub use the pre-configured pass phrase and hidden SSID, acknowledge the connection request and connect the IoT device and / or IoT hub to the IoT service accordingly When,
Blocking all incoming / outgoing connection requests other than those directed to the server of said IoT service specified by a known host name.
既知の媒体アクセス制御(MAC)アドレスを有するIoTデバイス及び/又はIoTエクステンダハブからの接続要求以外のすべてのローカル無線接続要求をブロックすること、を更に含む、請求項9に記載の方法。   The method according to claim 9, further comprising blocking all local wireless connection requests other than connection requests from IoT devices and / or IoT extender hubs with known medium access control (MAC) addresses. 前記第1のローカル無線通信プロトコルが、WiFiプロトコルを含む、請求項10に記載の方法。   11. The method of claim 10, wherein the first local wireless communication protocol comprises a WiFi protocol. 前記WiFiプロトコルが、802.11acプロトコルを含む、請求項11に記載の方法。   The method of claim 11, wherein the WiFi protocol comprises an 802.11ac protocol. 前記IoTサービスの指定されたサーバの新しいホスト名を含めるために、前記インターネットを介して前記IoTハブを更新すること、を更に含む、請求項9に記載の方法。   The method according to claim 9, further comprising: updating the IoT hub via the Internet to include a new host name of a designated server of the IoT service. 第2のローカル無線通信プロトコルを使用して、1つ以上の他のIoTデバイスとの第2のローカル無線接続を確立すること、を更に含む、請求項9に記載の方法。   10. The method of claim 9, further comprising establishing a second local wireless connection with one or more other IoT devices using a second local wireless communication protocol. 前記第2のローカル無線通信プロトコルが、Bluetooth Low Energy(BTLE)プロトコルを含む、請求項14に記載の方法。   15. The method of claim 14, wherein the second local wireless communication protocol comprises a Bluetooth Low Energy (BTLE) protocol. 前記認証モジュールが、パスフレーズ及び非表示サービスセット識別子(SSID)を用いて予め構成されており、適切な認証は、前記予め構成されたパスフレーズ及び非表示SSIDを使用して前記IoTデバイス及び/又はIoTエクステンダハブを含む、請求項9に記載の方法。   The authentication module is pre-configured with a passphrase and a hidden service set identifier (SSID), and proper authentication is performed using the pre-configured passphrase and non-displayed SSID. 10. The method of claim 9, or including an IoT extender hub. システムであって、
IoTサービスと、
前記インターネットを介して前記IoTサービスに接続しようと試みる複数のIoTデバイス及び/又はIoTエクステンダハブと、
モノのインターネット(IoT)ハブであって、
第1のローカル無線通信プロトコルを使用して1つ以上のIoTデバイス及び/又はIoTエクステンダハブとの第1のローカル無線接続を確立する第1のローカル無線通信インタフェースと、
前記IoTデバイス及び/又はIoTエクステンダハブのすべて又はサブセットの代わりに前記インターネットを介してネットワーク接続を確立するネットワークルータと、
前記IoTデバイス及び/又はIoTエクステンダハブから接続要求を受信し、前記IoTデバイス及び/又はIoTエクステンダハブが適切な認証を使用するとき、前記接続要求を認める認証モジュールと、
既知のホスト名で指定されたIoTサービスのサーバ宛ての接続要求以外のすべての入/出入/出接続要求をブロックする前記IoTハブのファイアウォールと、を備えるIoTハブ。
A system,
With IoT services,
A plurality of IoT devices and / or IoT extender hubs that attempt to connect to the IoT service via the Internet;
It is the Internet of Things (IoT) hub,
A first local wireless communication interface establishing a first local wireless connection with one or more IoT devices and / or IoT extender hubs using a first local wireless communication protocol;
A network router establishing a network connection via the Internet instead of all or a subset of the IoT device and / or IoT extender hub;
An authentication module that receives connection requests from the IoT device and / or IoT extender hub, and admits the connection request when the IoT device and / or IoT extender hub use appropriate authentication;
An IoT hub comprising: a firewall of the IoT hub that blocks all incoming / outgoing / outgoing connection requests other than connection requests for servers of the IoT service specified by a known host name.
前記認証モジュールが、既知の媒体アクセス制御(MAC)アドレスを有するIoTデバイス及び/又はIoTエクステンダハブからの接続要求以外の接続要求を拒否するように更に構成されている、請求項17に記載のシステム。   The system according to claim 17, wherein the authentication module is further configured to reject connection requests other than connection requests from IoT devices and / or IoT extender hubs having a known medium access control (MAC) address. . 前記第1のローカル無線通信インタフェースが、WiFiインタフェースを含む、請求項17に記載のシステム。   The system of claim 17, wherein the first local wireless communication interface comprises a WiFi interface. 前記WiFiインタフェースが、802.11acインタフェースを含む、請求項19に記載のシステム。   20. The system of claim 19, wherein the WiFi interface comprises an 802.11ac interface. 前記ファイアウォールが、前記IoTサービスの指定されたサーバの新しいホスト名を含めるために前記インターネットを介して更新される、請求項17に記載のシステム。   The system of claim 17, wherein the firewall is updated via the Internet to include a new host name of a designated server of the IoT service. 第2のローカル無線通信プロトコルを使用して、1つ以上の他のIoTデバイスとの第2のローカル無線接続を確立する第2のローカル無線通信インタフェース、を更に含む、請求項17に記載のシステム。   18. The system of claim 17, further comprising: a second local wireless communication interface establishing a second local wireless connection with one or more other IoT devices using a second local wireless communication protocol. . 前記第2のローカル無線通信インタフェースが、Bluetooth Low Energy(BTLE)インタフェースを含む、請求項22に記載のシステム。   23. The system of claim 22, wherein the second local wireless communication interface comprises a Bluetooth Low Energy (BTLE) interface. 前記認証モジュールが、パスフレーズ及び非表示サービスセット識別子(SSID)を用いて予め構成されており、前記認証モジュールは、前記予め構成されたパスフレーズ及び非表示SSIDを使用するこれらのIoTデバイス及び/又はIoTエクステンダハブに対する前記接続要求を認める、請求項17に記載のシステム。   The authentication module is pre-configured with a passphrase and a hidden service set identifier (SSID), and the authentication module uses the pre-configured passphrase and non-displayed SSID to configure these IoT devices and / or The system according to claim 17, wherein the system accepts the connection request to the IoT extender hub.
JP2018535040A 2016-01-04 2017-01-04 Systems and methods for automated wireless network authentication in Internet of Things (IoT) systems Active JP7075345B2 (en)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US14/987,253 2016-01-04
US14/987,253 US10044674B2 (en) 2016-01-04 2016-01-04 System and method for automatic wireless network authentication in an internet of things (IOT) system
PCT/US2017/012199 WO2017120243A1 (en) 2016-01-04 2017-01-04 System and method for automatic wireless network authentication in an internet of things (iot) system

Publications (3)

Publication Number Publication Date
JP2019511141A true JP2019511141A (en) 2019-04-18
JP2019511141A5 JP2019511141A5 (en) 2020-02-27
JP7075345B2 JP7075345B2 (en) 2022-05-25

Family

ID=59226881

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2018535040A Active JP7075345B2 (en) 2016-01-04 2017-01-04 Systems and methods for automated wireless network authentication in Internet of Things (IoT) systems

Country Status (3)

Country Link
US (2) US10044674B2 (en)
JP (1) JP7075345B2 (en)
WO (1) WO2017120243A1 (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2019062248A (en) * 2017-09-22 2019-04-18 東芝テック株式会社 Control apparatus and control method
JP2022103134A (en) * 2020-12-25 2022-07-07 扉睿科技股▲ふん▼有限公司 Internet of Things system based on security orientation and group sharing

Families Citing this family (109)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10863234B2 (en) 2009-03-03 2020-12-08 Mobilitie, Llc System and method for secure appliance operation
EP2842245A1 (en) 2012-04-25 2015-03-04 Corning Optical Communications LLC Distributed antenna system architectures
US9594567B2 (en) 2013-02-21 2017-03-14 Dell Products, Lp Configuring a trusted platform module
US9786997B2 (en) 2013-08-01 2017-10-10 Centurylink Intellectual Property Llc Wireless access point in pedestal or hand hole
US10276921B2 (en) 2013-09-06 2019-04-30 Centurylink Intellectual Property Llc Radiating closures
US9780433B2 (en) 2013-09-06 2017-10-03 Centurylink Intellectual Property Llc Wireless distribution using cabinets, pedestals, and hand holes
US10154325B2 (en) 2014-02-12 2018-12-11 Centurylink Intellectual Property Llc Point-to-point fiber insertion
US10083291B2 (en) 2015-02-25 2018-09-25 Verisign, Inc. Automating internet of things security provisioning
US10623162B2 (en) 2015-07-23 2020-04-14 Centurylink Intellectual Property Llc Customer based internet of things (IoT)
US10375172B2 (en) 2015-07-23 2019-08-06 Centurylink Intellectual Property Llc Customer based internet of things (IOT)—transparent privacy functionality
US10567479B2 (en) * 2015-08-05 2020-02-18 Facebook, Inc. Managing a device cloud
US10291956B2 (en) 2015-09-30 2019-05-14 Sonifi Solutions, Inc. Methods and systems for enabling communications between devices
US9858213B2 (en) * 2015-12-14 2018-01-02 Afero, Inc. Interface and method for efficient communication between a microcontroller and a communication module
US20170199796A1 (en) * 2016-01-08 2017-07-13 Chris Chaput Data storage, retreival and analysis systems for monitoring geographically distributed electromechanical systems
US10412064B2 (en) * 2016-01-11 2019-09-10 Centurylink Intellectual Property Llc System and method for implementing secure communications for internet of things (IOT) devices
CN105578470B (en) * 2016-02-29 2020-08-14 华为技术有限公司 Method, device and system for accessing Internet of things equipment to network
US10084760B2 (en) * 2016-03-11 2018-09-25 Hewlett-Packard Development Company, L. P. Secure messages for internet of things devices
US10021509B2 (en) * 2016-03-25 2018-07-10 At&T Mobility Ii Llc Methods and apparatus to provide an update via a satellite connection
US10791093B2 (en) * 2016-04-29 2020-09-29 Avago Technologies International Sales Pte. Limited Home network traffic isolation
US10832665B2 (en) 2016-05-27 2020-11-10 Centurylink Intellectual Property Llc Internet of things (IoT) human interface apparatus, system, and method
CN109496411B (en) * 2016-06-02 2021-08-10 爱维士软件有限责任公司 Method and system for improving network security
US20170359343A1 (en) * 2016-06-14 2017-12-14 Comfylight Ag System and method for secure communications with internet-of-things devices
US10402797B2 (en) * 2016-06-20 2019-09-03 Cyber Armor Pte Ltd Secured authentication and transaction authorization for mobile and internet-of-things devices
US10249103B2 (en) 2016-08-02 2019-04-02 Centurylink Intellectual Property Llc System and method for implementing added services for OBD2 smart vehicle connection
US10615982B2 (en) * 2016-08-19 2020-04-07 Futurewei Technologies, Inc. Method and device for providing a key for internet of things (IoT) communication
US10110272B2 (en) 2016-08-24 2018-10-23 Centurylink Intellectual Property Llc Wearable gesture control device and method
US10284684B2 (en) * 2016-09-14 2019-05-07 Microsoft Technology Licensing, Llc IoT hardware certification
US10687377B2 (en) 2016-09-20 2020-06-16 Centurylink Intellectual Property Llc Universal wireless station for multiple simultaneous wireless services
US10425242B2 (en) * 2016-10-14 2019-09-24 Microsoft Technology Licensing, Llc IoT provisioning service
US10798216B2 (en) 2016-10-15 2020-10-06 Microsoft Technology Licensing, Llc Automatic provisioning of IoT devices
FR3058540A1 (en) * 2016-11-10 2018-05-11 Orange AUTHORIZATION MANAGEMENT METHOD IN A COMMUNITY OF CONNECTED OBJECTS
US9867112B1 (en) 2016-11-23 2018-01-09 Centurylink Intellectual Property Llc System and method for implementing combined broadband and wireless self-organizing network (SON)
US10426358B2 (en) 2016-12-20 2019-10-01 Centurylink Intellectual Property Llc Internet of things (IoT) personal tracking apparatus, system, and method
US20180184290A1 (en) * 2016-12-22 2018-06-28 Cypress Semiconductor Corporation Embedded Certificate Method for Strong Authentication and Ease of Use for Wireless IoT Systems
WO2018119457A1 (en) 2016-12-22 2018-06-28 Sonifi Solutions, Inc. Methods and systems for implementing legacy remote and keystroke redirection
US10150471B2 (en) 2016-12-23 2018-12-11 Centurylink Intellectual Property Llc Smart vehicle apparatus, system, and method
US10193981B2 (en) 2016-12-23 2019-01-29 Centurylink Intellectual Property Llc Internet of things (IoT) self-organizing network
US10735220B2 (en) 2016-12-23 2020-08-04 Centurylink Intellectual Property Llc Shared devices with private and public instances
US10222773B2 (en) 2016-12-23 2019-03-05 Centurylink Intellectual Property Llc System, apparatus, and method for implementing one or more internet of things (IoT) capable devices embedded within a roadway structure for performing various tasks
US10637683B2 (en) 2016-12-23 2020-04-28 Centurylink Intellectual Property Llc Smart city apparatus, system, and method
US11057344B2 (en) 2016-12-30 2021-07-06 Fortinet, Inc. Management of internet of things (IoT) by security fabric
US10146024B2 (en) 2017-01-10 2018-12-04 Centurylink Intellectual Property Llc Apical conduit method and system
US11281499B2 (en) * 2017-02-05 2022-03-22 Intel Corporation Microservice provision and management
KR20180096189A (en) * 2017-02-20 2018-08-29 삼성전기주식회사 LPWA Module performing Encrypted Communication and method thereof
GB2566765B (en) * 2017-03-23 2022-09-14 Pismo Labs Technology Ltd Method and system for restricting transmission of data traffic for devices with networking capabilities
US11327737B2 (en) 2017-04-21 2022-05-10 Johnson Controls Tyco IP Holdings LLP Building management system with cloud management of gateway configurations
US10547613B1 (en) 2017-05-17 2020-01-28 Amazon Technologies, Inc. Simplified association of devices with a network using unique codes on the devices and side channel communication
GB2564430C (en) * 2017-07-07 2021-02-17 Gurulogic Microsystems Oy Data communication system and method
EP3432538A1 (en) * 2017-07-18 2019-01-23 Deutsche Telekom AG A communication device for providing a data packet to be authenticated by a further communication device
US10911308B2 (en) * 2017-09-18 2021-02-02 Rapyuta Robotics Co., Ltd. Auto-determining and installing missing components to a to-be-managed device by a single execution of unique device setup command
US20190166502A1 (en) * 2017-11-29 2019-05-30 Mojo Networks, LLC. Security monitoring for wireless sensor nodes
CN109936547A (en) 2017-12-18 2019-06-25 阿里巴巴集团控股有限公司 Identity identifying method, system and calculating equipment
US10627794B2 (en) 2017-12-19 2020-04-21 Centurylink Intellectual Property Llc Controlling IOT devices via public safety answering point
WO2019127386A1 (en) * 2017-12-29 2019-07-04 Telefonaktiebolaget Lm Ericsson (Publ) Methods, network function entities and computer readable media for providing iot services
CN108108595B (en) * 2017-12-29 2023-03-28 星宸科技股份有限公司 Method and system for authorizing software in electronic equipment
CN108471396A (en) * 2018-01-26 2018-08-31 中冶华天工程技术有限公司 The control system and method transmitted into row information between isolation network
EP3522478B1 (en) * 2018-02-01 2023-09-06 Nokia Technologies Oy Device provisioning
FR3079709B1 (en) * 2018-03-29 2021-12-24 Orange METHOD FOR WIRELESS CONNECTION OF A COMMUNICATING OBJECT TO A LOCAL COMMUNICATION NETWORK, COMPUTER PROGRAM AND CORRESPONDING ACCESS EQUIPMENT.
BR102019007103A2 (en) * 2018-04-09 2019-10-22 Mobilitie LLC system
CN110401934B (en) * 2018-04-25 2022-06-17 中移物联网有限公司 Method for managing equipment, management equipment and computer readable storage medium
US20190342154A1 (en) * 2018-05-03 2019-11-07 Flex Ltd. Method of connecting and processing new device data without any software code changes on a mobile application or hub
DE102018116500A1 (en) * 2018-07-08 2020-01-09 Tobias Rückert Procedure for registering a target device on a network
US11474907B2 (en) * 2018-08-01 2022-10-18 International Business Machines Corporation Apparatus, method, and program product for cluster configuration data backup and recovery
US11184177B2 (en) * 2018-09-19 2021-11-23 Synaptics Incorporated Method and system for securing in-vehicle ethernet links
US11032708B2 (en) * 2018-09-26 2021-06-08 International Business Machines Corporation Securing public WLAN hotspot network access
CH715441A1 (en) * 2018-10-09 2020-04-15 Legic Identsystems Ag Methods and devices for communicating between an internet of things device and a remote computing system.
US10959092B2 (en) 2018-10-16 2021-03-23 Aeris Communications, Inc. Method and system for pairing wireless mobile device with IoT device
US11121871B2 (en) * 2018-10-22 2021-09-14 International Business Machines Corporation Secured key exchange for wireless local area network (WLAN) zero configuration
US10798572B2 (en) 2018-10-25 2020-10-06 Ioxt, Llc System and method for secure appliance operation
EP3672159A1 (en) 2018-12-19 2020-06-24 Orange Internet of things connectivity device and method
US11082451B2 (en) 2018-12-31 2021-08-03 Citrix Systems, Inc. Maintaining continuous network service
JP7030217B2 (en) * 2019-01-28 2022-03-04 日本電信電話株式会社 Message transmission / reception method, communication device, and program
US11102195B1 (en) * 2019-02-01 2021-08-24 Amazon Technologies, Inc. Secure information exchange
US11765164B2 (en) * 2019-02-26 2023-09-19 Amazon Technologies, Inc. Server-based setup for connecting a device to a local area network
US10750368B1 (en) 2019-03-04 2020-08-18 Cisco Technology, Inc. Security protection to prevent unauthorized use of mobile network extenders
US11258600B2 (en) * 2019-03-25 2022-02-22 Micron Technology, Inc. Secure communication in accessing a network
US10966107B2 (en) * 2019-06-11 2021-03-30 Charter Communications Operating, Llc Methods and apparatus for configuring and/or managing communications devices
US11635990B2 (en) 2019-07-01 2023-04-25 Nutanix, Inc. Scalable centralized manager including examples of data pipeline deployment to an edge system
US11012296B2 (en) * 2019-07-03 2021-05-18 Cisco Technology, Inc. Handling unsolicited requests from devices
US11501881B2 (en) 2019-07-03 2022-11-15 Nutanix, Inc. Apparatus and method for deploying a mobile device as a data source in an IoT system
CN110557740A (en) * 2019-08-02 2019-12-10 华为技术有限公司 Electronic equipment control method and electronic equipment
US11487857B2 (en) 2019-09-24 2022-11-01 Bank Of America Corporation Spectrum authentication in edge devices
US11671829B1 (en) * 2019-09-24 2023-06-06 Amazon Technologies, Inc. Server-based association of a user device with a user account
US20210105617A1 (en) * 2019-10-07 2021-04-08 Instant! Communications LLC Secured distributed mesh network
CN112752261A (en) * 2019-10-29 2021-05-04 广东美的制冷设备有限公司 Networking method of household electrical appliance, household electrical appliance and terminal equipment
US11134081B2 (en) 2019-10-31 2021-09-28 International Business Machines Corporation Authentication mechanism utilizing location corroboration
US11336635B2 (en) * 2019-11-18 2022-05-17 Ciot Systems and methods for authenticating device through IoT cloud using hardware security module
KR20210061856A (en) * 2019-11-20 2021-05-28 삼성전자주식회사 Display device and operating method for the same
CN111585960A (en) * 2020-04-02 2020-08-25 金航数码科技有限责任公司 Two-dimensional code data transmission system and method based on internal and external network isolation
US11012857B1 (en) 2020-04-13 2021-05-18 Sprint Communications Company L.P. Fifth generation core (5GC) authentication for long term evolution (LTE) data service
US11652891B2 (en) * 2020-04-22 2023-05-16 At&T Mobility Ii Llc Dynamic and optimal selection of Internet of things (IoT) hubs in cellular networks
KR102365563B1 (en) * 2020-04-29 2022-02-22 (주)케이사인 Method of Connecting Lots of Internet-of-Things Devices to Network System
US11558390B2 (en) 2020-07-01 2023-01-17 International Business Machines Corporation System to control access to web resources based on an internet of things authorization mechanism
US11563718B2 (en) * 2020-09-03 2023-01-24 Dish Network L.L.C. Systems and methods for a computer network security manager
CN114338356B (en) * 2020-09-29 2023-07-28 华为技术有限公司 Network repairing method, electronic equipment and mobile equipment
US11627011B1 (en) 2020-11-04 2023-04-11 T-Mobile Innovations Llc Smart device network provisioning
US20220141221A1 (en) * 2020-11-05 2022-05-05 T-Mobile Innovations Llc Smart Computing Device Implementing Network Security and Data Arbitration
US11726764B2 (en) 2020-11-11 2023-08-15 Nutanix, Inc. Upgrade systems for service domains
US11665221B2 (en) 2020-11-13 2023-05-30 Nutanix, Inc. Common services model for multi-cloud platform
US11676591B1 (en) 2020-11-20 2023-06-13 T-Mobite Innovations Llc Smart computing device implementing artificial intelligence electronic assistant
TWI763173B (en) * 2020-12-14 2022-05-01 宏碁通信股份有限公司 Internet of things system and backup channel utilization method thereof
US11695768B1 (en) 2021-02-09 2023-07-04 Wells Fargo Bank, N.A. Systems and methods for locally conducting delegated authentication at edge nodes
US11736585B2 (en) 2021-02-26 2023-08-22 Nutanix, Inc. Generic proxy endpoints using protocol tunnels including life cycle management and examples for distributed cloud native services and applications
US20220400051A1 (en) * 2021-06-11 2022-12-15 Electronics And Telecommunications Research Institute Method and apparatus for device provisioning
KR20230009211A (en) * 2021-07-08 2023-01-17 삼성전자주식회사 Method and system for controlling home appliance
CN117999769A (en) * 2021-09-14 2024-05-07 三星电子株式会社 Method and system for controlling household appliances
US20230198966A1 (en) * 2021-12-22 2023-06-22 Mastercard Technologies Canada ULC Protecting sensitive data in internet-of-things (iot) device
US20230336412A1 (en) * 2022-04-13 2023-10-19 Arris Enterprises Llc Association of devices to a sensing device control system
US20240007468A1 (en) * 2022-07-01 2024-01-04 Cisco Technology, Inc. User defined network access that supports address rotation

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20150365217A1 (en) * 2014-06-13 2015-12-17 Unifythings, Inc. Virtual Gateway for a Connected Device

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100709622B1 (en) * 1999-09-20 2007-04-19 톰슨 라이센싱 Method for device registration in a wireless home network
US7448076B2 (en) 2002-09-11 2008-11-04 Mirage Networks, Inc. Peer connected device for protecting access to local area networks
US8381281B2 (en) * 2010-04-07 2013-02-19 International Business Machines Corporation Authenticating a remote host to a firewall
US8925042B2 (en) * 2010-04-30 2014-12-30 T-Mobile Usa, Inc. Connecting devices to an existing secure wireless network
JP5763274B2 (en) 2011-08-01 2015-08-12 インテル コーポレイション Method and system for network access control
US9288228B2 (en) 2011-08-05 2016-03-15 Nokia Technologies Oy Method, apparatus, and computer program product for connection setup in device-to-device communication
US9270660B2 (en) 2012-11-25 2016-02-23 Angel Secure Networks, Inc. System and method for using a separate device to facilitate authentication
US9300586B2 (en) * 2013-03-15 2016-03-29 Aruba Networks, Inc. Apparatus, system and method for load balancing traffic to an access point across multiple physical ports
US9191209B2 (en) 2013-06-25 2015-11-17 Google Inc. Efficient communication for devices of a home network
CN106416130B (en) * 2014-02-14 2019-09-27 英特托拉斯技术公司 Network safety system and method
ES2552675B1 (en) * 2014-05-29 2016-10-10 Tecteco Security Systems, S.L. Routing method with security and frame-level authentication

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20150365217A1 (en) * 2014-06-13 2015-12-17 Unifythings, Inc. Virtual Gateway for a Connected Device

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2019062248A (en) * 2017-09-22 2019-04-18 東芝テック株式会社 Control apparatus and control method
JP7130361B2 (en) 2017-09-22 2022-09-05 東芝テック株式会社 Control device and control method
JP2022103134A (en) * 2020-12-25 2022-07-07 扉睿科技股▲ふん▼有限公司 Internet of Things system based on security orientation and group sharing
JP7233773B2 (en) 2020-12-25 2023-03-07 扉睿科技股▲ふん▼有限公司 Internet of Things System Based on Security Orientation and Group Sharing

Also Published As

Publication number Publication date
JP7075345B2 (en) 2022-05-25
WO2017120243A1 (en) 2017-07-13
US20170195318A1 (en) 2017-07-06
US20190109816A1 (en) 2019-04-11
US10721208B2 (en) 2020-07-21
US10044674B2 (en) 2018-08-07

Similar Documents

Publication Publication Date Title
US11626974B2 (en) System and method for securely configuring a new device with network credentials
US10721208B2 (en) System and method for automatic wireless network authentication in an internet of things (IOT) system
US11855839B2 (en) System and method for pre-enrollment and network pre-configuration of internet of things (IoT) devices
JP7254843B2 (en) Systems and methods for virtual Internet of Things (IoT) devices and hubs
US11153750B2 (en) Apparatus and method for sharing credentials in an internet of things (IoT) system
US10841759B2 (en) Securely providing a password using an internet of things (IoT) system
US10659961B2 (en) Apparatus and method for sharing WiFi security data in an internet of things (IoT) system
CN107431645B (en) System and method for automatic wireless network authentication
US11665524B2 (en) Apparatus and method for registering and associating internet of things (IoT) devices with anonymous IoT device accounts
JP7122964B2 (en) Apparatus and method for establishing a secure communication channel in an Internet of Things (IoT) system
US10779296B2 (en) System and method for intelligent communication channel selection for an internet of things (IoT) device
US10873634B2 (en) Apparatus and method for temporarily loaning internet of things (IOT) devices
JP2019502206A (en) System and method for secure Internet of Things (IoT) device provisioning

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20200106

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20200106

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20200120

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20210204

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20210430

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20210705

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20210804

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20211004

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20220104

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20220304

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20220413

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20220513

R150 Certificate of patent or registration of utility model

Ref document number: 7075345

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150