本发明涉及ssd固件加密,尤其涉及一种ssd固件分段加密以及烧录方法。
背景技术:
1、现有的固件方案,代码编译后生成的二进制文件可以直接烧录到硬件中并且直接运行,无法有效的防止篡改和未经授权使用的问题。为了解决ssd固件防篡改和授权的问题,本发明提供了一种ssd固件分段加密和授权的管理办法,用来解决现有方案存在的问题。
技术实现思路
1、本发明的目的是为了解决现有技术中存在的缺点,而提出的一种ssd固件分段加密以及烧录方法,本发明可以对ssd固件中不同的内容进行分段加密,最后根据ssd固件内容进行进行授权加密,以达到防篡改和授权管理的目的。
2、为了实现上述目的,本发明采用了如下技术方案:
3、一种ssd固件分段加密方法,该加密方法包括如下步骤:
4、步骤一:对ssd固件代码进行编译,产生三个内核文件,分别为burner、loader和firmware内核文件,并依次对burner、loader和firmware内核文件两次加密;
5、步骤二:初次加密,将burner、loader和firmware内核文件依次上传至加密服务器,加密服务器的加密程序申请512字节的空间,用于记录头部加密信息,burner、loader和firmware内核文件的加密文件均由头部加密信息和对应的burner、loader和firmware内核文件拼接组成;
6、步骤三:二次加密,将步骤二中加密后的burner、loader和firmware内核文件打包再次上传至服务器,利用对称加密信息进行二次加密,完成最终加密。
7、优选地,所述loader的加密,将文件上传至加密服务器中,加密服务器的加密程序会申请512字节的空间,依次记录loader的type id、文件大小、原始loader文件内容的4位crc校验码、原始loader文件内容的aes对称加密信息,其中aes加密密钥是由内部自定义字符和4位文件内容crc校验码组成,该512字节信息定义为头部加密,将512字节的头部加密和原始loader文件内容进行拼接,则完成了loader文件的加密。
8、优选地,所述firmware的加密,将文件上传至加密服务器中,加密服务器的加密程序会申请512字节的空间,依次记录firmware的type id、文件大小、原始firmware文件内容的4位crc校验码、原始firmware文件内容的aes对称加密信息,其中aes加密密钥是由内部自定义字符和4位文件内容crc校验码组成,该512字节信息定义为头部加密,将512字节的头部加密和原始firmware文件内容进行拼接,则完成了firmware文件的加密。
9、优选地,所述burner的加密,将文件上传至加密服务器中,加密服务器的加密程序会申请512字节的空间,依次记录burner的type id、文件大小、原始burner文件内容的4位crc校验码、原始burner文件内容的aes对称加密信息,其中aes加密密钥是由内部自定义字符和4位文件内容crc校验码组成,该512字节信息定义为头部加密,将512字节的头部加密和原始burner文件内容进行拼接,则完成了burner文件的加密。
10、优选地,所述二次加密通过将加密后的burner、loader和firmware内核文件打包后再次上传至加密服务器,加密服务器加密程序申请512字节的头部加密空间,将burner、loader和firmware内核文件按顺序打包拼接成一个firmware_temp文件,在512字节的头部加密空间中记录burner、loader和firmware内核文件的大小、burner、loader和firmware内核文件对应的type id、burner、loader和firmware内核文件在firmware_temp中的offset位置信息、firmware_temp文件内容的的4位crc校验码 、firmware_temp文件内容的aes对称加密信息,其中aes加密密钥是由内部自定义字符和4位firmware_temp文件内容crc校验码组成,将512字节的头部加密和原始firmware_temp文件内容进行拼接,则完成了firmware文件的全部加密过程。
11、一种ssd固件烧录方法,该烧录方法包括如下步骤;
12、st1:firmware固件文件在烧录至硬件过程中,烧录程序会使用aes密钥先对firmware的512字节头部加密空间中的aes加密信息进行解密,解密后拿到firmware文件的crc的校验码,然后使用拿到的crc校验码和firmware文件内容进行校验,校验失败则证明文件经过篡改,终止烧录进程;
13、st2:上述校验成功后,烧录程序则会从firmware的头部加密空间的512字节中分别读取加密后的burner、loader和firmware内核文件的大小和offset文件内容偏移信息,提取完整的加密后的burner、loader和firmware内核文件;
14、st3:再分别从提取到的加密后的burner、loader和firmware内核文件的头部加密空间512字节中读取aes加密信息进行解密取得文件内容的crc校验码,将得到的crc校验码和对应的文件内容进行校验;
15、st4:校验失败则终止烧录进程,成功则开始进行ssd固件烧录。
16、与现有技术相比,本发明的有益效果是:
17、(1)本发明通过通过从局部到整体的加密,使得固件在内容保护和防篡改的性能更具可靠性和安全性,通过自定义密钥的方式,也能够控制第三方授权,在版本控制和第三方使用授权中的场景中提供了更可靠的授权控制性能;
18、(2)原有技术固件内容易被篡改、未经授权使用或者升级,对整个固件内容的安全都是极具威胁,通过分段加密的方式,稳定性增加,加密过程轻量化,版本易控制,内容保护性能得到大幅度提升,自定义头部加密空间在功能上易扩展。
1.一种ssd固件分段加密方法,其特征在于,该加密方法包括如下步骤:
2.根据权利要求1所述的一种ssd固件分段加密方法,其特征在于,所述loader的加密,将文件上传至加密服务器中,加密服务器的加密程序会申请512字节的空间,依次记录loader的type id、文件大小、原始loader文件内容的4位crc校验码、原始loader文件内容的aes对称加密信息,其中aes加密密钥是由内部自定义字符和4位文件内容crc校验码组成,该512字节信息定义为头部加密,将512字节的头部加密和原始loader文件内容进行拼接,则完成了loader文件的加密。
3.根据权利要求2所述的一种ssd固件分段加密方法,其特征在于,所述firmware的加密,将文件上传至加密服务器中,加密服务器的加密程序会申请512字节的空间,依次记录firmware的type id、文件大小、原始firmware文件内容的4位crc校验码、原始firmware文件内容的aes对称加密信息,其中aes加密密钥是由内部自定义字符和4位文件内容crc校验码组成,该512字节信息定义为头部加密,将512字节的头部加密和原始firmware文件内容进行拼接,则完成了firmware文件的加密。
4.根据权利要求3所述的一种ssd固件分段加密方法,其特征在于,所述burner的加密,将文件上传至加密服务器中,加密服务器的加密程序会申请512字节的空间,依次记录burner的type id、文件大小、原始burner文件内容的4位crc校验码、原始burner文件内容的aes对称加密信息,其中aes加密密钥是由内部自定义字符和4位文件内容crc校验码组成,该512字节信息定义为头部加密,将512字节的头部加密和原始burner文件内容进行拼接,则完成了burner文件的加密。
5.根据权利要求4所述的一种ssd固件分段加密方法,其特征在于,所述二次加密通过将加密后的burner、loader和firmware内核文件打包后再次上传至加密服务器,加密服务器加密程序申请512字节的头部加密空间,将burner、loader和firmware内核文件按顺序打包拼接成一个firmware_temp文件,在512字节的头部加密空间中记录burner、loader和firmware内核文件的大小、burner、loader和firmware内核文件对应的type id、burner、loader和firmware内核文件在firmware_temp中的offset位置信息、firmware_temp文件内容的的4位crc校验码 、firmware_temp文件内容的aes对称加密信息,其中aes加密密钥是由内部自定义字符和4位firmware_temp文件内容crc校验码组成,将512字节的头部加密和原始firmware_temp文件内容进行拼接,则完成了firmware文件的全部加密过程。
6.如权利要求1-5任一项所述的一种ssd固件分段加密方法的烧录方法,其特征在于,该烧录方法包括如下步骤;