新闻中心

EEPW首页 > 汽车电子 > 新品快递 > 以最小的系统影响高效率地实施CAN的安全通信

以最小的系统影响高效率地实施CAN的安全通信

作者:恩智浦时间:2018-03-19来源:电子产品世界收藏

  有效地实施通信安全是一个挑战,目前,基于数据有效负载的认证有各种不同方案,例如AUTOSAR SecOC[1]。这些解决方案采用了加密的方式,这意味着需要更高的带宽、更长的传输延迟和更高的处理能力,与此同时还需要管理加密密钥本身。

本文引用地址:http://www.eepw.com.cn/article/201803/377087.htm

  新推出的安全型收发器系列提供一种非常高效的无缝解决方案,无需加密即可保障通信安全。这样可以降低其他解决方案会面临的系统影响。

  认为,只要收发器具备分布式入侵检测和遏制方法,无需加密即可有效保障CAN通信安全[2]。另外,在发送和接收路径中采用CAN报文标识符(ID)过滤机制,将有助于防止和遏制诸如欺骗、远程帧篡改和泛洪拒绝服务等网络攻击。通过监视和过滤总线上的网络流量,安全型CAN收发器能够有效遏制电子控制单元(ECU)试图发送未授权的恶意报文的行为,从而为CAN总线提供安全保护。

  从安全角度出发,人们往往会选择使用尖端技术解决方案来防范安全威胁,比如基于加密和相关安全密钥管理的加密报文认证码(MAC)。各种安全微控制器也采用加密加速器来为这类最先进的解决方案提供硬件支持。但即便如此,这种解决方案对于保障CAN通信安全而言也并非始终是最有效率的。安全微控制器可用于保护多个CAN网络或其他网络(如以太网或LTE)上的端对端通信,实现安全启动、认证诊断和认证固件更新。

  不过,本文将要展示的是一种更高效率的CAN总线保护解决方案,那就是安全型CAN收发器。这种解决方案无带宽开销,而且对于配置和生命周期管理的需求极低。通过执行密码检查来验证报文真实性,势必会造成报文延迟、总线负载和计算能耗的增加。因此,这类解决方案可能会遭到抑制,或者造成如下折衷的结果:

  1. 只将报文认证码(MAC)应用于网络中的一小部分CAN报文

  2. 将超出合理限制范围的MAC和/或新鲜度值截短

  3. 可能存在无保护的宽限期[3]。

  当所选微控制器系列没有足够的计算能力来加解密CAN报文时,将会导致现有的电子控制单元设计无法升级。此外,整个车辆生命周期的密钥管理也会是一个复杂的挑战。最终,可能需要对整个系统进行从经典CAN到CAN FD的重新设计,以此补偿引入安全处理芯片SecOC所导致的总线负载增加,因此这种方案并非总是切实可行的。

  提供的方案能够在系统影响最低的前提下保护CAN总线,既可以为基于加密的安全解决方案增加一层保护以实现深度防御(DiD[1]),也可以作为独立的解决方案使用。无论是哪种情况下,安全型CAN收发器都能够有效提供强有力的保护并遏制黑客攻击。

  安全型CAN收发器的安全功能

  防范发送端欺骗

  安全型CAN收发器在发送路径中提供了一种方法来保护总线不受被破坏的电子控制单元的侵害,即根据CAN报文ID对报文进行过滤。如果电子控制单元试图用原来未分配给它的ID发送报文,安全型CAN收发器可以拒绝向总线发送该报文,使该报文失效,并拒绝执行后续发送。CAN报文ID的过滤对策可通过制造商可以配置的ID白名单来实现。例如,可以从白名单中排除ISO 14229标准针对非车载测试仪规定的统一诊断服务(UDS)ID。这样做可以防止被破坏的电子控制单元通过用另一个车载电子控制单元启动诊断会话来操纵校准值。

  防范接收端欺骗

  当接收到分配给用于发送的CAN报文ID时,一种补救保护措施就是使总线上的报文失效。这种方法意味着每个电子控制单元都可以在不法电子控制单元使用相同ID发送报文时保护自己的ID;比如,不属于汽车OEM制造商控制范围并因此没有配有发送白名单的安全型CAN收发器的售后器件。任何电子控制单元在总线上发送报文时,合法电子控制单元的安全型CAN收发器都可以通过向总线写入激活错误帧,主动使该报文失效。被破坏的发送方重复被骗报文16次后,暂停发送行为介入,限制被骗报文加重总线负载;然后,再重复16次以后,攻击电子控制单元会进入总线关闭状态。这一短暂的总线负载高峰可视为对策的负面影响。不过,只有当系统受到攻击时才会采取这种措施,因此不必过于担心。

  防篡改保护

  使CAN总线上报文失效的方法也可以用来预防篡改攻击。安全型CAN收发器可以检查总线上是否存在电子控制单元已经赢得其仲裁但已经停止在数据域中发送(因为在发送隐性位时收到显性位)的有效报文,以及该报文是否由篡改电子控制单元完成。这是有被破坏电子控制单元介入发送的明显标志。在电子控制单元的CAN控制器没有报告错误时的被动错误状态期间,这特别有价值。请注意,报文篡改将是绕过接收端欺骗防范的一种方法。

  防范泛洪攻击

  在发送端实施时,限制电子控制单元在单位时间内对整体总线负载,有助于防止总线遭到泛洪攻击。为防止泛洪攻击,可以使用漏桶机制。漏桶在报文发送时填充,并不断清空。一旦漏桶溢出,便停止后续发送。因此,泛洪攻击保护提高了总线的可用性,从而阻止混串音。为了使一个电子控制单元的报文猝发持续一定的时间,可以适当地设置漏桶容量。填充漏桶时可以将低优先级的报文排除,因为它们必将失去仲裁,不利于防止泛洪攻击。这样一来,诊断服务(如SW上传/下载)等便能以高速率交换低优先级的报文,而且不会触发泛洪保护。

  使用这些对策防止欺骗和篡改,无需克服密码协议和相关资产管理方法方面的障碍即可使发送方合法化。与最先进的解决方案相比,这种方案的破坏性比较低。此外,它还支持深度防御概念,可以使向不法电子控制单元发送被盗加密密钥的行为失效,因为该电子控制单元无法发送它可能用被盗密钥验证的报文的CAN报文ID。

  最先进解决方案对系统的影响以及安全型CAN收发器的价值

  为了通过最先进的解决方案使报文合法化,需使用基于加密的有效载荷认证,例如使用AUTOSAR SecOC。在原始未受保护的有效载荷中补充报文认证码(MAC)和参数,以标识报文的新鲜度。报文认证码基于加密算法和共享密钥进行计算。报文的新鲜度用于重播保护,它可以确保重复的有效载荷拥有不同的新报文认证码。

  注: 经认证的有效载荷采用普通或加密格式,但会以相同的方式处理以达到验证目的。推荐的安全实践要求将加密和认证分开,例如对每个操作使用不同的共享密钥。因此,在下面的讨论中,我们将有效载荷加密视为不相关的。

  对CAN网络应用基于加密的有效载荷认证解决方案时,产生的值可能会受到下面将讨论的几个因素影响。相关程度取决于安全设计和体系架构——因此下述因素并非全都适用于每一位读者的情况。

  安全通信启动延迟

  在系统上电(或点火)之后,需要一定的时间来协调和调整即将到来的经认证报文的新鲜度属性。这段时间会造成对第一批重要报文的认证准备发生延迟。尽管有不同的方法可供使用,但通常都会涉及到相关电子控制单元之间的少量或大量有效载荷交换的协议。例如,可以就安全的时间分配或安全的单调计数器同步达成一致。另一种方法是在每次启动时刷新共享密钥,并使用重置的新鲜度值。但是,考虑到点火后电子控制单元的重启周期数可能会出现不可预测、异步和不相等的情况,因此协议将是复杂的,比较耗费时间。不可预测性可能来自发动机启动时潜在的功率损失,而不相等则是由于功率损失不同所导致。AUTOSAR定义了一个宽限期[3]来应对这个问题,但是当关键报文没有受到保护时,将导致点火后出现一段延迟(或者由于攻击而强制重启)。

  在稍后的稳定时期刷新密钥不失为一种替代方案。这样可将复杂性转移到单调计数器的管理上,但也可能导致其他问题,比如非易失性存储器磨损或者计数器在混乱的上电状态下失去同步。

  恩智浦的安全型CAN收发器可确保总线上任何受保护的报文(包括最开始的报文)都是合法的。

  增加总线负载和带宽

  如果通过增加总线负载来传输附加参数(如MAC和新鲜度值),则带宽需求也会随之增大。附加参数的大小会影响安全级别,或另一总线负载的消耗速率。NIST[4] 建议MAC至少为64位(即:8字节),这对于经典CAN而言损失相当大。新鲜度计数器的大小决定了密钥的刷新速率,或一些其他安全型基本计数器/新鲜度同步的速率。

   此图显示了带宽开销。它对500 kbps条件下的经典CAN报文与11位CAN报文ID的传输时间进行了比较。最初的普通有效载荷在灰色区域,相应的值对应不同的认证参数[计数器 + MAC](括号中的值以字节为单位)。

  以圈红处为例:假设一个普通的经典CAN报文的无保护报文有效载荷为16位,那么2字节的计数器和5字节的MAC用于可接受的保护,总线负载增大2.5倍。

  图1 认证带宽开销

  图中的数字仅指报文认证开销,不包括运行管理协议刷新密钥或新鲜度值时可能增加的总线负载。

  恩智浦的安全型CAN收发器无需传输任何附加位即可在经典CAN和CAN FD协议下正常工作。

  增加处理器负载和功能延迟

  额外的功能延迟可能来自额外的缓冲区或中断处理以及与硬件加速器之间的通信,而不是在生成和认证期间计算MAC所导致。额外的处理负载会降低应用的性能。附加位在总线上的传输时间也会以图1中总线开销的数量级增加。如图1所示,16位无保护报文有效载荷需要172 μs,而有效载荷受保护的同一报文需要436 μs。分布式车辆功能的功能延迟和实时行为取决于当前的架构和车辆设计。

  恩智浦的安全型CAN收发器可独立于微控制器保护CAN通信,不会增加任何延迟。

  增加软件复杂性

  CAN控制器负责管理TX缓冲区或TX队列,从而使应用从复杂的管理和中断处理任务中脱身。在汽车应用中,处理不同优先级的报文是很常见的。不同的部分(如软件线程)彼此之间并行运行。它们在CAN驱动器或CAN控制器中使用不同的TX缓冲区或TX队列。应用部分或线程将报文传递给CAN驱动程序或控制器的顺序不一定对应于报文在总线上出现的顺序。对于使用全局新鲜度值(例如全局同步时间)的已认证报文,总线上的顺序必须遵循用于计算报文认证码的新鲜度值的顺序。否则,它将被视为旧报文或者被接收器重播。等待赢得仲裁的待处理CAN报文有效载荷中已经包含报文认证码和新鲜度值。因此,应用提供的任何更高优先级的报文都将使所有待处理报文的新鲜度和相关认证失效。这意味着CAN控制器的TX缓冲区和TX队列已经耗尽,应用不能再简单地向CAN控制器发送任何报文。此外,它需要设计为重新计算在等待传输的无效报文的认证,这为应用增加了额外的处理任务并且增加了系统延迟。

  恩智浦的安全型CAN收发器属于纯硬件解决方案。

  需要密钥管理

  任何基于加密的解决方案都依赖于密钥的使用,或对称或不对称。适当的密钥管理通常比较复杂,需要付出极大的努力,而这一点往往会被低估。考虑到用于实时通信的有效载荷认证与高性能要求,通常会采用对称加密,即共享密钥。系统的安全级别在一定程度上取决于共享密钥的保护和特权。通过设计,密钥应当具备有限的专用特权,以便降低密钥本身(密钥被盗)或使用过程中(虽以安全方式存储但为被破坏的应用所利用)的安全漏洞影响。在这两种情况下,应用都将获得密钥特权,亦即未经授权的访问特权。

  每个车辆的密钥都应该是独特或多样化的,这样即便车辆A的密钥被盗也不能授予对任何其他类似车辆的等同功能的访问权——这就是所谓的车队攻击应变力。在制造和车辆生命周期中,需要特别考虑密钥特权的分配以及密钥的创建与分配。可以部署每个车辆和功能的静态多样化密钥,并在更换模块期间维护用于密钥注入的中央数据库。或者,也可以选择为每个电子控制单元的角色分配密钥使用扩展证书和非对称加密证书,让车辆动态分配或重新分配密钥。Diffie-Hellman (DH)协议有时会被理解为分配密钥的标准方式,但这是不够的。该协议可保证密钥在两个实体之间秘密交换,但并未指出交换密钥的具体实体。这意味着,攻击者也可以加入DH会话并获取有价值的相关密钥。后者需要通过额外的流程来验证另一方,如不对称证书方案。因此,用于有效载荷认证的对称密钥管理可以转化为车辆内的证书管理和动态使用。

  整个汽车生命周期的密钥管理策略选择是多种多样的,但需要具体的想法和部署工作。而且,传统的密钥管理解决方案可能无法直接应用于汽车行业。密钥管理策略可能取决于上述其他方面的设计选择,例如上电后的新鲜度管理。

  恩智浦的安全型CAN收发器无需加密即可高效运行——因此无需任何复杂的密钥管理。

  结论

  基于加密的最先进解决方案

  - 需要某种形式的密钥管理

  - 需要一种方法在启动时处理新鲜度值以实现重播保护

  - 可能会造成认证准备发生延迟,即存在一个宽限期

  - 会引入传输延迟,用以计算报文认证码

  - 增加总线负载以传输附加参数(即:MAC和新鲜度值)

  - 占用发送方和接收方应用的处理周期,并最终

  - 可能会增加发送方应用架构的复杂性,以根据报文优先级和新鲜度值对待处理的发送操作进行排序,即:新的较高优先级报文可能由于新鲜度值重新排序而使得待处理的低优先级报文的认证码失效

  恩智浦提出的概念仅仅依靠安全型CAN收发器即可实现。该器件完全独立于微控制器(µC)单独运行。这意味着它具备固有的安全级别,并且是专门以将系统影响降至最低为前提而设计的,因此能够克服CAN协议规范中缺少发送方身份的问题。该器件可以逐步(逐个电子控制单元)引入网络,不会影响其他电子控制单元,也不会影响报文延迟、总线负载或增加处理器负载。实施的欺骗保护机制可确保目标电子控制单元(即:报文接收器)接收到的受保护报文都是由预期的发送方发送。另外,总线会在点火之后立即受到保护——我们的对策不需要任何初始化(各个电子控制单元)或同步(总线上的多个电子控制单元)操作。

  这种安全型CAN收发器可以作为当今标准CAN收发器的硬件替代产品,无需更换电子控制单元上的主要硬件和软件,并且不会影响其他电子控制单元的运行。因此,本文所述方案提供了一种快速、省力、非破坏性且具有高成本效益的方式来向CAN总线中引入安全性—既可以作为独立的保护机制,也可以为其他安全解决方案增加第二道安全防线。

  参考文献

  [1] AUTOSAR SecOC——模块安全板载通信规范

  https://www.autosar.org/fileadmin/user_upload/standards/classic/4-3/AUTOSAR_SWS_SecureOnboardCommunication.pdf

  [2] iCC 2017——网络安全增强型CAN收发器(恩智浦)

  https://www.can-cia.org/fileadmin/resources/documents/conferences/2017_elend.pdf

  [3] [ECUC_SecOC_00051] SecOCEnableForcedPassOverride

  https://www.autosar.org/fileadmin/user_upload/standards/classic/4-3/AUTOSAR_SWS_SecureOnboardCommunication.pdf

  [4] SP 800-38B:推荐的分组密码操作模式:CMAC认证模式

  https://csrc.nist.gov/publications/detail/sp/800-38b/final

  [1] DiD是一种在整个系统中实施多层安全对策的概念。这样,可以在其中一种安全对策失败或漏洞被成功利用的情况下发挥冗余的作用。通过DiD,可以为攻击者设置多重障碍防止其攻破,从而提升整个系统的保护强度。



关键词: CAN 恩智浦

评论


相关推荐

技术专区

关闭