一种离线环境下加密文件防复制方法及其系统与流程

摘要: 本发明涉及芯片烧录,尤其涉及一种离线环境下加密文件防复制方法及其系统。背景技术:1、在嵌入式系统和芯片烧录领域,为防止客户或第三方通过反编译、调试等手段窃取核心...
一种离线环境下加密文件防复制方法及其系统与流程

本发明涉及芯片烧录,尤其涉及一种离线环境下加密文件防复制方法及其系统。

背景技术:

1、在嵌入式系统和芯片烧录领域,为防止客户或第三方通过反编译、调试等手段窃取核心算法、代码逻辑或硬件设计,避免技术被抄袭,研发人员通常会在程序开发完成后,将程序通过一定加密算法加密后,发送给客户使用,且通常会限制一定的烧录次数。加密文件除了需考虑防破解、限制烧录次数等功能,还应通过一定方式,来防止客户可通过复制烧录文件、反复下载烧录文件到烧录器、更换烧录器的方式,实现烧录次数的无限使用。

2、行业内通常会使用连接服务器、客户提供等方式获取到烧录器的设备信息,在文件加密时通过这些信息将加密文件和设备进行绑定,以实现上述目的。

3、在实际生产中,用户端pc通常为离线状态,因此连接服务器获取烧录器设备信息的方式并不适用于任何场景。而需客户提供烧录器信息这种方式,通常需客户配合,过程略微繁琐,效率不高。

4、若要实现烧录文件仅可作用于单一设备,通常可采用“在线”方式和“离线”方式对烧录文件进行加密。

5、若烧录器工作在联网在线环境下,服务器可在线获取烧录器信息,从而实现加密文件对烧录器的绑定,以确保烧录文件被特定烧录器使用,保证烧录文件的安全。虽然“在线”方式安全性高,但显著缺点就是:主要围绕网络依赖性和系统复杂性展开。它的所有优点(极致安全、灵活控制、集中管理)都构建在“网络畅通”这个假设之上,不适用于大型烧录工厂或保密性要求高的场景。如果网络连接中断,或者授权服务器无法访问,烧录器将无法获得关键的“令牌”,整个烧录流程就会失败。因此,这是一个强依赖在线的方案。

6、而用于批量生产的烧录器通常工作在离线环境中,如烧录工厂等场所。若要保证烧录文件仅可用于一台烧录器,在离线环境下,现有加密方法通常采用由客户提供指定烧录器的硬件信息(如uid等信息),加密方得到该硬件信息后会将该信息作为烧录器密钥的一部分,对原程序进行加密操作。然后将加密后的文件提供给客户使用。离线方案要求每次为客户加密文件,均需客户提供指定烧录器的硬件信息。这种方式过于繁琐,若客户需求量大或者客户多的情况,这种线性和纯手工的过程,容易导致工作出错。而且一旦加密文件被发送出去,就失去了对它的控制。如果文件被泄露,无法阻止它在另一台被“伪装”成合法硬件的电脑上运行。

7、故此,亟需提供一种离线环境下加密文件防复制方法及其系统,旨在解决离线环境下,加密烧录文件容易被复制到多台烧录器上重复使用,从而导致授权失控或固件泄露的问题。

技术实现思路

1、本发明的目的在于提供一种离线环境下加密文件防复制方法及其系统,以解决上述离线环境下,加密烧录文件容易被复制到多台烧录器上重复使用,从而导致授权失控或固件泄露的技术问题。

2、为实现上述目的,本发明提供了一种离线环境下加密文件防复制方法,包括:

3、通过在加密阶段生成与待烧录固件唯一对应的随机密钥,且所述随机密钥不写入加密后的烧录文件;

4、通过采用所述随机密钥对所述待烧录固件进行加密,以生成加密烧录文件;

5、通过在终端设备上通过烧录软件打开所述加密烧录文件,并检测到烧录器连接时,获取当前烧录器的设备标识,并在所述加密烧录文件所在目录下检索与所述加密烧录文件相关联的设备注册表文件;

6、当未查找到所述设备注册表文件时,则创建新的设备注册表文件,并将所述当前烧录器的设备标识与所述随机密钥的关联关系写入新创建的所述设备注册表文件;

7、当查找到所述设备注册表文件时,则读取所述设备注册表文件中记录的已绑定设备标识,并将所述当前烧录器的设备标识与所述已绑定设备标识进行比对,若比对一致,则允许对所述加密烧录文件进行解密和烧录;若比对不一致,则拒绝解密和烧录;

8、所述随机密钥的生成过程,包括:通过随机数生成模块生成随机数,并引入动态因子以生成所述随机密钥;其中所述动态因子包括当前时刻信息;

9、所述允许对所述加密烧录文件进行解密和烧录,包括:使用所述随机密钥对所述加密烧录文件中的加密固件进行解密,并将解密后的固件数据通过通信接口传输给所述当前烧录器,以完成对目标芯片的烧录;

10、所述拒绝解密和烧录,包括:终止烧录流程,并输出设备不匹配的错误提示。

11、优选的,所述随机密钥由固件研发方通过安全渠道另行保管,且不与任何设备信息进行绑定。

12、优选的,所述随机密钥对所述待烧录固件进行加密,包括:采用对称加密算法对所述待烧录固件进行加密。

13、优选的,所述获取当前烧录器的设备标识,包括:通过通信接口向所述烧录器发送读取指令,获取所述烧录器唯一的硬件标识信息;其中所述通信接口包括usb接口或串口。

14、优选的,所述设备注册表文件为文本格式文件,并以所述加密烧录文件的名称或特征进行命名;所述加密烧录文件的格式为二进制镜像文件或十六进制文本文件格式。

15、本发明还提供了一种离线环境下加密文件防复制系统,执行如上述所述的一种离线环境下加密文件防复制方法,包括:

16、密钥生成模块,用于生成与待烧录固件唯一对应的随机密钥,且所述随机密钥不写入加密后的烧录文件;

17、加密模块,用于采用所述随机密钥对所述待烧录固件进行加密,以生成加密烧录文件;

18、设备标识读取模块,用于在终端设备上通过烧录软件打开所述加密烧录文件并连接烧录器时,以获取当前烧录器的设备标识;

19、注册表管理模块,用于在所述加密烧录文件所在目录下检索与所述加密烧录文件相关联的设备注册表文件;当所述设备注册表文件不存在时则创建新的设备注册表文件,并将所述当前烧录器的设备标识与所述随机密钥的关联关系写入所述设备注册表文件;当所述设备注册表文件存在时则读取所述设备注册表文件中记录的已绑定设备标识;

20、比对校验模块,用于将所述当前烧录器的设备标识与所述已绑定设备标识进行比对,若比对一致则允许对所述加密烧录文件进行解密和烧录,若比对不一致则拒绝解密和烧录。

21、本发明还提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现如上述所述的一种离线环境下加密文件防复制方法。

22、与现有技术相比,本发明具有如下优点和技术效果:

23、1、本发明基于本地注册表文件的设备绑定机制:通过在执行目录下生成并维护一个注册表文件,记录“加密文件随机密钥”与“首次使用设备id”的绑定关系,实现离线环境下的设备锁定,即能够在离线环境下将每份加密文件绑定到首次实际使用的烧录器上,有利于防止加密文件被复制到其他烧录器上重复使用。

24、2、本发明首次使用自动注册、后续使用自动校验的完整流程:无需人工干预,软件自动判断注册表文件是否存在,并执行相应的首次绑定或一致性校验逻辑,即无需终端客户提前提供任何硬件信息,也无需联网验证,简化了授权流程,提高了使用便利性,同时能够适应客户更换烧录器后重新绑定的场景。

25、3、本发明通过注册表文件状态实现防复制的防御思路:利用注册表文件的存在性及其内容,使一份加密文件仅能在一台设备上有效,任何试图复制到多台设备的行为均会因设备id不匹配而被拒绝,即通过将随机密钥与加密文件分离存储,随机密钥不写入加密文件头部,使得仅复制加密文件本身无法获得解密密钥,进一步增强了防复制效果。