如何安全实现车载网络通信?
扫描二维码
随时随地手机看文章
当我告诉人们我从事专注于汽车安全的半导体行业时,他们通常认为一定会涉及汽车报警和车钥匙。尽管汽车盗窃仍是一个合理的担忧,但与内部电子控制单元(ECU)及其车内外通信相关的安全威胁明显更大。在今年销售的所有新车中,大约有50%的车辆支持联网功能,很多人估计到2030年,这一数字将达到95%左右。这些连接通过Bluetooth®、USB、LTE、5G和Wi-Fi®等实现,可为消费者提供诸多便利,但由于受攻击面显著增加,黑客也同样感到兴奋。在Google上快速搜索黑客攻击汽车的主题,将搜索到无数个实际安全漏洞,这些漏洞会引起费用高昂的召回、诉讼,并导致品牌声誉受损。事实上,软件容易出现漏洞,而这些漏洞会被黑客利用。可以通过很多做法最大程度地减少漏洞并在检测到漏洞后采取纠正措施;但是,只要人们编写新代码,就会引入新漏洞。
入侵汽车控制器局域网(CAN总线)是黑客的共同目标。在之前的一些黑客攻击中,黑客能够先后利用蓝牙及汽车操作系统中的漏洞通过CAN总线远程篡改报文。现代汽车可能拥有多达100个ECU,其中很多安全关键型ECU通过总线通信。CAN总线具有诸多优点。它使用一种低成本、极其稳健且相对不易受到电子干扰的简单协议,因此是安全关键型节点彼此通信的可靠选择。缺点在于,数十年来,这项协议一直没有任何安全措施,这意味着黑客一旦成功入侵,他们便能发送伪造的报文,导致车载通信遭到严重破坏。例如,开/关雨刷、关闭头灯、通过操纵音频分散司机注意力、生成虚假仪表板报警、显示错误的速度、移动座椅甚至将车驶离道路。好消息是,随着CAN FD的出现,报文有效负载中预留了额外的字节来存储报文验证代码(MAC),可用于以加密方式验证报文的真实性,滤除所有伪造的报文,从而提高安全性。有两种MAC可供选择:基于哈希算法的HMAC或基于AES对称密钥分组密码的CMAC。绝大多数情况下实现的都是CMAC。
OEM一直忙于更新其网络安全规范以应对发生的所有黑客攻击。几乎所有OEM都需要升级安全关键型ECU来实现其全新网络安全要求,其中一些OEM需要升级全部联网ECU。基础安全模块用于实现涉及加密验证的安全引导:主机控制器上运行的引导和应用程序代码保持不变,在上电和复位时处于可信状态,并且通常在引导后按照规定的频率重复执行。紧随其后的要求是支持安全固件更新。回顾一下,所有软件都会产生漏洞;因此,通常需要创建可现场应用的固件漏洞补丁。此外,这些固件更新还需要加密安全实现,它们通常需要使用对称(AES)密钥对传入固件有效负载进行加密并使用非对称私钥对其进行签名,最常见的私钥是椭圆曲线加密(ECC)。这样一来,向主机控制器提供升级映像时,在通过控制器中嵌入的ECC公钥验证有效负载的签名前,不会执行任何操作。完成签名验证后,即可解密映像,控制器固件通过漏洞补丁或功能增强进行升级。安全演变之路上增加的第三项措施是上述报文验证。
电动汽车领域的独特之处在于对电池验证的需求不断增加。大多数电池组都在较大的电池组内部设计了可更换的电池模块,因此当其中一个模块发生故障时,只需更换该故障模块,无需更换整个电池组或处理性能不佳的电池组。设计不佳的模块可能成为安全隐患,导致车辆起火;因此,OEM必须加强生态系统管理,这意味着每个模块都必须以加密方式进行验证,确保模块制造经审查通过OEM认证,之后模块才能在电池组中正常工作。不引发火灾但性能欠佳的模块会损害OEM品牌声誉,从而引起负面新闻和收入损失。这是对模块制造商的来源进行加密验证的另一个原因。
对一个模块进行加密验证意味着什么?加密验证的实现方式是使用客户特定的x.509证书链以及基于惟一ECC密钥对的惟一设备级证书设置用于配置器件的客户特定签名密钥。配置好的器件安装在每个电池模块上。当电池组中更换某个电池模块时,电池管理系统(BMS)(也称为电池网关)将向模块询问其惟一X.509证书,并一直验证签名链直至可信根。完成签名验证后,使用相关私钥进行签名的模块面临一项挑战,即在不通过总线发送的情况下(某些情况下通过RF发送)证明已获知机密信息。模块级用例到此为止。在BMS内,OEM通常需要更复杂的用例。由于BMS/网关是连通外界、向云端提供例行电池健康状态报告的通信点,因此安全用例扩展为包含安全引导、安全固件更新和传输层安全(TLS),以便与云端建立安全的通信通道。
此处探讨的所有安全实现都需要安全密钥存储,而此类存储只能通过真正的硬件安全实现。通过微型探测、故障注入、电磁边信道攻击、温度/循环上电/电源毛刺和时序攻击等执行一些标准攻击,即可轻松从标准单片机,甚至许多所谓的“安全单片机”中提取密钥。因此,选择合适的器件来执行加密重任,防止密钥遭受此类攻击至关重要。专用安全器件提供各种架构并被不同的术语引用,例如片上和外部硬件安全模块(HSM)、安全元件、安全存储子系统、密钥库和智能卡等。这些器件必须包含针对上述攻击的防篡改功能以保护其安全存储器中的密钥。
但是,一级供应商或OEM如何验证实现的安全性足够出色?安全元件供应商证明其安全价值的最佳方法是将器件提交给第三方进行漏洞评估。第三方应获得北美认可的美国国家标准及技术研究所(NIST)、德国认可的联邦信息安全局(BSI)或全球认可的信息系统安全高级官方合作组织(SOGIS)等可信机构的认证。SOGIS认可的实验室采用全球公认的联合解析库(JIL)漏洞评分系统,这套系统需要“白箱”评估,即提交IC的供应商必须提供有关器件设计(数据流、子系统和存储器映射定义)、硬件和固件启动序列、安全保护机制说明、完整数据手册、安全和自举程序指南文档、所有可用代码(RTL和C级、加密库和固件)、算法实现、编程脚本、通信协议、芯片布局以及源代码的实验室文档。实验室随后将查看所有文档,制定针对所提交样片的攻击计划。评分系统根据提取机密信息密钥花费的时长、所需的专业知识水平(应届毕业生一直到专家)、对评估对象(TOE)的了解、对TOE的访问(执行一次成功攻击需要的样片数)、黑客攻击设备的复杂程度和成本以及访问样片的难易程度进行打分。得到的JIL评分依次为无评级、“基本”、“增强基本”、“中等”和“高”,其中“高”评级是能够实现的最高评分。JIL“高”评级以下表示实验室能够从器件提取私钥。获得JIL“高”评级的Microchip CryptoAutomotive™ TrustAnchor100(TA100)外部HSM等器件能够承受超过3个月的攻击,达到这一时间后,实验室将宣布器件遭到的攻击“无效”。
片上还是片外,这是个问题。通过32位双核MCU等片上解决方案升级前一代ECU的成本高昂,而在OEM要求实现真正的安全之前,标准MCU即可完全满足前一代ECU的要求。如果要求完全重新构建应用程序代码,这些片上解决方案还会显著推迟上市时间。内部开发安全代码需要承担极高的风险,而交给第三方处理则要支付高昂的费用。此外,一级供应商也很难将此类解决方案大量应用于多种类型的ECU,因为每种类型都有不同的性能和外设要求。在这种背景下,外部HMS或配套安全元件能够帮助一级供应商极大地减轻安全升级负担。它们可以添加到现有设计中的标准MCU旁边,也可以集成到具有不同主机MCU要求的所有新设计中。TA100等外部HSM预先配置了全部安全代码、密钥和证书,可显著缩短上市时间。给定与MCU无关的相关加密库后,便可轻松移植到任何MCU。外部HSM可降低风险、缩短上市时间及减少总成本,为一级供应商提供了一条领先于完全重构方案的竞争对手、获得商业成功的捷径。
由于当今很多车辆支持联网功能且车载网络通信量很大,因此对车辆安全的需求明显远超车辆报警。由于安全和品牌声誉不容有失,因此在升级ECU时,请务必选择经过第三方审查的真正安全器件,以满足众多全新OEM网络安全规范、SAE、ISO标准和地方政府的安全要求。