点击上方蓝字谈思实验室
获取更多汽车网络安全资讯
安全启动(Secure Boot)是讨论信息安全必不可少的部分。安全启动确保执行程序的可靠和安全。在实际的工程开发中,安全启动的细节需要留意,本文就安全启动的一些细节,做一些补充。
01
Secure Boot功能的核心模块
基于Davinci开发HSM时,开发Secure Boot功能需要vHsm_Core模块,如下所示:
其中,"CryptoPrimitives"中的vHsmSecureBoot是实现该功能的关键。关于Secure Boot的具体工程开发实践。
02
信任链(Chain of Trust)
安全启动的主要任务是确保执行程序的可靠性,即:程序没有被非法篡改。所以,软件启动过程中就需要对运行的每个进程进行完整性(integrity)校验。这个校验(validation)过程,一般基于Tags比对,这个Tags可以是CMAC、Hash、Signature,甚至CRC都可以。但是,需要确保Tags的安全性,即:Tags需要存储在可信区域,eg:TEE(Trused Execution Environment,可信环境)。
工程上的做法:Tags存储在HSM所属的NvM中。如果是第一次启动,自动将目标Secure Groups的Tags信息存储在NvM中。其中,Secure Groups与内存的关系如下所示:
(一)信任锚(Hardware Trust Anchor)
既然安全启动要确保执行的每个程序可信性,那么,信任链就会有一个信任的启点,即:信任锚(HTA)。工程上,一般选择对称密钥或者非对称密钥中的公钥作为信任锚,示意如下:
03
信息安全开发QA
Q1:开发阶段,有必要是使能安全启动吗?
A1:可以不使能。我们知道:安全启动过程中,会对执行的每个进程进行校验(Verify),校验过程就会涉及到密钥。但是,开发并不一个工程师的单打独斗,而是不同工程师的协调配合,这个过程中,参与开发的工程师会不断的编译和调试软件,如果密钥不对或者被擦除会使得的程序无法启动,而这会给非信息安全工程师带来极大的困扰。所以,在软件开发的初期,可以不使能安全启动。
Q2:HSM是否可以在启动阶段自动校验?
A2:可以。对需要自动校验的Secure Groups使能"Autostart"功能,配置如下:
而且,自动校验功能可以添加Autostart条件,Autostart条件激活配置如下:
Q3:如何结束安全启动校验?
A3:可以使用KeyElementSet()接口disable对应Group或者Segments的校验。Key Element设置为CRYPTO_KE_CUSTOM_VHSM_SECURE_BOOT_END。也可以使用KeyElementGet()接口校验安全启动的结果。
end
精品活动推荐
专业社群
部分入群专家来自:
新势力车企:
特斯拉、合众新能源-哪吒、理想、极氪、小米、宾理汽车、极越、零跑汽车、阿维塔汽车、智己汽车、小鹏、岚图汽车、蔚来汽车、吉祥汽车、赛力斯......
外资传统主流车企代表:
大众中国、大众酷翼、奥迪汽车、宝马、福特、戴姆勒-奔驰、通用、保时捷、沃尔沃、现代汽车、日产汽车、捷豹路虎、斯堪尼亚......
内资传统主流车企:
吉利汽车、上汽乘用车、长城汽车、上汽大众、长安汽车、北京汽车、东风汽车、广汽、比亚迪、一汽集团、一汽解放、东风商用、上汽商用......
全球领先一级供应商:
博世、大陆集团、联合汽车电子、安波福、采埃孚、科世达、舍弗勒、霍尼韦尔、大疆、日立、哈曼、华为、百度、联想、联发科、普瑞均胜、德赛西威、蜂巢转向、均联智行、武汉光庭、星纪魅族、中车集团、赢彻科技、潍柴集团、地平线、紫光同芯、字节跳动、......
二级供应商(500+以上):
Upstream、ETAS、Synopsys、NXP、TUV、上海软件中心、Deloitte、奇安信、为辰信安、云驰未来、信大捷安、信长城、泽鹿安全、纽创信安、复旦微电子、天融信、奇虎360、中汽中心、中国汽研、上海汽检、软安科技、浙江大学......
人员占比
公司类型占比
原文始发于微信公众号(谈思实验室):基于Davinci的HSM开发实践(13):安全启动细节补充
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论