目录
在聊完车载信息安全需求之后,势必要去看看应用场景有哪些。根据之前的开发经验简单聊一下我知道的,还有很多没有讲,比如说车云之间具体如何进行信息安全防护,SOC上不同操作系统的虚拟化安全边界等等,所以这里抛砖引玉,聊聊之前做过的一些内容。
1.车内安全通信
目前整车的网络通信仍然以CAN/CANFD和车载以太网通信为主,通信架构如下:
CAN/CANFD在设计之初就没有考虑其安全设计,通信交互主要靠ID Filter,报文有效性主要靠checksum和rollingcounter,没有身份认证和通信加密机制;黑客可以很轻松地通过OBD口或者T-Box伪装CAN 报文,对车辆进行控制,造成人身财产安全损失。
基于此,AUTOSAR提出了SecOC通信,其整体框架如下:
以安全PDU接收为例,CAN FD报文通过If层经由PduR路由到SecOC模块,SecOC调用CSM服务对数据进行AES-CMAC校验,校验成功通知SecOC -> PduR ->Com。
SecOC MAC值的生成和验证原理如下:
原始PDU经过SecOC模块的处理后,形成完整的安全PDU,其组成如下:
原始PDU数据+截取的新鲜度值(图上CNT)+截取的MAC值。
引入新鲜度值Freshness以防止重放攻击,引入MAC值以保证身份认证,总线的安全PDU仍采用明文传输。
车内的车载以太网OSI参考模型如下:
传输层:在TCP/UDP级别上的以太网通信使用TLS来建立安全传输:
网络层:使用IPsec,保护任意参与IP网络的双方链接,如下图所示:
链路层:MKA机制实现在MAC层的数据加密、完整性真实性检查、重放保护以及密钥管理,MKA涵盖了IEEE802.1AE-2018和IEEE-802.1X-2020两个协议规范,前者定义了以太帧的数据封装、认证和加密的数据格式;后者定义了密钥管理和交换的协议。
如下所示:
2.车云安全通信
车云通信包括近端通信、远程通信和云端通信三类,如下图所示:
近端通信:是指蓝牙、NFC等移动设备与车辆进行通信,针对蓝牙的入侵手段有:漏洞攻击、劫持、窃听等方式;针对NFC入侵手段有复制车辆钥匙等。常见保护方式为使用PIN码认证;
远程、云端通信:常见入侵手段包括:伪基站、伪装中断、数据篡改\窃听\重放等,常见手段为加固车端硬件防火墙和云端访问控制,对OTA下发升级固件进行加固、加密认证等方式;采用TLS和证书管理,实现车端、云端的身份双向认证、通信数据加密、完整性保护等。
3.安全启动
安全启动主要是通过建立信任链,保证每个程序在加载运行前均通过数据完整性真实性验证。同样的,安全启动分为MCU启动和SOC两种。
- MCU安全启动
以英飞凌TC3xx安全启动为例,芯片厂在兼顾启动速度和身份认证的情况下,提供了三种启动方式:顺序启动、并行启动、混合启动。
Tricore首先启动触发HSM CPU进行启动,并在跳转至用户代码之前选择是否等待HSM对APP、Data和OS等程序的校验结果,从而实现了顺序、并行等启动方式。
- SOC安全启动
以Intel 某SOC的安全启动为例:
BootROM作为信任根是整个系统最先启动,初始化完成后用于后续验证镜像文件的公钥,并对其进行自检。确认公钥的合法性后,BootRom 使用公钥对 Bootloader验签。验签完成并确认 Bootloader 完整性后,将BootLoader加载至RAM运行;Bootloader进一步对OS或者APP进行验签,从而实现安全启动。
SOC除了安全启动,还存在可信启动;可信启动依赖安全启动的验签,主要是用于验证当前固件版本信息是否授信;在可信启动的过程中,通常将使用度量的概念,将度量值保存至TPM的PCR中,由平台裁决当前固件的版本信息是否在白名单内,以此达到版本管理的作用。
4.车载应用程序保护
车内应用程序敏感信息包括程序代码本身、车主个人信息、汽车里程数据、VIN码、车型控制码、加密\解密密钥等。
对于MCU来说,通过芯片内部独立安全岛(即HSM)建立Secure Domain和Non-Secure Domain进行保护:
Secure Domain建立存储区,存储敏感信息
对程序本身进行真实性完整性验证,
使用OTP或者受保护Flash的方式对上述数据进行保护。
一般来讲,对于SOC来说,需在REE建立多层安全防护:
Kernel使用对象访问控制、MMU技术,
中间件采用应用签名认证、权限管理或是沙盒等
除此之外,采用ARM TrustZone建立TEE,为REE提供安全服务。
5.入侵检测防御与日志管理系统
入侵检测与防御系统主要是负责收集信息安全相关数据、文件系统完整性检测、报文流量监测、防火墙以及信息安全日志等。
结合CP的入侵检测及AP的入侵检测、防火墙、日志管理,总结出架构如下:
CP中的IdsM负责Eth和CAN帧的流量检测,AP侧的防火墙和IDS事件可通过SPI、核间通信告知日志管理系统收集和分析安全事件日志。
日志系统中的log和trace的完整性、机密性和完整性就显得尤为重要。
- 因此需要采用访问控制机制,管理日志写入权限;
- 采用加密的形式保证log的机密性,
- 日志传输到云端需要采用加密和签名的保证保证其数据的完整性和真实性。
往期回顾: