[发明专利]一种基于安全芯片的可信启动方法有效
申请号: | 201810146731.5 | 申请日: | 2018-02-12 |
公开(公告)号: | CN108399339B | 公开(公告)日: | 2021-09-14 |
发明(设计)人: | 肖堃;罗蕾;李允;罗建超;陈丽蓉;陈虹;桂盛霖 | 申请(专利权)人: | 广东为辰信息科技有限公司 |
主分类号: | G06F21/57 | 分类号: | G06F21/57;G06F21/71 |
代理公司: | 成都行之专利代理事务所(普通合伙) 51220 | 代理人: | 温利平;陈靓靓 |
地址: | 523808 广东省东莞市松山*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | 本发明公开了一种基于安全芯片的可信启动方法,将BootLoader划分为6个部分,基于数字签名分别制作这6个部分的镜像,将关键的镜像存储在安全芯片中,按照顺序加载这6个部分的镜像,在加载镜像后进行完整性验证,所有完整性通过之后即开始Linux的引导过程。本发明采用数字签名和完整性验证保证启动可信链可信的基础上,通过使用安全芯片存储关键数据,可有效提高启动可信度。 | ||
搜索关键词: | 一种 基于 安全 芯片 可信 启动 方法 | ||
【主权项】:
1.一种基于安全芯片的可信启动方法,其特征在于,包括以下步骤:S1:根据安全启动过程中各部分不同的功能,将BootLoader划分为6个部分,分别为BL1程序、BL2程序、BL30程序、BL31程序、BL32程序、BL33程序;其中BL1程序用于设置异常向量表,初始化cpu,设置mmu,设控制寄存器,初始化UART0;BL2为BL30程序、BL31程序、BL32程序、BL33程序的加载和校验程序;BL30是独立的System Control Processor固件,用于电源、时钟、复位和系统管理;BL31为System Security Monitor;BL32为TEE OS;BL33为U‑Boot程序;S2:采用非对称加密算法,生成私钥和公钥;S3:对步骤S101得到的BL1程序、BL2程序、BL30程序、BL31程序、BL32程序、BL33程序分别制作初始镜像,对各级BL程序的初始镜像采用SHA1算法进行一次哈希计算得到一个哈希值,将证书基本信息与这个哈希值进行链接得到证书信息,证书基本信息包括日期,发表者和公钥,将此证书信息进行哈希计算得到一个证书哈希值,将证书哈希值用私钥进行签名得到数字签名,将数字签名连接到镜像头部成为完整镜像,将各级BL程序的完整镜像烧写到嵌入式系统的存储区域,其中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的引导过程。
下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于广东为辰信息科技有限公司,未经广东为辰信息科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/patent/201810146731.5/,转载请声明来源钻瓜专利网。