IoT系统中的目标驱动配设的制作方法

文档序号:13985262阅读:225来源:国知局
IoT系统中的目标驱动配设的制作方法

发明人:nedsmith(内德·史密斯)和svenschrecker(斯文·施雷克)

本申请要求于2015年5月20日提交的美国申请序列号14/717,754的优先权,所述美国申请要求于2015年3月25日提交的美国临时申请序列号61/138,255的权益,所述美国临时申请通过引用以其全文结合在此。



背景技术:

在此描述的实施例总体上涉及计算机网络操作。更具体地,在此描述的实施例涉及被组织成自定向功能组的配设(provisioning)装置。

短语“物联网(iot)”指的是嵌有电子装置、软件且能够连接到互联网的物理对象、装置或“东西”。所述连接允许实现监测和控制活动的系统。通过示例的方式,可以基于多个因素(比如期望的功率电平、冷却剂温度以及冷却剂回路内其他泵的操作)来控制(打开/关闭或节流控制)核电站中的多个泵。因此,不仅可以以此方式控制单个传感器(例如,光传感器)或致动器(例如,光开关),而且传感器和致动器的集合可以被设计用于充当一个单元,其中装置间通信在操作上是有利的或是必要的。

相比之下,互联网被设计用于促进主机到主机通信。在这种环境中,用于配设的传统方法涉及使用可信第三方,比如可管理性服务、密钥管理服务和访问管理服务。云计算最新趋势加剧了这种向多个安全配设服务集中化的转变。集中化服务表示安全性关键的信息物理系统(如核电站中的泵控制器和医院里的健康监测系统)的单点故障。集中化安全配设服务还暗示在iot装置与中央实体之间要求信任关系。这种信任集中化表示一种不合理的期望:这种实体可以在没有利益冲突且不增加装置的攻击表面曝光的情况下进行操作。这种假设可能不适合于许多iot系统。

附图说明

图1以框图形式示出了根据一个实施例的iot系统。

图2以框图形式示出了根据一个实施例的iot装置。

图3以框图形式示出了根据一个实施例的说明性iot系统。

图4以框图形式示出了根据另一个实施例的说明性iot系统。

具体实施方式

本公开涉及用于以新颖且非显而易见的方式组织和操作iot装置的系统、方法和计算机可读介质。总体上,公开了用于根据状态机模型来配设iot装置的技术。更具体地,这类iot装置的集合可以被组织成作为自主或半自主装置组操作的飞地、群组或“群(shoal)”,充当具有共同目标或任务的集体。参与到一个群中的iot装置可以配设有群专用上下文信息作为其装置专用配设活动的一部分。通过示例的方式,群上下文对象可以包括当前状态变量和目标下一状态变量。所述群的目标下一状态变量建立一个目标(例如,针对配设活动)而不规定单独的群成员(iot装置)要如何实现所述目标。这个机制可以用于通过群的单独装置的单独的配设状态机来驱动所述单独装置,直到使群本身可操作。

在以下描述中,出于解释的目的,阐明了众多具体细节以提供对所公开的概念的全面理解。作为本说明书的一部分,本公开的一些附图以框图形式表示结构和装置以避免模糊所公开的概念的新颖方面。为了清楚起见,并未描述实际实施方式的所有特征。此外,在本公开中使用的语言主要是出于可读性和指导的目的而被选择,并且可能尚未被选择用于描绘或限制创造性主题,有必要借助权利要求书来确定这样的创造性主题。在本公开中提及“一个实施例(oneembodiment)”或者“实施例(anembodiment)”意味着结合实施例所描述的特定特征、结构或特性被包括在所公开主题的至少一个实施例中,并且多次提及“一个实施例”或“实施例”不应被理解为必须全部指代相同的实施例。

将理解,在任何实际实施方式的开发中(如在任何软件和/或硬件开发项目中),必须作出许多决策以实现开发者的特定目标(例如,符合系统及商业相关约束),并且这些目标可以随着实施方式的不同而发生变化。还将理解,这样的开发努力可能是复杂且耗费时间的,但毫无疑问地对于受益于本公开的设计并实现iot装置处理系统的那些普通技术人员而言属于例行任务。

参照图1,根据一个实施例的iot系统100包括多个iot装置105a至105f以及105g到105n,所述多个iot装置被分组成群-1110和群-2115、路由器/网关120、网络125、密钥管理服务器130、访问控制管理服务器135,其中,管理服务器130和135被统一标识为第三方服务提供商140。应理解:每个装置可以如其单独功能要求的那样简单或复杂;虽然仅示出了有限数量的装置,但是每个群可以包括如执行其指定功能(例如,控制核电站中的一系列泵或单个灯)所必需的那样多或少的装置;已经示出了群-1110与群-2115重叠,以展示单个装置可以属于多于一个群,并且不应认为将装置限制到2个群;路由器/网关120可以如所需要的那样简单或复杂(例如,包括无线元件和有线元件二者);网络125表示1个或多个单独的网络,其中每个网络可以采用任何形式,包括但不限于局域网(lan)或广域网(wan)(比如互联网),其中任何网络都可以使用任何期望的技术(有线技术、无线技术或其组合)和通信协议(比如传输控制协议(tcp)或点对点协议(ppp));并且第三方服务提供商140表示如支持配设操作的装置105所必需的那样多或少的服务提供商——进一步地,单个物理装置可以提供多个服务。可能受益于本公开的说明性iot装置包括但不限于:可穿戴装置(例如,电池供电装置)、媒体播放器(例如,针对音乐和电影)、家用或工厂自动化装置(出于产品互操作性需要短等待时间通信的装置)、以及智能装置(例如,紧密地耦合到服务的直接网络连接)。

现在参照图2,根据一个实施例的iot装置105a包括密码元件200、处理器205、存储器210、支持电路或模块215以及装置专用元件220。密码元件200可以以任何合适的方式来实现,并且在一个实施例中,可以是单个防篡改包,所述单个防篡改包包括装置105a加入通信网络并在安全环境内与其他iot装置一起操作所必需的所有必要的密码处理能力。在其他实施例中,安全操作环境可能并不需要肯定地建立并且因此密码元件200可能并不是必需的(例如,群可以在物理上安全的环境(比如独立网络所提供的环境)中进行操作)。处理器205可以是任何一个或多个处理元件(可编程的或硬连线的)并且在许多iot装置中通常是受资源约束的(例如,具有有限的计算能力、存储器和电力访问)。存储器210可以包括存储器缓存、只读存储器(rom)和/或随机存取存储器(ram)。支持模块215可以包括用于使得密码元件200、处理器205和存储器210能够与外部部件(例如,一个或多个通信端口)和装置专用元件220交互以满足装置(比如例如,传感器和/或致动器)的目的所需要的任何附加部件。根据本公开,iot装置105a可以在制造时或稍后装载有必要的密码密钥和证书以及至少一个状态机。在一种情景下,密码元件200在被制造时可以装载有密钥和证书的基本集合,而装置105a(例如,存储器210)可以通过oem装载有一个或多个状态机。

参照图3,示例性iot系统300包括iot装置105a(包括说明性状态机305)和补救服务310。将理解,当装置被说成“具有(have)”或“包括(include)”状态机时,意味着状态机的某个表示已被递送到或结合到所述装置中。在一个实施例中,状态机可以用以特定方式编程的固件来表示。在另一个实施例中,状态机可以用用户级程序代码来表示。在又另一个实施例中,状态机可以用固件和用户级程序代码的组合来表示。在仍另一个实施例中,状态机可以用软件和硬件的组合来表示。在又另一个实施例中,状态机可以直接实现在硬件中(例如,经由现场可编程门阵列)。图3中还分别示出了装置专用状态信息315和群专用状态信息320。此信息可以例如保持在存储器210(参见图2)中。装置专用状态信息315可以是常规iot装置所使用的通过支持装置的状态信息所需的任何附加状态信息(比如例如,当前状态变量(‘current.dstate’)和目标下一状态变量(‘next.dstate’))得以增强的状态信息。群专用状态信息320可以包括具有至少2个状态变量的群状态对象。一个状态变量用于指示群的当前状态(‘current.sstate’),并且另一个状态变量用于指示群的目标下一状态(‘next.sstate’)。

表1列举了可以在装置从原始状态(例如,已拥有)前进到全功能状态(例如,可操作)的过程中输入的配设状态并且与说明性状态机305相对应。表2描述了当从状态机305中的一个状态转换到下一状态时所采取的动作。在表1中标识的状态和在表2中标识的动作仅构成说明性状态模型。根据本公开的iot装置实际状态机可以比所示出的那些具有更多或更少的状态。另外,出于呈现的目的,状态机305的结构已被制造得简单。实际状态机可以如装置的任务要求的那样简单或复杂。

表1.示例状态机状态

表1.示例状态机状态

表2.示例状态机状态转换

返回到图3,如果根据任何给定状态的动作失效,则可以通知补救服务310。在图3的实施例中,来自补救服务器310的控制返回到装置105;具体的状态可以取决于哪个状态失效。在一个实施例中,控制可以返回到失效的状态。在另一个实施例中,控制可以返回到最后成功跨过的状态。在仍另一个实施例中,控制可以返回到已知/特定的错误返回状态(未示出)。

回顾图3,表1和表2表明只有未拥有状态到已拥有状态的转换不是自启动的。也就是说,装置105a必须由外部元件有目的地“推动”以便从未拥有状态转换到已拥有状态。通过示例的方式,考虑在制造时装载有密码密钥和凭证但并未另外准备任何活动的iot装置——例如,其处于未拥有状态。在被给予了预定“启动”信号(未示出)时,装置105a可以使用那些密钥和凭证来建立到给予其“启动”信号的装置或部件的安全通道。一旦这样做,装置105a就知道了其所有者但并不被另外配设——例如,其处于已拥有状态。在实践中,这可以使用某个本地服务审查的匿名标识密钥(aik)来完成。然后,可能存在挑战/响应序列,其中,服务器(“所有者”)在“开始熟悉”阶段仅使用这个密钥来认证客户端(iot装置),公钥可以用于对可变成共享秘密的随机数或字符串进行加密。还存在以简单且有效的方式促进这一交换的网络协议,比如可扩展认证协议(eap)。eap的一个优点是,与802.1x交换机配合的所述协议允许这一交换在认证的动态主机配置协议(dhcp)交换之前发生(即,装置可以在确定其ip地址之前这样做)。这不需要完全公钥基础设施(pki)实施;其可以是本地管理的基础设施。

参照图4,群-1110包括iot装置105a至105e(参见图1)以及跨所有群装置共享的群上下文400。群的共享上下文进而包括群的当前状态(current.sstate)、其目标下一状态(next.sstate)以及同步代理(即,被指定用于将群状态400复制到其他群成员的装置)的标识。参照表3,示例群共享上下文400(以及300)展示了可以用追踪群状态的信息类型。在一个实施例中,不一定存在主导的群控制器,尽管可以将一个或多个装置命名为同步代理以用于复制群上下文400(最低限度)。附加装置也可以被命名为支持安全性需要、管理需要和访问需要的群服务实体。(创建群中所有装置可识别且可验证的角色权限可以是每个装置的凭证结构的一部分。)群装置还可以包括云服务和企业服务,但是隔离技术可能需要用于合理地确保防止云托管实体将非群装置/控制器引入群中。

表3.说明性群属性

[1]如果环境中存在多个群,则必须对每个群进行消歧。注意,群名称本身可以由可信命名机构(比如互联网域命名服务(dns),也被称为基于danedas(域名系统)的认证命名实体)来指派。根据本公开的系统可以接受来自dane或其他命名机构的群名称。群可以嵌入dane机构的信任锚作为群资源的一部分(例如,外部凭证)。可以将群名称给予托管密钥分布服务(比如kerberos)的对等群或组织网络,其中,所指派的权证包含作为kerberos‘领域’名称的dane指定的名称。

在图4所表示的时间处,群-1110中的每个装置处于不同状态。在一个实施例中,群的当前状态405可以是对应群装置状态的合并。用于确定群当前状态的合理方法为采取最原始的群装置状态。比较图4与图3或表1,最原始装置状态为“已拥有”。群的下一状态值410被设计用于驱动所有装置至可操作状态,在图3和表1的示例中,所述可操作状态是群的集体功能可能显而易见的状态。尽管每个装置处于不同配设状态,但是这并不一定意味着装置未连接且不能够执行操作。它们可以执行配设操作。

根据本公开的技术使装置(独立地且统一地作为群的一部分)能够执行自定向的配设动作。群状态变量可以本地地维持在每个装置处,使得每个装置可以独立地用于从可访问/邻近装置和服务中获取配设。群状态变量(例如,current.sstate和next.sstate)可以跨每个群成员同步,所以每个群成员知道其自身状态和群状态。在一个实施例中,可以使用群组组播或发布-订阅转播(比如mqtt(原名为消息队列遥测传输)和可扩展通讯和表示协议(xmpp)消息代理)来实现同步。由于群组上下文状态变量是需要共享的唯一对象,因此在群装置自身内部署多个发布-订阅(pub-sub)代理是实用的。(发布-订阅是消息传送模式,其中,消息的发送方(发布方)并未对有待直接发送至特定接收方(订阅方)的消息进行编程。相反,发布的消息在不知道可能存在哪些订阅方(如果有的话)的情况下被归类到各个类别。类似地,订阅方对一个或多个类别表现出兴趣,并且在不知道存在哪些发布方(如果有的话)的情况下仅接收感兴趣的消息。)不同于一个网络指导所有配设目标的补救网络,如在此描述的iot装置并不需要集中式管理服务器,所述集中式管理服务器每当有装置被补救都必须可用。

参照表4至表6,根据本公开的基于状态机的装置配设操作的伪代码。尽管不一定与表1和表2中引入的说明性群状态机相关联,但是这个伪代码并不假设未拥有状态驻留在状态机频谱的一端(例如,值为0x0000)并且可操作状态在另一端(例如,值为0xffff)。认为受益于本公开的本领域普通技术人员将理解,表4至表6捕获了基本上任何基于状态的装置配设操作的操作流程。

表4.群控制回路

表4.群控制回路

表5.群同步子例程

表6.装置状态改变子例程

表6.装置状态改变子例程

用于装置配设的基于状态机的方法的一个好处是,其可以将系统管理员从微观管理每个装置的配设操作中解放出来。另外,由于每个装置的状态机限定其可以做什么(但不一定限定怎样做),因此不同装置可以通过不同方式执行相同的功能——每个装置根据其自身的操作能力。这进而可以提高群的操作效率。这一相同的能力允许更新的装置容易集成到现有iot系统(群)中。所公开的技术的其他好处包括但不限于:使用包含目标取向的配设状态变量的群组上下文结构;使用跨群成员定义的群组上下文结构;具有配设状态变量的iot装置;使用可信执行环境(tee)协议来允许群实体的受保护执行;使用一个(或多个)群成员装置来帮助配设邻近群成员装置;使用群访问控制结构/策略来实施由其他群装置和非群装置对群成员资源进行访问;使用证明方法(比如例如,增强隐私id(epid)和sigma密钥交换协议)来在一个iot装置与被授权共享配设信息的同级iot装置之间建立配设通道;

下面的示例涉及进一步的实施例。

示例1是一种物联网(iot)装置,包括:装置硬件,所述装置硬件被配置用于根据装置类型起作用;iot硬件,所述iot硬件包括:网络通信电路,所述网络通信电路被配置用于连接到网络通信介质;存储器,所述存储器通信地耦合至所述网络通信电路;以及处理器,所述处理器操作性地耦合至所述装置硬件、所述网络通信电路和所述存储器,所述存储器存储了指令,所述指令在被执行时使得所述处理器:使用与所述装置类型和所述iot硬件相对应的配设状态机,其中,所述配设状态机包括多个状态,最终状态为可操作状态;根据所述配设状态机在所述存储器中建立群专用状态信息;根据所述配设状态机在所述存储器中建立iot装置专用状态信息;通过所述网络通信电路与一个或多个附加iot装置建立通信,其中,所述iot装置、和所述一个或多个附加iot装置中的每一个都属于一个iot装置群;基于所述建立的通信来确定所述群的状态并将其记录在所述群专用状态信息中;确定所述iot装置的状态并将其记录在所述iot装置专用状态信息中;以及基于所述群状态与所述iot装置状态的组合来对所述多个状态定序,直到所述iot装置和所述一个或多个附加iot装置处于所述可操作状态,其中,更新后的群状态通过所述网络通信电路从所述一个或多个附加iot装置中的至少一个中接收并被记录在所述群专用状态信息中。

在示例2中,如示例1所述的主题可以可选地包括:其中,所述装置类型包括泵控制器。

在示例3中,如示例1所述的主题可以可选地包括:其中,所述网络通信介质包括无线网络通信介质。

在示例4中,如示例1至3中任一项所述的主题可以可选地包括:其中,所述iot硬件进一步包括通信地耦合至所述处理器的密码元件。

在示例5中,如示例4所述的主题可以可选地包括:进一步包括存储在所述存储器中的指令,所述指令在被执行时使得所述处理器使用所述密码元件来与所述一个或多个附加iot装置建立安全通信。

在示例6中,如示例1至3中任一项所述的主题可以可选地包括:其中,用于使得所述处理器对所述多个状态定序的所述指令包括用于使得所述处理器使用所述群状态与所述iot装置状态之间的不匹配来发起动作以根据所述配设状态机移至新状态的指令。

在示例7中,如示例1至3中任一项所述的主题可以可选地包括:其中,所述配设状态机中的每个状态具有与配设所述iot装置相关联的动作。

示例8是一种物联网(iot)操作方法,包括:为iot装置装载配设状态机控制软件,其中,所述配设状态机控制软件与iot装置的类型相对应并且包括多个状态,最终状态为可操作状态;根据所述配设状态机在所述iot装置的存储器中建立群专用状态信息和装置专用状态信息;通过所述iot装置的网络通信电路与一个或多个附加iot装置建立通信,其中,所述iot装置、和所述一个或多个附加iot装置中的每一个都属于一个iot装置群;基于所述建立的通信来确定所述群的状态并将其记录在所述群专用状态信息中;确定所述iot装置的状态并将其记录在所述iot装置专用状态信息中;以及基于所述群状态与所述iot装置状态的组合来对所述多个状态定序,直到所述iot装置和所述一个或多个附加iot装置处于所述可操作状态,其中,更新后的群状态通过所述网络通信电路从所述一个或多个附加iot装置中的至少一个中接收并被记录在所述群专用状态信息中。

在示例9中,如示例8所述的主题可以可选地包括:其中,所述装置类型包括健康监测系统装置。

在示例10中,如示例8所述的主题可以可选地包括:其中,所述网络通信介质包括无线网络通信介质。

在示例11中,如示例8至10中任一项所述的主题可以可选地包括:进一步包括使用所述iot装置的密码元件来与所述一个或多个附加iot装置中的至少一个建立安全通信。

在示例12中,如示例8至10中任一项所述的主题可以可选地包括:其中,对所述多个状态定序包括使用所述群状态与所述iot装置状态之间的不匹配来发起动作以便根据所述配设状态机移至新状态。

在示例13中,如示例8至10中任一项所述的主题可以可选地包括:其中,所述配设状态机中的每个状态具有与配设所述iot装置相关联的动作。

示例14是一种程序存储装置,包括存储于其上的指令,所述指令使得物联网(iot)装置中的一个或多个处理器:激活与所述iot装置的类型相对应的配设状态机,其中,所述配设状态机包括多个状态,最终状态为可操作状态;根据所述配设状态机在所述iot装置的存储器中建立群专用状态信息;根据所述配设状态机在所述存储器中建立iot装置专用状态信息;通过网络通信电路与一个或多个附加iot装置建立通信,其中,所述iot装置、和所述一个或多个附加iot装置中的每一个都属于一个iot装置群;基于所述建立的通信来确定所述群的状态并将其记录在所述群专用状态信息中;确定所述iot装置的状态并将其记录在所述iot装置专用状态信息中;以及基于所述群状态与所述iot装置状态的组合来对所述多个状态定序,直到所述iot装置处于所述可操作状态,其中,更新后的群状态通过所述网络通信电路从所述一个或多个附加iot装置中的至少一个中接收并被记录在所述群专用状态信息中。

在示例15中,如示例14所述的主题可以可选地包括:其中,用于通过网络通信电路建立通信的所述指令包括用于通过无线网络通信电路建立通信的指令。

在示例16中,如示例14和15中任一项所述的主题可以可选地包括:其中,用于通过网络通信电路建立通信的所述指令包括用于使用所述iot装置的密码元件通过网络通信电路建立安全通信的指令。

在示例17中,如示例14和15中任一项所述的主题可以可选地包括:其中,用于使得所述处理器对所述多个状态定序的所述指令包括用于使得所述处理器使用所述群状态与所述iot装置状态之间的不匹配来发起动作以根据所述配设状态机移至新状态的指令。

在示例18中,如示例14所述的主题可以可选地包括:其中,所述配设状态机中的每个状态具有与配设所述iot装置相关联的动作。

示例19是一种物联网(iot)装置,包括:处理器;存储器,所述存储器操作性地耦合至所述处理器,所述处理器存储指令,所述指令在被执行时使得所述处理器:激活与所述iot装置的类型相对应的配设状态机,其中,所述配设状态机包括多个状态,最终状态为可操作状态;根据所述配设状态机在所述iot装置的存储器中建立群专用状态信息;根据所述配设状态机在所述存储器中建立iot装置专用状态信息;通过网络通信电路与一个或多个附加iot装置建立通信,其中,所述iot装置、和所述一个或多个附加iot装置中的每一个都属于一个iot装置群;基于所述建立的通信来确定所述群的状态并将其记录在所述群专用状态信息中;确定所述iot装置的状态并将其记录在所述iot装置专用状态信息中;以及基于所述群状态与所述iot装置状态的组合来对所述多个状态定序,直到所述iot装置处于所述可操作状态,其中,更新后的群状态通过所述网络通信电路从所述一个或多个附加iot装置中的至少一个中接收并被记录在所述群专用状态信息中。

在示例20中,如示例19所述的主题可以可选地包括:其中,用于通过网络通信电路建立通信的所述指令包括用于通过无线网络通信电路建立通信的指令。

在示例21中,如示例19和20中任一项所述的主题可以可选地包括:其中,用于通过网络通信电路建立通信的所述指令包括用于使用所述iot装置的密码元件通过网络通信电路建立安全通信的指令。

在示例22中,如示例19和20中任一项所述的主题可以可选地包括:其中,用于使得所述处理器对所述多个状态定序的所述指令包括用于使得所述处理器使用所述群状态与所述iot装置状态之间的不匹配来发起动作以根据所述配设状态机移至新状态的指令。

在示例23中,如示例19所述的主题可以可选地包括:其中,所述配设状态机中的每个状态具有与配设所述iot装置相关联的动作。

应理解,以上说明旨在是说明性的而非限制性的。呈现本材料以使本领域任何技术人员能够如所要求的那样实现和使用所公开的主题,并在具体实施例的背景下提供本材料,其变化对本领域技术人员而言将是非常显而易见的(例如,一些公开的实施例可以与彼此结合使用)。例如,以上说明假设了存在每个群成员在其中进行操作的安全通信环境。这并未严格要求。也就是说,每个群成员可以与仅一些(但并非全部)其他群成员共享凭证。进一步地,每个群可以具有多个同步成员。在一个实施例(比如以上描述的实施例)中,单个群成员可以充当整个群的同步代理。在另一个实施例中,不同的同步代理可以用于每个群/群组属性(例如,计算群状态、维护群组成员、以及凭证管理)。因此,本发明的范围应当参照所附权利要求书以及这种权利要求书有权获得的等效物的全部范围来确定。在所附权利要求书中,术语“包括(including)”和“其中(inwhich)”用作对应术语“包括(comprising)”和“其中(wherein)”的通俗英文等价词。

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