一种安全高效的物联网实现方法技术

技术编号:19067882 阅读:38 留言:0更新日期:2018-09-29 14:53
本发明专利技术提供了一种安全高效的物联网实现方法,所述物联网包括一个服务器和两个以上的节点,节点划分为生产者节点、消费者节点和普通节点;一种类型的数据由一个数据名称唯一标识,一个数据名称由名称前缀和名称ID构成;一个节点由节点名称标识,一个节点名称由数据名称和深度值构成;一个节点能够拥有两个以上的节点名称;节点通过本发明专利技术提供的方法能够快速获取数据,从而降低数据通信延迟和代价,提高服务质量。本发明专利技术可应用于农业工程化、智能医疗等诸多领域,具有广泛的应用前景。

【技术实现步骤摘要】
一种安全高效的物联网实现方法
本专利技术涉及一种实现方法,尤其涉及的是一种安全高效的物联网实现方法。
技术介绍
在典型的物联网构架中,一个电子标签具有全球唯一的电子编码,将其附着在物品上标识目标对象。目前的物联网架构能够很好地跟踪目标对象,但仍存在以下不足:1)用户只能通过数据库服务器来获取目标对象信息,无法实现与目标对象直接地点到点通信;2)用户只能查询目标对象的信息,无法直接控制目标对象的状态;3)目标对象信息只能通过读写器被动地读取,目标对象无法根据当前的状态主动请求数据更新或发出警报信息。
技术实现思路
专利技术目的:本专利技术所要解决的技术问题是针对现有技术的不足,提供一种安全高效的物联网实现方法。技术方案:本专利技术公开了一种安全高效的物联网实现方法,所述物联网包括一个服务器和两个以上的节点,节点划分为生产者节点、消费者节点和普通节点;一种类型的数据由一个数据名称唯一标识,一个数据名称由名称前缀和名称ID构成;一个节点由节点名称标识,一个节点名称由数据名称和深度值构成;一个节点能够拥有两个以上的节点名称;生产者节点有权限产生、保存和提供一种类型的数据,一个消费者能够有权限获取一种类型的数据,普通节点能够保存和提供一种类型的数据;针对一种类型的数据,只有一个生产者节点有权限产生该种类型的数据;有权限获取一种类型数据的所有消费者节点构成一个多播组,一个多播组由一个多播地址唯一标识,针对每个多播组,第三方认证机构为该多播组分配一对公有秘钥和私有秘钥,该公有秘钥为该多播组的多播地址;第三方认证机构为每个生产者分配一对公有秘钥和私有秘钥,公有秘钥为该生产者的单播地址;第三方认证机构可以是证书授权中心的服务器;所述物联网包含一个服务器,该服务器维护一个公有秘钥表,一个公有秘钥表项包含数据名称域、公有秘钥域和角色域,其中,消费者节点的角色域值为1,生产者节点的角色域值为0;每个生产者节点对应一个数据树,该数据树的根节点为该生产者节点;一个节点保存一个节点名称集合以记录自己所拥有的节点名称;一个生产者节点通过发布消息创建数据树,一个发布消息包含消息类型、/数据名称和深度域;数据C1由数据名称NA1标识,生产者节点P1产生数据C1后,执行下述过程创建数据树:步骤101:开始;步骤102:生产者节点P1构建一个节点名称,该节点名称的数据名称域值为NA1,深度值为0,生产者节点P1将该节点名称加入到自己的节点名称集合中;生产者节点P1发送一个发布消息,该发布消息的消息类型为1,数据名称为NA1,深度为1;步骤103:接收到发布消息的节点查看自己的节点名称集合,如果存在一个节点名称,该节点名称的数据名称等于该发布消息的数据名称且深度不大于该发布消息中的深度,则执行步骤107,否则执行步骤104;步骤104:接收到发布消息的节点查看自己的节点名称集合,如果存在一个节点名称,该节点名称的数据名称等于该发布消息的数据名称且深度大于该发布消息中的深度,则执行步骤105,否则执行步骤106;步骤105:接收到发布消息的节点从自己的节点名称集合删除一个节点名称,该节点名称的数据名称等于该发布消息的数据名称且深度大于该发布消息中的深度;步骤106:接收到发布消息的节点构建一个节点名称,该节点名称的数据名称等于该发布消息的数据名称且深度值等于该发布消息的深度值,将该节点名称加入到自己的节点名称集合中;该节点将接收到的发布消息的深度递增1,转发该发布消息,执行步骤103;步骤107:结束。生产者节点通过上述过程建立数据树,这样节点通过数据树无需路由发现过程即可获取自己需要的数据,上述过程有效限制了数据树的深度,因此节点到达生产者节点的路由路径长度大幅度降低,从而有效降低了数据通信延迟和代价。本专利技术所述方法中,物联网中的服务器由节点名称标识,并保存一个节点名称集合用于保存自己的节点名称;服务器对应一个数据树,该数据树的根节点为该服务器;服务器S1执行下述过程创建数据树:步骤201:开始;步骤202:服务器S1构建一个节点名称,该节点名称的数据名称域值为空,深度值为0,将该节点名称加入到自己的节点名称集合中;服务器S1发送一个发布消息,该发布消息的消息类型为1,数据名称为空,深度为1;步骤203:接收到发布消息的节点查看自己的节点名称集合,如果存在一个节点名称,该节点名称的数据名称等于该发布消息的数据名称且深度不大于该发布消息中的深度,则执行步骤207,否则执行步骤204;步骤204:接收到发布消息的节点查看自己的节点名称集合,如果存在一个节点名称,该节点名称的数据名称等于该发布消息的数据名称且深度大于该发布消息中的深度,则执行步骤205,否则执行步骤206;步骤205:接收到发布消息的节点从自己的节点名称集合删除一个节点名称,该节点名称的数据名称等于该发布消息的数据名称且深度大于该发布消息中的深度;步骤206:接收到发布消息的节点构建一个节点名称,该节点名称的数据名称等于该发布消息的数据名称且深度值等于该发布消息的深度值,将该节点名称加入到自己的节点名称集合中;该节点将接收到的发布消息的深度递增1,转发该发布消息,执行步骤203;步骤207:结束。服务器通过上述过程建立到达服务器的数据树,由于到达服务器的数据树无需路由发现过程即可自动实现路由,因此降低了节点与服务器之间的通信延迟和代价,此外,上述过程有效限制了数据树的深度,因此节点与服务器之间的的路由路径长度大幅度降低,进一步降低了节点与服务器之间的通信延迟和代价。本专利技术所述方法中,消费者节点获取公有秘钥和私有秘钥后,使用注册消息向物联网内服务器注册该公有秘钥;注册消息包含消息类型,数据名称,公有秘钥域,角色域和源节点名称域;在网络内的服务器为S1,数据C1由数据名称NA1唯一标识,有权限获取数据C1的所有消费者节点构建成多播组MG1,多播组MG1的多播地址为MA1,消费者节点CS1为多播组MG1的成员的条件下,消费者节点CS1获取公有秘钥和私有秘钥后,公有秘钥为多播地址MA1,执行下述过程向服务器S1执行注册操作:步骤301:开始;步骤302:消费者节点CS1从节点名称集合中选择一个节点名称,该节点名称的数据名称为空,消费者节点CS1发送一个注册消息,该注册消息的消息类型为2,数据名称为NA1,公有秘钥域值为多播地址MA1,角色域值为1,源节点名称域值为选择的节点名称;步骤303:如果服务器S1接收到该注册消息,则执行步骤307,否则执行步骤304;步骤304:接收到注册消息的节点从自己的节点名称集合中选择一个节点名称,该节点名称的数据名称为空;如果选择的节点名称中的深度小于注册消息中的源节点名称中的深度,则执行步骤305,否则执行步骤306;步骤305:接收到注册消息的节点从自己的节点名称集合中选择一个节点名称,该节点名称的数据名称为空,将注册消息的源节点名称更新为选择的节点名称,转发该注册消息,执行步骤303;步骤306:接收到注册消息的节点丢弃该注册消息,执行步骤303;步骤307:服务器S1接收到注册消息后,查看公有秘钥表,如果存在一个公有秘钥表项,该公有秘钥表项的数据名称域值,公有秘钥域值以及角色域值分别等于该注册消息中的数据名称域值,公有秘钥域值以及角色值,则执行步骤309本文档来自技高网...

【技术保护点】
1.一种安全高效的物联网实现方法,其特征在于,所述物联网包括一个服务器和两个以上的节点,节点划分为生产者节点、消费者节点和普通节点;一种类型的数据由一个数据名称唯一标识,一个数据名称由名称前缀和名称ID构成;一个节点由节点名称标识,一个节点名称由数据名称和深度值构成;一个节点能够拥有两个以上的节点名称;生产者节点有权限产生、保存和提供一种类型的数据,一个消费者能够有权限获取一种类型的数据,普通节点能够保存和提供一种类型的数据;针对一种类型的数据,只有一个生产者节点有权限产生该种类型的数据;有权限获取一种类型数据的所有消费者节点构成一个多播组,一个多播组由一个多播地址唯一标识,针对每个多播组,第三方认证机构为该多播组分配一对公有秘钥和私有秘钥,该公有秘钥为该多播组的多播地址;第三方认证机构为每个生产者分配一对公有秘钥和私有秘钥,公有秘钥为该生产者的单播地址;所述物联网包含一个服务器,该服务器维护一个公有秘钥表,一个公有秘钥表项包含数据名称域、公有秘钥域和角色域,其中,消费者节点的角色域值为1,生产者节点的角色域值为0;每个生产者节点对应一个数据树,该数据树的根节点为该生产者节点;一个节点保存一个节点名称集合以记录自己所拥有的节点名称;一个生产者节点通过发布消息创建数据树,一个发布消息包含消息类型、/数据名称和深度域;数据C1由数据名称NA1标识,生产者节点P1产生数据C1后,执行下述过程创建数据树:步骤101:开始;步骤102:生产者节点P1构建一个节点名称,该节点名称的数据名称域值为NA1,深度值为0,生产者节点P1将该节点名称加入到自己的节点名称集合中;生产者节点P1发送一个发布消息,该发布消息的消息类型为1,数据名称为NA1,深度为1;步骤103:接收到发布消息的节点查看自己的节点名称集合,如果存在一个节点名称,该节点名称的数据名称等于该发布消息的数据名称且深度不大于该发布消息中的深度,则执行步骤107,否则执行步骤104;步骤104:接收到发布消息的节点查看自己的节点名称集合,如果存在一个节点名称,该节点名称的数据名称等于该发布消息的数据名称且深度大于该发布消息中的深度,则执行步骤105,否则执行步骤106;步骤105:接收到发布消息的节点从自己的节点名称集合删除一个节点名称,该节点名称的数据名称等于该发布消息的数据名称且深度大于该发布消息中的深度;步骤106:接收到发布消息的节点构建一个节点名称,该节点名称的数据名称等于该发布消息的数据名称且深度值等于该发布消息的深度值,将该节点名称加入到自己的节点名称集合中;该节点将接收到的发布消息的深度递增1,转发该发布消息,执行步骤103;步骤107:结束。...

【技术特征摘要】
1.一种安全高效的物联网实现方法,其特征在于,所述物联网包括一个服务器和两个以上的节点,节点划分为生产者节点、消费者节点和普通节点;一种类型的数据由一个数据名称唯一标识,一个数据名称由名称前缀和名称ID构成;一个节点由节点名称标识,一个节点名称由数据名称和深度值构成;一个节点能够拥有两个以上的节点名称;生产者节点有权限产生、保存和提供一种类型的数据,一个消费者能够有权限获取一种类型的数据,普通节点能够保存和提供一种类型的数据;针对一种类型的数据,只有一个生产者节点有权限产生该种类型的数据;有权限获取一种类型数据的所有消费者节点构成一个多播组,一个多播组由一个多播地址唯一标识,针对每个多播组,第三方认证机构为该多播组分配一对公有秘钥和私有秘钥,该公有秘钥为该多播组的多播地址;第三方认证机构为每个生产者分配一对公有秘钥和私有秘钥,公有秘钥为该生产者的单播地址;所述物联网包含一个服务器,该服务器维护一个公有秘钥表,一个公有秘钥表项包含数据名称域、公有秘钥域和角色域,其中,消费者节点的角色域值为1,生产者节点的角色域值为0;每个生产者节点对应一个数据树,该数据树的根节点为该生产者节点;一个节点保存一个节点名称集合以记录自己所拥有的节点名称;一个生产者节点通过发布消息创建数据树,一个发布消息包含消息类型、/数据名称和深度域;数据C1由数据名称NA1标识,生产者节点P1产生数据C1后,执行下述过程创建数据树:步骤101:开始;步骤102:生产者节点P1构建一个节点名称,该节点名称的数据名称域值为NA1,深度值为0,生产者节点P1将该节点名称加入到自己的节点名称集合中;生产者节点P1发送一个发布消息,该发布消息的消息类型为1,数据名称为NA1,深度为1;步骤103:接收到发布消息的节点查看自己的节点名称集合,如果存在一个节点名称,该节点名称的数据名称等于该发布消息的数据名称且深度不大于该发布消息中的深度,则执行步骤107,否则执行步骤104;步骤104:接收到发布消息的节点查看自己的节点名称集合,如果存在一个节点名称,该节点名称的数据名称等于该发布消息的数据名称且深度大于该发布消息中的深度,则执行步骤105,否则执行步骤106;步骤105:接收到发布消息的节点从自己的节点名称集合删除一个节点名称,该节点名称的数据名称等于该发布消息的数据名称且深度大于该发布消息中的深度;步骤106:接收到发布消息的节点构建一个节点名称,该节点名称的数据名称等于该发布消息的数据名称且深度值等于该发布消息的深度值,将该节点名称加入到自己的节点名称集合中;该节点将接收到的发布消息的深度递增1,转发该发布消息,执行步骤103;步骤107:结束。2.根据权利要求1所述的一种安全高效的物联网实现方法,其特征在于,物联网中的服务器由节点名称标识,并保存一个节点名称集合用于保存自己的节点名称;服务器对应一个数据树,该数据树的根节点为该服务器;服务器S1执行下述过程创建数据树:步骤201:开始;步骤202:服务器S1构建一个节点名称,该节点名称的数据名称域值为空,深度值为0,将该节点名称加入到自己的节点名称集合中;服务器S1发送一个发布消息,该发布消息的消息类型为1,数据名称为空,深度为1;步骤203:接收到发布消息的节点查看自己的节点名称集合,如果存在一个节点名称,该节点名称的数据名称等于该发布消息的数据名称且深度不大于该发布消息中的深度,则执行步骤207,否则执行步骤204;步骤204:接收到发布消息的节点查看自己的节点名称集合,如果存在一个节点名称,该节点名称的数据名称等于该发布消息的数据名称且深度大于该发布消息中的深度,则执行步骤205,否则执行步骤206;步骤205:接收到发布消息的节点从自己的节点名称集合删除一个节点名称,该节点名称的数据名称等于该发布消息的数据名称且深度大于该发布消息中的深度;步骤206:接收到发布消息的节点构建一个节点名称,该节点名称的数据名称等于该发布消息的数据名称且深度值等于该发布消息的深度值,将该节点名称加入到自己的节点名称集合中;该节点将接收到的发布消息的深度递增1,转发该发布消息,执行步骤203;步骤207:结束。3.根据权利要求1所述的一种安全高效的物联网实现方法,其特征在于,消费者节点获取公有秘钥和私有秘钥后,使用注册消息向物联网内服务器注册该公有秘钥;注册消息包含消息类型,数据名称,公有秘钥域,角色域和源节点名称域;在网络内的服务器为S1,数据C1由数据名称NA1唯一标识,有权限获取数据C1的所有消费者节点构建成多播组MG1,多播组MG1的多播地址为MA1,消费者节点CS1为多播组MG1的成员的条件下,消费者节点CS1获取公有秘钥和私有秘钥后,公有秘钥为多播地址MA1,执行下述过程向服务器S1执行注册操作:步骤301:开始;步骤302:消费者节点CS1从节点名称集合中选择一个节点名称,该节点名称的数据名称为空,消费者节点CS1发送一个注册消息,该注册消息的消息类型为2,数据名称为NA1,公有秘钥域值为多播地址MA1,角色域值为1,源节点名称域值为选择的节点名称;步骤303:如果服务器S1接收到该注册消息,则执行步骤307,否则执行步骤304;步骤304:接收到注册消息的节点从自己的节点名称集合中选择一个节点名称,该节点名称的数据名称为空;如果选择的节点名称中的深度小于注册消息中的源节点名称中的深度,则执行步骤305,否则执行步骤306;步骤305:接收到注册消息的节点从自己的节点名称集合中选择一个节点名称,该节点名称的数据名称为空,将注册消息的源节点名称更新为选择的节点名称,转发该注册消息,执行步骤303;步骤306:接收到注册消息的节点丢弃该注册消息,执行步骤303;步骤307:服务器S1接收到注册消息后,查看公有秘钥表,如果存在一个公有秘钥表项,该公有秘钥表项的数据名称域值,公有秘钥域值以及角色域值分别等于该注册消息中的数据名称域值,公有秘钥域值以及角色值,则执行步骤309,否则执行步骤308;步骤308:服务器S1接收到注册消息后,创建一个公有秘钥表项,该公有秘钥表项的数据名称域值,公有秘钥域值以及角色域值分别等于该注册消息中的数据名称域值,公有秘钥域值以及角色值;步骤309:结束。4.根据权利要求1所述的一种安全高效的物联网实现方法,其特征在于,生产者节点获取公有秘钥和私有秘钥后,使用注册消息向网络内服务器注册该公有秘钥;生产者节点P1有权限产生数据C1,数据C1由数据名称NA1唯一标识,生产者节点P1的单播地址为UA1;生产者节点P1获取公有秘钥和私有秘钥后,公有秘钥为单播地址UA1,执行下述过程向服务器S1执行注册操作:步骤401:开始;步骤402:生产者节点P1从节点名称集合中选择一个节点名称,该节点名称的数据名称为空,生产者节点P1发送一个注册消息,该注册消息的消息类型为2,数据名称为NA1,公有秘钥域值为单播地址UA1,角色域值为0,源节点名称域值为选择的节点名称;步骤403:如果服务器S1接收到该注册消息,则执行步骤407,否则执行步骤404;步骤404:接收到注册消息的节点从自己的节点名称集合中选择一个节点名称,该节点名称的数据名称等于该注册消息源节点名称中的数据名称;如果选择的节点名称中的深度小于注册消息中的源节点名称中的深度,则执行步骤405,否则执行步骤406;步骤405:接收到注册消息的节点从自己的节点名称集合中选择一个节点名称,该节点名称的数据名称等于该注册消息源节点名称中的数据名称,将注册消息的源节点名称更新为选择的节点名称,转发该注册消息,执行步骤403;步骤406:接收到注册消息的节点丢弃该注册消息,执行步骤403;步骤407:服务器S1接收到注册消息后,查看公有秘钥表,如果存在一个公有秘钥表项,该公有秘钥表项的数据名称域值,公有秘钥域值以及角色域值分别等于该注册消息中的数据名称域值,公有秘钥域值以及角色值,则执行步骤409,否则执行步骤408;步骤408:服务器S1接收到注册消息后,创建一个公有秘钥表项,该公有秘钥表项的数据名称域值,公有秘钥域值以及角色域值分别等于该注册消息中的数据名称域值,公有秘钥域值以及角色值;步骤409:结束。5.根据权利要求1所述的一种安全高效的物联网实现方法,其特征在于,每个节点维护一个数据表,每个数据表项包含数据名称域和数据域;消费者节点采用秘钥请求消息,秘钥响应消息,数据请求消息和数据响应消息获取数据;秘钥请求消息包括消息类型,数据名称域,源节点名称域,目的节点名称域和负载域;秘钥请求消息的消息类型为3;秘钥响应消息包括消息类型,数据名称域,目的节点名称域和负载域;秘钥响应消息的消息类型为4;数据请求消息包括消息类型,数据名称域,源节点名称域,目的节点名称域和负载域;数据请求消息的消息类型为5;数据响应消息包括消息类型,数据名称域,目的节点名称域和负载域;数据响应消息的消息类型为6;网络内的服务器为S1,数据C1由数据名称NA1唯一标识,有权限获取数据C1的所有消费者节点构建成多播组MG1,多播组MG1的多播地址为MA1,数据C1由数据名称NA1标识;消费者节点CS1为多播组MG1的成员;生产者节点P1有权限产生数据C1,单播地址UA1;如果消费者节点CS1需要获取数据C1且只有生产者节点P1能够提供数据C1,则消费者节点CS1通过下述过程从生产者节点P1获取数据C1:步骤501:开始;步骤502:消费者节点CS1从节点名称集合中选择一个节点名称,该节点名称的数据名称为空,消费者节点CS1发送一个秘钥请求消息,该秘钥请求消息的消息类型为3,数据名称为NA1,源节点名称和目的节点名称域值等于选择的节点名称,负载为角色值0;步骤503:如果服务器S1接收到该秘钥请求消息,则执行步骤507,否则执行步骤504;步骤504:接收到秘钥请求消息的节点从自己的节点名称集合中选择一个节点名称,该节点名称的数据名称等于该秘钥请求消息目的节点名称中的数据名称;如果选择的节点名称中的深度小于秘钥请求消息中的目的节点名称中的深度,则执行步骤505,否则执行步骤506;步骤505:接收到秘钥请求消息的节点从自己的节点名称集合中选择一个节点名称,该节点名称的数据名称等于该秘钥请求消息目的节点名称中的数据名称,将该秘钥请求消息的目的节点名称更新为选择的节点名称,转发该秘钥请求消息,执行步骤503;步骤506:接收到秘钥请求消息的节点丢弃该秘钥请求消息,执行步骤503;步骤507:服务器S1接收到秘钥请求消息后,查看公有秘钥表,选择一个公有秘钥表项,该公有秘钥表项的数据名称域值以及角色域值分别等于该秘钥请求消息中的数据名称域值以及负载中的角色值,服务器S1发送一个秘钥响应消息,该秘钥响应消息的消息类型为4,数据名称等于该秘钥请求消息的数据名称,目的节点名称等于该秘钥请求消息的源节点名称,负载为选中的公有秘钥表项的公有秘钥域值;步骤508:如果消费者节点CS1接收到该秘钥响应消息,则执行步骤512,否则执行步骤509;步骤509:接收到秘钥响应消息的节点从自己的节点名称集合中选择一个节点名称,该节点名称的数据名称等于该秘钥响应消息目的节点名称中的数据名称;如果选择的节点名称中的深度小于该秘钥响应消息中的目的节点名称中的深度,则执行步骤510,否则执行步骤511;步骤510:接收到秘钥响应消息的节点从自己的节点名称集合中选择一个节点名称,该节点名称的数据名称等于该秘钥响应消息目的节点名称中的数据名称,将该秘钥响应消息的目的节点名称更新为选择的节点名称,转发该秘钥响应消息,执行步骤508;步骤511:接收到秘钥响应消息的节点丢弃该秘钥响应消息,执行步骤508;步骤512:消费者节点CS1接收到秘钥响应消息后,利用该秘钥响应消息负载中的公有秘钥加密自己的公有秘钥,即多播地址MA1,消费者节点CS1从节点名称集合中选择一个节点名称,...

【专利技术属性】
技术研发人员:王晓喃
申请(专利权)人:常熟理工学院
类型:发明
国别省市:江苏,32

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1