本发明涉及物理领域,尤其涉及信息处理技术,特别是一种车载软件升级方法、系统、装置及介质。
背景技术:
车载娱乐产品(ivi)的软件升级包,一般情况下都是明文的升级文件并加上对应的数字签名。由于升级包可能被发往全国的4s店,这样升级包就有可能落入黑客手中。即便升级包附带数字签名,但由于升级文件本身还是明文的,黑客就可以通过相关工具对升级文件做逆向工程分析,进而理解我们的系统是如何运作,为他的下一步攻击提供线索。
在这样的背景下,升级包就需要被混淆或加密,以达到增加黑客做逆向工程分析的难度。但传统的升级包加固方法,有两个缺点:
1)如果仅使用混淆算法(不涉及秘钥),一旦被黑客猜到混淆算法,就会被还原出原始升级文件,就可以继续进行逆向工程分析了。
2)如果使用秘钥加密,那秘钥的保存又成为问题。即便有相关的安全流程,也难免造成秘钥的泄露;同时还增加了工厂生产线的复杂度(需要给机器烧录加密秘钥以支持后续的软件升级)。
技术实现要素:
针对上述技术问题,本发明的目的在于提供一种车载软件升级方法、系统、装置及介质。
为解决上述技术问题,本发明的车载软件升级方法,包括如下步骤:
步骤1,从根证书和子证书中提取数据制作成秘钥;
步骤2,利用秘钥对升级文件进行加密形成升级包;
步骤3,将所述的升级包传输到车载系统,车载系统利用所述的秘钥对升级包进行解密,获取升级文件;
步骤4,利用升级文件对车载软件进行升级文件。
步骤1中,从公钥基础设施的根证书和子证书中提取数据制作成秘钥。
秘钥为aes128秘钥。
一种车载软件升级系统,包括:
制作模块,用于从根证书和子证书中提取数据制作成秘钥;
加密模块,用于利用秘钥对升级文件进行加密形成升级包;
解密模块,用于利用秘钥对升级包进行解密,获取升级文件;
升级模块,用于利用升级文件对车载软件进行升级文件。
一种车载软件升级装置,包括:存储有车载软件升级程序的存储器及用于运行车载软件升级程序的处理器,车载软件升级程序配置为实现车载软件升级方法的步骤。
一种计算机可读存储介质,其特征在于,计算机可读存储介质上存储有车载软件升级程序,车载软件升级程序被处理器执行时实现车载软件升级方法的步骤。
本发明的车载软件升级方法经过该技术处理过的升级包,即便被获取,也无法对升级文件做逆向工程分析,由于无法知晓升级文件密文是怎么生成的,秘钥是什么。而且升级包内只有子证书,即便猜到秘钥可能是某种方式组合而成,在无法获得根证书的情况下,也就没办法推导出加密秘钥。
附图说明
图1为本发明车载软件升级方法流程图。
具体实施方式
下面结合附图对本发明车载软件升级方法作进一步详细说明。
本发明车载软件升级方法的技术前提:安全升级的pki体系,会用到两级证书(根证书、子证书)。根证书会预先集成到机器中;而子证书由根证书签发,其对应的私钥用于对日常升级文件的签名,且子证书会放到升级包中。
技术的核心点:升级包制作工具与机器内的升级程序,相互约定一个规则,例如从证书数据的末尾向前取数据,依据该规则从根证书、子证书中各提取相应长度的数据,拼接成16字节的aes秘钥。该秘钥只是临时存在于内存中,不会作为实体存在于flash中或某个金库内。升级包制作工具,在用私钥对升级文件签名后,会再用这个临时拼接的aes秘钥对升级文件加密;而机器内的升级程序,在检测到升级包后,会利用同样的规则,临时生成aes秘钥对升级文件解密。
约定规则举例:规则是灵活可变的,每个开发者可以根据自己的喜好制定规则。举个例子,先从子证书的某个位置提取7个字节的数据,再从根证书的某个位置提出9个字节的数据,这两块数据拼接起来的16字节数据作为aes128秘钥。
如图1所示,本发明车载软件升级方法,分两部分:
1)升级包制作工具
升级包制作工具只要链接了相关加密算法库,就可以利用约定的规则,从根证书与子证书中提取aes128秘钥,进而用aes128秘钥对升级文件做加密。
2)机器内的升级程序
同样的,升级程序也会通过约定的规则,从根证书与子证书中提取aes128秘钥,进而用该秘钥对升级文件密文做解密。
以上已对本发明创造的较佳实施例进行了具体说明,但本发明创造并不限于所述实施例,熟悉本领域的技术人员在不违背本发明创造精神的前提下还可作出种种的等同的变型或替换,这些等同的变型或替换均包含在本技术权利要求所限定的范围内。