文章总结: 本文介绍了芯片信息安全中的安全启动技术,解释了其必要性和实现方法。安全启动通过逐级验证启动镜像实现固件可信加载,建立信任链确保系统启动过程的安全性。文章详细阐述了安全启动的信任根设计、镜像验证方法(包括SHA256等消息摘要算法和非对称签名算法)以及公钥保护措施。对于需要提供安全服务的平台,必须保证从系统启动的第一条指令到操作系统加载完成的整个流程中,所有代码都经过完整性和真实性验证,这是构建可信系统的基础。
综合评分: 88
文章分类: IoT安全,二进制安全,安全建设,硬件安全,应用安全
芯片信息安全—安全启动
谈思实验室
2025年11月25日 18:06
点击上方蓝字谈思实验室
获取更多汽车网络安全资讯
01
为什么需要安全启动
安全启动又叫secureboot,它是一种通过逐级验证启动镜像,实现固件可信加载的技术。 如以下为嵌入式系统的基本启动流程:
该流程中由bootrom开始,逐级通过spl、uboot以启动linux操作系统。我们假设spl、uboot和linux镜像都被保存在flash上,则在启动时,各级启动程序都需要从flash中加载下一级启动镜像,其流程示意图如下:
如果以上流程未执行secureboot,则flash中的镜像一旦被恶意攻击者替换掉,那么最终系统上将会运行被攻击者篡改过的固件。假设linux和rootfs被替换掉以后,那么启动后整个系统都将掌握在攻击者的手里。从而导致在操作系统之上构建的所有安全机制都形同虚设。
综上所述,对于需要提供安全服务的平台,其基本要求是系统本身是可信的。因此,必须要保证从系统启动时运行的第一条指令,到操作系统加载完成的整个流程中,其所有代码都经过完整性和真实性验证。而secureboot就是被设计为完成这一目标的。
02
安全启动实现
2.1 安全启动的信任链
由于操作系统启动时可能需要多级启动镜像,而只要其中任意一级镜像未执行secureboot流程,则其后的所有镜像实际上都是不可信的。典型的例子如下:
以上例子中bootrom验证了spl镜像,若spl未验证uboot镜像,则一旦uboot镜像被替换以后,那么攻击者就可以控制后面所有的启动流程。如被替换的uboot可以从其它位置加载非法的linux镜像,而在该linux镜像中任意植入后门等。
因此,secureboot需要建立安全启动的信任链,在启动流程中,每一级镜像都由其前级镜像执行合法性验证。这样只要保证第一级镜像是合法的,那么第二级镜像的合法性由第一级镜像保证,第三级镜像的合法性由第二级镜像保证。从而像链条一样将整个启动流程的信任链连接起来,最终保证整个系统是可信的。
2.2 安全启动的信任根
由于信任链建立流程中,镜像合法性是由其前级镜像验证的,那么第一级镜像的合法性如何保证呢?这就是接下来要讨论的信任根问题。既然无法由前级镜像为其背书,那么按照惯例,软件没办法解决的问题自然就需要硬件上马了。
我们知道rom是一种只读存储器,它只能被编程一次且内容在其后不能被再次更改。因此若在SOC内部集成一片ROM,并在芯片生产时就将第一级启动镜像刷到这块ROM中,那么也就保证了它是可信的,这也是现代SOC的普遍做法。
由于SOC可能会支持不同的启动方式,如xip启动可以直接从外部的norflash开始启动。因此在rom中集成bootrom镜像之后,还需要保证芯片每次启动时都必须从bootrom开始执行,否则攻击者还可以通过xip方式绕过整个secureboot流程。而一般xip启动模式都是在调试阶段用于问题定位的,因此在产品调试完成,启动secureboot前必须要关闭该模式。通常它可以通过OTP或EFUSE中的特定bit实现。
2.3 镜像验证
secureboot的信任链是通过逐级镜像验证实现的,而合法的镜像应该要包含以下特征:
(1)镜像是由官方发布的,即其需要验证镜像发布者的身份
(2)镜像没有被其它任何人篡改过,即镜像的内容是完整的
以上特性的验证可以通过特定的密码算法实现。如可通过消息摘要算法验证数据的完整性,而通过非对称签名验签算法验证镜像发布者的身份。
2.3.1 消息摘要算法介绍
消息摘要算法是通过单向散列函数,将一段消息的内容转换为另一段固定长度消息的过程,而被其计算后生成的消息称为hash值,它具有以下特征:
(1)任意长度的输入消息都会输出固定长度的hash值
(2)hash函数必须具备单向性,而无法通过hash值反向算出其消息原文
(3)不同的输入消息其输出消息也不同,即其具有强抗碰撞性
(4)hash值的计算速度要快
以上特性使其可以被很好地用于验证消息的完整性,接下来我们对其做个简单的推演:
(1)若某一段消息被篡改以后,由于hash函数具有强抗碰撞性,因此其算出的hash值就会与被篡改前内容的hash值不同。从而能很容易地知道消息是否被篡改
(2)由于hash值的单向性,即不能通过hash值推算出原文。因此即使理论上存在具有hash值相同的不同原文,攻击者也无法通过该hash值推算出原文。这就使得攻击者无法通过hash值,伪造hash值相同而原文不同的消息。从而在密码学维度可以认为hash值与原文是一一对应的
(3)由于其输出的hash值长度固定,且占用的空间很小,如sha256占256 bit,而sha512占512 bit。因此为其它消息附加hash值在存储空间上是完全可接受的
有了消息摘要算法后,我们就可以通过它验证镜像的完整性,从而很容易地就能把被篡改的镜像给识别出来。
在密码学中有多种消息摘要算法,如md5、sha1、sha256、sha512、sha3等。随着计算机技术的发展,有些原先认为具有强碰撞性的算法(如md5、sha1),在当前已经被认为并不安全,因此secureboot中一般使用sha256、sha512等算法作为完整性算法。
2.3.2 非对称算法介绍
非对称密码算法是相对于对称性密码算法而言的,在对称密码算法中加密和解密时使用的密钥相同。而非对称算法加密和解密时使用的密钥不同,其中私钥由密钥属主保管,且不能泄露,而公钥可以分发给其它人。且通过公钥加密的数据只能由私钥解密,通过私钥签名的数据只能由公钥验签。
在secureboot流程中,会通过私钥对镜像的hash值签名,并将其附加到镜像文件中。这样,在系统启动时只需要通过其公钥验签镜像,即可确定镜像的来源。其原理如下:
(1)由于私钥只有密钥的属主能获得,其它人无法获取到私钥,从而无法伪造签名。
(2)公钥验签时,由于只能验签其对应私钥签名的数据,而其它伪造的数据都会验签失败。即只有该公钥对应私钥属主签名的镜像才能通过验签,从而确保了镜像发布者的身份。
2.3.3 镜像签名和验签流程
由以上分析可知镜像签名的基本流程如下:
(1)使用hash算法生成镜像的hash值hash(image)
(2)通过镜像发布者的私钥,使用非对称算法对镜像的hash值执行签名流程,并生成其签名值sig(hash)
最后将镜像的hash值、签名值与镜像一起发布,在芯片启动时可通过以下流程验证镜像的合法性:
(1)使用非对称算法的公钥和签名值,对镜像的hash值进行验签。若验签通过则可进一步校验镜像完整性。否则,启动失败。
(2)若验签通过,则重新计算镜像的hash值hash(image)’,并将其与原始hash值hash(image)比较,若其相等则表明镜像的完整性验证通过。否则启动失败。
2.4 公钥保护
由于验签操作依赖于公钥,若设备上的公钥被攻击者替换成他们自己的,那么攻击者只需要用与其匹配的私钥伪造镜像签名即可,因此必须要保证设备上的公钥不能被替换。一般SOC芯片的片内会含有若干OTP或EFUSE空间,它们只能被编程一次,且在被编程后不能被再次修改。
故若将公钥保存到OTP或EFUSE中,则可很好地保证其不能被修改。由于OTP的空间一般很小,而像RSA之类的公钥长度却比较长,如RSA 2048的公钥长度为2048 bits。因此为了节约OTP资源,一般在OTP中只保存公钥的hash值(如sha256的hash值为256 bits),而将公钥本身附加到镜像中。
在使用公钥之前,只需要使用OTP中的公钥hash值验证镜像附带公钥的完整性,即可确定公钥是否合法。
来源:知乎@lgjjeff
https://zhuanlan.zhihu.com/p/536007837
谈思AutoSec10周年年会
交流群
谈思10周年年会将深度挖掘汽车网络安全技术、数据安全合规难点、智能网联安全新挑战,通过实战案例拆解、沉浸式技术演示、圆桌对话,为行业提供更系统的安全解决方案与更精准的资源对接平台。
谈思-汽车出海安全合规(欧洲)
交流群
谈思 AutoSec Europe 峰会旨在搭建一个能融汇全球视野与中国实践、连接技术前沿与落地应用的国际性专业平台,以助力中国汽车应对在出海过程中面临的网络与数据安全合规痛点。从前沿技术研讨、合规要点解析到经验交流,都将通过本平台为您提供持续支持。社群已超过200人,需邀请加入,如需入群,欢迎添加社群小助手微信taaslabs01。
谈思-SDV&AIDV技术出海
交流群
诚邀行业同仁加入谈思SDV&AIDV出海技术交流群,聚焦软件定义汽车、AI定义汽车、下一代EEA、智能座舱、智能驾驶、软件架构、域控制器开发、芯片技术、软件工具等核心议题,欢迎大家加群交流探讨~~
end
精品活动推荐
AutoSec系列沙龙
专业社群
部分入群专家来自:
新势力车企:
特斯拉、合众新能源-哪吒、理想、极氪、小米、宾理汽车、极越、零跑汽车、阿维塔汽车、智己汽车、小鹏、岚图汽车、蔚来汽车、吉祥汽车、赛力斯……
外资传统主流车企代表:
大众中国、大众酷翼、奥迪汽车、宝马、福特、戴姆勒-奔驰、通用、保时捷、沃尔沃、现代汽车、日产汽车、捷豹路虎、斯堪尼亚……
内资传统主流车企:
吉利汽车、上汽乘用车、长城汽车、上汽大众、长安汽车、北京汽车、东风汽车、广汽、比亚迪、一汽集团、一汽解放、东风商用、上汽商用……
全球领先一级供应商:
博世、大陆集团、联合汽车电子、安波福、采埃孚、科世达、舍弗勒、霍尼韦尔、大疆、日立、哈曼、华为、百度、联想、联发科、普瑞均胜、德赛西威、蜂巢转向、均联智行、武汉光庭、星纪魅族、中车集团、赢彻科技、潍柴集团、地平线、紫光同芯、字节跳动、……
二级供应商(500+以上):
Upstream、ETAS、BlackDuck、NXP、TUV、上海软件中心、Deloitte、奇安信、为辰信安、云驰未来、信大捷安、信长城、泽鹿安全、纽创信安、复旦微电子、天融信、奇虎360、中汽中心、中国汽研、上海汽检、加特兰微电子、浙江大学……
人员占比
公司类型占比
文章
不要错过哦,这可能是汽车网络安全产业最大的专属社区!
首发!小米雷军两会上就汽车数据安全问题建言:关于构建完善汽车数据安全管理体系的建议
免责声明:
本文所载程序、技术方法仅面向合法合规的安全研究与教学场景,旨在提升网络安全防护能力,具有明确的技术研究属性。
任何单位或个人未经授权,将本文内容用于攻击、破坏等非法用途的,由此引发的全部法律责任、民事赔偿及连带责任,均由行为人独立承担,本站不承担任何连带责任。
本站内容均为技术交流与知识分享目的发布,若存在版权侵权或其他异议,请通过邮件联系处理,具体联系方式可点击页面上方的联系我。
本文转载自:谈思实验室 《芯片信息安全—安全启动》