一种适用于VxWorks环境的可信引导方法与流程

文档序号:17159693发布日期:2019-03-20 00:30阅读:207来源:国知局
一种适用于VxWorks环境的可信引导方法与流程

本发明属于嵌入式信息安全技术领域,具体涉及一种适用于vxworks环境的可信引导方法,其为嵌入式可信计算和安全引导(bootrom)的设计,应用于在vxworks环境下,用户对操作系统安全性要求和用户应用程序安全性要求较高的场景。



背景技术:

vxworks操作系统是美国windriver公司设计的一种嵌入式实时操作系统,其良好的可靠性和卓越的实时性被广泛应用于通信、军事、航空、航天等领域中,如卫星通讯、弹道制导、飞机导航等。如何更好的保证vxworks操作系统镜像及用户应用程序,提高系统整体安全性,成为人们关注的问题。

目前,vxworks操作系统的上电引导采用设计bootrom方式,首先上电启动后,运行bootrom程序,在bootrom中完成硬件初始化等操作,同时将vxworks操作系统镜像加载到内存中,并跳转到镜像入口,启动操作系统内核。操作系统内核启动后,切换到系统用户态,调用用户自定义应用程序.out文件,启动用户程序。

当前的较多应用中,并无对vxworks操作系统镜像及用户应用程序进行可信引导设计,此时编译后的镜像程序或用户应用程序可以通过静态反编译、动态调试等手段被破解,被非法人员获取到源码或开发人员思维意图,造成知识产权遭到侵犯,甚至篡改、破坏操作系统和应用程序文件,造成不可预计的严重后果。



技术实现要素:

(一)要解决的技术问题

本发明要解决的技术问题是:如何解决vxworks环境下,操作系统镜像和用户应用程序安全问题,以期有效提高软件的安全性。

(二)技术方案

为解决上述技术问题,本发明提供一种适用于vxworks环境的可信引导方法,所述方法包括如下步骤:

步骤1:在系统bootrom程序中,打开vxworks镜像文件,读取vxworks镜像文件头部的结构体数据,判断此vxworks镜像文件是否已加密;

如果未加密,则读取vxworks镜像文件长度大小并申请相等内存空间,将vxworks镜像文件的二进制数据读取到相应内存空间中;

如果已加密则跳转到步骤5;

步骤2:对读取的vxworks镜像文件的二进制数据进行hmac认证码生成;

根据步骤1得到的vxworks镜像文件的长度tlen,进行补充k比特0,得到补充后的二进制数据长度满足tlen+k=448mod512,对补充后的二进制数据进行hmac认证处理,生成hmac认证码,作为软件完整性校验基准值;

步骤3:对读取的vxworks镜像文件的二进制数据进行加密;

将步骤1读取的二进制数据填充km比特0,使得tlen+km=0mod128,形成填充后的二进制数据长度为len;对填充后的二进制数据进行加密处理,生成加密后的长度为len=tlen+km比特的密文数据;

步骤4:将加密后的密文数据回写到vxworks镜像文件中,并在vxworks镜像文件头部写入加密结构体数据,作为加密后的文件标记,将密文数据及文件标记回写到vxworks镜像文件中后,形成加密后vxworks镜像文件,然后再关闭该加密后vxworks镜像文件;

步骤5:在确认vxworks镜像文件为加密后的情况下,打开已存在的加密后vxworks镜像文件,读取vxworks镜像文件头部的加密结构体数据;对长度为len的密文数据采用对称加密算法进行解密操作,获取解密得到的hmac认证码,依据解密得到的hmac认证码完成vxworks镜像文件的安全引导。

其中,所述步骤2中,通过sha2单向散列算法来进行hmac认证,生成hmac认证码。

其中,所述步骤2中,所述生成的hmac认证码为256比特。

其中,所述步骤3中,通过分组加密算法aes对读取的二进制数据进行加密处理。

其中,所述步骤5中,加密结构体数据中包含:加密后的文件标记、密文数据长度len。

其中,所述步骤5中,首先,解密len比特长度的密文数据,得到明文的原始二进制数据,然后依据解密得到的hmac认证码,与由步骤2生成的作为完整性校验基准值的hmac认证码进行比较,如果两者一致,则完成可信引导,否则认证失败,退出引导过程。

其中,使用aes解密算法解密len比特的密文数据。

(三)有益效果

与现有技术相比较,本发明系统性地针对vxworks镜像文件和用户应用程序进行加密,解决了核心知识产权在硬盘中明文存储的问题,使破解人员无法直接进行静态反编译和动态调试,有效地增加了破解难度及系统安全性,进一步保护了核心知识产权。

附图说明

图1为本发明技术方案原理图。

图2为本发明技术方案流程图。

具体实施方式

为使本发明的目的、内容、和优点更加清楚,下面结合附图和实施例,对本发明的具体实施方式作进一步详细描述。

为了解决上述技术问题,如图1所示,本发明采用的技术方案是:根据嵌入式可信计算设计思想,在系统bootrom中读取vxworks镜像文件,采用分组算法aes对其进行加密,采用sha2生成镜像数据的hmac认证码,作为完整性校验基准值,完成系统镜像的安全引导。在系统vxworks镜像文件中,读取out用户应用程序,并采用分组算法aes对其进行加密,采用sha2生成镜像数据的hmac认证码,作为完整性校验基准值,完成用户应用程序的安全引导。

具体而言,为解决现有技术的问题,本发明提供为解决上述技术问题,本发明提供一种适用于vxworks环境的可信引导方法,如图2所示,所述方法包括如下步骤:

步骤1:在系统bootrom程序中,打开vxworks镜像文件,读取vxworks镜像文件头部的结构体数据,判断此vxworks镜像文件是否已加密;

如果未加密,则读取vxworks镜像文件长度大小并申请相等内存空间,将vxworks镜像文件的二进制数据读取到相应内存空间中;

如果已加密则跳转到步骤5;

步骤2:对读取的vxworks镜像文件的二进制数据进行hmac认证码生成;

根据步骤1得到的vxworks镜像文件的长度tlen,进行补充k比特0,得到补充后的二进制数据长度满足tlen+k=448mod512,对补充后的二进制数据进行hmac认证处理,生成hmac认证码,作为软件完整性校验基准值;

步骤3:对读取的vxworks镜像文件的二进制数据进行加密;

将步骤1读取的二进制数据填充km比特0,使得tlen+km=0mod128,形成填充后的二进制数据长度为len;对填充后的二进制数据进行加密处理,生成加密后的长度为len=tlen+km比特的密文数据;

步骤4:将加密后的密文数据回写到vxworks镜像文件中,并在vxworks镜像文件头部写入加密结构体数据,作为加密后的文件标记,将密文数据及文件标记回写到vxworks镜像文件中后,形成加密后vxworks镜像文件,然后再关闭该加密后vxworks镜像文件;

步骤5:在确认vxworks镜像文件为加密后的情况下,打开已存在的加密后vxworks镜像文件,读取vxworks镜像文件头部的加密结构体数据;对长度为len的密文数据采用对称加密算法进行解密操作,获取解密得到的hmac认证码,依据解密得到的hmac认证码完成vxworks镜像文件的安全引导。

其中,所述步骤2中,通过sha2单向散列算法来进行hmac认证,生成hmac认证码。

其中,所述步骤2中,所述生成的hmac认证码为256比特。

其中,所述步骤3中,通过分组加密算法aes对读取的二进制数据进行加密处理。aes(高级加密标准)是nist(美国国家标准与技术研究所)2001年公布的算法,具有较高的安全性。

其中,所述步骤5中,加密结构体数据中包含:加密后的文件标记、密文数据长度len。

其中,所述步骤5中,首先,解密len比特长度的密文数据,得到明文的原始二进制数据,然后依据解密得到的hmac认证码,与由步骤2生成的作为完整性校验基准值的hmac认证码进行比较,如果两者一致,则完成可信引导,否则认证失败,退出引导过程。

其中,使用aes解密算法解密len比特的密文数据。

采用本发明技术方案后,vxworks镜像文件和用户应用程序等核心知识产权在硬盘中采用密文存储,破解人员无法直接进行静态反编译和动态调试,有效地增加了破解难度及系统安全性,进一步保护了核心知识产权。

以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明技术原理的前提下,还可以做出若干改进和变形,这些改进和变形也应视为本发明的保护范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1