CN110603800B - 用于附件通信的方法、附件设备和计算机可读介质 - Google Patents
用于附件通信的方法、附件设备和计算机可读介质 Download PDFInfo
- Publication number
- CN110603800B CN110603800B CN201880030148.6A CN201880030148A CN110603800B CN 110603800 B CN110603800 B CN 110603800B CN 201880030148 A CN201880030148 A CN 201880030148A CN 110603800 B CN110603800 B CN 110603800B
- Authority
- CN
- China
- Prior art keywords
- accessory
- controller
- accessory device
- notification
- broadcast
- 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.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3051—Monitoring arrangements for monitoring the configuration of the computing system or of the computing system component, e.g. monitoring the presence of processing resources, peripherals, I/O links, software programs
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/04—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
- H04L63/0428—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/06—Network architectures or network communication protocols for network security for supporting key management in a packet data network
- H04L63/061—Network architectures or network communication protocols for network security for supporting key management in a packet data network for key exchange, e.g. in peer-to-peer networks
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/02—Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/04—Protocols specially adapted for terminals or networks with limited capabilities; specially adapted for terminal portability
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/2866—Architectures; Arrangements
- H04L67/30—Profiles
- H04L67/303—Terminal profiles
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W12/00—Security arrangements; Authentication; Protecting privacy or anonymity
- H04W12/30—Security of mobile devices; Security of mobile applications
- H04W12/37—Managing security policies for mobile devices or for controlling mobile applications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W12/00—Security arrangements; Authentication; Protecting privacy or anonymity
- H04W12/50—Secure pairing of devices
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W4/00—Services specially adapted for wireless communication networks; Facilities therefor
- H04W4/06—Selective distribution of broadcast services, e.g. multimedia broadcast multicast service [MBMS]; Services to user groups; One-way selective calling services
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W4/00—Services specially adapted for wireless communication networks; Facilities therefor
- H04W4/80—Services using short range communication, e.g. near-field communication [NFC], radio-frequency identification [RFID] or low energy communication
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Multimedia (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- Quality & Reliability (AREA)
- Selective Calling Equipment (AREA)
- Telephonic Communication Services (AREA)
Abstract
本公开提供了一种附件通信控制协议,所述附件通信控制协议可有利于更快且更安全地将状态更新从附件传输到控制器(或网络基站)。附件可向控制器注册,其中所述控制器可将一些订阅和密钥生成信息提供给所述附件。所述附件可检测所述附件的特征的变化并生成包括对所述特征的所述状态的更新的广播通知。所述广播通知还可包括计数器、设备标识符和密钥。根据定时或规则,所述附件可将所述广播通知传输到所述控制器而无需与所述控制器建立安全会话。
Description
相关申请的交叉引用
本申请要求于2017年9月21日提交的美国非临时专利申请No.15/711,931的优先权,该美国非临时专利申请要求于2017年6月2日提交的美国临时专利申请No.62/514,699的权益和优先权,这些专利申请的全部内容以引用方式并入本文以用于所有目的。
本申请涉及于2016年9月23日提交的名称为“Dynamic Connection PathDetection and Selection for Wireless Controllers and Accessories”的美国非临时申请No.15/274,437,该美国非临时申请要求于2016年1月8日提交的美国临时申请No.62/276,810的优先权并且还涉及于2015年2月5日提交的名称为“Uniform CommunicationProtocols for Communication Between Controllers and Accessories”的国际申请No.PCT/US2015/014639,该国际申请是2015年2月5日提交的名称为“UniformCommunication Protocols for Communication between Controllers andAccessories”的美国非临时申请No.14/614,914的继续申请,该美国非临时申请要求于2014年2月5日提交的美国专利临时申请No.61/935,967的优先权,这些专利申请的公开内容全文以引用方式并入本文。
背景技术
在建筑物内,网络连接电子设备在多种应用程序中变得越来越普及。网络连接设备可用于控制和/或感测建筑物内出现的装置和/或发生的活动。此类设备的示例包括无线灯开关和/或灯泡、可远程控制的恒温器、可感测其何时打开或关闭时的门等。这些设备中的每一者通常连接到建筑物内的本地网络,该本地网络可连接或可不连接到互联网。本地网络使每个设备能够被一些其他设备控制,或者至少使设备能够向一些其他设备报告其状态。例如,网络连接门传感器可被编程为向控制器或中央集线器报告何时门已被打开。控制器或中央集线器可被编程为在接收到报告时执行某种动作。在打开门之后,用户可对控制器进行编程以打开建筑物内网络连接灯(例如,房屋的入口内或客厅内的灯)。
然而,这些网络连接设备之间的延迟可能会成为问题。例如,当设备被配置为彼此进行握手操作和/或被配置为保护正在传输的数据时,延迟可能会成为问题。在一些情况下,用户可激活灯开关,并且必须等待三至四秒才能打开灯。
发明内容
如所讨论的,网络连接设备之间的延迟可能成为真正的问题,从而引起消费者的失望和不满。在一些情况下,延迟(例如,无响应或缓慢响应)通常是响应时间的指示标识,例如,设备响应或响应于请求来执行动作所花费的时间。高延迟指示响应时间长(或至少长于预期时间),而低延迟指示快速(或至少更快的)响应。对于网络连接设备,用户在请求设备执行操作时期望非常低的延迟。例如,如果用户选择按钮或开关来打开灯,则延迟应当足够低(例如,小于1秒),以使得用户不用等待灯打开。因此,延迟(更具体地)可以是在附件提供通知的时间和控制器识别包括在通知中的信息的时间之间所花费的时间量的指示标识。在一些示例中,按钮/开关可以是用户可编程的,使得用户可定义要由控制器执行的动作。当用户激活按钮时,该按钮可将事件发送到控制器,该控制器继而可触发动作(例如,打开灯或其他电子设备)。该动作可包括控制器将指令发送到灯,以指示灯打开。
由于网络连接设备的性质,将数据从一个设备发送到另一个设备以实现所请求的操作(例如,基于通知中的信息的自动化)。因此,在灯开关示例中,该开关和另一个设备(例如,控制器)将共享信息(例如,发送到控制器的信息将指示该开关已被激活),并且控制器最终会将指令发送到灯泡以指示灯泡打开(或可将电力发送到灯泡使得其打开)。在该示例中,低延迟将指示控制器能够快速地(例如,很短的毫秒)从附件识别指示开关已被激活的信息。然而,如果要执行握手操作和/或建立安全会话,则与设备之间的信息通信相关联的高延迟可能导致设备失去连接或响应过慢。在一些情况下,如果一个连接设备在某个时间段内未从另一连接设备接收到确认信息或其他信息,则可指示等待设备断开连接或尝试建立新的连接。在这些情况下,当延迟为高时,可严重降低网络连接设备的可操作性。
本公开的某些实施方案涉及一种附件通信控制协议,其将通过建立可不依赖于握手或建立安全会话的通信工作流来缓解高延迟问题,同时仍保护要被传输的数据。例如,具有传感器的网络连接设备可能能够在不首先与控制器设备建立连接的情况下将状态变化(或心跳)传送到控制器设备或网络集线器(例如,基站)。这样,只要指示两个设备关于通信工作流,就可使用单个广播来报告状态变化。
在一些示例中,控制器设备(或“控制器”)可与任何数量的将被控制的其他电子设备(在本文中被称为“附件设备”或简称为“附件”)通信。例如,通过提供具有合适的可执行程序代码的通用计算设备,可在通用计算设备诸如台式计算机、膝上型计算机、平板电脑、移动电话、智能电视(TV)设备、其他手持式或可穿戴计算设备上实现控制器;或者,控制器可以是专用计算设备。附件可包括可由控制器控制的任何设备。附件的示例包括灯具、恒温器、门锁、自动开门器(例如,车库开门器)、照相机或摄像机等等。附件的其他示例包括门传感器、运动传感器、按钮(例如,网络连接开关或其他接触传感器)等。附件和控制器可使用标准传输协议诸如Wi-Fi、Bluetooth、Bluetooth LE等经由有线或无线信道相互通信。
在一些实施方案中,附件通信控制协议可定义一种简单且可扩展的框架,用于将附件定义为服务的集合,其中每个服务被定义为一组特征,每个特征在任何给定时间具有一个定义值。这些特征可表示附件状态的各个原子方面。例如,就恒温器而言,特征可包括电力(无论恒温器单元是打开还是关闭)、当前温度(恒温器测量的实际温度)和目标温度(恒温器试图保持的可设定温度)。在一些情况下,心跳(例如,指示发送心跳的设备处于活动状态的状态通知)是一种特征。协议可进一步定义可由控制器使用的消息格式,以将命令和控制消息(请求)发送到附件,并且可定义用于附件的消息格式以发送响应消息。这些请求可允许控制器询问(例如,读取)附件特征,并且在一些情况下修改(例如,写入)附件特征;例如,控制器可读取电力特征以确定附件是打开的还是关闭的,并且可写入电力特征以关闭或打开附件。因此,不管功能如何,都可通过发送适当的请求来控制任何类型的附件。附件可将附件定义记录提供给控制器。该附件定义记录可包括关于附件的所有可访问特征的完整信息。控制器可使用附件定义记录来确定如何与附件进行交互。例如,控制器可使用来自附件定义记录的信息来构造用于操作附件的用户界面以及构造对附件的请求消息。在一些情况下,可在附件向控制器和/或网络注册时将附件定义记录提供给控制器。
在一些实施方案中,协议可进一步定义通知机制,附件在特征改变时可使用该通知机制来通知控制器。示例包括:被动通知机制,其中控制器可查询附件是否有任何特征已改变;以及主动或基于事件的通知机制,其中附件可在特定特征改变时选择性地向一个或多个控制器生成消息。可同时支持多个通知机制,并且控制器可选择要用于特定附件、服务或特征的通知机制。另外,可同时支持多个主动通知机制,使得(例如,当附件不知道控制器将支持哪个机制时)附件可使用第一主动通知机制和第二主动通知机制。
以下具体实施方式连同附图将提供对本公开的实质和优点的更好的理解。
附图说明
图1示出了根据本公开的实施方案的家庭环境。
图2是根据本公开的实施方案的广播通知的简化框图。
图3是根据本公开的实施方案的用于实现附件通信控制协议的过程的流程图。
图4是根据本公开的实施方案的用于实现附件通信控制协议的过程的另一流程图。
图5是根据本公开的实施方案的用于实现附件通信控制协议的过程的又一流程图。
图6是根据本公开的实施方案的控制器的简化框图。
图7是根据本公开的实施方案的附件的简化框图。
图8是根据本公开的实施方案的附件架构的简化框图。
图9是根据本公开的实施方案的控制器架构的简化框图。
具体实施方式
在一些示例中,控制器设备(或“控制器”)可与任何数量的将被控制的其他电子设备(在本文中被称为“附件设备”或简称为“附件”)通信。例如,通过提供具有合适的可执行程序代码的通用计算设备,可在通用计算设备诸如台式计算机、膝上型计算机、平板电脑、移动电话、其他手持式或可穿戴计算设备上实现控制器;或者,控制器可以是专用计算设备。附件可包括可由控制器控制的任何设备。附件的示例包括灯具、恒温器、门锁、自动开门器(例如,车库开门器)、照相机或摄像机等等。附件的其他示例包括门传感器、运动传感器、按钮(例如,网络连接开关)等。附件和控制器可使用标准传输协议(诸如Wi-Fi、Bluetooth、Bluetooth LE、以太网、3GPP LTE等)或其版本或演进经由有线或无线信道相互通信。
示例性环境
图1示出了根据本公开的实施方案的家庭环境100。家庭环境100包括控制器102,该控制器可与位于环境100中的各种附件设备(也被称为“附件”)通信。控制器102和103可以是例如台式计算机、膝上型计算机、平板电脑、智能电话、智能扬声器、可穿戴计算设备、个人数字助理、电视机顶盒,或能够向如本文所述的附件传送命令和控制消息并且呈现用户界面以允许用户指示出对附件(例如,当控制器是机顶盒时使用电视或其他显示器)的期望操作的任何其他计算设备或设备组。在一些实施方案中,控制器102、103可使用多个分立的设备来实现。例如,可以存在基站(例如,智能电视或其他充当网络集线器的设备)诸如与附件通信的控制器103,以及一个或多个移动遥控站(例如,手持式或可穿戴设备诸如移动电话、平板电脑、智能手表、眼镜等)诸如控制器102,其中该基站可被安装在环境100中的固定位置处,而这些移动遥控站提供用户界面并与基站通信以实现对附件的控制。在一些示例中,如所指出的,控制器103可以是促进经由WiFi网络等在其他控制器(例如,控制器102或其他控制器)与附件之间的通信的基站。
可对任何类型的附件设备进行控制。附件设备的示例包括门锁104、车库门系统106、灯具108、开关(例如按钮)110和恒温器112。在一些情况下,控制器102、103可与附件直接通信;例如,控制器102被示出为直接与门锁104和车库门系统106通信,控制器103被示出为与开关110直接通信。在其他情况下,控制器102、103可经由中间体进行通信。例如,图中示出控制器102、103经由无线网络接入点114与位于由接入点114提供的无线网络上的附件108、112通信。例如,接入点114可以是WiFi路由器或其他网络接口,或者该接入点可以是可充当WiFi路由器(例如,热点)、从路由器接收WiFi信号并且通过传输其自身的WiFi信号和/或短程信号(例如,Bluetooth等)将一个或多个其他设备连接到路由器的另一设备。如上所述,在一些实施方案中,控制器103可充当基站;然而,基站功能可被集成到任何控制器(例如,控制器102)中;例如,当家庭没有配备控制器103之类的设备时。
可使用各种通信传输手段以及传输手段的组合,并且不同的传输手段可用于不同的设备。通信传输的一个示例可以是符合由Bluetooth SIG公司(http://www.bluetooth.com)定义和发布的通信标准和协议的传输;如本文所用的术语“Bluetooth”通常是指通信标准和协议,并且如本文所用的术语“BluetoothLE”是指Smart通信标准和协议。Bluetooth协议可在有限范围内支持设备之间的直接点对点通信。通信传输的另一示例可以是符合由Wi-Fi(http://www.wi-fi.org)定义和发布的通信标准和协议的传输;如本文所用,“Wi-Fi”通常是指标准和协议。Wi-Fi协议可定义具有中央接入点的无线网络,该中央接入点路由网络上不同设备之间通信。该网络可支持标准互联网协议(IP)套件,包括例如传输控制协议(TCP)和超文本传输协议(HTTP)。应当理解,Bluetooth和Wi-Fi用作通信传输和协议的示例;也可使用其他传输和协议。另外,虽然示出了无线通信传输手段,但也可为一些或所有附件提供有线传输手段。例如,灯泡108可通过有线连接而连接到接入点114,并且控制器102可通过向接入点114无线地发送消息而与灯泡108通信,该接入点可充当桥接件,经由有线连接将消息递送到灯泡108。有线通信和无线通信的其他组合也是可能的。
此外,尽管示出了两个控制器102、103,但家庭环境100可具有多个控制器设备。例如,该家庭中所居住的每个人可具有一个或多个个人设备(例如,移动电话、平板电脑、膝上型电脑、可穿戴设备),所述一个或多个个人设备可充当附件104至112中一些或全部的控制器。不同的控制器设备可被配置为与附件的不同子集通信;例如,可阻止子女的控制器修改恒温器112上的设置,而允许父母的控制器设备修改该设置。可通过控制器设备的设置来配置此类权限。
本公开的某些实施方案涉及一种附件通信控制协议,其有利于由附件诸如附件104至112中的任一者与一个或多个控制器诸如控制器102、103通信。该协议可提供一种简单且可扩展的框架,该框架可将附件作为服务的集合来建模,其中每个服务被定义为一组特征,每个特征在任何给定时间具有一个定义值。这些特征可表示附件状态的各个原子方面。例如,就恒温器112而言,特征可包括电力(无论恒温器是打开还是关闭)、由恒温器112测量的当前温度,以及恒温器112所设置的目标温度。下文描述了使用服务和特征的附件模型的示例。
协议可进一步定义可由附件(例如,恒温器112)使用的消息格式,以将特征状态的更新作为待发送到控制器(例如,控制器102、103)的广播通知或其他分组的一部分来发送。在一些示例中,可提供广播通知而不是握手并且/或者可在报告附件和接收控制器之间执行握手之前提供广播通知。因此,该协议在设备之间的任何实际连接之前启用逻辑广播会话。广播通知可包括更新的状态信息以及可由控制器使用来认证和/或验证数据准确并且/或者用于已注册附件的其他数据。还可提供广播通知而不是建立与控制器的安全连接或者在建立与控制器的安全连接之前提供广播通知。下文将描述关于广播通知的附加细节。
在一些示例中,命令和控制消息可由控制器发送以允许控制器询问(例如,读取)附件特征的当前状态,并且在一些情况下修改(例如,写入)附件特征。例如,修改恒温器112的电力特征可使恒温器112关闭或打开。因此,不管附件的功能或制造商是怎样的,都可通过发送适当的消息来控制任何类型的附件。另外,在一些实施方案中,附件可将附件定义记录提供给控制器。该附件定义记录可包括关于附件的所有可访问特征的完整信息。控制器可使用附件定义记录来确定如何与附件进行交互。例如,控制器可使用来自附件定义记录的信息来构造用于操作附件的用户界面以及构造对附件的请求消息。可在附件设备的注册阶段期间在控制器处接收附件定义记录,而不是在建立安全会话期间或在附件与控制器之间的握手期间。
该协议可进一步定义通知机制,该通知机制允许附件112(或其他附件)在发生状态变化的情况下选择性地通知控制器102、103。示例包括:被动通知机制,其中控制器102、103可查询附件(例如,附件112)以发现是否有任何特征已改变;以及主动、通告或基于事件的通知机制,其中附件112(或其他附件)可在特定特征改变时或在提供状态更新(例如,一些状态更新不识别任何特征或状态变化)时选择性地向一个或多个控制器生成消息(例如,广播通知)并且/或者对通告进行广播。可同时支持多个通知机制,并且控制器可选择要用于特定附件、服务或特征的通知机制。另外,附件可选择要使用的通知机制,或者可指示附件要使用哪个通知机制。下文对示例进行了描述。
在一些实施方案中,与给定附件的通信可限于授权控制器。在提供用户希望控制器102、103能够控制附件104的高置信度并且已与特定附件建立配对的控制器可被认为已对给定附件授权的情况下,该协议可指定用于在控制器102、103和该给定附件(例如,门锁附件104)之间建立“配对”的一个或多个机制。可以例如通过使用短期密钥和带外共享秘密建立安全加密框架来建立配对。可在该框架内交换附件和控制器的长期公钥,并且附件和控制器可持久地存储已交换的密钥,从而建立配对。在建立配对之后,附件104能够验证所接收的通信是来自配对控制器102、103还是来自另一设备,并且附件104可拒绝不是来自配对控制器102、103的任何通信(反之亦然)。例如,当先前建立配对的附件和控制器重新连接时,它们可(例如,通过证明每个配对拥有另一个的长期公钥)验证先前配对并生成用于在配对验证会话(例如,安全会话)内进行通信的会话专用加密密钥。在一些实施方案中,多个控制器可与同一附件建立配对,并且附件可接受并响应来自其配对控制器中的任一者的通信,同时拒绝或忽略来自未配对控制器的通信。
在一些示例中,附件104至112中的每一者可被配置为向控制器102、103中的一者注册。注册可以是一次性过程,其中附件提供关于其特征的一些信息,并且控制器提供关于控制器将注册的特征或特征类型的一些信息。注册特征和/或类型可包括提供标识符的列表,这些标识符识别控制器正在请求更新其相关的特定特征或特征类型。例如,附件112为恒温器,这意味着其可包括超过一个特征。除了其他事物之外,该恒温器可感测房间中的当前温度,其可打开加热器或空调,并且其可感测用户何时请求(例如,通过选择恒温器112上的按钮)调节房间中的温度。这些特征中的每一者可对应于特定的实例标识符,并且这些实例标识符中的每一者可具有状态(例如,打开或关闭)或值(例如,就灯108而言的温度读数或亮度值)。心跳可具有其自身的实例ID,因为心跳被建模为附件104至112的特征。
在一些示例中,控制器102、103可仅被配置为接收与房间中变得高于或低于阈值的温度对应的状态更新。然后控制器102、103可能能够至少部分地基于接收到状态更新来执行动作(例如,打开加热器或空调、在户界面(UI)上向用户呈现室温等)。因此,在该示例中,控制器102、103可通过提供对应于那个特征或类型的实例标识符来注册该特征或类型。对类型而不是特征的注册使得控制器102、103能够注册归类到某种类型下的多种特征。例如,温度阈值可以是一种类型的特征,其将同时覆盖上限阈值特征(例如,当温度超过某个数值时)和下限阈值特征(例如,当温度低于某个数值时)。当控制器102、103被配置为响应于接收到广播通知中的状态更新而执行操作时,也可在注册期间提供该信息。例如,如果控制器102、103被配置为一旦用户激活开关(例如,开关附件110)就打开灯(例如,附件108),则这被认为是自动化(例如,控制器102、103)。在一些情况下,当控制器102、103被配置有自动化时,控制器102、103可在注册期间指示适当的附件(在该示例中,开关附件110)始终报告特征的状态的变化(例如,“打开”或“关闭”)。这里,开关附件110将在检测到状态变化时立即生成广播通知并将该广播通知提供给控制器102、103中的任一者或两者。在一些情况下,仅控制器103(例如,家庭集线器)会执行自动化。在这种情况下,如果配置了自动化,但控制器102而不是控制器103接收到广播通知,则控制器102可被配置为通过WiFi(例如,通过接入点114)或通过Bluetooth(等)将广播通知发送到控制器103。然而,当不存在自动化时,附件可能不会立即传输广播通知。相反,附件108至112可至少部分地基于时间表(例如,每几秒等)随机地仅报告状态更新或仅报告状态更新以识别低电量,或者仅报告附件仍然处于活动状态。在一些示例中,附件108至112可以被配置为根据设备的类型(例如,低功率设备)、可用的剩余电池电力、特征的类型(例如,不重要的特征或经常改变的特征)等而每1.28秒或每2.5秒报告状态更新一次。当附件104至112向控制器102、103注册时,控制器102、103可指示每个附件需要每个特征的状态更新的频率。还可在每次新密钥生成之后将该信息传输到附件104至112(有关密钥生成的更多细节,请参见下文)。因此,报告每个特征更新的定时可改变。另外,该信息可由设备102至112的用户来配置。
在某些实施方案中,一旦已向控制器注册附件,附件就可被配置为实现本文所述的附件通信控制协议的特征。基于该协议,附件可绕过或以其他方式避免实现配对验证会话或包括握手或其他已建立的连接的任何安全会话。换句话讲,当附件确定要报告状态更新(例如,控制器被注册的特征改变)时,附件可生成包括状态更新的广播通知而不是首先通告更新可用。这可显著改善系统的延迟(例如,在识别出状态变化的时间与控制器能够作用在系统上的时间之间所花费的时间),并且可使得低功率和超低功率的附件能够节省大量电池电力。通过实现附件通信控制协议,可避免整个往返会话生成(例如,握手和/或配对验证),并且低功率附件可在没有什么要报告的时间期间长时间休眠而没有使用电池来保持连接。另外,为确保向后兼容,附件可被配置为实现附件通信控制协议,然后在传输广播通知之后,附件可实现潜在的先前使用的方法:传输通告、建立安全会话(例如,配对验证会话)、然后经由该安全会话传输有效载荷(例如,状态更新信息)。下文将描述附件通信控制协议的附加细节。
应当理解,家庭环境100是例示性的,并且变型形式和修改形式是可能的。本公开的实施方案可在用户希望使用控制器设备来控制一个或多个附件设备的任何环境中实现,这些环境包括但不限于家庭、汽车或其他车辆、办公大楼、具有多栋建筑物的校园(例如,大学校园或企业园区)等。控制器可以是用于控制一个或多个其他设备(附件)的任何设备,或者附件可以是允许其操作中的一些或全部由控制器控制或将感官信息(例如,指示传感器已感测到的一些信息)提供给控制器的任何设备。控制器102可实现或包括本文所述的被实现或包括在控制器中的特征中的任一种或全部,并且附件诸如附件104至112可实现或包括本文所述的被实现或包括在附件中的特征中的任一种或全部。
在一些实施方案中,控制器102可从远程位置(例如,世界上任何地方)与附件(例如,附件108)通信。例如,当位于远程环境中时,控制器102可经由广域网(例如,互联网)与能够将消息中继给附件108的服务器通信(例如,通过与位于环境100中的接入点114和/或控制器(基站)103通信,控制器102可与附件108在本地通信)。控制器102和附件108之间的通信的内容对于服务器可以是不透明的,并且服务器可以简单地传递加密数据,同时对其内容保持不可知性。因此,可(例如,通过能够建立到附件的直接通信路径的控制器)在本地操作附件或(例如,通过经由中继服务器等间接通信的控制器)远程操作附件。
示例性广播通知
如上所述,实现附件通信控制协议包括配置附件以在初始广播通知内包括有效载荷。该广播通知将在附件和控制器之间建立的安全会话之前和/或代替该安全会话被提供。然而,广播通知可能需要以防止恶意意图的方式安全地提供状态更新,并且同时通知控制器更新可用。以前,将通过不包括有效载荷的通告向控制器通知更新。然而,这可能导致过多的延迟,并且使用过多的附件的电池电力。
图2示出了示例性环境200,其中附件202可将广播通知204提供给控制器206。在一些实施方案中,附件202可包括存储器208,该存储器被配置为存储用于操作的计算机可执行指令以及用于构建广播通知204的安全密钥和全局计数器值。另外,控制器206可包括存储器210,该存储器被配置为存储用于操作的计算机可执行指令以及用于附件202的安全密钥和全局计数器值。如果控制器206被配置为控制多个不同附件,则该控制器可存储多组密钥/计数器对(例如,每个附件一组)。在图2所示的示例中,密钥和全局计数器是相同的,至少是因为存储在存储器210中的密钥/计数器对与附件202相关联并且因为这两个设备当前同步(例如,已使用匹配的安全协议生成密钥并且计数器已以一致方式递增)。在一些示例中,广播通知204将包括唯一地识别附件和加密有效载荷212的设备标识符。设备标识符可在注册阶段期间或在任何时间由控制器206提供给附件202。为了安全起见,设备标识符可由控制器206随机生成。控制器206可(例如,在查找表或其他类型的数据结构中)存储实际附件标识符(例如,媒体访问控制(MAC)地址)与由控制器206随机生成的设备标识符之间的关联。当控制器206接收到广播通知204时,控制器206可使用设备标识符来初始识别哪个附件正在提供广播。另外,加密有效载荷212可包括一些元素。例如,加密有效载荷212可包括状态号或计数器值(例如,全局状态计数器)、实例标识符的列表和关联值(例如,已改变的每个特征的标识符和每个新值是多少)和授权标签。
在一些示例中,密钥用于对有效载荷进行加密。在对有效载荷进行加密时,可生成授权标签以签署消息。在一些情况下,认证标签是为了认证消息而生成的散列值。例如,可生成认证标签并将其附加到加密有效载荷212,使得该认证标签成为广播通知204的一部分。一旦控制器206接收到广播通知204并对其进行解密,控制器206就可使用该散列作为附件202的散列来生成其自身的认证标签版本。如果控制器206生成的认证标签匹配附加到加密有效载荷212的认证标签(例如,附件202使用该散列生成的认证标签),则控制器206将知道加密有效载荷212中没有任何内容被改变。
包括在加密有效载荷212中的状态号是由附件202和控制器204两者维护的全局状态计数器。每次提供更新时,这两个设备都可以递增计数器。另外,状态计数器与密钥一起用于对有效载荷进行加密和解密。然而,计数器/密钥组合永远不会重复。因为状态计数器由两个设备维护,所以该状态计数器可被包含在加密有效载荷中,而没有单独地分享。使用状态计数器可防止回放攻击。如果广播通知204由第三方回放,则控制器206将知道,因为状态计数器不会递增。加密有效载荷212还包括实例标识符的列表和关联值。实例标识符和值的示例包括识别附件的特征和新状态(例如,打开、关闭,或一些非二进制值诸如温度值或亮度值)。可在单个广播通知中提供多个不同的标识符/值对,使得附件202可同时提供超过一个更新。授权标签(例如,密钥)也被包括在加密有效载荷212中。与计数器值非常类似,密钥是由每个设备单独地生成和维护的。在一些示例中,在附件202向控制器206注册时,控制器206可提供识别用于生成密钥的散列算法的信息。两个设备都可以使用公用/专用对密钥生成机制。关于特定算法和机制的信息可由控制器206提供给附件202,使得它们都使用相同的机制来生成匹配的密钥。如所指出的,附件202连同状态计数器(例如,随机数)将一起使用密钥以在生成广播通知204时对有效载荷进行加密。在生成广播通知204时,附件202可将广播通知204传输到控制器206并递增计数器。在一些情况下,控制器206可通过将接收确认指示符(例如,“ack”)传输到附件202来确认接收到广播通知204。在一些情况下,控制器206通过尝试发起与附件202的安全连接来确认接收。即使这两个设备不打算“连接”,伪确认也可充当附件202的指示符,表明控制器206接收到广播通知204。在一些情况下,当附件202接收到“ack”或“pseudo-ack”(例如,连接发起/请求)时,附件202可被配置为结束与控制器206的通信(例如,该附件可能不执行下文所述的回退过程,例如,在图4的框414和框418处)。这可为附件202节省显著电力。例如,它能够跳过一些计算步骤和数据传输,从而减少电池消耗。对于每个不同的附件,特定控制器可能需要跟踪相应的信息(例如,设备ID、计数器、密钥、实例ID等)。各相应信息可被存储在每个控制器、集线器或服务器上的表中。
示例性附件通信控制流
图3是用于实现本文所述的附件通信控制协议的过程300的流程图。在过程300中,附件302可通过一个或多个网络连接与控制器304通信。附件302可以是例如图1中的附件(例如,104至112)中的任一者,并且控制器304可以是例如图1的控制器102。控制器304和附件302可物理地位于同一家庭或建筑物中。
在框306处,附件302可接收密钥生成信息。如所指出的,密钥生成信息可识别用于生成共享密钥的散列算法(例如,HKDF-SHA-512或其他方案),该共享密钥将用于对广播通知的有效载荷进行加密和/或解密。当设备(例如,附件302)被添加到系统时、当用户决定配置自动化时或者当利用能够使用广播通知协议的新固件更新附件302时,可接收密钥生成信息。
在框308处,附件302可利用密钥生成信息来生成密钥310。如所指出的,密钥310可用于对有效载荷进行加密,该有效载荷包括状态计数器、状态更新信息(例如,实例标识符/值对)和密钥310。也可由控制器304使用相同的密钥生成信息来生成密钥。
在框311处,控制器302可传输识别一个或多个感兴趣的特征的信息(例如,注册或订阅特征)。在一些情况下,在框308处生成密钥310之后执行该步骤,以便能够动态地更新特征。换句话讲,用户可请求一次立即被通知某些特征,然后稍后改变想法并注销这些特征。当设备(例如,附件302)被添加到系统时、当用户决定配置自动化时或者当利用能够使用广播通知协议的新固件更新附件302时,也可接收该信息。所接收的信息识别附件302的哪些特征或特征类型将被包括在广播通知中。该识别可以以一个或多个实例标识符的形式。此外,在框308处接收到的信息还可包括指示附件302将广播通知提供给控制器304的频率的定时信息。例如,控制器304可将附件302配置为仅经过特定时间量之后和/或至少部分地基于其他定时因数来在某些时间提供状态更新。
在框312处,附件302可检测到将要向控制器304提供通知。该通知可能指示状态变化;然而,在一些情况下,该通知可包括剩余电池寿命信息或附件302仍然处于活动状态的指示。虽然图3示出了用户选择附件302的按钮或UI元素,但在该阶段可检测到任何状态变化或信息通知。例如,如果附件302的外部传感器识别出温度升高或降低,则温度的变化将触发通知。另选地,对于其他设备,可触发不同的通知。例如,门传感器可识别门何时已被打开或处于打开位置持续一定时间量。另外,可通过附件302确定是时候指示仍然处于活动状态来触发通知。一旦在框312处触发通知,附件302就可确定是否对通知进行广播。如所指出的,在一些示例中,附件302可能不对通知(例如,如果该通知是对应于控制器304未被注册的特征或类型的变化)进行广播。
在框314处,附件302可生成广播通知316。广播通知可包括设备ID和有效载荷(例如,实例标识符的列表和关联值(例如,状态更新)以及状态计数器)。另外,作为生成广播通知316的一部分,附件302可使用状态计数器和共享密钥对有效载荷(例如,通知和/或状态更新)进行加密。
在框318处,附件302可将广播通知316传输到控制器304。然后,控制器304可使用共享密钥和状态计数器对有效载荷进行解密、通过提取实例ID和值来解压缩有效载荷并且将这些值存储在对应于设备ID的表中。控制器304还可至少部分地基于从有效载荷解压缩的数据来执行一个或多个操作并且/或者将一个或多个指令传输到其他设备。例如,如果门被打开,则控制器304可被配置为打开一组灯。用户可使用指令来配置控制器304,这些指令在被执行时指示控制器304实施操作。
在一些情况下,控制器304可以是可通过Bluetooth(等)连接或者另选地经由WiFi路由器或其他接入点来接收广播通知316的移动用户设备(例如,移动电话)。然而,在其他情况下,控制器304可以是家庭集线器(例如,智能电视设备或其他基站设备),诸如图1的控制器103。如果控制器304充当家庭集线器,并且家庭中的其他控制器接收广播通知316,则该另一控制器可能能够对广播通知316进行解密(例如,家庭集线器可能已经将密钥和计数器提供给家庭中的所有控制器),然后可将广播通知316中继给家庭集线器和/或可与该另一控制器通信的其他控制器。这样,当发送广播通知316时,家庭中的每个控制器(或与配置了附件的用户的帐户相关联的每个控制器)将最终接收到广播通知316。然而,在一些示例中,一个或多个控制器可能完全丢失广播通知316。如果丢失了通知的设备是家庭集线器,则确实接收到该通知的一个或多个其他控制器可被配置为将广播通知316提供给家庭集线器。然后,家庭集线器可(例如,通过执行自动化、通知用户、记录附件仍然可用等)对状态更新或心跳进行操作。例如,家庭集线器可充当中央引擎,该中央引擎用于确定哪些控制器对包含在广播通知316中的信息(例如,如果广播通知316识别出某一事件)感兴趣、哪些自动化将基于该信息来运行、其他什么附件将基于该信息而被控制等。
图4是另一流程图,这一次示出了用于实现本文所述的附件通信控制协议的过程400。在过程400中,附件402可与控制器404通信(例如,这些设备可彼此靠近并且经由Bluetooth或其他近程通信协议进行通信),并且可通过一个或多个网络连接与控制器404通信。附件402可以是例如图1中的附件(例如,104至112)中的任一者,并且控制器404可以是例如图1的控制器102。过程400类似于过程300,不同的是在过程400中,可不利用附件通信控制协议来配置和/或更新控制器404。因此,控制器404可期望或以其他方式监听通告,在该通告上,该控制器将利用握手信息或安全会话信息来响应附件402。因此,如果未利用附件通信控制协议来更新控制器404(例如,控制器404仍然在运行旧操作系统),则控制器404在其接收到广播通知(例如,图3的广播通知316)时可能不知道要执行什么操作。在这种情况下,控制器404可能忽略广播通知,并且如在先前使用的方法中所期望的那样继续等待通告。由于附件402在发送广播通知之后将继续使用先前使用的方法,因此如果控制器404未被更新,则该控制器可在忽略广播通知之后遵循先前使用的方法。另选地,如果已利用协议更新了控制器404,则在过程400结束时接收到的信息可能是冗余的并且被忽略。换句话讲,如果控制器404已被更新,并且因此能够且确实解压缩并利用广播通知中的信息,则控制器404将知道忽略随后接收到的通告。更新的控制器可被配置为期望在接收到广播通知之后看到通告。因此,该控制器可更主动地忽略通告(而不是接收其不能理解的数据)。
在框406处,附件402可检测要呈现的状态通知(例如,检测触发)。这类似于附件302可如何在图3的框312处检测状态通知。类似地,图4示出了用户选择附件402的按钮或UI元素,此时可检测到任何状态通知。例如,如果附件402的外部传感器识别出温度升高或降低,则温度的变化将是所检测到的状态通知。另选地,对于其他设备,可检测到不同的状态通知。例如,门传感器可识别门何时已被打开或处于打开位置持续一定时间量。一旦在框406处检测到状态通知,附件402就可确定是否对状态通知进行广播。如所指出的,在一些示例中,附件402可能不对状态(例如,如果该状态对应于控制器304未被注册的特征或类型)进行广播。
在框408处,附件402可生成广播通知410。广播通知可包括设备ID和有效载荷(例如,实例标识符的列表和关联值(例如,状态更新)以及状态计数器)。另外,作为生成广播通知410的一部分,附件402可使用状态计数器和共享密钥对有效载荷(例如,状态通知)进行加密。
在框412处,附件402可将广播通知410传输到控制器404。如果已利用新协议配置了控制器404,那么该控制器可使用共享密钥和状态计数器对有效载荷进行解密、通过提取实例ID和值来解压缩有效载荷并且将这些值存储在对应于设备ID的表中。控制器304还可至少部分地基于从有效载荷解压缩的数据来执行一个或多个操作并且/或者将一个或多个指令传输到其他设备。例如,如果开关被激活并且有效载荷指示更新为从“关闭”变为“打开”的开关,则控制器404可被配置为打开一个或多个灯。用户可使用指令来配置控制器404,这些指令在被执行时指示控制器404实施操作。另选地,如果未利用新协议来配置控制器404,则控制器404可能不被配备为处理广播通知410。换句话讲,控制器404可能不知道如何处理广播通知410,因此控制器404可能会忽略该广播通知。在一些示例中,当传输广播通知410时,控制器404可能超出附件402的范围。然而,另一附件可在范围内,并且可接收广播通知410。在这种情况下,另一附件可将广播通知410识别为旨在用于控制器404(或一些其他设备),并且可将广播通知410重新广播到控制器404(或一些其他设备)。这样,任何附件或附件组可充当继电器或继电器组,以最终将广播通知410发送到其预期接收人(例如,在这种情况下为控制器404)。
在框414处,附件402可生成通告416。通告416被配置为指示附件402具有状态更新;然而,通告416不包括有效载荷。相反,通告416仅仅是让控制器404知道已准备好传输状态更新的通知。
在框418处,附件402可将通告416传输到控制器404。在一些情况下,不管状态更新是否包括关于控制器404被注册的特征的信息,都可生成和/或传输通告416。另外,即使利用新协议适当地配置控制器404,也可生成和传输通告416。在这种情况下,控制器404将理解通告416是冗余的,并且控制器404可忽略通告416。然而,当尚未利用新协议更新控制器404时,通告416的生成和传输使得能够与旧的、过时的或其他未更新的控制器设备向后兼容。
图5是另一流程图,这一次示出了用于实现本文所述的附件通信控制协议的过程500。在过程500中,附件502与控制器504通信,并且可通过一个或多个网络连接与控制器504通信。附件502可以是例如图1中的附件(例如,104至112)中的任一者,并且控制器504可以是例如图1的控制器102。过程500类似于过程300和过程400。在该示例中,已利用协议更新了控制器404,因此该控制器被配置为执行指令以与附件502一起工作以实现协议(例如,包括对广播通知进行解密等)。
在框506处,控制器504可向附件502提供(例如,传输)配置信息、设备ID和密钥生成信息。该配置信息可包括识别控制器504将要针对附件502的哪些特征而被注册的信息。另外,配置信息可包括用于针对特定特征通知控制器504的频率的定时规则。例如,控制器504可请求以“每次改变”的频率注册其第一特征并且/或者以“每天一次”或“每x一次”的频率注册其第二特征,其中“x”是某个时间段。如所指出的,设备ID可由控制器504或一些其他设备(例如,网络集线器或身份管理服务器)随机生成,并且对于与控制器504通信的每个附件可以是唯一的。密钥信息可包括密钥生成信息(例如,识别要使用什么加密算法、与已知公钥配对的私钥等)。在一些示例中,密钥信息还可包括何时生成密钥的指令(例如,经过一定次数的使用(例如355次等)之后、经过一定时间量(例如8天等)之后、在检测到恶意连接尝试之后、一旦需要滚动状态号等)。
在框508处,附件502可从控制器504接收配置信息、设备ID和密钥信息。附件502可利用该信息来确定何时生成密钥和/或生成密钥的频率。附件502还可利用该信息来确定何时重新生成密钥(例如,生成用于代替旧密钥的新密钥)。
在框510处,附件502可生成或重新生成新密钥。如所指出的,可使用密钥信息来生成密钥,并且该生成可至少部分地基于利用公用/专用对加密机制的一种或多种散列算法。
在框512处,控制器504也可生成或重新生成新密钥。由控制器504生成的密钥将与在框510处由附件502生成的密钥相同,因为它们将使用相同的安全协议。换句话讲,附件502的安全协议和控制器504的安全协议将匹配。
在框514处,附件502可识别附件502的特征中的一者或多者的状态变化。例如,附件502可检测到用户已选择按钮或开关、温度已升高或降低超过某个阈值、门或窗户已被打开、运动已被检测到等。
在框516处,附件502可检查从控制器504接收到的配置信息。通过检查配置信息,附件502可能能够确定在框514处检测到(例如,识别出)的状态变化是否匹配控制器504已被注册的特征中的一者。基于该确定,附件502将确定是否报告所检测到的变化。
在框518处,附件502将确定是否报告状态更新。该确定可至少部分地基于是注册控制器504的该特征、特征的类型还是特定变化。另外,该确定可至少部分地基于自上次状态更新以来经过的时间表或时间量。如果附件502确定不报告状态更新,则附件设备502可返回至框514以继续等待下一个状态变化。否则,附件502可前进至框520。
在框520处,已在框518处确定报告状态变化的附件502可将状态信息(连同有效载荷的其余部分)加密成加密有效载荷。如所描述的,加密过程可包括将散列算法与在框510处生成的密钥和全局状态计数器(例如,随机数)一起使用。另外,将状态更新或更新、随机数和密钥(例如,公钥/私钥对的公钥)作为有效载荷加密在一起。
在框522处,附件502可生成广播通知。广播通知将包括在框520处被加密的状态信息(和随机数)。另外,广播通知将包括在框510处生成的密钥和从控制器504接收到的设备ID。
在框524处,附件502可将广播通知传输到控制器504。在一些示例中,广播通知可以是经由Bluetooth连接或经由WiFi连接的单次通知。然而,在其他示例中,不存在持久连接,并且广播通知将需要在一段时间内重复传输。例如,附件502可将广播通知信标(例如,重复传输到范围内的任何和所有设备)一段时间(例如,30毫秒(ms)等)。
在框526处,附件502将在传输广播通知之后递增计数器。这使得能够检测回放攻击并确保控制器504能够确认其刚接收到的广播通知是最近的广播通知。
在框528处,控制器504接收在框524处由附件502传输的广播通知。在一些示例中,控制器504被配置为监听或扫描来自任何附件设备或其他控制器设备的消息。扫描可以某间隔进行持续一定时间量。例如,控制器504可每300ms扫描一次消息,每次30ms。换句话讲,控制器504可连续30ms扫描消息,然后等待300ms,然后再次扫描30ms。可以这些或其他时间间隔重复此操作直到接收到广播通知,或不管是否接收到任何消息均可以这些或其他时间间隔重复此操作。
在框530处,控制器504可确认广播通知是适当的下一广播通知。这可通过以下方式来确认:a)检查设备ID;以及b)使用状态计数器和密钥来尝试对加密有效载荷进行解密。控制器504将知道密钥是准确的,因为该控制器的密钥和附件502的密钥是使用匹配算法生成的,并且因为该控制器的密钥被包括在广播通知中。因此,如果有效载荷未正确解密,则在控制器504处维护的状态计数器和在附件502处维护的状态计数器(例如,用于对有效载荷进行加密的状态计数器)不匹配。这可能意味着控制器504丢失了由附件502传输的一些广播通知,或者正在尝试回放攻击。另外,在一些示例中,可通过生成认证标签并将其与作为加密有效载荷的一部分的认证标签进行比较来执行广播通知的认证。如果广播通知由控制器504确认,则可将确认(例如,虚设连接请求)发送回附件502。另外,控制器504可至少部分地基于从广播通知中提取的状态更新(例如,一旦该广播通知被解密和解压缩)来执行其被配置为执行的任何操作。如果检测到回放攻击,则控制器504可生成新密钥,并指示附件502也生成新密钥。在一些情况下,可通过识别包括在广播通知中的计数器值是与控制器504已接收到的广播通知对应的计数器值来检测回放攻击。
在框532处,控制器504可递增计数器以跟上在框526处由附件502递增的计数器。如所指出的,在一些情况下,计数器值在一段时间之后将回滚至零。例如,如果密钥是42位,那么将存在356个不同的可能密钥;并且,由于密钥和计数器组合不会重复,计数器可在355之后回滚至零。可适当地使用其他场景以将计数器回滚至零,同时避免使同一计数器/密钥对重复。
虽然图3至图5示出了附件将广播通知提供给控制器(例如,移动设备或网络连接集线器)的流程,但应当理解,附件通信控制协议也可在相反方向上使用。换句话讲,控制器可使用该协议向一个或多个附件(例如,在组或场景中)发送更新指令(例如,在广播通知中)。这种功能的一个示例包括控制器指示一组灯同时打开。在该示例中,将要求灯附件始终处于监听状态,因此,灯附件被插入电源(或具有非常坚固或耐用的电池)的工作状态最佳。如果灯附件一直在监听,则控制器可按照上文所述的方式将广播通知发送到组中的每个灯,并且有效载荷可包括指令而不是状态更新。该指令可指示附件关于附件的哪个特征将被改变。场景可被配置有多个不同的附件和/或附件类型,使得单个广播通知能够指示若干不同附件关于特征变化。例如,当前门被打开时,控制器可使用上述协议来实现场景:a)打开加热器;b)打开灯;以及c)在音频播放器上播放音乐。广播通知可在单个加密有效载荷中包括用于a)、b)和c)的指令。
示例性设备
本文所述的实施方案可在电子设备中实现,这些电子设备可为大致常规的设计并且适于符合附件通信控制协议以支持广播通知(例如,安全广播会话)和/或命令和控制操作,附件(第一电子设备)可通过该广播通知将状态更新提供给控制器(第二设备),控制器(第一电子设备)可通过这些命令和控制操作控制附件(第二电子设备)的操作。
图6是根据本公开的实施方案的控制器600的简化框图。控制器600可实现本文所述的控制器功能、行为和能力中的任何或全部,以及未明确描述的其他功能、行为和能力。控制器600可包括处理子系统610、存储设备612、用户界面614、通信接口616、安全元件618和密码逻辑模块620。控制器600还可包括其他部件(未明确示出),诸如电池、电力控制器和可操作以提供各种增强能力的其他部件。在各种实施方案中,控制器600可在台式计算机、膝上型计算机、平板电脑、智能电话、可穿戴计算设备或具有任何期望形状因数的其他系统中实现。此外,如上所述,控制器600可部分地在基站中实现,并部分地在与基站通信并提供用户界面的移动单元中实现。
存储设备612可例如使用磁盘、闪存存储器或任何其他非暂态存储介质或介质的组合来实现,并且可包括易失性和/或非易失性介质。在一些实施方案中,存储设备612可存储将由处理子系统610执行的一个或多个应用程序和/或操作系统程序,包括用于实现本文所描述的由控制器执行的任何或所有操作的程序。例如,存储设备612可存储统一的控制器应用程序,所述控制器应用程序可读取附件定义记录并基于其中信息来生成用于控制该附件的图形用户界面。在一些实施方案中,本文所述的控制器功能的部分(或全部)可在操作系统程序而非应用程序中实现。在一些实施方案中,存储设备612还可存储为特定附件或特定类别的附件(例如,用于管理IP相机附件的IP相机应用程序或用于与门锁附件交互的安全应用程序)设计的应用程序。
用户界面614可包括输入设备诸如触控板、触摸屏、滚轮、点击轮、拨号盘、按钮、开关、小键盘、麦克风等;以及输出设备诸如视频屏幕、指示灯、扬声器、耳机接口等,连同支持性电子器件(例如,数模转换器或模数转换器、信号处理器等)。用户可操作用户界面614的输入设备以调用控制器600的功能,并且可经由用户界面614的输出设备来查看和/或收听来自控制器600的输出。
处理子系统610可以实现为一个或多个集成电路,例如一个或多个单核或多核微处理器或微控制器,这些微处理器或微控制器的示例在本领域中是已知的。在操作中,处理系统610可控制控制器600的操作。在各种实施方案中,处理子系统610可响应于程序代码来执行各种程序,并且可维护多个同时执行的程序或进程。在任何给定时间,待执行的程序代码中的一些或全部程序代码可驻留在处理子系统610和/或存储介质诸如存储设备612中。
通过合适的编程,处理子系统610可为控制器600提供各种功能。例如,在一些实施方案中,处理子系统610可实现如由控制器实现的上述各种过程(或其部分)。处理子系统610还可执行其他程序(包括可存储在存储设备612中的程序)以控制控制器600的其他功能。在一些实施方案中,这些程序可例如通过生成待发送到附件的消息和/或通过从附件接收消息与附件进行交互。此类消息可符合如上所述的附件通信控制协议。
通信接口616可为控制器600提供语音和/或数据通信能力。在一些实施方案中,通信接口616可包括:用于访问无线语音和/或数据网络(例如,使用蜂窝电话技术、数据网络技术诸如4G、5G/LTE、Wi-Fi(IEEE 902.11系列标准)或其他移动通信技术,或其任何组合)的射频(RF)收发器部件、用于短程无线通信(例如,使用Bluetooth标准和/或Bluetooth LE标准、NFC等)的部件和/或其他部件。在一些实施方案中,除了无线接口之外或代替无线接口,通信接口616可提供有线网络连接性(例如,以太网)。通信接口616可使用硬件部件(例如,驱动电路、天线、调制器/解调器、编码器/解码器,以及其他模拟信号处理电路和/或数字信号处理电路)与软件部件的组合来实现。在一些实施方案中,通信接口616可使用相同传输手段或不同传输手段同时支持多个通信信道。
安全存储模块618可以是可安全地存储用于控制器600的密码信息的集成电路等。可存储在安全存储模块618内的信息的示例包括控制器的长期公钥和私钥622(如上所述的LTPKC、LTSKC)以及附件的列表(例如,将附件ID映射到如上所述已完成配对设置或配对添加过程的附件的附件长期公钥LTPKA的查找表)。还可以将查找表配置为使用随机生成的设备ID来映射MAC地址。可以随机时间间隔滚动(例如,变为新的设备ID)设备ID以避免第三方检测设备ID或基于所检测到的ID的列表检测家庭。查找表还可被配置为使用计数器、安全生成的密钥以及实例ID的列表来映射每个附件,这些实例ID识别控制器希望跟踪的附件的哪些特征(例如,列出要更新控制器的哪些特征)。
在一些实施方案中,密码操作可在与安全存储模块618通信的密码逻辑模块620中实现。在物理上,密码逻辑模块620可根据需要在具有安全存储模块618的相同集成电路或不同集成电路(例如,处理子系统610中的处理器)中实现。密码逻辑模块620可包括实现或支持控制器600的密码操作(包括上述任何或所有的密码操作)的各种逻辑电路(根据需要是固定的或可编程的)。安全存储模块618和/或密码逻辑模块620可对控制器600的其余部分表现为“黑盒”。因此,例如,通信接口616可以加密形式接收其不能解密的消息,并且可简单地将消息递送到处理子系统610。处理子系统610也可能无法解密消息,但其可将消息识别为加密的并将其递送到密码逻辑模块620。密码逻辑模块620可解密消息(例如,使用从安全存储模块618提取的信息)并确定哪些信息要返回到处理子系统610。因此,某些信息可仅在安全存储模块618和密码逻辑模块620内可用。如果安全存储模块618和密码逻辑模块620在仅执行来自内部安全储存库的代码的单个集成电路上实现,则这可能使信息提取非常困难,从而可提供高度的安全性。其他具体实施也是可能的。
图7是根据本公开的实施方案的附件700的简化框图。附件700可实现本文所述的附件功能、行为和能力中的任何或全部,以及未明确描述的其他功能、行为和能力。附件700可包括存储设备728、处理子系统730、用户界面732、附件专用硬件734、通信接口736、安全元件738和密码逻辑模块740。附件700还可包括其他部件(未明确示出),诸如电池、电力控制器和可操作以提供各种增强能力的其他部件。
附件700表示可由控制器诸如图6的控制器600操作的一大类附件,并且此类附件在能力、复杂性和形状因数方面可能有很大不同。各种附件可包括图7中未明确示出的部件,包括但不限于:具有固定或可移除的存储介质的存储设备(磁盘、闪存存储器等);视频屏幕、扬声器或用于连接至外部音频/视频设备的端口;相机部件,诸如镜头、图像传感器和用于相机部件的控件(例如,光圈、变焦、曝光时间、帧速率等);用于记录音频(单独或与视频记录结合)的麦克风;用于接收输入(例如,以激活其他附件或以其他方式向其他附件提供指令)的开关或按钮、用于检测条件的传感器(例如,恒温器的温度传感器、门或窗户的接触传感器等)等。
存储设备728可例如使用磁盘、闪存存储器或任何其他非暂态存储介质或介质的组合来实现,并且可包括易失性和/或非易失性介质。在一些实施方案中,存储设备728可存储将由处理子系统730执行的一个或多个程序以及与特定附件行为相关的操作,所述一个或多个程序包括用于实现如正由附件执行的上述各种操作的程序。存储设备728还可存储附件对象或附件定义记录(例如,如上所述),该存储附件对象或附件定义记录可例如如上所述被提供给控制器设备。存储设备728还可存储附件状态信息和可在附件700的操作期间使用的任何其他数据。
处理子系统730可包括例如执行程序代码以便执行与附件700相关联的各种功能的一个或多个单核或多核微处理器和/或微控制器。例如,处理子系统730可实现如正由附件实现的本文所述的任何或所有操作,例如通过执行存储在存储设备728中的程序代码。处理子系统730还可执行其他程序以控制附件730的其他功能。在一些情况下,由处理子系统730执行的程序可例如通过生成待发送到控制器的消息(例如,广播通知)和/或从控制器接收消息来与控制器(例如,控制器600)进行交互。此类消息可符合上述的附件通信控制协议。
用户界面732可包括用户可操作的输入设备诸如触控板、触摸屏、滚轮、点击轮、拨号盘、按钮、开关、小键盘、麦克风等;以及输出设备诸如视频屏幕、指示灯、扬声器、耳机接口等,连同支持性电子器件(例如,数模转换器或模数转换器、信号处理器等)。根据特定附件700的具体实施,用户可操作用户界面732的输入设备以调用附件700的功能,并且可经由用户界面734的输出设备来查看和/或收听来自附件700的输出。某些附件可能提供最小的或没有用户界面。
附件专用硬件734可包括可存在于附件700中以启用或支持其功能的任何其他部件。例如,在各种实施方案中,附件专用硬件734可包括使用固定或可移除的存储介质的一个或多个存储设备;GPS接收器;电源和/或电力管理电路;相机;麦克风;一个或多个致动器;环境传感器(例如,温度传感器、压力传感器、加速度计、化学传感器等);等等。应当理解,可通过提供合适的特定于附件的硬件734来支持任何类型的附件功能。
通信接口736可为附件700提供语音和/或数据通信能力。在一些实施方案中,通信接口736可包括:用于访问无线语音和/或数据网络(例如,使用蜂窝电话技术、数据网络技术诸如4G、5G/LTE、Wi-Fi(IEEE 902.11系列标准)或其他移动通信技术,或其任何组合)的射频(RF)收发器部件、用于短程无线通信(例如,使用Bluetooth标准和/或Bluetooth LE标准、NFC等)的部件和/或其他部件。在一些实施方案中,除了无线接口之外或代替无线接口,通信接口736可提供有线网络连接性(例如,以太网)。通信接口736可使用硬件部件(例如,驱动电路、天线、调制器/解调器、编码器/解码器,以及其他模拟信号处理电路和/或数字信号处理电路)与软件部件的组合来实现。在一些实施方案中,通信接口736可使用相同传输手段或不同传输手段同时支持多个通信信道。
安全存储模块738可以是可安全地存储用于附件700的密码信息的集成电路等。可存储在安全存储模块738内的信息的示例包括附件的长期公钥和私钥742(如上所述的LTPKA、LTSKA)以及注册的控制器744的列表(例如,将控制器ID映射到如上所述已完成配对设置或配对添加过程的控制器的控制器长期公钥LTPKC的查找表)。
在一些实施方案中,密码操作可在与安全存储模块738通信的密码逻辑模块740中实现。在物理上,密码逻辑模块740可根据需要在具有安全存储模块738的相同集成电路或不同集成电路(例如,处理子系统730中的处理器)中实现。密码逻辑模块740可包括实现或支持附件700的密码操作的各种逻辑电路(根据需要是固定的或可编程的),包括上述任何或所有密码操作。安全存储模块738和/或密码逻辑模块740可对附件700的其余部分表现为“黑盒”。因此,例如,通信接口736可以加密形式接收其不能解密的消息,并且可简单地将消息递送到处理子系统730。处理子系统730也可能无法解密消息,但其可将消息识别为加密的并将其递送到密码逻辑模块740。密码逻辑模块740可解密消息(例如,使用从安全存储模块738提取的信息)并确定哪些信息要返回到处理子系统730。因此,某些信息可仅在安全存储模块738和密码逻辑模块740内可用。如果安全存储模块738和密码逻辑模块740在仅执行来自内部安全储存库的代码的单个集成电路上实现,则这可能使信息提取非常困难,从而可提供高度的安全性。其他具体实施也是可能的。
附件700可以是与控制器诸如图6的控制器600交互的任何电子设备。在一些实施方案中,控制器600可通过如上所述的附件700的操作来提供远程控制。例如,控制器600可为附件700提供远程用户界面,该远程用户界面可包括输入控件和输出控件两者(例如,用于显示从附件700获得的当前状态信息的显示屏和用于允许状态信息的变化的输入控件诸如触摸屏覆盖)。在各种实施方案中,控制器600可控制附件700的任何功能并且还可从附件700接收数据。
图8示出了根据本公开的实施方案的附件800的附件架构的示例。附件架构被示出为一组交互子系统,其中每个子系统包括一个或多个模块。应当理解,可使用在一个或多个可编程处理器和/或一个或多个固定功能处理器上执行的程序代码来实现每个模块,并且处理器可包括用于控制其他硬件设备(例如,致动器、显示器等)的输出信令和/或用于从其他硬件设备(例如,键盘;触摸屏;来自致动器、马达或传感器的反馈或状态信号等)接收信号的输入信令。一些子系统可包括永久数据存储装置,该永久数据存储装置可使用任何类型的非易失性存储设备(例如,半导体闪存存储器、EEPROM、磁盘或光盘等)来实现。尽管未示出,但子系统中的一些或全部可包括附加硬件元件,诸如显示器、键盘、触摸屏、麦克风、扬声器、马达、致动器、传感器等。
安全子系统802可包括安全存储元件804、广播通知模块806和密码逻辑模块814。安全存储元件804可与图7的安全存储元件738或上述其他安全存储元件类似或相同。在一些实施方案中,安全存储元件804用于安全地存储附件800的长期公钥/密钥对(例如,如上所述的LTPKA、LTSKA)以及每个控制器的配对记录,其中附件800与每个控制器建立配对。在附件800结合不同的控制器使用不同的长期公钥的实施方案中,每个配对记录还可包括要与配对控制器一起使用的长期公钥的指示符。如果需要,可包括其他信息。
广播通知模块806可实现本文所述的附件通信控制协议的附件部分。在一些示例中,广播通知模块806可结合密码逻辑814生成广播通知,该广播通知可被发送到控制器以实现安全广播会话。在一些示例中,广播通知模块806被配置为将有效载荷提供给密码逻辑模块814,然后在将加密有效载荷传输到控制器之前将该加密有效载荷封装到广播通知中。另外,在一些示例中,广播通知模块806被配置为生成心跳。
从安全性/隐私的角度来看,心跳很有用,因为它们能够随机生成可在随机时间传输到控制器的数据。在一些情况下,恶意第三方可能会尝试检测家庭中有哪些设备。因此,即使第三方不能访问消息中的数据,知道家庭中的设备之间正在发送什么消息也是安全隐患。恶意第三方可使用消息本身来帮助告知他们存在哪些设备、这些设备执行什么操作以及如何欺骗这些设备。通过使附件向控制器提供随机心跳,这可能混淆第三方并潜在地阻止恶意尝试。因此,广播通知模块806的一种功能是生成随机心跳消息并在随机时间发送这些消息。因此,一些广播通知将包含加密有效载荷,而其他广播通知将包含心跳(例如,空有效载荷,或具有对控制器无意义的数据的有效载荷)。在一些情况下,心跳的有效载荷可包括将广播通知识别为心跳而不是状态更新的信息。心跳的有效载荷还可指示附件仍然存在(例如,电池仍具有足够的电力来发送广播通知)。也可利用识别心跳的特定实例ID对心跳的有效载荷进行加密(例如,可存在用于心跳的IID,该IID在被解密时指示控制器该有效载荷用于心跳)。
心跳对于低功率附件也有用。例如,一些附件可仅在纽扣电池(或其他低电力电池)上运行。这些附件的电池容量有限,因此不应报告广播通知太频繁。另外,这些低功率附件中的一些被配置成这样,因为这些附件不需要经常报告变化(例如,它们感测本质上不会经常发生的事物)。例如,开关(例如,接触传感器)可能仅需要在用户激活开关时报告。对于某些用途,用户可能不经常(例如,一天一次或一天两次,或者甚至更少)访问开关。在一些情况下,低功率附件可被配置为定期(例如,每两小时)提供不具有有效载荷(例如,心跳)的广播通知。该广播通知使控制器知道附件的电池仍然在运行。这样,控制器可使用户知道电池何时耗尽(例如,如果在上次广播通知(无论广播通知包括状态更新还是心跳)之后超过两个小时)。然而,如所指出的,广播通知模块806还可被配置为比调度的心跳更快地提供随机心跳(例如,以便增加系统的安全性/隐私)。
密码逻辑模块814可实现可由附件800使用的密码算法。示例包括:密钥生成算法;SRP中使用的算法和功能;散列算法,诸如HKDF-SHA-512;基于密钥的加密/解密算法,诸如ChaCha20-Poly1305、Curve25519、Ed25519和/或其他算法。在一些实施方案中,密码逻辑模块814可提供可由附件800的其他模块使用来调用密码算法和相关服务的API(应用程序接口)。可支持任何数量的密码算法和相关服务及其组合。
附件动作子系统830可例如响应于经由控制器交互子系统850从控制器接收到的请求来管理附件800的硬件和/或软件部件的各种操作。例如,附件800可结合可采取特定动作(例如,打开或关闭门、操作相机等)的各种操作部件832(或与其通信)。操作部件832可包括硬件和/或软件部件,并且给定操作部件832可响应来自效应器模块834的所接收的控制信号(例如,数字或模拟形式的电信号)并且/或者向反馈模块836生成反馈信号(例如,数字或模拟形式的电信号)。
效应器模块834可向操作部件832生成控制信号,例如以实现或执行用户所请求的操作。特定信号可取决于被寻址的特定操作部件832。以举例的方式,操作部件832可包括可接通或断开电源的开关电路,并且效应器模块832可向开关电路生成信号以接通或断开电源。又如,操作部件832可包括机电致动器,该机电致动器可响应于电控制信号来产生物理对象的运动(例如,闩锁或解锁锁舌、打开或关闭门),并且效应器模块832可向致动器生成信号。再如,操作部件832可包括用于控制数字相机(根据具体实施,相机本身可能是或可能不是操作部件)的API,并且效应器模块832可调用API调用以控制数字相机。在各种实施方案中,效应器模块834可响应于经由控制器接口子系统850从控制器接收到的请求和/或在附件800的用户界面处接收到的输入来操作。
反馈模块836可从操作部件832接收反馈信号。特定信号可取决于特定操作部件832。例如,开关电路可提供指示开关的当前状态的反馈信号。机电致动器可提供指示当前状态(例如,物理对象的位置和/或运动)的反馈信号。API可(例如,在从API调用返回时)提供错误代码或状态代码。又如,操作部件832可包括用于各种环境条件的一个或多个传感器(例如,运动传感器、位置传感器、温度传感器、障碍物传感器等),并且反馈模块836可从这些传感器接收传感器数据信号。在一些实施方案中,反馈模块836可基于所接收的反馈信号将反馈信息提供给控制器交互子系统850。
控制器交互子系统850可支持附件800和控制器之间的交互。附件对象存储元件852可使用易失性存储介质或非易失性存储介质(例如,半导体闪存存储器、EEPROM、DRAM、SRAM、磁盘或光盘等)来实现。在一些实施方案中,附件对象存储元件852可用于存储可由控制器使用来与附件800进行交互的一个或多个附件对象的表示。可以根据请求(例如,在注册期间或在与控制器执行配对验证过程之后)将所存储的附件对象提供给控制器,并且可随着附件的状态改变来更新所存储的附件对象。例如,反馈模块836可基于从操作部件832接收到的反馈信号来更新所存储的附件对象。
发现模块854可执行与使附件800可被控制器发现相关的操作,诸如对广播通知和/或通告进行广播、从尚未建立配对的控制器接收执行配对设置的请求等。
请求处理模块856可接收和处理来自控制器的请求消息。例如,响应于(例如,用于写入如上所述的锁定状态特征的)所接收的请求消息,请求处理模块856可确定是否允许该请求(例如,控制器是否存在配对验证状态、是否使用有效的会话密钥对该消息进行加密以及控制器是否具有执行所请求的动作的权限)。假设该请求是有效的,则请求处理模块856可向效应器模块834生成指令(例如,以致动锁定机构)。在一些实施方案中,确定是否允许该请求可包括对该消息进行解密,并且请求处理模块856可结合处理该请求来调用由密码逻辑模块814支持的功能。在一些实施方案中,请求处理模块856可与安全子系统802进行交互,以在配对设置、配对验证、配对添加或配对移除操作期间接收并处理从控制器接收到的请求。
响应生成模块858可生成并发送对请求消息的响应并将响应消息发送到控制器。例如,如果请求处理模块856接收到请求并确定该请求不被允许,则请求处理模块856可因此通知响应生成模块9758,并且响应生成模块858可生成错误响应。另一方面,如果请求处理模块856接收到请求并确定该请求经允许,则请求处理模块856可通知响应生成模块858:已接收到经允许的请求并且该请求正在由效应器模块834处理。在一些实施方案中,响应模块858可等待从反馈模块836接收反馈信息,然后生成并入了反馈信息的响应消息。例如,如果响应生成模块858接收到读取传感器或打开锁定的请求,则响应生成模块858可等待从反馈模块836接收传感器读数或锁定打开的确认,然后生成适当的响应消息。在一些实施方案中,可在发送之前对响应消息进行加密,并且响应生成模块858可结合对该消息进行加密来调用由密码逻辑模块814支持的功能。在一些实施方案中,响应生成模块858可与安全子系统802进行交互,以在配对设置、配对验证、配对添加或配对移除操作期间生成响应并将该响应发送到控制器。
通知生成模块860可(例如,在每当更新存储在附件对象存储元件852中的附件对象时)从反馈模块836接收信息,并且可基于该信息向控制器生成通知消息。如上所述,可支持各种通知机制,并且通知生成模块860可支持这些通知机制中的任一者或全部。例如,在被动通知的情况下,通知处理模块860可简单地更新在附件对象存储元件852中维护的内部状态计数器。在广播通知和/或通告通知的情况下,通知生成模块860可更新状态计数器并指示发现模块854生成包括更新的状态计数器值的广播通知或通告。在事件通知的情况下,通知模块860可指示响应生成模块858生成待发送到如上所述的订阅控制器的未经请求的响应(例如,如上所述的EVENT消息)。在一些实施方案中,通知模块860可维护用于各种通知机制和/或各种特征的订阅控制器的列表,并且可根据是否已订阅任何控制器来发起一个或多个机制。在一些实施方案中,可在附件对象存储元件852中维护订阅信息。
通信接口模块870可提供服务以支持与其他设备(包括控制器)的通信。在一些实施方案中,通信接口模块870可实现Bluetooth LE协议栈872和/或HTTP/IP协议栈874。Bluetooth LE协议栈872可根据Bluetooth LE传输协议提供对输出消息的格式化和对所接收的消息的解释。HTTP/IP协议栈874可根据HTTP和IP传输协议提供对输出消息的格式化和对所接收的消息的解释。虽然Bluetooth LE和HTTP/IP用作示例,但应当理解,可在通信接口模块870内支持传输协议的任何组合,并且控制器的给定实例可支持一个或多个传输协议。如上所述,附件800可在设备交互的客户端/服务器模型中充当服务器设备,并且Bluetooth LE协议栈872和/或HTTP/IP协议栈874可被配置为支持服务器行为。
在一些实施方案中,可修改通信接口模块870内的协议栈以生成某些非标准消息。例如,如上所述,HTTP/IP协议栈874可被配置为从附件生成未经请求的“事件”消息。
在一些实施方案中,通信接口模块870可提供可由其他模块使用来将消息发送并且/或者接收到外部设备的API。API可被设计成与传输不可知的,并且可在通信接口模块870内对特定消息的传输进行选择,这对于附件800内的其他模块是透明的。可基于端口配置将在附件800的通信端口处接收到的消息发送到Bluetooth LE栈872或HTTP/IP栈874,并且Bluetooth LE栈872和HTTP/IP栈874中的每一者可将输出消息发送到适当配置的通信端口。
图9示出了根据本公开的实施方案的控制器900的控制器架构的示例。控制器架构被示出为一组交互子系统,其中每个子系统包括一个或多个模块。应当理解,可使用在一个或多个可编程处理器和/或一个或多个固定功能处理器上执行的程序代码来实现每个模块,并且处理器可包括用于控制其他硬件设备(例如,致动器、显示器等)的输出信令和/或用于从其他硬件设备(例如,键盘;触摸屏;来自致动器、马达或传感器的反馈或状态信号等)接收信号的输入信令。一些子系统可包括永久数据存储装置,该永久数据存储装置可使用任何类型的非易失性存储设备(例如,半导体闪存存储器、EEPROM、磁盘或光盘等)来实现。尽管未示出,但子系统中的一些或全部可包括附加硬件元件,诸如显示器、键盘、触摸屏、麦克风、扬声器、传感器等。
安全子系统902可包括安全存储元件904、注册模块906、ID共享模块908、丢失更新模块910和密码逻辑模块914。安全存储元件904可与图6的安全存储元件618或上述其他安全存储元件类似或相同。在一些实施方案中,安全存储元件904用于安全地存储密钥信息,包括识别已为哪些附件生成了哪些密钥的映射。另外,安全存储元件904可存储控制器900的长期公钥/密钥对(例如,如上所述的LTPKC、LTSKC)以及每个附件的配对记录,其中控制器900与每个附件建立配对。如上所述,每个配对记录可包括配对附件的标识符、配对附件的长期公钥,以及可选地其他信息诸如控制器900与配对附件交互的权限设置(例如,控制器900是否具有管理员权限)。在控制器900结合不同的附件使用不同的长期公钥的实施方案中,每个配对记录还可包括要与配对附件一起使用的长期公钥的指示符。如果需要,可包括其他信息。
注册模块906可实现本文所述的附件通信控制协议的一些控制器部分。在一些实施方案中,注册模块906被配置为通过提供启用安全广播会话的信息来向附件注册。此类信息包括与附件的特征对应的实例ID的列表,控制器900正在请求对这些特征的状态更新。实例ID的列表还可包括定时信息(例如,附件应当报告每个特征的频率)以及识别特征是否与自动化相关联的自动化信息(例如,控制器900是否被编程为基于状态或关于附件的更新来指示另一个设备)。注册模块906还可为每个附件提供设备ID。在一些实施方案中,将随机生成设备ID并将其存储在安全存储装置904中。另外,作为安全性/隐私特征,设备ID可定期地(例如,至少部分地基于时间表)或随机地改变。随机改变设备ID可帮助防止恶意第三方识别出家庭中有多少设备和/或哪些设备。在其他示例中,每当生成新密钥时并且/或者如果检测到或怀疑有恶意活动,则可滚动(例如,改变)设备ID。例如,可检测到或预测恶意攻击模式,并且此类检测或预测可触发设备ID更新。
密钥/ID共享模块908可实现本文所述的附件通信控制协议的一些控制器部分。在一些实施方案中,密钥/ID共享模块908被配置为实现用于与其他设备(例如,在网络上或范围内的其他附件)共享设备ID和对应密钥的方案。当控制器900被配置为集线器或基站时,该方案是有用的。在该场景中,密钥/ID共享模块908可将附件设备ID和相关联的加密密钥传输到家庭中的所有其他设备。在一些示例中,可将共享信息提供给可更新家庭网络上的每个设备的服务器(例如,云服务提供商),或者密钥/ID共享模块908可(例如,使用局域网(LAN)、用于邻近范围内设备的短程通信和/或来自网络上其他设备的继电器)直接传输信息。在任何情况下,一旦与所有设备共享信息(例如,设备ID和/或密钥),则也可共享输入广播通知。使用该密钥和设备特定计数器(例如,网络上的每个设备的计数器必须由网络上的每个其他设备维护),接收该中继广播通知的所有设备将能够对有效载荷进行解密、更新关于所改变的设备(例如,发送初始广播通知的附件)的状态的记录并递增用于所改变的设备的设备特定计数器。由密钥/ID共享模块908共享密钥/ID信息还使得可能更靠近所改变的设备(例如,如果所改变的设备移动到控制器900的范围之外)的其他附件将广播通知中继给控制器900并且/或者对广播通知的有效载荷进行解密并将状态更新传输到控制器900。
丢失更新模块910可实现本文所述的附件通信控制协议的一些控制器部分。在一些实施方案中,广播通知可能丢失(或被恶意第三方欺骗/回放)。当无法用与附件(例如,发起过广播通知的附件)相关联的所存储的计数器对加密有效载荷进行解密时,可识别丢失的(或假的)广播通知。一旦识别出了这一点,丢失更新模块910可被配置为使控制器900和发端附件再次同步。为了做到这一点,丢失更新模块910被配置为使计数器递增一并重试对所接收的广播通知的有效载荷进行解密。如果这不起作用,则丢失更新模块910将继续递增计数器,尝试在每一轮对有效载荷进行解密。这可能发生在一些特定次数的尝试(例如,五次递增)或直到同步了设备。一旦同步了计数器,丢失更新模块910将能够告知丢失了多少更新。使用该信息,丢失更新模块910可与附件建立安全会话(例如,如上所述的配对验证会话),并请求丢失的状态更新的日志。可至少部分地基于日志数据来执行所有适当的自动化、用户通知和数据表更新,然后丢失更新模块910可指示控制器900恢复到本文所述的标准附件控制协议。另外,在一些示例中,控制器900将为该附件生成新设备ID和/或生成新密钥(并指示附件生成相同的新密钥)。
密码逻辑模块914可实现可由控制器900使用的密码算法。示例包括:密钥生成算法;SRP中使用的算法和功能;散列算法,诸如HKDF-SHA-512;基于密钥的加密/解密算法,诸如ChaCha20-Poly1305、Curve25519、Ed25519和/或其他算法。在一些实施方案中,密码逻辑模块914可提供可由控制器900的其他模块使用来调用密码算法和相关服务的API(应用程序接口)。可支持任何数量的密码算法和相关服务及其组合。
用户交互子系统930可管理与控制器900的用户的交互。例如,用户界面生成模块932可生成例如要在显示设备上呈现给用户的用户界面。用户界面可包括可由用户操作以与附件进行交互的控制元件。例如,如上所述,控制器900可基于在附件对象中提供的信息来呈现图形用户界面。用户输入接收器模块934可从用户界面接收输入并处理该输入以确定响应于该输入要采取的动作(例如,生成待发送到附件的消息)。在一些实施方案中,用户输入接收器模块934可响应于用户输入来调用控制器900的其他模块的功能。
附件交互子系统950可支持控制器900和附件之间的交互。附件对象存储元件952可使用易失性存储介质或非易失性存储介质(例如,半导体闪存存储器、EEPROM、DRAM、SRAM、磁盘或光盘等)来实现。在一些实施方案中,附件对象存储元件952可用于存储控制器900具有其信息的每个附件的表示。例如,如上所述,在注册期间或与附件建立配对之后,控制器诸如控制器900可从附件获得附件定义记录,该附件定义记录可包括一个或多个附件对象。控制器900可将由此获得的附件对象存储在附件对象存储元件952中。可以多种方式使用所存储的附件对象,所述多种方式包括:(例如,由用户界面生成模块932)生成用户界面;(例如,由用户输入接收器模块934)解释用户输入;生成对附件的请求;并且/或者从附件接收响应或通知。
附件发现模块954可执行与发现附件相关的操作,例如,监听广播、确定是否与所发现的附件配对等。
请求生成模块956可生成请求并将该请求发送到附件。例如,响应于来自用户输入接收器模块934(例如,用于解锁门)的指令,请求生成模块956可向附件生成适当的请求消息(例如,写入如上所述的锁定状态特征)。上面描述了请求消息的示例。在一些实施方案中,生成消息可包括对该消息进行加密,并且请求生成模块956可结合生成请求来调用由密码逻辑模块914支持的功能。在一些实施方案中,请求生成模块956可与安全子系统902进行交互,以在配对设置、配对验证、配对添加或配对移除操作期间生成请求并将该请求发送到附件。
响应处理模块958可接收并处理对可从附件接收的请求消息的任何响应。例如,在请求生成模块956将(例如,用于写入如上所述的锁定状态特征的)请求消息发送到附件之后,响应处理模块958可从该附件接收响应消息并可解释该消息。在一些实施方案中,可以加密形式接收响应消息,并且响应处理模块958可结合解释该响应来调用由密码逻辑模块914支持的功能。响应处理模块958还可基于响应(例如,状态代码、是否发生错误等)将信息提供给用户界面子系统930,并且用户界面子系统930可基于该信息向用户生成反馈。在一些实施方案中,响应处理模块958还可基于包括在响应消息中的信息来更新附件对象存储元件952。在一些实施方案中,响应处理模块958可与安全子系统902进行交互,以在配对设置、配对验证、配对添加或配对移除操作期间接收并处理从附件接收到的响应。
通知处理模块960可接收并处理可从附件接收的通知消息。如上所述,可支持各种通知机制,并且通知处理模块960可支持这些通知机制中的任一者或全部。例如,在被动通知的情况下,通知处理模块960可将附件所报告的状态计数器值与(例如,附件对象存储元件952中)所存储的状态计数器值进行比较并且可检测差异。在一些实施方案中,在检测到差异时,通知处理模块960可指示请求生成模块956生成请求并将该请求发送到附件以获得附加状态信息(例如,更新的附件定义记录或其部分)。在通告通知的情况下,通知处理模块960可处理经由附件发现模块954接收到的通告以(例如,基于存储在附件存储元件952中的附件对象的状态计数器)检测具有状态变化的已知附件。在事件通知的情况下,未经请求的响应消息可由响应处理模块958接收,该响应处理模块可将消息识别为未经请求的响应(例如,如上所述的EVENT消息),并且可将该消息提供给通知模块960以用于进一步处理。不管特定通知机制如何,通知模块960均可确定所改变的状态信息的性质并将适当的信息提供给用户交互子系统930。在一些实施方案中,通知模块960还可更新附件对象存储元件952中所存储的附件对象。
通信接口模块970可提供服务以支持与其他设备(包括附件)的通信。在一些实施方案中,通信接口模块970可实现Bluetooth LE协议栈972和/或HTTP/IP协议栈974。Bluetooth LE协议栈972可根据Bluetooth LE传输协议提供对输出消息的格式化和对所接收的消息的解释。HTTP/IP协议栈974可根据HTTP和IP传输协议提供对输出消息的格式化和对所接收的消息的解释。虽然Bluetooth LE和HTTP/IP用作示例,但应当理解,可在通信接口模块970内支持传输协议的任何组合,并且控制器900的给定实例可支持一个或多个传输协议。如上所述,控制器900可在设备交互的客户端/服务器模型中充当客户端设备,并且Bluetooth LE协议栈972和/或HTTP/IP协议栈974可被配置为支持客户端行为。
在一些实施方案中,可修改通信接口模块970内的协议栈以识别某些非标准消息。例如,如上所述,HTTP/IP协议栈974可被配置为识别来自附件的未经请求的“事件”消息。
在一些实施方案中,通信接口模块970可提供可由其他模块使用来将消息发送并且/或者接收到外部设备的API。API可被设计成与传输不可知的,并且可在通信接口模块970内对特定消息的传输进行选择,这对于控制器900内的其他模块是透明的。可基于端口配置将在控制器900的通信端口(未示出)处接收到的消息发送到Bluetooth LE栈972或HTTP/IP栈974,并且Bluetooth LE栈972和HTTP/IP栈974中的每一者可将输出消息发送到适当配置的通信端口。
应当理解,本文所述的系统配置和部件是例示性的,并且变型和修改是可能的。应当理解,控制器600(控制器900)的具体实施可执行上述正由控制器执行的操作中的任一者或全部,并且附件700(附件800)的具体实施可执行上述正由附件执行的操作中的任何或全部;不同附图中结合使用不同的附图标号并非旨在暗示其他含义。控制器和/或附件可能具有本文并未明确描述的其他能力(例如,移动电话、全球定位系统(GPS)、宽带数据通信、互联网连接等)。根据具体实施,这些设备可以进行互操作,以便提供由任一(或两个)设备支持的任何功能性或提供在每个设备中部分地实现的功能性。在一些实施方案中,特定附件可具有无法经由特定控制器访问或调用但可经由另一控制器或通过直接与附件交互访问的某些功能。
此外,尽管本文参考特定块描述了控制器和附件,但应当理解,定义这些块是为了描述的方便,而并非旨在暗示部件部分的特定物理布置。此外,块不必对应于物理上不同的部件。可以例如通过对处理器进行编程或提供适当的控制电路来配置块以执行各种操作,并且根据初始配置的获得方式,各个块可能是可重新配置的或不可重新配置的。可在包括使用电路和软件的任何组合实现的电子设备在内的各种装置中实现本公开的实施方案。
在一些实施方案中,附件可通知任何控制器其状态的变化。例如,可支持被动通知过程、广播通知过程、主动通知过程和/或事件消息通知过程的任何组合。在一些实施方案中,控制器可将请求发送到附件以订阅关于特定特征的特定通知方法(例如,通告、主动和/或事件消息)。附件可维护各种控制器的订阅状态信息,并且可基于当前订阅状态生成特定类型的通知。
其他实施方案
虽然已结合具体实施方案对本公开进行了描述,但本领域的技术人员将认识到,许多修改形式是可能的。单个控制器可使用本文所述的过程来与任何数量的附件建立配对,并与不同的附件在不同时间选择性地通信。类似地,单个附件可由已与其建立配对的多个控制器(例如,使用如上所述的配对设置和配对添加)控制。可通过将功能建模为具有一个或多个特征的服务,并且允许控制器与该服务和/或其特征发生交互作用(例如,读取、修改、接收更新)来控制附件的任何功能。因此,不管附件功能或控制器形状因数或具体界面如何,如本文所述的协议和通信过程可为“统一的”,意味着它们可在任何环境下与一个或多个控制器和一个或多个附件一起应用。
此外,上面的一些示例具体地参考了HTTP,该协议可在支持标准互联网协议(IP)传输栈(例如,TCP/IP)的局域网和广域网上使用。然而,也可使用其他传输协议。例如,Bluetooth LE协议栈包括允许一个设备询问和修改另一设备的属性的通用属性(GATT)层。在一些实施方案中,可基于GATT模型将附件特征的实例作为属性暴露给控制器。因此,控制器还可使用Bluetooth LE询问(例如,读取)和修改(例如,写入)附件特征。在一些实施方案中,特定附件可支持IP和/或Bluetooth LE传输协议中的任一者或两者,并且控制器可根据附件的能力和由控制器建立的偏好来与使用IP的一些附件和使用Bluetooth LE的其他附件进行交互。
可使用专用部件和/或可编程处理器和/或其他可编程设备的任意组合来实现本文所描述的各种功能,例如方法、装置、计算机可读介质等。本文所述的各种过程可以任何组合方式在同一处理器或不同处理器上实现。在部件被描述为被配置为执行某些操作的情况下,可例如通过设计电子电路以执行操作、通过对可编程电子电路(诸如微处理器)进行编程以执行操作或其任何组合来实现此类配置。此外,虽然上述实施方案可能参考了具体硬件部件和软件部件,但本领域的技术人员应当理解,也可使用硬件部件和/或软件部件的不同组合,并且被描述为正在硬件中实现的特定操作也可能在软件中被实现,反之亦然。
可在各种计算机可读存储介质上对结合本文所述的各种特征的计算机程序进行编码和存储;合适的介质包括磁盘或磁带、光学存储介质诸如光盘(CD)或DVD(数字通用光盘)、闪存存储器,以及其他非暂态介质。可将用程序代码编码的计算机可读介质与兼容的电子设备封装在一起,或者该程序代码可独立于电子设备提供(例如,经由互联网下载或作为单独封装的计算机可读存储介质)。
因此,尽管已相对于具体实施方案描述了本公开,但应当理解,本公开旨在覆盖以下权利要求书范围内的所有修改形式和等同形式。
Claims (20)
1.一种用于附件通信的方法,包括:
在附件设备处接收识别所述附件设备的特征的信息,以向控制器设备报告关于所述附件设备的状态更新;
至少部分地基于与所述控制器设备的控制器安全协议匹配的附件安全协议来生成广播密钥;
从所述控制器设备接收识别所述附件设备的设备标识符;
由所述附件设备维护计数器值;
由所述附件设备识别与所述附件设备的所述特征相关联的状态信息;
由所述附件设备至少部分地基于识别所述特征的所述信息来确定提供与所述附件设备的所述特征相关联的所述状态信息;
由所述附件设备生成广播通知,所述广播通知包括所述设备标识符、所述计数器值和所述附件设备的所述状态信息,其中所述广播通知是使用所述广播密钥而被生成;
由所述附件设备根据时间阈值将所述广播通知传输到所述控制器设备;以及
由所述附件设备递增所述计数器值。
2.根据权利要求1所述的方法,其中在所述附件设备与所述控制器设备之间的握手操作之前将所述广播通知传输到所述控制器设备。
3.根据权利要求1所述的方法,其中所述设备标识符由所述控制器设备随机生成。
4.根据权利要求1所述的方法,其中所述状态信息包括在达到所述时间阈值之后传输的心跳通知,其中所述心跳通知不包括所述附件设备的状态变化的指示。
5.根据权利要求1所述的方法,其中所述状态信息包括所述特征的状态的变化的指示。
6.根据权利要求5所述的方法,其中至少部分地基于所述特征的所述状态的所述变化和识别所述特征的所述信息来生成所述广播通知。
7.一种附件设备,包括:
一个或多个存储器设备,所述一个或多个存储器设备被配置为存储计算机可执行指令;
一个或多个通信接口,所述一个或多个通信接口被配置为与控制器设备建立安全连接;以及
一个或多个处理器,所述一个或多个处理器与所述一个或多个存储器设备和所述一个或多个通信接口通信,所述一个或多个处理器被配置为访问所述一个或多个存储器设备并且执行所述计算机可执行指令以至少:
至少部分地基于与所述控制器设备相关联的安全协议来生成广播密钥;
从所述控制器设备接收用于所述附件设备的设备标识符;
识别与所述附件设备相关联的状态信息;
确定提供所述附件设备的所述状态信息;
生成广播通知,所述广播通知包括所述设备标识符和识别所述附件设备的所述状态信息的状态信息,其中所述广播通知是使用所述广播密钥而被生成;以及
将所述广播通知传输到所述控制器设备。
8.根据权利要求7所述的附件设备,其中在所述附件设备不实现与所述控制器设备的握手的情况下,所述广播通知被传输到所述控制器设备。
9.根据权利要求7所述的附件设备,其中在与所述控制器设备建立连接之前将所述广播通知传输到所述控制器设备。
10.根据权利要求7所述的附件设备,其中所述控制器设备包括与所述附件设备相同的用户帐户相关联的用户设备。
11.根据权利要求7所述的附件设备,其中至少部分地基于对所述附件设备的特征的变化的识别来确定提供所述附件设备的所述状态信息,并且其中所述附件设备从所述控制器设备接收对所述特征的识别结果。
12.根据权利要求7所述的附件设备,其中根据短程通信协议来传输所述广播通知。
13.根据权利要求7所述的附件设备,其中在生成所述广播通知之前对所述状态信息进行加密。
14.根据权利要求13所述的附件设备,其中所述状态信息包括指示所述附件设备处于活动状态的心跳消息。
15.一个或多个非暂态计算机可读介质,存储有计算机可执行指令,所述计算机可执行指令在被附件设备的一个或多个处理器执行时将所述一个或多个处理器配置为执行包括以下项的操作:
至少部分地基于与控制器设备相关联的安全协议来生成广播密钥;
从所述控制器设备接收用于所述附件设备的设备标识符;
识别与所述附件设备相关联的状态信息;
确定提供所述附件设备的所述状态信息;
生成包括所述设备标识符和所述状态信息的广播通知,其中所述广播通知是使用所述广播密钥而被生成;以及
在不与所述控制器设备建立通信会话的情况下将所述广播通知传输到所述控制器设备。
16.根据权利要求15所述的一个或多个非暂态计算机可读介质,其中在所述附件设备不首先将通告传输到所述控制器设备的情况下,所述广播通知被传输到所述控制器设备。
17.根据权利要求15所述的一个或多个非暂态计算机可读介质,其中从所述控制器设备接收所述设备标识符。
18.根据权利要求17所述的一个或多个非暂态计算机可读介质,其中所述操作还包括在从所述控制器设备接收所述设备标识符之前,向所述控制器设备注册所述附件设备。
19.根据权利要求15所述的一个或多个非暂态计算机可读介质,其中所述附件设备的特征对应于所述附件设备的功能。
20.根据权利要求15所述的一个或多个非暂态计算机可读介质,其中所述操作还包括针对所述广播通知的每次传输递增计数器。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210136256.XA CN114374567A (zh) | 2017-06-02 | 2018-03-29 | 附件通信控制 |
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201762514699P | 2017-06-02 | 2017-06-02 | |
US62/514,699 | 2017-06-02 | ||
US15/711,931 | 2017-09-21 | ||
US15/711,931 US10496508B2 (en) | 2017-06-02 | 2017-09-21 | Accessory communication control |
PCT/US2018/025084 WO2018222262A1 (en) | 2017-06-02 | 2018-03-29 | Accessory communication control |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210136256.XA Division CN114374567A (zh) | 2017-06-02 | 2018-03-29 | 附件通信控制 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110603800A CN110603800A (zh) | 2019-12-20 |
CN110603800B true CN110603800B (zh) | 2022-02-22 |
Family
ID=62063601
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201880030148.6A Active CN110603800B (zh) | 2017-06-02 | 2018-03-29 | 用于附件通信的方法、附件设备和计算机可读介质 |
CN202210136256.XA Pending CN114374567A (zh) | 2017-06-02 | 2018-03-29 | 附件通信控制 |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210136256.XA Pending CN114374567A (zh) | 2017-06-02 | 2018-03-29 | 附件通信控制 |
Country Status (4)
Country | Link |
---|---|
US (4) | US10496508B2 (zh) |
EP (2) | EP4007210A1 (zh) |
CN (2) | CN110603800B (zh) |
WO (1) | WO2018222262A1 (zh) |
Families Citing this family (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10496508B2 (en) | 2017-06-02 | 2019-12-03 | Apple Inc. | Accessory communication control |
US10708769B2 (en) * | 2017-12-20 | 2020-07-07 | Bose Corporation | Cloud assisted accessory pairing |
JP7212500B2 (ja) * | 2018-10-31 | 2023-01-25 | ダイキン工業株式会社 | 遠隔管理装置及び遠隔管理システム |
US11313168B2 (en) * | 2018-12-31 | 2022-04-26 | William Kyle Virgin | Universal add-on devices for feature enhancement of openers for movable barriers |
US11153147B2 (en) * | 2019-04-15 | 2021-10-19 | Motorola Mobility Llc | Dynamic event notification routing and delivery device and corresponding systems and methods |
US11308793B2 (en) | 2019-04-16 | 2022-04-19 | Distech Controls Inc. | Remote control device and method for interacting with a controlled appliance via the BLE standard |
US11294341B2 (en) * | 2019-04-16 | 2022-04-05 | Distech Controls Inc. | Controlled appliance and method for interacting with a remote control device via the BLE standard |
EP3739915B1 (en) * | 2019-05-16 | 2022-09-07 | ABB Schweiz AG | Sharing status data of a device |
JP7358074B2 (ja) * | 2019-05-31 | 2023-10-10 | キヤノン株式会社 | 情報処理装置、制御方法及びプログラム |
DE102020201236A1 (de) | 2020-01-31 | 2021-08-05 | Geze Gmbh | Wandverschlusssystem |
US11072310B1 (en) * | 2020-04-15 | 2021-07-27 | GM Global Technology Operations LLC | Method and system to mitigate smart phone battery drainage while using a virtual key to access a vehicle |
EP3910880A1 (en) * | 2020-05-14 | 2021-11-17 | Nokia Technologies Oy | Blockchain based device monitoring |
US11570156B2 (en) * | 2020-07-02 | 2023-01-31 | International Business Machines Corporation | Secure pairing of devices |
US20230084235A1 (en) * | 2021-09-13 | 2023-03-16 | Cisco Technology, Inc. | Concealing low power mobile device address during advertisement |
CN115086302B (zh) * | 2022-06-27 | 2023-06-20 | 杭州壹悟科技有限公司 | 物联网设备数据传输优化方法、系统、物联网设备、介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1516023A (zh) * | 2003-01-06 | 2004-07-28 | 国际商业机器公司 | 以用户为中心的服务提供设备和服务提供方法 |
CN105515853A (zh) * | 2015-12-03 | 2016-04-20 | 泰凌微电子(上海)有限公司 | 无线网络的节点及其状态更新方法 |
CN105981352A (zh) * | 2014-02-05 | 2016-09-28 | 苹果公司 | 用于在控制器和附件之间通信的统一通信协议 |
Family Cites Families (119)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS5474238A (en) | 1977-11-26 | 1979-06-14 | Toshiba Corp | Protection of flange from corrosion |
US5086385A (en) | 1989-01-31 | 1992-02-04 | Custom Command Systems | Expandable home automation system |
US5471190A (en) | 1989-07-20 | 1995-11-28 | Timothy D. Schoechle | Method and apparatus for resource allocation in a communication network system |
US5059871A (en) | 1990-07-09 | 1991-10-22 | Lightolier Incorporated | Programmable lighting control system linked by a local area network |
US5603081A (en) * | 1993-11-01 | 1997-02-11 | Telefonaktiebolaget Lm Ericsson | Method for communicating in a wireless communication system |
US5621662A (en) | 1994-02-15 | 1997-04-15 | Intellinet, Inc. | Home automation system |
WO1997029465A1 (en) | 1996-02-08 | 1997-08-14 | Philips Electronics N.V. | Initialisation of a wireless security system |
US6996402B2 (en) | 2000-08-29 | 2006-02-07 | Logan James D | Rules based methods and apparatus for generating notification messages based on the proximity of electronic devices to one another |
US6631271B1 (en) | 2000-08-29 | 2003-10-07 | James D. Logan | Rules based methods and apparatus |
EP0932840A1 (en) | 1996-10-17 | 1999-08-04 | Pinpoint Corporation | Article tracking system |
US6249680B1 (en) | 1997-01-08 | 2001-06-19 | U.S. Wireless Corporation | Radio transmitter location finding in CDMA wireless communication systems |
GB2339367B (en) | 1998-03-17 | 2002-12-04 | Sedex Ltd | A method and apparatus for electronic document exchange |
US7831930B2 (en) | 2001-11-20 | 2010-11-09 | Universal Electronics Inc. | System and method for displaying a user interface for a remote control application |
JP2002529779A (ja) | 1998-10-30 | 2002-09-10 | サイエンス アプリケーションズ インターナショナル コーポレイション | 保証されたシステム可用性を有する安全な通信のためのアジル・ネットワーク・プロトコル |
US6754678B2 (en) | 1999-12-20 | 2004-06-22 | California Institute Of Technology | Securely and autonomously synchronizing data in a distributed computing environment |
JP2001256156A (ja) | 2000-03-10 | 2001-09-21 | Victor Co Of Japan Ltd | 制御情報システムおよび制御情報伝送方法 |
US20060270457A1 (en) * | 2001-05-03 | 2006-11-30 | Lord Frank H | Multi media broadcasting, broadcast services for cell phone and other users and modified SIM card and related means for enabling such broadcast reception |
US6756998B1 (en) | 2000-10-19 | 2004-06-29 | Destiny Networks, Inc. | User interface and method for home automation system |
US6912429B1 (en) | 2000-10-19 | 2005-06-28 | Destiny Networks, Inc. | Home automation system and method |
JP2002354557A (ja) | 2001-05-29 | 2002-12-06 | Fujitsu Ltd | 機器制御システム |
US6703930B2 (en) | 2001-10-05 | 2004-03-09 | Hewlett-Packard Development Company, L.P. | Personal alerting apparatus and methods |
JP4129783B2 (ja) | 2002-07-10 | 2008-08-06 | ソニー株式会社 | リモートアクセスシステム及びリモートアクセス方法 |
US7068999B2 (en) | 2002-08-02 | 2006-06-27 | Symbol Technologies, Inc. | System and method for detection of a rogue wireless access point in a wireless communication network |
US8065317B2 (en) * | 2003-01-06 | 2011-11-22 | International Business Machines Corporation | User-centric service providing device and service providing method |
JP2004236215A (ja) | 2003-01-31 | 2004-08-19 | Nec Corp | 家庭内機器に対する遠隔制御システム |
US20040260407A1 (en) | 2003-04-08 | 2004-12-23 | William Wimsatt | Home automation control architecture |
US7047092B2 (en) | 2003-04-08 | 2006-05-16 | Coraccess Systems | Home automation contextual user interface |
US10444964B2 (en) | 2007-06-12 | 2019-10-15 | Icontrol Networks, Inc. | Control system user interface |
US20060046719A1 (en) | 2004-08-30 | 2006-03-02 | Holtschneider David J | Method and apparatus for automatic connection of communication devices |
KR100678897B1 (ko) | 2004-11-23 | 2007-02-07 | 삼성전자주식회사 | 홈 네트워크 장치 간의 보안 연결을 위한 시스템 및 방법 |
US7394393B2 (en) | 2005-08-02 | 2008-07-01 | Gm Global Technology Operations, Inc. | Adaptive driver workload estimator |
US8042048B2 (en) | 2005-11-17 | 2011-10-18 | Att Knowledge Ventures, L.P. | System and method for home automation |
US8516087B2 (en) | 2006-02-14 | 2013-08-20 | At&T Intellectual Property I, L.P. | Home automation system and method |
US7761119B2 (en) | 2006-07-05 | 2010-07-20 | Kyocera Corporation | Signal strength annunciators for multi-mode wireless communication devices |
US9198212B2 (en) | 2006-09-19 | 2015-11-24 | Marvell World Trade Ltd. | Direct link setup mechanisms for wireless LANs |
US7574417B1 (en) | 2006-09-28 | 2009-08-11 | Rockwell Automation Technologies, Inc. | Self configuration of embedded historians |
US7864043B2 (en) | 2007-03-28 | 2011-01-04 | Sony Ericsson Mobile Communications Ab | Home locating network |
US8522019B2 (en) | 2007-02-23 | 2013-08-27 | Qualcomm Incorporated | Method and apparatus to create trust domains based on proximity |
US8472874B2 (en) | 2007-03-14 | 2013-06-25 | Apple Inc. | Method and system for pairing of wireless devices using physical presence |
US8387124B2 (en) | 2007-03-15 | 2013-02-26 | Palo Alto Research Center Incorporated | Wormhole devices for usable secure access to remote resource |
US8169974B2 (en) | 2007-04-13 | 2012-05-01 | Hart Communication Foundation | Suspending transmissions in a wireless network |
US9363258B2 (en) | 2007-12-17 | 2016-06-07 | International Business Machines Corporation | Secure digital signature system |
JP4613969B2 (ja) | 2008-03-03 | 2011-01-19 | ソニー株式会社 | 通信装置、及び通信方法 |
US8516095B2 (en) * | 2008-05-23 | 2013-08-20 | Research In Motion Limited | Remote administration of mobile wireless devices |
US20090307255A1 (en) | 2008-06-06 | 2009-12-10 | Johnson Controls Technology Company | Graphical management of building devices |
US8706406B2 (en) | 2008-06-27 | 2014-04-22 | Yahoo! Inc. | System and method for determination and display of personalized distance |
US8750797B2 (en) | 2008-07-22 | 2014-06-10 | Nissaf Ketari | Proximity access and alarm apparatus |
US8156334B2 (en) | 2008-08-12 | 2012-04-10 | Texas Instruments Incorporated | Public key out-of-band transfer for mutual authentication |
US8116749B2 (en) | 2008-09-08 | 2012-02-14 | Proctor Jr James Arthur | Protocol for anonymous wireless communication |
ATE524897T1 (de) | 2008-09-17 | 2011-09-15 | Gmv Soluciones Globales Internet S A | Verfahren und system zur authentifizierung eines benutzers mit hilfe eines mobilfunkgeräts |
US20100091818A1 (en) | 2008-10-14 | 2010-04-15 | Sen Indranil S | Dynamic channel evaluation in wireless communication device |
US20140071895A1 (en) | 2008-12-12 | 2014-03-13 | Ryan H. Bane | Network Selection Based On Customizing Crowdsourced Connection Quality Data |
US8497796B2 (en) | 2009-01-23 | 2013-07-30 | Alcatel Lucent | Methods and apparatus for controlling one or more electronic devices based on the location of a user |
US20100234051A1 (en) | 2009-03-16 | 2010-09-16 | Apple Inc. | Accessory transceiver for mobile devices |
US8214645B2 (en) | 2009-04-08 | 2012-07-03 | Research In Motion Limited | Systems, devices, and methods for securely transmitting a security parameter to a computing device |
US8737917B2 (en) | 2009-07-24 | 2014-05-27 | Broadcom Corporation | Method and system for a dual-mode bluetooth low energy device |
KR101586089B1 (ko) | 2009-08-14 | 2016-01-15 | 삼성전자주식회사 | 근거리 통신을 이용한 무선 네트워크 연결 시스템 및 방법 그리고 그 장치 |
US8532962B2 (en) | 2009-12-23 | 2013-09-10 | Honeywell International Inc. | Approach for planning, designing and observing building systems |
US8200251B2 (en) | 2010-01-15 | 2012-06-12 | Apple Inc. | Determining a location of a mobile device using a location database |
US8917181B2 (en) | 2010-05-07 | 2014-12-23 | Mikael Edlund | Method for monitoring an individual |
US8483394B2 (en) | 2010-06-15 | 2013-07-09 | Los Alamos National Security, Llc | Secure multi-party communication with quantum key distribution managed by trusted authority |
US8464061B2 (en) | 2010-08-30 | 2013-06-11 | Apple Inc. | Secure wireless link between two devices using probes |
FR2966626B1 (fr) | 2010-10-26 | 2013-04-19 | Somfy Sas | Procede de fonctionnement d'une unite mobile de commande d'une installation domotique. |
US8375118B2 (en) | 2010-11-18 | 2013-02-12 | Verizon Patent And Licensing Inc. | Smart home device management |
US9032493B2 (en) | 2011-03-31 | 2015-05-12 | Intel Corporation | Connecting mobile devices, internet-connected vehicles, and cloud services |
US8494554B2 (en) | 2011-06-03 | 2013-07-23 | Apple Inc. | Mobile device location estimation |
US9021121B2 (en) | 2011-06-17 | 2015-04-28 | Lenovo (Singapore) Pte. Ltd. | Setting a rate of data transmission in a peer-to-peer mode |
US8813198B2 (en) | 2011-07-05 | 2014-08-19 | Apple Inc. | Configuration of accessories for wireless network access |
US8666313B2 (en) | 2011-07-29 | 2014-03-04 | Motorola Solutions, Inc. | Pairing devices using data exchanged in an out-of-band channel |
US11392708B2 (en) | 2011-08-05 | 2022-07-19 | Harris Corporation | Method and system for embedding security in a mobile communications device |
US20130086066A1 (en) | 2011-09-30 | 2013-04-04 | Siemens Akeiengesellschaft | Automated discovery and generation of hierarchies for building automation and control network objects |
US9020433B2 (en) | 2011-10-05 | 2015-04-28 | Apple Inc. | Low power wireless device discovery |
US8744439B2 (en) | 2011-10-07 | 2014-06-03 | Apple Inc. | Methods and apparatus for intelligent initiation of connections within a network |
TW201328401A (zh) | 2011-12-28 | 2013-07-01 | Univ Nat Central | 無線感測制動網路及其操作方法 |
US8671099B2 (en) | 2011-12-28 | 2014-03-11 | International Business Machines Corporation | Clustering devices in an internet of things (‘IoT’) |
WO2013109932A1 (en) | 2012-01-18 | 2013-07-25 | OneID Inc. | Methods and systems for secure identity management |
US20130217333A1 (en) | 2012-02-22 | 2013-08-22 | Qualcomm Incorporated | Determining rewards based on proximity of devices using short-range wireless broadcasts |
US9544075B2 (en) | 2012-02-22 | 2017-01-10 | Qualcomm Incorporated | Platform for wireless identity transmitter and system using short range wireless broadcast |
US8819247B2 (en) | 2012-05-08 | 2014-08-26 | Blackberry Limited | System and method for using a first device to communicate data from a second device |
DE102012208834A1 (de) | 2012-05-25 | 2013-11-28 | Siemens Aktiengesellschaft | Authentisierung eines Produktes gegenüber einem Authentisierer |
KR101657191B1 (ko) | 2012-06-06 | 2016-09-19 | 엠파이어 테크놀로지 디벨롭먼트 엘엘씨 | 소프트웨어 보호 메커니즘 |
US10536361B2 (en) | 2012-06-27 | 2020-01-14 | Ubiquiti Inc. | Method and apparatus for monitoring and processing sensor data from an electrical outlet |
US9715365B2 (en) | 2012-06-27 | 2017-07-25 | Sonos, Inc. | Systems and methods for mobile music zones |
US20140022061A1 (en) | 2012-07-17 | 2014-01-23 | Procter And Gamble, Inc. | Home network of connected consumer devices |
EP2881676B1 (en) | 2012-07-30 | 2018-09-05 | Panasonic Intellectual Property Management Co., Ltd. | Operation system for home electric appliances and program for operating home electric appliances |
US9007222B2 (en) | 2012-09-21 | 2015-04-14 | Google Inc. | Detector unit and sensing chamber therefor |
US20140113558A1 (en) | 2012-10-22 | 2014-04-24 | Apple Inc. | Proximity detection using an electronic device |
US8934921B2 (en) | 2012-12-14 | 2015-01-13 | Apple Inc. | Location determination using fingerprint data |
US8886217B2 (en) | 2012-12-31 | 2014-11-11 | Apple Inc. | Location-sensitive security levels and setting profiles based on detected location |
US9142114B2 (en) | 2013-01-28 | 2015-09-22 | Apple Inc. | Tracking group members' proximity |
US9413837B2 (en) | 2013-02-06 | 2016-08-09 | Facebook, Inc. | Routine deviation notification |
JP2014186663A (ja) | 2013-03-25 | 2014-10-02 | Toshiba Lighting & Technology Corp | 端末装置および制御システム |
JP5474238B1 (ja) | 2013-06-05 | 2014-04-16 | 三菱電機株式会社 | レイアウト生成システム、エネルギーマネジメントシステム、端末装置、レイアウト作成方法、および、プログラム |
US9267805B2 (en) | 2013-06-07 | 2016-02-23 | Apple Inc. | Modeling significant locations |
CN105284178B (zh) | 2013-06-10 | 2019-04-12 | 苹果公司 | 配置无线附件设备 |
US9191209B2 (en) * | 2013-06-25 | 2015-11-17 | Google Inc. | Efficient communication for devices of a home network |
US10177933B2 (en) * | 2014-02-05 | 2019-01-08 | Apple Inc. | Controller networks for an accessory management system |
US10454783B2 (en) | 2014-02-05 | 2019-10-22 | Apple Inc. | Accessory management system using environment model |
CN106416130B (zh) | 2014-02-14 | 2019-09-27 | 英特托拉斯技术公司 | 网络安全系统和方法 |
US9843894B2 (en) | 2014-05-30 | 2017-12-12 | Apple Inc. | Determining a size of a significant user location |
TWI576755B (zh) * | 2014-05-30 | 2017-04-01 | 蘋果公司 | 可在一第一控制器器件中執行之方法,控制器器件,電腦可讀儲存媒體 |
US9549375B2 (en) | 2014-05-30 | 2017-01-17 | Apple Inc. | Operating-mode transitions based on advertising information |
WO2015184382A2 (en) | 2014-05-30 | 2015-12-03 | Apple Inc. | Controller networks for an accessory management system |
CN105556867A (zh) | 2014-07-14 | 2016-05-04 | 华为技术有限公司 | 智能终端与车载终端互联的方法及装置 |
US10320639B2 (en) | 2014-08-08 | 2019-06-11 | Nokia Solutions And Networks Oy | Method of controlling user equipment communication with a network and corresponding apparatus and computer program product |
CN106664523A (zh) * | 2014-09-02 | 2017-05-10 | 高通股份有限公司 | 接近度应用发现和设置 |
US9817843B2 (en) | 2014-09-26 | 2017-11-14 | Mcafee, Inc. | Notification of human safety reputation of a place based on historical events, profile data, and dynamic factors |
CN104581879A (zh) | 2014-12-27 | 2015-04-29 | 深圳市慧为智能科技有限公司 | 移动终端协助网络连接的方法及装置 |
JP6489852B2 (ja) | 2015-02-02 | 2019-03-27 | キヤノン株式会社 | 通信装置、その制御方法、およびプログラム |
US10206170B2 (en) | 2015-02-05 | 2019-02-12 | Apple Inc. | Dynamic connection path detection and selection for wireless controllers and accessories |
US9680646B2 (en) | 2015-02-05 | 2017-06-13 | Apple Inc. | Relay service for communication between controllers and accessories |
US9736920B2 (en) | 2015-02-06 | 2017-08-15 | Mks Instruments, Inc. | Apparatus and method for plasma ignition with a self-resonating device |
CN112218271A (zh) | 2015-02-08 | 2021-01-12 | 苹果公司 | 车内无线通信 |
US9848026B2 (en) | 2015-06-05 | 2017-12-19 | Apple Inc. | Simultaneous wireless connections with improved efficiency |
US9900162B2 (en) | 2015-11-11 | 2018-02-20 | At&T Mobility Ii Llc | System and method for wireless network management |
US10055368B2 (en) * | 2016-02-26 | 2018-08-21 | Sandisk Technologies Llc | Mobile device and method for synchronizing use of the mobile device's communications port among a plurality of applications |
US10496508B2 (en) | 2017-06-02 | 2019-12-03 | Apple Inc. | Accessory communication control |
WO2018222024A1 (ko) | 2017-06-02 | 2018-12-06 | 엘지전자(주) | 블루투스 le 기술을 이용하여 디바이스를 연결하기 위한 방법 및 장치 |
US10533301B1 (en) | 2018-12-20 | 2020-01-14 | David Armas | GPS and laser grading control |
-
2017
- 2017-09-21 US US15/711,931 patent/US10496508B2/en active Active
-
2018
- 2018-03-29 WO PCT/US2018/025084 patent/WO2018222262A1/en unknown
- 2018-03-29 CN CN201880030148.6A patent/CN110603800B/zh active Active
- 2018-03-29 EP EP22153299.7A patent/EP4007210A1/en active Pending
- 2018-03-29 EP EP18720688.3A patent/EP3613187B1/en active Active
- 2018-03-29 CN CN202210136256.XA patent/CN114374567A/zh active Pending
-
2019
- 2019-11-25 US US16/693,746 patent/US11132275B2/en active Active
-
2021
- 2021-09-22 US US17/481,436 patent/US11698846B2/en active Active
-
2023
- 2023-05-17 US US18/198,700 patent/US20230289271A1/en active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1516023A (zh) * | 2003-01-06 | 2004-07-28 | 国际商业机器公司 | 以用户为中心的服务提供设备和服务提供方法 |
CN105981352A (zh) * | 2014-02-05 | 2016-09-28 | 苹果公司 | 用于在控制器和附件之间通信的统一通信协议 |
CN105515853A (zh) * | 2015-12-03 | 2016-04-20 | 泰凌微电子(上海)有限公司 | 无线网络的节点及其状态更新方法 |
Also Published As
Publication number | Publication date |
---|---|
US10496508B2 (en) | 2019-12-03 |
US11698846B2 (en) | 2023-07-11 |
CN114374567A (zh) | 2022-04-19 |
EP4007210A1 (en) | 2022-06-01 |
US20220004474A1 (en) | 2022-01-06 |
CN110603800A (zh) | 2019-12-20 |
US11132275B2 (en) | 2021-09-28 |
EP3613187A1 (en) | 2020-02-26 |
US20180349242A1 (en) | 2018-12-06 |
EP3613187B1 (en) | 2022-02-16 |
US20230289271A1 (en) | 2023-09-14 |
WO2018222262A1 (en) | 2018-12-06 |
US20200097380A1 (en) | 2020-03-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110603800B (zh) | 用于附件通信的方法、附件设备和计算机可读介质 | |
US11425104B2 (en) | Secure transfer of a data object between user devices | |
US20230023775A1 (en) | Uniform communication protocols for communication between controllers and accessories | |
US10177933B2 (en) | Controller networks for an accessory management system | |
EP3149548B1 (en) | Controller networks for an accessory management system | |
CN106961334B (zh) | 控制器和附件之间的安全无线通信 | |
CN114448743B (zh) | 用于授权控制器设备的技术 | |
WO2015184382A2 (en) | Controller networks for an accessory management system | |
CN110557845B (zh) | 配置附件网络连接 | |
WO2023239590A1 (en) | Prioritized resident electronic device in home |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |