32位整形数值tx_attack_seq, ng_attack_seq,此两个数值将有效防止重放攻击。
[0022]图5为本发明物联网终端和云端之间的双向认证流程。
[0023]请继续参见图5,本发明物联网终端和云端之间的双向认证流程如下:
1.1物联网终端发送连接认证请求给云端,数据包中包括ID和Auth码;
1.2云端接收后判断ID和Auth是否与其数据库中的一致,不一致则认证失败,一致则进行1.3动作;
1.3云端随机生成一个新的AES码,将此码存入ID对应的数据库中;
1.4云端发送挑战码给物联网终端,其中数据包包含ID、挑战秘钥(原始AES码)和新的AES码;
1.5物联网终端接收后判断其挑战码是否与其内部存储的原始AES码相同,不同则认证失败,相同则进行1.6;
1.6物联网终端存储新的AES码,并回复挑战ACK包给云端,数据包中包含ID和新的AES 码;
1.7云端接收后比对AES码是否为之前随机为该ID产生的AES码,若不正确,则擦出存入该ID的新AES码,认证失败。若成功,进入1.8 ;
1.8物联网终端每隔一段时间发送Keep Alive包至云端保持连接可用,连接建立成功。
[0024]图6为本发明物联网终端和云端之间的数据通讯流程图。
[0025]请继续参见图6,本发明物联网终端和云端建立连接后,双方之间的数据通讯可以防止重放攻击,数据通讯流程如下:
2.1通过双向认证方式建立连接;
2.2物联网终端发送数据给云端,取出之前给云端发送的32位tx_attack_seq,按照确定的累加或累减规律进行变化后存储于物联网终端并发送至云端,除ID外所有数据都使用新AES加密;
2.3云端判断ID号是否为数据库内注册号,若不是,则云端丢弃数据,本次数据通讯结束,若是,则进入2.4;
2.4找到ID对应的新AES进行数据解密;
2.5判断tx_attack_seq是否已达到极值,若达到则必须进入重新发起双向认证连接阶段;
2.6云端判断该ID本次tx_attack_seq是否按照确定的累加或累减规律变化,若没有,则云端丢弃,此次数据通讯结束,若按照规律则进入2.7 ;
2.7将本次最新tx_attack_seq数值写入对应ID数据库;
2.8云端根据内容数据包中内容进行相对应动作;
2.9云端回复ACK包给物联网终端,将数据库中ng_attack_seq按照一定累加或累减规律变化存储并发送出去(包含ACK信号,ng_attack_seq都使用新AES加密);
2.10物联网接收数据包并使用新的AES秘钥解密;
2.11判断本次ng_attack_seq是否已达到极值,是则必须进入重新发起双向认证连接阶段。若不是则进入2.12;
2.12物联网终端判断该ID本次ng_attack_seq是否按照确定的累加或累减规律变化,若没有,则物联网终端丢弃,本次数据通讯结束,若按照规律则进入2.13 ;
2.13物联网终端执行数据包要求对应动作,存储最新的ng_attack_seq,完成本次数据通讯过程。
[0026]综上所述,本发明提供的用于物联网终端与云端通讯的加密方法,在满足物联网设备的两低要求下完成双向认证;并有效解决重放攻击问题。具体优点如下:1)本发明加密解决方案利用预置在物联网终端和云端中的对应数据大大降低了对计算和存储资源的消耗。2)本发明非常巧妙的利用预置数据解决了双向认证问题。3)本发明利用整型数据按规律累加或累减来识别通信数据的唯一性和到达数据边界时重新注册办法解决了重放攻击问题。
[0027]虽然本发明已以较佳实施例揭示如上,然其并非用以限定本发明,任何本领域技术人员,在不脱离本发明的精神和范围内,当可作些许的修改和完善,因此本发明的保护范围当以权利要求书所界定的为准。
【主权项】
1.一种用于物联网终端与云端通讯的加密方法,其特征在于,包括如下步骤: a)在物联网终端和云端同时预存由物联网终端ID、AES秘钥和Auth码三部分组成的固定字节数秘钥; b)每次建立连接时,所述云端随机生成新的AES码,所述物联网终端和云端通过比对新的AES码和预存AES秘钥进行双向认证,认证成功后,物联网终端将AES秘钥更新为新的AES 码; c)连接建立成功后双方进行数据通讯,所述物联网终端定时发送Ke印Alive包至云端保持连接可用。2.如权利要求1所述的用于物联网终端与云端通讯的加密方法,其特征在于,所述步骤b)中物联网终端和云端的双向认证过程如下: bl)所述物联网终端发送连接认证请求给云端,所述连接认证请求数据包中包括物联网终端ID和Auth码; b2)所述云端接收后判断物联网终端ID和Auth码是否与其数据库中的一致,不一致则认证失败; b3)所述云端随机生成一个新的AES码,并将此AES码存入该物联网终端ID对应的数据库中; b4)所述云端将原始AES码作为挑战秘钥返回给物联网终端,返回数据包中包含物联网终端ID、挑战秘和新的AES码; b5)所述物联网终端接收后判断接收到的挑战秘钥是否与其内部存储的原始AES码相同,不同则双向认证失败; b6)所述物联网终端存储新的AES码,并回复挑战ACK包给云端,回复数据包中包含该物联网终端ID和新的AES码; b7)所述云端接收后比对AES码是否为之前随机为该该物联网终端ID产生的AES码,若不正确,则擦除存入该物联网终端ID的新AES码,双向认证失败。3.如权利要求2所述的用于物联网终端与云端通讯的加密方法,其特征在于,所述步骤c)中连接建立成功后双方数据通讯过程如下: cl)在每次通讯数据包中设置tx_attack_seq和ng_attack_seq ;c2)所述物联网终端取出之前给云端发送的32位tx_attack_seq,按照预定的累加或累减规律进行变化后存储于物联网终端,并对除物联网终端ID外所有数据都使用新AES加密后发送至云端; c3)所述云端判断物联网终端ID是否为数据库内注册号,若不是,则云端丢弃数据,本次数据通讯结束,若是,则找到物联网终端ID对应的新AES进行数据解密; c4)所述云端判断解密后数据包中的tX_attack_Seq是否已达到极值,若达到则重新发起双向认证; c5)所述云端继续判断该物联网终端ID本次tx_attack_seq是否按照预定的累加或累减规律变化,若没有,则云端丢弃,此次数据通讯结束,若按照规律变化则将本次最新tx_attack_seq数值写入对应物联网终端ID数据库; c6)所述云端将数据库中ng_attack_seq按照预定累加或累减规律变化存储并将ng_attack_seq使用新AES加密后放入回复ACK包发送给物联网终端; c7)所述物联网接收数据包并使用新的AES秘钥解密,判断解密后本次ng_attack_seq是否已达到极值,是则重新发起双向认证连接;若不是则物联网终端判断该物联网终端ID本次ng_attack_Seq是否按照预定的累加或累减规律变化,若没有,则物联网终端丢弃,本次数据通讯结束,若按照规律变化则物联网终端执行数据包要求对应动作,存储最新的ng_attack_seq,完成本次数据通讯过程。4.如权利要求3所述的用于物联网终端与云端通讯的加密方法,其特征在于,所述tx_attack_seq和ng_attack_seq为两个32位整型数值。
【专利摘要】本发明公开了一种用于物联网终端与云端通讯的加密方法,包括如下步骤:a)在物联网终端和云端同时预存由物联网终端ID、AES秘钥和Auth码组成的固定字节数秘钥;b)每次建立连接时,所述云端随机生成新的AES码,所述物联网终端和云端通过比对新的AES码和预存AES秘钥进行双向认证,认证成功后,物联网终端将AES秘钥更新为新的AES码;c)连接成功后双方进行数据通讯,所述物联网终端定时发送KeepAlive包至云端保持连接可用。本发明通过在物联网终端和云端预置固定字节数秘钥数据实现可靠的双向认证,大大降低对计算和存储资源的消耗,满足轻量级物联网的安全需求。
【IPC分类】H04L29/06, H04L29/08, H04L9/32
【公开号】CN105227309
【申请号】CN201410269374
【发明人】陆斌泉, 刘亚龙, 吴小平
【申请人】上海崴澜网络科技有限公司
【公开日】2016年1月6日
【申请日】2014年6月17日