具体实施方式
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
根据本发明实施例的一个方面,提供了一种基于物联网操作系统的数据交互方法,如图1所示,应用于物联网设备,该方法包括:
S102,在物联网设备与物联网服务器进行数据交互的过程中,物联网设备向物联网服务器发送第一目标消息,其中,第一目标消息中携带有第一会话密钥。
S104,物联网设备将接收到物联网服务器返回的第二目标消息,其中,第二目标消息中携带有物联网服务器随机生成的第二会话密钥,物联网设备和物联网服务器共享动态密钥库。
S106,物联网设备利用第一会话密钥及第二会话密钥确定出目标会话密钥,并确定建立与物联网服务器之间的目标会话,其中,目标会话密钥用于验证通过目标会话交互的数据。
S108,物联网设备通过目标会话向物联网服务器发送目标数据。
可选的,在本实施例中,上述数据交互方法可以但不限于应用基于物联网实现的智能家居系统中。如该智能家居系统中可以包括但不限于:智能电视、智能电冰箱、智能电饭煲、智能空调等智能家居设备与服务器。进一步,为了保证智能家居系统中的各个智能家居设备(即物联网设备)与服务器(即物联网服务器)在物联网中可以进行安全的数据通信,在本实施例中提供的数据交互方法中,通过共享动态密钥库,构建目标会话密钥来保证智能家居设备与服务器之间的安全通信,进而克服相关技术中数据交互的安全性较低的技术问题。
需要说明的是,在本实施例中,物联网设备向物联网服务器发送第一目标消息,其中,第一目标消息中携带有第一会话密钥;进一步,物联网设备将接收到物联网服务器返回的第二目标消息,其中,第二目标消息中携带有物联网服务器随机生成的第二会话密钥,其中,上述物联网设备和物联网服务器的动态密钥库共享;进一步,物联网设备利用第一会话密钥及第二会话密钥确定出目标会话密钥,并确定建立与物联网服务器之间的目标会话,其中,目标会话密钥用于验证通过目标会话交互的数据;进一步,物联网设备通过目标会话向物联网服务器发送目标数据。
可选的,在本实施例中,假设物联网服务器获得的密钥为k1、第一目标消息为M3、第二目标消息为M4一旦物联网服务器接收到消息M3,物联网服务器就通过从其动态密钥库中生成密钥k1来解密由物联网设备发送的消息。
通过本申请提供的实施例,利用动态密钥库存储密钥,且动态密钥库在物联网设备和物联网服务器之间共享的方式,并基于动态密钥库的算法,从而达到密钥库根据物联网设备和物联网服务器交换的数据去更新密钥库的技术目的,进而实现提升物联网设备和物联网服务器交互的安全性能的技术效果,解决了现有技术中物联网设备和物联网服务器交互的安全性不够的技术问题。
作为一种可选的方案,在物联网设备向物联网服务器发送第一目标消息之前,还包括:
S1,物联网设备向物联网服务器发送数据交互请求,其中,数据交互请求中携带有物联网设备的设备标识及目标会话的会话标识。
S2,物联网设备获取物联网服务器响应数据交互请求所返回的第三目标消息,其中,第三目标消息中携带有物联网服务器随机生成的第一随机数。
可选的,在本实施例中,物联网设备的设备标识可以但不限于用于唯一标识物联网设备,以使其与其他物联网设备形成区别的标识,如设备出厂时设置的标识(Identification,简称ID)。此外,上述用于数据交互的会话的会话标识,可以但不限于是用于维护该会话的会话ID。
需要说明的是,在本实施例中,在物联网设备将携带有第一会话密钥的第一目标消息发送到物联网服务器之后,将触发物联网设备和物联网服务器之间的数据交互过程。其中,上述数据交互请求中可以不包含任何敏感信息,且未加密;进一步,上述数据交互请求中可以但不限于携带有用于供物联网服务器验证上述物联网设备的设备ID。如果对上述设备ID验证通过,则物联网服务器将第三目标消息发送回物联网设备,其中,第一目标消息包含物联网服务器随机生成的第一随机数。
可选的,在本实施例中,假设数据交互请求为M1、设备标识为物联网设备的唯一ID、会话标识为用于维护认证会话的会话ID,物联网设备通过将请求消息M1发送到物联网服务器来启动该过程。请求消息包含物联网设备的唯一ID和用于维护认证会话的会话ID。此消息不包含任何敏感信息,并且消息未加密。
通过本申请提供的实施例,利用动态密钥库存储密钥,且动态密钥库在物联网设备和物联网服务器之间共享的方式,并基于动态密钥库的算法,从而达到密钥库根据物联网设备和物联网服务器交换的数据去更新密钥库的技术目的,进而实现提升物联网设备和物联网服务器交互的安全性能的技术效果,解决了现有技术中物联网设备和物联网服务器交互的安全性不够的技术问题。
作为一种可选的方案,在物联网设备获取物联网服务器响应数据交互请求所返回的第三目标消息之后,还包括:
S1,物联网设备解析第三目标消息,以获取第三目标消息中携带的第一随机数及第一索引序列,其中,第一索引序列包括物联网服务器从动态密钥库中确定出的多个密钥的索引值。
S2,物联网设备随机生成第二随机数、第一会话密钥及第二索引序列,其中,第二索引序列包括物联网设备从动态密钥库中确定出的多个密钥的索引值,第一索引序列与第二索引序列不同。
S3,物联网设备利用第一随机数、第二随机数、第一会话密钥及第二索引序列生成第一目标消息。
需要说明的是,在本实施例中,物联网服务器发送回物联网设备的消息中包含随机数和代表存储在动态密钥库中的密钥的索引。
可选的,在本实施例中,假设第三目标消息为质询消息M2、第一索引序列为C1、第一随机数为r1,其中,C1是一组p个不同的数字,每个数字代表存储在动态密钥库中的密钥的索引。C1表示为{C11,C12,C13......,C1p},其中,p值小于n,M2={C1,r1},其中,C1中包含的值介于0和n-1之间。进一步,t1是由物联网设备生成的随机数,其进一步用于生成会话密钥t,该会话密钥t用于后续通信步骤。
可选的,在本实施例中,假设第一目标消息为M3、第二索引序列为C2,、第二随机数为r2和第一会话密钥为t1,物联网设备还使用相同的机制为物联网服务器生成单独的M3。物联网设备生成M3,其中,M3由C2以及r2和t1构成,其中,C2包括另一组p个不同的随机数,每个数字在0和n-1之间。进一步,物联网设备连接物联网服务器的响应和质询,并将M3发送回物联网服务器。
通过本申请提供的实施例,利用在质询消息存储随机数和索引值的方式,达到当攻击者得到质询消息无法解密的目的,实现了提高物联网设备与物联网服务器信息交互的安全系数的技术效果。
作为一种可选的方案,在物联网设备将接收到物联网服务器返回的第二目标消息之后,还包括:
S1,在物联网服务器利用动态密钥库从第一目标消息中成功解密出第一随机数的情况下,物联网设备利用动态密钥库生成解密密钥。
S2,物联网设备使用解密密钥对第二目标消息进行解密。
需要说明的是,在本实施例中,物联网设备利用动态密钥库生成密钥,用于解密从物联网服务器发送来的质询消息。
可选的,在本实施例,假设物联网设备获得的密钥为k2、第二目标消息为M4,物联网设备接收消息M4并通过使用k2解密消息M4来获取r2的值来验证物联网服务器的身份。
通过本申请提供的实施例,利用物联网设备与物联网服务器的密钥分别存储与使用的技术手段,达到当攻击者单独获得一方的密钥无法解密的技术目的,实现了提高物联网设备与物联网服务器信息交互的安全系数的技术效果。
作为一种可选的方案,物联网设备利用第一会话密钥及第二会话密钥确定出目标会话密钥包括:
在物联网设备利用动态密钥库从第二目标消息中成功解密出第二随机数并验证通过的情况下,物联网设备对第一会话密钥及第二会话密钥进行叠加,以生成目标会话密钥,其中,目标会话密钥用于对目标数据进行加密。
需要说明的是,在本实施例中,在物联网设备验证成功的情况下,进而物联网设备将会话密钥叠加,进而得到叠加后的会话密钥。
可选的,在本实施例中,假设第一会话密钥为t1、第二会话密钥为t2、目标会话密钥为t,一旦物联网服务器和物联网设备相互认证,它们就会决定会话密钥t=t1+t2,并且使用该会话密钥对该会话的所有进一步通信进行安全加密。
通过本申请提供的实施例,利用在物联网设备确定认定成功的情况下,将会话密钥叠加的方式,达到得到目标会话密钥的技术目的,进而实现在保证物联网交互足够安全的情况下,提高会话密钥的使用效率。
作为一种可选的方案,在物联网设备通过目标会话向物联网服务器发送目标数据之后,还包括:
在检测到目标会话已达到预设会话时长的情况下,物联网设备将根据在目标会话中产生的交互数据更新动态密钥库。
需要说明的是,在本实施例中,当目标回话在达到预设时长的情况下,物联网设备将会根据物联网信息交互中产生的交互数据更新动态密钥库。
可选的,在本实施例中,会话的持续时间可由用户确定:较短的持续时间提供高安全性,同时导致频繁调用三路认证消息交换。在每个会话之后,基于物联网服务器和物联网设备之间交换的数据来更改动态密钥库的值。
通过本申请提供的实施例,利用可设置的会话持续时间,达到根据用户需求更改动态密钥库的技术目的,达到提高物联网服务器和物联网设备之间数据交互的安全性的技术效果。
作为一种可选的方案,物联网设备将根据在目标会话中产生的交互数据更新动态密钥库包括:
S1,物联网设备利用在目标会话中产生的交互数据及当前已存储的安全数据进行哈希运算,得到哈希值;
S2,物联网设备根据动态密钥库中各个分区的索引以及哈希值,对动态密钥库进行更新。
需要说明的是,在本实施例中,哈希运算是把任意长度的输入通过散列算法变换成固定长度的输出,上述输出就是散列值,其中,上述转换是一种压缩映射,散列值的空间远小于输入空间,不同的输入空间可能会散列成相同的输出,所以不可能从散列值来确定唯一的输入值,即,哈希运算是一种将任意长度的消息压缩到某一固定长度的消息摘要的函数。利用上述哈希运算,将物联网设备利用在信息交互中产生的交互数据和已经存储的密钥转化为哈希值,进一步,物联网设备根据上述哈希值与动态密钥库中各个分区的索引,进而更新上述动态密钥库,其中,对动态密钥库分区时,对于不能整除的索引值,末尾补零。
可选的,在本实施例中,HMAC是一种基于密钥的散列算法,HMAC运算利用哈希算法,以一个密钥和一个消息为输入,生成一个消息摘要作为输出,进一步,通过对当前动态密钥库的内容执行HMAC来生成安全库的新值。
可选的,在本实施例中,以下是更改安全保管库的步骤:采用当前动态密钥库的HMAC,HMAC的密钥是物联网服务器和物联网设备之间的数据交换。这里使用的散列函数提供k位的输出。上述HMAC值表示为h=HMAC(当前安全保险库,数据交换)。动态密钥库的当前值被划分为j个相等的k位分区,称为密钥库分区。所有这些分区都使用h异或i进行编码以生成新的安全保险库(此处i是密钥库分区的索引)。如果动态密钥库的大小不能被k位整除,则在末尾填充0以创建j个相等的分区,即根据异或后的编码运算,以更新动态密钥库。
通过本申请提供的实施例,利用哈希值算法对交互数据与存储密钥进行转化,达成了进一步根据索引值与哈希值对动态密钥库进行不同且随机更新的技术目的,进而实现了提升物联网设备和物联网服务器认证以及通信的安全性。
具体如图2所示,结合以下示例进行说明:
以三次握手的变体来相互认证物联网服务器和物联网设备为例,物联网设备为OCF设备204、物联网服务器为OCF服务器202、数据交互请求为M1、第三目标消息为质询消息M2、第一目标消息为质询消息M3、第二目标消息为质询消息M4、第一随机数为r1、第二随机数为r2、第一会话密钥为t1、第二会话密钥为t2、设备标识为OCF装置唯一ID(Device id)、会话标识为用于维护认证会话的会话ID(Session id),其中,三次握手,即对每次发送的数据量是怎样跟踪进行协商使数据段的发送和接收同步,根据所接收到的数据量而确定的数据确认数据所接收到的数据量而确定的数据确认数及数据发送、接收完毕后何时撤销联系,并建立虚连接。具体的,OCF服务器202和OCF设备204之间的整个数据交互流程如下:
S202,OCF设备204通过将请求消息M1发送到OCF服务器202来启动该过程。请求消息包含OCF设备204的唯一ID(Device id)和用于维护认证会话的会话ID(Session id)。此消息不包含任何敏感信息,并且消息未加密。
S204,OCF服务器202验证请求OCF设备204的唯一ID,并且如果消息包含有效唯一ID,则OCF服务器202将质询消息M2发送回OCF设备204。质询消息M2包含消息C1和随机数r1。消息C1是一组p个不同的数字,每个数字代表存储在动态密钥库中的密钥的索引。C1表示为{c11,c12,c13......,c1p}。p的值应小于n,M2={C1,r1}。C1中包含的值介于0和n-1之间。其中,t1是由OCF设备204生成的随机数,其进一步用于生成会话密钥t,该会话密钥t将用于后续通信。
S206,OCF设备204还使用相同的机制为OCF服务器202生成单独的质询。OCF设备204生成质询消息M3,质询消息M3由消息C2(另一组p个不同的随机数,每个数字在0和n-1之间)以及随机数r2和t1构成。消息C1和C2不同。如果C1和C2相同,攻击者可以获得消息C1的密钥,并且他可以将该密钥重用于C2。OCF设备204连接OCF服务器202的响应和质询,并将消息M3发送回OCF服务器202。
S208,一旦OCF服务器202接收到消息M3,OCF服务器202就通过从其动态密钥库中生成密钥k1来解密由OCF设备204发送的消息。如果OCF服务器202从接收的消息中检索到r1,则它生成对消息C2的响应M4。消息M4由随机数r2和t2构成。OCF设备204接收消息M4并通过使用k2解密消息M4来获取r2的值来验证OCF服务器202的身份。
S210,返回资源URL列表。
S212,OCF服务器202反馈认证信息。
S214,OCF设备204将生成的密钥发送至OCF服务器202,其中,OCF设备204生成的密钥内容为“GET oic/resource?Xxxxx”。
S216,OCF服务器202和OCF设备204相互认证,通过二者密钥的叠加,共同决定会话密钥,其中,上述密钥内容为“Responseoic/resource?YYYYY”。
S218,使用散列函数更新密钥库,会话的持续时间由用户确定:较短的持续时间提供高安全性,同时导致频繁调用三路认证消息交换。在每个会话之后,基于OCF服务器202和OCF设备204之间交换的数据来更改动态密钥库的值。通过对当前动态密钥库的内容执行HMAC来生成安全库的新值。HMAC是一种基于密钥的散列算法。以下是更改安全保管库的步骤:
采用当前动态密钥库的HMAC,HMAC的密钥是OCF服务器202和OCF设备204之间的数据交换。这里使用的散列函数提供k位的输出。该HMAC值表示为h=HMAC(当前安全保险库,数据交换)。动态密钥库的当前值被划分为j个相等的k位分区,称为密钥库分区。所有这些分区都使用hxori进行编码以生成新的安全保险库(此处i是密钥库分区的索引)。如果动态密钥库的大小不能被k位整除,则在末尾填充0以创建j个相等的分区。
根据本发明实施例的另一个方面,提供了一种基于物联网操作系统的数据交互方法,如图3所示,应用于物联网服务器,该方法包括:
S302,在物联网设备与物联网服务器进行数据交互的过程中,物联网服务器接收物联网设备发送的第一目标消息,其中,第一目标消息中携带有第一会话密钥。
S304,物联网服务器将向物联网设备返回第二目标消息,其中,第二目标消息中携带有物联网服务器随机生成的第二会话密钥,物联网设备和物联网服务器共享动态密钥库。
S306,物联网服务器利用第一会话密钥及第二会话密钥确定出目标会话密钥,并确定建立与物联网设备之间的目标会话,其中,目标会话密钥用于验证通过目标会话交互的数据。
S308,物联网服务器通过目标会话向物联网设备发送目标数据。
可选的,在本实施例中,可以但不限于应用在智能安防系统的场景下,现代的智能安防系统充分利用了物联网技术,具体的,智能安防系统的核心包括:门禁、报警、监控等,其中,智能安防系统中的门禁密码器相当于物联网设备,当用户输入门禁密码时,密码服务器验证身份,且在验证成功的情况下,根据当前密码数据生成新密码。
可选的,第三目标消息、第一目标消息、第二目标消息可以但不限于是质询消息。
需要说明的是,在本实施例中,在物联网设备与物联网服务器进行数据交互的过程中,物联网服务器接收物联网设备发送的第一目标消息,其中,第一目标消息中携带有第一会话密钥;进一步,物联网服务器将向物联网设备返回第二目标消息,其中,第二目标消息中携带有物联网服务器随机生成的第二会话密钥,物联网设备和物联网服务器共享动态密钥库;进一步,物联网服务器利用第一会话密钥及第二会话密钥确定出目标会话密钥,并确定建立与物联网设备之间的目标会话,其中,目标会话密钥用于验证通过目标会话交互的数据;进一步,物联网服务器通过目标会话向物联网设备发送目标数据。
可选的,在本实施例中,假设物联网服务器获得的密钥为k1、第一目标消息为M3、第二目标消息为M4,一旦物联网服务器接收到消息M3,物联网服务器就通过从其动态密钥库中生成密钥k1来解密由物联网设备发送的消息。
通过本申请提供的实施例,利用动态密钥库存储密钥,且动态密钥库在物联网设备和物联网服务器之间共享的方式,并基于动态密钥库的算法,从而达到密钥库根据物联网设备和物联网服务器交换的数据去更新密钥库的技术目的,进而实现提升物联网设备和物联网服务器交互的安全性能的技术效果,进而实现提升物联网设备和物联网服务器交互的安全性能的技术效果,解决了现有技术中物联网设备和物联网服务器交互的安全性不够的技术问题。
作为一种可选的方案,在物联网服务器接收物联网设备发送的第一目标消息之前,还包括:
S1,物联网服务器接收物联网设备发送的数据交互请求,其中,数据交互请求中携带有物联网设备的设备标识及目标会话的会话标识。
S2,响应数据交互请求,物联网服务器向物联网设备返回第三目标消息,其中,第三目标消息中携带有物联网服务器随机生成的第一随机数。
可选的,在本实施例中,物联网设备的设备标识可以但不限于是唯一ID。用于进行数据交互的目标会话的会话标识可以但不限于是用于维护认证会话的会话ID。第三目标消息、第一目标消息、第二目标消息可以但不限于是质询消息。
需要说明的是,在本实施例中,物联网设备通过将数据交互请求消息发送到物联网服务器以开始交互过程,其中,上述数据交互请求消息不包含任何敏感信息,且未加密;进一步,物联网服务器验证上述物联网设备的唯一ID,如果上述数据交互请求消息包含有效且的唯一ID,则物联网服务器将第三目标消息发送回物联网设备,其中,第三目标消息包含物联网服务器随机生成的第一随机数。
可选的,在本实施例中,假设数据交互请求为M1、设备标识为物联网设备的唯一ID、会话标识为用于维护认证会话的会话ID,物联网设备通过将请求消息M1发送到物联网服务器来启动该过程。请求消息包含物联网设备的唯一ID和用于维护认证会话的会话ID。此消息不包含任何敏感信息,并且消息未加密。
可选的,在本实施例中,假设物联网服务器获得的密钥为k1、第一目标消息为M3、第二目标消息为M4、第一随机数为r1、第二随机数为r2,一旦物联网服务器接收到消息M3,物联网服务器就通过从其动态密钥库中生成密钥k1来解密由物联网设备发送的消息。如果物联网服务器从接收的消息中检索到r1,则它生成对消息C2的响应M4。消息M4由随机数r2和t2构成。
通过本申请提供的实施例,利用动态密钥库存储密钥,且动态密钥库在物联网设备和物联网服务器之间共享的方式,并基于动态密钥库的算法,从而达到密钥库根据物联网设备和物联网服务器交换的数据去更新密钥库的技术目的,进而实现提升物联网设备和物联网服务器交互的安全性能的技术效果,进而实现提升物联网设备和物联网服务器交互的安全性能的技术效果,解决了现有技术中物联网设备和物联网服务器交互的安全性不够的技术问题。
作为一种可选的方案,在物联网服务器向物联网设备返回第三目标消息之前,还包括:
S1,物联网服务器验证物联网设备的设备标识。
S2,在验证的结果指示物联网设备的设备标识为有效标识的情况下,物联网服务器随机生成第一随机数及第一索引序列,其中,第一索引序列包括物联网服务器从动态密钥库中确定出的多个密钥的索引值。
S3,物联网服务器根据第一随机数及第一索引序列生成第三目标消息。
需要说明的是,在本实施例中,物联网服务器发送回物联网设备的质询消息中包含随机数和代表存储在动态密钥库中的密钥的索引。
可选的,在本实施例中,假设第三目标消息为质询消息M2、第一索引序列为C1、第一随机数为r1,其中,C1是一组p个不同的数字,每个数字代表存储在动态密钥库中的密钥的索引。C1表示为{C11,C12,C13......,C1p},其中,p值小于n,M2={C1,r1},其中,C1中包含的值介于0和n-1之间。进一步,t1是由物联网设备生成的随机数,其进一步用于生成会话密钥t,该会话密钥t用于后续通信步骤。
可选的,在本实施例中,假设第一目标消息为M3、第二索引序列为C2,、第二随机数为r2和第一会话密钥为t1,物联网设备还使用相同的机制为物联网服务器生成单独的M3。物联网设备生成M3,其中,M3由C2以及r2和t1构成,其中,C2包括另一组p个不同的随机数,每个数字在0和n-1之间。进一步,物联网设备连接物联网服务器的响应和质询,并将M3发送回物联网服务器。
通过本申请提供的实施例,利用在质询消息存储随机数和索引值的方式,达到当攻击者得到质询消息无法解密的目的,实现了提高物联网设备与物联网服务器信息交互的安全系数的技术效果。
作为一种可选的方案,在物联网服务器向物联网设备返回第三目标消息之后,还包括:
S1,物联网服务器利用动态密钥库生成解密密钥。
S2,物联网服务器使用解密密钥对第一目标消息进行解密。
S3,在物联网服务器解密得到第一随机数,和物联网设备随机生成的第二随机数、第一会话密钥及第二索引序列的情况下,物联网服务器随机生成第二会话密钥,其中,第二索引序列包括物联网设备从动态密钥库中确定出的多个密钥的索引值,第一索引序列与第二索引序列不同。
S4,物联网服务器利用第二随机数及第二会话密钥生成第二目标消息。
需要说明的是,在本实施例中,物联网设备利用动态密钥库生成密钥,用于解密从物联网服务器发送来的质询消息。
可选的,在本实施例,假设物联网设备获得的密钥为k2、第二目标消息为M4,物联网设备接收消息M4并通过使用k2解密消息M4来获取r2的值来验证物联网服务器的身份。
通过本申请提供的实施例,利用物联网设备与物联网服务器的密钥分别存储与使用的技术手段,达到当攻击者单独获得一方的密钥无法解密的技术目的,实现了提高物联网设备与物联网服务器信息交互的安全系数的技术效果。
作为一种可选的方案,物联网服务器利用第一会话密钥及第二会话密钥确定出目标会话密钥包括:
在物联网设备从第二目标消息中成功解密出第二随机数,且验证通过的情况下,物联网服务器对第一会话密钥及第二会话密钥进行叠加,以生成目标会话密钥。
需要说明的是,在本实施例中,在物联网设备验证成功的情况下,进而物联网设备将会话密钥叠加,进而得到叠加后的会话密钥。
可选的,在本实施例中,假设第一会话密钥为t1、第二会话密钥为t2、目标会话密钥为t,一旦物联网服务器和物联网设备相互认证,它们就会决定会话密钥t=t1+t2,并且使用该会话密钥对该会话的所有进一步通信进行安全加密。
通过本申请提供的实施例,利用在物联网设备确定认定成功的情况下,将会话密钥叠加的方式,达到得到目标会话密钥的技术目的,进而实现在保证物联网交互足够安全的情况下,提高会话密钥的使用效率。
作为一种可选的方案,在物联网服务器通过目标会话向物联网设备发送目标数据之后,还包括:
在检测到目标会话已达到预设会话时长的情况下,物联网服务器将根据在目标会话中产生的交互数据更新动态密钥库。
需要说明的是,在本实施例中,当目标回话在达到预设时长的情况下,物联网设备将会根据物联网信息交互中产生的交互数据更新动态密钥库。
可选的,在本实施例中,会话的持续时间可由用户确定:较短的持续时间提供高安全性,同时导致频繁调用三路认证消息交换。在每个会话之后,基于物联网服务器和物联网设备之间交换的数据来更改动态密钥库的值。
通过本申请提供的实施例,利用可设置的会话持续时间,达到根据用户需求更改动态密钥库的技术目的,达到提高物联网服务器和物联网设备之间数据交互的安全性的技术效果。
作为一种可选的方案,物联网服务器将根据在目标会话中产生的交互数据更新动态密钥库包括:
S1,物联网服务器利用在目标会话中产生的交互数据及当前已存储的安全数据进行哈希运算,得到哈希值。
S2,物联网服务器根据动态密钥库中各个分区的索引以及哈希值,对动态密钥库进行更新。
需要说明的是,在本实施例中,哈希运算是把任意长度的输入通过散列算法变换成固定长度的输出,上述输出就是散列值,其中,上述转换是一种压缩映射,散列值的空间远小于输入空间,不同的输入空间可能会散列成相同的输出,所以不可能从散列值来确定唯一的输入值,即,哈希运算是一种将任意长度的消息压缩到某一固定长度的消息摘要的函数。利用上述哈希运算,将物联网设备利用在信息交互中产生的交互数据和已经存储的密钥转化为哈希值,进一步,物联网设备根据上述哈希值与动态密钥库中各个分区的索引,进而更新上述动态密钥库,其中,对动态密钥库分区时,对于不能整除的索引值,末尾补零。
可选的,在本实施例中,HMAC是一种基于密钥的散列算法,HMAC运算利用哈希算法,以一个密钥和一个消息为输入,生成一个消息摘要作为输出,进一步,通过对当前动态密钥库的内容执行HMAC来生成安全库的新值。
可选的,在本实施例中,以下是更改安全保管库的步骤:采用当前动态密钥库的HMAC,HMAC的密钥是物联网服务器和物联网设备之间的数据交换。这里使用的散列函数提供k位的输出。上述HMAC值表示为h=HMAC(当前安全保险库,数据交换)。动态密钥库的当前值被划分为j个相等的k位分区,称为密钥库分区。所有这些分区都使用h异或(exclusive,简称xor)i进行编码以生成新的安全保险库(此处i是密钥库分区的索引)。如果动态密钥库的大小不能被k位整除,则在末尾填充0以创建j个相等的分区,即根据异或后的编码运算,以更新动态密钥库。
通过本申请提供的实施例,利用哈希值算法对交互数据与存储密钥进行转化,达成了进一步根据索引值与哈希值对动态密钥库进行不同且随机更新的技术目的,进而实现了提升物联网设备和物联网服务器认证以及通信的安全性。
具体如图2所示,结合以下示例进行说明:
以三次握手的变体来相互认证物联网服务器和物联网设备为例,物联网设备为OCF设备204、物联网服务器为OCF服务器202、数据交互请求为M1、第三目标消息为质询消息M2、第一目标消息为质询消息M3、第二目标消息为质询消息M4、第一随机数为r1、第二随机数为r2、第一会话密钥为t1、第二会话密钥为t2、设备标识为OCF装置唯一ID(Device id)、会话标识为用于维护认证会话的会话ID(Session id),其中,三次握手,即对每次发送的数据量是怎样跟踪进行协商使数据段的发送和接收同步,根据所接收到的数据量而确定的数据确认数据所接收到的数据量而确定的数据确认数及数据发送、接收完毕后何时撤销联系,并建立虚连接。具体的,OCF服务器202和OCF设备204之间的整个数据交互流程如下:
S202,OCF设备204通过将请求消息M1发送到OCF服务器202来启动该过程。请求消息包含OCF设备204的唯一ID(Device id)和用于维护认证会话的会话ID(Session id)。此消息不包含任何敏感信息,并且消息未加密。
S204,OCF服务器202验证请求OCF设备204的唯一ID,并且如果消息包含有效唯一ID,则OCF服务器202将质询消息M2发送回OCF设备204。质询消息M2包含消息C1和随机数r1。消息C1是一组p个不同的数字,每个数字代表存储在动态密钥库中的密钥的索引。C1表示为{c11,c12,c13......,c1p}。p的值应小于n,M2={C1,r1}。C1中包含的值介于0和n-1之间。其中,t1是由OCF设备204生成的随机数,其进一步用于生成会话密钥t,该会话密钥t将用于后续通信。
S206,OCF设备204还使用相同的机制为OCF服务器202生成单独的质询。OCF设备204生成质询消息M3,质询消息M3由消息C2(另一组p个不同的随机数,每个数字在0和n-1之间)以及随机数r2和t1构成。消息C1和C2不同。如果C1和C2相同,攻击者可以获得消息C1的密钥,并且他可以将该密钥重用于C2。OCF设备204连接OCF服务器202的响应和质询,并将消息M3发送回OCF服务器202。
S208,一旦OCF服务器202接收到消息M3,OCF服务器202就通过从其动态密钥库中生成密钥k1来解密由OCF设备204发送的消息。如果OCF服务器202从接收的消息中检索到r1,则它生成对消息C2的响应M4。消息M4由随机数r2和t2构成。OCF设备204接收消息M4并通过使用k2解密消息M4来获取r2的值来验证OCF服务器202的身份。
S210,返回资源URL列表。
S212,OCF服务器202反馈认证信息。
S214,OCF设备204将生成的密钥发送至OCF服务器202,其中,OCF设备204生成的密钥内容为“GET oic/resource?Xxxxx”。
S216,OCF服务器202和OCF设备204相互认证,通过二者密钥的叠加,共同决定会话密钥,其中,上述密钥内容为“Responseoic/resource?YYYYY”。
S218,使用散列函数更新密钥库,会话的持续时间由用户确定:较短的持续时间提供高安全性,同时导致频繁调用三路认证消息交换。在每个会话之后,基于OCF服务器202和OCF设备204之间交换的数据来更改动态密钥库的值。通过对当前动态密钥库的内容执行HMAC来生成安全库的新值。HMAC是一种基于密钥的散列算法。以下是更改安全保管库的步骤:
采用当前动态密钥库的HMAC,HMAC的密钥是OCF服务器202和OCF设备204之间的数据交换。这里使用的散列函数提供k位的输出。该HMAC值表示为h=HMAC(当前安全保险库,数据交换)。动态密钥库的当前值被划分为j个相等的k位分区,称为密钥库分区。所有这些分区都使用hxori进行编码以生成新的安全保险库(此处i是密钥库分区的索引)。如果动态密钥库的大小不能被k位整除,则在末尾填充0以创建j个相等的分区。
根据本发明实施例的另一个方面,还提供了一种基于物联网操作系统的数据交互装置,应用于物联网设备,如图4所示,装置包括:
第一发送单元402,用于在物联网设备与物联网服务器进行数据交互的过程中,物联网设备向物联网服务器发送第一目标消息,其中,第一目标消息中携带有第一会话密钥;
接收单元404,用于物联网设备将接收到物联网服务器返回的第二目标消息,其中,第二目标消息中携带有物联网服务器随机生成的第二会话密钥,物联网设备和物联网服务器共享动态密钥库;
确定单元406,用于物联网设备利用第一会话密钥及第二会话密钥确定出目标会话密钥,并确定建立与物联网服务器之间的目标会话,其中,目标会话密钥用于验证通过目标会话交互的数据;
第二发送单元408,用于物联网设备通过目标会话向物联网服务器发送目标数据。可选的,在本实施例中,可以但不限于应用在智能安防系统的场景下,现代的智能安防系统充分利用了物联网技术,具体的,智能安防系统的核心包括:门禁、报警、监控等,其中,智能安防系统中的门禁密码器相当于物联网设备,当用户输入门禁密码时,密码服务器验证身份,且在验证成功的情况下,根据当前密码数据生成新密码。
可选的,在本实施例中,上述数据交互方法可以但不限于应用基于物联网实现的智能家居系统中。如该智能家居系统中可以包括但不限于:智能电视、智能电冰箱、智能电饭煲、智能空调等智能家居设备与服务器。进一步,为了保证智能家居系统中的各个智能家居设备(即物联网设备)与服务器(即物联网服务器)在物联网中可以进行安全的数据通信,在本实施例中提供的数据交互方法中,通过共享动态密钥库,构建目标会话密钥来保证智能家居设备与服务器之间的安全通信,进而克服相关技术中数据交互的安全性较低的技术问题。
需要说明的是,在本实施例中,物联网设备向物联网服务器发送第一目标消息,其中,第一目标消息中携带有第一会话密钥;进一步,物联网设备将接收到物联网服务器返回的第二目标消息,其中,第二目标消息中携带有物联网服务器随机生成的第二会话密钥,其中,上述物联网设备和物联网服务器的动态密钥库共享;进一步,物联网设备利用第一会话密钥及第二会话密钥确定出目标会话密钥,并确定建立与物联网服务器之间的目标会话,其中,目标会话密钥用于验证通过目标会话交互的数据;进一步,物联网设备通过目标会话向物联网服务器发送目标数据。
可选的,在本实施例中,假设物联网服务器获得的密钥为k1、第一目标消息为M3、第二目标消息为M4一旦物联网服务器接收到消息M3,物联网服务器就通过从其动态密钥库中生成密钥k1来解密由物联网设备发送的消息。
通过本申请提供的实施例,利用动态密钥库存储密钥,且动态密钥库在物联网设备和物联网服务器之间共享的方式,并基于动态密钥库的算法,从而达到密钥库根据物联网设备和物联网服务器交换的数据去更新密钥库的技术目的,进而实现提升物联网设备和物联网服务器交互的安全性能的技术效果,解决了现有技术中物联网设备和物联网服务器交互的安全性不够的技术问题。
作为一种可选的方案,还包括:
第三发送单元,用于在物联网设备向物联网服务器发送第一目标消息之前,物联网设备向物联网服务器发送数据交互请求,其中,数据交互请求中携带有物联网设备的设备标识及目标会话的会话标识;
第一获取单元,用于物联网设备向物联网服务器发送第一目标消息之前,物联网设备获取物联网服务器响应数据交互请求所返回的第三目标消息,其中,第三目标消息中携带有物联网服务器随机生成的第一随机数。
可选的,在本实施例中,物联网设备的设备标识可以但不限于用于唯一标识物联网设备,以使其与其他物联网设备形成区别的标识,如设备出厂时设置的标识(Identification,简称ID)。此外,上述用于数据交互的会话的会话标识,可以但不限于是用于维护该会话的会话ID。
需要说明的是,在本实施例中,在物联网设备将携带有第一会话密钥的第一目标消息发送到物联网服务器之后,将触发物联网设备和物联网服务器之间的数据交互过程。其中,上述数据交互请求中可以不包含任何敏感信息,且未加密;进一步,上述数据交互请求中可以但不限于携带有用于供物联网服务器验证上述物联网设备的设备ID。如果对上述设备ID验证通过,则物联网服务器将第三目标消息发送回物联网设备,其中,第一目标消息包含物联网服务器随机生成的第一随机数。
可选的,在本实施例中,假设数据交互请求为M1、设备标识为物联网设备的唯一ID、会话标识为用于维护认证会话的会话ID,物联网设备通过将请求消息M1发送到物联网服务器来启动该过程。请求消息包含物联网设备的唯一ID和用于维护认证会话的会话ID。此消息不包含任何敏感信息,并且消息未加密。
通过本申请提供的实施例,利用动态密钥库存储密钥,且动态密钥库在物联网设备和物联网服务器之间共享的方式,并基于动态密钥库的算法,从而达到密钥库根据物联网设备和物联网服务器交换的数据去更新密钥库的技术目的,进而实现提升物联网设备和物联网服务器交互的安全性能的技术效果,解决了现有技术中物联网设备和物联网服务器交互的安全性不够的技术问题。
作为一种可选的方案,还包括:
第二获取单元,用于在物联网设备获取物联网服务器响应数据交互请求所返回的第三目标消息之后,物联网设备解析第三目标消息,以获取第三目标消息中携带的第一随机数及第一索引序列,其中,第一索引序列包括物联网服务器从动态密钥库中确定出的多个密钥的索引值;
第一生成单元,用于在物联网设备获取物联网服务器响应数据交互请求所返回的第三目标消息之后,物联网设备随机生成第二随机数、第一会话密钥及第二索引序列,其中,第二索引序列包括物联网设备从动态密钥库中确定出的多个密钥的索引值,第一索引序列与第二索引序列不同;
第二生成单元,用于在物联网设备获取物联网服务器响应数据交互请求所返回的第三目标消息之后,物联网设备利用第一随机数、第二随机数、第一会话密钥及第二索引序列生成第一目标消息。
需要说明的是,在本实施例中,物联网服务器发送回物联网设备的质询消息中包含随机数和代表存储在动态密钥库中的密钥的索引。
可选的,在本实施例中,假设第三目标消息为质询消息M2、第一索引序列为C1、第一随机数为r1,其中,C1是一组p个不同的数字,每个数字代表存储在动态密钥库中的密钥的索引。C1表示为{C11,C12,C13......,C1p},其中,p值小于n,M2={C1,r1},其中,C1中包含的值介于0和n-1之间。进一步,t1是由物联网设备生成的随机数,其进一步用于生成会话密钥t,该会话密钥t用于后续通信步骤。
可选的,在本实施例中,假设第一目标消息为M3、第二索引序列为C2,、第二随机数为r2和第一会话密钥为t1,物联网设备还使用相同的机制为物联网服务器生成单独的M3。物联网设备生成M3,其中,M3由C2以及r2和t1构成,其中,C2包括另一组p个不同的随机数,每个数字在0和n-1之间。进一步,物联网设备连接物联网服务器的响应和质询,并将M3发送回物联网服务器。
通过本申请提供的实施例,利用在质询消息存储随机数和索引值的方式,达到当攻击者得到质询消息无法解密的目的,实现了提高物联网设备与物联网服务器信息交互的安全系数的技术效果。
作为一种可选的方案,还包括:
第三生成单元,用于在物联网设备将接收到物联网服务器返回的第二目标消息之后,在物联网服务器利用动态密钥库从第一目标消息中成功解密出第一随机数的情况下,物联网设备利用动态密钥库生成解密密钥;
解密单元,用于在物联网设备将接收到物联网服务器返回的第二目标消息之后,物联网设备使用解密密钥对第二目标消息进行解密。
需要说明的是,在本实施例中,物联网设备利用动态密钥库生成密钥,用于解密从物联网服务器发送来的质询消息。
可选的,在本实施例,假设物联网设备获得的密钥为k2、第二目标消息为M4,物联网设备接收消息M4并通过使用k2解密消息M4来获取r2的值来验证物联网服务器的身份。
通过本申请提供的实施例,利用物联网设备与物联网服务器的密钥分别存储与使用的技术手段,达到当攻击者单独获得一方的密钥无法解密的技术目的,实现了提高物联网设备与物联网服务器信息交互的安全系数的技术效果。
作为一种可选的方案,如图5所示,确定单元包括:
生成模块502,用于在物联网设备利用动态密钥库从第二目标消息中成功解密出第二随机数并验证通过的情况下,物联网设备对第一会话密钥及第二会话密钥进行叠加,以生成目标会话密钥,其中,目标会话密钥用于对目标数据进行加密。需要说明的是,在本实施例中,在物联网设备验证成功的情况下,进而物联网设备将会话密钥叠加,进而得到叠加后的会话密钥。
可选的,在本实施例中,假设第一会话密钥为t1、第二会话密钥为t2、目标会话密钥为t,一旦物联网服务器和物联网设备相互认证,它们就会决定会话密钥t=t1+t2,并且使用该会话密钥对该会话的所有进一步通信进行安全加密。
通过本申请提供的实施例,利用在物联网设备确定认定成功的情况下,将会话密钥叠加的方式,达到得到目标会话密钥的技术目的,进而实现在保证物联网交互足够安全的情况下,提高会话密钥的使用效率。
作为一种可选的方案,还包括:
更新单元,用于在物联网设备通过目标会话向物联网服务器发送目标数据之后,在检测到目标会话已达到预设会话时长的情况下,物联网设备将根据在目标会话中产生的交互数据更新动态密钥库。
需要说明的是,在本实施例中,当目标回话在达到预设时长的情况下,物联网设备将会根据物联网信息交互中产生的交互数据更新动态密钥库。
可选的,在本实施例中,会话的持续时间可由用户确定:较短的持续时间提供高安全性,同时导致频繁调用三路认证消息交换。在每个会话之后,基于物联网服务器和物联网设备之间交换的数据来更改动态密钥库的值。
通过本申请提供的实施例,利用可设置的会话持续时间,达到根据用户需求更改动态密钥库的技术目的,达到提高物联网服务器和物联网设备之间数据交互的安全性的技术效果。
作为一种可选的方案,更新单元包括:
运算模块,用于物联网设备利用在目标会话中产生的交互数据及当前已存储的安全数据进行哈希运算,得到哈希值;
更新模块,用于物联网设备根据动态密钥库中各个分区的索引以及哈希值,对动态密钥库进行更新。
需要说明的是,在本实施例中,哈希运算是把任意长度的输入通过散列算法变换成固定长度的输出,上述输出就是散列值,其中,上述转换是一种压缩映射,散列值的空间远小于输入空间,不同的输入空间可能会散列成相同的输出,所以不可能从散列值来确定唯一的输入值,即,哈希运算是一种将任意长度的消息压缩到某一固定长度的消息摘要的函数。利用上述哈希运算,将物联网设备利用在信息交互中产生的交互数据和已经存储的密钥转化为哈希值,进一步,物联网设备根据上述哈希值与动态密钥库中各个分区的索引,进而更新上述动态密钥库,其中,对动态密钥库分区时,对于不能整除的索引值,末尾补零。
可选的,在本实施例中,HMAC是一种基于密钥的散列算法,HMAC运算利用哈希算法,以一个密钥和一个消息为输入,生成一个消息摘要作为输出,进一步,通过对当前动态密钥库的内容执行HMAC来生成安全库的新值。
可选的,在本实施例中,以下是更改安全保管库的步骤:采用当前动态密钥库的HMAC,HMAC的密钥是物联网服务器和物联网设备之间的数据交换。这里使用的散列函数提供k位的输出。上述HMAC值表示为h=HMAC(当前安全保险库,数据交换)。动态密钥库的当前值被划分为j个相等的k位分区,称为密钥库分区。所有这些分区都使用h异或(exclusive,简称xor)i进行编码以生成新的安全保险库(此处i是密钥库分区的索引)。如果动态密钥库的大小不能被k位整除,则在末尾填充0以创建j个相等的分区,即根据异或后的编码运算,以更新动态密钥库。
通过本申请提供的实施例,利用哈希值算法对交互数据与存储密钥进行转化,达成了进一步根据索引值与哈希值对动态密钥库进行不同且随机更新的技术目的,进而实现了提升物联网设备和物联网服务器认证以及通信的安全性。
作为一种可选的方案,还提供了一种基于物联网操作系统的数据交互装置,应用于物联网服务器,如图6,装置包括:
接收单元602,用于在物联网设备与物联网服务器进行数据交互的过程中,物联网服务器接收物联网设备发送的第一目标消息,其中,第一目标消息中携带有第一会话密钥;
第一返回单元604,用于物联网服务器将向物联网设备返回第二目标消息,其中,第二目标消息中携带有物联网服务器随机生成的第二会话密钥,物联网设备和物联网服务器共享动态密钥库;
确定单元606,用于物联网服务器利用第一会话密钥及第二会话密钥确定出目标会话密钥,并确定建立与物联网设备之间的目标会话,其中,目标会话密钥用于验证通过目标会话交互的数据;
第一发送单元608,用于物联网服务器通过目标会话向物联网设备发送目标数据。
可选的,在本实施例中,可以但不限于应用在智能安防系统的场景下,现代的智能安防系统充分利用了物联网技术,具体的,智能安防系统的核心包括:门禁、报警、监控等,其中,智能安防系统中的门禁密码器相当于物联网设备,当用户输入门禁密码时,密码服务器验证身份,且在验证成功的情况下,根据当前密码数据生成新密码。
可选的,第三目标消息、第一目标消息、第二目标消息可以但不限于是质询消息。
需要说明的是,在本实施例中,在物联网设备与物联网服务器进行数据交互的过程中,物联网服务器接收物联网设备发送的第一目标消息,其中,第一目标消息中携带有第一会话密钥;进一步,物联网服务器将向物联网设备返回第二目标消息,其中,第二目标消息中携带有物联网服务器随机生成的第二会话密钥,物联网设备和物联网服务器共享动态密钥库;进一步,物联网服务器利用第一会话密钥及第二会话密钥确定出目标会话密钥,并确定建立与物联网设备之间的目标会话,其中,目标会话密钥用于验证通过目标会话交互的数据;进一步,物联网服务器通过目标会话向物联网设备发送目标数据。
可选的,在本实施例中,假设物联网服务器获得的密钥为k1、第一目标消息为M3、第二目标消息为M4,一旦物联网服务器接收到消息M3,物联网服务器就通过从其动态密钥库中生成密钥k1来解密由物联网设备发送的消息。
通过本申请提供的实施例,利用动态密钥库存储密钥,且动态密钥库在物联网设备和物联网服务器之间共享的方式,并基于动态密钥库的算法,从而达到密钥库根据物联网设备和物联网服务器交换的数据去更新密钥库的技术目的,进而实现提升物联网设备和物联网服务器交互的安全性能的技术效果,进而实现提升物联网设备和物联网服务器交互的安全性能的技术效果,解决了现有技术中物联网设备和物联网服务器交互的安全性不够的技术问题。
作为一种可选的方案,还包括:
验证单元,用于在物联网服务器向物联网设备返回第三目标消息之前,物联网服务器验证物联网设备的设备标识;
第一生成单元,用于在物联网服务器向物联网设备返回第三目标消息之前,在验证的结果指示物联网设备的设备标识为有效标识的情况下,物联网服务器随机生成第一随机数及第一索引序列,其中,第一索引序列包括物联网服务器从动态密钥库中确定出的多个密钥的索引值;
第二生成单元,用于物联网服务器根据第一随机数及第一索引序列生成第三目标消息。
可选的,在本实施例中,物联网设备的设备标识可以但不限于是唯一ID。用于进行数据交互的目标会话的会话标识可以但不限于是用于维护认证会话的会话ID。第三目标消息、第一目标消息、第二目标消息可以但不限于是质询消息。
需要说明的是,在本实施例中,物联网设备通过将数据交互请求消息发送到物联网服务器以开始交互过程,其中,上述数据交互请求消息不包含任何敏感信息,且未加密;进一步,物联网服务器验证上述物联网设备的唯一ID,如果上述数据交互请求消息包含有效且的唯一ID,则物联网服务器将第三目标消息发送回物联网设备,其中,第三目标消息包含物联网服务器随机生成的第一随机数。
可选的,在本实施例中,假设数据交互请求为M1、设备标识为物联网设备的唯一ID、会话标识为用于维护认证会话的会话ID,物联网设备通过将请求消息M1发送到物联网服务器来启动该过程。请求消息包含物联网设备的唯一ID和用于维护认证会话的会话ID。此消息不包含任何敏感信息,并且消息未加密。
可选的,在本实施例中,假设物联网服务器获得的密钥为k1、第一目标消息为M3、第二目标消息为M4、第一随机数为r1、第二随机数为r2,一旦物联网服务器接收到消息M3,物联网服务器就通过从其动态密钥库中生成密钥k1来解密由物联网设备发送的消息。如果物联网服务器从接收的消息中检索到r1,则它生成对消息C2的响应M4。消息M4由随机数r2和t2构成。
通过本申请提供的实施例,利用动态密钥库存储密钥,且动态密钥库在物联网设备和物联网服务器之间共享的方式,并基于动态密钥库的算法,从而达到密钥库根据物联网设备和物联网服务器交换的数据去更新密钥库的技术目的,进而实现提升物联网设备和物联网服务器交互的安全性能的技术效果,进而实现提升物联网设备和物联网服务器交互的安全性能的技术效果,解决了现有技术中物联网设备和物联网服务器交互的安全性不够的技术问题。
作为一种可选的方案,还包括:
第三生成单元,用于在物联网服务器向物联网设备返回第三目标消息之后,物联网服务器利用动态密钥库生成解密密钥;
解密单元,用于在物联网服务器向物联网设备返回第三目标消息之后,物联网服务器使用解密密钥对第一目标消息进行解密;
第四生成单元,用于在物联网服务器向物联网设备返回第三目标消息之后,在物联网服务器解密得到第一随机数,和物联网设备随机生成的第二随机数、第一会话密钥及第二索引序列的情况下,物联网服务器随机生成第二会话密钥,其中,第二索引序列包括物联网设备从动态密钥库中确定出的多个密钥的索引值,第一索引序列与第二索引序列不同;
第五生成单元,用于在物联网服务器向物联网设备返回第三目标消息之后,物联网服务器利用第二随机数及第二会话密钥生成第二目标消息。
需要说明的是,在本实施例中,物联网服务器发送回物联网设备的质询消息中包含随机数和代表存储在动态密钥库中的密钥的索引。
可选的,在本实施例中,假设第三目标消息为质询消息M2、第一索引序列为C1、第一随机数为r1,其中,C1是一组p个不同的数字,每个数字代表存储在动态密钥库中的密钥的索引。C1表示为{C11,C12,C13......,C1p},其中,p值小于n,M2={C1,r1},其中,C1中包含的值介于0和n-1之间。进一步,t1是由物联网设备生成的随机数,其进一步用于生成会话密钥t,该会话密钥t用于后续通信步骤。
可选的,在本实施例中,假设第一目标消息为M3、第二索引序列为C2,、第二随机数为r2和第一会话密钥为t1,物联网设备还使用相同的机制为物联网服务器生成单独的M3。物联网设备生成M3,其中,M3由C2以及r2和t1构成,其中,C2包括另一组p个不同的随机数,每个数字在0和n-1之间。进一步,物联网设备连接物联网服务器的响应和质询,并将M3发送回物联网服务器。
通过本申请提供的实施例,利用在质询消息存储随机数和索引值的方式,达到当攻击者得到质询消息无法解密的目的,实现了提高物联网设备与物联网服务器信息交互的安全系数的技术效果。
作为一种可选的方案,还包括:
第三生成单元,用于在接收物联网设备发送的第一目标消息之后,利用动态密钥库生成解密密钥。
解密单元,用于使用解密密钥对第一目标消息进行解密。
第四生成单元,用于解密得到第一随机数,和物联网设备随机生成的第二随机数、第一会话密钥及第二索引序列的情况下,随机生成第二会话密钥,其中,第二索引序列包括物联网设备从动态密钥库中确定出的多个密钥的索引值,第一索引序列与第二索引序列不同。
第五生成单元,用于利用第二随机数及第二会话密钥生成第二目标消息。
需要说明的是,在本实施例中,物联网设备利用动态密钥库生成密钥,用于解密从物联网服务器发送来的质询消息。
可选的,在本实施例,假设物联网设备获得的密钥为k2、第二目标消息为M4,物联网设备接收消息M4并通过使用k2解密消息M4来获取r2的值来验证物联网服务器的身份。
通过本申请提供的实施例,利用物联网设备与物联网服务器的密钥分别存储与使用的技术手段,达到当攻击者单独获得一方的密钥无法解密的技术目的,实现了提高物联网设备与物联网服务器信息交互的安全系数的技术效果。
作为一种可选的方案,如图7,确定单元包括:
生成模块702,用于在物联网设备从第二目标消息中成功解密出第二随机数,且验证通过的情况下,物联网服务器对第一会话密钥及第二会话密钥进行叠加,以生成目标会话密钥。需要说明的是,在本实施例中,在物联网设备验证成功的情况下,进而物联网设备将会话密钥叠加,进而得到叠加后的会话密钥。
可选的,在本实施例中,假设第一会话密钥为t1、第二会话密钥为t2、目标会话密钥为t,一旦物联网服务器和物联网设备相互认证,它们就会决定会话密钥t=t1+t2,并且使用该会话密钥对该会话的所有进一步通信进行安全加密。
通过本申请提供的实施例,利用在物联网设备确定认定成功的情况下,将会话密钥叠加的方式,达到得到目标会话密钥的技术目的,进而实现在保证物联网交互足够安全的情况下,提高会话密钥的使用效率。
作为一种可选的方案,还包括:
更新单元,用于在物联网服务器通过目标会话向物联网设备发送目标数据之后,在检测到目标会话已达到预设会话时长的情况下,物联网服务器将根据在目标会话中产生的交互数据更新动态密钥库。
需要说明的是,在本实施例中,当目标回话在达到预设时长的情况下,物联网设备将会根据物联网信息交互中产生的交互数据更新动态密钥库。
可选的,在本实施例中,会话的持续时间可由用户确定:较短的持续时间提供高安全性,同时导致频繁调用三路认证消息交换。在每个会话之后,基于物联网服务器和物联网设备之间交换的数据来更改动态密钥库的值。
通过本申请提供的实施例,利用可设置的会话持续时间,达到根据用户需求更改动态密钥库的技术目的,达到提高物联网服务器和物联网设备之间数据交互的安全性的技术效果。
作为一种可选的方案,更新单元包括:
运算模块,用于物联网服务器利用在目标会话中产生的交互数据及当前已存储的安全数据进行哈希运算,得到哈希值;
更新模块,用于物联网服务器根据动态密钥库中各个分区的索引以及哈希值,对动态密钥库进行更新。
需要说明的是,在本实施例中,哈希运算是把任意长度的输入通过散列算法变换成固定长度的输出,上述输出就是散列值,其中,上述转换是一种压缩映射,散列值的空间远小于输入空间,不同的输入空间可能会散列成相同的输出,所以不可能从散列值来确定唯一的输入值,即,哈希运算是一种将任意长度的消息压缩到某一固定长度的消息摘要的函数。利用上述哈希运算,将物联网设备利用在信息交互中产生的交互数据和已经存储的密钥转化为哈希值,进一步,物联网设备根据上述哈希值与动态密钥库中各个分区的索引,进而更新上述动态密钥库,其中,对动态密钥库分区时,对于不能整除的索引值,末尾补零。
可选的,在本实施例中,HMAC是一种基于密钥的散列算法,HMAC运算利用哈希算法,以一个密钥和一个消息为输入,生成一个消息摘要作为输出,进一步,通过对当前动态密钥库的内容执行HMAC来生成安全库的新值。
可选的,在本实施例中,以下是更改安全保管库的步骤:采用当前动态密钥库的HMAC,HMAC的密钥是物联网服务器和物联网设备之间的数据交换。这里使用的散列函数提供k位的输出。上述HMAC值表示为h=HMAC(当前安全保险库,数据交换)。动态密钥库的当前值被划分为j个相等的k位分区,称为密钥库分区。所有这些分区都使用h异或(exclusive,简称xor)i进行编码以生成新的安全保险库(此处i是密钥库分区的索引)。如果动态密钥库的大小不能被k位整除,则在末尾填充0以创建j个相等的分区,即根据异或后的编码运算,以更新动态密钥库。
通过本申请提供的实施例,利用哈希值算法对交互数据与存储密钥进行转化,达成了进一步根据索引值与哈希值对动态密钥库进行不同且随机更新的技术目的,进而实现了提升物联网设备和物联网服务器认证以及通信的安全性。
根据本发明实施例的另一个方面,还提供了一种基于物联网操作系统的数据交互系统,包括:如上述的应用于物联网设备的数据交互装置,以及如上述的应用于物联网服务器的数据交互装置。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
根据本发明实施例的又一个方面,还提供了一种用于实施上述基于物联网操作系统的数据交互方法的电子装置,电子装置包括存储器和处理器,该存储器中存储有计算机程序,该处理器被设置为通过计算机程序执行上述任一项方法实施例中的步骤。
需要说明的是,对于前述的各装置实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本发明所必须的。
可选地,本领域普通技术人员可以理解,本申请实施例中的结构仅为示意,电子装置可以是智能手机(如Android手机、iOS手机等)、平板电脑、掌上电脑以及移动互联网设备(Mobile Internet Devices,MID)、PAD等终端设备。本申请实施例并不对上述电子装置的结构造成限定。例如,电子装置还可包括更多或者更少的组件(如网络接口等),或者更多不同的配置。
其中,存储器可用于存储软件程序以及模块,如本发明实施例中的一种基于物联网操作系统的数据交互方法和装置对应的程序指令/模块,处理器通过运行存储在存储器内的软件程序以及模块,从而执行各种功能应用以及数据处理,即实现上述的基于物联网操作系统的数据交互方法。存储器可包括高速随机存储器,还可以包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器可进一步包括相对于处理器远程设置的存储器,这些远程存储器可以通过网络连接至终端。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。其中,存储器具体可以但不限于用于存储证物联网设备与物联网服务器之间的交互数据等信息。作为一种示例,上述存储器、中可以但不限于包括上述基于物联网操作系统的数据交互装置中的第一发送单元402、接收单元404、确定单元406、第二发送单元408以及接收单元602、第一返回单元604、确定单元606、第一发送单元608。此外,还可以包括但不限于上述基于物联网操作系统的数据交互装置中的其他模块单元,本示例中不再赘述。
可选地,上述的传输装置用于经由一个网络接收或者发送数据。上述的网络具体实例可包括有线网络及无线网络。在一个实例中,传输装置包括一个网络适配器(NetworkInterface Controller,NIC),其可通过网线与其他网络设备与路由器相连从而可与互联网或局域网进行通讯。在一个实例中,传输装置为射频(Radio Frequency,RF)模块,其用于通过无线方式与互联网进行通讯。
此外,上述电子装置还包括:显示器,用于显示上述基于物联网操作系统的数据交互的结果;和连接总线,用于连接上述电子装置中的各个模块部件。
根据本发明的实施例的又一方面,还提供了一种存储介质,该存储介质中存储有计算机程序,其中,该计算机程序被设置为运行时执行上述任一项方法实施例中的步骤。
可选地,在本实施例中,上述存储介质可以被设置为存储用于执行以下步骤的计算机程序:
S1,在物联网设备与物联网服务器进行数据交互的过程中,物联网设备向物联网服务器发送第一目标消息,其中,第一目标消息中携带有第一会话密钥。
S2,物联网设备将接收到物联网服务器返回的第二目标消息,其中,第二目标消息中携带有物联网服务器随机生成的第二会话密钥,物联网设备和物联网服务器共享动态密钥库。
S3,物联网设备利用第一会话密钥及第二会话密钥确定出目标会话密钥,并确定建立与物联网服务器之间的目标会话,其中,目标会话密钥用于验证通过目标会话交互的数据。
S4,物联网设备通过目标会话向物联网服务器发送目标数据。以及,
S1,在物联网设备与物联网服务器进行数据交互的过程中,物联网服务器接收物联网设备发送的第一目标消息,其中,第一目标消息中携带有第一会话密钥。
S2,物联网服务器将向物联网设备返回第二目标消息,其中,第二目标消息中携带有物联网服务器随机生成的第二会话密钥,物联网设备和物联网服务器共享动态密钥库。
S3,物联网服务器利用第一会话密钥及第二会话密钥确定出目标会话密钥,并确定建立与物联网设备之间的目标会话,其中,目标会话密钥用于验证通过目标会话交互的数据。
S4,物联网服务器通过目标会话向物联网设备发送目标数据。
可选地,在本实施例中,本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令终端设备相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:闪存盘、只读存储器(Read-Only Memory,ROM)、随机存取器(Random AccessMemory,RAM)、磁盘或光盘等。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
上述实施例中的集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在上述计算机可读取的存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在存储介质中,包括若干指令用以使得一台或多台计算机设备(可为个人计算机、服务器或者网络设备等)执行本发明各个实施例上述方法的全部或部分步骤。
在本发明的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
在本申请所提供的几个实施例中,应该理解到,所揭露的客户端,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如上述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。
上述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
以上上述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。