本发明涉及多轴飞行器技术领域,具体涉及一种无人机固件保护系统。
背景技术:
随着无人机的广泛使用,对于无人机的安全性管理要求越来越高。典型地,现在无人机的嵌入式固件中会加入较多的保护机制,如数据加密,防止一些关键数据被非法窃取;通讯加密,防止别人截获无人机;飞行高度/区域限制,防止飞机在未经授权的区域飞行。
诸如此类的安全实现都依赖于无人机的固件能够正常运行才能发挥作用,那作为所有的源头,如何对无人机固件保护则很少涉及。
在未经保护的无人机系统中,非法用户可以通过刷机的方式植入自己的固件,从而实现任意飞行,这对无人机安全来说是一种巨大的漏洞。
现有的无人机行业大多数来自开源代码,用户可以任意刷新自己的固件,这对无人机的安全控制来说很难实现管控。
部分商业飞控,也只是对固件的完整性做校验,但一些有经验的用户仍然可以通过在自己的固件上加载仿造的头信息,欺骗过升级程序完成固件更新。
面对日益增强的无人机安全性要求,作为所有安全策略的源头,固件的保护强度仅仅依赖完整性校验是远远不够的。
技术实现要素:
本发明的目的在于克服现有技术存在的问题,提供一种无人机固件保护系统。
为实现上述技术目的,达到上述技术效果,本发明通过以下技术方案实现:
一种无人机固件保护系统,包括无人机端固件模块、以及对应的主机端固件模块,其中,
所述无人机端固件模块包括:
bootrom模块,用于固件的签名认证;
芯片唯一识别码,包含每个芯片唯一的id,用于对称加密密钥;
非对称加密私钥,用于无人机端固件模块启动时候签名认证,在芯片出厂时候烧录到芯片内部,与主机端固件模块的固件摘要信息加密所用的非对称加密公钥组成一组非对称加解密钥;
固件摘要信息,为主机端固件模块发布固件升级包时,用非对称加密公钥加密后的信息;
所述主机端固件模块向无人机端固件模块发布的固件升级包包括:
原始固件;
加密固件,由所述原始固件经过对称加密算法生成,并由所述无人机端固件模块中的芯片唯一识别码及相应的对称加解密算法解密;
crc校验信息,由所述原始固件经过crc32算法生成,用于和无人机端固件模块中存储的crc字段进行校验;
固件摘要加密信息,由所述原始固件依次经过摘要算法和非对称加密算法生成,并且由所述无人机端固件模块中的非对称加密私钥解密为所述固件摘要信息。
进一步的,所述主机端固件模块的固件升级包打包流程为:
步骤1.1)原始固件为固件开发工具编译后生成的可执行二进制码;
步骤1.2)对原始固件使用crc32算法,产生原始固件的crc校验信息;
步骤1.3)针对所要升级的无人机端固件模块中的芯片唯一识别码,使用aes加密算法对原始固件进行加密,得到加密固件;
步骤1.4)同时,将原始固件输入到摘要算法中,生成较短的摘要信息;
步骤1.5)将上一步中的摘要信息输入给非对称加密算法,使用非对称加密公钥加密成固件摘要加密信息;
步骤1.6)将生成的加密固件+crc校验信息+固件摘要加密信息打包为一个整体,作为针对对应无人机端固件模块的固件升级包。
进一步的,所述无人机端固件模块采用固件升级包的升级流程为:
步骤2.1)主机端固件模块将打包好的固件升级包发送给无人机端固件模块;
步骤2.2)无人机端固件模块根据自身的芯片唯一识别码,使用对称加解密算法对固件升级包中的加密固件进行对称解密,得到原始固件;
步骤2.3)将解密后的原始固件进行crc校验,并和无人机端固件模块存储的crc字段进行校验;
步骤2.3)如果校验失败,则停止升级;
步骤2.4)如果校验成功,则将原始固件存入无人机端固件进行固件覆盖;
步骤2.5)将固件升级包中的固件摘要加密信息也存入到无人机端固件内,作为启动时的校验使用;
步骤2.6)报告主机端固件模块升级成功。
进一步的,所述无人机端固件模块启动时的签名认证流程为:
步骤3.1)bootrom模块读取步骤2.4)中新存储的原始固件;
步骤3.2)将上一步中的原始固件输入到摘要算法中,得到其固件摘要信息;
步骤3.3)读取无人机端固件模块在步骤2.5)时保存的固件摘要加密信息;
步骤3.4)根据无人机端固件模块中的非对称加密私钥,非对称解密为固件摘要信息;
步骤3.5)将步骤3.2)中计算生成的固件摘要信息和步骤3.4)中非对称解密生成的固件摘要信息进行比较;
步骤3.6)如果不相等,则证明是非法固件,停止继续执行,如果相等,则证明是合法固件,正常启动。
进一步的,所述步骤1.4)和步骤3.2)中的摘要算法为sha256算法。
进一步的,所述步骤1.5)和步骤3.4)中的非对称加密公钥和非对称加密私钥为rsa算法。
本发明的有益效果是:
本发明通过对固件升级启用非对称的认证机制,可以保障只有经过授权的合法固件烧录,有效控制非法的固件植入,保障了飞行安全。
附图说明
图1为本发明的无人机固件存储区域框图;
图2为本发明的无人机固件打包流程图;
图3为本发明的无人机固件升级流程图;
图4为本发明的无人机固件启动流程图。
具体实施方式
下面将参考附图并结合实施例,来详细说明本发明。
如图1所示,一种无人机固件保护系统,包括无人机端固件模块、以及对应的主机端固件模块,其中,
所述无人机端固件模块包括:
bootrom模块,芯片启动后首先执行的程序块,完成固件的加载后执行,用于固件的签名认证;
芯片唯一识别码,包含每个芯片唯一的id,用于对称加密密钥;
非对称加密私钥,用于无人机端固件模块启动时候签名认证,在芯片出厂时候烧录到芯片内部,与主机端固件模块的固件摘要信息加密所用的非对称加密公钥组成一组非对称加解密钥;
固件摘要信息,为主机端固件模块发布固件升级包时,用非对称公钥加密后的信息;
所述主机端固件模块向无人机端固件模块发布的固件升级包包括:
原始固件;
加密固件,由所述原始固件经过对称加密算法生成,并由所述无人机端固件模块中的芯片唯一识别码及相应的对称加解密算法解密;
crc校验信息,由所述原始固件经过crc32算法生成,用于和无人机端固件模块中存储的crc字段进行校验;
固件摘要加密信息,由所述原始固件依次经过摘要算法和非对称加密算法生成,并且由所述无人机端固件模块中的非对称加密私钥解密为所述固件摘要信息。
如图2所示,所述主机端固件模块的固件升级包打包流程为:
步骤1.1)原始固件为固件开发工具编译后生成的可执行二进制码;
步骤1.2)对原始固件使用crc32算法,产生原始固件的crc校验信息;
步骤1.3)针对所要升级的无人机端固件模块中的芯片唯一识别码,使用aes加密算法对原始固件进行加密,得到加密固件;
步骤1.4)同时,将原始固件输入到摘要算法中,生成较短的摘要信息,例如512字节;
步骤1.5)将上一步中的摘要信息输入给非对称加密算法,使用非对称加密公钥加密成固件摘要加密信息;
步骤1.6)将生成的加密固件+crc校验信息+固件摘要加密信息打包为一个整体,作为针对对应无人机端固件模块的固件升级包。
如图3所示,所述无人机端固件模块采用固件升级包的升级流程为:
步骤2.1)主机端固件模块将打包好的固件升级包发送给无人机端固件模块;
步骤2.2)无人机端固件模块根据自身的芯片唯一识别码,使用对称加解密算法对固件升级包中的加密固件进行对称解密,得到原始固件;
步骤2.3)将解密后的原始固件进行crc校验,并和无人机端固件模块存储的crc字段进行校验;
步骤2.3)如果校验失败,则停止升级;
步骤2.4)如果校验成功,则将原始固件存入无人机端固件进行固件覆盖;
步骤2.5)将固件升级包中的固件摘要加密信息也存入到无人机端固件内,作为启动时的校验使用;
步骤2.6)报告主机端固件模块升级成功。
如图4所示,所述无人机端固件模块启动时的签名认证流程为:
步骤3.1)bootrom模块读取步骤2.4)中新存储的原始固件;
步骤3.2)将上一步中的原始固件输入到摘要算法中,得到其固件摘要信息;
步骤3.3)读取无人机端固件模块在步骤2.5)时保存的固件摘要加密信息;
步骤3.4)根据无人机端固件模块中的非对称加密私钥,非对称解密为固件摘要信息;
步骤3.5)将步骤3.2)中计算生成的固件摘要信息和步骤3.4)中非对称解密生成的固件摘要信息进行比较;
步骤3.6)如果不相等,则证明是非法固件,停止继续执行,如果相等,则证明是合法固件,正常启动。
所述步骤1.4)和步骤3.2)中的摘要算法为sha256算法。
所述步骤1.5)和步骤3.4)中的非对称加密公钥和非对称加密私钥为rsa算法。
本发明原理
在本发明中,由于无人机端固件模块中使用了芯片唯一识别码作为对称加密,实现一机一个唯一固件包,在无法有效获取芯片id的情形下,无法进行篡改固件;通过将非对称加密私钥出厂烧录在芯片内部,外部用户无法获取;而固件升级包发布时,需要携带另外一个非对称加密公钥所加密的摘要信息,任何仿造的固件,在无法得知非对称加密公钥的前提下,无法生成合法的固件摘要加密信息,也就无法进行固件仿冒。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。