[发明专利]一种基于安全芯片的可信启动方法有效
申请号: | 201810146731.5 | 申请日: | 2018-02-12 |
公开(公告)号: | CN108399339B | 公开(公告)日: | 2021-09-14 |
发明(设计)人: | 肖堃;罗蕾;李允;罗建超;陈丽蓉;陈虹;桂盛霖 | 申请(专利权)人: | 广东为辰信息科技有限公司 |
主分类号: | G06F21/57 | 分类号: | G06F21/57;G06F21/71 |
代理公司: | 成都行之专利代理事务所(普通合伙) 51220 | 代理人: | 温利平;陈靓靓 |
地址: | 523808 广东省东莞市松山*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 安全 芯片 可信 启动 方法 | ||
1.一种基于安全芯片的可信启动方法,其特征在于,包括以下步骤:
S1:根据安全启动过程中各部分不同的功能,将BootLoader划分为6个部分,分别为BL1程序、BL2程序、BL30程序、BL31程序、BL32程序、BL33程序;其中BL1程序用于设置异常向量表,初始化cpu,设置mmu,设置控制寄存器,初始化 UART0;BL2为BL30程序、BL31程序、BL32程序、BL33程序的加载和校验程序;BL30是独立的系统控制处理机System ControlProcessor固件,用于电源、时钟、复位和系统管理;BL31为系统安全监控机SystemSecurity Monitor;BL32为可信执行环境TEE OS;BL33为U-Boot程序;
S2:采用非对称加密算法,生成私钥和公钥;
S3:对步骤S1得到的BL1程序、BL2程序、BL30程序、BL31程序、BL32程序、BL33程序分别制作初始镜像,对各部分BootLoader程序的初始镜像采用SHA1算法进行一次哈希计算得到一个哈希值,将证书基本信息与这个哈希值进行链接得到证书信息,证书基本信息包括日期,发表者和公钥,将此证书信息进行哈希计算得到一个证书哈希值,将证书哈希值用私钥进行签名得到数字签名,将数字签名连接到镜像头部成为完整镜像,将各部分BootLoader程序的完整镜像烧写到嵌入式系统的存储区域,其中BL31镜像和BL32镜像存储在安全芯片中, BL33镜像存储在嵌入式多媒体卡eMMC中,每个镜像都在可信区域进行备份,将公钥嵌入L-load程序;
S4:设备开机上电,BOOTROM进行初始代码执行;
S5:BootLoader加载BL1镜像到片内RAM,对BL1镜像进行完整性验证,如果完整性校验通过,进入步骤S6,否则从备份镜像中恢复BL1镜像,对恢复的BL1镜像进行完整性校验,如果完整性校验通过,进入步骤S6,否则提示校验失败并退出安全启动;
S6:主核跳转到片内RAM中执行BL1程序,BL1程序通过计算自己程序段的范围来检测可用的可信SRAM内存大小,将BL2镜像加载到片内RAM;
S7:对BL2镜像进行完整性验证,如果完整性校验通过,进入步骤S8,否则从备份镜像中恢复BL2镜像,对恢复的BL2镜像进行完整性校验,如果完整性校验通过,进入步骤S8,否则提示校验失败并退出安全启动;
S8:主核跳转到片内RAM中执行BL2程序,BL2加载BL30镜像;
S9:对BL30镜像进行完整性验证,如果完整性校验通过,进入步骤S10,否则从备份镜像中恢复BL30镜像,对恢复的BL30镜像进行完整性校验,如果完整性校验通过,进入步骤S10,否则提示校验失败并退出安全启动;
S10:主核跳转到片内执行BL2程序,给安全芯片上电并进行相关初始化操作,让安全芯片引导启动代码,初始化SPI接口并且通过SPI总线与安全芯片SE中的启动代码通信,将存储在安全芯片中的BL31镜像读出并加载到片内RAM中;
S11:对BL31镜像进行完整性验证,如果完整性校验通过,进入步骤S12,否则从备份镜像中恢复BL31镜像,对恢复的BL31镜像进行完整性校验,如果完整性校验通过,进入步骤S12,否则提示校验失败并退出安全启动;
S12:主核跳转到片内执行BL2程序,通过SPI总线与安全芯片中的启动代码通信,将存储在安全芯片中的BL32镜像读出,并将BL32镜像加载到DDR中;
S13:从BL32镜像读取TEE OS头并进行完整性验证,如果完整性校验通过,进入步骤S14,否则从备份镜像中恢复BL33镜像,对恢复的BL33镜像进行完整性校验,如果完整性校验通过,进入步骤S14,否则提示校验失败并退出安全启动;
S14:将存储在嵌入式多媒体卡eMMC中的BL33镜像读出,将BL33镜像加载到DDR中;
S15:对BL33镜像进行完整性验证,如果完整性校验通过,进入步骤S16,否则从备份镜像中恢复BL33镜像,对恢复的BL33镜像进行完整性校验,如果完整性校验通过,进入步骤S16,否则提示校验失败并退出安全启动;
S16:BL2 程序执行SMC调用切换到BL1程序运行,然后依次运行BL31程序、BL32程序、BL33程序,即开始Linux的引导过程。
2.根据权利要求1所述的基于安全芯片的可信启动方法,其特征在于,所述完整性校验的具体方法为:
将存储于镜像证书中的公钥和嵌入L-load程序中的公钥分别进行提取,然后将两者进行对比,如果两个值是相同的,进行证书哈希值校验,否则完整性校验不通过;
将数字签名用公钥解密后得到证书哈希值,接着将证书信息进行哈希计算得到一个新的哈希值,然后将两个哈希值进行对比,如果两个哈希值相同,进行证书哈希值校验,否则完整性校验不通过;
将镜像进行哈希计算得到哈希值与证书提取得到的哈希值进行对比,如果两者相同,完整性校验通过,否则完整性校验不通过。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于广东为辰信息科技有限公司,未经广东为辰信息科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201810146731.5/1.html,转载请声明来源钻瓜专利网。