我们生活在一个高度互连的世界,很容易受到各种来源的网络攻击。仅2018年,硬件攻击让超过30亿系统暴露在数据盗窃、非法操作和其它安全隐患中1。
在汽车领域,如今的智能联网汽车则加剧了这类安全问题。若网络攻击造成汽车失控不仅会对目标车辆中的人员造成伤害,更有可能危及附近的车辆、行人和财产。
因此,汽车的设计人员和厂商正极力寻找保障系统安全之道。正如本文所述,解决方法之一是采用莱迪思半导体的MachXO3D™ FPGA。
老式汽车时代已经过去
汽车市场在不断演变,近些年来的变化尤其剧烈,变化速度极快。
以微处理器单元(MPU)和微控制器单元(MCU)为主的计算器件在20世纪七八十年代晚期开始应用于汽车。起初,这些芯片用作复杂的引擎控制系统,只在高端车辆中使用。到九十年代中期,所有的汽车都拥有处理器来监控传感器、控制引擎以及管理各种车辆系统之间的交互。
到2020年,一辆普通的车约有50个计算单元,而一辆高端汽车的计算单元可达100多个。如今的汽车不仅装备了GPS、蓝牙、Wi-Fi、移动数据通信,还拥有道路偏离和碰撞预警等高端安全系统。许多汽车应用都采用了传感器聚合来实现拥有人工智能和机器学习功能的雷达、激光雷达和机器视觉系统。一些汽车还能一键停车,诸如此类的功能越来越多。
人们对电动车非常有兴趣。世界上主要的汽车厂商都在大力投资电动汽车。此外,人们对氢燃料汽车也抱有极大热情,目前至少有三款此类车型面世,还有几家公司也正在研发新的车型。
感觉不够安全?
除了拥有50-100多个计算单元外,如今的汽车与外界的连接也越来越多。在该语境下,“连接”指车辆能与自身之外的其他系统进行双向通信。这让车辆能够与内外部的设备分享网络连接和数据。
通用汽车是首家将互连特性推向市场的汽车制造商,1996年推出了OnStar系统。2001年又推出了远程诊断功能。2003年,互连汽车服务包括了汽车健康报告、逐向道路导航和网络访问设备。2007年又推出了Telematics服务。到了2017年,车队运营商开始见证预测性智能功能的首次部署。
在软件环境下,“攻击面”是指未经授权的用户可以输入数据或从环境提取数据的所有切入点的总和。问题在于,拥有50-100多个计算单元的联网汽车会为黑客和恶意攻击者提供很大的攻击面。
根据美国国家标准和技术研究院,安全解决方案的主要考虑是建立可信根:
现代计算设备由多层抽象的各类硬件、固件和软件组件组成。当前,许多安全和保护机制都植根于软件中,而软件与所有底层组件都必须可靠才能保障安全。由于安全机制依赖这些组件,因而组件上任何一个漏洞都可能损害这些机制的可靠度。将安全机制建立在可信根,则可以更大程度上保证安全。可信根是高度可靠的硬件、固件和软件组件,它们可以执行特定的、至关重要的安全功能。由于可信根本身受到信任,因此必须在设计时确保它们的安全。许多可信根都是在硬件中实现的,因此恶意软件无法篡改其提供的功能。可信根为建立安全和信任提供了坚实的基础。
不受保护的系统可能导致数据和设计盗窃、产品克隆和过度生产。更糟的是,安全性能不够完善的系统很容易遭到设备篡改和劫持。
市场上的FPGA厂商数量很少,且大多数主要专注提供超多资源、功能和高性能的器件。这些器件主要用于大型通信基础设施、服务器农场和数据中心等。相比之下,莱迪思半导体是唯一一家专注中小型FPGA的厂商,这类器件非常适合许多汽车应用。此外,莱迪思还提供市场上仅有的小于10K查找表且拥有NIST认证的、不可更改安全引擎的FPGA。
MachXO3 FPGA系列FPGA介绍
莱迪思提供各类FPGA技术。一款非常适合部署在汽车应用中的FPGA就是MachXO系列。
初代MachXO系列于2005年上市。2010年又推出了MachXO2/ZE™系列,随后2013年和2019年又分别推出了MachXO3L/LF™和MachXO3D™系列。在产品的发展历程中,每一代新产品不仅继承了前代专为客户需求打造的特性,还对资源和功能进行了拓展。
与前几代MachXO FPGA产品类似,MachXO3™器件拥有低功耗特性、大量LUT资源以及大量输入/输出(I/O)。此外,还器件还支持瞬时启动和热插拔功能,拥有后台可编程内部闪存配置存储器,支持现场逻辑更新。因而MachXO3器件是粘合逻辑、总线桥接、总线接口、马达控制、上电控制以及其他各类控制逻辑应用的理想选择。此外,由于MachXO3 FPGA拥有数百个I/O,因此也非常适合需要通用I/O扩展、接口桥接和上电管理等功能的各类应用。
图1. MachXO3 FPGA占据平台控制主导地位,是系统最先上电,最后断电的器件。
MachXO3LF系列器件拥有最多9400个LUT和384个I/O,可提供各类设计场景所需的各种功能。该系列器件可选3.3/2.5 V或低功耗1.2 V内核,提供多个I/O bank(最多6个),支持热插拔以及各种信号标准和电压、可对每个引脚进行编程。-40°C至+125°C的拓展温度(结温)范围可应对严酷的汽车环境, AEC-
Q100 Grade 2认证确保了该器件满足现有的汽车质量行业标准。
除了提供基于闪存的配置存储器之外,MachXO3LF系列还提供多达448 Kb的用户闪存(UFM)。此外, 在上电时,配置数据将从闪存配置存储器复制到基于SRAM的配置单元中(不要与用户SRAM存储器的存储模块混淆)。该操作以大规模并行方式执行,不到5毫秒即可完成。这种方法的巨大优势在于,将新配置加载到闪存配置存储器中时,器件可以使用其基于SRAM的配置继续运行。新配置加载完毕后,可以在程序控制下暂停器件运行,锁定输出,将新配置复制到SRAM配置单元中,然后释放器件继续运行。。
随着工艺制程的不断发展,集成电路的结构越来越小,而影响当今所有电子设备的一个共同问题就是辐射。常见的一种由于辐射引发的效应就是单粒子翻转(SEU),即高能放射性粒子撞击电路中的敏感节点,从而改变其状态。例如,寄存器位或存储单元从0翻转到1或从1到0。由于SEU可以纠正,因此被视为“软错误”。FPGA由于有配置单元的缘故,其SEU问题不可小觑。
毫无疑问,汽车应用的安全性能至关重要。为应对辐射效应以及电气噪声环境(如汽车上的电气噪声)
MachXO3LF系列支持软错误检测(SED)、软错误校正(SEC)和软错误注入(SEI)。
图2. MachXO3LF的简化框图,展示了软错误检测和校正过程
SED模块是构建在芯片上的硬核,它可以计算SRAM配置位的循环冗余校验(CRC),将计算出的CRC 与当前配置相关的现有CRC进行比较,在出现不匹配时标记错误。在可编程逻辑中实现的SEC软核会响应该标记,触发后台的重新配置核,调用存储在配置闪存中的初始配置来更新SRAM配置单元(重新配置不会中断任何未受影响的进程)。
最后,用户可以使用SEI功能,在不修改CRC的情况下,通过JTAG、I2C或SPI直接将错误注入目标SRAM配置单元来模拟软错误事件。
MachXO3D FPGA系列简介
汽车行业目前正采取类似服务器行业的安全策略,包括供应链安全、安全启动(确保固件启动的代码是受信任的)和平台固件保护恢复(PFR)。
如前所述,MachXO3LF汽车FPGA作为业界领先的可编程逻辑器件,能够灵活部署可靠的汽车应用。MachXO3D汽车器件不仅大大提升了闪存容量(最高2693 Kb UFM),还新增了硬件安全特性,为汽车系统带来符合NIST标准的安全性能。实际上,MachXO3D是10 K LUT以下唯一一款拥有NIST认证的不可更改的安全引擎的器件。
MachXO3D作为硬件可信根是系统最先上电、最后断电的器件,此外,它的不可更改的安全引擎还能实现ECDSA、ECIES、AES、SHA、HMAC、TRNG、唯一安全ID和公钥/私钥生成等预验证的加密功能。不可更改的安全引擎以及莱迪思最新发布的固件安全解决方案集合——Lattice SentryTM均能在产品的整个生命周期内保障安全,包括器件制造和运输、平台制造、安装、运行直至报废。它还提供数据安全、设备安全、数据验证、设计安全和品牌保护,全面防止各类威胁,保障系统安全。
图3. MachXO3D安全控制FPGA是系统最先上电、最后断电的可信根可编程逻辑器件
根据NIST SP 800 193标准的定义,平台固件保护恢复(PFR)包括了保护、检测和恢复三部分。保护是指保护平台固件和关键数据不受损坏,确保固件更新的可靠性和完整性。检测包括在系统首次上电时加密检测受损的平台固件和关键数据以及跟进在系统更新。恢复则包括执行可信的恢复进程,将受损平台固件和关键数据恢复到之前的状态。
MachXO3D器件提供安全双引导等功能,完全满足PFR的要求。MachXO3D的可编程逻辑、不可更改的安全引擎和安全的双引导配置模块,在设计实施过程中提供足够的灵活性,且能在部署系统后实现安全更新。除了本身提供硬件可信根外,片上逻辑的使用还极大地减少了网络攻击的攻击面。
图4. MachXO3D的双引导功能完全满足NIST平台固件保护恢复标准的要求
MachXO3D采用自我检测、自我恢复和自我保护功能,实现安全的实时系统更新,进一步满足NIST PFR的要求。自我检测时,安全引擎会在启动前使用安全存储在芯片上的公钥对现有的片上配置镜像进行身份验证。自我保护是指如果新下载的镜像身份验证失败,则安全引擎会自动还原到现有已经过验证的“黄金镜像”。自我保护时,除了防止器件使用受损的镜像进行自我配置之外,可编程逻辑还控制来自编程端口的访问,该锁定策略可确保每个闪存存储具有单独的访问权限,并且当新的镜像文件处于传输状态(加载到配置闪存的过程中)时,安全引擎会阻断所有来自配置端口的攻击。
典型应用案例
以下展示了MachXO3和MachXO3D在汽车中的三种常见应用案例:电池管理、可信根和基于硬件的安全启动。
•电池管理:如今包括电动车在内的大多数系统都有多节电池。电池组中的每节电池都需要充电到合适电量来确保电池的使用寿命。过充或充电不足都有可能缩短电池寿命。
电池管理系统执行各种任务,包括防止电池在不安全的环境下运行、监视电池状态、计算辅助数据并上报该数据。
基于MachXO3的电池管理系统(BMS)是一个控制器,监控充电和放电过程,实现智能的电池单元平衡,保证每个电池单元的充电均衡。此外,BMS还提供实时电池信息,例如电池的充电状态(SOC) 和健康状态(SOH),从而协助车辆的应用处理器(AP)向驾驶员提供最新信息。
图5. 基于MachXO3的电池管理系统
使用MachXO3D FPGA来实现BMS能为系统提供额外的安全性能,防止对智能电池的入侵导致电池突破安全极限,对电池或者车辆造成永久性破坏或严重故障。
•信任链/可信根:硬件可信根是保护整个汽车系统(包括所有引擎控制单元)的信任链中的首个环节。
从组件供应商开始,汽车系统供应链还包括Tier 2系统开发人员、Tier 1系统集成商、OEM汽车制造商、分销和运输、经销商以及最终客户。在整个供应链中,入侵系统的攻击点有许多,有可能在这些环节加载损坏的固件。
Lattice SupplyGuard™供应链安全服务为客户提供工厂锁定的IC。这些IC只能使用特定客户开发、签名、加密的配置位流进行编程。
图6. 基于MachXO3D的供应链/可信根
此外,MachXO3D FPGA的双引导功能支持密钥加密和以及系统可默认设置、高度安全的黄金镜像。系统上电时,瞬时启动的MachXO3D、黄金镜像和莱迪思SupplyGuard三者共同提供了端到端的供应链保护。
基于硬件的安全启动:MachXO3D FPGA是汽车系统中首个上电的器件,也是最后断电的器件。系统上电后,MachXO3D会自我检查以确保只运行经过身份验证的固件。MachXO3D还检查系统中其他器件的相关固件。
图7. 基于MachXO3D的安全启动
MachXO3D FPGA的硬件安全配置模块符合NIST SP 800 193平台固件保护恢复(PFR)标准,在出现恶意攻击时,能够保护、检测自身并恢复到完好状态。此外,可编程架构的的大规模并行处理能力让MachXO3D能够同时保护、检测和恢复多个平台固件。
结论
MachXO3 FPGA基于闪存的配置提供了“瞬时启动”功能,使其成为平台上首个上电、最后断电的器件,并在系统控制和电源管理功能市场中占据主导地位。
汽车应用的安全性是第一位的。为应对辐射效应以及电气噪声环境(如汽车上的电气噪声),MachXO3LF系列支持软错误检测(SED)、软错误校正(SEC)和软错误注入(SEI)。
MachXO3D汽车器件不仅大大提升了闪存容量(最高2693 kb UFM),还新增了硬件安全特性,为汽车系统带来符合NIST标准的安全性能。
MachXO3D FPGA通过硬件可信根功能增强了安全性。OEM和汽车制造商可以通过MachXO3D FPGA为所有系统组件轻松实现可靠、全面、灵活的基于硬件的安全机制。MachXO3D FPGA可以在系统运行时进行保护、检测并从未经授权的固件访问中恢复自身和其他组件。此外,MachXO3D FPGA可以和SupplyGuard服务共同保护系统在生命周期的各个阶段(从制造到报废)免受恶意活动的损害。
下一代MachXO3D FPGA让汽车更安全WP0027C除安全领域外,由于FPGA拥有全面的并行处理能力,因此成为实现各种先进的驾驶辅助系统(帮助驾驶员实现驾驶和停车功能的电子系统)的理想之选。许多ADAS系统都需要实时响应,MCU太慢,而定制的SoC开发昂贵且费时。此外,SoC的硬件加速器算法实际上是“冻结在芯片中”,这在各类标准和协议不断发展并不断变化时代无疑是不合适的。理想的解决方案是使用FPGA,它具有极高的灵活性,并且可以重新配置来适应不断发展的标准、协议和功能要求。
MachXO3D FPGA为当今日益复杂和互连的汽车应用提供了功能和安全性的完美结合。
1 https://www.technologyreview.com/2018/01/05/146411/at-least-3-billion-computer-chips-have-the- spectre-security-hole/
2 预计2021年一季度实现全面认证
评论
查看更多