CN108475317A - 用于保护物联网(IoT)装置预置的系统和方法 - Google Patents
用于保护物联网(IoT)装置预置的系统和方法 Download PDFInfo
- Publication number
- CN108475317A CN108475317A CN201680077259.3A CN201680077259A CN108475317A CN 108475317 A CN108475317 A CN 108475317A CN 201680077259 A CN201680077259 A CN 201680077259A CN 108475317 A CN108475317 A CN 108475317A
- Authority
- CN
- China
- Prior art keywords
- iot
- iot devices
- centers
- devices
- services
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 74
- 238000004891 communication Methods 0.000 claims abstract description 164
- 230000006854 communication Effects 0.000 claims abstract description 164
- 238000003860 storage Methods 0.000 claims abstract description 39
- 238000012546 transfer Methods 0.000 claims abstract description 11
- 230000005540 biological transmission Effects 0.000 claims description 34
- 230000004044 response Effects 0.000 claims description 31
- 238000012545 processing Methods 0.000 claims description 6
- 238000012544 monitoring process Methods 0.000 claims description 5
- 230000008569 process Effects 0.000 claims description 4
- 241000208340 Araliaceae Species 0.000 claims description 3
- 235000005035 Panax pseudoginseng ssp. pseudoginseng Nutrition 0.000 claims description 3
- 235000003140 Panax quinquefolius Nutrition 0.000 claims description 3
- 235000008434 ginseng Nutrition 0.000 claims description 3
- 230000001360 synchronised effect Effects 0.000 claims 2
- 238000011084 recovery Methods 0.000 claims 1
- 238000005516 engineering process Methods 0.000 description 49
- 230000015654 memory Effects 0.000 description 17
- 230000006870 function Effects 0.000 description 14
- 238000010411 cooking Methods 0.000 description 13
- 238000004378 air conditioning Methods 0.000 description 12
- 230000003139 buffering effect Effects 0.000 description 12
- 230000008859 change Effects 0.000 description 11
- 238000013461 design Methods 0.000 description 10
- 238000005286 illumination Methods 0.000 description 7
- 230000001413 cellular effect Effects 0.000 description 6
- 238000007726 management method Methods 0.000 description 6
- 238000001514 detection method Methods 0.000 description 5
- 235000013305 food Nutrition 0.000 description 5
- 230000033001 locomotion Effects 0.000 description 5
- 238000012795 verification Methods 0.000 description 5
- 238000005406 washing Methods 0.000 description 5
- 230000000712 assembly Effects 0.000 description 4
- 238000000429 assembly Methods 0.000 description 4
- 230000000875 corresponding effect Effects 0.000 description 4
- 230000005611 electricity Effects 0.000 description 4
- 238000009434 installation Methods 0.000 description 4
- 230000007246 mechanism Effects 0.000 description 4
- 239000000872 buffer Substances 0.000 description 3
- 230000001276 controlling effect Effects 0.000 description 3
- 230000007613 environmental effect Effects 0.000 description 3
- 239000000284 extract Substances 0.000 description 3
- 230000006855 networking Effects 0.000 description 3
- 230000002093 peripheral effect Effects 0.000 description 3
- 238000001228 spectrum Methods 0.000 description 3
- 230000002457 bidirectional effect Effects 0.000 description 2
- 125000004122 cyclic group Chemical group 0.000 description 2
- 238000001035 drying Methods 0.000 description 2
- 231100001261 hazardous Toxicity 0.000 description 2
- 238000004519 manufacturing process Methods 0.000 description 2
- 230000001052 transient effect Effects 0.000 description 2
- 241001269238 Data Species 0.000 description 1
- 244000283207 Indigofera tinctoria Species 0.000 description 1
- 241000012186 Litura Species 0.000 description 1
- 241001465382 Physalis alkekengi Species 0.000 description 1
- 239000002390 adhesive tape Substances 0.000 description 1
- 230000004888 barrier function Effects 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 230000033228 biological regulation Effects 0.000 description 1
- 230000010267 cellular communication Effects 0.000 description 1
- 238000012790 confirmation Methods 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 230000002596 correlated effect Effects 0.000 description 1
- 230000008878 coupling Effects 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 235000013399 edible fruits Nutrition 0.000 description 1
- 239000012634 fragment Substances 0.000 description 1
- 230000005764 inhibitory process Effects 0.000 description 1
- 230000005055 memory storage Effects 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 238000000465 moulding Methods 0.000 description 1
- 238000004806 packaging method and process Methods 0.000 description 1
- 230000032696 parturition Effects 0.000 description 1
- 230000000737 periodic effect Effects 0.000 description 1
- 238000002360 preparation method Methods 0.000 description 1
- 238000007639 printing Methods 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 230000000717 retained effect Effects 0.000 description 1
- 239000000779 smoke Substances 0.000 description 1
- 230000007704 transition Effects 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
- 230000001755 vocal effect Effects 0.000 description 1
- 239000002699 waste material Substances 0.000 description 1
- XLYOFNOQVPJJNP-UHFFFAOYSA-N water Substances O XLYOFNOQVPJJNP-UHFFFAOYSA-N 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/30—Authentication, i.e. establishing the identity or authorisation of security principals
- G06F21/44—Program or device authentication
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/30—Authentication, i.e. establishing the identity or authorisation of security principals
- G06F21/31—User authentication
- G06F21/42—User authentication using separate channels for security data
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/70—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
- G06F21/71—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
- G06F21/73—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information by creating or determining hardware identification, e.g. serial numbers
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/006—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols involving public key infrastructure [PKI] trust models
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0816—Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
- H04L9/0838—Key agreement, i.e. key establishment technique in which a shared key is derived by parties as a function of information contributed by, or associated with, each of these
- H04L9/0841—Key agreement, i.e. key establishment technique in which a shared key is derived by parties as a function of information contributed by, or associated with, each of these involving Diffie-Hellman or related key agreement protocols
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/14—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using a plurality of keys or algorithms
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3226—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using a predetermined code, e.g. password, passphrase or PIN
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W88/00—Devices specially adapted for wireless communication networks, e.g. terminals, base stations or access point devices
- H04W88/08—Access point devices
- H04W88/10—Access point devices adapted for operation in multiple networks, e.g. multi-mode access points
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2221/00—Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/21—Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/2117—User registration
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/80—Wireless
- H04L2209/805—Lightweight hardware, e.g. radio-frequency identification [RFID] or sensor
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Theoretical Computer Science (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Selective Calling Equipment (AREA)
- Information Transfer Between Computers (AREA)
- Computer And Data Communications (AREA)
- Telephonic Communication Services (AREA)
Abstract
本发明提供了一种使用关联ID代码预置IoT装置的系统和方法。例如,方法的一个实施方案包括:在新物联网(IoT)装置识别(ID)代码与关联ID代码之间生成关联;将所述关联存储在IoT服务的IoT装置数据库中;从所述新IoT装置检索所述关联ID代码;将所述关联ID代码传输到所述IoT服务,所述IoT服务使用所述关联ID代码在所述IoT装置数据库中执行查找以确定所述装置ID代码;以及预置所述IoT装置以使用所述装置ID代码与所述IoT服务通信。
Description
背景技术
技术领域
本发明整体涉及计算机系统领域。更具体地讲,本发明涉及用于保护物联网(IoT)装置预置的系统和方法。
相关领域说明
“物联网”是指互联网基础架构内可唯一识别的嵌入式装置的互连。最终,IoT预计将导致新的种类广泛的应用,在这些应用中,几乎任何类型的物理事物可以提供关于其本身或其周围环境的信息和/或可以通过互联网上的客户端装置受到远程控制。
由于与连接性、功率和标准化缺乏有关的一些问题,物联网的开发和采用一直比较缓慢。例如,IoT开发和采用所面临的一个障碍是,没有标准平台允许开发人员设计和提供新的IoT装置及服务。为了进入IoT市场,开发人员必须从头开始设计整个IoT平台,包括支持所需的IoT实现需要的网络协议和基础架构、硬件、软件和服务。因此,IoT装置的每一家提供商都使用专有技术来设计和连接IoT装置,这使得对最终用户而言,采用多种类型的IoT装置是一项繁重的工作。IoT采用所面临的另一个障碍是与IoT装置的连接和供电有关的困难。例如,连接诸如冰箱、车库门开关、环境传感器、家用安防传感器/控制器等的电器需要电源来为每个连接的IoT装置供电,并且这个电源通常定位不太方便。
存在的另一个问题是用于互连IoT装置的无线技术诸如Bluetooth LE(BTLE)通常是短程技术。所以,如果用于实施IoT的数据收集中心处于IoT装置的范围之外,则IoT装置将无法将数据传输到IoT中心(反之亦然)。因此,需要允许IoT装置将数据提供到范围之外的IoT中心(或其他IoT装置)的技术。
另外,依赖于无线通信协议诸如BTLE的当前IoT实施不提供足够的安全措施。因此,需要另外的技术来改善IoT实施中的安全性。
附图说明
可结合下列附图从以下具体实施方式更好地理解本发明,其中:
图1A至图1B示出了IoT系统架构的不同实施方案;
图2示出了根据本发明的一个实施方案的IoT装置;
图3示出了根据本发明的一个实施方案的IoT中心;
图4A至图4B示出了本发明用于控制和收集来自IoT装置的数据并且生成通知的实施方案;
图5示出了本发明用于收集来自IoT装置的数据并且生成来自IoT中心和/或IoT服务的通知的实施方案;
图6示出了中间移动装置收集来自固定IoT装置的数据并将该数据提供给IoT中心的系统的一个实施方案;
图7示出了本发明的一个实施方案中实施的中间连接逻辑;
图8示出根据本发明的一个实施方案的方法;
图9A示出了向IoT装置提供程序代码和数据更新的实施方案;
图9B示出了向IoT装置提供程序代码和数据更新的方法的实施方案;
图10示出了安全架构的一个实施方案的高级视图;
图11示出了其中使用用户身份模块(SIM)来在IoT装置上存储密钥的架构的一个实施方案;
图12A示出了其中使用条形码或QR码来注册IoT装置的一个实施方案;
图12B示出了其中使用条形码或QR码进行配对的一个实施方案;
图13示出了用于使用IoT中心对SIM进行编程的方法的一个实施方案;
图14示出了用于向IoT中心和IoT服务注册IoT装置的方法的一个实施方案;并且
图15示出了用于加密要发送给IoT装置的数据的方法的一个实施方案;
图16A至图16B示出了本发明用于在IoT服务和IoT装置之间加密数据的不同实施方案;
图17示出了本发明用于执行安全密钥交换、生成公共密码、并使用该密码生成密钥流的实施方案;
图18示出根据本发明的一个实施方案的数据包结构;
图19示出了在一个实施方案中所采用的在不与IoT装置正式配对的情况下向IoT装置写入数据/从IoT装置读取数据的技术;
图20示出了在本发明的一个实施方案中采用的一组示例性命令包;
图21示出了使用命令包的交易的示例性序列;
图22示出了根据本发明的一个实施方案的方法;
图23A至图23C示出了根据本发明的一个实施方案的用于安全配对的方法;
图24示出了用于调节通告间隔以识别数据传输条件的本发明的一个实施方案;
图25示出了根据本发明的一个实施方案的方法;
图26A至图26C示出了其中多个IoT中心尝试将数据/命令传输到IoT装置的一个实施方案的操作;
图27示出根据本发明的一个实施方案的方法;
图28示出了用于保护IoT装置预置的系统的一个实施方案;
图29示出了根据本发明的一个实施方案的方法;
图30用于对多个IoT装置进行流量控制的系统的一个实施方案;
图31示出了根据本发明的一个实施方案的方法;并且
图32示出了用于管理应用属性、系统属性和优先级通知属性的系统的一个实施方案。
具体实施方式
在下面的描述中,出于解释的目的,本文陈述了许多特定细节以便透彻理解下文描述的本发明的实施方案。然而,本领域的技术人员将容易明白,可在没有这些特定细节中的一些的情况下实践本发明的实施方案。在其他情况下,为免模糊本发明的实施方案的基本原理,已熟知的结构和装置以框图形式示出。
本发明的一个实施方案包括一种物联网(IoT)平台,开发人员可以利用该平台来设计和构建新的IoT装置及应用。具体地讲,一个实施方案包括用于物联网装置的基础硬件/软件平台,该平台包括预定义的网络协议栈和IoT中心,IoT装置通过该IoT中心连接到互联网。此外,一个实施方案包括一项IoT服务,可以通过该IoT服务如下所述地访问和管理IoT中心和连接的IoT装置。此外,IoT平台的一个实施方案包括用以访问和配置IoT服务、中心和连接的装置的IoT应用程序或Web应用(例如,在客户端装置上执行)。现有的在线零售商和其他网站运营商可以利用本文所述的IoT平台容易地为现有用户群提供独特的IoT功能。
图1A示出了其上可以实现本发明的实施方案的架构平台的概览。具体地讲,图示实施方案包括多个IoT装置101至105,这些IoT装置通过本地通信信道130通信地连接到中央IoT中心110,该中央IoT中心本身通过互联网220通信地联接到IoT服务120。IoT装置101至105中的每个IoT装置最初可以(例如,使用下文描述的配对技术)与IoT中心110配对以使得能够实现本地通信信道130中的每个本地通信信道。在一个实施方案中,IoT服务120包括最终用户数据库122,用于维护从每个用户的IoT装置收集的用户账户信息和数据。例如,如果IoT装置包括传感器(例如,温度传感器、加速度计、热传感器、运动检测器等),则数据库122可以不断更新以存储由IoT装置101-105收集的数据。存储在数据库122中的数据然后可以经由安装在用户装置135上的IoT应用程序或浏览器(或者经由台式计算机或其他客户端计算机系统)使最终用户和网络客户端(例如,订阅了IoT服务120的网站130)能够访问到。
IoT装置101至105可以配备有各种类型的传感器以收集关于自身及其周围环境的信息,并且经由IoT中心110将收集的信息提供给IoT服务120、用户装置135和/或外部网站130。IoT装置101至105中的一些可以响应于通过IoT中心110发送的控制命令来执行指定的功能。下文提供由IoT装置101至105收集的信息以及控制命令的多种具体示例。在下文描述的一个实施方案中,IoT装置101是被设计为记录用户选择并将用户选择发送到IoT服务120和/或网站的用户输入装置。
在一个实施方案中,IoT中心110包括蜂窝无线电装置,以经由诸如4G(例如,移动WiMAX、LTE)或5G蜂窝数据服务的蜂窝服务115建立到互联网220的连接。另选地或除此之外,IoT中心110可以包括WiFi无线电装置,以通过将IoT中心110连接到互联网(例如,经由向最终用户提供互联网服务的互联网服务提供商)的WiFi接入点或路由器116建立WiFi连接。当然,应当注意,本发明的基本原理不限于任何特定类型的通信信道或协议。
在一个实施方案中,IoT装置101至105是能够使用电池电量来长时间(例如,数年)运行的超低功率装置。为了节省功率,可以使用低功率无线通信技术诸如蓝牙低功耗(LE)来实现本地通信信道130。在该实施方案中,IoT装置101至105中的每一个装置和IoT中心110配备有蓝牙LE无线电装置和协议栈。
如上所述,在一个实施方案中,该IoT平台包括在用户装置135上执行以允许用户访问和配置所连接的IoT装置101至105、IoT中心110和/或IoT服务120的IoT应用程序或Web应用。在一个实施方案中,该应用程序或Web应用可以由网站130的运营者设计为向其用户群提供IoT功能。如图所示,该网站可以维护包含与每个用户相关的账户记录的用户数据库131。
图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之间交换的数据执行过滤操作(例如,在可能时,在本地服务于一些数据请求)。
不管IoT中心110至111如何连接,在一个实施方案中,IoT服务120将逻辑地将中心与用户相关联,并且将所有附接的IoT装置101至105组合在能经由已安装有应用程序135的用户装置访问的单个综合性用户界面(和/或基于浏览器的界面)下。
在该实施方案中,主IoT中心110和一个或多个从属IoT中心111可以通过本地网络连接,该本地网络可以是WiFi网络116、以太网和/或使用电力线通信(PLC)网络(例如,其中网络的全部或部分通过用户的电力线运行)。另外,对于IoT中心110至111,IoT装置101至105中的每一个装置可以使用诸如WiFi、以太网、PLC或蓝牙LE的任何类型的本地网络信道与IoT中心110至111互连。
图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的用户装置访问的单个综合性用户界面(和/或基于浏览器的界面)下。
如图2所示,IoT装置101的一个示例性实施方案包括用于存储程序代码和数据201至203的存储器210、以及用于执行程序代码和处理数据的低功率微控制器200。存储器210可以是诸如动态随机存取存储器(DRAM)的易失性存储器,或者可以是诸如闪存存储器的非易失性存储器。在一个实施方案中,非易失性存储器可用于永久存储,并且易失性存储器可用于在运行时执行程序代码和数据。此外,存储器210可以集成在低功率微控制器200内,或者可以经由总线或通信结构连接到低功率微控制器200。本发明的基本原理不限于存储器210的任何特定实现方式。
如图所示,所述程序代码可以包括定义要由IoT装置201执行的一组应用特定的功能的应用程序代码203、以及包括可由IoT装置101的应用开发人员利用的一组预定义构建块的库代码202。在一个实施方案中,库代码202包括实现IoT装置所需的一组基本功能,诸如用于使得能够实现IoT装置101中的每一个IoT装置和IoT中心110之间的通信的通信协议栈201。如上所述,在一个实施方案中,通信协议栈201包括蓝牙LE协议栈。在该实施方案中,蓝牙LE无线电装置和天线207可以被集成在低功率微控制器200内。然而,本发明的基本原理不限于任何特定的通信协议。
图2中所示的具体实施方案还包括用以接收用户输入并向低功率微控制器提供该用户输入的多个输入装置或传感器210,低功率微控制器根据应用程序203和库代码202处理该用户输入。在一个是实施方案中,输入装置中的每一个输入装置包括用于向最终用户提供反馈的LED 209。
另外,图示实施方案包括用于向低功率微控制器供电的电池208。在一个实施方案中,使用不可充电的纽扣电池。然而,在一个另选的实施方案中,可以使用集成的可充电电池(例如,通过将IoT装置连接到交流电源(未示出)来充电)。
还提供用于产生音频的扬声器205。在一个实施方案中,低功率微控制器299包括用于解码压缩音频流(例如,诸如MPEG-4/高级音频编码(AAC)流)以在扬声器205上产生音频的音频解码逻辑。另选地,低功率微控制器200和/或应用代码/数据203可以包括数字采样的音频片段,以在用户经由输入装置210输入选择时向最终用户提供言语反馈。
在一个实施方案中,基于IoT装置101被设计用于的特定应用,可以在IoT装置101上包括一个或多个其他/另选的I/O装置或传感器250。例如,可以包括环境传感器以测量温度、压力、湿度等。如果将IoT装置用作安防装置,则可以包括安防传感器和/或门锁开启器。当然,这些示例仅仅是为了举例说明的目的而提供的。本发明的基本原理不限于任何特定类型的IoT装置。事实上,考虑到配备有库代码202的低功率微控制器200的高可编程性质,应用开发人员可以容易地开发新的应用代码203和新的I/O装置250以对于几乎任何类型的IoT应用与低功率微控制器交互。
在一个实施方案中,低功率微控制器200还包括安全密钥存储部,用于存储用于加密通信和/或生成签名的加密密钥。另选地,密钥可以被保护在用户识别模块(SIM)中。
在一个实施方案中,包括唤醒接收器207以将IoT装置从几乎不消耗功率的超低功率状态中唤醒。在一个实施方案中,唤醒接收器207被配置为响应于从如图3所示的配置在IoT中心110上的唤醒发射器307接收到的唤醒信号来使IoT装置101退出该低功率状态。具体地讲,在一个实施方案中,发射器307和接收器207一起形成电谐振变压器电路,诸如特斯拉线圈。在操作中,当中心110需要将IoT装置101从极低功率状态唤醒时,能量经由射频信号从发射器307发送到接收器207。由于此能量传递,IoT装置101可以被配置成在处于低功率状态时几乎不消耗功率,因为它不需要连续地“听取”来自中心的信号(如使用允许装置通过网络信号被唤醒的网络协议的情况那样)。更确切地说,IoT装置101的微控制器200可以被配置为通过使用从发射器307以电学方式发送到接收器207的能量而在被有效地掉电之后被唤醒。
如图3所示,IoT中心110还包括用于存储程序代码和数据305的存储器317、以及用于执行程序代码和处理数据的硬件逻辑301诸如微控制器。广域网(WAN)接口302和天线310将IoT中心110连接到蜂窝服务115。另选地,如上所述,IoT中心110还可以包括本地网络接口(未示出),诸如WiFi接口(和WiFi天线)或以太网接口,用于建立局域网通信信道。在一个实施方案中,硬件逻辑301还包括安全密钥存储部,用于存储用于加密通信和生成/验证签名的加密密钥。另选地,密钥可以被保护在用户识别模块(SIM)中。
本地通信接口303和天线311建立与IoT装置101至105中的每一个的本地通信信道。如上所述,在一个实施方案中,本地通信接口303/天线311实施蓝牙LE标准。然而,本发明的基本原理不限于用于建立与IoT装置101至105的本地通信信道的任何具体协议。虽然在图3中被示出为单独的单元,但WAN接口302和/或本地通信接口303可以嵌入在与硬件逻辑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几英寸内移动时检测该代码。
在一个实施方案中,一旦已经传送该唯一ID,IoT中心110就可以通过以下方式来验证该唯一ID:查询本地数据库(未示出)、执行散列来验证该代码是否可接受、以及/或者与IoT服务120、用户装置135和/或网站130通信来校验该ID代码。在一个实施方案中,一旦经校验,IoT中心110就和IoT装置101配对并且将配对数据存储在存储器317中(如上所述,该存储器可以包括非易失性存储器)。一旦配对完成,IoT中心110就可以与IoT装置101连接以执行本文所述的各种IoT功能。
在一个实施方案中,运行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装置)设计应用程序的库代码基。
在一个实施方案中,IoT中心110管理IoT装置101至105和IoT服务120之间的连续双向数据流。在需要实时更新到IoT装置101至105/从这些IoT装置更新的情况下(例如,在用户需要查看安防装置或环境读数的当前状态的情况下),IoT中心可以保持打开的TCP套接字以提供对用户装置135和/或外部网站130的定期更新。用于提供更新的具体联网协议可以根据底层应用的需求进行调整。例如,在某些情况下,如果连续双向流可能没有意义,则可以使用简单的请求/响应协议来在需要时收集信息。
在一个实施方案中,IoT中心110和IoT装置101至105都可以通过网络自动升级。具体地讲,当IoT中心110有新的更新可用时,它可以自动地从IoT服务120下载并安装此更新。它可以首先将更新的代码复制到本地存储器中,运行并验证此更新,然后替换较旧的程序代码。类似地,当IoT装置101至105中的每一个IoT装置有更新可用时,最初可以由IoT中心110下载这些更新并将其推送到IoT装置101至105中的每一个IoT装置。然后,每个IoT装置101至105可以采用类似于上述用于IoT中心的方式应用更新,并将更新的结果报告回IoT中心110。如果更新成功,则IoT中心110可以从其存储器中删除此更新,并记录安装在每个IoT装置上的最新的代码版本(例如,使得它可以继续检查每个IoT装置是否有新的更新)。
在一个实施方案中,IoT中心110通过交流电源供电。具体地讲,IoT中心110可以包括具有变压器的供电单元390,其中变压器用于将通过交流电源线提供的交流电压转换为较低的直流电压。
图4A示出了本发明使用IoT系统执行通用远程控制操作的一个实施方案。具体地讲,在该实施方案中,一组IoT装置101-103分别配备有红外(IR)和/或射频(RF)发射器401-403,用于发送远程控制代码以控制各种不同类型的电子设备,包括空调/加热器430、照明系统431和视听设备432(仅举几例)。在图4A所示的实施方案中,IoT装置101-103还分别配备有传感器404-406,用于检测它们控制的装置的操作,如下所述。
例如,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。
所示示例中的IoT装置102被用于控制照明431。具体而言,IoT装置102中的传感器405可以是光电传感器或光电检测器,其被配置为检测由灯具431(或其他照明设备)产生的光的当前亮度。用户可以经由用户装置135向IoT中心110指定所需的照明水平(包括开或关的指示)。作为响应,控制逻辑412将向IR/RF发射器402发送命令以控制灯431的当前亮度水平(例如,如果当前亮度太低则增加照明,或者如果当前亮度太高则减少照明;或者只是打开灯或关闭灯)。
所示示例中的IoT装置103被构造成用于控制视听设备432(例如,电视机、A/V接收器、有线/卫星接收器、AppleTVTM等)。IoT装置103中的传感器406可以是用于检测当前环境音量水平的音频传感器(例如,麦克风和相关联的逻辑)和/或基于电视机产生的光来检测电视机的开启关闭情况的光电传感器(例如,通过测量特定光谱内的光)。另选地,传感器406可包括连接到视听设备的温度传感器,以基于所检测到的温度来检测音频设备的开启关闭情况。再次,响应于经由用户装置135的用户输入,控制逻辑412可以经由IoT装置103的IR发射器403向视听设备发送命令。
应该指出的是,以上仅是本发明的一个实施方案的例示性示例。本发明的基本原理不限于由IoT装置控制的任何特定类型的传感器或设备。
在IoT装置101-103经由蓝牙LE连接而耦接到IoT中心110的实施方案中,传感器数据和命令通过蓝牙LE信道发送。然而,本发明的基本原理不限于蓝牙LE或任何其他通信标准。
在一个实施方案中,控制每个电子设备所需的控制代码被存储在IoT中心110上的数据库413中和/或IoT服务120上的数据库422中。如图4B所示,控制代码可以从用于IoT服务120上所维护的不同件设备的控制代码422的主数据库被提供给IoT中心110。最终用户可以指定要经由在用户装置135上执行的应用程序或浏览器来控制的电子(或其他)设备的类型,并且作为响应,IoT中心上的远程控制代码学习模块491可以从IoT服务120上的远程控制代码数据库492检索所需的IR/RF代码(例如,用唯一的ID来识别每个电子设备)。
另外,在一个实施方案中,IoT中心110配备有IR/RF接口490,以允许远程控制代码学习模块491直接从与电子设备一起提供的原始远程控制器495“学习”新的远程控制代码。例如,如果远程控制数据库中不包括用于与空调430一起提供的原始远程控制器的控制代码,则用户可以经由用户装置135上的应用程序/浏览器与IoT中心110进行交互,以教导IoT中心110由原始远程控制器产生的各种控制代码(例如,增加温度、降低温度等)。一旦学习了远程控制代码,它们就可以存储在IoT中心110上的控制代码数据库413中,并且/或者被发送回IoT服务120,以便被包括在中央远程控制代码数据库492中(并且随后被具有相同空调单元430的其他用户使用)。
在一个实施方案中,IoT装置101-103中的每个IoT装置具有非常小的外形因数,并且可以使用双面胶带、小钉子、磁性附件等附接在它们各自的电子设备430-432上或附近。为了控制某件设备(诸如空调430),需将IoT装置101放置得足够远以使得传感器404能够准确地测量家中的环境温度(例如,若将IoT装置直接放置在空调上,则当空调运行时温度测量值会太低,而当加热器运行时温度测量值会太高)。相比之下,用于控制照明的IoT装置102可以放置在照明器具431上或其附近,以便传感器405检测当前照明水平。
除了提供所述的总体控制功能之外,IoT中心110和/或IoT服务120的一个实施方案向终端用户发送与每个电子设备的当前状态相关的通知。该通知可以是文本消息和/或特定于应用程序的通知,其继而可以被显示在用户的移动装置135的显示器上。例如,如果用户的空调已经打开了一段较长时间但是温度没有发生变化,则IoT中心110和/或IoT服务120可以向用户发送空调未正常工作的通知。如果用户不在家(这可以通过运动传感器来检测,或基于当前检测到的用户位置来检测),并且传感器406指示视听设备430开启或者传感器405指示灯开启,则可向用户发送通知,询问用户是否想要关闭视听设备432和/或灯431。针对任何设备类型都可以发送相同类型的通知。
一旦用户接收到通知,他/她就可以通过用户装置135上的应用程序或浏览器来远程地控制电子设备430-432。在一个实施方案中,用户装置135是触摸屏装置,并且应用程序或浏览器显示出带有用于控制设备430-432的用户可选按钮的远程控制器图像。用户收到通知后,可以打开图形远程控制器,关闭或调整各种不同的设备。如果经由IoT服务120连接,则用户的选择可以从IoT服务120转发到IoT中心110,然后将通过控制逻辑412来控制设备。另选地,用户输入可以从用户装置135直接发送到IoT中心110。
在一个实施方案中,用户可以对IoT中心110上的控制逻辑412进行编程,以对电子设备430-432执行各种自动控制功能。除了如上所述保持所需的温度、亮度水平和音量水平之外,如果检测到某些条件,则控制逻辑412可以自动关闭电子设备。例如,如果控制逻辑412检测到用户不在家并且空调未工作,则可以自动关闭空调。类似地,如果用户不在家,并且传感器406指示视听设备430开启或者传感器405指示灯开启,则控制逻辑412可以经由IR/RF发射器403和402分别自动发送命令,以关闭视听设备和灯。
图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可被集成在炉灶内。
图5还示出了具有运动传感器504的IoT装置105,用于检测某些类型的电子设备(诸如,洗衣机和/或烘干机)的运动。可用到的另一种传感器是用于检测环境音量水平的音频传感器(例如,麦克风和逻辑)。如同上述其他实施方案一样,如果满足某些指定的条件(例如,如果检测到运动进行了一段较长时间,则指示洗衣机/烘干机未关闭),则该实施方案可以向最终用户发送通知。虽然未在图5中示出,IoT装置105还可以配备有控制模块,以自动地和/或响应于用户输入来关闭洗衣机/烘干机531(例如,通过关断电/气)。
在一个实施方案中,具有控制逻辑和开关的第一IoT装置可以被配置为关闭用户家中的所有电力,而具有控制逻辑和开关的第二IoT装置可以被配置为关闭用户家中的所有供气。然后可以将具有传感器的IoT装置设置在用户家中的电子设备或供气驱动的设备之上或附近。如果用户被通知存在特定的设备(例如,炉灶530)未关断,则用户随后可以发送关断家中所有电力或供气的命令,以防止造成损坏。另选地,IoT中心110和/或IoT服务120中的控制逻辑512可以被配置为在这种情况下自动关断电力或供气。
在一个实施方案中,IoT中心110和IoT服务120以周期性的间隔进行通信。如果IoT服务120检测到与IoT中心110的连接已丢失(例如,在指定的持续时间内未能从IoT中心接收到请求或响应),则其将该信息传送给最终用户的设备135(例如通过发送文本消息或特定于应用程序的通知)。
用于通过中间装置
传递数据的设备和方法
如上所述,因为用于互连IoT装置的无线技术(诸如蓝牙LE)通常是短程技术,所以如果用于实施IoT的中心处于IoT装置的范围之外,则IoT装置将无法将数据传输到IoT中心(反之亦然)。
为了克服这项缺陷,本发明的一个实施方案提供了一种用于IoT装置的机构,其处于IoT中心的无线范围之外,以便当一个或多个移动装置在范围内时周期性地与所述一个或多个移动装置连接。一旦建立连接,IoT装置就可以将需要提供给IoT中心的任何数据传输到移动装置,该移动装置然后将数据转发到IoT中心。
如图6所示,一个实施方案包括IoT中心110、超出IoT中心110的范围的IoT装置601,以及移动装置611。超出范围的IoT装置601可以包括能够收集和传送数据的任何形式的IoT装置。例如,IoT装置601可以包括被配置在冰箱内的数据收集装置,以监视冰箱中可食用的食品、食用这些食品的用户以及当前温度。当然,本发明的基本原理不限于任何特定类型的IoT装置。本文所述的技术可以使用任何类型的IoT装置来实施,包括那些用于收集和传输用于以下家电的数据的装置:智能仪表、炉灶、洗衣机、烘干机、照明系统、HVAC系统和视听设备(仅举几例)。
此外,在操作中的移动装置、图6所示的IoT装置611可以是能够传送数据和存储数据的任何形式的移动装置。例如,在一个实施方案中,移动装置611是其上安装有应用程序的智能手机,以有利于本文所述的技术。在另一个实施方案中,移动装置611包括可穿戴设备,诸如附连到项链或手镯上的通信令牌、智能手表或健身装置。可穿戴令牌对于老年用户或未拥有智能手机装置的其他用户可能特别有用。
在操作中,超出范围的IoT装置601可以周期性地或连续地检查与移动装置611的连接性。在建立起连接时(例如,作为用户在冰箱附近移动的结果),IoT装置601上所收集的任何数据605被自动发送到移动装置611上的临时数据储存库615。在一个实施方案中,IoT装置601和移动装置611使用低功率无线标准(诸如BTLE)来建立本地无线通信信道。在这样的情况下,最初可以使用已知的配对技术将移动装置611与IoT装置601配对。
一旦已将数据传输到临时数据储存库,移动装置611就将在与IoT中心110建立起通信时(例如,当用户在IoT中心110的范围内走动时)传输数据。IoT中心然后可以将数据存储在中央数据储存库413中,并且/或者通过因特网将数据发送到一个或多个服务和/或其他用户装置。在一个实施方案中,移动装置611可以使用不同类型的通信信道来将数据提供给IoT中心110(可能是更高功率的通信信道,诸如WiFi)。
超出范围的IoT装置601、移动装置611和IoT中心都可以用程序代码和/或逻辑来配置,以实施本文所述的技术。如图7所示,例如,IoT装置601可以被配置有中间连接逻辑和/或应用,移动装置611可以被配置有中间连接逻辑/应用,并且IoT中心110可以被配置有中间连接逻辑/应用721,以执行本文所述的操作。每个装置上的中间连接逻辑/应用可以用硬件、软件或其任何组合来实现。在一个实施方案中,IoT装置601的中间连接逻辑/应用701搜索并建立与移动装置上的中间连接逻辑/应用711(其可以被实施为装置应用程序)的连接,以将数据传输到临时数据储存库615。移动装置611上的中间连接逻辑/应用701然后将数据转发到IoT中心上的中间连接逻辑/应用,后者将数据存储在中央数据储存库413中。
如图7所示,每个装置上的中间连接逻辑/应用701、711、721可以基于当前应用来配置。例如,对于冰箱而言,连接逻辑/应用701可能仅需要周期性地发送几个数据包。对于其他应用(例如,温度传感器),连接逻辑/应用701可能需要传送更频繁的更新。
在一个实施方案中,IoT装置601(而非移动装置611)可以被配置为建立与位于IoT中心110的范围内的一个或多个中间IoT装置的无线连接。在该实施方案中,IoT中心范围之外的任何IoT装置601可以通过使用其他IoT装置形成“链”而链接到该中心。
另外,尽管为了简单起见,图6至图7仅示出了单个移动装置611,然而在一个实施方案中,不同用户的多个此类移动装置可以被配置为与IoT装置601进行通信。而且,可以对多个其他IoT装置实施相同的技术,从而在整个家中形成中间装置数据收集系统。
此外,在一个实施方案中,本文所述的技术可以用于收集各种不同类型的相关数据。例如,在一个实施方案中,每当移动装置611与IoT装置601连接时,所收集的数据605就可包括用户的身份。这样,IoT系统可以被用来跟踪家中不同用户的行为。例如,如果在冰箱内使用该系统,则所收集的数据605可包括经过冰箱的每个用户的身份、打开冰箱的每个用户的身份,以及每个用户所食用的特定食物。可以从其他类型的IoT装置收集不同类型的数据。通过使用该数据,系统能够确定例如哪个用户洗了衣服、哪个用户在给定的日子看了电视、每个用户入眠和醒来的时间等等。所有这些来源于人群的数据然后可以在IoT中心的数据储存库413内得到编译和/或被转发到外部服务或用户。
本文所述的技术的另一有益应用为用于监视可能需要帮助的老年用户。对于该应用,移动装置611可以是由老年用户佩戴的非常小的令牌,以收集用户家中不同房间里的信息。例如,每当用户打开冰箱时,该数据将与所收集的数据605会一起得以包括,并且经由令牌传输到IoT中心110。然后,IoT中心可以将数据提供给一个或多个外部用户(例如,照顾老年用户的儿童或其他个人)。如果在指定的时间段内(例如12小时)没有收集到数据,那么这意味着老年用户没有在家中移动和/或没有打开冰箱。然后,IoT中心110或连接到IoT中心的外部服务可以向这些其他个人发送警报通知,通知他们应该查看老年用户的情况。另外,所收集的数据605可以包括其他相关信息,诸如用户正在食用的食物、以及是否需要去一趟杂货店、老年用户是否正在看电视以及老年用户看电视的频率、老年人用户洗衣服的频率等。
在另一个具体实施中,如果洗衣机、冰箱、HVAC系统等电子设备存在问题,则所收集的数据可以包括对需要更换的部件的指示。在这种情况下,可能会向技术人员发送通知,请求解决问题。技术人员然后带着所需的更换部件去往这户人家。
图8中示出根据本发明的一个实施方案的方法。该方法可在上述架构的环境内实施,但不限于任何具体架构。
在801处,在超出IoT中心的范围的IoT装置处周期性地收集数据(例如,打开冰箱门、食用的食品等)。在802处,IoT装置周期性地或连续地检查与移动装置的连接性(例如,使用标准本地无线技术来建立连接,诸如BTLE标准所指定的连接)。如果建立了与移动装置的连接,则在802处确定该连接,然后在803处将所收集的数据传输到移动装置。在804处,移动装置将数据传输到IoT中心、外部服务和/或用户。如上所述,如果移动装置已经连接(例如,经由WiFi链路),则可以立即传输数据。
除了收集来自IoT装置的数据之外,在一个实施方案中,本文所述的技术可以用于更新或以其他方式向IoT装置提供数据。一个示例示于图9A中,其示出了具有需要安装在IoT装置601(或一组这样的IoT装置)上的程序代码更新901的IoT中心110。程序代码更新可以包括系统更新、补丁、配置数据以及IoT装置按用户需要进行操作所需的任何其他数据。在一个实施方案中,用户可以经由移动装置或计算机为IoT装置601指定配置选项,然后将这些配置选项存储在IoT中心110上,并使用本文所述的技术提供给IoT装置。具体而言,在一个实施方案中,IoT中心110上的中间连接逻辑/应用721与移动装置611上的中间连接逻辑/应用711进行通信,以将程序代码更新存储在临时存储装置615内。当移动装置611进入IoT装置601的范围时,移动装置611上的中间连接逻辑/应用711与IoT装置601上的中间连接逻辑/应用701相连接,以将程序代码更新提供给装置。在一个实施方案中,IoT装置601然后可以进入自动更新过程,以安装新的程序代码更新和/或数据。
更新IoT装置的方法示于图9B中。该方法可在上述系统架构的环境内实施,但不限于任何具体系统架构。
在900处,在IoT中心和/或外部服务(例如,通过互联网联接到移动装置)上提供新的程序代码或数据更新。在901处,移动装置代表IoT装置接收并存储程序代码或数据更新。在902处,IoT装置和/或移动装置周期性地进行检查,以确定是否已经建立连接。如果在903处确定建立了连接,则在904处,将更新传输到IoT装置并进行安装。
提高安全性的实施方案
在一个实施方案中,每个IoT装置101的低功率微控制器200和IoT中心110的低功率逻辑/微控制器301包括安全密钥存储器,用于存储由下述实施方案使用的加密密钥(参见,例如图10至图15和相关文字)。另选地,密钥可以被保护在如下所述的用户身份模块(SIM)中。
图10示出了一种高级架构,使用公共密钥基础结构(PKI)技术和/或对称密钥交换/加密技术来加密IoT服务120、IoT中心110和IoT装置101-102之间的通信。
现将首先描述使用公共密钥/私有密钥对的实施方案,随后描述使用对称密钥交换/加密技术的实施方案。具体而言,在使用PKI的实施方案中,唯一的公共密钥/私有密钥对与每个IoT装置101-102、每个IoT中心110和IoT服务120相关联。在一个实施方案中,当建立新的IoT中心110时,其公共密钥被提供给IoT服务120,并且当建立新的IoT装置101时,其公共密钥被提供给IoT中心110和IoT服务120。下文描述了用于在装置之间安全地交换公共密钥的各种技术。在一个实施方案中,所有公共密钥由所有接收装置已知的主密钥签名(即,证书的一种形式),使得任何接收装置都可以通过验证签名来验证公共密钥的有效性。因此,这些证书将被交换,而不仅仅是交换原始公共密钥。
如图所示,在一个实施方案中,每个IoT装置101、102分别包括安全密钥存储装置1001、1003,用于安全存储每个设备的私有密钥。然后安全逻辑1002、1304利用安全存储的私有密钥来执行本文描述的加密/解密操作。类似地,IoT中心110包括安全存储装置1011,用于存储IoT中心私有密钥以及IoT装置101-102和IoT服务120的公共密钥;以及安全逻辑1012,用于使用密钥执行加密/解密操作。最后,IoT服务120可以包括安全存储装置1021,用于安全存储其自身的私有密钥、各种IoT装置和IoT中心的公共密钥;以及安全逻辑1013,用于使用密钥加密/解密与IoT中心和设备的通信。在一个实施方案中,当IoT中心110接收到来自IoT装置的公共密钥证书时,IoT中心可以验证该证书(例如,通过如上所述使用主密钥验证签名),然后从其中提取公共密钥,并将公共密钥存储于其安全密钥存储器1011中。
举例来说,在一个实施方案中,当IoT服务120需要向IoT装置101传输命令或数据时(例如,解锁门的命令、读取传感器的请求、IoT装置待处理/显示的数据等),安全逻辑1013使用IoT装置101的公共密钥对该数据/命令进行加密以生成加密的IoT装置数据包。在一个实施方案中,然后该安全逻辑使用IoT中心110的公共密钥对IoT装置数据包进行加密以生成IoT中心数据包,并且将IoT中心数据包传输到IoT中心110。在一个实施方案中,服务120用上述的私有密钥或主密钥签署该加密消息,使得装置101可以验证它是否正从可信来源接收未更改的消息。装置101然后可以使用对应于私有密钥和/或主密钥的公共密钥来验证该签名。如上所述,可使用对称密钥交换/加密技术来代替公共/私有密钥加密。在这些实施方案中,可以为每个装置提供相同的对称密钥的副本以用于对签名进行加密和验证,而不是私密地存储密钥以及向其他装置提供对应的公共密钥。对称密钥算法的一个示例是高级加密标准(AES),但是本发明的基本原理不限于任何特定类型的对称密钥。
使用对称密钥实现方式,每个装置101进入安全密钥交换协议以与IoT中心110交换对称密钥。安全密钥预置协议(诸如动态对称密钥预置协议(DSKPP))可用于通过安全通信信道交换密匙(例如,见意见征求稿(RFC)6063)。然而,本发明的基本原理不限于任何特定密钥预置协议。
一旦对称密钥已被交换,它们可被每个装置101和IoT中心110用来对通信进行加密。类似地,IoT中心110和IoT服务120可以执行安全对称密钥交换,然后使用交换的对称密钥对通信进行加密。在一个实施方案中,在装置101和中心110之间以及中心110和IoT服务120之间周期性地交换新的对称密钥。在一个实施方案中,新的对称密钥随着装置101、中心110和服务120之间的每个新的通信会话而交换(例如,为每个通信会话生成并安全地交换新的密钥)。在一个实施方案中,如果IoT中心中的安全模块1012是可信的,则服务120可以与中心安全模块1312协商会话密钥,然后安全模块1012将与每个装置120协商会话密钥。然后在被重新加密以传输到装置101之前,来自服务120的消息将在中心安全模块1012中被解密和验证。
在一个实施方案中,为了防止中心安全模块1012上的泄密,可以在安装时在装置101和服务120之间协商一次性(永久)安装密钥。当向装置101发送消息时,服务120可以首先用该装置安装密钥来加密/MAC,然后使用该中心的会话密钥加密/MAC。然后中心110将验证并提取被加密的装置模糊点并将其发送到装置。
在本发明的一个实施方案中,采用计数器机制来防止重放攻击。例如,可以为从装置101到中心110(或反之亦然)的每个连续通信分配持续增加的计数器值。中心110和装置101都将跟踪该值并且验证该值在装置之间的每个连续通信中是正确的。在中心110和服务120之间可以实现相同的技术。以这种方式使用计数器将使得更难以欺骗每个装置之间的通信(因为计数器值将是不正确的)。但是,即使没有该计数器机制,服务和装置之间的共享安装密钥也将防止对所有装置的网络(中心)广泛的攻击。
在一个实施方案中,当使用公共/私有密钥加密时,IoT中心110使用其私有密钥对IoT中心数据包进行解密并且生成加密的IoT装置数据包,然后将其传输到相关联的IoT装置101。IoT装置101然后使用其私有密钥对IoT装置数据包进行解密以生成源自IoT服务120的命令/数据。然后它可以处理该数据和/或执行该命令。使用对称加密,每个装置将使用共享的对称密钥进行加密和解密。在任一种情况下,每个传输装置也可以使用其私有密钥签署消息,使得接收装置可以验证其真实性。
可以使用不同组的密钥对从IoT装置101到IoT中心110和IoT服务120的通信进行加密。例如,在一个实施方案中,使用公共/私有密钥布置,IoT装置101上的安全逻辑1002使用IoT中心110的公共密钥对发送到IoT中心110的数据包进行加密。然后IoT中心110上的安全逻辑1012可以使用IoT中心的私有密钥对数据包进行解密。类似地,IoT装置101上的安全逻辑1002和/或IoT中心110上的安全逻辑1012可以使用IoT服务120的公共密钥对发送到IoT服务120的数据包进行加密(然后其可由IoT服务120上的安全逻辑1013使用服务的私有密钥进行解密)。使用对称密钥,装置101和中心110可以共享对称密钥,而中心和服务120可以共享不同的对称密钥。
虽然上文在以上说明中陈述了某些具体细节,但应该注意,本发明的基本原理可以使用各种不同的加密技术来实现。例如,虽然上述一些实施方案使用非对称公共/私有密钥对,但另选的实施方案可以使用在各种IoT装置101-102、IoT中心110和IoT服务120之间安全交换的对称密钥。此外,在一些实施方案中,数据/命令本身不被加密,而是使用密钥在该数据/命令(或其他数据结构)上生成签名。然后接受方可以使用其密钥来验证签名。
如图11所示,在一个实施方案中,使用可编程用户识别模块(SIM)1101来实现每个IoT装置101上的安全密钥存储装置。在该实施方案中,最初可通过安置在IoT装置101上的SIM接口1100内的未编程的SIM卡1101将IoT装置101提供给最终用户。为了用一组一个或多个加密密钥对SIM进行编程,用户将可编程SIM卡1101从SIM接口500取出并将其插入到IoT中心110上的SIM编程接口1102中。然后IoT中心上的编程逻辑1125对SIM卡1101进行安全地编程以将IoT装置101与IoT中心110和IoT服务120进行注册/配对。在一个实施方案中,可以由编程逻辑1125随机地生成公共/私有密钥对,然后可以将该密钥对中的公共密钥存储在IoT中心的安全存储装置411中,而将该密钥对中的私有密钥存储在可编程SIM 1101内。另外,编程逻辑525可以将IoT中心110、IoT服务120和/或任何其他IoT装置101的公共密钥存储在SIM卡1401上(待由IoT装置101上的安全逻辑1302用来对传出数据进行加密)。一旦SIM1101被编程,使用SIM作为安全标识符(例如,使用用于使用SIM注册装置的现有技术),新的IoT装置101可以预置有IoT服务120。在预置之后,IoT中心110和IoT服务120均将安全地存储在对与IoT装置101的通信进行加密时要使用的IoT装置的公共密钥的副本。
上文结合图11所述的技术为向最终用户提供新的IoT装置提供了巨大的灵活性。SIM卡可以由最终用户通过IoT中心110直接编程并且编程的结果可被安全地传送到IoT服务120,而不需要用户在销售/购买时将每个SIM直接注册到特定的服务提供商(如当前所做的那样)。因此,新的IoT装置101可以由在线或本地零售商出售给最终用户,并且随后被安全地预置有IoT服务120。
尽管上文在SIM(用户识别模块)的特定上下文中描述了注册和加密技术,但是本发明的基本原理不限于“SIM”装置。相反,可以使用任何类型的用于存储一组加密密钥的具有安全存储的装置来实现本发明的基本原理。而且,尽管上述实施方案包括可移除的SIM装置,但是在一个实施方案中,SIM装置不可移除,但是IoT装置本身可以插入到IoT中心110的编程接口1102内。
在一个实施方案中,在分发到最终用户之前将SIM预编程到IoT装置101中,而不是要求用户对SIM(或其他装置)进行编程。在该实施方案中,当用户设置IoT装置101时,可以使用本文所述的各种技术来安全地交换IoT中心110/IoT服务120和新IoT装置101之间的加密密钥。
例如,如图12A所示,每个IoT装置101或SIM 401可以与唯一识别IoT装置101和/或SIM 1001的条形码或QR码1501封装在一起。在一个实施方案中,条形码或QR码1201包含用于IoT装置101或SIM 1001的公共密钥的编码表示。另选地,条形码或QR码1201可以由IoT中心110和/或IoT服务120用来识别或生成公共密钥(例如,用作指向已存储在安全存储装置中的公共密钥)。条形码或QR码601可印刷在单独的卡上(如图12A所示)或者可直接印刷在IoT装置本身上。无论条形码印刷在何处,在一个实施方案中,IoT中心110配备有条形码读取器206,用于读取条形码并将结果数据提供给IoT中心110上的安全逻辑1012和/或IoT服务120上的安全逻辑1013。然后IoT中心110上的安全逻辑1012可以将IoT装置的公共密钥存储在其安全密钥存储装置1011内,并且IoT服务120上的安全逻辑1013可以将公共密钥存储在其安全存储装置1021内(以用于随后的加密通信)。
在一个实施方案中,包含在条形码或QR码1201中的数据也可以通过安装有IoT服务提供商设计的IoT应用程序或基于浏览器的小程序的用户装置135(例如,诸如iPhone或Android装置)来捕获。一旦被捕获,则条形码数据可以通过安全连接(例如,诸如安全套接字层(SSL)连接)被安全地传送到IoT服务120。条形码数据也可以通过安全的本地连接(例如,通过本地WiFi或蓝牙LE连接)从客户端装置135提供给IoT中心110。
IoT装置101上的安全逻辑1002和IoT中心110上的安全逻辑1012可以使用硬件、软件、固件或其任何组合来实现。例如,在一个实施方案中,安全逻辑1002、1012被实现在用于在IoT装置101和IoT中心110之间建立本地通信信道130的芯片内(例如,蓝牙LE芯片,如果本地信道130是蓝牙LE)。无论安全逻辑1002、1012的具体位置如何,在一个实施方案中,安全逻辑1002、1012被设计为建立用于执行某些类型的程序代码的安全执行环境。例如,这可以通过使用TrustZone技术(在某些ARM处理器上可用)和/或可信执行技术(由Intel设计)来实现。当然,本发明的基本原理不限于任何特定类型的安全执行技术。
在一个实施方案中,条形码或QR码1501可用于将每个IoT装置101与IoT中心110配对。例如,可以将嵌入在条形码或QR码1501内的配对代码提供给IoT中心110,以将IoT中心与对应的IoT装置配对,而不是使用当前用于配对蓝牙LE装置的标准无线配对过程。
图12B示出了其中IoT中心110上的条形码读取器206捕获与IoT装置101相关联的条形码/QR码1201的一个实施方案。如上所述,条形码/QR码1201可以直接印刷在IoT装置101上,或者可以印刷在设置有IoT装置101的单独的卡上。在任一种情况下,条形码读取器206从条形码/QR码1201中读取配对代码,并将配对代码提供给本地通信模块1280。在一个实施方案中,本地通信模块1280是蓝牙LE芯片和相关软件,但是本发明的基本原理不限于任何特定的协议标准。一旦接收到配对代码,其就被存储在包含配对数据1285的安全存储装置中,并且IoT装置101和IoT中心110被自动配对。每当IoT中心以这种方式与新的IoT装置配对时,用于该配对的配对数据就被存储在安全存储装置685内。在一个实施方案中,一旦IoT中心110的本地通信模块1280接收到配对代码,则其可以使用该代码作为密钥对IoT装置101的本地无线信道上的通信进行加密。
类似地,在IoT装置101方面,本地通信模块1590将配对数据存储在指示与IoT中心配对的本地安全存储装置1595内。配对数据1295可以包括在条形码/QR码1201中识别的预编程的配对代码。配对数据1295还可以包括建立安全本地通信信道所需的从IoT中心110上的本地通信模块1280接收的配对数据(例如,用于对与IoT中心110的通信进行加密的附加密钥)。
因为配对代码不通过空中传输,因此条形码/QR码1201可用于以比当前无线配对协议更安全的方式执行本地配对。另外,在一个实施方案中,可以使用用于配对的相同的条形码/QR码1201来识别加密密钥以建立从IoT装置101到IoT中心110以及从IoT中心110到IoT服务120的安全连接。
图13示出了根据本发明的一个实施方案的用于编程SIM卡的方法。该方法可在上述的系统架构内实施,但不限于任何特定系统架构。
在1301处,用户接收具有空白SIM卡的新IoT装置,并且在1602处,用户将空白SIM卡插入到IoT中心中。在1303处,用户用一组一个或多个加密密钥对空白SIM卡进行编程。例如,如上所述,在一个实施方案中,IoT中心可以随机生成公共/私有密钥对,并且将私有密钥存储在SIM卡上,将公共密钥存储在其本地安全存储装置中。另外,在1304处,至少公共密钥被传输到IoT服务,以便其可以用于识别IoT装置并且建立与IoT装置的加密通信。如上所述,在一个实施方案中,在图13所示的方法中可使用除了“SIM”卡之外的可编程装置来执行与SIM卡相同的功能。
图14示出了用于将新的IoT装置集成到网络中的方法。该方法可在上述的系统架构内实施,但不限于任何特定系统架构。
在1401处,用户接收已预分配了加密密钥的新的IoT装置。在1402处,密钥被安全地提供给IoT中心。如上所述,在一个实施方案中,这涉及读取与IoT装置相关联的条形码以识别分配给该装置的公共/私有密钥对的公共密钥。条形码可以由IoT中心直接读取,也可以通过移动装置经由应用程序或浏览器来捕获。在另选的实施方案中,可以在IoT装置和IoT中心之间建立安全通信信道诸如蓝牙LE信道、近场通信(NFC)信道或安全WiFi信道以交换密钥。无论密钥是如何传输的,一旦被接收到,其就被存储在IoT中心装置的安全密钥库中。如上所述,在IoT中心上可以使用各种安全执行技术来存储和保护密钥,诸如安全区域、可信执行技术(TXT)和/或Trustzone。另外,在803处,密钥被安全地传输到IoT服务,该IoT服务将密钥存储在其自己的安全密钥库中。然后其可以使用该密钥对与IoT装置的通信进行加密。再次,可以使用证书/签署的密钥来实现交换。在中心110内,防止修改/添加/移除所存储的密钥是特别重要的。
图15示出了用于使用公共/私有密钥将命令/数据安全地传送到IoT装置的方法。该方法可在上述的系统架构内实施,但不限于任何特定系统架构。
在1501处,IoT服务使用IoT装置公共密钥对数据/命令进行加密以创建IoT装置数据包。然后使用IoT中心的公共密钥对该IoT装置数据包进行加密以创建IoT中心数据包(例如,在IoT装置数据包周围创建IoT中心包装)。在1502处,IoT服务将IoT中心数据包传输到IoT中心。在1503处,IoT中心使用IoT中心的私有密钥对IoT中心数据包进行解密以生成IoT装置数据包。然后在1504处,其将IoT装置数据包传输到IoT装置,在1505处,使用IoT装置私有密钥对IoT装置数据包进行解密以生成数据/命令。在1506处,IoT装置处理数据/命令。
在使用对称密钥的实施方案中,可以在每个装置之间(例如,每个装置和中心之间以及中心和服务之间)协商对称密钥交换。一旦完成密钥交换,每个传输装置在将数据传输到接收装置之前使用对称密钥对每次传输进行加密和/或签署。
用于在物联网(IoT)系统中建立
安全通信信道的设备和方法
在本发明的一个实施方案中,无论用于支持通信信道的中间装置如何(例如,诸如用户的移动装置611和/或IoT中心110),都要在IoT服务120和每个IoT装置101之间执行数据的加密和解密。图16A示出了通过IoT中心110进行通信的一个实施方案,图16B示出了不需要IoT中心的另一个实施方案。
首先转到图16A,IoT服务120包括管理一组“服务会话密钥”1650的加密引擎1660,并且每个IoT装置101包括管理用于对IoT装置101和IoT服务120之间的通信进行加密/解密的一组“装置会话密钥”1651的加密引擎1661。当执行本文所述的安全/加密技术时,加密引擎可以依赖于不同的硬件模块,该硬件模块包括用于(除别的以外)生成会话公共/私有密钥对并且防止对该密钥对中的私有会话密钥进行访问的硬件安全模块1630-1631,以及用于使用得出的密码生成密钥流的密钥流生成模块1640-1641。在一个实施方案中,服务会话密钥1650和装置会话密钥1651包括相关的公共/私有密钥对。例如,在一个实施方案中,IoT装置101上的装置会话密钥1651包括IoT服务120的公共密钥和IoT装置101的私有密钥。如下文详细讨论的,在一个实施方案中,为了建立安全通信会话,每个加密引擎1660和1661分别使用公共/私有会话密钥对1650和1651来生成相同的密码,然后该密码被SKGM 1640-1641用来生成密钥流以对IoT服务120与IoT装置101之间的通信进行加密和解密。下文提供了根据本发明的一个实施方案的与密码的生成和使用相关联的附加细节。
在图16A中,一旦使用密钥1650-1651生成了密码,则客户端将总是通过IoT服务120向IoT装置101发送消息,如清除事务1611所示。本文所用的“清除”意指表示底层消息没有使用本文所述的加密技术进行加密。然而,如图所示,在一个实施方案中,在客户端装置611和IoT服务120之间建立安全套接字层(SSL)信道或其他安全信道(例如,互联网协议安全(IPSEC)信道)以保护通信。然后IoT服务120上的加密引擎1660使用所生成的密码对消息进行加密,并且在1602处将加密的消息传输到IoT中心110。在一个实施方案中,使用密码和计数器值来生成用于对每个消息数据包进行加密的密钥流,而不是使用密码直接对消息进行加密。下文结合图17描述了该实施方案的细节。
如图所示,可以在IoT服务120和IoT中心110之间建立SSL连接或其他安全信道。IoT中心110(其在一个实施方案中不具有对消息进行解密的能力)在1603处(例如,通过蓝牙低功耗(BTLE)通信信道)将加密的消息传输到IoT装置。然后IoT装置101上的加密引擎1661可以使用密码对消息进行解密并且处理消息内容。在使用密码来生成密钥流的实施方案中,加密引擎1661可以使用密码和计数器值来生成密钥流,然后使用密钥流对消息数据包进行解密。
消息本身可以包括IoT服务120和IoT装置101之间的任何形式的通信。例如,消息可以包括指示IoT装置101执行特定功能诸如进行测量并将结果报告回客户端装置611的命令数据包,或者可以包括用于配置IoT装置101的操作的配置数据。
如果需要响应,那么在1604处,IoT装置101上的加密引擎1661使用密码或得出的密钥流对响应进行加密并且将加密的响应传输到IoT中心110,该IoT中心在1605处将响应转发到IoT服务120。然后在1606处(例如,通过SSL或其他安全通信信道),IoT服务120上的加密引擎1660使用密码或得出的密钥流对响应进行解密并且将解密的响应传输到客户端装置611。
图16B示出了不需要IoT中心的实施方案。相反地,在该实施方案中,IoT装置101和IoT服务120之间的通信通过客户端装置611发生(例如,如上文结合图6至图9B所述)。在该实施方案中,为了向IoT装置101传输消息,客户端装置611在1611处将消息的未加密版本传输到IoT服务120。在1612处,加密引擎1660使用密码或得出的密钥流对消息进行加密,并且将加密的消息传输回客户端装置611。然后客户端装置611在1613处将加密的消息转发到IoT装置101,并且加密引擎1661使用密码或得出的密钥流对消息进行解密。然后IoT装置101可以如本文所述处理消息。如果需要响应,那么在1614处加密引擎1661使用密码对响应进行加密并且将加密的响应传输到客户端装置611,该客户端装置在1615处将加密的响应转发到IoT服务120。然后在1616处,加密引擎1660对该响应进行解密并且将解密的响应传输到客户端装置611。
图17示出了可最初在IoT服务120和IoT装置101之间执行的密钥交换和密钥流生成。在一个实施方案中,每当IoT服务120和IoT装置101建立新的通信会话时可执行该密钥交换。另选地,可以执行密钥交换,并且所交换的会话密钥可以使用指定的时间段(例如,一天、一周等)。虽然为简单起见在图17没有示出中间装置,但通信可以通过IoT中心110和/或客户端装置611发生。
在一个实施方案中,IoT服务120的加密引擎1660向HSM 1630(例如,其可以是诸如由Amazon提供的CloudHSM)发送命令以生成会话公共/私有密钥对。随后,HSM 1630可以防止对该密匙对中的私有会话密钥进行访问。类似地,IoT装置101上的加密引擎可以向HSM1631(例如,得自Atmel 的Atecc508HSM)传输命令,HSM 1631生成会话公共/私有密钥对并且防止对该密匙对中的会话私有密钥进行访问。当然,本发明的基本原理不限于任何特定类型的加密引擎或制造商。
在一个实施方案中,在1701处,IoT服务120将使用HSM 1630生成的会话公共密钥传输到IoT装置101。IoT装置使用其HSM 1631来生成其自己的会话公共/私有密钥对,并且在1702处将其密匙对中的公共密钥传输到IoT服务120。在一个实施方案中,加密引擎1660-1661使用椭圆曲线Diffie-Hellman(ECDH)协议来建立共享密码,该协议是允许双方具有椭圆曲线公共-私有密匙对的匿名密钥协定。在一个实施方案中,使用这些技术,在1703处,IoT服务120的加密引擎1660使用IoT装置会话公共密钥和其自己的会话私有密钥生成密码。类似地,在1704处,IoT装置101的加密引擎1661使用IoT服务120会话公共密钥和其自己的会话私有密钥单独地生成相同的密码。更具体地讲,在一个实施方案中,IoT服务120上的加密引擎1660根据以下公式生成密码:密码=IoT装置会话公共密钥*IoT服务会话私有密钥,其中“*”表示IoT装置会话公共密钥以点对点的方式乘以IoT服务会话私有密钥。IoT装置101上的加密引擎1661根据以下公式生成密码:密码=IoT服务会话公共密钥*IoT装置会话私有密钥,其中IoT服务会话公共密钥以点对点的方式乘以IoT装置会话私有密钥。最后,如下所述,IoT服务120和IoT装置101都已生成了用于对通信进行加密的相同的密码。在一个实施方案中,加密引擎1660-1661分别依赖于硬件模块诸如KSGM 1640-1641来执行上述用于生成密码的操作。
一旦秘密已被确定,其可被加密引擎1660和1661用来直接对数据进行加密和解密。或者,在一个实施方案中,加密引擎1660-1661向KSGM1640-1641发送使用密码生成新的密钥流的命令以对每个数据包进行加密/解密(即,为每个数据包生成新的密钥流数据结构)。具体地讲,密钥流生成模块1640-1641的一个实施方案实施Galois/计数器模式(GCM),其中计数器值针对每个数据包递增,并且与密钥组合使用以生成密钥流。因此,为了将数据包传输到IoT服务120,IoT装置101的加密引擎1661使用密码和当前计数器值来使KSGM1640-1641生成新的密钥流并且使计数器值递增以生成下一个密钥流。然后,在传输到IoT服务120之前,新生成的密钥流被用于对数据包进行加密。在一个实施方案中,密钥流与数据进行异或(XOR)以生成加密的数据包。在一个实施方案中,IoT装置101将具有加密的数据包的计数器值传输到IoT服务120。然后IoT服务上的加密引擎1660与KSGM 1640通信,KSGM1640使用所接收的计数器值和密码生成密钥流(由于使用的是相同的密码和计数器值,其应该是相同的密钥流)并且使用所生成的密钥流对数据包进行解密。
在一个实施方案中,从IoT服务120传输到IoT装置101的数据包以相同的方式被加密。具体地讲,计数器对于每个数据包递增,并且与密码一起使用以生成新的密钥流。然后该密钥流被用来对数据进行加密(例如,执行数据和密钥流的XOR运算),并且加密的数据包与计数器值一起被传输到IoT装置101。然后IoT装置101上的加密引擎1661与KSGM 1641通信,KSGM 1641使用计数器值和密码生成用于对数据包进行解密的相同的密钥流。因此,在该实施方案中,加密引擎1660-1661使用它们自己的计数器值生成用于对数据进行加密的密钥流,并且使用与加密的数据包一起被接收的计数器值生成用于对数据进行解密的密钥流。
在一个实施方案中,每个加密引擎1660-1661跟踪其从另一个加密引擎接收到的最后的计数器值,并且包括用于检测计数器值是否不按顺序接收或者是否多次接收到相同的计数器值的排序逻辑。如果一个计数器值不按顺序接收,或者如果多次收到相同的计数器值,这可能指示正在尝试重放攻击。作为响应,加密引擎1660-1661可以从通信信道断开和/或可以生成安全警报。
图18示出了本发明的一个实施方案中所采用的包括4字节计数器值1800、可变大小的加密数据字段1801和6字节标签1802的示例性加密数据包。在一个实施方案中,标签1802包括校验和值以验证解密的数据(一旦该数据被解密)。
如上所述,在一个实施方案中,可以周期性地和/或响应于每个新的通信会话的发起来生成在IoT服务120和IoT装置101之间交换的会话公共/私有密钥对1650-1651。
本发明的一个实施方案实现用于验证IoT服务120和IoT装置101之间的会话的附加技术。具体地讲,在一个实施方案中,使用公共/私有密钥对的分级结构,包括主密钥对、一组工厂密钥对和一组IoT服务密钥对,以及一组IoT装置密钥对。在一个实施方案中,主密钥对包括所有其他密钥对的信任根,并且被保持在单个高度安全的位置(例如,在实现本文所述的IoT系统的组织的控制下)。主私有密钥可用于对各种其他密钥对诸如工厂密钥对生成签名(并由此进行验证)。然后可使用主公共密钥来核验签名。在一个实施方案中,制造IoT装置的每个工厂被分配其自己的工厂密钥对,然后可以用它来验证IoT服务密钥和IoT装置密钥。例如,在一个实施方案中,使用工厂私有密钥来生成对IoT服务公共密钥和IoT装置公共密钥的签名。然后可使用对应的工厂公共密钥来核验这些签名。请注意,这些IoT服务/装置公共密钥与上文结合图16A至图16B所述的“会话”公共密钥/私有密钥不同。上述会话公共密钥/私有密钥是临时的(即,针对服务/装置会话生成),而IoT服务/装置密钥对是永久的(即,在工厂生成)。
考虑到主密钥、工厂密钥、服务/装置密钥之间的上述关系,本发明的一个实施方案执行以下操作以在IoT服务120和IoT装置101之间提供附加的验证和安全层:
A.在一个实施方案中,IoT服务120初始生成包含以下内容的消息:
1.IoT服务的唯一ID:
·IoT服务的序列号;
·时间戳;
·用于签署此唯一ID的工厂密钥的ID;
·唯一ID的类别(即,服务);
·IoT服务的公共密钥
·对唯一ID的签名。
2.工厂证书包括:
·时间戳
·用于签署证书的主密钥的ID
·工厂的公共密钥
·工厂证书的签名
3.IoT服务会话公共密钥(如上文结合图16A至图16B所述)
4.IoT服务会话公共密钥签名(例如,使用IoT服务的私有密钥签署)
B.在一个实施方案中,消息在协商信道上被发送给IoT装置(如下所述)。IoT装置解析消息并:
1.核验工厂证书的签名(仅当其存在于消息有效负载中时)
2.使用由唯一ID标识的密钥来核验唯一ID的签名
3.使用来自唯一ID的IoT服务的公共密钥核验IoT服务会话公共密钥签名
4.保存IoT服务的公共密钥以及IoT服务的会话公共密钥
5.生成IoT装置会话密钥对
C.IoT装置然后生成包含以下内容的消息:
1.IoT装置的唯一ID
·IoT装置序列号
·间时戳
·用于签署此唯一ID的工厂密钥的ID
·唯一ID的类别(即,IoT装置)
·IoT装置的公共密钥
·唯一ID的签名
2.IoT装置的会话公共密钥
3.使用IoT装置的密钥签署(IoT装置会话公共密钥+IoT服务会话公共密钥)的签名
D.该消息被发送回IoT服务。IoT服务解析消息并:
1.使用工厂公共密钥来核验唯一ID的签名
2.使用IoT装置的公共密钥来核验会话公共密钥的签名
3.保存IoT装置的会话公共密钥
E.IoT服务随后生成包含用IoT服务的密钥签署(IoT装置会话公共密钥+IoT服务会话公共密钥)的签名的消息。
F.IoT装置解析消息并:
1.使用IoT服务的公共密钥来核验会话公共密钥的签名
2.由IoT装置会话私有密钥和IoT服务会话公共密钥生成密钥流
3.IoT装置然后发送“消息传送可用”消息。
G.IoT服务然后执行以下操作:
1.由IoT装置会话私有密钥和IoT装置的会话公共密钥生成密钥流
2.在消息传送信道上创建包含以下内容的新消息:
·生成并存储随机的2字节值
·用回旋镖(boomerang)属性Id(如下所述)和随机值设置属性消息
H.IoT装置收到该消息并:
1.尝试解密该消息
2.在指定的属性Id上使用相同的值发出更新
I.IoT服务识别包含回旋镖属性更新的消息有效负载并:
1.将其配对状态设置为真
2.在协商信道上发送配对完成消息
J.IoT装置接收该消息并将其配对状态设置为真
尽管关于“IoT服务”和“IoT装置”描述了上述技术,但是本发明的基本原理可以被实现为在包括用户客户端装置、服务器和互联网服务的任何两个装置之间建立安全通信信道。
上述技术是高度安全的,因为私有密钥永远不会被空中共享(相比之下,在当前的蓝牙配对技术中密码从一方传输到另一方)。窃听整个对话的攻击者只有公共密钥,而这些公共密钥不足以生成共享密码。这些技术还通过交换已签署的公共密钥来防止中间人攻击。另外,由于在每个设备上都使用GCM和单独的计数器,因此可以防止任何类型的“重放攻击”(在这种情况下,中间人捕获数据并再次发送)。一些实施方案还通过使用不对称计数器来防止重放攻击。
在没有正式配对装置的情况下
用于交换数据和命令的技术
GATT是通用属性配置文件的首字母缩写,它定义了两个蓝牙低功耗(BTLE)装置来回传送数据的方式。它利用称为属性协议(ATT)的通用数据协议,该协议用于将服务、特征和相关数据存储在简单的查找表中,对于表中的每个条目使用16位特征ID。请注意,,然而“特征”有时被称为“属性”。
在蓝牙装置上,最常用的特征是装置“名称”(具有特征ID 10752(0×2A00))。例如,蓝牙装置可通过使用GATT读取由那些其他蓝牙装置发布的“名称”特征来标识其附近的其他蓝牙装置。因此,蓝牙装置具有交换数据的固有能力,而无需正式配对/绑定装置(注意,“配对”和“绑定”有时可以互换使用;本讨论的其余部分将使用术语“配对”)。
本发明的一个实施方案利用这种能力与已启用BTLE的IoT装置进行通信,而无需与这些装置正式配对。由于与每个装置配对所需的时间量,并且一次只可建立一个配对连接,所以与每个单独的IoT装置配对将非常低效。
图19示出了其中蓝牙(BT)装置1910与IoT装置101的BT通信模块1901建立网络套接字抽象而不正式建立配对的BT连接的一个特定实施方案。BT装置1910可被包括在如图16A所示的IoT中心110和/或客户端装置611中。如图所示,BT通信模块1901维护包含以下的列表的数据结构:特征ID、与这些特征ID相关联的名称,以及这些特征ID的值。根据当前的BT标准,每个特征的值可存储在由特征ID标识的20字节缓冲区内。然而,本发明的基本原理不限于任何特定的缓冲区大小。
在图19的示例中,“名称”特征是被分配给“IoT装置14”的特定值的BT定义的特征。本发明的一个实施方案指定要用于与BT装置1910协商安全通信信道的第一组附加特征和要用于与BT装置1910的加密通信的第二组附加特征。具体地讲,在例示的示例中由特征ID<65532>标识的“协商写入”特征可用于传输传出协商消息,并且由特征ID<65533>标识的“协商读取”特征可用于接收传入协商消息。“协商消息”可包括由BT装置1910和BT通信模块1901用来建立如本文所述的安全通信信道的消息。举例来说,在图17中,IoT装置101可经由“协商读取”特征<65533>来接收IoT服务会话公共密钥1701。密钥1701可从IoT服务120传输到已启用BTLE的IoT中心110或客户端装置611,然后可使用GATT将密钥1701写入由特征ID<65533>标识的协商读取值缓冲区。然后,IoT装置应用逻辑1902可从由特征ID<65533>标识的值缓冲区中读取密钥1701并且如上所述处理它(例如,使用它来生成密码并且使用该密码来生成密钥流等)。
如果密钥1701大于20字节(在一些当前具体实施中为最大缓冲区大小),则该密钥可以20字节部分来写入。例如,可通过BT通信模块1903将前20个字节写入特征ID<65533>,并由IoT装置应用逻辑1902读取,该IoT装置应用逻辑然后可将确认消息写入由特征ID<65532>标识的协商写入值缓冲区。使用GATT,BT通信模块1903可从特征ID<65532>读取该确认,并且响应地将密钥1701的接下来的20个字节写入由特征ID<65533>标识的协商读取值缓冲区。以这种方式,建立由特征ID<65532>和<65533>定义的网络套接字抽象,以交换用于建立安全通信信道的协商消息。
在一个实施方案中,一旦建立安全通信信道,就使用特征ID<65534>(用于从IoT装置101传输加密的数据包)和特征ID<65533>(用于通过IoT装置接收加密的数据包)建立第二网络套接字抽象。也就是说,当BT通信模块1903具有用于传输的加密数据包(例如,诸如图16A的加密消息1603)时,它使用由特征ID<65533>标识的消息读取值缓冲区开始写入加密数据包,每次20个字节。IoT装置应用逻辑1902随后将从读取值缓冲区中读取加密数据包,每次20个字节,根据需要经由特征ID<65532>所标识的写入值缓冲区向BT通信模块1903发送确认消息。
在一个实施方案中,下文所述的GET、SET和UPDATE的命令用于在两个BT通信模块1901和1903之间交换数据和命令。例如,BT通信模块1903可发送标识特征ID<65533>并且包含SET命令的数据包以写入由特征ID<65533>标识的值字段/缓冲区,该数据包然后可由IoT装置应用逻辑1902读取。为了从IoT装置101检索数据,BT通信模块1903可传输被指向由特征ID<65534>标识的值字段/缓冲区的GET命令。响应于GET命令,BT通信模块1901可向包含来自由特征ID<65534>标识的值字段/缓冲区的数据的BT通信模块1903传输UPDATE数据包。另外,响应于IoT装置101上的特定属性的改变,可以自动传输UPDATE数据包。例如,如果IoT装置与照明系统相关联并且用户打开灯,则可以发送UPDATE数据包以反映与照明应用相关联的开/关属性的改变。
图20示出了根据本发明的一个实施方案的用于GET、SET和UPDATE的示例性数据包格式。在一个实施方案中,这些数据包在协商之后通过消息写入<65534>信道和消息读取<65533>信道传输。在GET数据包2001中,第一个1字节的字段包括将该数据包标识为GET数据包的值(0X10)。第二个1字节的字段包括请求ID,它唯一地标识当前的GET命令(即,标识GET命令与之关联的当前交易)。例如,从服务或装置传输的GET命令的每个示例均可被分配不同的请求ID。这可以通过例如递增计数器并使用计数器值作为请求ID来完成。然而,本发明的基本原理不限于设置请求ID的任何特定方式。
2字节的属性ID标识数据包所指向的特定于应用的属性。例如,如果GET命令正被发送到图19中所示的IoT装置101,则属性ID可用于标识被请求的具体的特定于应用的值。回到上面的示例,GET命令可被指向特定于应用的属性ID诸如照明系统的电力状态,其包括标识灯是开启还是关闭的值(例如,1=开启,0=关闭)。如果IoT装置101是与门相关联的安全设备,则值字段可标识门的当前状态(例如,1=打开,0=关闭)。响应于GET命令,可发送包含由属性ID标识的当前值的响应。
如图20所示的SET数据包2002和UPDATE数据包2003还包括标识数据包类型(即,SET和UPDATE)的第一个1字节字段、包含请求ID的第二个1字节字段和标识应用定义属性的2字节属性ID字段。另外,SET数据包包括标识包含在n字节值数据字段中的数据长度的2字节长度值。值数据字段可包括要在IoT装置上执行的命令和/或用于以某种方式配置IoT装置的操作(例如,设置期望参数、关闭IoT装置等)的配置数据。例如,如果IoT装置101控制风扇的速度,则值字段可反映当前的风扇速度。
UPDATE数据包2003可被传输以提供SET命令的结果的更新。UPDATE数据包2003包括2字节长度值字段,以标识可包括与SET命令的结果有关的数据的n字节值数据字段的长度。另外,1字节的更新状态字段可标识正在更新的变量的当前状态。例如,如果SET命令试图关闭由IoT装置控制的光,则更新状态字段可指示光是否被成功关闭。
图21示出了IoT服务120和涉及SET命令和UPDATE命令的IoT装置101之间的交易的示例性序列。未示出中介装置诸如IoT中心和用户的移动装置,以避免模糊本发明的基本原理。在2101处,SET命令2101从IoT服务传输到IoT装置101,并且由BT通信模块1901接收,该SET命令响应地在2102更新由特征ID标识的GATT值缓冲区。在2103处,通过低功率微控制器(MCU)200(或者通过在低功率MCU上执行的程序代码,诸如图19中所示的IoT装置应用逻辑1902)从值缓冲区读取该SET命令。在2104处,MCU 200或程序代码响应于该SET命令而执行操作。例如,SET命令可包括指定新配置参数诸如新温度的属性ID,或者可包括状态值诸如开/关(以使IoT装置进入“开”或者低功率状态)。因此,在2104处在IoT装置中设置新值,并且在2105处返回UPDATE命令,在2106处在GATT值字段中更新实际值。在某些情况下,实际值将等于期望值。在其他情况下,更新的值可能不同(即,因为IoT装置101可能需要时间来更新某些类型的值)。最后,在2107处,UPDATE命令被传输回包含来自GATT值字段的实际值的IoT服务120。
图22示出了根据本发明的一个实施方案的用于实现IoT服务和IoT装置之间的安全通信信道的方法。该方法可在上述网络架构的环境内实施,但不限于任何特定架构。
在2201处,IoT服务使用椭圆曲线数字签名算法(ECDSA)证书创建用于与IoT中心通信的加密信道。在2202处,IoT服务使用会话密码加密IoT装置数据包中的数据/命令以创建加密的装置数据包。如上所述,会话密码可由IoT装置和IoT服务独立生成。在2203处,IoT服务通过加密信道将加密的装置数据包传输到IoT中心。在2204处,在不解密的情况下,IoT中心将加密的装置数据包传递给IoT装置。在2205处,IoT装置使用会话密码来解密加密的装置数据包。如上所述,在一个实施方案中,这可通过如下方式来完成:使用密码和计数器值(与加密的装置数据包一起提供)来生成密钥流,然后使用该密钥流来解密数据包。在2206处,IoT装置然后提取并处理包含在装置数据包内的数据和/或命令。
因此,使用上述技术,可以在两个已启用BT的装置之间建立双向、安全的网络套接字抽象,而无需使用标准配对技术正式地配对BT装置。虽然上面关于与IoT服务120通信的IoT装置101描述了这些技术,但是本发明的基本原理可以被实现为在任何两个已启用BT的装置之间协商并建立安全通信信道。
图23A至图23C示出了根据本发明的一个实施方案的用于配对装置的详细方法。该方法可在上述系统架构的环境内实施,但不限于任何特定系统架构。
在2301处,IoT服务创建包含IoT服务的序列号和公共密钥的数据包。在2302处,IoT服务使用工厂私有密钥签署数据包。在2303处,IoT服务通过加密信道将该数据包发送到IoT中心,并且在2304处,IoT中心通过未加密信道将该数据包转发到IoT装置。在2305处,IoT装置核验该数据包的签名,并且在2306处,IoT装置生成包含IoT装置的序列号和公共密钥的数据包。在2307处,IoT装置使用工厂私有密钥签署该数据包,并且在2308处,IoT装置通过未加密信道将该数据包发送到IoT中心。
在2309处,IoT中心通过加密信道将该数据包转发到IoT服务,并且在2310处,IoT服务核验该数据包的签名。在2311处,IoT服务生成会话密钥对,并且在2312处,IoT服务生成包含会话公共密钥的数据包。IoT服务然后在2313处利用IoT服务私有密钥签署该数据包,并且在2314处IoT服务通过加密信道将该数据包发送到IoT中心。
转到图23B,IoT中心在2315处通过未加密信道将该数据包转发到IoT装置,并且在2316处,IoT装置核验数据包的签名。在2317处,IoT装置(例如,使用上述技术)生成会话密钥对,并且在2318处,生成包含IoT装置会话公共密钥的IoT装置数据包。在2319处,IoT装置使用IoT装置私有密钥签署IoT装置数据包。在2320处,IoT装置通过未加密信道将该数据包发送到IoT中心,并且在2321处,IoT中心通过加密信道将该数据包转发到IoT服务。
在2322处,IoT服务核验该数据包的签名(例如,使用IoT装置公共密钥),并且在2323处,IoT服务使用IoT服务私有密钥和IoT装置公共密钥来生成会话密码(如上文所详细描述的)。在2324处,IoT装置使用IoT装置私有密钥和IoT服务公共密钥来生成会话密码(再次如上所述),并且在2325处,IoT装置生成随机数字并使用会话密码对其进行加密。在2326处,IoT服务通过加密信道将加密的数据包发送到IoT中心。在2327处,IoT中心通过未加密信道将加密的数据包转发到IoT装置。在2328处,IoT装置使用会话密码解密该数据包。
转到图23C,在2329处,IoT装置使用会话密码重新加密该数据包,并且在2330处,IoT装置通过未加密信道将加密的数据包发送到IoT中心。在2331处,IoT中心通过加密信道将加密的数据包转发到IoT服务。在2332处,IoT服务使用会话密码解密该数据包。在2333处,IoT服务核验该随机数字是否与其发送的随机数字匹配。IoT服务随后在2334处发送指示配对已完成的数据包,并且在2335处使用会话密码加密所有后续消息。
用于修改数据包间隔
定时以识别数据传输条件的设备和方法
蓝牙低功耗(BTLE)装置发送由“通告间隔”分隔的通告数据包以在装置之间建立连接。BTLE外围装置使用通告间隔向其周围的每个装置广播通告数据包。接收BTLE装置可随后对此信息进行操作或连接以接收更多信息。
用于BTLE的2.4GHz频谱从2402MHz扩展到2480MHz,并且使用40个1MHz宽的编号为0至39的信道。每个信道间隔2MHz。信道37、38和39仅用于发送通告数据包。其余信道用于连接期间的数据交换。在BTLE通告期间,BTLE外围装置接连在3个通告信道上传输数据包。用于扫描装置或信标的中央装置将侦听那些用于通告数据包的信道,从而帮助它发现附近的装置。信道37、38和39在整个2.4GHz频谱中有意扩散(即,信道37和39是频带中的第一个信道和最后一个信道,并且信道38是中间信道)。如果任何单个通告信道被阻止,则其它信道可能是空闲的,因为它们相隔数MHz的带宽。
当IoT装置具有待传输的数据时,它通常将包括作为其通告数据包的一部分的标记,以指示数据准备就绪进行发送。在本发明的一个实施方案中,IoT装置不使用此标记,而是调节通告间隔来指示其有挂起的数据。例如,如果T是无数据挂起时通告数据包之间的时间,则可选择不同的通告间隔诸如0.75T、0.5T或1.25T来指示数据挂起。在一个实施方案中,两个不同的间隔可基于应用的具体要求编程,并且使得难以确定哪个间隔是哪个状态。
图24示出了IoT装置101的一个实施方案,其中BTLE通信接口2410包括在数据准备就绪进行传输时用于调节通告间隔的通告间隔选择逻辑2411。此外,IoT中心110上的BTLE通信接口2420包括通告间隔检测逻辑2421以检测通告间隔的变化、提供确认以及接收数据。
具体地讲,在例示的实施方案中,IoT装置101上的应用2401指示其具有待发送的数据。作为响应,通告间隔选择逻辑2411将修改通告间隔以通知IoT中心110数据将被传输(例如,将间隔更改为0.75T或一些其它值)。当通告间隔检测逻辑2421检测到变化时,BTLE通信接口2420连接到IoT装置101的BTLE通信接口2410,指示它准备就绪接收数据。IoT装置101的BTLE通信接口2410随后将数据传输到IoT中心的BTLE通信接口2420。IoT中心可随后将数据传递到IoT服务120和/或用户客户端装置(未示出)。在数据被传输之后,通告间隔选择逻辑2411可随后恢复为正常通告间隔(例如,AI=T)。
在本发明的一个实施方案中,使用上述安全/加密技术中的一个或多个(参见,例如图16A至图23C和相关文本),在IoT装置101与IoT服务120之间建立安全通信信道。例如,在一个实施方案中,IoT服务120如上所述执行与IoT装置101的密钥交换,以加密IoT装置101与IoT服务120之间的所有通信。
图25中示出了根据本发明的一个实施方案的方法。该方法可在上述系统架构的环境内实施,但不限于任何具体系统架构。
在2500处,IoT装置在生成通告分组时使用标准通告间隔(例如,间隔时间T)。IoT装置在2502处保持标准通告间隔,直至其有数据发送,在2501处确定。然后,在2503处,IoT装置切换通告间隔以指示其有数据传输。在2504处,IoT中心或其它网络装置建立与IoT装置的连接,从而允许IoT装置传输其数据。最后,在2505处,IoT装置将其挂起的数据传输到IoT中心。
应当指出的是,虽然本文在BTLE协议的上下文中描述通告间隔技术,但本发明的基本原理不限于BTLE。事实上,本发明的基本原理可在选择用于在装置之间建立无线通信的通告间隔的任何系统上实现。
此外,虽然在上述许多实施方案中示出了专用的IoT中心110,但不需要专用的IoT中心硬件平台来遵循本发明的基本原理。例如,可将上述各种IoT中心实施为在各种其它联网装置(诸如和装置)内执行的软件。事实上,上述IoT中心可在能够与IoT装置通信的任何装置上实现(例如,使用BTLE或其它本地无线协议)并在互联网上建立连接(例如,使用WiFi或蜂窝数据连接到IoT服务)。
在将IoT中心连接到IoT装置时
用于减少无线通信量的系统和方法
当在特定位置配置多个IoT中心时,单个IoT装置可能能够与范围内的每个IoT中心连接。如上所述,IoT装置可使用通告信道通知其“可连接”范围内的任何IoT中心,由此使得IoT中心可连接到该IoT装置以传输命令和/或数据。当多个IoT中心位于IoT装置的范围内时,IoT服务可尝试通过这些IoT中心中的每一个传输寻址到IoT的命令/数据,从而浪费无线带宽并降低性能(例如,由于来自多个传输的干扰)。
为了解决该问题,本发明的一个实施方案实施技术以确保一旦特定IoT中心成功连接至IoT装置,则将通知另一个IoT中心停止尝试传输命令/数据。此实施方案将参照图26A至26C来描述,其示出了一组示例性IoT中心110至112,它们全部位于IoT装置101的范围内。因此,IoT装置101的安全无线通信模块2610能够看到并连接到每个IoT中心110至112的安全无线通信模块2650至2652。在一个实施方案中,安全无线通信模块包括上述安全BTLE模块。然而,本发明的基本原理不限于任何特定通信协议。
如图26A所示,在一个实施方案中,IoT装置101的安全无线通信模块2610包括通告控制逻辑2610,以周期性地向附近的无线通信装置传输通告信标,指示其“可连接”(即,可通过范围内的任何装置连接)。接收通告信标的任何IoT中心110至112随后意识到IoT装置101,并且安全无线通信模块2650至2652在命令/数据已通过IoT服务寻址到IoT装置101时可连接到IoT装置101的安全无线通信模块2610。
如图26B所示,在一个实施方案中,当IoT服务具有用于IoT装置101的数据/命令时,它可将数据/命令传输到特定位置内的所有IoT中心110至112(例如,与用户账户相关联和/或IoT装置101范围内的所有IoT中心)。如图所示,IoT中心110至112中的每一个可随后尝试与IoT装置101连接以提供命令/数据。
如图26C所示,在一个实施方案中,仅单个IoT中心111将成功连接到IoT装置101并提供命令/数据以供IoT装置101处理。对于某些无线通信协议,诸如BTLE,一旦连接建立,安全无线通信模块2610将停止传输通告信标。因此,其它IoT中心110、112将无法知道IoT装置101已成功接收来自IoT中心111的数据,并且将继续尝试传输命令/数据,从而消耗无线带宽并产生干扰。
为解决该限制,安全无线通信模块2610的一个实施方案包括连接管理器2611,该连接管理器在检测到与IoT中心111的安全无线通信模块2651的成功连接之后致使通告控制模块2612继续传输通告信标。然而,新的通告信标不是指示IoT装置101“可连接”,而是指示IoT装置101“不可连接”。在一个实施方案中,响应于“不可连接”指示,IoT中心110、112的安全无线通信模块2650、2652将停止尝试将命令/数据传输到IoT装置,从而减少不必要的无线通信量。
上述技术使用可易于在现有无线协议的顶层上实施的技术为不期望的无线通信量提供优质解决方案。例如,在一个实施方案中,在BTLE标准环境内实施“可连接”和“不可连接”指示。然而,如上所述,可使用多种不同的无线网络协议来实施本发明的基本原理。
图27中示出了根据本发明的一个实施方案的方法。该方法可在上述系统架构的环境内实施,但不限于任何具体系统架构。
在2701处,命令和/或数据通过两个或更多个IoT中心从IoT服务传输。例如,用户可尝试经由连接到IoT服务的用户移动装置上的应用程序来控制IoT装置。在2702处,IoT中心尝试连接到IoT装置,并且其中一个IoT中心成功连接到IoT装置并向IoT装置提供命令/数据。如上所述,IoT中心可能由于IoT装置在通告信标中传输“可连接”指示而意识到IoT装置。
在2703处,响应于成功的连接,IoT装置开始传输“不可连接”通告信标,从而通知范围内的任何IoT中心IoT装置不再可连接。在2704处,在收到“不可连接”信标之后,其它IoT中心即停止尝试将命令/数据传输到IoT装置。
用于保护物联网(IoT)装置
预置的系统和方法
如上所述,在一个实施方案中,当装置通告IoT中心时,它使用中心和IoT服务用于唯一标识IoT装置的8字节“装置ID”。装置ID可包括在IoT装置上印制的唯一条形码或QR码内,其被读取并传输到IoT服务以在系统中预置/注册IoT装置。进行预置/注册之后,装置ID即用于在系统中寻址IoT装置。
此实施的一个安全顾虑是,由于条形码/QR码数据可以不进行加密传输,因此可以探查到装置ID的无线传输以损害系统,从而允许另一用户将装置ID与其账户相关联。
在一个实施方案中,为了解决此顾虑,“关联ID”与每个装置ID相关联,并且在预置过程中使用,以确保装置ID从未在清除中传输。如图28所示,在该实施方案中,关联ID 2812包括在IoT装置101上印制的条形码/QR码中,而装置ID 2811被安全地保持在实施上述技术以确保与IoT服务120的安全通信的安全无线通信模块2810内。在一个实施方案中,关联ID2812是类似于装置ID的8字节ID,并且对于每个IoT装置是唯一的。当在系统中预置新的IoT装置101时,用户使用其上安装有IoT应用程序或应用的用户装置135扫描包含关联ID 2812的条形码/QR码。作为另外一种选择或除此之外,IoT中心110可用于捕获包括关联ID的条形码/QR码。
在任一种情况下,将关联ID传输到IoT服务120上的装置预置模块2850,IoT服务在包括每个关联ID与每个装置ID之间关联的装置数据库2851中执行查找。装置预置模块2850使用关联ID 2812来识别装置ID 2811,然后使用装置ID在系统中预置新的IoT装置101。具体地讲,从装置数据库2851确定装置ID之后,装置预置模块2850将命令传输到IoT中心110(其可包括用户装置135),从而授权IoT中心110使用装置ID 2811与IoT装置101通信。
在一个实施方案中,在制造IoT装置101时(即,在预置安全无线通信模块2810时),在工厂生成关联ID 2812。装置ID 2811和关联ID 2812两者均随后被提供到IoT服务并存储在装置数据库2851内。如图所示,装置数据库2851可包括指定是否已预置每个装置的指示。举例来说,这可为具有第一值(例如,1)和第二值(例如,0)的二进制值,第一值指示IoT装置101已预置,第二值指示IoT装置未被预置。系统预置/注册IoT装置101之后,即可使用装置ID,因为IoT服务120与IoT装置101之间的通信使用上述安全技术进行保护。
在一个实施方案中,当用户售出IoT装置时,用户可通过登录到IoT服务120并从用户账户释放IoT装置来释放装置ID。新用户可随后使用本文所述的装置预置技术来预置IoT装置并将IoT装置与其账户关联。
图29中示出了根据本发明的一个实施方案的方法。该方法可在上述系统架构的环境内实施,但不限于任何具体系统架构。
在2901处,在IoT装置的装置ID与关联ID之间生成关联(例如,在制造IoT装置的工厂处)。关联ID可嵌入IoT装置上印制的条形码/QR码。在2902处,装置ID与关联ID之间的关联存储在IoT服务中。在2903处,用户购买新的IoT装置并扫描包含关联ID的条形码/QR码(例如,经由其上安装有应用程序或应用的用户移动装置或经由具有条形码读取器的IoT中心)。
在2904处,关联ID被传输到IoT服务,并且在2905处,使用关联ID来识别装置ID。在2906处,使用装置ID预置IoT装置。例如,可更新IoT装置数据库以指示该特定装置ID已被预置,并且IoT服务可将装置ID传输到IoT中心,指示IoT中心与新的IoT装置通信。
用于在物联网(IoT)系统中执行
流量控制的系统和方法
本地无线网络通信量将基于给定位置内的IoT装置数量而增加。此外,在一些情况下,鉴于IoT装置执行的功能,IoT装置可能传输比合理更多的数据。例如,IoT装置上的软件/硬件可能发生故障,或者IoT装置可能被黑客攻击,从而导致IoT装置连续向IoT服务传输不需要的数据。
本发明的一个实施方案解决这些问题,具体方式为在IoT中心处执行流量控制,从而在特定IoT装置达到指定的数据阈值时有效忽略数据通信量。在一个实施方案中,每个IoT装置被配置成具有流量控制参数的指定集,以指示IoT装置被允许传输的时间段内的数据量。流量控制参数可基于IoT装置的类型。例如,某些IoT装置诸如门锁和恒温器通常应周期性地仅传输短数据包,而其它IoT装置诸如视频摄像机可能以非周期性方式传输更大量的数据。因此,可基于相关IoT装置的预期操作来设定流量控制参数以提供足够量的带宽。在一个实施方案中,基于该IoT装置的数据要求,将每个IoT装置分配给特定流量控制“类”。
一个此类实施方案示于图30中,其示出了具有安全无线通信模块2810、3030、3040的多个IoT装置101至103,所述安全无线通信模块分别配置有不同的流量控制参数集3015、3031、3041。在一个实施方案中,流量控制参数指定每个IoT装置预期在指定时间段内传输的数据的频率和/或量(例如,0.25Mb/小时、50Mb/小时、100Mb/天、10次通信尝试/天等)。在一个实施方案中,可由IoT服务120指定流量控制参数3015、3031、3041,如图所示,所述IoT服务包括装置管理模块3021以管理IoT装置数据库2851内每个装置的流量控制参数3020的集。例如,在确定针对每个IoT装置的数据传输要求之后,可对每个流程控制参数3020进行更新以反映这些要求。
如上所述,在一个实施方案中,装置数据库2851包括针对多个不同流量控制“类”(例如,音像装置、温度装置、控制装置、安全装置等)的数据传输要求。在系统中引入新的IoT装置时,随后根据该IoT装置的要求和/或IoT装置的类型,将该IoT装置与特定流量控制类相关联。
每个装置的流量控制参数3020可被分配到IoT中心110,该IoT中心包括流量控制管理逻辑2811,以将每个装置的流控制参数的副本3010存储在本地数据库内。在一个实施方案中,流量控制管理2811可监控接收自和/或传输到每个IoT装置101至103的数据通信量。如果数据通信量达到指定阈值(如每个装置流量控制参数3010所指示),则IoT中心110可指示IoT装置停止传输一段时间和/或可仅阻止来自IoT装置的流量。
如果特定IoT装置在高于指定阈值的水平传输/接收,则这可指示IoT装置存在故障。因此,在一个实施方案中,IoT服务120可传输命令以重置IoT装置。如果装置仍在高于阈值的水平通信,则IoT服务120可将软件更新诸如补丁传输到IoT装置。安装完更新软件之后,IoT装置将重置并使用新软件初始化。此外,可将通知从IoT服务发送到用户装置,以通知用户IoT装置存在故障。
在一个实施方案中,尽管已达到数据通信阈值,但IoT中心110仍可允许某些类型的数据通信量。例如,在一个实施方案中,即使IoT装置已达到其阈值,IoT中心110也允许某些类型的“高优先级”通知。举例来说,如果IoT装置是门锁或门禁检测器,则在某些条件下(例如,当房屋受到监控时),IoT中心110可传递指示有人已打开其中正在使用IoT装置的门的数据。类似地,如果IoT装置为热和/或烟雾检测器,则IoT中心110可传递指示警报条件的数据(例如,由于温度已达到阈值)。无论当前的流量控制状态为何,都可通过IoT中心110传递各种其它类型的“高优先级”通知(例如,表示潜在危险条件的通知)。在一个实施方案中,使用如下所述的不同属性来识别这些“高优先级”通知。
图31中示出了根据本发明的一个实施方案的方法。该方法可在上述系统架构的环境内实施,但不限于任何具体系统架构。
在3101处,为每个IoT装置指定流量控制参数。在一个实施方案中,并且可将IoT装置分配给具有与其相关联的指定流量控制参数集的特定IoT装置“类”。在3102处,流量控制参数被存储在IoT系统内的IoT中心上。在一个实施方案中,每个中心可存储所有IoT装置参数的子集(例如,仅在本地预置的IoT装置的那些参数)。
如果IoT中心检测到特定IoT装置以不是在3103处确定的指定流量控制参数操作,则在3104处,IoT中心将暂时避免与IoT装置进一步通信(例如,阻止IoT装置与IoT服务之间的通信)。此外,如上所述,IoT服务和/或IoT中心可采取措施,通过重新启动IoT装置和/或在IoT装置上安装软件更新来解决问题。
用于使用属性类来管理物联网(IoT)装置和通信量
的系统和方法
不同的IoT装置可用于在给定位置中执行不同的功能。例如,某些IoT装置可用于收集数据诸如温度和状态(例如,开/关状态),并且将此数据报告回IoT服务,数据可在IoT服务中由最终用户访问和/或用于生成各种类型的警报条件。为了实现该实施,本发明的一个实施方案使用不同类型的属性类来管理收集到的数据、系统数据和其它形式的数据。
图32示出了包括安全无线通信模块3218的IoT装置的一个实施方案,所述安全无线通信模块通过串行接口3216(诸如串行外围接口(SPI)总线)与微控制器单元(MCU)3215通信。安全无线通信模块3218使用上述技术管理与IoT服务120的安全通信,并且MCU 3215执行程序代码以执行IoT装置101的特定于应用的功能。
在一个实施方案中,使用各种不同属性类来管理由IoT装置收集的数据以及与IoT装置相关的系统配置。具体地讲,在图32所示的示例中,属性包括应用属性3210、系统属性3211和优先级通知属性3212。在一个实施方案中,应用属性3210包括与由IoT装置101执行的特定于应用的功能相关的属性。例如,如果IoT装置包括安全传感器,则应用属性3210可包括指示门或窗是否打开的二进制值。如果IoT装置包括温度传感器,则应用属性3210可包括指示当前温度的值。可定义几乎无限数量的其它特定于应用的属性。在一个实施方案中,MCU 3215执行特定于应用的程序代码并且仅提供对特定于应用的属性3210的访问。例如,应用开发人员可购买具有安全无线通信模块3218的IoT装置101并且设计由MCU 3215执行的应用代码。因此,应用开发人员将需要访问应用属性,但不需要访问下面描述的其它类型属性。
在一个实施方案中,系统属性3211用于定义IoT装置101和IoT系统的操作和配置属性。例如,系统属性可包括网络配置设置(例如,如上所述的流量控制参数)、装置ID、软件版本、通告间隔选择、安全实施特性(如上所述)以及所需的各种其它低级别变量,以使得IoT装置101能够与IoT服务安全地通信。
在一个实施方案中,基于与那些属性相关联的重要性程度或严重性程度来定义优先级通知属性集3212。例如,如果特定属性与危险条件诸如达到阈值的温度值相关联(例如,当用户意外离开炉灶时或当用户家中的热传感器被触发时),则此属性可分配给优先级通知属性类。如上所述,优先级通知属性可以不同于其它属性的方式处理。例如,当特定优先级通知属性达到阈值时,不论当前流量控制机制是否由IoT中心实施,IoT中心都可将属性值传递给IoT服务。在一个实施方案中,优先级通知属性还可触发IoT服务,以在用户家中或公司内生成针对用户和/或警报条件的通知(例如,以警示用户存在潜在危险条件)。
如图32中所示,在一个实施方案中,应用属性3210、系统属性3211和优先级通知属性3212的当前状态在IoT服务120的装置数据库2851内被复制/反射。例如,当在IoT装置101上更新其中一个属性更改时,安全无线通信模块3218将更改传送到IoT服务120上的装置管理逻辑3021,从而响应地更新装置数据库2851内的属性值。此外,当用户更新IoT服务的其中一个属性(例如调节当前状态或条件,诸如所需的温度)时,属性变化将从装置管理逻辑3021传输到安全无线通信模块3218,该安全无线通信模块将随后更新属性的其本地副本。这样,属性以一致的方式保持在IoT装置101与IoT服务120之间。也可经由安装有IoT应用程序或应用的用户装置和/或通过一个或多个外部服务3270从IoT服务120访问属性。如上所述,IoT服务120可暴露应用编程接口(API)以便访问各种不同的属性类。
此外,在一个实施方案中,优先级通知处理逻辑3022可执行基于规则的操作,以响应收到与优先级通知属性3212相关的通知。例如,如果优先级通知属性指示危险条件(例如,由用户留下熨斗或炉灶),则优先级通知处理逻辑3022可实施规则集以尝试关闭危险装置(例如,如果可能,向装置发送“关”命令)。在一个实施方案中,优先级通知处理逻辑3022可利用其它相关数据诸如用户的当前位置来确定是否关闭危险装置(例如,如果检测到用户在危险装置处于“开”状态时离开家)。此外,优先级通知处理逻辑3022可向用户的客户端装置传输警报条件以向用户通知相关条件。可通过优先级通知处理逻辑3022来实施各种其它类型的规则集,以尝试解决潜在危险或其它不期望的条件。
图32中还示出了BTLE属性集3205和属性地址解码器3207。在一个实施方案中,BTLE属性3205可用于建立上文参照图19至图20所述的读写端口。属性地址解码器3207读取与每个属性相关联的唯一ID代码,以确定正在接收/传输哪个属性并且相应地处理该属性(例如,识别属性存储在安全无线通信模块3218内的何处)。
本发明的实施方案可包括上文所述的各种步骤。这些步骤可体现为可用于致使通用处理器或专用处理器执行这些步骤的机器可执行指令。或者,这些步骤可由包含用于执行这些步骤的硬连线逻辑的特定硬件组件执行,或由编程的计算机组件和定制硬件组件的任何组合执行。
如本文所述,指令可指代特定硬件配置,诸如专用集成电路(ASIC),其被配置为执行某些特定操作或具有体现在非暂态计算机可读介质中的存储器中所存储的预定功能或软件指令。因此,可以使用在一个或多个电子装置(例如,终端站、网络元件等)上存储和执行的代码和数据来实现附图中所示的技术。此类电子装置使用计算机机器可读介质存储和传送(在内部和/或与网络上的其他电子装置)代码和数据,计算机机器可读介质诸如是非暂态计算机机器可读存储介质(例如,磁盘;光盘;随机存取存储器;只读存储器;闪存存储装置;相变存储器)和暂态计算机机器可读通信介质(例如,电学、光学、声学或其他形式的传播信号—诸如载波、红外信号、数字信号等)。此外,这类电子装置通常包括连接到一个或多个其他组件的一个或多个处理器的集合,所述其他组件诸如一个或多个存储装置(非暂态机器可读存储介质)、用户输入/输出装置(例如,键盘、触摸屏和/或显示器)以及网络连接。所述处理器集合和其他组件的耦接通常通过一个或多个总线和桥接器(也称为总线控制器)进行。存储装置和承载网络通信量的信号分别表示一个或多个机器可读存储介质和机器可读通信介质。因此,给定电子装置的存储装置通常将用于执行的代码和/或数据存储在该电子装置的一个或多个处理器的集合上。当然,可以使用软件、固件和/或硬件的不同组合来实现本发明的是实施方案的一个或多个部分。
在整个具体实施方式中,出于解释的目的,陈述了许多特定细节以便透彻理解本发明。然而,本领域的技术人员将容易明白,可在没有这些特定细节中的一些的情况下实践本发明。在某些情况下,为免模糊本发明的主题,未详细描述众所周知的结构和功能。因此,应依据所附权利要求书确定本发明的范围和实质。
Claims (40)
1.一种方法,包括:
在新物联网(IoT)装置识别(ID)代码与关联ID代码之间生成关联;
将所述关联存储在IoT服务的IoT装置数据库中;
从所述新IoT装置检索所述关联ID代码;
将所述关联ID代码传输到所述IoT服务,所述IoT服务使用所述关联ID代码在所述IoT装置数据库中执行查找以确定所述装置ID代码;以及
预置所述新IoT装置以使用所述装置ID代码与所述IoT服务通信。
2.根据权利要求1所述的方法,其中预置所述IoT装置包括将所述装置ID从所述IoT服务传输到至少一个IoT中心,以指导所述IoT中心允许与所述IoT装置通信。
3.根据权利要求2所述的方法,其中所述新IoT装置使用所述装置ID代码建立与所述IoT服务的安全通信信道。
4.根据权利要求1所述的方法,其中所述关联ID体现在所述新IoT装置上的QR码或条形码内。
5.根据权利要求4所述的方法,其中检索所述关联ID包括读取所述新IoT装置上的所述QR码或条形码。
6.根据权利要求5所述的方法,其中读取所述QR码或条形码的所述操作使用客户端装置上的应用程序或应用和/或使用IoT中心执行。
7.根据权利要求1所述的方法,其中所述IoT服务是更新所述IoT装置数据库以指示所述新IoT装置已经过预置。
8.根据权利要求3所述的方法,其中在所述新IoT装置与所述IoT服务之间建立所述安全通信信道包括:
通过IoT中心或移动用户装置建立所述IoT服务与所述新IoT装置之间的通信;
通过所述IoT服务上的第一加密引擎的密钥生成逻辑来生成服务公共密钥和服务私有密钥;
通过所述IoT装置上的第二加密引擎的密钥生成逻辑来生成装置公共密钥和装置私有密钥;
将所述服务公共密钥从所述第一加密引擎传输到所述第二加密引擎,并且将所述装置公共密钥从所述第二加密引擎传输到所述第一加密引擎;
使用所述装置公共密钥和所述服务私有密钥来生成密码;
使用所述服务公共密钥和所述装置私有密钥来生成相同的密码;并且
使用所述密码或使用从所述密码得出的数据结构加密和解密在所述第一加密引擎和所述第二加密引擎之间传输的数据包。
9.一种物联网(IoT)系统,包括:
新IoT装置,其上存储有装置识别(ID)代码与关联ID代码之间的关联;
存储所述关联的IoT服务的IoT装置数据库;
客户端装置和/或IoT中心,用于从所述新IoT装置检索所述关联ID代码;
所述客户端装置和/或IoT中心,用于向所述IoT服务传输所述关联ID代码;
所述IoT服务,用于使用所述关联ID代码在所述IoT装置数据库中执行查找以确定所述装置ID代码;并且
所述IoT服务,用于预置所述新IoT装置,使得所述新IoT装置能够使用所述装置ID代码与所述IoT服务通信。
10.根据权利要求9所述的系统,其中预置所述IoT装置包括将所述装置ID从所述IoT服务传输到至少一个IoT中心,以指导所述IoT中心允许与所述IoT装置通信。
11.根据权利要求10所述的系统,其中所述新IoT装置使用所述装置ID代码建立与所述IoT服务的安全通信信道。
12.根据权利要求9所述的系统,其中所述关联ID体现在所述新IoT装置上的QR码或条形码内。
13.根据权利要求12所述的系统,其中检索所述关联ID包括读取所述新IoT装置上的所述QR码或条形码。
14.根据权利要求13所述的系统,其中读取所述QR码或条形码的所述操作使用客户端装置的应用程序或应用和/或使用IoT中心执行。
15.根据权利要求9所述的系统,其中所述IoT服务是更新所述IoT装置数据库以指示所述新的IoT装置已经过预置。
16.根据权利要求3所述的系统,其中在所述新IoT装置与所述IoT服务之间建立所述安全通信信道包括:
通过IoT中心或移动用户装置建立所述IoT服务与所述新IoT装置之间的通信;
通过所述IoT服务上的第一加密引擎的密钥生成逻辑来生成服务公共密钥和服务私有密钥;
通过所述IoT装置上的第二加密引擎的密钥生成逻辑来生成装置公共密钥和装置私有密钥;
将所述服务公共密钥从所述第一加密引擎传输到所述第二加密引擎,并且将所述装置公共密钥从所述第二加密引擎传输到所述第一加密引擎;
使用所述装置公共密钥和所述服务私有密钥来生成密码;
使用所述服务公共密钥和所述装置私有密钥来生成相同的密码;并且
使用所述密码或使用从所述密码得出的数据结构加密和解密在所述第一加密引擎和所述第二加密引擎之间传输的数据包。
17.一种其上存储有程序代码的机器可读介质,所述程序代码当被一个或多个机器执行时,使得所述机器执行以下操作:
在新物联网(IoT)装置识别(ID)代码与关联ID代码之间生成关联;
将所述关联存储在IoT服务的IoT装置数据库中;
从所述新IoT装置检索所述关联ID代码;
将所述关联ID代码传输到所述IoT服务,所述IoT服务使用所述关联ID代码在所述IoT装置数据库中执行查找以确定所述装置ID代码;并且
预置所述新IoT装置以使用所述装置ID代码与所述IoT服务通信。
18.根据权利要求17所述的机器可读介质,其中预置所述IoT装置包括将所述装置ID从所述IoT服务传输到至少一个IoT中心,以指示所述IoT中心允许与所述IoT装置通信。
19.根据权利要求18所述的机器可读介质,其中所述新IoT装置使用所述装置ID代码建立与所述IoT服务的安全通信信道。
20.根据权利要求17所述的机器可读介质,其中所述关联ID体现在所述新IoT装置上的QR码或条形码内。
21.根据权利要求20所述的机器可读介质,其中检索所述关联ID包括读取所述新IoT装置上的QR码或条形码。
22.根据权利要求21所述的机器可读介质,其中读取所述QR码或条形码的所述操作使用客户端装置上的应用程序或应用和/或使用IoT中心执行。
23.根据权利要求17所述的机器可读介质,其中所述IoT服务是更新所述IoT装置数据库以指示所述新的IoT装置已经过预置。
24.一种系统,包括:
多个IoT装置;
IoT中心,所述IoT中心与所述多个IoT装置建立本地无线连接,从而将所述多个IoT装置通信耦接到IoT服务;
所述IoT中心,用于存储所述多个IoT装置中每一个的流量控制参数,所述流量控制参数基于所述IoT装置中每一个的数据通信要求确定并且指示所述IoT装置中每一个的一个或多个数据通信阈值;
所述IoT中心,用于监控与所述IoT装置中每一个的数据通信,以确定所述IoT装置中的一个是否已达到由所述流量控制参数指定的数据通信阈值,其中响应于到达其数据通信阈值的第一IoT装置,所述IoT中心暂时阻止所述第一IoT装置与所述IoT服务之间的通信。
25.根据权利要求24所述的系统,其中将所述流量控制参数从所述IoT服务传输到所述IoT中心。
26.根据权利要求25所述的系统,其中所述流量控制参数被定义为多个流控制类,并且其中每个IoT装置与所述流量控制类中的一个相关联。
27.根据权利要求26所述的系统,其中将所述IoT装置中的每一个与流量控制类相关联的所述流量控制类和数据存储在所述IoT服务上的IoT装置数据库中。
28.根据权利要求24所述的系统,其中监控与所述IoT装置中每一个的所述数据通信包括监控在一段时间内从每个IoT装置传输到所述IoT服务的数据量和/或每个IoT装置在一段时间内与所述IoT服务通信的次数。
29.根据权利要求24所述的系统,其中暂时阻止包括忽略或丢弃来自所述IoT装置的数据传输。
30.根据权利要求29所述的系统,其中所述IoT中心在指定持续时间内阻止与所述IoT服务通信并且在所述指定持续时间之后恢复通信。
31.根据权利要求24所述的系统,其中所述IoT中心在确定已达到所述数据通信阈值时通告所述IoT服务,IoT服务以响应方式执行软件更新和/或重新启动所述第一IoT装置。
32.根据权利要求24所述的系统,其中所述IoT中心允许来自所述第一IoT装置的某些指定类型的数据通信,尽管已达到所述数据通信阈值。
33.根据权利要求32所述的系统,其中所述某些指定类型的数据通信包括与所述IoT装置上的高优先级属性相关联的那些。
34.一种方法,包括:
为在物联网(IoT)装置和/或IoT服务中管理的多个数据项中的每一个指定属性;
定义多个属性类;
将所述属性中的每一个与所述属性类中的一者或多者相关联,其中所述属性类指定如何通过所述IoT装置的组件和/或所述IoT服务来存储和处理所述数据项;
其中所述属性类包括优先级通知属性类,第一组属性基于与所述第一组属性相关联的重要性或严重性级别与所述优先级通知属性类相关联;
将来自所述IoT装置的针对与所述优先级通知属性类相关联的属性的通知发送到所述IoT服务,之后再发送针对与所述优先级通知属性类不相关的属性的其它通知;并且
在收到所述通知之后,在所述IoT服务上实施一组优先级通知属性规则,以尝试处理与所述通知相关联的潜在危险或其它不期望条件。
35.根据权利要求34所述的方法,其中所述IoT装置包括:
微控制器单元,用于执行特定于应用的程序代码以执行所述IoT装置的特定于应用的功能;以及
安全无线通信模块,用于建立与所述IoT服务的安全无线通信信道。
36.根据权利要求35所述的方法,其中所述属性类包括在执行所述特定于应用的程序代码时所述MCU可以使用的应用属性类。
37.根据权利要求36所述的方法,其中所述属性类还包括所述安全无线通信模块、所述MCU和/或所述IoT服务可以使用的系统属性的系统属性类。
38.根据权利要求37所述的方法,其中所述系统属性、应用属性和优先级通知属性在所述IoT装置与所述IoT服务之间同步。
39.根据权利要求38所述的方法,其中所述系统属性、应用属性和优先级通知属性中的一者或多者在所述IoT服务与客户端装置和/或一个或多个外部服务之间同步。
40.根据权利要求39所述的方法,其中由于特定IoT装置的流量控制限制,被配置成阻止与所述优先级通知属性类不相关的通知的IoT中心通过来自与所述优先级通知属性类相关联的所述IoT装置的通知传递。
Applications Claiming Priority (7)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US14/967,870 US10455452B2 (en) | 2015-12-14 | 2015-12-14 | System and method for flow control in an internet of things (IoT) system |
US14/967,820 | 2015-12-14 | ||
US14/967,870 | 2015-12-14 | ||
US14/967,964 US10116573B2 (en) | 2015-12-14 | 2015-12-14 | System and method for managing internet of things (IoT) devices and traffic using attribute classes |
US14/967,964 | 2015-12-14 | ||
US14/967,820 US10171462B2 (en) | 2015-12-14 | 2015-12-14 | System and method for secure internet of things (IOT) device provisioning |
PCT/US2016/066443 WO2017106224A1 (en) | 2015-12-14 | 2016-12-14 | System and method for secure internet of things (iot) device provisioning |
Publications (1)
Publication Number | Publication Date |
---|---|
CN108475317A true CN108475317A (zh) | 2018-08-31 |
Family
ID=59057487
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201680077259.3A Pending CN108475317A (zh) | 2015-12-14 | 2016-12-14 | 用于保护物联网(IoT)装置预置的系统和方法 |
Country Status (4)
Country | Link |
---|---|
JP (1) | JP6926085B2 (zh) |
KR (1) | KR102537363B1 (zh) |
CN (1) | CN108475317A (zh) |
WO (1) | WO2017106224A1 (zh) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109389724A (zh) * | 2018-10-12 | 2019-02-26 | 深圳市沃特沃德股份有限公司 | 防止信号干扰开锁的智能锁及其方法 |
CN109391623A (zh) * | 2018-11-10 | 2019-02-26 | 河北宏硕智诚信息科技有限公司 | 一种监控安全运营物联网云控制管理方法和装置 |
CN109586906A (zh) * | 2018-12-29 | 2019-04-05 | 飞天诚信科技股份有限公司 | 一种通信装置及其与终端协商密钥的方法和系统 |
CN111698146A (zh) * | 2020-06-10 | 2020-09-22 | 深圳市慧联通信技术有限公司 | 一种低功耗广域网的即时通信方法及系统 |
CN113839967A (zh) * | 2021-11-26 | 2021-12-24 | 深圳市聚慧合创信息技术有限公司 | 基于大数据技术的物联网设备欺诈防控系统 |
CN115803722A (zh) * | 2020-10-29 | 2023-03-14 | 株式会社日立制作所 | IoT系统以及数据收集控制方法 |
CN119654601A (zh) * | 2022-08-05 | 2025-03-18 | 邦纳工程公司 | 解析唯一字段生成的性能串的塔灯动态寄存器填充引擎 |
Families Citing this family (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP3435619A1 (de) * | 2017-07-25 | 2019-01-30 | Siemens Aktiengesellschaft | Pairingverfahren von iot-geräten zu clouddiensten |
CN111052850B (zh) * | 2017-08-18 | 2023-12-08 | 惠普发展公司,有限责任合伙企业 | 设备之间的关联 |
US10356092B2 (en) | 2017-08-23 | 2019-07-16 | Redpine Signals, Inc. | Uncloneable registration of an internet of things (IoT) device in a network |
JP6702347B2 (ja) * | 2018-02-27 | 2020-06-03 | 横河電機株式会社 | プロビジョニングシステム、プロビジョニング方法、プロビジョニングプログラム、およびネットワークデバイス |
DE102018129030A1 (de) * | 2018-11-19 | 2020-05-20 | Innogy Se | Freischaltung für elektronische Verbrauchsmengenzähler |
CA3127456A1 (en) * | 2019-01-25 | 2020-07-30 | Thor Tech, Inc. | Smart vehicle travel preparation and location-based servicing features for mobile device tools and methods of use |
EP3915284A1 (en) | 2019-01-25 | 2021-12-01 | Thor Tech, Inc. | Mobile device tools for authenticated smart vehicle pairing and wireless routing configuration and methods of use |
CA3127457A1 (en) | 2019-01-25 | 2020-07-30 | Thor Tech, Inc. | Mobile device tools for smart vehicle features operation and automatic wireless routing selection and methods of use |
WO2020176319A1 (en) * | 2019-02-27 | 2020-09-03 | Eli Lilly And Company | Medication delivery device with sensing system |
US11997635B2 (en) | 2019-04-29 | 2024-05-28 | Sonicwall Inc. | Establishing simultaneous mesh node connections |
US10972916B2 (en) | 2019-04-29 | 2021-04-06 | Sonicwall Inc. | Instant secure wireless network setup |
US12075246B2 (en) | 2019-04-29 | 2024-08-27 | Sonicwall Inc. | Securing transmission paths in a mesh network |
PH12022552112A1 (en) * | 2020-02-19 | 2024-01-29 | Hishab India Private Ltd | A system and method for transmitting user specific data to devices |
KR102631082B1 (ko) * | 2021-08-24 | 2024-01-30 | 씽스케어주식회사 | 실시간 프로그래밍이 가능한 IoT 장치 제어 시스템 및 그 제어 방법 |
WO2024122678A1 (ko) * | 2022-12-08 | 2024-06-13 | 노현승 | 큐알코드(qr code)를 매칭하여 통신하는 방법 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020087649A1 (en) * | 2000-03-16 | 2002-07-04 | Horvitz Eric J. | Bounded-deferral policies for reducing the disruptiveness of notifications |
US20040199635A1 (en) * | 2002-10-16 | 2004-10-07 | Tuan Ta | System and method for dynamic bandwidth provisioning |
US20150222621A1 (en) * | 2014-02-04 | 2015-08-06 | Texas Instruments Incorporated | Auto-provisioning for internet-of-things devices |
CN104903905A (zh) * | 2013-03-15 | 2015-09-09 | 甲骨文国际公司 | 通过修改计算机应用的目标代码的用于计算机应用的安全服务管理 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8910234B2 (en) * | 2007-08-21 | 2014-12-09 | Schneider Electric It Corporation | System and method for enforcing network device provisioning policy |
EP2538606B1 (en) * | 2011-06-21 | 2017-08-09 | BlackBerry Limited | Provisioning a shared secret to a portable electronic device and to a service entity |
US8806209B2 (en) * | 2012-12-22 | 2014-08-12 | Wigwag, Llc | Provisioning of electronic devices |
US9094191B2 (en) * | 2013-03-14 | 2015-07-28 | Qualcomm Incorporated | Master key encryption functions for transmitter-receiver pairing as a countermeasure to thwart key recovery attacks |
-
2016
- 2016-12-14 JP JP2018531069A patent/JP6926085B2/ja active Active
- 2016-12-14 WO PCT/US2016/066443 patent/WO2017106224A1/en active Application Filing
- 2016-12-14 CN CN201680077259.3A patent/CN108475317A/zh active Pending
- 2016-12-14 KR KR1020187020004A patent/KR102537363B1/ko active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020087649A1 (en) * | 2000-03-16 | 2002-07-04 | Horvitz Eric J. | Bounded-deferral policies for reducing the disruptiveness of notifications |
US20040199635A1 (en) * | 2002-10-16 | 2004-10-07 | Tuan Ta | System and method for dynamic bandwidth provisioning |
CN104903905A (zh) * | 2013-03-15 | 2015-09-09 | 甲骨文国际公司 | 通过修改计算机应用的目标代码的用于计算机应用的安全服务管理 |
US20150222621A1 (en) * | 2014-02-04 | 2015-08-06 | Texas Instruments Incorporated | Auto-provisioning for internet-of-things devices |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109389724A (zh) * | 2018-10-12 | 2019-02-26 | 深圳市沃特沃德股份有限公司 | 防止信号干扰开锁的智能锁及其方法 |
CN109391623A (zh) * | 2018-11-10 | 2019-02-26 | 河北宏硕智诚信息科技有限公司 | 一种监控安全运营物联网云控制管理方法和装置 |
CN109586906A (zh) * | 2018-12-29 | 2019-04-05 | 飞天诚信科技股份有限公司 | 一种通信装置及其与终端协商密钥的方法和系统 |
CN109586906B (zh) * | 2018-12-29 | 2021-07-20 | 飞天诚信科技股份有限公司 | 一种通信装置及其与终端协商密钥的方法和系统 |
CN111698146A (zh) * | 2020-06-10 | 2020-09-22 | 深圳市慧联通信技术有限公司 | 一种低功耗广域网的即时通信方法及系统 |
CN115803722A (zh) * | 2020-10-29 | 2023-03-14 | 株式会社日立制作所 | IoT系统以及数据收集控制方法 |
CN113839967A (zh) * | 2021-11-26 | 2021-12-24 | 深圳市聚慧合创信息技术有限公司 | 基于大数据技术的物联网设备欺诈防控系统 |
CN119654601A (zh) * | 2022-08-05 | 2025-03-18 | 邦纳工程公司 | 解析唯一字段生成的性能串的塔灯动态寄存器填充引擎 |
Also Published As
Publication number | Publication date |
---|---|
WO2017106224A1 (en) | 2017-06-22 |
KR20180094985A (ko) | 2018-08-24 |
KR102537363B1 (ko) | 2023-05-25 |
JP2019502206A (ja) | 2019-01-24 |
JP6926085B2 (ja) | 2021-08-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108475317A (zh) | 用于保护物联网(IoT)装置预置的系统和方法 | |
JP7305734B2 (ja) | モノのインターネット(iot)デバイスとの安全な通信チャネルを確立するためのシステム及び方法 | |
US11070574B2 (en) | System and method for preventing security breaches in an internet of things (IoT) system | |
US11330473B2 (en) | System and method for flow control in an internet of things (IoT) system | |
US10838705B2 (en) | System and method for service-initiated internet of things (IoT) device updates | |
JP7122964B2 (ja) | モノのインターネット(IoT)システムに安全な通信チャネルを確立するための装置及び方法 | |
US10171462B2 (en) | System and method for secure internet of things (IOT) device provisioning | |
US10178579B2 (en) | Internet of things (IoT) system and method for selecting a secondary communication channel | |
US10419930B2 (en) | System and method for establishing secure communication channels with internet of things (IoT) devices | |
US10116573B2 (en) | System and method for managing internet of things (IoT) devices and traffic using attribute classes | |
US10924920B2 (en) | System and method for internet of things (IoT) device validation | |
US9942328B2 (en) | System and method for latched attributes in an internet of things (IOT) system | |
JP2021114297A (ja) | 仮想のモノのインターネット(Internet of Things)(IoT)デバイス及びハブ用のシステム及び方法 | |
US10343649B2 (en) | Wireless key system and method | |
US20180048710A1 (en) | Internet of things (iot) storage device, system and method | |
US10447784B2 (en) | Apparatus and method for modifying packet interval timing to identify a data transfer condition | |
US20170171241A1 (en) | Apparatus and method for obscuring wireless communication patterns |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
WD01 | Invention patent application deemed withdrawn after publication | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20180831 |