HK1247744B - System and method for automatic wireless network authentication - Google Patents
System and method for automatic wireless network authenticationInfo
- Publication number
- HK1247744B HK1247744B HK18106994.3A HK18106994A HK1247744B HK 1247744 B HK1247744 B HK 1247744B HK 18106994 A HK18106994 A HK 18106994A HK 1247744 B HK1247744 B HK 1247744B
- Authority
- HK
- Hong Kong
- Prior art keywords
- iot
- user
- wifi network
- iot device
- cloud service
- Prior art date
Links
Description
技术领域Technical Field
本发明整体涉及计算机系统领域。更具体地讲,本发明涉及用于自动无线网络认证的系统和方法。The present invention relates generally to the field of computer systems and, more particularly, to systems and methods for automatic wireless network authentication.
背景技术Background Art
“物联网”是指互联网基础结构内可唯一识别的嵌入式装置的互连。最终,IoT预计将导致新的种类广泛的应用,在这些应用中,几乎任何类型的物理事物可以提供关于其本身或其周围环境的信息和/或可以通过互联网上的客户端装置受到远程控制。The "Internet of Things" refers to the interconnection of uniquely identifiable embedded devices within the Internet infrastructure. Ultimately, the IoT is expected to lead to a wide range of new applications in which virtually any type of physical object can provide information about itself or its surroundings and/or be remotely controlled by a client device over the Internet.
当用户获得新的支持WiFi的装置,诸如,支持WiFi的IoT装置时,需要在新装置和用户家庭网络之间执行注册过程。如果用户不记得WiFi凭据或者装置不在WiFi覆盖区域内,这一过程可能会痛苦。此外,如果装置在WiFi网络的覆盖边缘内,则注册将失败,因为低覆盖条件将影响注册过程,从而导致接入点拒绝新装置的注册。对于在家庭或工作场所内有多个WiFi网络的用户来说,问题更为复杂。在这种情况下,每个网络都需要自己的注册过程。When a user acquires a new WiFi-enabled device, such as a WiFi-enabled IoT device, a registration process must be performed between the new device and the user's home network. This process can be painful if the user doesn't remember their WiFi credentials or if the device is outside of WiFi coverage. Furthermore, registration will fail if the device is within the coverage edge of a WiFi network, as low coverage conditions will affect the registration process, causing the access point to deny the new device's registration. The problem is further compounded for users who have multiple WiFi networks within their home or workplace. In this case, each network requires its own registration process.
最终,用户不能在托管私人网络的家庭或工作场所之外建立新装置的注册。因此,原始设备制造商(OEM)无法将装置发送给已连接至即用型WiFi网络的用户。Finally, users cannot register new devices outside of their home or workplace, which hosts a private network. Consequently, original equipment manufacturers (OEMs) cannot ship devices to users that are already connected to a ready-to-use WiFi network.
发明内容Summary of the Invention
本发明的实施例简化了装置之间的网络凭据的共享。根据本发明的一个实施例,第一物联网(IoT)装置通过第一安全通信信道将关联于用户的WiFi网络的WiFi网络密钥发送给IoT云服务。第二IoT装置与IoT云服务建立第二安全通信信道,第二安全通信信道包含第二IoT装置与第一IoT装置之间的第一通信连接以及第一IoT装置与IoT云服务之间的第二通信连接。第二IoT装置通过第二安全通信信道向IoT云服务发送针对WiFi网络密钥的请求,且响应于请求而接受WiFi网络密钥。第二IoT装置自动地使用WiFi网络密钥来建立与用户的WiFi网络的安全连接。Embodiments of the present invention simplify the sharing of network credentials between devices. According to one embodiment of the present invention, a first Internet of Things (IoT) device sends a WiFi network key associated with a user's WiFi network to an IoT cloud service via a first secure communication channel. A second IoT device establishes a second secure communication channel with the IoT cloud service, the second secure communication channel comprising a first communication connection between the second IoT device and the first IoT device and a second communication connection between the first IoT device and the IoT cloud service. The second IoT device sends a request for the WiFi network key to the IoT cloud service via the second secure communication channel and receives the WiFi network key in response to the request. The second IoT device automatically uses the WiFi network key to establish a secure connection with the user's WiFi network.
附图说明BRIEF DESCRIPTION OF THE DRAWINGS
可结合下列附图从以下具体实施方式更好地理解本发明,其中:The present invention may be better understood from the following detailed description in conjunction with the following drawings, in which:
图1A至图1B示出了IoT系统架构的不同实施方案;Figures 1A and 1B illustrate different implementations of IoT system architectures;
图2示出了根据本发明的一个实施例的IoT装置;FIG2 shows an IoT device according to an embodiment of the present invention;
图3示出了根据本发明的一个实施方案的IoT中心;FIG3 shows an IoT hub according to one embodiment of the present invention;
图4A至图4B示出了用于控制和收集来自IoT装置的数据并生成通知的本发明实施方案;4A-4B illustrate an embodiment of the present invention for controlling and collecting data from IoT devices and generating notifications;
图5示出了用于收集来自IoT装置的数据并从IoT中心和/或IoT服务生成通知的本发明实施方案;FIG5 illustrates an embodiment of the present invention for collecting data from IoT devices and generating notifications from an IoT hub and/or IoT service;
图6示出了实现改进的安全技术,诸如,加密和数字签名的本发明实施方案;FIG6 illustrates an embodiment of the present invention implementing improved security techniques such as encryption and digital signatures;
图7示出了其中使用订户身份模块(SIM)将密钥存储在IoT装置上的架构的一个实施方案;FIG7 illustrates one embodiment of an architecture in which keys are stored on an IoT device using a Subscriber Identity Module (SIM);
图8A示出了使用条形码或QR码注册IoT装置的一个实施方案;FIG8A shows one embodiment of registering an IoT device using a barcode or QR code;
图8B示出了使用条形码或QR码进行配对的一个实施方案;FIG8B shows an embodiment of pairing using a barcode or QR code;
图9示出了使用IoT中心对SIM进行编程的方法的一个实施方案;FIG9 illustrates one embodiment of a method for programming a SIM using an IoT hub;
图10示出了使用IoT中心和IoT服务注册IoT装置的方法的一个实施方案;FIG10 illustrates one embodiment of a method for registering an IoT device using an IoT hub and an IoT service;
图11示出了用于加密要传输到IoT装置的数据的方法的一个实施方案;FIG11 illustrates one embodiment of a method for encrypting data to be transmitted to an IoT device;
图12示出了用于收集和存储网络凭据的架构的一个实施方案;FIG12 illustrates one embodiment of an architecture for collecting and storing network credentials;
图13示出了用于向用户注册无线接入点的架构的一个实施方案;FIG13 illustrates one embodiment of an architecture for registering a wireless access point with a user;
图14示出了用于收集和存储网络凭据的方法的一个实施例;并且FIG14 illustrates one embodiment of a method for collecting and storing network credentials; and
图15示出了使用存储的凭据注册新装置的方法的一个实施方案。FIG15 illustrates one embodiment of a method for registering a new device using stored credentials.
具体实施方式DETAILED DESCRIPTION
在下面的描述中,出于解释的目的,本文陈述了许多特定细节以便透彻理解下文描述的本发明的实施方案。然而,本领域的技术人员将容易明白,可在没有这些特定细节中的一些的情况下实践本发明的实施方案。在其他情况下,为免模糊本发明的实施方案的基本原理,已熟知的结构和装置以框图形式示出。In the following description, for purposes of explanation, numerous specific details are set forth herein to provide a thorough understanding of the embodiments of the present invention described below. However, those skilled in the art will readily appreciate that the 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 to avoid obscuring the underlying principles of the embodiments of the present invention.
本发明的一个实施方案包括一种物联网(IoT)平台,开发人员可以利用该平台来设计和构建新的IoT装置及应用。具体地讲,一个实施方案包括用于IoT装置的基础硬件/软件平台,该平台包括预定义的网络协议栈和IoT中心,IoT装置通过该IoT中心联接到互联网。此外,一个实施方案包括一项IoT服务,可以通过该IoT服务如下所述地访问和管理IoT中心和连接的IoT装置。此外,IoT平台的一个实施例包括用以访问和配置IoT服务、中心和连接的装置的IoT应用程序或Web应用程序(例如,在客户端装置上执行)。现有的在线零售商和其他网站运营商可以利用本文所述的IoT平台容易地为现有用户群提供独特的IoT功能。One embodiment of the present invention includes an Internet of Things (IoT) platform that developers can use to design and build new IoT devices and applications. Specifically, one embodiment includes a basic hardware/software platform for IoT devices, which includes a predefined network protocol stack and an IoT hub through which the IoT devices connect to the Internet. In addition, one embodiment includes an IoT service through which the IoT hub and connected IoT devices can be accessed and managed as described below. In addition, one embodiment of the IoT platform includes an IoT application or web application (e.g., executed on a client device) for accessing and configuring the IoT service, hub, and connected devices. Existing online retailers and other website operators can use the IoT platform described herein to easily provide unique IoT functionality to their existing user base.
图1A示出了其上可以实施本发明的实施方案的架构平台的概览。具体地讲,图示实施方案包括多个IoT装置101至105,这些IoT装置通过本地通信信道130通信地联接到中央IoT中心110,该中央IoT中心本身通过互联网220通信联接到IoT服务120。IoT装置101至105中每一者最初可以(例如,使用下文描述的配对技术)与IoT中心110配对以启用本地通信信道130中的每一者。在一个实施方案中,IoT服务120包括用于维护用户账户信息和从每位用户的IoT装置收集的数据的最终用户数据库122。例如,如果IoT装置包括传感器(例如,温度传感器、加速度计、热传感器、运动检测器等),则数据库122可以被不断更新以存储由IoT装置101至105收集的数据。存储在数据库122中的数据随后可以通过安装在用户装置135上的IoT应用程序或浏览器(或通过桌面或其他客户端计算机系统)使得最终用户和Web客户端(例如,诸如订阅IoT服务120的网站130)可访问。FIG1A illustrates an overview of an architectural platform upon which embodiments of the present invention may be implemented. Specifically, the illustrated embodiment includes a plurality of IoT devices 101-105 communicatively coupled to a central IoT hub 110 via local communication channels 130, which is itself communicatively coupled to an IoT service 120 via the Internet 220. Each of the IoT devices 101-105 may initially be paired with the IoT hub 110 (e.g., using the pairing techniques described below) to enable each of the local communication channels 130. 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 devices include sensors (e.g., temperature sensors, accelerometers, thermal sensors, motion detectors, etc.), the database 122 may be continuously updated to store data collected by the IoT devices 101-105. The data stored in the database 122 may then be made accessible to end users and web clients (e.g., such as a website 130 subscribing to the IoT service 120) via an IoT application or browser installed on the user device 135 (or via a desktop or other client computer system).
IoT装置101至105可以配备有各种类型的传感器以收集关于自身及其周围环境的信息,并且经由IoT中心110将收集的信息提供给IoT服务120、用户装置135和/或外部网站130。IoT装置101至105中的一些可以响应于通过IoT中心110发送的控制命令来执行指定的功能。下文提供由IoT装置101至105收集的信息以及控制命令的多种具体示例。在下文描述的一个实施方案中,IoT装置101是被设计为记录用户选择并将用户选择发送到IoT服务120和/或网站的用户输入装置。IoT devices 101-105 can be equipped with various types of sensors to collect information about themselves and their surroundings, and provide this collected information to IoT services 120, user devices 135, and/or external websites 130 via IoT hub 110. Some of IoT devices 101-105 can perform designated functions in response to control commands sent through IoT hub 110. Various specific examples of information collected by IoT devices 101-105 and control commands are provided below. In one embodiment described below, IoT device 101 is a user input device designed to record user selections and transmit them to IoT services 120 and/or websites.
在一个实施方案中,IoT中心110包括蜂窝无线电装置,以经由诸如4G(例如,移动WiMAX、LTE)或5G蜂窝数据服务的蜂窝服务115建立到互联网220的连接。作为另外一种选择或除此之外,IoT中心110可以包括WiFi无线电装置,以通过将IoT中心110联接到互联网(例如,经由向最终用户提供互联网服务的互联网服务提供商)的WiFi接入点或路由器116建立WiFi连接。当然,应当注意,本发明的基本原理不限于任何特定类型的通信信道或协议。In one embodiment, the IoT hub 110 includes a cellular radio to establish a connection to the Internet 220 via a cellular service 115, such as a 4G (e.g., 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 that connects the IoT hub 110 to the Internet (e.g., via an Internet service provider that provides Internet service to end users). Of course, it should be noted that the underlying principles of the present invention are not limited to any particular type of communication channel or protocol.
在一个实施方案中,IoT装置101至105是能够使用电池电量长时间(例如,数年)运行的超低功率装置。为了节省功率,可以使用低功率无线通信技术诸如蓝牙低功耗(LE)来实施本地通信信道130。在该实施方案中,IoT装置101至105中的每一者和IoT中心110配备有蓝牙LE无线电装置和协议栈。In one embodiment, the IoT devices 101 to 105 are ultra-low power devices that can operate for extended periods of time (e.g., several years) on battery power. To conserve power, the local communication channel 130 can be implemented using low-power wireless communication technology such as Bluetooth Low Energy (LE). In this embodiment, each of the IoT devices 101 to 105 and the IoT hub 110 are equipped with a Bluetooth LE radio and protocol stack.
如上所述,在一个实施方案中,该IoT平台包括在用户装置135上执行以允许用户访问和配置所连接的IoT装置101至105、IoT中心110和/或IoT服务120的IoT应用程序或Web应用程序。在一个实施方案中,该应用程序或Web应用程序可以由网站130的运营者设计为向其用户群提供IoT功能。如图所示,该网站可以维护包含与每个用户相关的账户记录的用户数据库131。As described above, in one embodiment, the IoT platform includes an IoT application or web application that executes on a user device 135 to allow a user to access and configure connected IoT devices 101 to 105, IoT hub 110, and/or IoT service 120. In one embodiment, the application or web application can be designed by the operator of the website 130 to provide IoT functionality to its user base. As shown, the website can maintain a user database 131 containing 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中心中的一者诸如IoT中心110可以充当“主”中心,该“主”中心向用户驻地180上的所有其他IoT中心诸如IoT中心111提供连接性和/或本地服务(如连接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之间交换的数据执行过滤操作(例如,在可能时,本地服务于一些数据请求)。FIG1B illustrates additional connectivity options for multiple IoT hubs 110 to 111, 190. In this embodiment, a single user can have multiple hubs 110 to 111 installed on-site at a single user premises 180 (e.g., the user's home or workplace). This can be done, for example, to extend the wireless range required to connect all IoT devices 101 to 105. As shown, if a user has multiple hubs 110, 111, they can be connected via local communication channels (e.g., Wi-Fi, Ethernet, powerline network, etc.). In one embodiment, each of the hubs 110 to 111 can establish a direct connection to the IoT service 120 via a cellular connection 115 or a WiFi connection 116 (not explicitly shown in FIG1B). Alternatively, or in addition, one of the IoT hubs, such as IoT hub 110, can act as a "master" hub, providing connectivity and/or local services to all other IoT hubs, such as IoT hub 111, at the user premises 180 (as indicated by the dashed line connecting IoT hub 110 and IoT hub 111). For example, the master IoT hub 110 can be the only IoT hub that establishes a direct connection with the IoT service 120. In one embodiment, only the "master" IoT hub 110 is equipped with a cellular communication interface to establish a connection with the IoT service 120. As such, all communications between the IoT service 120 and other IoT hubs 111 will flow through the master IoT hub 110. In this role, the master IoT hub 110 can have additional program code to perform filtering operations on the data exchanged between the other IoT hubs 111 and the IoT service 120 (e.g., to locally service some data requests when possible).
不管IoT中心110至111如何连接,在一个实施方案中,IoT服务120将逻辑地将中心与用户相关联,并且将所有附接的IoT装置101至105组合在能经由已安装有应用程序的用户装置135访问的单个综合性用户界面(和/或基于浏览器的界面)下。Regardless of how the IoT hubs 110-111 are connected, in one embodiment, the IoT service 120 will logically associate the hub with the user and combine all attached IoT devices 101-105 under a single comprehensive user interface (and/or browser-based interface) that can be accessed via a user device 135 that has the application installed.
在该实施方案中,主IoT中心110和一个或多个从属IoT中心111可以通过本地网络连接,该本地网络可以是WiFi网络116、以太网和/或使用电力线通信(PLC)网络(例如,其中网络的全部或部分通过用户的电力线运行)。另外,对于IoT中心110至111,IoT装置101至105中的每一者可以使用诸如WiFi、以太网、PLC或蓝牙LE等的任何类型的本地网络信道与IoT中心110至111互连。In this embodiment, the master IoT hub 110 and one or more slave IoT hubs 111 can be connected via a local network, which can be a WiFi network 116, Ethernet, and/or a network using power line communication (PLC) (e.g., where all or part of the network runs through the user's power lines). In addition, each of the IoT devices 101 to 105 can interconnect with the IoT hubs 110 to 111 using any type of local network channel such as WiFi, Ethernet, PLC, or Bluetooth LE.
图1B还示出了安装在第二用户驻地181处的IoT中心190。几乎无限数量的这种IoT中心190可以被安装和配置,以收集来自世界各地的用户驻地处IoT装置191至192的数据。在一个实施方案中,可以为同一用户配置两个用户驻地180至181。例如,一个用户驻地180可以是用户的主要住宅,而另一个用户驻地181可以是用户的度假屋。在这种情况下,IoT服务120将IoT中心110至111、190与用户逻辑地相关联,并将所有附接的IoT装置101至105、191至192组合在能经由已安装有应用程序的用户装置135访问的单个综合性用户界面(和/或基于浏览器的界面)下。FIG1B also shows an IoT hub 190 installed at a second user premises 181. An almost unlimited number of such IoT hubs 190 can be installed and configured to collect data from IoT devices 191 to 192 at user premises around the world. In one embodiment, two user premises 180 to 181 can be configured for the same user. For example, one user premises 180 can be the user's primary residence, while the other user premises 181 can be the user's vacation home. In this case, the IoT service 120 logically associates the IoT hubs 110 to 111, 190 with the user and combines all attached IoT devices 101 to 105, 191 to 192 under a single comprehensive user interface (and/or browser-based interface) that can be accessed via the user device 135 with the application installed.
如图2所示,IoT装置101的一个示例性实施方案包括用于存储程序代码和数据201至203的存储器210、以及用于执行程序代码和处理数据的低功率微控制器200。存储器210可以是诸如动态随机存取存储器(DRAM)的易失性存储器,或者可以是诸如闪存存储器的非易失性存储器。在一个实施方案中,非易失性存储器可用于永久存储,而易失性存储器可用于在运行时执行程序代码和数据。此外,存储器210可以集成在低功率微控制器200内,或者可以经由总线或通信结构联接到低功率微控制器200。本发明的基本原理不限于存储器210的任何特定实现方式。As shown in Figure 2, an exemplary embodiment of the IoT device 101 includes a memory 210 for storing program code and data 201 to 203, and a low-power microcontroller 200 for executing the program code and processing data. The memory 210 can be a volatile memory such as a dynamic random access memory (DRAM), or it can be a non-volatile memory such as a flash memory. In one embodiment, the non-volatile memory can be used for permanent storage, while the volatile memory can be used for executing the program code and data at runtime. In addition, the memory 210 can be integrated into the low-power microcontroller 200, or can be connected to the low-power microcontroller 200 via a bus or communication structure. The basic principles of the present invention are not limited to any specific implementation of the memory 210.
如图所示,所述程序代码可以包括定义要由IoT装置201执行的一组应用程序特定的功能的应用程序代码203、以及包括可由IoT装置101的应用程序开发人员利用的一组预定义构建块的库代码202。在一个实施方案中,库代码202包括实现IoT装置所需的一组基本功能,诸如用于使得能够实现IoT装置101中的每一者和IoT中心110之间的通信的通信协议栈201。如上所述,在一个实施方案中,通信协议栈201包括蓝牙LE协议栈。在该实施方案中,蓝牙LE无线电装置和天线207可以被集成在低功率微控制器200内。然而,本发明的基本原理不限于任何特定的通信协议。As shown, the program code may include application code 203, which defines a set of application-specific functions to be performed by IoT device 201, and library code 202, which includes a set of predefined building blocks that can be utilized by application developers of IoT device 101. In one embodiment, library code 202 includes a set of basic functions required to implement an IoT device, such as a communication protocol stack 201 for enabling communication between each of IoT devices 101 and IoT hub 110. 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 within low-power microcontroller 200. However, the underlying principles of the present invention are not limited to any particular communication protocol.
图2中所示的具体实施方案还包括用以接收用户输入并向低功率微控制器提供该用户输入的多个输入装置或传感器210,低功率微控制器根据应用程序代码203和库代码202处理该用户输入。在一个实施方案中,输入装置中的每一者包括用于向最终用户提供反馈的LED 209。2 also includes a plurality of input devices or sensors 210 for receiving user input and providing the user input to the low-power microcontroller, which processes the user input according to the application code 203 and the library code 202. In one embodiment, each of the input devices includes an LED 209 for providing feedback to the end user.
另外,图示实施方案包括用于向低功率微控制器供电的电池208。在一个实施方案中,使用不可充电的纽扣电池。然而,在一个另选的实施方案中,可以使用集成的可充电电池(例如,通过将IoT装置连接到交流电源(未示出)来充电)。In addition, the illustrated embodiment includes a battery 208 for powering the low-power microcontroller. In one embodiment, a non-rechargeable coin cell battery is used. However, in an alternative embodiment, an integrated rechargeable battery can be used (e.g., charged by connecting the IoT device to an AC power source (not shown)).
还提供用于产生音频的扬声器205。在一个实施方案中,低功率微控制器299包括用于解码压缩音频流(例如,诸如MPEG-4/高级音频编码(AAC)流)以在扬声器205上产生音频的音频解码逻辑件。作为另外一种选择,低功率微控制器200和/或应用程序代码/数据203可以包括数字采样的音频片段,以在用户经由输入装置210输入选择时向最终用户提供言语反馈。A speaker 205 is also provided for producing audio. In one embodiment, the low-power microcontroller 299 includes audio decoding logic for decoding a compressed audio stream (e.g., such as an MPEG-4/Advanced Audio Coding (AAC) stream) to produce audio on the speaker 205. Alternatively, the low-power microcontroller 200 and/or the application code/data 203 may include digitally sampled audio clips to provide verbal feedback to the end user when the user enters a selection via the input device 210.
在一个实施方案中,基于IoT装置101被设计用于的特定应用,可以在IoT装置101上包括一个或多个其他/替代的I/O装置或传感器250。例如,可以包括环境传感器以测量温度、压力、湿度等。如果将IoT装置用作安防装置,则可以包括安防传感器和/或门锁开启器。当然,这些示例仅仅是为了举例说明的目的而提供的。本发明的基本原理不限于任何特定类型的IoT装置。事实上,考虑到配备有库代码202的低功率微控制器200的高可编程性质,应用程序开发人员可以容易地开发新的应用程序代码203和新的I/O装置250以针对几乎任何类型的IoT应用与低功率微控制器交互。In one embodiment, one or more additional/alternative I/O devices or sensors 250 may be included on the IoT device 101 based on the specific application for which the IoT device 101 is designed. For example, environmental sensors may be included to measure temperature, pressure, humidity, etc. 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 illustrative purposes only. The underlying principles of the present invention are not limited to any particular type of IoT device. In fact, given the highly programmable nature of the low-power microcontroller 200 equipped with library code 202, application developers can easily develop new application code 203 and new I/O devices 250 to interact with the low-power microcontroller for virtually any type of IoT application.
在一个实施方案中,低功率微控制器200还包括用于存储用于加密通信和/或生成签名的加密密钥的安全密钥库。作为另外一种选择,密钥可以被保护在订户身份模块(SIM)中。In one embodiment, the low power microcontroller 200 also includes a secure keystore for storing cryptographic keys used to encrypt communications and/or generate signatures. Alternatively, the keys may be protected in a Subscriber Identity Module (SIM).
在一个实施方案中,包括唤醒接收器207以将IoT装置从几乎不消耗功率的超低功率状态中唤醒。在一个实施方案中,唤醒接收器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 wake-up receiver 207 is included to wake the IoT device from an ultra-low-power state that consumes virtually no power. In one embodiment, the wake-up receiver 207 is configured to cause the IoT device 101 to exit this low-power state in response to a wake-up signal received from a wake-up transmitter 307, as shown in FIG3 , configured on the IoT hub 110. Specifically, in one embodiment, the transmitter 307 and the receiver 207 together form an electric resonant transformer circuit, such as a Tesla coil. In operation, when the hub 110 needs to wake the IoT device 101 from an extremely low-power state, energy is transferred from the transmitter 307 to the receiver 207 via a radio frequency signal. Due to this energy transfer, the IoT device 101 can be configured to consume virtually no power while in a low-power state, as it does not need to continuously "listen" for a signal from the hub (as is the case with network protocols that allow devices to be woken by network signals). More specifically, the microcontroller 200 of the IoT device 101 can be configured to wake up after being effectively powered down by using the energy electrically transferred from the transmitter 307 to the receiver 207.
如图3所示,IoT中心110还包括用于存储程序代码和数据305的存储器317、以及用于执行程序代码和处理数据的硬件逻辑件301诸如微控制器。广域网(WAN)接口302和天线310将IoT中心110联接到蜂窝服务115。作为另外一种选择,如上所述,IoT中心110还可以包括本地网络接口(未示出),诸如WiFi接口(和WiFi天线)或以太网接口,用于建立局域网通信信道。在一个实施方案中,硬件逻辑件301还包括用于存储用于加密通信和生成/验证签名的加密密钥的安全密钥库。作为另外一种选择,密钥可以被保护在订户身份模块(SIM)中。As shown in Figure 3, IoT hub 110 also includes a memory 317 for storing program code and data 305, and a hardware logic part 301 such as a microcontroller for executing program code and processing data. Wide area network (WAN) interface 302 and antenna 310 connect IoT hub 110 to cellular service 115. Alternatively, as described above, IoT hub 110 may also include a local network interface (not shown), such as a WiFi interface (and WiFi antenna) or an Ethernet interface, for establishing a local area network communication channel. In one embodiment, hardware logic part 301 also includes a security key library for storing encryption keys for encrypted communication and generation/verification signatures. Alternatively, the key can be protected in a subscriber identity module (SIM).
本地通信接口303和天线311建立与IoT装置101至105中的每一者的本地通信信道。如上所述,在一个实施方案中,本地通信接口303/天线311实施蓝牙LE标准。然而,本发明的基本原理不限于用于建立与IoT装置101至105的本地通信信道的任何具体协议。虽然在图3中被示出为单独的单元,但WAN接口302和/或本地通信接口303可以嵌入在与硬件逻辑件301相同的芯片内。Local communication interface 303 and antenna 311 establish a local communication channel with each of IoT devices 101 to 105. As described above, in one embodiment, local communication interface 303/antenna 311 implements the Bluetooth LE standard. However, the underlying principles of the present invention are not limited to any specific protocol for establishing local communication channels with IoT devices 101 to 105. Although shown as separate units in FIG3 , WAN interface 302 and/or local communication interface 303 can be embedded within the same chip as hardware logic 301.
在一个实施方案中,程序代码和数据包括通信协议栈308,该通信协议栈可以包括分开的堆栈来用于通过本地通信接口303和WAN接口302进行通信。此外,可以将装置配对程序代码和数据306存储在存储器中以允许IoT中心与新的IoT装置配对。在一个实施方案中,为每个新的IoT装置101至105分配唯一的代码,在配对过程中将该唯一代码传送到IoT中心110。例如,该唯一代码可以嵌入在IoT装置上的条形码中,并且可以由条形码读取器106读取,或者可以通过本地通信信道130传送。在一个另选的实施方案中,该唯一ID代码被磁性地嵌入在IoT装置上,并且IoT中心具有磁传感器诸如射频ID(RFID)或近场通信(NFC)传感器,以在IoT装置101在距离IoT中心110几英寸内移动时检测该代码。In one embodiment, the program code and data include a communication protocol stack 308, which may include separate stacks for communicating over the local communication interface 303 and the WAN interface 302. In addition, device pairing program code and data 306 may be stored in memory to allow the IoT hub to pair with new IoT devices. In one embodiment, each new IoT device 101 to 105 is assigned a unique code that is transmitted to the IoT hub 110 during the pairing process. For example, the unique code may be embedded in a barcode on the IoT device and may be read by a barcode reader 106, or may be transmitted over a local communication channel 130. In an alternative embodiment, the unique ID code is magnetically embedded on the IoT device, and the IoT hub has a magnetic sensor such as a radio frequency ID (RFID) or near field communication (NFC) sensor to detect the code when the IoT device 101 moves within a few inches of the IoT hub 110.
在一个实施方案中,一旦已经传送该唯一ID,IoT中心110就可以通过以下方式来验证该唯一ID:查询本地数据库(未示出)、执行散列来验证该代码是否可接受、并且/或者与IoT服务120、用户装置135和/或网站130通信来验证该ID代码。在一个实施方案中,一旦经验证,IoT中心110就和IoT装置101配对并且将配对数据存储在存储器317中(如上所述,该存储器可以包括非易失性存储器)。一旦配对完成,IoT中心110就可以与IoT装置101连接以执行本文所述的各种IoT功能。In one embodiment, once the unique ID has been transmitted, the IoT hub 110 can verify the unique ID by querying a local database (not shown), performing a hash to verify that the code is acceptable, and/or communicating with the IoT service 120, the user device 135, and/or the website 130 to verify the ID code. In one embodiment, once verified, the IoT hub 110 pairs with the IoT device 101 and stores the pairing data in the memory 317 (which, as described above, may include non-volatile memory). 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中心110和基本硬件/软件平台,以允许开发人员容易地设计新的IoT服务。具体地讲,除了IoT中心110之外,还可以为开发人员提供软件开发工具包(SDK)来更新在中心110内执行的程序代码和数据305。另外,对于IoT装置101,SDK可以包括针对基础IoT硬件(例如,图2所示的低功率微控制器200和其他部件)设计的一组广泛的库代码202以有利于设计各种不同类型的应用程序101。在一个实施方案中,SDK包括图形设计界面,其中开发人员仅需要为IoT装置指定输入和输出。已经为开发人员准备好了所有联网代码,包括允许IoT装置101连接到中心110和服务120的通信栈201。此外,在一个实施方案中,SDK还包括用于促进为移动装置(例如,iPhone和Android装置)设计应用程序的库代码基。In one embodiment, the organization running the IoT service 120 can provide the IoT hub 110 and the basic hardware/software platform to allow developers to easily design new IoT services. Specifically, in addition to the IoT hub 110, a software development kit (SDK) can be provided for developers to update the program code and data 305 executed within the hub 110. Furthermore, for IoT devices 101, the SDK can include an extensive set of library code 202 designed for the underlying IoT hardware (e.g., the low-power microcontroller 200 and other components shown in FIG. 2 ) to facilitate the design of a variety of different types of applications 101. In one embodiment, the SDK includes a graphical design interface where developers only need to specify the inputs and outputs for the IoT device. All networking code is already prepared for the developer, including the communication stack 201 that allows the IoT device 101 to connect to the hub 110 and services 120. Furthermore, in one embodiment, the SDK also includes a library code base to facilitate the design of applications for mobile devices (e.g., iPhones and Android devices).
在一个实施方案中,IoT中心110管理IoT装置101至105和IoT服务120之间的连续双向数据流。在需要实时更新到IoT装置101至105/从这些IoT装置更新的情况下(例如,在用户需要查看安防装置或环境读数的当前状态的情况下),IoT中心可以保持打开的TCP套接字以提供对用户装置135和/或外部网站130的定期更新。用于提供更新的具体联网协议可以根据底层应用程序的需求进行调整。例如,在某些情况下,如果连续双向流可能没有意义,则可以使用简单的请求/响应协议来在需要时收集信息。In one embodiment, the IoT hub 110 manages a continuous, bidirectional data flow between the IoT devices 101-105 and the IoT service 120. In situations where real-time updates to/from the IoT devices 101-105 are needed (e.g., where a user needs to view the current status of a security device or environmental reading), the IoT hub can maintain an open TCP socket to provide periodic updates to the user device 135 and/or the external website 130. The specific networking protocol used to provide updates can be tailored to the needs of the underlying application. For example, in some cases, where a continuous, bidirectional flow might not be meaningful, a simple request/response protocol can be used to collect 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 upgraded over the network. Specifically, when a new update is available for the IoT hub 110, it can automatically download and install the update from the IoT service 120. It can first copy the updated code to local storage, run and verify the update, and then replace the older program code. Similarly, when an update is available for each of the IoT devices 101-105, the update can initially be downloaded by the IoT hub 110 and pushed to each of the IoT devices 101-105. Each IoT device 101-105 can then apply the update in a manner similar to that described above for the IoT hub and report the results of the update back to the IoT hub 110. If the update is successful, the IoT hub 110 can delete the update from its storage and record the latest code version installed on each IoT device (e.g., so that it can continue to check each IoT device for new updates).
在一个实施方案中,IoT中心110通过交流电源供电。具体地讲,IoT中心110可以包括具有变压器的供电单元390,其中变压器用于将通过交流电源线提供的交流电压转换为较低的直流电压。In one embodiment, the IoT hub 110 is powered by an AC power source. Specifically, the IoT hub 110 may include a power supply unit 390 having a transformer, wherein the transformer is used to convert an AC voltage provided by an AC power line into a lower DC voltage.
图4A示出了本发明的使用IoT系统执行通用远程控制操作的一个实施方案。具体地讲,在本实施方案中,一组IoT装置101至103分别配备有红外(IR)和/或射频(RF)发射器401至403,用于传输远程控制代码来控制各种不同类型的电子设备,包括空调/加热器430、照明系统431和视听设备432(仅举几例)。在图4A中所示的实施方案中,IoT装置101至103还分别配备有传感器404至406,用于检测它们所控制的装置的操作,如下所述。FIG4A illustrates one embodiment of the present invention for performing universal remote control operations using an IoT system. Specifically, in this embodiment, a group of IoT devices 101 to 103 are each equipped with infrared (IR) and/or radio frequency (RF) transmitters 401 to 403 for transmitting remote control codes to control a variety of different types of electronic devices, including an air conditioner/heater 430, a lighting system 431, and audio-visual equipment 432, to name a few. In the embodiment shown in FIG4A , IoT devices 101 to 103 are also each equipped with sensors 404 to 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的当前温度/湿度数据,并且响应性地向IoT装置101传输命令,以便根据所需的温度/湿度控制IR/RF发射器401。例如,如果温度低于所需温度,则控制逻辑件412可以通过IR/RF发射器401向空调/加热器传输命令以增加温度(例如,通过关断空调或打开加热器)。该命令可以包括存储在IoT中心110上的数据库413中的必要的远程控制代码。作为另外一种选择或除此之外,IoT服务421可以实现控制逻辑件421,以基于指定的用户偏好和存储的控制代码422来控制电子设备430至432。For example, the sensor 404 in the IoT device 101 may be a temperature and/or humidity sensor for sensing the current temperature/humidity, and responsively controlling the air conditioner/heater 430 based on the current desired temperature. In this embodiment, the air conditioner/heater 430 is designed to be controlled via a remote control (typically a remote controller with an embedded temperature sensor). In one embodiment, a 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 executing on the IoT hub 110 receives the current temperature/humidity data from the sensor 404 and responsively transmits a command to the IoT device 101 to control the IR/RF transmitter 401 based on the desired temperature/humidity. For example, if the temperature is below the desired temperature, the control logic 412 may transmit a command to the air conditioner/heater via the IR/RF transmitter 401 to increase the temperature (e.g., by turning off the air conditioner or turning on the heater). This 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 electronic devices 430 - 432 based on specified user preferences and stored control codes 422 .
所示示例中的IoT装置102用于控制照明431。具体地讲,IoT装置102中的传感器405可为被配置为检测由灯具431(或其他照明设备)发出的光的当前亮度的光电传感器或光电检测器。用户可以通过用户装置135向IoT中心110指定所需的照明水平(包括打开或关断的指示)。作为响应,控制逻辑件412将向IR/RF发射器402传输命令来控制灯431的当前亮度级(例如,如果当前亮度太低则增加照明,或者如果当前亮度太高则减少照明;或者简单地将灯打开或关断)。The IoT device 102 in the illustrated example is used to control lighting 431. Specifically, the sensor 405 in the IoT device 102 may be a photosensor or photodetector configured to detect the current brightness of light emitted by the lamp 431 (or other lighting device). A user may specify a desired lighting level (including an instruction to turn it on or off) to the IoT hub 110 via the user device 135. In response, the control logic 412 transmits a command to the IR/RF transmitter 402 to control the current brightness level of the lamp 431 (e.g., increase the lighting if the current brightness is too low, decrease the lighting if the current brightness is too high, or simply turn the lamp on or off).
所示示例中的IoT装置103被配置为控制视听设备432(例如,电视、A/V接收器、有线/卫星接收器、AppleTVTM等)。IoT装置103中的传感器406可以是用于检测当前环境音量水平的音频传感器(例如,麦克风和相关联的逻辑件)和/或可以是基于电视所产生的光(例如,通过测量特定光谱内的光)检测电视是打开还是关断的光电传感器。作为另外一种选择,传感器406可包括连接到视听设备的温度传感器,以基于所检测到的温度来检测音频设备是打开的还是关断的。再一次响应于经由用户装置135的用户输入,控制逻辑件412可以经由IoT装置103的红外线发射器403向视听设备传输命令。The IoT device 103 in the illustrated example is configured to control an audio-visual device 432 (e.g., a television, an A/V receiver, a cable/satellite receiver, an AppleTV ™ , etc.). The sensor 406 in the IoT device 103 can be an audio sensor (e.g., a microphone and associated logic) for detecting the current ambient volume level and/or can be a photosensor that detects whether the television is on or off based on the light generated by the television (e.g., by measuring light within a specific spectrum). Alternatively, the sensor 406 can include a temperature sensor connected to the audio-visual 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 can transmit commands to the audio-visual device via the infrared transmitter 403 of the IoT device 103.
应注意,上述示例仅仅是本发明的一个实施方案的例示性示例。本发明的基本原理不限于由IoT装置控制的任何特定类型的传感器或设备。It should be noted that the above example is merely an illustrative example of one embodiment of the present invention. The underlying principles of the present invention are not limited to any particular type of sensor or device controlled by an IoT device.
在IoT装置101至103通过蓝牙LE连接联接至IoT中心110的实施方案中,传感器数据和命令通过蓝牙LE信道发送。然而,本发明的基本原理不限于蓝牙LE或任何其他通信标准。In an embodiment where the IoT devices 101 to 103 are connected to the IoT hub 110 via a Bluetooth LE connection, sensor data and commands are sent via the Bluetooth LE channel. However, the underlying principles of the present 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(例如,识别具有唯一ID的每台电子设备)上的远程控制代码数据库492检索所需的IR/RF代码。In one embodiment, the control code required to control each electronic device is stored in a database 413 on the IoT hub 110 and/or a database 422 on the IoT service 120. As shown in Figure 4B, the control code can be provided to the IoT hub 110 from a master database 422 of control codes for different devices maintained on the IoT service 120. The end user can specify the type of electronic (or other) device to be controlled through an application or browser executed on the user device 135, and in response, the remote control code learning module 491 on the IoT hub can retrieve the required IR/RF code from the remote control code database 492 on the IoT service 120 (e.g., which identifies each electronic device with a unique ID).
此外,在一个实施方案中,IoT中心110配备有IR/RF接口490,以允许远程控制代码学习模块491直接从与电子设备一起提供的原始遥控器495“学习”新的远程控制代码。例如,如果远程控制数据库中不包括用于与空调430一起提供的原始遥控器的控制代码,则用户可经由用户装置135上的应用程序/浏览器与IoT中心110进行交互,以教授IoT中心110由原始遥控器生成的各种控制代码(例如,增加温度、降低温度等)。一旦学习了远程控制代码,这些远程控制代码可以被存储在IoT中心110上的控制代码数据库413和/或被发送回IoT服务120以被包括在中央远程控制代码数据库492中(并且随后被具有相同空调单元430的其他用户使用)。In addition, in one embodiment, the IoT hub 110 is equipped with an IR/RF interface 490 to allow the remote control code learning module 491 to "learn" new remote control codes directly from the original remote control 495 provided with the electronic device. For example, if the remote control database does not include the control codes for the original remote control provided with the air conditioner 430, the user can interact with the IoT hub 110 via an application/browser on the user device 135 to teach the IoT hub 110 various control codes generated by the original remote control (e.g., increase temperature, decrease temperature, etc.). Once the remote control codes are learned, they can 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 (and subsequently used by other users with the same air conditioner unit 430).
在一个实施方案中,IoT装置101至103中的每一者具有非常小的外形尺寸,并且可以使用双面胶带、小钉、磁性附件等附连在其各自的电子设备430至432上或者其附近。为了控制一台设备诸如空调器430,可取的是将IoT装置101放置得足够远,使得传感器404能够精确地测量家里的环境温度(例如,将IoT装置直接放置在空调上将导致温度测量在空调运行时太低,在加热器运行时太高)。相反,用于控制照明的IoT装置102可以被放置在照明器具431上或者其附近,以便由传感器405检测当前的照明水平。In one embodiment, each of the IoT devices 101 to 103 has a very small form factor and can be attached to or near its respective electronic device 430 to 432 using double-sided tape, small nails, magnetic attachments, etc. To control a device such as an air conditioner 430, it is desirable to place the IoT device 101 far enough away so that the sensor 404 can accurately measure the ambient temperature of the home (e.g., placing the IoT device directly on the air conditioner will result in a temperature measurement that is too low when the air conditioner is running and too high when the heater is running). Conversely, the IoT device 102 for controlling lighting can be placed on or near the lighting fixture 431 so that the current lighting level can be detected by the sensor 405.
除了提供所描述的一般控制功能之外,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 IoT service 120 transmits notifications to the end user regarding the current status of each electronic device. These notifications can then be displayed on the display of the user's mobile device 135 and can be text messages and/or application-specific notifications. For example, if the user's air conditioner has been on for a period of time but the temperature has not changed, the IoT hub 110 and/or IoT service 120 can send a notification to the user that the air conditioner is not working properly. If the user is not at home (this can be detected by a motion sensor or based on the user's current location detected), and the sensor 406 indicates that the audio-visual device 430 is on, or the sensor 405 indicator light is on, a notification can be sent to the user asking whether the user wants to turn off the audio-visual device 432 and/or the light 431. The same type of notification can be sent to any device type.
一旦用户接收到通知,他/她可以经由用户装置135上的应用程序或浏览器远程控制电子设备430至432。在一个实施方案中,用户装置135是触摸屏装置,并且应用程序或浏览器以用户可选择的按钮显示遥控器的图像以用于控制设备430至432。在接收到通知时,用户可以打开图形遥控器并关断或调节各种不同的设备。如果是经由IoT服务120连接,可将用户的选择从IoT服务120转发至IoT中心110,该IoT中心然后将经由控制逻辑件412来控制设备。作为另外一种选择,可将用户输入从用户装置135直接发送到IoT中心110。Once the user receives the notification, he/she can remotely control the electronic devices 430-432 via an application or browser on the user device 135. In one embodiment, the user device 135 is a touchscreen device, and the application or browser displays a graphic remote control with user-selectable buttons for controlling the devices 430-432. Upon receiving the notification, the user can open the graphical remote control and turn off or adjust various devices. If connected via the IoT service 120, the user's selections can be forwarded from the IoT service 120 to the IoT hub 110, which will then control the devices via the control logic 412. Alternatively, user input can be sent directly from the user device 135 to the IoT hub 110.
在一个实施方案中,用户可以对IoT中心110上的控制逻辑件412进行编程,以相对于电子设备430至432执行各种自动控制功能。除了如上所述保持所需的温度、亮度级和音量水平之外,如果检测到某些条件,控制逻辑件412可以自动关断电子设备。例如,如果控制逻辑件412检测到用户不在家并且空调不起作用,则它可以自动关断空调。类似地,如果用户不在家,并且传感器406指示视听设备430是打开的,或者传感器405指示灯是打开的,则控制逻辑件412可以经由IR/RF发射器403和402自动传输命令以分别关断视听设备和灯。In one embodiment, a user can program the control logic 412 on the IoT hub 110 to perform various automatic control functions with respect to the electronic devices 430 to 432. In addition to maintaining a desired temperature, light level, and volume level as described above, the control logic 412 can automatically shut down the electronic devices if certain conditions are detected. For example, if the control logic 412 detects that the user is not home and the air conditioner is not functioning, it can automatically shut down the air conditioner. Similarly, if the user is not home and the sensor 406 indicates that the audio-visual device 430 is on, or the sensor 405 indicates that the indicator light is on, the control logic 412 can automatically transmit commands via the IR/RF transmitters 403 and 402 to shut down the audio-visual device and the lights, respectively.
图5示出了配备有用于监测电子设备530至531的传感器503至504的IoT装置104至105的附加实施方案。具体地讲,本实施方案的IoT装置104包括温度传感器503,该温度传感器可放置在火炉530上或者其附近,以便检测火炉打开后闲置的情况。在一个实施方案中,IoT装置104将由温度传感器503测量的当前温度传输到IoT中心110和/或IoT服务120。如果火炉被检测到打开超过阈值时间段(例如,基于所测量的温度),则控制逻辑件512可以向最终用户的装置135传输通知,告知用户火炉530是打开的。此外,在一个实施方案中,IoT装置104可包括控制模块501,以响应于接收到来自用户的指令或自动地(如果控制逻辑件512被用户编程为这样做)关断火炉。在一个实施方案中,控制逻辑件501包括用于将向火炉530的电或气体切断的开关。然而,在其他实施方案中,控制逻辑件501可集成在火炉本身。FIG5 illustrates an additional embodiment of IoT devices 104-105 equipped with sensors 503-504 for monitoring electronic devices 530-531. Specifically, the IoT device 104 of this embodiment includes a temperature sensor 503, which can be placed on or near a stove 530 to detect when the stove is turned on and left idle. 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 the stove is detected to be on for more than a threshold period of time (e.g., based on the measured temperature), the control logic 512 can transmit a notification to the end user's device 135 informing the user that the stove 530 is on. Furthermore, in one embodiment, the IoT device 104 can include a control module 501 to shut off the stove in response to a command from the user or automatically (if the control logic 512 is programmed by the user to do so). In one embodiment, the control logic 501 includes a switch for shutting off the electricity or gas to the stove 530. However, in other embodiments, the control logic 501 may be integrated into the fire itself.
图5还示出了具有运动传感器504的IoT装置105,该运动传感器用于检测某些类型的电子设备诸如洗衣机和/或干衣机的运动。可以使用的另一种传感器是用于检测环境音量水平的音频传感器(例如,麦克风和逻辑件)。与上述其他实施方案一样,如果满足某些特定条件(例如,如果长时间检测到运动,则指示洗衣机/干衣机没有关断),则该实施方案可以向最终用户传输通知。虽然图5中未示出,但是IoT装置105还可以配备有控制模块,以便自动地和/或响应于用户输入(例如,通过关闭电/气体)关断洗衣机/干衣机531。FIG5 also shows an IoT device 105 having a motion sensor 504 for detecting motion of certain types of electronic devices such as washing machines and/or dryers. Another sensor that can be used is an audio sensor (e.g., a microphone and logic) for detecting ambient volume levels. As with the other embodiments described above, this embodiment can transmit a notification to the end user if certain conditions are met (e.g., if motion is detected for a long time, indicating that the washer/dryer is not turned off). Although not shown in FIG5 , the IoT device 105 can also be equipped with a control module to automatically and/or in response to user input (e.g., by turning off electricity/gas) turn off the washer/dryer 531.
在一个实施方案中,具有控制逻辑件和开关的第一IoT装置可被配置为关断用户家中的所有电力,并且具有控制逻辑件和开关的第二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 electricity in a user's home, and a second IoT device having control logic and a switch may be configured to turn off all gas in a user's home. The IoT devices having sensors may then be positioned on or near electronic or gas-operated equipment in the user's home. If a user is notified that a particular device has been left on and idle (e.g., a furnace 530), the user can send a command to turn off all electricity or gas in the home to prevent damage. Alternatively, the control logic 512 in the IoT hub 110 and/or IoT service 120 may be configured to automatically turn off electricity or gas in such circumstances.
在一个实施方案中,IoT中心110和IoT服务120以周期性间隔进行通信。如果IoT服务120(例如,通过在指定的持续时间内未能从IoT中心接收请求或响应)检测到已经失去了与IoT中心110的连接,它会(例如,通过发送文本消息或应用程序特定的通知)将该信息传送到最终用户的装置135。In one embodiment, the IoT hub 110 and the IoT service 120 communicate at periodic intervals. If the IoT service 120 detects that it has lost connectivity with the IoT hub 110 (e.g., by failing to receive a request or response from the IoT hub within a specified duration), it communicates this information to the end user's device 135 (e.g., by sending a text message or application-specific notification).
改进的安全性的实施方案Improved security implementation scheme
在一个实施方案中,每个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 include secure key storage for storing encryption keys used by the embodiments described below (see, e.g., Figures 6-11 and associated text). Alternatively, the keys can be protected in a subscriber identity module (SIM) as described below.
图6示出了使用公钥基础结构(PKI)技术和/或对称密钥交换/加密技术加密IoT服务120、IoT中心110和IoT装置101-102之间的通信的高级架构。6 illustrates a high-level architecture for encrypting communications between the IoT service 120 , the IoT hub 110 , and the IoT devices 101 - 102 using public key infrastructure (PKI) techniques and/or symmetric key exchange/encryption techniques.
首先将描述使用公钥/私钥对的实施方案,接着是使用对称密钥交换/加密技术的实施方案。具体地讲,在使用PKI的实施方案中,唯一的公钥/私钥对与每个IoT装置101至102、每个IoT中心110和IoT服务120相关联。在一个实施方案中,当建立新的IoT中心110时,其公钥被提供给IoT服务120,并且当建立新的IoT装置101时,其公钥被提供给IoT中心110和IoT服务120两者。下面描述用于在装置之间安全地交换公钥的各种技术。在一个实施方案中,所有公钥由所有接收装置已知的主密钥(即,证书的形式)签名,使得任何接收装置可以通过验证签名来验证公钥的有效性。因此,这些证书将被交换,而不仅仅是交换原始公钥。First, an embodiment using a public/private key pair will be described, followed by an embodiment using symmetric key exchange/encryption technology. Specifically, in an embodiment using PKI, a unique public/private key pair is associated with each IoT device 101 to 102, each IoT hub 110, and IoT service 120. In one embodiment, when a new IoT hub 110 is established, its public key is provided to the IoT service 120, and when a new IoT device 101 is established, its public key is provided to both the IoT hub 110 and the IoT service 120. Various techniques for securely exchanging public keys between devices are described below. In one embodiment, all public keys are signed by a master key (i.e., in the form of a certificate) known to all receiving devices, so that any receiving device can verify the validity of the public key by verifying the signature. Therefore, these certificates will be exchanged, rather than just exchanging the original public keys.
如图所示,在一个实施方案中,每个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装置接收到公钥证书时,它可以对此证书进行验证(例如,通过如上所述使用主密钥验证签名),然后从其中提取公钥并将该公钥存储在其安全密钥存储装置611中。As shown, in one embodiment, each IoT device 101, 102 includes a secure key storage device 601, 603, respectively, for securely storing each device's private key. Security logic 602, 1304 then utilizes the securely stored private keys to perform the encryption/decryption operations described herein. Similarly, the IoT hub 110 includes a secure storage device 611 for storing the IoT hub's private key and the public keys of the IoT devices 101-102 and IoT service 120; as well as security logic 612 for performing encryption/decryption operations using the keys. Finally, the IoT service 120 may include a secure storage device 621 for securely storing its own private key, the public keys of various IoT devices, and the IoT hub; and security logic 613 for using the keys to encrypt/decrypt communications with the IoT hub and devices. In one embodiment, when the IoT hub 110 receives a public key certificate from an IoT device, it can verify the certificate (e.g., by verifying the signature using the master key as described above), then extract the public key from it and store it in its secure key storage device 611.
举例来说,在一个实施方案中,当IoT服务120需要向IoT装置101传输命令或数据时(例如,解锁门的命令、读取传感器的请求、要由IoT装置处理/显示的数据等),安全性逻辑件613使用IoT装置101的公钥对数据/命令进行加密,以生成加密的IoT装置分组。在一个实施方案中,它然后使用IoT中心110的公钥来加密IoT装置分组,以生成IoT中心分组,并将该IoT中心分组传输到IoT中心110。在一个实施方案中,服务120使用其私钥或上面提到的主密钥来对加密消息进行签名,使得装置101可以验证它正在从可信源接收未改变的消息。然后,装置101可以使用与私钥和/或主密钥相对应的公钥来验证该签名。如上所述,可以使用对称密钥交换/加密技术来代替公钥/私钥加密。在这些实施方案中,不是私密地存储一个密钥并且向其他装置提供对应的公钥,而是可以向每个装置提供用于加密并验证签名的相同对称密钥的副本。对称密钥算法的一个示例是高级加密标准(AES),但是本发明的基本原理不限于任何类型的特定对称密钥。For example, in one embodiment, when the IoT service 120 needs to transmit a command or data to the IoT device 101 (e.g., a command to unlock a door, a request to read a sensor, data to be processed/displayed by the IoT device, etc.), the security logic 613 encrypts the data/command using the public key of the IoT device 101 to generate an encrypted IoT device packet. In one embodiment, it then encrypts the IoT device packet using the public key of the IoT hub 110 to generate an IoT hub packet and transmits the IoT hub packet to the IoT hub 110. In one embodiment, the service 120 signs the encrypted message using its private key or the master key mentioned above, allowing the device 101 to verify that it is receiving the unaltered message from a trusted source. The device 101 can then verify the signature using the public key corresponding to the private key and/or master key. As described above, symmetric key exchange/encryption techniques can be used instead of public/private key encryption. In these embodiments, rather than privately storing one key and providing the corresponding public key to other devices, each device can be provided with a copy of the same symmetric key used to encrypt and verify the signature. One example of a symmetric key algorithm is the Advanced Encryption Standard (AES), but the underlying principles of the invention are not limited to any type of specific symmetric key.
通过使用对称密钥具体实施,每个装置101进入安全密钥交换协议来与IoT中心110交换对称密钥。安全密钥预置协议,诸如,动态对称密钥预置协议(DSKPP)可用于通过安全通信信道交换密钥(例如,见意见征求稿(RFC)6063)。然而,本发明的基本原理不限于任何特定密钥预置协议。In a specific implementation using symmetric keys, each device 101 enters into a secure key exchange protocol to exchange symmetric keys with the IoT hub 110. A secure key provisioning protocol, such as the Dynamic Symmetric Key Provisioning Protocol (DSKPP), can be used to exchange keys over a secure communication channel (e.g., see Request for Comments (RFC) 6063). However, the underlying principles of the present 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协商会话密钥。然后,在重新加密朝向装置101的传输之前,来自服务120的消息将在中心安全模块612中被解密和验证。Once the symmetric keys are exchanged, they can be used by each device 101 and the IoT hub 110 to encrypt communications. Similarly, the IoT hub 110 and the IoT service 120 can perform a secure symmetric key exchange and then use the exchanged symmetric keys to encrypt communications. In one embodiment, new symmetric keys are periodically exchanged between the device 101 and the hub 110, and between the hub 110 and the IoT service 120. In one embodiment, new symmetric keys are exchanged with each new communication session between the device 101, the hub 110, and the service 120 (e.g., new keys are generated and securely exchanged for each communication session). In one embodiment, if the IoT hub's security module 612 is trusted, the service 120 can negotiate a session key with the hub security module 1312, which will then negotiate a session key with each device 120. Messages from the service 120 are then decrypted and verified in the hub security module 612 before being re-encrypted for transmission to the device 101.
在一个实施方案中,为了防止危害中心安全模块612,可以在安装时在装置101和服务120之间协商一次性(永久)安装密钥。在向装置101发送消息时,服务120可以首先利用该装置安装密钥加密/MAC,然后利用中心的会话密钥加密/MAC。然后,中心110将验证并提取加密的装置二进制大对象并将其发送到装置。In one embodiment, to prevent compromise of the hub security module 612, a one-time (permanent) installation key can be negotiated between the device 101 and the service 120 at installation time. When sending a message to the device 101, the service 120 can first encrypt/MAC it with the device installation key, and then encrypt/MAC it with 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 present invention, a counting mechanism is implemented to prevent replay attacks. For example, a continuously increasing counter value can be assigned to each successive communication from device 101 to device 110 (or vice versa). Both the center 110 and the device 101 will track this value and verify whether the value is correct in each successive communication between the devices. The same technology can be implemented between the center 110 and the service 120. Using a counter in this way will make it more difficult to spoof the communication between each device (because the counter value will be incorrect). However, even if this is not the case, the shared installation key between the service and the device will prevent a network (center)-wide attack on all devices.
在一个实施方案中,当使用公钥/私钥加密时,IoT中心110使用其私钥来解密IoT中心分组,并生成加密的IoT装置分组,将其传输给相关联的IoT装置101。IoT装置101然后使用其私钥来解密IoT装置分组,以生成源自IoT服务120的命令/数据。然后它可以处理该数据和/或执行该命令。通过使用对称加密,每个装置将利用共享对称密钥进行加密和解密。在任一种情况下,每个传输装置还可以使用其私钥对消息进行签名,使得接收装置可以验证其真实性。In one embodiment, when public/private key encryption is used, the IoT hub 110 uses its private key to decrypt the IoT hub packet and generate an encrypted IoT device packet, which is transmitted to the associated IoT device 101. The IoT device 101 then uses its private key to decrypt the IoT device packet to generate the command/data originating from the IoT service 120. It can then process the data and/or execute the command. By using symmetric encryption, each device will encrypt and decrypt using a shared symmetric key. In either case, each transmitting device can also sign the message using its private key so that the receiving device can verify its authenticity.
可以使用不同组的密钥来加密从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 can be used to encrypt communications from the IoT device 101 to the IoT hub 110 and the IoT service 120. For example, in one embodiment, using a public/private key arrangement, the security logic 602 on the IoT device 101 encrypts data packets sent to the IoT hub 110 using the public key of the IoT hub 110. The security logic 612 on the IoT hub 110 can then decrypt the data packets using the private key of the IoT hub. Similarly, the security logic 602 on the IoT device 101 and/or the security logic 612 on the IoT hub 110 can encrypt data packets sent to the IoT service 120 using the public key of the IoT service 120 (which can then be decrypted by the security logic 613 on the IoT service 120 using the private key of the service). By using symmetric keys, the device 101 and the hub 110 can share a symmetric key, while the hub and the service 120 can share different symmetric keys.
虽然上面在描述中阐述了某些特定细节,但是应当注意,本发明的基本原理可以使用各种不同的加密技术来实现。例如,虽然上面讨论的一些实施方案使用非对称公钥/私钥对,但是替代实施方案可以使用在各种IoT装置101至102、IoT中心110和IoT服务120之间安全交换的对称密钥。此外,在一些实施方案中,数据/命令本身不被加密,但是使用密钥来生成数据/命令(或其他数据结构)上的签名。接收者然后可以使用其密钥来验证该签名。While certain specific details have been set forth in the description above, it should be noted that the basic principles of the present invention can be implemented using a variety of different encryption techniques. For example, while some of the embodiments discussed above use asymmetric public/private key pairs, alternative embodiments may use symmetric keys securely exchanged between the various IoT devices 101 to 102, the IoT hub 110, and the IoT service 120. 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 can then use its key to verify the signature.
如图7所示,在一个实施方案中,使用可编程订户身份模块(SIM)701实现每个IoT装置101上的安全密钥存储。在该实施方案中,IoT装置101最初可以使用安置在IoT装置101上的SIM接口700内的未编程SIM卡701提供给最终用户。为了使用一组一个或多个加密密钥对SIM卡进行编程,用户将可编程SIM卡701从SIM接口500中取出并将其插入IoT中心110上的SIM编程接口702中。然后IoT中心上的编程逻辑件725对SIM卡701进行安全地编程,以便使用IoT中心110和IoT服务120注册/配对IoT装置101。在一个实施方案中,公钥/私钥对可以由编程逻辑件725随机生成,并且该密钥对中的公钥然后可以存储在IoT中心的安全存储装置411中,而私钥可以存储在可编程SIM 701中。此外,编程逻辑件525可以将IoT中心110、IoT服务120和/或任何其他IoT装置101的公钥存储在SIM卡601上(以便由IoT装置101上的安全性逻辑件1302使用以加密传出数据)。一旦SIM 701被编程,新的IoT装置101可以通过IoT服务120使用SIM作为安全标识符来配置(例如,使用现有技术注册使用SIM的装置)。在预置之后,IoT中心110和IoT服务120将安全地存储IoT装置的公钥的副本,以便在加密与IoT装置101的通信时使用。As shown in Figure 7, in one embodiment, secure key storage on each IoT device 101 is implemented using a programmable subscriber identity module (SIM) 701. In this embodiment, the IoT device 101 can initially be provided to the end user using an unprogrammed SIM card 701 positioned within the SIM interface 700 on the IoT device 101. To program the SIM card with a set of one or more cryptographic keys, the user removes 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 with the IoT hub 110 and the IoT service 120. In one embodiment, a public/private key pair can be randomly generated by the programming logic 725, and the public key of the key pair can then be stored in the IoT hub's secure storage 411, while the private key can be stored in the programmable SIM 701. In addition, the programming logic 525 can store the public keys of the IoT hub 110, IoT service 120, and/or any other IoT device 101 on the SIM card 601 (for use by the security logic 1302 on the IoT device 101 to encrypt outgoing data). Once the SIM 701 is programmed, a new IoT device 101 can be configured by the IoT service 120 using the SIM as a security identifier (e.g., using existing techniques to register devices using the SIM). After provisioning, the IoT hub 110 and IoT service 120 will securely store a copy of the IoT device's public key for use when encrypting communications with the IoT device 101.
上文结合图7所描述的技术在向最终用户提供新的IoT装置时提供了巨大的灵活性。不需要用户在销售/购买时直接向特定服务提供商注册每张SIM(如当前完成的那样),SIM可以由最终用户通过IoT中心110直接编程,编程结果可以被安全地传送到IoT服务120。因此,新的IoT装置101可以由在线或本地零售商出售给最终用户,并且随后可以安全地预置有IoT服务120。The technology described above in conjunction with FIG. 7 provides tremendous flexibility when providing new IoT devices to end users. Rather than requiring users to register each SIM card directly with a specific service provider at the time of sale/purchase (as is currently done), the SIM card can be programmed directly by the end user through the IoT hub 110, and the programming results can be securely transmitted to the IoT service 120. Thus, a new IoT device 101 can be sold to an end user by an online or local retailer and then securely pre-configured with the IoT service 120.
虽然注册和加密技术在SIM(订户身份模块)的特定上下文内进行了描述,但本发明的基本原理并不限于“SIM”装置。相反,本发明的基本原理可以使用具有用于存储一组加密密钥的安全存储装置的任何类型的装置来实现。此外,虽然上述实施方案包括可移除的SIM装置,但是在一个实施方案中,SIM装置不可移除,而IoT装置本身可以被插入IoT中心110的编程接口702内。While the registration and encryption techniques are described in the specific context of a SIM (Subscriber Identity Module), the underlying principles of the present invention are not limited to "SIM" devices. Rather, the underlying principles of the present invention can be implemented using any type of device that has a secure storage device for storing a set of encryption keys. Furthermore, while the above embodiments include a removable SIM device, in one embodiment, the SIM device is not removable, and the IoT device itself can be plugged 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) prior to distribution to an end user, the SIM is pre-programmed into the IoT device 101. In this embodiment, when the user sets up the IoT device 101, encryption keys can be securely exchanged between the IoT hub 110/IoT service 120 and the new IoT device 101 using the various techniques described herein.
例如,如图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配备有条形码读取器206,用于读取条形码并将所得数据提供给IoT中心110上的安全逻辑件1012和/或IoT服务120上的安全逻辑件1013。IoT中心110上的安全逻辑件1012然后可以将IoT装置的公钥存储在其安全密钥存储装置1011内,并且IoT服务120上的安全逻辑件1013可以将公钥存储在其安全存储装置1021内(用于后续加密通信)。For example, as shown in FIG8A , each IoT device 101 or SIM 401 can be encapsulated 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 public key for the IoT device 101 or SIM 1001. Alternatively, the barcode or QR code 801 can be used by the IoT hub 110 and/or IoT service 120 to identify or generate a public key (e.g., as a pointer to a public key already stored in secure memory). The barcode or QR code 601 can be printed on a separate card (as shown in FIG8A ) or printed directly on the IoT device itself. Regardless of where the barcode is printed, in one embodiment, the IoT hub 110 is equipped with a barcode reader 206 for reading the barcode and providing the resulting data to the secure logic 1012 on the IoT hub 110 and/or the secure logic 1013 on the IoT service 120. The secure logic 1012 on the IoT hub 110 may then store the IoT device's public key in its secure key storage 1011 , and the secure logic 1013 on the IoT service 120 may store the public key in its secure storage 1021 (for subsequent encrypted communications).
在一个实施方案中,条形码或QR码801中所包含的数据也可以通过安装的IoT应用程序或由IoT服务提供商设计的基于浏览器的小应用程序被用户装置135(例如,诸如iPhone或Android装置)捕获。一旦被捕获,条形码数据可以通过安全连接(例如,诸如安全套接字层(SSL)连接)被安全地传送到IoT服务120。条形码数据还可以通过安全本地连接(例如,通过本地WiFi或蓝牙LE连接)从客户端装置135提供至IoT中心110。In one embodiment, the data contained in the barcode or QR code 801 can also be captured by a user device 135 (e.g., such as an iPhone or Android device) through an installed IoT application or a browser-based applet designed by an IoT service provider. Once captured, the barcode data can be securely transmitted to the IoT service 120 via a secure connection (e.g., such as a Secure Sockets Layer (SSL) connection). The barcode data can also be provided from the client device 135 to the IoT hub 110 via a secure local connection (e.g., via a local WiFi or Bluetooth LE connection).
可以使用硬件、软件、固件或其任意组合来实现IoT装置101上的安全逻辑件1002和IoT中心110上的安全逻辑件1012。例如,在一个实施方案中,安全逻辑件1002,1012在用于在IoT装置101和IoT中心110之间建立本地通信信道130的芯片内实现(例如,如果本地信道130是蓝牙LE,则为蓝牙LE芯片)。不管安全逻辑件1002,1012的具体位置如何,在一个实施方案中,安全逻辑件1002,1012被设计为建立用于执行某些类型的程序代码的安全执行环境。这可以通过例如使用(在某些ARM处理器上可用的)TrustZone技术和/或(由英特尔(Intel)设计的)可信执行技术来实现。当然,本发明的基本原理不限于任何特定类型的安全执行技术。The security logic 1002 on the IoT device 101 and the security logic 1012 on the IoT hub 110 can be implemented using hardware, software, firmware, or any combination thereof. For example, in one embodiment, the security logic 1002, 1012 is implemented within a chip used to establish a local communication channel 130 between the IoT device 101 and the IoT hub 110 (e.g., a Bluetooth LE chip if the local channel 130 is Bluetooth LE). 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 for executing certain types of program code. This can be achieved, for example, using TrustZone technology (available on some ARM processors) and/or trusted execution technology (designed by Intel). Of course, the underlying principles of the present invention are not limited to any particular type of secure execution technology.
在一个实施方案中,条形码或QR码701可用于将每个IoT装置101与IoT中心110配对。例如,可以将嵌入在条形码或QR码701内的配对码提供给IoT中心110,以将IoT中心与对应的IoT装置配对,而不是使用当前用于配对蓝牙LE装置的标准无线配对方法。In one embodiment, the barcode or QR code 701 can be used to pair each IoT device 101 with the IoT hub 110. For example, the pairing code embedded within the barcode or QR code 701 can be provided to the IoT hub 110 to pair the IoT hub with the corresponding IoT device, rather than using the standard wireless pairing method currently used to pair Bluetooth LE devices.
图8B示出了一个实施方案,其中IoT中心110上的条形码读取器206捕获与IoT装置101相关联的条形码/QR码801。如上所述,条形码/QR码801可以直接打印在IoT装置101上,也可以打印在与IoT装置101一起提供的单独的卡上。在任一情况下,条形码读取器206从条形码/QR码801读取配对码,并将该配对码提供给本地通信模块880。在一个实施方案中,本地通信模块880是蓝牙LE芯片和相关联的软件,但本发明的基本原理不限于任何特定的协议标准。一旦接收到配对码,它就被存储在包含配对数据885的安全存储装置中,并且IoT装置101和IoT中心110将自动配对。每当IoT中心以这种方式与新的IoT装置配对时,该配对的配对数据被存储在安全存储装置685内。在一个实施方案中,一旦IoT中心110的本地通信模块880接收到配对码,则它可以使用该代码作为密钥来加密与IoT装置101在本地无线信道上的通信。Figure 8B illustrates an embodiment in which the barcode reader 206 on the IoT hub 110 captures a barcode/QR code 801 associated with the IoT device 101. As described above, the barcode/QR code 801 can be printed directly on the IoT device 101 or printed on a separate card provided with the IoT device 101. In either case, the barcode reader 206 reads a pairing code from the barcode/QR code 801 and provides it to the local communication module 880. In one embodiment, the local communication module 880 is a Bluetooth LE chip and associated software, but the underlying principles of the present invention are not limited to any particular protocol standard. Once the pairing code is received, it is stored in a secure storage device containing pairing data 885, and the IoT device 101 and IoT hub 110 are automatically paired. Each time the IoT hub pairs with a new IoT device in this manner, the pairing data for that pairing is stored in the secure storage device 685. In one embodiment, once the local communication module 880 of the IoT hub 110 receives the pairing code, it may use the code as a key to encrypt communications 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 a pre-programmed pairing code identified in the barcode/QR code 801. The pairing data 895 may also include pairing data required to establish a secure local communication channel (e.g., additional keys for encrypting communications with the IoT hub 110) received from the local communication module 880 on the IoT hub 110.
因此,条形码/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 manner than current wireless pairing protocols because the pairing code is not transmitted wirelessly. Furthermore, in one embodiment, the same barcode/QR code 801 used for pairing can be used to identify encryption keys to establish secure connections from the IoT device 101 to the IoT hub 110 and from the IoT hub 110 to the IoT service 120.
图9示出了根据本发明的一个实施方案的用于对SIM卡进行编程的方法。该方法可以在上述系统架构内实现,但不限于任何特定的系统架构。Figure 9 shows a method for programming a SIM card according to an embodiment of the present invention. The method can be implemented within the above system architecture, but is not limited to any specific system architecture.
在901处,用户接收带有空白SIM卡的新的IoT装置,并且在802处,用户将空白SIM卡插入IoT中心中。在903处,用户使用一组一个或多个加密密钥对空白SIM卡进行编程。例如,如上所述,在一个实施方案中,IoT中心可以随机生成公钥/私钥对,并且将私钥存储在SIM卡上,以及将公钥存储在其本地安全存储装置中。此外,在904处,至少公钥被传输到IoT服务,使得它可用于识别IoT装置并与IoT装置建立加密的通信。如上所述,在一个实施方案中,除了“SIM”卡之外的可编程装置可用于执行与图9所示方法中的SIM卡相同的功能。At 901, a user receives a new IoT device with a blank SIM card, and at 802, the user inserts the blank SIM card into the IoT hub. At 903, the user programs the blank SIM card with a set of one or more encryption keys. For example, as described above, in one embodiment, the IoT hub can randomly generate a public/private key pair and store the private key on the SIM card and the public key in its local secure storage. In addition, at 904, at least the public key is transmitted to the IoT service so that it can be used to identify the IoT device and establish encrypted communication with the IoT device. As described above, in one embodiment, a programmable device other than a "SIM" card can be used to perform the same functions as the SIM card in the method shown in Figure 9.
图10示出了将新的IoT装置集成到网络中的方法。该方法可以在上述系统架构内实现,但不限于任何特定的系统架构。Figure 10 shows a method for integrating a new IoT device into a network. This method can be implemented within the above system architecture, but is not limited to any particular system architecture.
在1001处,用户接收已预先分配的加密密钥的新的IoT装置。在1002处,密钥被安全地提供给IoT中心。如上所述,在一个实施方案中,这涉及读取与IoT装置相关联的条形码,以识别分配给该装置的公钥/私钥对的公钥。条形码可以由IoT中心直接读取,或者经由移动装置经由应用程序或浏览器来捕获。在替代实施方案中,可以在IoT装置和IoT中心之间建立安全通信信道,诸如,蓝牙LE信道、近场通信(NFC)信道或安全WiFi信道来交换密钥。无论密钥如何传输,一旦被接收,它将被存储在IoT中心装置的安全密钥库中。如上所述,可以在IoT中心上使用各种安全执行技术来存储和保护密钥,诸如安全区(SecureEnclaves)、可信执行技术(TXT)和/或Trustzone。此外,在1003处,密钥被安全地传输到IoT服务,该IoT服务将密钥存储在其自己的安全密钥库中。然后可以使用该密钥加密与IoT装置的通信。再次,交换可以使用证书/签名密钥来实现。在中心110内,特别重要的是防止修改/添加/删除所存储的密钥。At 1001, a user receives a new IoT device with a pre-assigned encryption key. At 1002, the key is securely provided to the IoT hub. As described above, in one embodiment, this involves reading a barcode associated with the IoT device to identify the public key of the public/private key pair assigned to the device. The barcode can be read directly by the IoT hub or captured via a mobile device through an app or browser. In alternative embodiments, a secure communication channel, such as a Bluetooth LE channel, a Near Field Communication (NFC) channel, or a secure WiFi channel, can be established between the IoT device and the IoT hub to exchange the key. Regardless of how the key is transmitted, once received, it will be stored in the IoT hub device's secure keystore. As described above, various secure execution technologies can be used on the IoT hub to store and protect the key, such as Secure Enclaves, Trusted Execution Technology (TXT), and/or Trustzone. Furthermore, at 1003, the key is securely transmitted to the IoT service, which stores the key in its own secure keystore. This key can then be used to encrypt communications with the IoT device. Again, this exchange can be achieved using certificates/signature keys. Within the center 110, it is particularly important to prevent modification/addition/deletion of stored keys.
图11示出了使用公钥/私钥将命令/数据安全地传送到IoT装置的方法。该方法可以在上述系统架构内实现,但不限于任何特定的系统架构。Figure 11 shows a method for securely transmitting commands/data to IoT devices using public/private keys. This method can be implemented within the above system architecture, but is not limited to any specific system architecture.
在1101处,IoT服务使用IoT装置公钥加密数据/命令,以创建IoT装置分组。然后,它使用IoT中心的公钥来加密IoT装置分组,以创建IoT中心分组(例如,围绕IoT装置分组创建IoT中心包装器)。在1102处,IoT服务将IoT中心分组传输到IoT中心。在1103处,IoT中心使用IoT中心的私钥解密IoT中心分组,以生成IoT装置分组。然后,在1104处,其将IoT装置分组传输到IoT装置,该IoT装置在1105处使用IoT装置私钥解密IoT装置分组以生成数据/命令。在1106处,IoT装置处理数据/命令。At 1101, the IoT service encrypts the data/command using the IoT device public key to create an IoT device group. It then encrypts the IoT device group using the IoT hub's public key to create an IoT hub group (e.g., creating an IoT hub wrapper around the IoT device group). At 1102, the IoT service transmits the IoT hub group to the IoT hub. At 1103, the IoT hub decrypts the IoT hub group using the IoT hub's private key to generate an IoT device group. Then, at 1104, it transmits the IoT device group to the IoT device, which decrypts the IoT device group using the IoT device private key at 1105 to generate the data/command. At 1106, the IoT device processes the data/command.
在使用对称密钥的实施方案中,可以在每个装置之间(例如,每个装置和中心以及中心和服务之间)协商对称密钥交换。一旦密钥交换完成,每个传输装置在向接收装置传输数据之前,使用对称密钥对每个传输进行加密和/或签名。In an embodiment using symmetric keys, a symmetric key exchange can be negotiated between each device (e.g., between each device and the hub, and between the hub and the service). Once the key exchange is complete, each transmitting device encrypts and/or signs each transmission using the symmetric key before transmitting the data to the receiving device.
自动无线网络认证的实施方案Implementation Plan for Automatic Wireless Network Authentication
为了将IoT中心连接到诸如WiFi网络的本地无线网络,用户必须提供网络凭据,诸如网络安全密钥或密码。还可需要其他验证层,诸如用户ID/密码组合。在一个实施方案中,一旦IoT中心使用用户提供的网络凭据成功地连接到本地无线网络,它就会将网络凭据安全地传输到安全存储位置,诸如IoT服务120。当用户随后接收到新的IoT装置时,IoT装置可被配置为向IoT中心传输网络凭据请求。作为响应,IoT中心可将该请求转发到IoT服务120,IoT服务可使用例如IoT装置、用户和/或需要连接以识别相关网络凭据的接入点的身份在凭据数据库中执行查找。如果网络凭据可被识别,则将其传输回IoT装置,然后IoT装置使用该网络凭据无缝地连接到本地无线网络。In order to connect the IoT hub to a local wireless network, such as a WiFi network, the user must provide network credentials, such as a network security key or password. Other layers of authentication may also be required, such as a user ID/password combination. In one embodiment, once the IoT hub successfully connects to the local wireless network using the network credentials provided by the user, it securely transmits the network credentials to a secure storage location, such as the IoT service 120. When the user subsequently receives a new IoT device, the IoT device may be configured to transmit a network credential request to the IoT hub. In response, the IoT hub may forward the request to the IoT service 120, which may perform a lookup in a credential database using, for example, the identity of the IoT device, the user, and/or the access point to which the connection is required to identify the relevant network credentials. If the network credentials can be identified, they are transmitted 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连接的应用程序或浏览器提供凭据。FIG12 illustrates an exemplary system architecture in which a credential management module 1210 on an IoT hub 1202 implements the credential handling techniques described herein. As shown, a user can provide network credentials, such as a network security key or password, to the IoT hub 1202 via a user device 135 (which can be a mobile smartphone device, a wearable data processing device, a laptop computer, or a desktop computer). The user device 135 initially connects to the IoT hub 1202 via a wired connection or a short-range wireless connection such as BTLE, and the user provides the credentials via an application or browser configured to connect to the IoT hub 1202.
在一个实施方案中,网络凭据包括安全密钥,诸如Wi-Fi保护访问(WPA)或Wi-Fi保护访问II(WPA2)。在该实施方案中,网络凭据可以是用于WPA-Personal实现方式的预共享密钥(PSK)的形式,或者可以依赖于更高级的认证技术,诸如WPA-Enterprise使用的验证技术(其可以利用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 (WPA2). In this embodiment, the network credentials may be in the form of a pre-shared key (PSK) for a WPA-Personal implementation, or may rely on more advanced authentication techniques, such as those used by WPA-Enterprise (which may utilize a RADIUS authentication server and various forms of the Extensible Authentication Protocol (EAP)).
不管所使用的具体验证/加密技术如何,一旦用户提供了必要的网络凭据,IoT中心1202就使用凭据来建立与WiFi接入点/路由器1200的安全无线连接,然后WiFi接入点/路由器通过互联网1222提供与云服务1220的连接。在一个实施方案中,IoT中心1210上的凭据管理模块1210与云服务1220上的凭据管理模块1215(例如,其可以是上述的IoT服务120或外部网站130)建立连接。Regardless of the specific authentication/encryption technology used, once the user provides the necessary network credentials, the IoT hub 1202 uses the credentials to establish a secure wireless connection with the WiFi access point/router 1200, which then provides a connection to the cloud service 1220 via the Internet 1222. In one embodiment, the credential management module 1210 on the IoT hub 1210 establishes a connection with the credential management module 1215 on the cloud service 1220 (e.g., which can be the IoT service 120 described above or the external website 130).
在一个实施方案中,可采用上述基于密钥的技术中的一种或多种确保在IoT中心1202上的凭据管理模块1210与云服务1220上的凭据管理模块1215之间的连接是安全的(例如,使用对称或非对称密钥加密所有网络通信量)。一旦建立安全连接,则IoT中心1202上的凭据管理模块1210将网络凭据的副本传输到云服务上的凭据管理模块1215,该凭据管理模块将凭据的副本存储在安全凭据数据库1230中。凭据数据库1230可包括唯一地识别IoT中心1202的数据、唯一地识别与IoT中心1202相关联的用户账户的数据和/或唯一地识别WiFi接入点/路由器1200的数据(以确保网络凭据与正确的用户和WiFi接入点/路由器相关联)。In one embodiment, one or more of the key-based techniques described above can be employed to ensure that 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 secure (e.g., 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 transmits a copy of the network credentials to the credential management module 1215 on the cloud service, which stores the copy of the credentials in a secure credential database 1230. The credential database 1230 can include data that uniquely identifies the IoT hub 1202, data that uniquely identifies a user account associated with the IoT hub 1202, and/or data that uniquely identifies the WiFi access point/router 1200 (to ensure that the network credentials are 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 shown in FIG13 , after the network credentials are stored in the credentials database 1230 , when a user purchases a new IoT device 1300, the IoT device will enable its local wireless interface (e.g., BTLE) and search for any enabled devices within range (e.g., the IoT hub 1202 , other IoT devices, or the user's mobile device). In the specific embodiment shown in FIG13 , the IoT device 1300 has been detected and connected to the IoT hub 1202 . In one embodiment, once the connection is established, the network registration module 1310 transmits a network credential request to the credential management module 1210 on the IoT hub 1202 . The credential request may include data identifying the Wi-Fi access point/router 1200 to which the IoT device 1300 will connect (e.g., an SSID, MAC address, or other data uniquely identifying the Wi-Fi access point/router 1200 ) as well as data uniquely identifying the IoT device 1300 .
然后凭据管理模块1210将凭据管理请求安全地传输到云服务1220上的凭据管理模块1215,该云服务上的凭据管理模块使用唯一地识别用户、IoT装置1300和/或WiFi接入点/路由器1200的数据以在凭据数据库1230中执行查找。再次,可使用任何基于密钥的安全技术来确保IoT中心和云服务之间的连接是安全的。如果基于请求中提供的数据查找凭据,凭据管理模块1215将网络凭据安全地传输回IoT中心1202上的凭据管理模块1210,然后再将网络凭据提供给IoT装置1300的网络注册模块1310。随后,IoT装置1300使用网络凭据自动建立与WiFi接入点/路由器1200的安全连接。最终结果是用户不需要手动配置新的IoT装置1300以与WiFi接入点/路由器1200连接。相反,由于网络凭据已经与云服务1220上的用户账户相关联,因此其可被自动提供给IoT装置1300,IoT装置随后将无缝地连接到网络。The credential management module 1210 then securely transmits the credential management request to the credential management module 1215 on the cloud service 1220. The credential management module on the cloud service uses data uniquely identifying the user, the IoT device 1300, and/or the WiFi access point/router 1200 to perform a lookup in the credential database 1230. Again, any key-based security technique can be used to ensure the connection between the IoT hub and the cloud service is secure. If the credentials are found based on the data provided in the request, the credential management module 1215 securely transmits the network credentials back to the credential management module 1210 on the IoT hub 1202, which then provides the network credentials to the network registration module 1310 of the IoT device 1300. The IoT device 1300 then automatically establishes a secure connection with the WiFi access point/router 1200 using the network credentials. The end result is that the user does not need to manually configure a new IoT device 1300 to connect to the WiFi access point/router 1200. Instead, because the network credentials are already associated with the user's account on the cloud service 1220, they are automatically provided to the IoT device 1300, which then seamlessly connects to the network.
如上所述,虽然图13示出了通过IoT中心1202连接的IoT装置1300,但是如果IoT中心1202不在范围内,则IoT装置1300可以连接到另一个IoT装置。然后另一个IoT装置(其连接到IoT中心)可以将新的IoT装置联接到IoT中心1202上的凭据管理模块1210。类似地,如果IoT中心和另一个IoT都不可用(例如,超出范围),则IoT装置1300可被配置为与用户的移动装置135连接,该移动装置可包括用于与云服务上的凭据管理模块1215连接的浏览器/应用程序(直接连接或通过IoT中心1202连接)。As described above, although FIG13 shows the IoT device 1300 connected via the IoT hub 1202, if the IoT hub 1202 is not in range, the IoT device 1300 can connect to another IoT device. The other IoT device (which is connected to the IoT hub) can then connect the new IoT device to the credential management module 1210 on the IoT hub 1202. Similarly, if neither the IoT hub nor the other IoT is available (e.g., out of range), the IoT device 1300 can be configured to connect to the user's mobile device 135, which may include 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装置,接着搜索用户移动装置。然后,它将连接到上述装置中的第一个以提供连接。上述连接可以使用任何类型的本地通信协议形成,所述本地通信协议包括但不限于BTLE。In one embodiment, the network registration module 1310 on the IoT hub 1300 is configured to first search for the IoT hub 1202, then search for another IoT device, and then search for the user's mobile device. It will then connect to the first of these devices to provide a connection. This connection can be established using any type of local communication protocol, including but not limited to BTLE.
在一个实施方案中,网络凭据可以本地存储在IoT中心1202可访问或包含在IoT中心1202内的安全存储装置中(作为在云服务1220上远程存储网络凭据的补充或替代)。因此,在该实施方案中,可提供网络凭据,而不需要对云服务1220进行远程查询。In one embodiment, the network credentials can be stored locally in a secure storage device accessible to or contained within the IoT hub 1202 (in addition to or instead of storing the network credentials remotely on the cloud service 1220). Therefore, in this embodiment, the network credentials can be provided without requiring a remote query to the cloud service 1220.
术语“云服务”和“IoT云服务”可以指互联网上能够存储和提供如本文所述的IoT装置的网络凭据的任何服务(例如,上文引用的IoT服务和外部服务)。在一个实施方案中,云服务1220由向最终用户提供IoT中心和IoT装置的相同实体拥有和操作。在另一个实施方案中,至少一些IoT装置可以由与云服务协调(例如,经由商定的业务安排)的OEM设计和销售,以确保可使用云服务1220实现本文所描述的技术。The terms "cloud service" and "IoT cloud service" can refer to any service on the Internet that can store and provide network credentials for IoT devices as described herein (e.g., the IoT services and external services referenced above). In one embodiment, cloud service 1220 is owned and operated by the same entity that provides the IoT hub and IoT devices to end users. In another embodiment, at least some IoT devices can be designed and sold by OEMs that coordinate with the cloud service (e.g., through an agreed-upon business arrangement) to ensure that the techniques described herein can be implemented using cloud service 1220.
图14示出了根据本发明的一个实施方案的用于收集和存储网络凭据的方法。该方法可以在上述系统架构的环境内实现,但不限于任何特定的架构。Figure 14 shows a method for collecting and storing network credentials according to one embodiment of the present invention. The method can be implemented within the context of the above system architecture, 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 credentials to the IoT hub. The credentials can be provided, for example, through a network setup wizard executed within a browser or application installed on the user's data processing device, which can connect to the IoT hub via a wired or local wireless connection (e.g., BTLE). Once the network credentials are provided, at 1402, the IoT hub establishes a secure connection with the IoT cloud service over the Internet and, at 1403, securely transmits the network credentials to the IoT cloud service. At 1404, the IoT cloud service stores the network credentials in its database, associating the credentials with the user's account on the IoT cloud service and/or with the specific WiFi access point/router at which the network credentials are being used.
图15示出了根据本发明的一个实施方案用于使用存储的网络凭据无缝更新新的IoT装置的方法。该方法可以在上述系统架构的环境内实现,但不限于任何特定的架构。Figure 15 shows a method for seamlessly updating new IoT devices using stored network credentials according to one embodiment of the present invention. The method can be implemented within the context of the above system architecture, but is not limited to any particular architecture.
在1501处,用户接收新的IoT装置。IoT装置可能已从IoT云服务和/或从与IoT云服务有关的OEM订购。在任一情况下,新的IoT装置与接收到新的IoT装置的用户的账户相关联。At 1501, a user receives a new IoT device. The IoT device may have been ordered from an IoT cloud service and/or from an OEM associated with the IoT cloud service. In either case, the new IoT device is associated with the account of the user who received the new IoT device.
在1502处,当新的IoT装置开启时,它最初搜索本地IoT中心。如上所述,可使用诸如BTLE的本地无线协议执行搜索。如果无法找到IoT中心(例如,因为它超出了范围),则可以搜索另一个IoT装置和/或最终用户的移动装置(其上安装有应用程序或浏览器以使得能够连接到IoT云服务)。At 1502, when a new IoT device is turned on, it initially searches for a local IoT hub. As described above, the search can be performed using a local wireless protocol such as BTLE. If the IoT hub cannot be found (e.g., because it is out of range), another IoT device and/or the end user's mobile device (on which an application or browser is installed to enable connection to the IoT cloud service) can be searched.
在1503处,确定新的IoT装置是否已经检测到IoT中心、另一个IoT装置或用户的移动装置的存在。如果检测到IoT中心,那么在1504处,新的IoT装置连接到IoT中心,并且在1505处,IoT中心为新的IoT装置从云服务检索网络凭据,并将该凭据提供给新的IoT装置。在1510处,新的IoT装置使用网络凭据向无线网络注册。At 1503, it is determined whether the new IoT device has detected the presence of an IoT hub, another IoT device, or the user's mobile device. 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 for the new IoT device from the cloud service and provides the credentials to the new IoT device. At 1510, the new IoT device registers with the wireless network using the network credentials.
如果新的IoT装置检测到另一个IoT装置,则在1506处,它连接到所述另一个IoT装置,并且在1507处,IoT装置从IoT云服务检索网络凭据并将该凭据提供给新的IoT装置。在一个实施方案中,这可以通过IoT中心来实现(即,如果另一个装置连接到IoT中心)。再次,在1510处,新的IoT装置使用网络凭据向无线网络注册。If the new IoT device detects another IoT device, it connects to the other IoT device at 1506, and at 1507, the IoT device retrieves the network credentials from the IoT cloud service and provides the credentials to the new IoT device. In one embodiment, this can be achieved through the IoT hub (i.e., if the 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处,它连接到移动装置。在一个实施方案中,连接由诸如用户移动装置上的应用程序诸如连接向导或浏览器可执行代码来管理。在1509处,IoT装置从IoT云服务检索网络凭据,并将该凭据提供给新的IoT装置。在一个实施方案中,这可以通过IoT中心来实现(即,如果另一个装置连接到IoT中心)。在1510处,新的IoT装置使用网络凭据向无线网络注册。If the new IoT device detects the user's mobile device, it connects to the mobile device at 1508. In one embodiment, the connection is managed by an application on the user's mobile device, such as a connection wizard or browser executable code. At 1509, the IoT device retrieves the network credentials from the IoT cloud service and provides them to the new IoT device. In one embodiment, this can be accomplished through an IoT hub (i.e., if another device is connected to the IoT hub). At 1510, the new IoT device registers with the wireless network using the network credentials.
如上所述,在一个实施方案中,在新的移动装置上执行的网络注册模块1310利用连接优先级方案来确定开启时应当搜索的装置的顺序。在一个实施方案中,最初将搜索IoT中心,如果无法找到,将搜索其他IoT装置。如果没有可用装置,将尝试连接到用户的移动装置。作为另外一种选择,新的IoT装置可以仅连接到其位于的第一个装置和/或可以连接到其发现的最高信号强度(即,RSSI值)的装置。各种其他连接技术可以被编程到网络注册模块1310中,同时仍然符合本发明的基本原理。As described above, in one embodiment, the network registration module 1310 executed on the new mobile device utilizes a connection priority scheme to determine the order in which devices should be searched when turned on. In one embodiment, the IoT hub will be searched initially, and if one cannot be found, other IoT devices will be searched. If no device is available, an attempt will be made to connect to the user's mobile device. Alternatively, the new IoT device may only connect to the first device it is located at and/or may connect to the device with the highest signal strength (i.e., RSSI value) it finds. Various other connection techniques may be programmed into the network registration module 1310 while still complying with the basic principles of the invention.
本发明的实施方案可包括上文所述的各种步骤。这些步骤可体现为可用于致使通用处理器或专用处理器执行这些步骤的机器可执行指令。或者,这些步骤可由包含用于执行这些步骤的硬连线逻辑的特定硬件部件执行,或由编程的计算机组件和定制硬件部件的任何组合执行。Embodiments of the present invention may include the various steps described above. These steps may be embodied as machine-executable instructions that can be used to cause a general-purpose processor or a special-purpose processor to perform these steps. Alternatively, these steps may be performed by specific hardware components that contain hard-wired logic for performing these steps, or by any combination of programmed computer components and custom hardware components.
如本文所述,指令可指代特定硬件配置,诸如专用集成电路(ASIC),其被配置为执行某些特定操作或具有体现在非暂态计算机可读介质中的存储器中所存储的预先确定的功能或软件指令。因此,可以使用在一个或多个电子装置(例如,终端站、网络元件等)上存储和执行的代码和数据来实现附图中所示的技术。此类电子装置使用计算机机器可读介质存储和传送(在内部和/或与网络上的其他电子装置)代码和数据,计算机机器可读介质诸如非暂态计算机机器可读存储介质(例如,磁盘;光盘;随机存取存储器;只读存储器;闪存存储装置;相变存储器)和暂态计算机机器可读通信介质(例如,电学、光学、声学或其他形式的传播信号-诸如载波、红外信号、数字信号等)。此外,这类电子装置通常包括联接到一个或多个其他部件的一个或多个处理器的集合,所述其他部件诸如一个或多个存储装置(非暂态机器可读存储介质)、用户输入/输出装置(例如,键盘、触摸屏和/或显示器)以及网络连接。所述处理器集合和其他部件的联接通常通过一个或多个总线和桥接器(也称为总线控制器)进行。存储装置和承载网络通信量的信号分别表示一个或多个机器可读存储介质和机器可读通信介质。因此,给定电子装置的存储装置通常将用于执行的代码和/或数据存储在该电子装置的一个或多个处理器的集合上。当然,可以使用软件、固件和/或硬件的不同组合来实现本发明的实施方案的一个或多个部分。As described herein, instructions may refer to a specific hardware configuration, such as an application-specific integrated circuit (ASIC), that is configured to perform certain specific operations or have predetermined functions or software instructions stored in a memory embodied in a non-transitory computer-readable medium. Thus, the techniques shown in the accompanying figures can be implemented using code and data stored and executed on one or more electronic devices (e.g., an end station, a network element, etc.). Such electronic devices use computer-readable media to store and transmit (internally and/or with other electronic devices on a network) code and data, such as non-transitory computer-readable storage media (e.g., magnetic disks; optical disks; random access memory; read-only memory; flash memory storage devices; phase-change memory) and transient computer-readable communication media (e.g., electrical, optical, acoustic, or other forms of propagated signals - such as carrier waves, infrared signals, digital signals, etc.). In addition, such electronic devices typically include a collection of one or more processors connected to one or more other components, such as one or more storage devices (non-transitory machine-readable storage media), user input/output devices (e.g., keyboards, touch screens, and/or displays), and network connections. The connection between the processor set and other components is typically carried out through one or more buses and bridges (also referred to as bus controllers). The storage device and the signal carrying network traffic represent one or more machine-readable storage media and machine-readable communication media, respectively. Therefore, the storage device of a given electronic device typically stores the code and/or data for execution on the set of one or more processors of the electronic device. Of course, different combinations of software, firmware and/or hardware can be used to implement one or more parts of the embodiments of the present invention.
在整个具体实施方式中,出于解释的目的,陈述了许多特定细节以便透彻理解本发明。然而,本领域的技术人员将容易明白,可在没有这些特定细节中的一些的情况下实践本发明。在某些情况下,为免模糊本发明的主题,未详细描述众所周知的结构和功能。因此,应依据所附权利要求书确定本发明的范围和实质。Throughout this detailed description, for purposes of explanation, numerous specific details are set forth to provide a thorough understanding of the present invention. However, those skilled in the art will readily appreciate that the present invention can be practiced without some of these specific details. In some instances, well-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 accordance with the appended claims.
Claims (31)
Applications Claiming Priority (3)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US14/675,715 | 2015-03-31 | ||
| US14/675,715 US9838390B2 (en) | 2015-03-31 | 2015-03-31 | System and method for automatic wireless network authentication |
| PCT/US2016/025083 WO2016161027A1 (en) | 2015-03-31 | 2016-03-30 | System and method for automatic wireless network authentication |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| HK1247744A1 HK1247744A1 (en) | 2018-09-28 |
| HK1247744B true HK1247744B (en) | 2022-01-07 |
Family
ID=
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US11683307B2 (en) | System and method for automatic wireless network authentication | |
| 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 | |
| US10841759B2 (en) | Securely providing a password using an internet of things (IoT) system | |
| KR102723973B1 (en) | Device and method for establishing a secure communication channel in an Internet of Things (IoT) system | |
| US9832173B2 (en) | System and method for securely connecting network devices | |
| US10779296B2 (en) | System and method for intelligent communication channel selection for an internet of things (IoT) device | |
| KR102520088B1 (en) | Internet of things platforms, apparatuses, and methods | |
| US20160180100A1 (en) | System and method for securely connecting network devices using optical labels | |
| CN107431876A (en) | Apparatus and method for middle device Data Collection | |
| US20180152420A1 (en) | System and method for securely connecting network devices | |
| WO2016196552A1 (en) | System and method for an internet of things (iot) moisture sensor | |
| HK1247744B (en) | System and method for automatic wireless network authentication | |
| HK1247766B (en) | Apparatus and method for intermediary device data collection |