汽车里的通讯鉴权—Sec OC

出品 | 焉知
知圈 | 进“电子电气群”请加微13636581676,备注架构
什么是SecOC?
SecOC是Secure Onboard Communication的简称,是AUTOSAR从Classic Platform 4.2开始新增的一个基础软件(BSW)模块,为汽车嵌入式网络总线上的数据传输提供身份验证功能。
为什么需要SecOC?
SecOC的释放是为了更好的保障汽车通讯(尤其是车内ECU间通讯)的网络安全(Cyber Security)。近年来网络安全越来越受到人们的重视。汽车市场上也发生过因为网络安全漏洞而召回的事件,其造成的经济损失数以百亿计,品牌形象亦深受损害。因此整车厂商和下游供应商均投入越来越多的研发成本用于网络安全。
图:Automotive Cyber Security 2019
传统汽车电子架构下,车内ECU数量和复杂度有限,通讯带宽也受限,一般认为车内ECU间的通讯都是可信的,也就是只要ECU节点收到相应的报文,就会对之处理。而随着汽车的电子化和互联网化,这种默认的车内通讯变得越来越不安全。设想如果总线上的某个ECU被劫持,假冒其他ECU发出诸如刹车、加速、转向等信号,而车辆动力控制相关的ECU照单全收,那么车辆就会完全失控了。如果在车辆物理总线上接入一个新的网络节点,用于假冒,也可以造成同样的问题。早前建立的Alivecounter和checksum算法等基本E2E保护可以在一定程度上保证数据完整性,防止数据丢失或篡改。这个手段在应对电子电气随机失效的功能安全领域上起了重要作用,但在专业黑客面前简直不堪一击。原因是Alivecounter位数较少(counter一般不超过16),checksum算法定义也较为简单。
图:传统ECU间通讯易被篡改
一种更加安全高效的算法亟需实现,以鉴别PDU发送方是否合法,通讯数据有没有被篡改。
致力于建立统一汽车软件架构的AUTOSAR组织当然也十分重视该问题,并在Classic Platform 4.2中开始提出了SecOC模块。SecOC是Secure Onboard Communication的缩写,其中Onboard指的是汽车上。(相对应的Offboard一般指诊断仪或者云端等非车端节点)。顾名思义,SecOC是用于保障车内通讯安全的。它可以防止传输的信息被篡改,但并不能防止被窃听。
怎么实现SecOC?
软件功能逻辑
SecOC的主要功能,对数据发送方来说就是为原本需要传输的PDU内容添加相应的安全校验信息;而对数据接收方来说就是验证安全信息,确认所收到数据的完整性和认证性。至于原本想要传输的数据,依然是采用明文传输的,所以SecOC本身并不能实现通讯的保密性,也就是不能防止被窃听。
如下图所示,Secured I-PDU是发送方SecOC处理后的数据内容。Authentic I-PDU是原需传输的报文内容,Freshness Value是防止重放攻击的新鲜值,Authenticator是加密的校验信息。值得注意的是,不管Secured I-PDU本身是否包含新鲜值,Authenticator里都需要包含新鲜值的信息。同时SecOC规定了报文采用大端格式传输,以保证加密信息通讯一致性。
Authenticator可以用对称加密或者非对称加密的方式。采用对称加密方法时,Authenticator也叫Message Authentication Code (MAC)。若用非对称加密,则Authenticator常被 叫为Digital Signature。行业中普遍采用对称加密的方式实现SecOC。原因是在实现相同的安全等级下,对称方法所需的密钥长度较小,软硬件效率更高。
图:SecOC功能逻辑
新鲜值是为了防御重放攻击的,要求是单调递增的变量。其可以是一直计数递增的counter,也可以采用系统时间。但不管用哪种方式,接受方和发送方之间都得采用相同的新鲜值基准。例如采用系统时间作为新鲜值,则需要通讯双方的系统时间是同步的。
有时由于传输负载率的限制,新鲜值和校验信息也会被截位传输。如下图所示,Secured I-PDU只包含新鲜值和校验值的保留部分。当然截位传输会降低安全等级,但一般情况下,64位长度的对称加密校验值就可以抵御暴力破解。
图:截位传输示意图
下图以一条PDU采用SecOC方式对称安全传输为例,描述了发送和接收的总体过程。
(1)原需传输的数据(此处对应下图PDU)、单调递增的新鲜值以及对称密钥K作为输入,给到MAC生成模块,生成MAC,将新鲜值和校验信息截位后组装到原需传输数据的尾部,形成Secured I-PDU。
(2)整个Secured I-PDU通过ECU间的传输协议(比如CAN FD、Ethernet),从发送方传输给接收方。
(3)接收方将Secured I-PDU作拆解,针对截位的新鲜值,利用上一周期的历史计数将其补全,作为MAC校验模块的输入。另外拆解出来的PDU、对称密钥K和截位MAC也作为校验模块的输入。MAC校验模块通过这些输入计算确认MAC的有效性,如果验证通过则把PDU传输给上层应用的软件模块,如果校验失败,则将PDU丢弃。
图:SecOC收发机制原理
AUTOSAR基础软件模块
上面描述完SecOC的功能逻辑,接下来我们看一下AUTOSAR Classic Platform架构下的基础软件模块实现方式。
SecOC软件模块与PDUR平行,都在大的通讯组内。PDU可以理解为总线上的报文,PDUR则是将不同的总线上的报文路由给其他软件模块或者上层的应用软件组件。而在SecOC应用中,PDUR会先把报文路由给SecOC模块。下图红色方框内的COM模块负责将数据整合到PDU中。IF模块负责收发原子报文,TP模块负责长于原子报文长度的数据发送拆包、接收重组。CAL或者CSM模块负责提供具体的加解密服务,以及特殊安全内存的访问等操作。发送时,上层应用软件通过RTE将信号传输给SecOC模块完成Authenticator的生成。接收时,SecOC校验Authenticator,若不通过则丢弃,否则将相应信号通过RTE传输给上层应用。
图:SecOC与其他基础软件的交互
硬件及固件要求
网络安全对控制器的硬件和固件也有相应的安全要求,以保证系统能有足够能力防御软件攻击,并提供可认证的可信软件环境。SecOC也不例外。这个硬件和固件要求一般实际体现为需要处理器芯片有片上的安全硬件拓展,并提供相应的固件支持,常见的是SHE(Secure Hardware Extension)和HSM (Hardware Security Module)。其中HSM的安全等级更高。对SecOC功能来说,SHE就可以满足HIS(Hersteller Initiative Software,由奥迪、宝马、保时捷、大众组成)的要求。
图:SHE架构
图:HSM架构
总结
在软件定义汽车的年代,车辆互联网化背景下的网络安全方兴未艾,大有可为。而SecOC为汽车网络安全提供了一个身份验证和完整性校验的选择,对防止数据篡改能提供重要作用。作为相对成熟的一种技术手段,SecOC在软件、硬件、固件方面都有系统性的考量,在今后一段相当长的时间里,必定会更加广泛地被使用,越放异彩。
参考来源:

工程师必备
- 项目客服
- 培训客服
- 平台客服
TOP
