汽车生态系统正在快速发展,新的连接技术将推动汽车进入物联网领域,其好处与威胁并存。随着每辆车的电子控制单元(ECU)的数量增加,以及汽车与互联网,用户以及彼此之间的连接,其复杂性和攻击面呈指数级增长。空中远程诊断和软件更新,紧急呼叫,互联网服务,车载支付,移动应用以及信息娱乐和交通信息等新功能都增加了车辆的攻击面。
汽车电子网络安全标准化白皮书(2018)中,通过对近年来出现的各类汽车安全事件的搜集、分析和整理,从车内到车外,按照基础元器件、关键软硬件设备、内部通信总线、车载操作系统及应用、外接终端和云服务平台6个层面来归纳汽车电子领域当前面临的主要安全风险。
在基础元器件层面,汽车中大量使用的传感器、处理芯片等本身就可能存在设计上的缺陷或者漏洞,诸如信号干扰、缓冲区溢出、缺乏签名校验机制等,可能在遭受攻击时影响汽车正常行驶功能,构成严重安全威胁。
本文将从最底层的汽车MCU来讲讲有哪些与security相关的功能。
如果对于信息安全不了解,推荐阅读以下文章。信息安全的概念和方法论。
什么是安全,安全有哪些属性或者要素,哪些措施可以来保证这些要素。安全不是一个点,它是一个整体概念,不仅是系统上的整体,还是时间跨度上的整体。
信息安全三要素
机密性,表示信息不能被未授权的主体获得。有主体,就有标志,有标志就需要认证;然后能访问和不能访问,就是授权的不同。
完整性,表示信息被未授权的主体修改后能被立即识别。广义的消息完整性还要保证信息来源的可靠,即主体可靠。那么自然也就需要标志,和认证。
可用性,表示被授权的主体,在需要的时候能够访问到信息。自然也是有主体,就有认证,然后授权他可以使用某种服务或者访问某种资源,比如信息。
公众号:STM32单片机STM32生态系统第十期——信息安全(一) 信息安全的概览和方法论
STM / NXP / Infineon汽车MCU 关于security方面的功能大同小异,本文以ST MCU来举例说明。
先上个图讲讲MCU和信息安全有关的内容。
(图片源自2019年意法半导体汽车微控制器技术日公开资料)
基本功能
生命周期 life cycle
基于生命周期模式的设备审查制度。MCU随着一系列定义的生命周期步骤逐渐成熟,对代码和数据的访问也会逐渐受到限制。设备寿命周期可以有5种可能的状态,在设备的不同寿命阶段,由意法半导体或客户递增编程。
ST production / ST生产: No security
Customer Delivery (ECU makers) / 客户交付(ECU制造商):Very limited security to guarantee the ECU development
OEM production (Car makers) / OEM生产(汽车制造商) :Limited security to guarantee the ECU development
In Field / 在现场(交付终端客户使用):Full security
Failure Analysis / 故障分析 :Limited security to guarantee theprotection of critical data but alsothe testability. The unit can't be runIn Field any more
根据设备生命周期值的不同,不同的安全机制可以处于启用或禁用状态。设备生命周期只能从ST生产逐步转到故障分析,不能向后退。
存储器安全功能
NVM censorship support, 支持非易失性存储器 审查功能
Censorship是一个整体控制,它可以启用和禁用两个独立的安全功能:调试接口访问和闪存读保护。
password protection, 密码保护
有四组密码,每组密码256位,可以对不同的flash扇区设置读写权限, 比如flash大小是4MBytes ,那么他会由很多16KB ,32KB,64KB,128KB,256KB等扇区组成。
one-time-programmable (OTP) flash memory areas, 一次性可编程闪存区
用户可以指定某些flash扇区为一次性可编程状态。一旦应用保护,flash扇区就不能再被擦除或重写。
Flash erase counter and tamper detection 闪存擦除计数器和篡改检测
防篡改检测模块(TDM)提供了一种类型的闪存写入保护机制。如果某一块flash被设置了“防篡改检测”功能,当要擦除这一块内容时,软件必须要先到预先设置好的某个区域写个特定值。
- 每个设备都有唯一的ID。
芯片都有一个唯一的识别号,存储在OTP闪存区。这个唯一的ID可以被设备上的任何一个内核读取。
调试器限制(debugger restrictions )
客户可编程硬件安全模块(HSM,Hardware Security Module ):一个专用的安全子系统,包括处理器内核、专用SRAM、加密模块。独家访问设备闪存的安全区域;HSM独立于主设备处理器内核运行代码,并可用于实现高级安全和监控功能
恩智浦和意法半导体多采用一个单独的基于PowerPC的内核,而英飞凌使用基于ARM cortex-M的一个单独内核作为HSM。
HSM旨在使用其内部和保留资源(例如,真正的随机数生成器TRNG,AES,SHA和PKC硬件引擎)执行加密操作。除了安全启动和保护对MCU调试接口的访问外,HSM的主要功能还包括为加密密钥提供安全存储,生成随机数以及使用对称和非对称加密算法对数据进行加密和解密。
为了让用户更加方便地使用这个HSM 内核,一般芯片厂商都会提供写好的固件供用户使用。用户只需要根据手册,发送相应的命令,就可以完成加解密等信息安全相关工作。比如意法半导体提供的HSM Firmware功能:
• SHE v1.1 specification and only for SPC58-HSM-FW extension for 20NVM user
Keys for AES128, AES256, RSA, ECC, HASH and HMAC
• AES-128, AES-256 bits. Supported modes are:
– ECB (Electronic Codebook Mode)
– CBC (Cipher-Block Chaining) with support for ciphertext stealing
– GCM (Galois Counter Mode)
– CMAC
• AES256 HASH and HMCA support services (only available for SPC58-HSMFW)
– MD5
– SHA-1
– SHA-224
– SHA-256
– SHA-384
– SHA-512
• Elliptic Curve
• RSA
– PKCS#1 v1.5 1024
– PKCS#1 v1.5 2048
– PKCS#1 v1.5 3072
• ECDSA
• ECIES
– NIST_P_256
– NIST_P_384
– NIST_P_521
– BRAINPOOL_P256R1
– BRAINPOOL_P384R1
以上提到的各种加密算法,有兴趣还请自己去查了。(真的是太复杂了)
留一个问题给大家,MCU以上这些功能如何对应到信息安全三要素,机密性/完整性/可用性?
参考文档:
1. CESI. 汽车电子网络安全标准化白皮书(2018).
http://www.cesi.ac.cn/201804/3790.html
2. DB3972 - Rev 1 - September 2019 SPC58-HSM-FW data brief
https://www.stmicroelectronics.com.cn/en/embedded-software/spc58-hsm-fw.html
3. 2019年意法半导体汽车微控制器技术日公开资料
https://www.stmicroelectronics.com.cn/content/st_com/zh/about/events/events.html/stmicroelectronics-automotive-mcu.html
4.各大厂芯片手册。
本篇到此结束,由于作者水平有限,出错难免,敬请指正。
长按指纹,选择“识别二维码”关注我
往期链接 简单说说汽车MCU会有哪些功能用以满足ISO26262功能安全要求车规芯片标准以及大厂车规MCU简介