控制设备的制作方法

文档序号:12515205阅读:193来源:国知局
控制设备的制作方法与工艺

本发明涉及在电操作设备之间进行信号传送以控制这些电操作设备的领域。



背景技术:

与分布式系统的交互可以以各种方式进行。在以太网网络中,例如,设备通过该网络互连并且以直接方式可彼此访问。相比之下,在互联网中,设备之间的消息传送可以使用互联网协议(IP)、寻址和域名来进行。例如,节点可以基于已知的域名来查询期望的对应节点的IP地址。可以向域名系统(DNS)提出这样的查询。通过更新到DNS,甚至可以在不中断连接的情况下处理更改的IP地址。

传感器网络可以包括彼此互连的传感器节点。传感器节点可以被配置为彼此通信并且向未包括在传感器网络中的另外的节点提供传感器信息。为此,传感器网络可以具有与外部IP网络不同的内部寻址系统。传感器网络中的至少一个节点可以是从传感器网络外部可寻址的,或者被配置为向传感器网络外部的节点提供信息。

在物联网(IoT)方案中,设想可以基于可以取决于所讨论的情况和应用的寻址方案来与大量可识别的设备或节点通信。为了使大量的可识别设备连接到IoT,设想根据互联网协议版本6(IPv6)的寻址而不是更有限的IPv4,因为IP地址否则可能用完。另一方面,使用网络地址转换(NAT)可以扩展IPv4寻址并且减轻IPv4地址的稀缺性,其中对使用性的影响可以根据期望何种通信而变化。

预见一些IoT节点在硬件和能量资源方面具有限制。例如,这样的节点可以仅具有有限的存储容量,它们可以在小型电池上操作和/或它们可以仅具有适度的处理器能力。为了实现它们在联网中的使用,已经设计了诸如约束应用协议(CoAP)的协议。CoAP已由互联网工程任务组标准化。



技术实现要素:

根据本发明的第一方面,提供了一种装置,该装置包括:至少一个接收机,被配置为经由第一信道接收本地节点的标识符和秘密值,并且经由第二信道接收随机值;以及至少一个处理核,被配置为使得向本地节点传送包括哈希值的第一消息,哈希值是基于包括秘密值、随机值和指令的集合而导出的。

第一方面的各种实施例可以包括来自以下标有项目符号的列表的至少一个特征:

●至少一个处理核被配置为导出哈希值

●至少一个接收机还被配置为通过第一信道接收PIN码,并且还基于PIN码来导出哈希值

●第一信道包括蓝牙信道、蓝牙低能量信道、近场通信信道、红外信道或视觉模式识别信道

●第二信道包括websocket信道、超文本传输协议信道、约束应用协议信道、可扩展消息处理现场协议、消息队列遥测传输、alljoyn或超文本传输协议信道2.0信道

●至少一个处理核被配置为使得经由第二信道传送第一消息

●至少一个处理核还被配置为使得向本地节点传送第二消息,第二消息包括第二哈希值,第二哈希值是基于包括秘密值、第二随机值和第二指令的集合而导出的,在装置中至少部分地作为对第一消息的响应而从本地节点接收第二随机值

●至少一个接收机还被配置为经由第一信道接收网络节点的标识符,以及至少一个处理核被配置为从网络节点请求被配置为使得控制本地节点的控制软件,其中请求包括本地节点的标识符

●本地节点的标识符包括本地节点的互联网协议地址、本地节点的完全合格的域名或指向websocket代理的指针

●至少一个处理核被配置为在装置中处理关于是否有必要将指令包括在消息中的指示。

根据本发明的第二方面,提供了一种装置,该装置包括至少一个处理核和包括计算机程序代码的至少一个存储器,至少一个存储器和所述计算机程序代码被配置为与至少一个处理核一起使得装置至少:存储与装置相关联的秘密值;向节点传送随机值;从节点接收消息,该消息包括第一哈希值;通过基于包括秘密值、指令和随机值的集合导出比较哈希值来验证第一哈希值;响应于比较哈希值匹配第一哈希值,使得装置按照指令进行动作;以及向节点传送第二随机值。

第二方面的各种实施例可以包括来自以下标有项目符号的列表的至少一个特征:

●除了第一哈希值之外,消息还包括指令

●至少一个存储器和计算机程序代码被配置为与至少一个处理核一起使得装置通过第一信道向节点提供秘密值以及通过第二信道从节点接收消息

●至少一个存储器和计算机程序代码被配置为与至少一个处理核一起使得装置至少部分地基于从装置经由第一信道提供给节点的PIN码来导出比较哈希值

●至少一个存储器和计算机程序代码被配置为与至少一个处理核一起使装置周期性地改变秘密值

●至少一个存储器和计算机程序代码被配置为与至少一个处理核一起使得装置在向节点传送随机值之后使用至少两个用于指令的可能值来导出至少两个比较哈希值

●至少一个存储器和计算机程序代码被配置为与至少一个处理核一起使得装置响应于接收到消息而向节点传送第二随机值。

根据本发明的第三方面,提供了一种方法,该方法包括经由第一信道接收本地节点的标识符和秘密值并且经由第二信道接收随机值,以及使得向本地节点传送包括哈希值的第一消息,哈希值是基于包括秘密值、随机值和指令的集合而导出的。

第三方面的各种实施例可以包括对应于来自结合第一方面列出的前面的标有项目符号的列表的特征的至少一个特征。

根据本发明的第四方面,提供了一种方法,该方法包括:存储与装置相关联的秘密值;向节点传送随机值;从节点接收消息,消息包括第一哈希值;通过基于包括秘密值、指令和随机值的集合导出比较哈希值,来验证第一哈希值;响应于比较哈希值匹配第一哈希值,使得装置按照指令进行动作;以及向节点传送第二随机值。

第四方面的各种实施例可以包括对应于来自结合第二方面列出的前面的标出项目符号的列表的特征的至少一个特征。

根据本发明的第五方面,提供了一种装置,该装置包括:用于经由第一信道接收本地节点的标识符和秘密值以及经由第二信道接收随机值的部件;以及用于使得向本地节点传送包括哈希值的第一消息的部件,哈希值是基于包括秘密值、随机值和指令的集合而导出的。

根据本发明的第六方面,提供了一种装置,包括:用于存储与装置相关联的秘密值的部件;用于向节点传送随机值的部件;用于从节点接收消息的部件,该消息包括第一哈希值;用于通过基于包括秘密值、指令和随机值的集合导出比较哈希值来验证第一哈希值的装置;用于响应于比较哈希值匹配第一哈希值,使得装置按照指令进行动作的部件;以及用于向节点传送第二随机值的部件。

根据本发明的第七方面,提供了一种非瞬时性计算机可读介质,其上存储有计算机可读指令的集合,该计算机可读指令当被至少一个处理器执行时,使得装置至少经由第一信道接收本地节点的标识符和秘密值,并且经由第二信道接收随机值,以及使得向本地节点传送包括哈希值的第一消息,该哈希值是基于包括秘密值、随机值和指令的集合而导出的。

根据本发明的第八方面,提供了一种非瞬时性计算机可读介质,其上存储有计算机可读指令的集合,该计算机可读指令当被至少一个处理器执行时,使得装置至少存储与装置相关联的秘密值,向节点传送随机值,从节点接收消息,消息包括第一哈希值,通过基于包括秘密值、指令和随机值的集合导出比较哈希值来验证第一哈希值,响应于比较哈希值匹配第一哈希值,使装置按照指令进行动作,并向节点传送第二随机值。

工业实用性:

本发明的至少一些实施例在本地设备的安全控制中找到工业应用。

附图说明

图1示出了能够支持本发明的至少一些实施例的示例系统;

图2示出了根据本发明的至少一些实施例的示例用例;

图3示出了能够支持本发明的至少一些实施例的示例装置;

图4示出了根据本发明的至少一些实施例的信号传送;

图5是根据本发明的至少一些实施例的第一方法的第一流程图;以及

图6是根据本发明的至少一些实施例的第二方法的第二流程图。

具体实施方式

可以使用本文所描述的本发明的实施例来构建具有低的存储器和/或处理要求的节点。通过在第一信道上提供将在第二信道上的通信中使用的秘密值,可以将接入限于具有对该节点的物理接入的单元。可以对每个消息采用不同的随机值以防止重放攻击。指令可以与秘密值和随机值一起被哈希处理,以使得节点能够以资源高效的方式来验证它们,使得例如不需要实现诸如传送层安全性(TLS)的加密通信协议。

图1示出了能够支持本发明的至少一些实施例的示例系统。图1的系统包括设备110,设备110例如可以包括智能电话、蜂窝电话、平板设备、手持设备、膝上型或台式计算机或其他合适的电子设备。设备110可以包括用户接口,其可以包括例如触摸屏用户接口或键盘加显示器用户接口。

本地节点120可以包括例如传感器、光控制、家庭自动化控制设备或其他合适的电子设备。在图1的示例中的本地节点120经由连接127连接到网关170。连接127可以包括有线连接或至少部分地包括无线连接。网关170经由连接176连接到网络160。网络160可以包括互联网或另一合适的网络,诸如例如公司网络。在一些实施例中,本地节点120经由连接127直接连接到网络160,并且不存在网关170。

在图1的系统中,设备110经由链路113通信地耦合到基站130。基站130可以被配置为根据如下至少一种无线技术来操作,诸如宽带码分多址(WCDMA)、长期演进(LTE)、IS-95或无线局域网(WLAN)(也被称为Wi-Fi)。链路113符合基站130和设备110被配置为支持的技术。链路113可以是双向的,因为其可以包括用于将信息从基站130传递到设备110的下行链路和用于将信息从设备110传递到基站130的上行链路。如果基站130仅支持WLAN而不支持诸如WCDMA或IS-95的蜂窝技术,备选地,它也可以被称为接入点,但是在本文中,为了清楚起见,贯穿全文使用术语基站。在一些实施例中,代替无线链路,链路113包括具有与网络160通信耦合的通信节点的有线链路。

在图1的系统中,基站130经由连接134通信地耦合到网络节点140。网络节点140可以包括无线电网络控制器、交换机或其它网络节点。网络节点140经由连接145通信地耦合到网关150。网关150反过来又经由连接156连接到网络160。连接134、145和156中的每一个可以是有线的或至少部分地是无线的。不是所有的连接134、145和156都需要是相同类型的。在一些实施例中,不存在网络节点140和/或网关150,使得基站130与网络160更直接地接触。

除了具有基站130的链路113之外,设备110能够经由本地链路112从本地节点120接收信息。本地链路112可以包括例如近场通信(NFC)、蓝牙、蓝牙LE或光学链路。光学链路可以包括红外链路,或者光学链路可以包括设备110使用包括在设备110中的相机来在算法上识别本地节点120显示的信息,该信息或者被永久地印刷在本地节点120上或者被显示在包括在本地节点120中的显示器122上。显示器122可以为例如单色液晶显示器或有机发光二极管(OLED)显示器。一般来说,本地链路112使得设备110能够在设备110物理上靠近本地节点120时从本地节点120获得信息。例如,靠近可以包括在5米或10米的半径内。在一些实施例中不存在显示器122。

一般来说,可以认为本地链路112包括第一信道,并且链路113包括第二信道。因此,第一信道是局部范围的信道。第一信道和第二信道可以基于不同的技术。设备110能够在本地链路112的情况下经由两个信道直接从本地节点120接收信息,并且在链路113的情况下,经由网关170、网络160、网关150、网络节点140和基站130从本地节点120接收信息。在一些实施例中,包括第一信道的本地链路112是双向的,而在其他实施例中,从如下意义上来说它是单向的,设备110可以通过其接收信息,但不通过其向本地节点120传送信息。

在使用中,设备110可以被配置为通过本地链路112从本地节点120获得信息。这种信息可以包括例如秘密值。例如,秘密值可以用二进制、十六进制或十进制格式表示。该信息还可以包括本地节点120的标识符。该信息还可以包括pin码。该信息还可以包括网络节点的标识符。例如,标识符可以包括统一资源定位符(URL)或统一资源标识符(URI)。网络节点的标识符涉及的网络节点可以包括网络节点140或另一网络节点,诸如例如服务器。同样地,本地节点120的标识符可以包括例如本地节点120的URL或URI。

设备110可以从由网络节点的标识符所标识的网络节点获取被配置为至少部分地控制本地节点120的控制软件。设备110可以通过在链路113上从所标识的网络节点请求软件来获取该软件。这样的请求可以包括或至少部分地基于来自本地节点120的在设备110中获得的网络节点的标识符。这样的请求可以包括本地节点120的标识符。设备110可以响应地接收控制软件。控制软件可以包括例如控制面板。控制软件可以包括例如JavaScript软件。控制软件的获取和获得可以基于例如安全超文本传送协议(HTTPS)。在设备110具有至少部分地控制本地节点120所需的软件的实施例中,可以不存在控制软件的获取,或者可以仅包括将控制软件更新到较新的版本。在一些实施例中,设备110不需要特定的控制软件来至少部分地控制本地节点120,因此不进行获取这种软件。

设备110被配置为打开到本地节点120的连接。该连接可以例如遍历基站130、网络节点140、网关150、网络160和网关170。通常,该连接可以在第二信道上打开。该连接可以包括在至少一个节点中维持的状态,使得能够在设备110和本地节点120之间传送消息。连接可以包括例如Websocket、CoAP或超文本传送协议HTTP连接。该连接可以是非加密连接,其中通过连接传送的数据不通过连接协议被加密。

Websocket连接可以用有限的资源运行,使得其在本地节点120是资源受限的情况下是有用选项。连接的建立包括在设备110和本地节点120之间交换至少一条消息。Websocket协议已经在互联网工程任务组(IETF)中被标准化。本地节点120可以例如在包括在另一消息中的连接建立过程中的消息中向设备110传送本地节点120已经生成的随机值。本地节点120可以将随机值的副本存储在包括在本地节点120中的存储器中。随机值可以例如以二进制、十六进制或十进制格式表示。本地节点120可以使用基于软件的随机数发生器,或者本地节点120可以至少部分地使用基于硬件的随机值生成过程。可用于生成随机值的硬件元件的示例是热噪声随机数发生器。

在接收到随机值和秘密值时,设备110可以向本地节点120发送指令。该指令可以包括在例如从设备110发送到本地节点120的第一消息中。该指令可以包括例如在本地节点120是家庭自动化控制设备的情况下关闭空调的指令。另一个示例是在本地节点120是配备有气压计的传感器节点的情况下向设备110提供大气压力的测量结果的指令。

设备110可以被配置为计算包括秘密值、随机值和指令的数据集的哈希,诸如例如滚动哈希或安全哈希。通常,所使用的哈希函数可以是加密哈希函数。在设备110在第一信道上获得pin码的情况下,pin码也可以包括在哈希函数的输入中。设备110可以在消息中向本地节点120提供哈希函数的输出,简单地称为哈希值或哈希。该消息还可以包括与哈希分开的指令。

一旦接收到消息,本地节点120可以通过导出秘密值、随机值、指令和(在pin码被使用的情况下)pin码的哈希,来验证哈希是否正确。如果导出的哈希与消息中接收的哈希相同,则哈希被正确地验证。在哈希不匹配的情况下,本地节点120可以被配置为丢弃该消息,和/或通过连接向设备110提供错误信号。

在一些实施例中,从设备110到本地节点120的包括哈希的消息不需要单独地包括指令。在这些实施例中,可能的指令的数量是有限的,并且本地节点120可以在向设备110发送随机值之后,预先计算秘密值、随机值和每个可能指令的哈希。在使用pin码的实施例中,pin码也用于预先计算哈希。这些预先计算的哈希可以存储在本地节点120的存储器中,并且本地节点120可以通过将它从设备110接收的哈希与预先计算的哈希进行比较来验证接收的哈希,直到找到匹配,在这种情况下,所接收的哈希由此被验证并且可以按照指令进行动作,因为本地节点120将知道在导出与从设备110接收的哈希匹配的哈希中使用了哪个指令。如果接收到的哈希与存储的预先计算的哈希中没有匹配的,则验证失败,并且本地节点120可以丢弃该消息,和/或通过连接向设备110提供错误信号。使用预先计算的哈希减少了时延,因为不需要仅在从设备110接收到消息之后才导出哈希。预先计算可以在向设备110传送随机值之后进行,例如响应于向设备110传送随机值而进行。

在一些实施例中,本地节点120被配置为在向设备110传送随机值之后开始预先计算哈希,但是可以在从设备110接收到包括哈希的消息之后继续导出具有可能指令的哈希。这可能是这种情况,例如,在本地节点120没有时间在设备110发送其具有哈希的消息之前来完全预先计算哈希。备选地,本地节点120中的预先计算过程可具有低优先级,这可使其缓慢地进行。在一些实施例中,执行后计算而不是预先计算,其中本地节点120响应于从设备110接收到包括哈希的消息而一个接一个地开始导出具有可能指令的哈希。这样,响应于确定在本地节点120中导出的哈希中的一个哈希匹配从设备110接收的哈希,本地节点120可以停止导出哈希。

在本地节点执行哈希的预计算和/或后计算并且设备110不需要在其发送到本地节点120的消息中包括指令的实施例中,设备110可以接收如下的指示:其发送给本地节点120以指示本地节点120的消息不需要包括除哈希之外的指令。例如,可以结合建立设备110和本地节点120之间的连接来从本地节点120接收这种指示。备选地,被配置为控制本地节点120的控制软件可以知道还单独包括指令是不必要的以及发送哈希足够。

是否需要包括指令可以取决于可能的指令的数量,具体而言,如果设备110可以向本地节点120发送的可能的不同指令的数量高,则在本地节点侧导出哈希也会很艰巨。在完成预先计算的情况下,本地节点120中的存储器约束可能限制预先计算和存储哈希的可能性。在后计算的情况下,大量可能的指令可能导致从设备110接收消息和按照指令进行动作之间的延迟,因为本地节点120在搜索与从设备110接收的哈希匹配的哈希中逐个导出哈希。

响应于来自其中哈希验证成功的设备110的指令,本地节点120可以被配置为响应地按照指令进行动作,并且通过连接将第二消息传送回设备110。第二消息可以包括与指令有关的确认和/或结果以及在本地节点120中生成的第二随机值。备选地,第二随机值可以在附加消息中从本地节点120被发送到设备110。如果设备110随后向本地节点120发送第二指令,则使用与第一消息的指令中使用的相似过程,但是在计算哈希时使用第二随机值。

从本地节点120发送到设备110的第二消息还可以包括使用秘密值和第二随机值作为输入而导出的哈希。因此,设备110能够检查第二消息是否源自拥有秘密值的节点。在具有pin码的实施例中,pin码也可以在导出该哈希时被用作输入。

本地节点120可以被配置为周期性地改变秘密值,例如通过生成随机值以用作新的秘密值。这增加了安全性,因为寻求本地节点120的控制的设备需要在第一信道上获得新的秘密值,并且不能依赖于先前获得的秘密值。

通过在每个指令之后改变随机值,防止了利用旧指令的重放攻击成功,因为旧指令消息中的哈希不再与在旧指令消息已被执行动作之后使用的随机值匹配。通过使用仅可通过本地链路获得的秘密值,可以向本地节点120传送指令的设备集合限于物理上足够靠近以通过第一信道从本地节点120获得秘密值的那些设备。例如,如果本地节点在酒店房间、办公室或其他访问控制的位置,则通过物理上靠近的设备实现对本地节点120的控制可能是有用的。因此,不需要为设备110和本地节点120之间的连接使用加密协议,这节省了设备110和本地节点120中的计算和存储器资源。

在采用pin码的实施例中,改变随机值使得pin码猜测攻击明显变慢,因为除了pin码之外,攻击者将需要猜测当前的随机值。

由于通过分析哈希来获得哈希的输入数据是困难的,所以可以通过本身未被加密的连接在设备110和本地节点120之间传送哈希。例如,由于哈希函数的数学性质,通过对设备110和本地节点120之间交换的消息进行窃听来确定秘密值将是非常困难的。

图2示出了根据本发明的至少一些实施例的示例用例。在图中示出了上面已经结合图1描述的设备110和本地节点120。在图2中,本地节点120存储预先计算的哈希值120-A、120-B、120-C、120-D和120-E,其中的每一个哈希值都是使用可能的指令导出的。换句话说,在图2的示例中存在五个可能的指令。

在设备110侧,设备110从包括秘密值110-A、随机值110-B、以及设备110希望本地设备120执行的指令110-C的输入数据导出哈希110-D。一旦已经导出哈希110-D,则从设备110向本地节点120传送哈希110-D。然后,本地节点120确定哈希110-D是否匹配任何预先计算的哈希值,如果匹配,则那个哈希值使得本地节点120能够确定设备110正在指示本地节点120执行的那个指令。

图3示出了能够支持本发明的至少一些实施例的示例装置。示出的是设备300,其可以包括例如图1或图2的设备110。包括在设备300中的是处理器310,其可以包括例如单核或多核处理器,其中单核处理器包括一个处理核,以及多核处理器包括多于一个处理核。处理器310可以包括例如高通骁龙800(Qualcomm Snapdragon 800)处理器。处理器310可以包括多于一个处理器。处理核可以包括例如由因特尔公司制造的Cortex-A8处理核或由高级微设备公司制造的布里斯班(Brisbane)处理核。处理器310可以包括至少一个专用集成电路(ASIC)。处理器310可以包括至少一个现场可编程门阵列(FPGA)。处理器310可以是用于在设备300中执行方法步骤的部件。处理器310可以至少部分地由计算机指令配置为执行动作。

设备300可以包括存储器320。存储器320可以包括随机存取存储器和/或永久存储器。存储器320可以包括至少一个RAM芯片。存储器320可以包括例如磁、光学和/或全息存储器。存储器320可以至少部分地可由处理器310访问。存储器320可以是用于存储信息的部件。存储器320可以包括处理器310被配置为执行的计算机指令。当配置成使处理器310执行某些动作的计算机指令被存储在存储器320中并且设备300整体被配置为使用来自存储器320的计算机指令在处理器310的指导下运行时,可以认为处理器310和/或其至少一个处理核被配置为执行所述特定动作。

设备300可以包括发射机330。设备300可以包括接收机340。发射机330和接收机340可以被配置为分别根据至少一种蜂窝或非蜂窝标准来发射和接收信息。发射机330可以包括多于一个发射机。接收机340可以包括多于一个接收机。发射机330和/或接收机340可以被配置为根据例如全球移动通信系统(GSM)、宽带码分多址(WCDMA)、长期演进(LTE)、IS-95、无线局域网(WLAN)、以太网和/或全球微波互联接入(WiMAX)标准来操作。

设备300可以包括近场通信(NFC)收发器350。NFC收发器350可以支持至少一种NFC技术,诸如NFC、蓝牙、Wibree或类似技术。

设备300可以包括用户接口UI 360。UI 360可以包括显示器、键盘、触摸屏、被布置成通过使得设备300振动来向用户发信号的振动器、扬声器和麦克风中的至少一种。用户可以能够经由UI 360操作设备300,例如以接受传入电话呼叫、发起电话呼叫或视频呼叫、浏览互联网、管理存储在存储器320中或存储在可经由发射机330和接收机340或经由NFC收发器350访问的云上的数字文件、和/或控制诸如图1或图2的本地节点120的本地节点。

设备300可以包括或被布置为接受用户身份模块370。用户身份模块370可以包括例如可安装在设备300中的订户身份模块(SIM)卡。用户身份模块370可以包括标识设备300的用户的订阅的信息。用户身份模块370可以包括密码信息,其可用于验证设备300的用户的身份和/或便于所传送的信息的加密和用于经由设备300进行的通信的设备300的用户的计费。

处理器310可以配备有发射机,发射机被布置为经由设备300内部的电引线将信息从处理器310输出到包括在设备300中的其他设备。这种发射机可以包括串行总线发射机,串行总线发射机被布置为例如经由至少一个电引线将信息输出到存储器320以在其中存储。作为串行总线的替代,发射机可以包括并行总线发射机。同样,处理器310可以包括接收机,接收机被布置为经由设备300内部的电引线从包括在设备300中的其他设备接收处理器310中的信息。这种接收机可以包括串行总线接收机,串行总线接收机被布置为例如经由至少一个电引线从接收机340接收用于在处理器310中处理的信息。作为串行总线的替代,接收机可以包括并行总线接收机。

设备300可以包括图3中未示出的其他设备。例如,在设备300包括智能电话的情况下,其可以包括至少一个数字相机。一些设备300可以包括后置相机和前置相机,其中后置相机可以旨在用于数字摄相,而前置相机用于视频电话。设备300可以包括被布置为至少部分地认证设备300的用户的指纹传感器。在一些实施例中,设备300没有上述至少一个设备。例如,一些设备300可以没有NFC收发器350和/或用户身份模块370。

处理器310、存储器320、发射机330、接收机340,NFC收发器350、UI 360和/或用户身份模块370可以以多种不同方式通过设备300内部的电引线互连。例如,上述设备中的每个设备可以分别连接到设备300内部的主总线,以允许设备交换信息。然而,如技术人员将理解的,这仅仅是一个示例,并且取决于实施例,在不脱离本发明的范围的情况下,可以选择互连至少两个前述设备的各种方式。

图4示出了根据本发明的至少一些实施例的信号传送。在垂直轴上,从左到右设置有服务器SRV、设备110和本地节点120。设备110和本地节点120可以基本上对应于上面结合图1和图2所讨论的类似元件。服务器SRV可以基本上对应到上面讨论的网络节点,其中设备110可以获取上述控制软件。时间从图的顶部向底部前进。

在阶段410中,设备110在第一信道上从本地设备120获得信息。该信息可以包括本地设备120的标识符和秘密值。可选地,该信息还可以包括pin码和/或服务器SRV的标识符。

在可选阶段420和430中,设备110可以分别请求和接收被配置为实现对本地节点120的控制的控制软件。阶段420的请求可以至少部分地基于服务器SRV的标识符。

在阶段440中,设备110和本地节点120形成连接,例如协议连接,例如Websocket连接。关于连接的形成,本地节点120向设备110提供随机值。在一些实施例中,当指示本地节点120时,结合阶段440本地节点120传送关于设备110是否需要传送指令和哈希或仅哈希的指示。

在阶段450中,设备110确定其期望发送到本地节点120的指令。设备110至少部分地基于秘密值、随机值和指令来导出哈希值。

在阶段460中,设备110通过连接向本地节点120传送包括哈希和可选的指令的消息。如果可能的指令的数量足够小以使得能够在本地节点侧预先计算具有所有可能的指令的哈希,设备110可以省略来自阶段460的消息的指令。如上所述,如果设备100已经接收到与阶段440相关的这种效果的指示,设备110还可以省略该指令。

在阶段470中,本地节点120验证在阶段460中接收的哈希。如果阶段460的消息除了哈希之外还包括指令,本地节点120本身可以至少使用秘密值、随机值和指令来导出哈希,并且然后将接收到的哈希与在本地节点120中导出的哈希进行比较。如果接收到的哈希与在本地节点120中导出的哈希匹配,则哈希中使用的指令被验证并被执行。

在阶段460的消息不包括指令的情况下,本地节点120可以将在阶段460中接收的哈希与在具有不同可能的指令的本地节点120中导出的哈希进行比较。如果所接收的哈希与在本地节点120中导出的哈希中的一个哈希匹配,则在导出的哈希中使用的指令被验证并被执行。在本地节点120中导出的哈希可以在阶段440和阶段460之间被预先计算,或者它们可以至少部分地在接收到阶段460的消息之后被导出。

在阶段480中,本地节点120可以向设备110传送消息,明确地或隐含地通知设备110执行了阶段460的指令,或者备选地,通知设备110阶段460的消息中的哈希的验证失败。阶段480的消息可以包括第二随机值。

在阶段490中,设备110确定向本地节点120发送第二指令,并且使用第二随机值、秘密和第二指令来导出哈希。在阶段4100中将所导出的哈希传送到本地节点120。在阶段4110中在本地节点120中验证哈希,并且在阶段4120中,本地节点120通知设备110关于对第二指令的动作执行。阶段4120的消息可以包括第三随机值,以用在从设备110到本地节点120的后续指令中。

图5是根据本发明的至少一些实施例的第一方法的第一流程图。所示方法的阶段可以在设备110中或在控制设备(诸如被配置为当被植入其中时至少部分地控制设备110的处理器或芯片组)中执行。

阶段510包括经由第一信道接收本地节点的标识符和秘密值,以及经由第二信道接收随机值。阶段520包括使得向本地节点传送包括哈希值的第一消息,该哈希值是基于包括秘密值、随机值和指令的集合而导出的。第一消息可以经由第二信道传递到本地节点。

图6是根据本发明的至少一些实施例的第二方法的第二流程图。第二方法的阶段可在本地节点120中或在控制设备(诸如被配置为当被植入其中时至少部分地控制本地节点120的处理器或芯片组)中执行。

阶段610包括存储与装置相关联的秘密值。该装置可以包括执行第二方法的装置。阶段620包括向节点传送随机值。阶段630包括从节点接收消息,该消息包括第一哈希值。阶段640包括通过基于包括秘密值、指令和随机值的集合导出比较哈希值来验证第一哈希值。阶段650包括响应于比较哈希值匹配第一哈希值,使装置按照指令进行动作。最后,阶段660包括向节点传送第二随机值。

应当理解,所公开的本发明的实施例不限于本文公开的具体结构、工艺步骤或材料,而是扩展到如相关领域的普通技术人员将认识到的其等同物。还应当理解,本文中使用的术语仅用于描述特定实施例的目的,而不旨在进行限制。

贯穿本说明书对“一个实施例”或“实施例”的引用意味着结合实施例描述的特定特征、结构或特性包括在本发明的至少一个实施例中。因此,贯穿本说明书的各个地方出现的短语“在一个实施例中”或“在实施例中”不一定都指代同一实施例。

如本文所使用的,为了方便起见,多个项、结构元件、组成元件和/或材料可以呈现在公共列表中。然而,这些列表应当被解释为列表的每个成员被单独地识别为单独的且唯一的成员。因此,在没有相反指示的情况下,仅基于它们在共同组中的呈现,不应将该列表的任何个别成员解释为同一列表的任何其他成员的事实上的等同物。另外,在本文中本发明的各种实施例和示例可以与其各种组件的备选方案一起被参考。应当理解,这样的实施例、示例和替代不被解释为彼此的事实上的等同物,而是被认为是本发明的独立和自主的表示。

此外,所描述的特征、结构或特性可以以任何合适的方式组合在一个或多个实施例中。在下面的描述中,提供了许多具体细节,例如长度、宽度、形状等的示例,以提供对本发明的实施例的透彻理解。然而,相关领域的技术人员将认识到,本发明可以在没有一个或多个具体细节的情况下,或者利用其他方法、组件、材料等来实现。在其他情况下,公知的结构、材料或操作未被详细示出或描述以避免模糊本发明的方面。

虽然前述示例在一个或多个特定应用中说明了本发明的原理,但是对于本领域的普通技术人员来说,显然可以在不脱离本发明的原理和概念的情况下,在形式、使用和实现细节上进行许多修改,而不需要实施创造性的教导。因此,除了由下面阐述的权利要求限制之外,不旨在限制本发明。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1