本发明涉及一种系统实现系统,尤其涉及的是一种安全的物联网系统实现方法。
背景技术:
:物联网具有结构紧凑、易于布置、易于维护、价格便宜、测量精度高等优点,非常适合环境监测。近年来,国内外研究人员对基于物联网的安全系统进行了相关研究,并取得了一定的研究成果。但是目前基于物联网的安全系统具有一点过的局限性,因此代价和延迟较大。如何降低安全的物联网系统延迟成为近年来研究的热点问题。技术实现要素:发明目的:本发明所要解决的技术问题是针对现有技术的不足,提供一种安全的物联网系统实现方法。技术方案:本发明公开了一种安全的物联网系统实现方法,所述物联网系统包括接入节点和节点;一种类型的数据由一个名称唯一标识;有权限访问一种以上类型数据的节点构成一个组,一个组由一个组id唯一标识,构成组的节点称为组成员;一个节点与一个接入节点链接;一个接入节点链接与一个以上的节点链接;每个接入节点的公钥和私钥由第三方认证数据中心计算机保存并签发,接入节点向第三方认证数据中心计算机进行注册时获取自己的公钥和私钥,以及对应的非对称加密非对称加密算法aea0和对称加密对称加密算法sea0;aea0可以是rsa加密算法,sea0可以是高级加密标准(英语:advancedencryptionstandard,缩写:aes);每个接入节点保存一个组表,一个组表项由组id和名称集合构成;每个接入节点向第三方认证数据中心计算机进行注册时同时获取所有组的组id,以及每个组组成员所能访问的所有数据的名称的集合;对于每个组idgid0,该接入节点创建一个组表项,该组表项的组id等于该组idgid0,名称集合等于该组成员所能访问的所有数据的名称的集合;每个组成员具有一个公钥和私钥;每个组成员向第三方认证数据中心计算机进行注册时获取自己的公钥和私钥,以及对应的非对称加密算法aea0和对称加密算法sea0,同时每个组成员也获取所在组的所有组成员的公钥的集合以及所链接的接入节点的公钥;一个消息由消息类型定义,如下所示:消息类型的值消息名称1验证消息2验证响应消息3秘钥消息4发布消息5请求消息6响应消息一个节点或者接入节点保存一个消息表,一个消息表项包含消息类型和加密消息类型;对于每个消息类型t0,接入节点利用它的公钥和非对称加密算法aea0加密消息类型t0得到加密后的消息类型et0,并创建一个消息表项,该消息表项的消息类型为t0,加密消息类型为et0;对于每个消息类型t00,节点通过链接的接入节点的公钥和非对称加密算法aea0加密消息类型t00得到加密后的消息类型et00,并创建一个消息表项,该消息表项的消息类型为t00,加密消息类型为et00;一个验证消息由加密消息类型和加密公钥集合构成;一个验证响应消息由加密消息类型和加密随机数集合构成;节点nd1为组g1的组成员,组g1的所有组成员的公钥构成公钥集合st1,节点nd1与接入节点ap1链接;节点nd1执行下述操作来判断接入节点ap1的合法性,即是否为向第三方认证数据中心计算机注册的接入节点:步骤101:开始;步骤102:节点nd1查看集合st1,获取自己的公钥在集合st1中的位置p,即集合st1的第p个元素为节点nd1的公钥;节点nd1设置两个集合变量tst1和est1;变量tst1的值等于集合st1,参数est1的值为空集;步骤103:节点nd1判断参数tst1是否为空,如果是,则执行步骤105,否则执行步骤104;步骤104:节点nd1选择参数tst1的第一个元素,利用接入节点ap1的公钥和非对称加密算法aea0加密该元素,将加密后的元素加入到参数est1中并作为最后一个元素,同时从参数tst1中删除第一个元素,执行步骤103;步骤105:节点nd1选择一个消息表项,该消息表项的消息类型的值等于1,发送一个验证消息,该验证消息的加密消息类型的值等于该消息表项的加密消息类型值,加密公钥集合等于参数est1;步骤106:如果接入节点ap1接收到该验证消息,则执行步骤107,否则执行步骤115;步骤107:接入节点ap1选择一个消息表项,该消息表项的加密消息类型值等于接收到的验证消息的加密消息类型值,根据该消息表项的消息类型值,接入节点ap1执行下述操作:接入节点ap1利用自己的私钥和非对称加密算法aea0解密该验证消息的加密公钥集合得到解密后的公钥集合;接入节点ap1产生一个随机数r1,设置一个集合参数sp1和一个集合参数esp1,参数sp1的值等于解密后的公钥集合,参数esp1的值为空集;步骤108:如果参数sp1为空,则执行步骤110,否则执行步骤109;步骤109:接入节点ap1选择参数sp1的第一个元素,利用该元素和非对称加密算法aea0加密随机数r1,将加密后的随机数加入到参数esp1中并作为最后一个元素,同时从参数sp1中删除第一个元素,执行步骤108;步骤110:接入节点ap1选择一个消息表项,该消息表项的消息类型的值等于2,发送一个验证响应消息,该验证响应消息的加密消息类型的值等于该消息表项的加密消息类型值,加密随机数集合等于参数esp1;步骤111:节点nd1接收到该验证响应消息后,选择一个消息表项,该消息表项的加密消息类型值等于接收到的验证响应消息的加密消息类型值,根据该消息表项的消息类型值,节点nd1执行下述操作:节点nd1选择该验证响应消息中加密随机数集合中的第p个元素,利用自己的私钥和非对称加密算法aea0解密该元素得到随机数r2;节点nd1设置一个集合参数tst2和一个集合参数est2,参数tst2的值等于集合st1,参数est2的值为空集;步骤112:如果参数tst2为空,则执行步骤114,否则执行步骤113;步骤113:节点nd1选择参数tst2的第一个元素,利用该元素和非对称加密算法aea0加密随机数r2,将加密后的随机数加入到参数est2中并作为最后一个元素,同时从参数tst2中删除第一个元素,执行步骤112;步骤114:节点nd1判断est2是否等于接收到的验证响应消息中的加密随机数集合,如果等于,节点nd1则认为接入节点ap1具有合法性,否则节点nd1认为接入节点ap1为恶意接入节点,不具有合法性;步骤115:结束。节点通过上述过程判断所链接的接入节点是否具有合法性,如果该接入节点具有合法性,则可以安全地与该接入节点进行数据通信,从而确保了数据通信的安全性;由于上述过程中,节点与接入节点链路可达,因此无需路由即可验证接入节点的合法性,从而大幅度降低了验证代价和延迟。本发明所述方法中,每个接入节点保存一个会话表,一个会话表项包含会话秘钥、加密名称集合和生命周期。本发明所述方法中,每个接入节点保存一个会话表,一个会话表项包含会话秘钥、加密名称集合和生命周期;一个秘钥消息包含加密消息类型、加密会话秘钥和加密组id;节点nd1为组g1的组成员,组g1的组id为gid1,节点nd1与接入节点链接;如果节点nd1判断接入节点ap1为合法的接入节点,则定期执行下述操作获取会话秘钥:步骤201:开始;步骤202:节点nd1产生一个会话秘钥sk1,利用接入节点ap1的公钥、非对称加密算法aea0、加密组idgid1以及会话秘钥sk1分别获得加密后的组idegid1和加密后的会话秘钥esk1;节点nd1选择一个消息表项,该消息表项的消息类型值为3,发送一个秘钥消息,该秘钥消息的加密消息类型值为该消息表项的加密消息类型值,加密组id为egid1,加密后的会话秘钥为esk1;步骤203:如果接入节点ap1接收到该秘钥消息,则执行步骤204,否则执行步骤208;步骤204:接入节点ap1选择一个消息表项,该消息表项的加密消息类型值等于接收到的秘钥消息的加密消息类型值,根据该消息表项的消息类型值,接入节点ap1执行下述操作:接入节点ap1利用自己的私钥和非对称加密算法aea0解密该秘钥消息中的加密会话秘钥和加密组id,分别得到解密后的会话秘钥和组id;接入节点ap1选择一个组表项,该组表项的组id等于解密后的组id,设置一个集合参数sp2,参数sp2的值等于该组表项的名称集合,设置一个集合变量esp2,变量esp2的值为空集;步骤205:如果变量sp2为空,则执行步骤207,否则执行步骤206;步骤206:接入节点ap1选择参数sp2的第一个元素,利用解密后的会话秘钥和对称加密算法sea0加密该元素,将加密后的元素加入到参数esp2中并作为最后一个元素,同时从参数sp2中删除第一个元素,执行步骤205;步骤207:接入节点ap1创建一个会话表项,该会话表项的会话秘钥值为解密后的会话秘钥,加密名称集合等于esp2,生命周期设置为最大值;步骤208:结束。节点通过上述过程从链接的接入节点获取会话秘钥,这样,节点可以通过会话秘钥加密上传数据实现数据的安全传输,接入节点也可以利用会话秘钥从加密数据从而发送给节点,这样,节点能够安全地从接入节点获取数据。本发明所述方法中,每个接入节点保存一个数据表,一个数据表项包含名称、数据和生命周期。本发明所述方法中,一个发布消息包含加密消息类型、加密名称和加密数据;数据da1由名称na1标识,节点nd2与接入节点ap1链接;节点nd2产生数据da1后执行下述数据发布操作:步骤301:开始;步骤302:节点nd2选择一个消息表项,该消息表项的消息类型值为4,如果节点nd2为组成员且获取了会话秘钥sk2,则执行步骤303,否则执行步骤304;步骤303:节点nd2利用会话秘钥sk2、对称加密算法sea0、加密名称na1和数据da1分别获得加密后的名称ena1和加密后的数据eda1;节点nd2发送一个发布消息,该发布消息的加密消息类型为选中的消息表项的加密消息类型值,加密名称为ena1,加密数据为eda1,执行步骤305;步骤304:节点nd2利用接入节点ap1的公钥、非对称加密算法aea0、加密名称na1和数据da1分别获得加密后的名称sna1和加密后的数据sda1;节点nd2发送一个发布消息,该发布消息的加密消息类型值为选中的消息表项的加密消息类型值,加密名称为sna1,加密数据为sda1;步骤305:如果接入节点ap1接收到该发布消息,则执行步骤306,否则执行步骤308;步骤306:接入节点ap1选择一个消息表项,该消息表项的加密消息类型值等于接收到的发布消息的加密消息类型值,根据该消息表项的消息类型值,接入节点ap1执行下述操作:接入节点ap1查看是否存在一个会话表项,该会话表项的加密名称集合包含该发布消息的加密名称,如果包含,接入节点ap1则利用该会话表项的会话秘钥和对称加密算法sea0解密该发布消息的加密名称和加密数据;否则接入节点ap1利用自己的私钥解密该发布消息的加密名称和加密数据;步骤307:接入节点ap1查看数据表,如果存在一个数据表项,该数据表项的名称等于该发布消息解密后的名称,则将该数据表项的数据域值更新为解密后的数据,将生命周期设置为最大值;否则,接入节点ap1创建一个数据表项,该数据表项的名称等于该发布消息解密后的名称,数据域值为解密后的数据,生命周期为最大值;步骤308:结束。节点通过上述过程将产生的数据加密后发布到链接的接入节点;这样,其他节点可以从该接入节点安全地获取该数据,由于该数据通过生命周期来确保其有效性和实时性,因此提高了数据通信的成功率,此外,由于节点与链接的接入节点一跳可达,因此大幅度降低了数据发布延迟和代价。本发明所述方法中,一个请求消息包含加密消息类型和加密名称;一个响应消息包含加密消息类型、加密名称和加密数据。本发明所述方法中,数据da1由名称na1标识;节点nd1为组g1的组成员,与接入节点ap1链路相连,有权限获取数据da1;节点nd1通过下述过程获取数据da1:步骤401:开始;步骤402:节点nd1选择一个消息表项,该消息表项的消息类型值为5,利用自己的会话秘钥和对称加密算法sea0加密名称na1获得加密后的名称ena2;节点nd1发送一个请求消息,该请求消息的加密消息类型值为选中的消息表项的加密消息类型值,加密名称为ena2;步骤403:如果接入节点ap1接收到该请求消息,则执行步骤404,否则执行步骤408;步骤404:接入节点ap1选择一个消息表项,该消息表项的加密消息类型值等于接收到的请求消息的加密消息类型值,根据该消息表项的消息类型值,接入节点ap1执行下述操作:接入节点ap1查看是否存在一个会话表项,该会话表项的加密名称集合包含该请求消息的加密名称,如果包含,则执行步骤405,否则执行步骤408;步骤405:接入节点ap1选择一个会话表项,该会话表项的加密名称集合包含该请求消息的加密名称,利用该会话表项的会话秘钥和对称加密算法sea0解密该请求消息的加密名称;选择一个数据表项,该数据表项的名称域值等于解密后的名称,利用该会话表项的会话秘钥和对称加密算法sea0加密该数据表项的数据域值得到加密后的数据eda2;接入节点ap1选择一个消息表项,该消息表项的消息类型值为6,发送一个响应消息,该响应消息的加密消息类型值为选中的消息表项的加密消息类型值,加密名称等于接收到的请求消息的加密名称,加密数据等于eda2;步骤406:节点接收到该响应消息;如果该节点发送了请求消息且该响应消息的加密名称等于自己发送的请求消息的加密名称,则执行步骤407,否则执行步骤408;步骤407:接收到响应消息的节点利用自己的会话秘钥和对称加密算法sea0解密该响应消息中的加密数据得到解密后的数据,保存解密后的数据;步骤408:结束。节点通过上述过程从接入节点获取数据,上述过程通过加密名称来确保数据通信过程的安全性,同时由于节点并没有id标识,因此实现了隐私保护;同时,上述过程节点与接入节点之间一跳可达,从而降低了数据通信的延迟和代价。有益效果:本发明提供了一种安全的物联网系统实现方法的实现方法,用户通过本发明所提供的一种安全的物联网系统实现方法能够快速安全地获取数据,本发明有效降低了数据获取的延迟和代价,从而有效提高网络服务性能。本发明可应用于智能医疗,智能监测、智能车联网等领域,具有广泛的应用前景。附图说明下面结合附图和具体实施方式对本发明做更进一步的具体说明,本发明的上述和/或其他方面的优点将会变得更加清楚。图1为本发明所述的检测接入节点合法性流程示意图。图2为本发明所述的获取会话秘钥流程示意图。图3为本发明所述的数据发布流程示意图。图4为本发明所述的数据获取流程示意图。具体实施方式:本发明提供了一种安全的物联网系统实现方法的实现方法,用户通过本发明所提供的一种安全的物联网系统实现方法能够快速安全地获取数据,本发明有效降低了数据获取的延迟和代价,从而有效提高网络服务性能。本发明可应用于智能医疗,智能监测、智能车联网等领域,具有广泛的应用前景。图1为本发明所述的检测接入节点合法性流程示意图。所述物联网系统包括接入节点和节点;一种类型的数据由一个名称唯一标识;有权限访问一种以上类型数据的节点构成一个组,一个组由一个组id唯一标识,构成组的节点称为组成员;一个节点与一个接入节点链接;一个接入节点链接与一个以上的节点链接;每个接入节点的公钥和私钥由第三方认证数据中心计算机保存并签发,接入节点向第三方认证数据中心计算机进行注册时获取自己的公钥和私钥,以及对应的非对称加密非对称加密算法aea0和对称加密对称加密算法sea0;aea0可以是rsa加密算法,sea0可以是高级加密标准(英语:advancedencryptionstandard,缩写:aes);每个接入节点保存一个组表,一个组表项由组id和名称集合构成;每个接入节点向第三方认证数据中心计算机进行注册时同时获取所有组的组id,以及每个组组成员所能访问的所有数据的名称的集合;对于每个组idgid0,该接入节点创建一个组表项,该组表项的组id等于该组idgid0,名称集合等于该组成员所能访问的所有数据的名称的集合;每个组成员具有一个公钥和私钥;每个组成员向第三方认证数据中心计算机进行注册时获取自己的公钥和私钥,以及对应的非对称加密算法aea0和对称加密算法sea0,同时每个组成员也获取所在组的所有组成员的公钥的集合以及所链接的接入节点的公钥;一个消息由消息类型定义,如下所示:消息类型的值消息名称1验证消息2验证响应消息3秘钥消息4发布消息5请求消息6响应消息一个节点或者接入节点保存一个消息表,一个消息表项包含消息类型和加密消息类型;对于每个消息类型t0,接入节点利用它的公钥和非对称加密算法aea0加密消息类型t0得到加密后的消息类型et0,并创建一个消息表项,该消息表项的消息类型为t0,加密消息类型为et0;对于每个消息类型t00,节点通过链接的接入节点的公钥和非对称加密算法aea0加密消息类型t00得到加密后的消息类型et00,并创建一个消息表项,该消息表项的消息类型为t00,加密消息类型为et00;一个验证消息由加密消息类型和加密公钥集合构成;一个验证响应消息由加密消息类型和加密随机数集合构成;节点nd1为组g1的组成员,组g1的所有组成员的公钥构成公钥集合st1,节点nd1与接入节点ap1链接;节点nd1执行下述操作来判断接入节点ap1的合法性,即是否为向第三方认证数据中心计算机注册的接入节点:步骤101:开始;步骤102:节点nd1查看集合st1,获取自己的公钥在集合st1中的位置p,即集合st1的第p个元素为节点nd1的公钥;节点nd1设置两个集合变量tst1和est1;变量tst1的值等于集合st1,参数est1的值为空集;步骤103:节点nd1判断参数tst1是否为空,如果是,则执行步骤105,否则执行步骤104;步骤104:节点nd1选择参数tst1的第一个元素,利用接入节点ap1的公钥和非对称加密算法aea0加密该元素,将加密后的元素加入到参数est1中并作为最后一个元素,同时从参数tst1中删除第一个元素,执行步骤103;步骤105:节点nd1选择一个消息表项,该消息表项的消息类型的值等于1,发送一个验证消息,该验证消息的加密消息类型的值等于该消息表项的加密消息类型值,加密公钥集合等于参数est1;步骤106:如果接入节点ap1接收到该验证消息,则执行步骤107,否则执行步骤115;步骤107:接入节点ap1选择一个消息表项,该消息表项的加密消息类型值等于接收到的验证消息的加密消息类型值,根据该消息表项的消息类型值,接入节点ap1执行下述操作:接入节点ap1利用自己的私钥和非对称加密算法aea0解密该验证消息的加密公钥集合得到解密后的公钥集合;接入节点ap1产生一个随机数r1,设置一个集合参数sp1和一个集合参数esp1,参数sp1的值等于解密后的公钥集合,参数esp1的值为空集;步骤108:如果参数sp1为空,则执行步骤110,否则执行步骤109;步骤109:接入节点ap1选择参数sp1的第一个元素,利用该元素和非对称加密算法aea0加密随机数r1,将加密后的随机数加入到参数esp1中并作为最后一个元素,同时从参数sp1中删除第一个元素,执行步骤108;步骤110:接入节点ap1选择一个消息表项,该消息表项的消息类型的值等于2,发送一个验证响应消息,该验证响应消息的加密消息类型的值等于该消息表项的加密消息类型值,加密随机数集合等于参数esp1;步骤111:节点nd1接收到该验证响应消息后,选择一个消息表项,该消息表项的加密消息类型值等于接收到的验证响应消息的加密消息类型值,根据该消息表项的消息类型值,节点nd1执行下述操作:节点nd1选择该验证响应消息中加密随机数集合中的第p个元素,利用自己的私钥和非对称加密算法aea0解密该元素得到随机数r2;节点nd1设置一个集合参数tst2和一个集合参数est2,参数tst2的值等于集合st1,参数est2的值为空集;步骤112:如果参数tst2为空,则执行步骤114,否则执行步骤113;步骤113:节点nd1选择参数tst2的第一个元素,利用该元素和非对称加密算法aea0加密随机数r2,将加密后的随机数加入到参数est2中并作为最后一个元素,同时从参数tst2中删除第一个元素,执行步骤112;步骤114:节点nd1判断est2是否等于接收到的验证响应消息中的加密随机数集合,如果等于,节点nd1则认为接入节点ap1具有合法性,否则节点nd1认为接入节点ap1为恶意接入节点,不具有合法性;步骤115:结束。节点通过上述过程判断所链接的接入节点是否具有合法性,如果该接入节点具有合法性,则可以安全地与该接入节点进行数据通信,从而确保了数据通信的安全性;由于上述过程中,节点与接入节点链路可达,因此无需路由即可验证接入节点的合法性,从而大幅度降低了验证代价和延迟。图2为本发明所述的获取会话秘钥流程示意图。每个接入节点保存一个会话表,一个会话表项包含会话秘钥、加密名称集合和生命周期;每个接入节点保存一个会话表,一个会话表项包含会话秘钥、加密名称集合和生命周期;一个秘钥消息包含加密消息类型、加密会话秘钥和加密组id;节点nd1为组g1的组成员,组g1的组id为gid1,节点nd1与接入节点链接;如果节点nd1判断接入节点ap1为合法的接入节点,则定期执行下述操作获取会话秘钥:步骤201:开始;步骤202:节点nd1产生一个会话秘钥sk1,利用接入节点ap1的公钥、非对称加密算法aea0、加密组idgid1以及会话秘钥sk1分别获得加密后的组idegid1和加密后的会话秘钥esk1;节点nd1选择一个消息表项,该消息表项的消息类型值为3,发送一个秘钥消息,该秘钥消息的加密消息类型值为该消息表项的加密消息类型值,加密组id为egid1,加密后的会话秘钥为esk1;步骤203:如果接入节点ap1接收到该秘钥消息,则执行步骤204,否则执行步骤208;步骤204:接入节点ap1选择一个消息表项,该消息表项的加密消息类型值等于接收到的秘钥消息的加密消息类型值,根据该消息表项的消息类型值,接入节点ap1执行下述操作:接入节点ap1利用自己的私钥和非对称加密算法aea0解密该秘钥消息中的加密会话秘钥和加密组id,分别得到解密后的会话秘钥和组id;接入节点ap1选择一个组表项,该组表项的组id等于解密后的组id,设置一个集合参数sp2,参数sp2的值等于该组表项的名称集合,设置一个集合变量esp2,变量esp2的值为空集;步骤205:如果变量sp2为空,则执行步骤207,否则执行步骤206;步骤206:接入节点ap1选择参数sp2的第一个元素,利用解密后的会话秘钥和对称加密算法sea0加密该元素,将加密后的元素加入到参数esp2中并作为最后一个元素,同时从参数sp2中删除第一个元素,执行步骤205;步骤207:接入节点ap1创建一个会话表项,该会话表项的会话秘钥值为解密后的会话秘钥,加密名称集合等于esp2,生命周期设置为最大值;步骤208:结束。节点通过上述过程从链接的接入节点获取会话秘钥,这样,节点可以通过会话秘钥加密上传数据实现数据的安全传输,接入节点也可以利用会话秘钥从加密数据从而发送给节点,这样,节点能够安全地从接入节点获取数据。图3为本发明所述的数据发布流程示意图。每个接入节点保存一个数据表,一个数据表项包含名称、数据和生命周期;一个发布消息包含加密消息类型、加密名称和加密数据;数据da1由名称na1标识,节点nd2与接入节点ap1链接;节点nd2产生数据da1后执行下述数据发布操作:步骤301:开始;步骤302:节点nd2选择一个消息表项,该消息表项的消息类型值为4,如果节点nd2为组成员且获取了会话秘钥sk2,则执行步骤303,否则执行步骤304;步骤303:节点nd2利用会话秘钥sk2、对称加密算法sea0、加密名称na1和数据da1分别获得加密后的名称ena1和加密后的数据eda1;节点nd2发送一个发布消息,该发布消息的加密消息类型为选中的消息表项的加密消息类型值,加密名称为ena1,加密数据为eda1,执行步骤305;步骤304:节点nd2利用接入节点ap1的公钥、非对称加密算法aea0、加密名称na1和数据da1分别获得加密后的名称sna1和加密后的数据sda1;节点nd2发送一个发布消息,该发布消息的加密消息类型值为选中的消息表项的加密消息类型值,加密名称为sna1,加密数据为sda1;步骤305:如果接入节点ap1接收到该发布消息,则执行步骤306,否则执行步骤308;步骤306:接入节点ap1选择一个消息表项,该消息表项的加密消息类型值等于接收到的发布消息的加密消息类型值,根据该消息表项的消息类型值,接入节点ap1执行下述操作:接入节点ap1查看是否存在一个会话表项,该会话表项的加密名称集合包含该发布消息的加密名称,如果包含,接入节点ap1则利用该会话表项的会话秘钥和对称加密算法sea0解密该发布消息的加密名称和加密数据;否则接入节点ap1利用自己的私钥解密该发布消息的加密名称和加密数据;步骤307:接入节点ap1查看数据表,如果存在一个数据表项,该数据表项的名称等于该发布消息解密后的名称,则将该数据表项的数据域值更新为解密后的数据,将生命周期设置为最大值;否则,接入节点ap1创建一个数据表项,该数据表项的名称等于该发布消息解密后的名称,数据域值为解密后的数据,生命周期为最大值;步骤308:结束。节点通过上述过程将产生的数据加密后发布到链接的接入节点;这样,其他节点可以从该接入节点安全地获取该数据,由于该数据通过生命周期来确保其有效性和实时性,因此提高了数据通信的成功率,此外,由于节点与链接的接入节点一跳可达,因此大幅度降低了数据发布延迟和代价。图4为本发明所述的数据获取流程示意图。一个请求消息包含加密消息类型和加密名称;一个响应消息包含加密消息类型、加密名称和加密数据;数据da1由名称na1标识;节点nd1为组g1的组成员,与接入节点ap1链路相连,有权限获取数据da1;节点nd1通过下述过程获取数据da1:步骤401:开始;步骤402:节点nd1选择一个消息表项,该消息表项的消息类型值为5,利用自己的会话秘钥和对称加密算法sea0加密名称na1获得加密后的名称ena2;节点nd1发送一个请求消息,该请求消息的加密消息类型值为选中的消息表项的加密消息类型值,加密名称为ena2;步骤403:如果接入节点ap1接收到该请求消息,则执行步骤404,否则执行步骤408;步骤404:接入节点ap1选择一个消息表项,该消息表项的加密消息类型值等于接收到的请求消息的加密消息类型值,根据该消息表项的消息类型值,接入节点ap1执行下述操作:接入节点ap1查看是否存在一个会话表项,该会话表项的加密名称集合包含该请求消息的加密名称,如果包含,则执行步骤405,否则执行步骤408;步骤405:接入节点ap1选择一个会话表项,该会话表项的加密名称集合包含该请求消息的加密名称,利用该会话表项的会话秘钥和对称加密算法sea0解密该请求消息的加密名称;选择一个数据表项,该数据表项的名称域值等于解密后的名称,利用该会话表项的会话秘钥和对称加密算法sea0加密该数据表项的数据域值得到加密后的数据eda2;接入节点ap1选择一个消息表项,该消息表项的消息类型值为6,发送一个响应消息,该响应消息的加密消息类型值为选中的消息表项的加密消息类型值,加密名称等于接收到的请求消息的加密名称,加密数据等于eda2;步骤406:节点接收到该响应消息;如果该节点发送了请求消息且该响应消息的加密名称等于自己发送的请求消息的加密名称,则执行步骤407,否则执行步骤408;步骤407:接收到响应消息的节点利用自己的会话秘钥和对称加密算法sea0解密该响应消息中的加密数据得到解密后的数据,保存解密后的数据;步骤408:结束。节点通过上述过程从接入节点获取数据,上述过程通过加密名称来确保数据通信过程的安全性,同时由于节点并没有id标识,因此实现了隐私保护;同时,上述过程节点与接入节点之间一跳可达,从而降低了数据通信的延迟和代价。实施例1基于表1的仿真参数,本实施例模拟了本发明中的一种安全的物联网系统实现方法。节点nd1启动后,执行步骤101-115发送一个验证消息来判断接入节点ap1的合法性,即判断接入节点ap1是否为向第三方认证数据中心计算机注册的接入节点。节点通过上述过程判断所链接的接入节点是否具有合法性,如果该接入节点具有合法性,则可以安全地与该接入节点进行数据通信,从而确保了数据通信的安全性;由于上述过程中,节点与接入节点链路可达,因此无需路由即可验证接入节点的合法性,从而大幅度降低了验证代价和延迟。如果节点nd1判断接入节点ap1为合法的接入节点,则执行步骤201-208发送一个秘钥消息来获取会话秘钥。节点通过上述过程从链接的接入节点获取会话秘钥,这样,节点可以通过会话秘钥加密上传数据实现数据的安全传输,接入节点也可以利用会话秘钥从加密数据从而发送给节点,这样,节点能够安全地从接入节点获取数据。节点nd2产生数据da1后执行步骤301-308通过发送一个发布消息来执行数据发布操作。节点通过上述过程将产生的数据加密后发布到链接的接入节点;这样,其他节点可以从该接入节点安全地获取该数据,由于该数据通过生命周期来确保其有效性和实时性,因此提高了数据通信的成功率,此外,由于节点与链接的接入节点一跳可达,因此大幅度降低了数据发布延迟和代价。节点nd1通过请求消息和响应消息执行步骤401-408获取数据da1。节点通过上述过程从接入节点获取数据,上述过程通过加密名称来确保数据通信过程的安全性,同时由于节点并没有id标识,因此实现了隐私保护;上述过程节点与接入节点之间一跳可达,从而降低了数据通信的延迟和代价。针对一种安全的物联网系统实现方法,性能分析如下,当加密数据量增加时,数据获取延迟随之增加,当加密数据量减少时,数据获取延迟随之减少,数据获取的平均延迟为105.7ms。表1仿真参数本发明提供了一种安全的物联网系统实现方法的思路,具体实现该技术方案的方法和途径很多,以上所述仅是本发明的优选实施方式,应当指出,对于本
技术领域:
的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。本实施例中未明确的各组成部份均可用现有技术加以实现。当前第1页1 2 3 
技术特征:1.一种安全的物联网系统实现方法,其特征在于,所述物联网系统包括接入节点和节点;一种类型的数据由一个名称唯一标识;有权限访问一种以上类型数据的节点构成一个组,一个组由一个组id唯一标识,构成组的节点称为组成员;一个节点与一个接入节点链接;一个接入节点链接与一个以上的节点链接;
每个接入节点的公钥和私钥由第三方认证数据中心计算机保存并签发,接入节点向第三方认证数据中心计算机进行注册时获取自己的公钥和私钥,以及对应的非对称加密非对称加密算法aea0和对称加密对称加密算法sea0;
每个接入节点保存一个组表,一个组表项由组id和名称集合构成;
每个接入节点向第三方认证数据中心计算机进行注册时同时获取所有组的组id,以及每个组组成员所能访问的所有数据的名称的集合;对于每个组idgid0,该接入节点创建一个组表项,该组表项的组id等于该组idgid0,名称集合等于该组成员所能访问的所有数据的名称的集合;
每个组成员具有一个公钥和私钥;每个组成员向第三方认证数据中心计算机进行注册时获取自己的公钥和私钥,以及对应的非对称加密算法aea0和对称加密算法sea0,同时每个组成员也获取所在组的所有组成员的公钥的集合以及所链接的接入节点的公钥;
一个消息由消息类型定义,如下所示:
消息类型的值消息名称
1验证消息
2验证响应消息
3秘钥消息
4发布消息
5请求消息
6响应消息
一个节点或者接入节点保存一个消息表,一个消息表项包含消息类型和加密消息类型;
对于每个消息类型t0,接入节点利用它的公钥和非对称加密算法aea0加密消息类型t0得到加密后的消息类型et0,并创建一个消息表项,该消息表项的消息类型为t0,加密消息类型为et0;
对于每个消息类型t00,节点通过链接的接入节点的公钥和非对称加密算法aea0加密消息类型t00得到加密后的消息类型et00,并创建一个消息表项,该消息表项的消息类型为t00,加密消息类型为et00;
一个验证消息由加密消息类型和加密公钥集合构成;一个验证响应消息由加密消息类型和加密随机数集合构成;
节点nd1为组g1的组成员,组g1的所有组成员的公钥构成公钥集合st1,节点nd1与接入节点ap1链接;
节点nd1执行下述操作来判断接入节点ap1的合法性,即是否为向第三方认证数据中心计算机注册的接入节点:
步骤101:开始;
步骤102:节点nd1查看集合st1,获取自己的公钥在集合st1中的位置p,即集合st1的第p个元素为节点nd1的公钥;节点nd1设置两个集合变量tst1和est1;变量tst1的值等于集合st1,参数est1的值为空集;
步骤103:节点nd1判断参数tst1是否为空,如果是,则执行步骤105,否则执行步骤104;
步骤104:节点nd1选择参数tst1的第一个元素,利用接入节点ap1的公钥和非对称加密算法aea0加密该元素,将加密后的元素加入到参数est1中并作为最后一个元素,同时从参数tst1中删除第一个元素,执行步骤103;
步骤105:节点nd1选择一个消息表项,该消息表项的消息类型的值等于1,发送一个验证消息,该验证消息的加密消息类型的值等于该消息表项的加密消息类型值,加密公钥集合等于参数est1;
步骤106:如果接入节点ap1接收到该验证消息,则执行步骤107,否则执行步骤115;
步骤107:接入节点ap1选择一个消息表项,该消息表项的加密消息类型值等于接收到的验证消息的加密消息类型值,根据该消息表项的消息类型值,接入节点ap1执行下述操作:接入节点ap1利用自己的私钥和非对称加密算法aea0解密该验证消息的加密公钥集合得到解密后的公钥集合;接入节点ap1产生一个随机数r1,设置一个集合参数sp1和一个集合参数esp1,参数sp1的值等于解密后的公钥集合,参数esp1的值为空集;
步骤108:如果参数sp1为空,则执行步骤110,否则执行步骤109;
步骤109:接入节点ap1选择参数sp1的第一个元素,利用该元素和非对称加密算法aea0加密随机数r1,将加密后的随机数加入到参数esp1中并作为最后一个元素,同时从参数sp1中删除第一个元素,执行步骤108;
步骤110:接入节点ap1选择一个消息表项,该消息表项的消息类型的值等于2,发送一个验证响应消息,该验证响应消息的加密消息类型的值等于该消息表项的加密消息类型值,加密随机数集合等于参数esp1;
步骤111:节点nd1接收到该验证响应消息后,选择一个消息表项,该消息表项的加密消息类型值等于接收到的验证响应消息的加密消息类型值,根据该消息表项的消息类型值,节点nd1执行下述操作:节点nd1选择该验证响应消息中加密随机数集合中的第p个元素,利用自己的私钥和非对称加密算法aea0解密该元素得到随机数r2;节点nd1设置一个集合参数tst2和一个集合参数est2,参数tst2的值等于集合st1,参数est2的值为空集;
步骤112:如果参数tst2为空,则执行步骤114,否则执行步骤113;
步骤113:节点nd1选择参数tst2的第一个元素,利用该元素和非对称加密算法aea0加密随机数r2,将加密后的随机数加入到参数est2中并作为最后一个元素,同时从参数tst2中删除第一个元素,执行步骤112;
步骤114:节点nd1判断est2是否等于接收到的验证响应消息中的加密随机数集合,如果等于,节点nd1则认为接入节点ap1具有合法性,否则节点nd1认为接入节点ap1为恶意接入节点,不具有合法性;
步骤115:结束。
2.根据权利要求1所述的一种安全的物联网系统实现方法,其特征在于,
每个接入节点保存一个会话表,一个会话表项包含会话秘钥、加密名称集合和生命周期。
3.根据权利要求2所述的一种安全的物联网系统实现方法,其特征在于,
每个接入节点保存一个会话表,一个会话表项包含会话秘钥、加密名称集合和生命周期;
一个秘钥消息包含加密消息类型、加密会话秘钥和加密组id;
节点nd1为组g1的组成员,组g1的组id为gid1,节点nd1与接入节点链接;
如果节点nd1判断接入节点ap1为合法的接入节点,则定期执行下述操作获取会话秘钥:
步骤201:开始;
步骤202:节点nd1产生一个会话秘钥sk1,利用接入节点ap1的公钥、非对称加密算法aea0、加密组idgid1以及会话秘钥sk1分别获得加密后的组idegid1和加密后的会话秘钥esk1;节点nd1选择一个消息表项,该消息表项的消息类型值为3,发送一个秘钥消息,该秘钥消息的加密消息类型值为该消息表项的加密消息类型值,加密组id为egid1,加密后的会话秘钥为esk1;
步骤203:如果接入节点ap1接收到该秘钥消息,则执行步骤204,否则执行步骤208;
步骤204:接入节点ap1选择一个消息表项,该消息表项的加密消息类型值等于接收到的秘钥消息的加密消息类型值,根据该消息表项的消息类型值,接入节点ap1执行下述操作:接入节点ap1利用自己的私钥和非对称加密算法aea0解密该秘钥消息中的加密会话秘钥和加密组id,分别得到解密后的会话秘钥和组id;接入节点ap1选择一个组表项,该组表项的组id等于解密后的组id,设置一个集合参数sp2,参数sp2的值等于该组表项的名称集合,设置一个集合变量esp2,变量esp2的值为空集;
步骤205:如果变量sp2为空,则执行步骤207,否则执行步骤206;
步骤206:接入节点ap1选择参数sp2的第一个元素,利用解密后的会话秘钥和对称加密算法sea0加密该元素,将加密后的元素加入到参数esp2中并作为最后一个元素,同时从参数sp2中删除第一个元素,执行步骤205;
步骤207:接入节点ap1创建一个会话表项,该会话表项的会话秘钥值为解密后的会话秘钥,加密名称集合等于esp2,生命周期设置为最大值;
步骤208:结束。
4.根据权利要求1所述的一种安全的物联网系统实现方法,其特征在于,
每个接入节点保存一个数据表,一个数据表项包含名称、数据和生命周期。
5.根据权利要求4所述的一种安全的物联网系统实现方法,其特征在于,
一个发布消息包含加密消息类型、加密名称和加密数据;
数据da1由名称na1标识,节点nd2与接入节点ap1链接;节点nd2产生数据da1后执行下述数据发布操作:
步骤301:开始;
步骤302:节点nd2选择一个消息表项,该消息表项的消息类型值为4,如果节点nd2为组成员且获取了会话秘钥sk2,则执行步骤303,否则执行步骤304;
步骤303:节点nd2利用会话秘钥sk2、对称加密算法sea0、加密名称na1和数据da1分别获得加密后的名称ena1和加密后的数据eda1;节点nd2发送一个发布消息,该发布消息的加密消息类型为选中的消息表项的加密消息类型值,加密名称为ena1,加密数据为eda1,执行步骤305;
步骤304:节点nd2利用接入节点ap1的公钥、非对称加密算法aea0、加密名称na1和数据da1分别获得加密后的名称sna1和加密后的数据sda1;节点nd2发送一个发布消息,该发布消息的加密消息类型值为选中的消息表项的加密消息类型值,加密名称为sna1,加密数据为sda1;
步骤305:如果接入节点ap1接收到该发布消息,则执行步骤306,否则执行步骤308;
步骤306:接入节点ap1选择一个消息表项,该消息表项的加密消息类型值等于接收到的发布消息的加密消息类型值,根据该消息表项的消息类型值,接入节点ap1执行下述操作:接入节点ap1查看是否存在一个会话表项,该会话表项的加密名称集合包含该发布消息的加密名称,如果包含,接入节点ap1则利用该会话表项的会话秘钥和对称加密算法sea0解密该发布消息的加密名称和加密数据;否则接入节点ap1利用自己的私钥解密该发布消息的加密名称和加密数据;
步骤307:接入节点ap1查看数据表,如果存在一个数据表项,该数据表项的名称等于该发布消息解密后的名称,则将该数据表项的数据域值更新为解密后的数据,将生命周期设置为最大值;否则,接入节点ap1创建一个数据表项,该数据表项的名称等于该发布消息解密后的名称,数据域值为解密后的数据,生命周期为最大值;
步骤308:结束。
6.根据权利要求1所述的一种安全的物联网系统实现方法,其特征在于,
一个请求消息包含加密消息类型和加密名称;
一个响应消息包含加密消息类型、加密名称和加密数据。
7.根据权利要求6所述的一种安全的物联网系统实现方法,其特征在于,
数据da1由名称na1标识;
节点nd1为组g1的组成员,与接入节点ap1链路相连,有权限获取数据da1;节点nd1通过下述过程获取数据da1:
步骤401:开始;
步骤402:节点nd1选择一个消息表项,该消息表项的消息类型值为5,利用自己的会话秘钥和对称加密算法sea0加密名称na1获得加密后的名称ena2;节点nd1发送一个请求消息,该请求消息的加密消息类型值为选中的消息表项的加密消息类型值,加密名称为ena2;
步骤403:如果接入节点ap1接收到该请求消息,则执行步骤404,否则执行步骤408;
步骤404:接入节点ap1选择一个消息表项,该消息表项的加密消息类型值等于接收到的请求消息的加密消息类型值,根据该消息表项的消息类型值,接入节点ap1执行下述操作:接入节点ap1查看是否存在一个会话表项,该会话表项的加密名称集合包含该请求消息的加密名称,如果包含,则执行步骤405,否则执行步骤408;
步骤405:接入节点ap1选择一个会话表项,该会话表项的加密名称集合包含该请求消息的加密名称,利用该会话表项的会话秘钥和对称加密算法sea0解密该请求消息的加密名称;选择一个数据表项,该数据表项的名称域值等于解密后的名称,利用该会话表项的会话秘钥和对称加密算法sea0加密该数据表项的数据域值得到加密后的数据eda2;接入节点ap1选择一个消息表项,该消息表项的消息类型值为6,发送一个响应消息,该响应消息的加密消息类型值为选中的消息表项的加密消息类型值,加密名称等于接收到的请求消息的加密名称,加密数据等于eda2;
步骤406:节点接收到该响应消息;如果该节点发送了请求消息且该响应消息的加密名称等于自己发送的请求消息的加密名称,则执行步骤407,否则执行步骤408;
步骤407:接收到响应消息的节点利用自己的会话秘钥和对称加密算法sea0解密该响应消息中的加密数据得到解密后的数据,保存解密后的数据;
步骤408:结束。
技术总结本发明公开了一种安全的物联网系统实现方法,所述物联网系统包括接入节点和节点;一种类型的数据由一个名称唯一标识;有权限访问一种以上类型数据的节点构成一个组,一个组由一个组ID唯一标识,构成组的节点称为组成员;一个节点与一个接入节点链接;一个接入节点链接与一个以上的节点链接。用户通过本发明所提供的一种安全的物联网系统实现方法能够快速安全地获取数据,本发明有效降低了数据获取的延迟和代价,从而有效提高网络服务性能。本发明可应用于智能医疗,智能监测、智能车联网等领域,具有广泛的应用前景。
技术研发人员:王晓喃;王兴伟;蔡少豪
受保护的技术使用者:常熟理工学院
技术研发日:2020.11.13
技术公布日:2021.03.12