# 从车灯模组的角度聊聊信息安全需求

1. 前言

最近在和一些车灯客户交流时,发现很多车灯项目都多了信息安全的需求,为了进一步了解信息安全的需求,笔者收集了信息安全相关的文档进行学习和梳理。
下文是笔者自己整理的信息安全需求,并从车灯模组的角度增加了一些看法。如有不对的地方,欢迎指出。

2.信息安全需求

本章节主要从硬件安全、系统安全、通信安全、数据安全四个方面介绍下信息安全的需求,重点介绍硬件安全和系统安全。

2.1 硬件安全

硬件安全主要关注的是PCB板的保密措施和关键芯片的加密功能。

2.1.1 接口安全
  • 量产阶段,调试接口(如JTAG,SWD等)不宜直接暴露在PCB板上,如果无法避免,建议改为测试PIN方式分散布置。
  • 量产阶段,调试接口需要设置安全的身份验证,身份验证的口令至少为8位,且必须包含数字、大小写字母。

对于车灯模组来说,需要注意的是主控MCU的调试接口,其他的外围芯片基本不涉及到代码读取。

2.1.2 主板安全
  • 量产阶段,主板上的关键芯片(如主控芯片、硬件加密芯片、收发器等)、端口和管脚功能的标识丝印需要去除。
  • 芯片间敏感数据的通信线路应尽量隐藏,对抗针对控制器内部数据传输的窃听和伪造攻击。
  • 主板上的关键芯片采用可靠焊接封装(如BGA、CSP),防止关键芯片被拆下读取芯片内部信息。
2.1.3 芯片安全

为保证整车的网络安全,需考虑硬件级的安全加密,一般选择集成了FULL EVITA等级的HSM模块的MCU,如果使用的MCU没有加密模块,可以外接一个车规级别SE芯片,该SE芯片至少可提供如下接口:

  • AES128算法接口
  • 对称密钥存储接口
  • SHA256算法接口
  • RSA2048算法接口
  • 非对称密钥存储接口
  • 真随机数获取接口

主要芯片及加密芯片需满足抗攻击保护,满足:

  • 使用必要的安全机制,防御针对芯片的电压、时钟的单次故障注入攻击;
  • 使用必要的安全机制,防御针对芯片的电磁、激光的单次故障注入攻击;
  • 使用必要的防护措施,对抗针对加密芯片的侧信道简单功耗分析(SPA)攻击;
  • 使用必要的防护措施,对抗针对加密芯片的侧信道一阶差分功耗分析(DPA)攻击;
  • 使用必要的防护措施,对抗针对加密芯片的侧信道相关功耗分析(CPA)攻击。

EVITA(E-safety Vehicle Instruction Protected Applications)项目定义了可用于汽车网络信息安全领域的HSM(Hardware security module)的相关规范,针对不同的硬件能力将其分为Full、Medium和Light HSM。EVITA官网有对应的分类表,如下所示。

EVITA HSM 分类表

不同等级的HSM模块以及SHE(Secure Hardware Extension)支持的详细功能对比如下:

EVITA HSM level(来源:CSDN@ppyang395942297111)

2.3 系统安全

系统安全主要关注的是整个系统的软件代码的真实性和完整性,以及如何防止软件泄露的措施。

2.3.1 代码安全

系统开发过程中对代码进行安全扫描或分析,并提供代码扫描报告。
对核心功能相关代码实施代码混淆、加固,防止被逆向分析。

车灯模组使用的MCU一般都是M0,M4内核的,代码相比BCM,网关等不算复杂,不太需要安全扫描。如果是高端车型需要做ADB,这部分算法目前比较复杂,建议实施代码混淆、加固。

2.3.2 软件读保护

在代码存储区增加外部读保护机制,对固件进行保护,防止被窃取。

2.3.3 安全启动
  • 保证可信根安全;
  • 对bootloader、应用程序的真实性和完整性进行校验,防止被恶意篡改。
2.3.4 安全升级
  • 对要升级的应用层程序进行来源合法性和完整性校验;
  • 对flash驱动进行真实性和完整性校验。
2.3.5 安全诊断
  • 应支持适配新的诊断、刷写的安全访问算法;
  • 禁止开放未定义的诊断服务。

2.4 通信安全

通信安全关注的是ECU之间如何保证关键消息的可靠传输。

  • 关键数据需要加密传输和消息认证,保证消息来源的合法性和完整性。
  • 消息认证需要符合车厂的SecOC(Security Onboard Communication)规范

对使用速率较高的CAN FD通信的ECU,车厂会要求一些关键数据在传输时先进行对称加密然后再传输加密后的消息。目前前灯模组逐渐开始使用CAN FD通信,但是车厂并不强制要求通信安全

2.5 数据安全

数据安全关注的是关键信息的安全存储。

  • 重要数据和个人敏感信息应实现安全存储和隔离,防止未经授权的访问、篡改、删除和检索;
  • 实现重要数据和个人敏感信息的安全传输,保证其机密性、完整性和可用性。

车灯模组主要的诉求要保存用于加密重要数据的密钥,使用带HSM模块的MCU或者外挂的SE芯片,都是支持该功能的。

3. 安全启动流程

随着车规MCU自带的加密模块功能变丰富之后,安全启动(Secure Boot)也变得更加容易实现。如下是安全启动的流程示意图。

安全启动流程示意图

MCU上电之后,先运行可信引导程序。可信引导程序会去验证bootloader对应区域的数据是否被篡改,即验证bootloader的真实性和完整性。如果Bootloader验证成功,就跳转到bootloader,然后由bootloader验证应用程序的真实性和完整性。应用程序验证成功后,就跳转到应用程序,至此整个安全启动流程就结束。

对于带硬件加密模块的MCU来说,可信引导程序一般通过加密模块进行使能以及配置需要验证的bootloader的大小。如S32K144的Secure boot,需要通过CSEc模块进行使能;S32K3的Secure boot功能由HSE模块负责。推荐阅读如下文章:

对应上述安全启动流程的方案有三种,如下所示,接下来详细介绍下这三种方案。

  • 基于签名技术的安全启动方案
  • 基于对称签名技术的安全启动方案
  • 基于CMAC技术的安全启动方案

3.1 基于签名技术的安全启动方案

方案框图如下:

基于签名技术的安全启动方案

生产阶段:

MCU在出厂前,对bootloader和应用程序的bin文件分别使用Hash算法(SHA256选用较多)得到概要值(或称为完整性度量值),然后使用私钥和RSA2048算法对概要值进行签名,最后将bin文件、签名之后的概要值以及公钥一起烧录到MCU中。

安全启动阶段用到的私钥,其生成、存储和运算由汽车零部件供应商负责,汽车厂商不参与。

启动阶段:

MCU上电之后,可信引导程序开始运行,根据预先保存的bootloader的地址信息,通过Hash运算得到bootloader的概要值1。然后使用预先保存的公钥对bootloader的签名概要使用RSA2048算法进行验签,得到概要值2。最后将概要值1和概要值2进行比较,如果一样,MCU就跳转到bootloader运行,否则就一直保持复位或者其他车厂要求的状态。

bootloader运行之后,根据预先保存的应用程序的地址信息、公钥、签名概要,执行和可信引导程序一样的操作,验证应用程序的真实性和完整性。

3.2 基于对称签名技术的安全启动方案

方案框图如下:

基于对称签名技术的安全启动方案

生产阶段:

MCU在出厂前,对bootloader和应用程序的bin文件分别使用Hash算法(SHA256选用较多)得到概要值(或称为完整性度量值),然后使用密钥和对称算法(不低于AES128)对概要值进行加密得到MAC值,最后将bin文件、MAC值以及密钥一起烧录到MCU中。

MAC:Message Authentication Code,消息身份验证代码。

启动阶段:

MCU上电之后,可信引导程序开始运行,根据预先保存的bootloader的地址信息,通过Hash运算得到bootloader的概要值1。然后使用预先保存的密钥对bootloader的MAC值使用对称算法(不低于AES128)进行解密,得到概要值2。最后将概要值1和概要值2进行比较,如果一样,MCU就跳转到bootloader运行,否则就一直保持复位或者其他车厂要求的状态。

bootloader运行之后,根据预先保存的应用程序的地址信息、密钥、MAC值,执行和可信引导程序一样的操作,验证应用程序的真实性和完整性。

3.3 基于CMAC技术的安全启动方案

方案框图如下:

基于CMAC技术的安全启动方案

生产阶段:

MCU在出厂前,对bootloader和应用程序的bin文件分别使用密钥和CMAC应用的算法(不低于AES128)得到各组的CMAC值,然后将bin文件、CMAC值以及密钥一起烧录到MCU中。

CMAC:Cipher Block Chaining-Message Authentication Code,也简称为CBC_MAC,它是一种基于对称密钥分组加密算法的消息认证码。

启动阶段:

MCU上电之后,可信引导程序开始运行,根据预先保存的bootloader的地址信息,使用预先保存的密钥对bootloader的BIN文件使用CMAC算法(不低于AES128)得到CMAC值1,然后将预先保存的CMAC值和CMAC值1进行比较,如果一样,MCU就跳转到bootloader运行,否则就一直保持复位或者其他车厂要求的状态。

bootloader运行之后,根据预先保存的应用程序的地址信息、密钥、CMAC值,执行和可信引导程序一样的操作,验证应用程序的真实性和完整性。

4. 安全升级流程

安全升级和传统的升级方式相比,主要是验证应用程序的真实性和完整性的方法更加完善了,一般采用3.1-3.3中的任意一种方式即可。下面只介绍下基于签名技术的安全升级方案,其他两种方案就不赘述了。

4.1 基于签名技术的安全升级方案

方案框图如下:

基于签名技术的安全升级方案

生产阶段:

客户只需要将车厂分配过来的公钥和BIN文件一起烧录进MCU即可。

私钥的生成、存储和运算有主机厂负责。

升级阶段:

零部件厂商登录车厂指定的网站,提交更新后的应用程序的BIN文件,车厂审核通过后,会从云端下发到车身网关。在这个过程中,应用程序的BIN文件也增加了对应的签名概要(如上图左框部分)。

车身网关将BIN文件和签名概要通过CAN/LIN总线传输给对应的ECU节点。ECU中的MCU会对BIN文件进行
Hash和验签操作,然后将得到的签名概要和传输过来的签名概要进行比较,如果一样,就升级传输过来的应用程序,否则放弃此次升级并删除传输过来的应用程序。

5. 参考资料


如果觉得本篇文章对你有用, 不妨给个一键三连!!!

  • 2
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
### 回答1: 车灯Simulink建模是指利用Simulink这一工具,对车辆的车灯系统进行建模仿真。车灯系统是车辆的重要部件,用于提供照明和信号指示功能,包括前照灯、后尾灯、刹车灯、转向灯等。 建模的过程包括以下几个步骤: 1. 创建模型:在Simulink中创建一个新的模型,并将车灯系统作为一个子系统导入。 2. 定义输入:确定模型的输入信号,例如车辆刹车踏板、转向灯开关等。这些信号会触发车灯系统的功能。 3. 设计逻辑:根据车辆灯光系统的逻辑功能,使用逻辑运算、条件判断等Simulink提供的功能模块来设计车灯的控制逻辑。例如,刹车踏板踩下时会触发刹车灯的亮起,转向灯开启时会触发相应方向的转向灯灯光操作。 4. 配置参数:对车灯模块进行参数配置,例如灯泡的功率、亮度等参数。 5. 仿真和调试:使用Simulink的仿真功能,进行对车灯系统的功能进行验证和调试。根据输入信号的变化,观察模型对应输出灯光的变化情况。 6. 优化和改进:根据仿真结果,对模型进行优化和改进。可以根据实际需求调整车灯系统的控制逻辑,提高系统的性能和可靠性。 通过Simulink建模,可以更直观地理解和掌握车灯系统的工作原理和控制过程。同时,Simulink提供了丰富的功能库和仿真环境,便于车灯系统的建模、仿真和调试工作,提高了开发效率和结果的准确性。这有助于设计师在开发过程中更好地理解、分析和改进车辆灯光系统的运行情况,提高系统的性能和可靠性。 ### 回答2: 车灯Simulink建模是使用工程软件Simulink来对车辆照明系统进行建模和仿真的过程。Simulink是一种基于图形化编程的软件,它可以帮助工程师快速构建复杂的系统模型,并进行验证和优化。车灯Simulink建模可以帮助我们更好地了解车辆照明系统的工作原理,并且可以用于系统设计、性能分析以及故障诊断。 在车灯Simulink建模中,首先我们需要对车辆照明系统的各个部件进行建模。例如,前灯、尾灯、转向灯等组成了整个车辆照明系统,我们可以使用Simulink中的各种模块来表示这些部件。然后,我们需要将这些部件按照实际的电气连接方式进行连线,以模拟真实的电路连接。 接下来,在Simulink中设置各个车灯部件的参数和控制逻辑。例如,我们可以设置前灯的亮度、尾灯的亮度、转向灯的闪烁频率等等。另外,还可以根据车辆的行驶状态来控制车灯的开启和关闭,例如行车、刹车、转弯等情况。 完成设置后,我们可以进行仿真和测试。通过在Simulink中模拟车辆的各种工况和电气参数变化,我们可以观察车灯的表现和响应,以评估照明系统的性能。同时,我们还可以测试不同的控制逻辑和参数设置,以优化车灯的工作效果。 总之,车灯Simulink建模是一种有效的工具,可以帮助我们更好地理解和设计车辆照明系统。通过使用Simulink,我们可以模拟车灯的工作原理,优化控制逻辑,提高照明系统的性能和可靠性。 ### 回答3: 车灯模型的建模可以通过Simulink实现。车灯模型通常包括信号发生器、开关、车灯控制器和车灯组成。 首先需要使用信号发生器来模拟车辆的电压信号,可以选择正弦波、方波或脉冲等信号波形。将信号发生器的输出连接到开关,开关模拟了车辆的灯光控制开关。开关的状态可以设置为打开或关闭。开关的输出连接到车灯控制器。 车灯控制器是一个控制系统模型,根据开关状态控制车灯的开关。当开关为打开状态时,车灯控制器会将车灯开关打开,使车灯亮起。当开关为关闭状态时,车灯控制器会将车灯开关关闭,使车灯熄灭。车灯控制器的输出连接到车灯车灯模型可以通过Simulink的模型编辑器进行建模。首先从Simulink库中选择信号发生器、开关、车灯控制器和车灯组件。然后将它们按照逻辑顺序连接起来。可以使用信号线将输出和输入端口连接起来,表示信号流动的路径。 在连接完所有组件后,还可以自定义组件的参数和输入信号波形。可以选择合适的车灯控制逻辑,例如使用开关状态来控制车灯的开关。可以设置车灯的亮度和闪烁频率等参数。 最后,在模拟前需要设置仿真时间和采样时间等参数。然后点击Simulink模型编辑器上的开始仿真按钮,即可开始仿真车灯模型。可以通过观察仿真结果,检查车灯的开关行为和亮度变化是否符合预期。 总之,使用Simulink建模可以方便地模拟车灯的开关行为和亮度变化。可以通过选择合适的组件和参数,以及连接它们来实现车灯模型的建模。通过仿真可以验证模型的正确性和可靠性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Auto FAE进阶之路

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值