【技术实现步骤摘要】
基于国密算法的固件传输认证保护方法及系统
[0001]本专利技术属于固件保护
,尤其涉及基于国密算法的固件传输认证保护方法及系统。
技术介绍
[0002]本部分的陈述仅仅是提供了与本专利技术相关的
技术介绍
信息,不必然构成在先技术。
[0003]为了保护固件传输过程中的安全,开发者通常采用加密、身份验证、防篡改等措施。首先,加密算法虽然能够对固件数据进行保护,但是如果密钥管理不当或者加密算法本身存在漏洞,仍然会使固件数据遭到攻击。其次,身份验证虽然可以限制固件的访问权限,但是如果攻击者破解了身份认证系统,仍然可能对固件进行攻击。最后,防篡改措施虽然可以限制对固件的非法篡改和下载注入,但是如果防护策略和措施不够完善,在恶意软件和攻击行为产生的数据篡改、下载注入等方面仍然存在一定的局限。
技术实现思路
[0004]为了解决上述
技术介绍
中存在的至少一项技术问题,本专利技术提供基于国密算法的固件传输认证保护方法,其使用秘钥协商技术对固件信息进行安全加密并实现在云端与目标模块间安全传输的方法,通过连接客户端、云端和WiFi模块,基于国产密码算法秘钥协商系统对固件信息进行加固,并且采用逐包加固和校验重传的方法来确保数据安全。与以往的技术相比,本专利技术实现了系统稳定、传输效率高且安全性高的数据传输保护方法。
[0005]为了实现上述目的,本专利技术采用如下技术方案:
[0006]本专利技术的第一个方面提供基于国密算法的固件传输保护认证保护方法,包括如下步骤:
[0007]当应用 ...
【技术保护点】
【技术特征摘要】
1.基于国密算法的固件传输保护认证保护方法,其特征在于,包括如下步骤:当应用程序于客户端上打开时,与云端进行秘钥协商,生成统一的的会话秘钥K;客户端向云端发起请求固件数据的申请,云端验证客户端的权限,并且在数据库中检索所求文件的信息;云端依据文件大小,将文件分为若干个包,将分包数据信息、双端明文信息和包序号组成新包一起计算得到其哈希值,然后使用国密算法对新包进行加密,密钥采用会话秘钥K,将加密的数据包处理后发送给客户端;客户端接收分包数据后进行解密处理得到原数据,对其进行哈希计算,并与原哈希值进行验证,验证分包哈希值来确保数据完整性;客户端接收所有分包数据后,将所有分包数据按照包序号顺序排列组合到一起,并计算组合后文件的哈希值;将客户端计算的哈希值与云端发送的整个文件哈希值作对比,结果一致则通过,不一致则说明文件在传输过程中损坏,发送失败;客户端对文件数据格式进行解析处理,并将数据发送给WiFi模块。2.如权利要求1所述的基于国密算法的固件传输保护认证保护方法,其特征在于,所述云端依据文件大小,将文件分为若干个包,具体包括:通过文件的字节数,得到文件的数据包个数;循环读取原始文件,并将每次读取的1024字节数据放入一个数据包中直至读取完毕。3.如权利要求1所述的基于国密算法的固件传输保护认证保护方法,其特征在于,加密处理后的数据包,其生成过程包括:确定每个数据包的包序号,并将其与将双端明文信息分别转换为字节流;对于分包数据信息,采用二进制编码将其转换为字节流;将上述三个字节流按照包序号、双端明文信息、分包数据信息的顺序组合成一个新的字节流;在组合后的字节流中添加头部信息,包括长度,盐值和CRC校验;计算添加了盐值后的字节流的CRC校验和,并将其添加到头部信息中;对添加了盐值的字节流使用SM4算法进行加密处理,得到处理后的数据包。4.如权利要求3所述的基于国密算法的固件传输保护认证保护方法,其特征在于,所述将上述三个字节流按照包序号、双端明文信息、分包数据信息的顺序组合成一个新的字节流,具体包括:其中每个字段的大小以比特为单位给出,按照上述格式组合后,得到最终的字节流,其中第1
‑
2个字节表示包序号,第3
‑
6个字节表示双端明文信息,第7
‑
14个字节表示分包数据信息,包序号使用2个字节来表示,双端明文信息使用4个字节来表示,分包信息数据使用8个字节来表示。5.如权利要求3所述的基于国密算法的固件传输保护认证保护方法,其特征在于,所述在组合后的字节流中添加头部信息,包括长度,盐值和CRC校验,包括:添加长度信息,将数据包长度作为一个固定的头部信息添加到数据包的最前面,用2个字节来表示长度信息;添加盐值信息,使用伪随机数生成器来产生一个随机字符串或二进制码作为盐值,长度选择8
‑
16字节,并将盐值添加到数据包的头部;
添加校验和信息,对于数据包的内容进行校验和计算,并将计算得到的结果添加到数据包的头部,校验和采用CRC来实现。6.如权利要求3所述的基于国密算法的固件传输保护认证保护方法,其特征在于,所述对添加了盐值的字节流使用SM4算法进行加密处理,具体包括:对输入数据进行填充,在末尾行添加需要填充的字节数以满足SM4算法加密数据的数据长度要求;将生成的会话秘钥K转换为KeyParameter类型,并将其作为参数传递给CBC模式的BlockCipher对象,用来初始化加密引擎;创建一个BufferedBlockCipher实例,在加密时自动处理缓冲区和填充细节;调用BufferedBlockCipher的ProcessBytes方法对填充后的输入数据进行加密,加密结果存储在encryptedData数组中;同时,根据输入数据长度和加密算法块大小计算输出缓冲区的大小,并设置encryptedData数组的大小为输出缓冲区大小;将加密结果复制到新的result数组中,并将encryptedData数组替换为result数组来保存正...
【专利技术属性】
技术研发人员:王坤,付勇,高绍锋,陈鑫泽,赵大伟,陈丽娟,王继志,杨光,
申请(专利权)人:齐鲁工业大学山东省科学院,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。