针对汽车远程无钥匙进入系统的新型重放同步攻击的缓解策略

摘要

汽车远程无钥匙进入(RKE)系统为车主提供了一定的便利性,使他们无需使用机械钥匙就能锁定和解锁车辆。如今的远程无钥匙进入系统采用一次性滚动码技术,每按一次遥控钥匙按钮所产生的信号都是唯一的,这有效防范了简单的重放攻击。然而,此前一种名为 RollJam 的攻击被证实能突破所有基于滚动码技术的系统。攻击者通过精心设计的信号干扰、捕获与重放序列,能够获取尚未使用的下一个有效解锁信号。但 RollJam 攻击需要持续部署设备,直至成功实施攻击,否则,若车主在未受 RollJam 干扰的情况下再次使用遥控钥匙,之前捕获的信号便会失效。

本文提出了一种名为 RollBack 的新型重放同步攻击,该攻击可针对当今大多数远程无钥匙进入系统。研究表明,即便滚动码系统中的一次性密码失效,连续重放之前捕获的若干个信号,仍能触发远程无钥匙进入系统中的回滚机制。也就是说,滚动码会重新同步到过去使用过的某个密码状态,从该状态起,后续所有已使用过的信号将再次生效。此外,在攻击前后,车主使用遥控钥匙时不会察觉到任何异常。

与 RollJam 不同,RollBack 完全无需进行信号干扰。实际上,它仅需一次信号捕获操作,之后便可在未来任意时间多次实施攻击。这种与时间无关的特性对攻击者极具吸引力,尤其在汽车共享或租赁场景中,获取遥控钥匙信号变得轻而易举。不过,尽管 RollJam 几乎能突破所有基于滚动码的系统,但部分车辆可能配备了额外的防盗措施,以应对遥控钥匙故障,这些措施也可能对 RollBack 攻击起到防范作用。我们通过众包数据对不同品牌和型号的车辆进行分析后发现,在亚洲地区,约 50% 的受测车辆易受到 RollBack 攻击,而在欧洲、北美等其他地区,该攻击的影响范围相对较小。

1、引言

一个多世纪以来,汽车行业经历了巨大的变革。自 20 世纪 80 年代初起,汽车的效率和多功能性不断提升,制造商还在汽车中集成了越来越多被称为电子控制单元(ECU)的嵌入式计算机,以增强汽车的安全性、稳定性、诊断功能和舒适性等。一方面,这种从传统机械控制向全数字控制的范式转变,已被证明具有显著优势;另一方面,计算机化的车辆也带来了一系列新的攻击面。

远程无钥匙进入(RKE)系统是早期提升汽车舒适性的发明之一,它无需物理钥匙,车主只需使用遥控钥匙就能远程锁定和解锁车辆。由于远程无钥匙进入系统自 20 世纪 80 年代初就已应用于商用车辆,因此它一直是(且至今仍是)攻击者的主要目标之一。远程无钥匙进入系统利用无线射频信号进行通信,由于所需指令数量有限(如锁定、解锁),且更重要的是,由电池供电的小型遥控钥匙在功耗和资源方面存在限制,所以遥控钥匙与车辆之间的通信设计得较为简单。部分系统可能会采用加密技术,以防止信号被窃听(即捕获和解码信号)或篡改攻击(即将锁定信号篡改為解锁信号)。然而,即便信号经过加密,重放这些信号也并非难事。如今,许多远程无钥匙进入系统仍采用静态码来实现遥控钥匙对车辆的控制。因此,攻击者只要捕获到加密的 "解锁" 信号,就能通过重放该信号,在任意时间进入车辆。

为应对这类简单的重放攻击,滚动码(即跳码)技术应运而生。在该技术中,特定的密码(如 "解锁" 密码)具有一次性使用的特性,即仅能使用一次。简而言之,每按一次遥控钥匙上的按钮,遥控钥匙和车辆接收端的计数器都会递增,使得下一次生成的密码可在未来使用。也就是说,已使用过的密码会被下一个新密码作废,从而有效防范重放攻击(见图 1 (a))。

图1、(a) 滚动码技术核心:每个信号都是唯一的,且会被下一个信号作废;(b) 对滚动码系统安全机制的 "直接利用"

需要注意的是,若遥控钥匙发送了信号,但车辆未接收到,该信号也会被视为未使用。例如,当车主在车辆接收范围之外不小心按下了解锁按钮(比如钥匙放在口袋里时误触,或者小孩把玩遥控钥匙时按下),就会出现这种情况(图 1 (a) 中 "解锁密码 n+2" 和 "n+3" 所展示的场景)。为避免在这类情况下出现同步失效,导致车主无法进入车辆,基于滚动码的系统设置了一项安全机制:允许遥控钥匙的计数器比车辆接收端的计数器超前一定步数。实现这一机制的方式是,车辆接收端会维护一组有效的 "未来密码",而非单一密码。当接收到的遥控钥匙密码与这组 "未来密码" 中的任意一个匹配时,车辆接收端会将自身计数器同步到遥控钥匙最后一次发送信号时的密码状态,并作废该组 "未来密码" 中所有之前未使用过的密码(见图 1 (a) 中 "解锁密码 n+4")。显然,若攻击者能获取这些未使用的 "未来密码"(即捕获车主在车辆接收范围外误按遥控钥匙所产生的信号),并且在车主再次使用遥控钥匙之前重放该密码,就能成功进入车辆(见图 1 (b))。然而,在实际情况中,获取这些 "未来密码" 难度极大,尤其是当攻击者试图随机攻击目标车辆时。正因如此,这种安全机制被视为一项实用功能,它能让遥控钥匙的使用更加流畅,减少不必要的麻烦。

2015 年,一种名为 RollJam 的复杂攻击技术被证实可破解基于滚动码的遥控钥匙系统。简而言之,攻击者通过精心设计的信号干扰、捕获与重放操作序列,能将滚动码系统的安全机制转化为可被利用的漏洞。

RollJam 攻击基于四个核心 "原理":(i)捕获解锁信号;(ii)同时对车辆接收端所在的频段进行干扰,阻碍信号的正常接收;(iii)利用车主的二次尝试作为备用机制;(iv)及时重放之前捕获的信号,这一点至关重要。为此,攻击者会使用一种专用设备(以下简称 RollJam 设备),该设备在遥控钥匙和车辆之间充当中间人代理和信号干扰器(见图 2 (a))。具体过程如下:通过(ii)干扰第一次解锁信号的接收,诱导受害者(iii)再次按下遥控钥匙的解锁按钮。与此同时,设备会(i)捕获第一次和第二次解锁信号;但在干扰第二次信号接收时,RollJam 设备会迅速(iv)重放第一次捕获到的信号。最终,车辆会执行预期操作(即解锁),而车主会误以为第一次信号接收失败是由于信号质量不佳。然而,攻击者(通过 RollJam 设备)却获取了下一个有效的解锁信号(详见第 2.3 节)。因此,当车主停止使用车辆并离开后,攻击者便可通过重放该信号进入车辆。

图2、(a) RollJam攻击对时间高度敏感:必须追踪下一个有效的未使用密码;(b) 一种RollBack攻击变体,仅需在任意时间捕获两个信号

不过,RollJam 攻击存在两个主要缺陷。首先,若车主在未受 RollJam 设备干扰的情况下再次解锁车辆,远程无钥匙进入系统中的滚动码会更新,之前所有的密码(包括攻击者获取的密码)都会失效。因此,要使 RollJam 攻击成功,关键在于将 RollJam 设备隐蔽地安装在车辆的某个位置,并及时执行步骤(iv),即重放有效的解锁信号。其次,与上述情况类似,即便攻击者成功使用了捕获到的有效但未使用的信号,该信号也无法再次使用;若想在未来再次解锁同一车辆,必须重新执行整个攻击流程。

本文提出了一种新型的时间无关重放同步攻击 ------RollBack。在基于滚动码的系统中,即便一次性密码已失效,连续重放之前捕获的若干个信号,仍能触发部分远程无钥匙进入系统中的回滚机制,使得所有之前捕获的(解锁)信号再次生效,"RollBack"(回滚)也因此得名。同时,这种回滚机制会执行信号中编码的指令,例如解锁车辆。

因此,与 RollJam 不同,RollBack 无需持续追踪最新的有效未使用密码。也就是说,攻击者无需重复执行(i)→(ii)→(iii)→(i)→(ii)→(iv)这一冗长的步骤序列来进入车辆(见图 2)。通常情况下,RollBack 甚至完全不需要步骤(iv),仅需执行一次(i)→(ii)→(iii)→(i)的步骤。之后,通过重放捕获到的信号,攻击者可在未来任意时间多次解锁受害者的车辆。这一特性使 RollBack 攻击更具灵活性且与时间无关,极大地降低了攻击者所需付出的努力。

有趣的是,RollBack 攻击仅需在获取后续信号的短时间内对第一个信号进行一次干扰,通过诱导车主再次按下按钮来实现信号捕获。但在正常情况下,由于 RollBack 具有时间无关性,捕获的信号是否被车辆接收并不影响后续攻击,因此无需进行信号干扰。关于这一特性的更多细节,将在第 3 节中进一步阐述。

在分析过程中,我们发现并非所有易受攻击的车辆和远程无钥匙进入系统都对 RollBack 攻击具有相同的敏感度。因此,我们根据成功实施重放攻击所需的一系列特性(如之前捕获的信号数量、信号序列、重放的时间范围和速度),衍生出了五种不同的 RollBack 攻击变体。研究发现,对 RollBack 攻击最敏感的车辆和远程无钥匙进入系统,只需通过过去任意时间捕获的两个信号就能实现解锁。此外,这两个信号甚至无需严格连续(后续会给出具体定义),也就是说,在攻击者捕获这两个信号的间隔期间,车主仍可正常使用遥控钥匙。这一特性使得 RollBack 攻击的危险性大幅提升,除了上述提到的优势外,它还进一步降低了攻击者的操作难度。

与 RollJam 攻击相比,RollBack 攻击的一个显著优势是其与指令无关,这使其危险性更高。这意味着捕获的信号无论是对应锁定指令还是解锁指令,都不影响攻击的实施,从而进一步简化了信号捕获过程。攻击者只需确保最后捕获并重放的信号包含期望的指令(即解锁指令),就能成功进入车辆(详见第 5.2 节关于该特性的更多细节)。

与 RollJam 及其他针对远程无钥匙进入系统的攻击类似,如果远程无钥匙进入系统的电子控制单元固件无法通过空中下载(OTA)方式升级,那么彻底修复这一漏洞将十分困难,可能需要将所有相关车辆召回工厂或经销商处进行处理。对于 RollJam 这类基于信号干扰的攻击,可以采取一些预防措施,例如车主在靠近车辆时确保信号正常接收,若第一次解锁信号未被接收,则再次按下锁定按钮尝试。在某些场景下,如汽车共享场景,可通过在车辆通过共享应用解锁前禁用远程无钥匙进入系统来降低风险(详见第 9 节)。然而,由于 RollBack 在信号捕获阶段本质上是一种被动监听行为,无需进行信号干扰,因此除了针对汽车共享场景的建议外,上述所有预防措施均无法有效防范 RollBack 攻击。

本文的主要贡献总结如下:

  1. 在详细回顾无钥匙进入系统和 RollJam 攻击(见第 2 节)之后,提出了 RollBack 攻击(见第 3 节)。与 RollBack 不同,RollBack 只需重放之前捕获的已失效(解锁)信号,就能在未来任意时间无限次解锁车辆,因此攻击效果更强。

  2. 揭示了当今远程无钥匙进入系统中一种隐藏特性,该特性的工作方式与 RollBack 攻击类似,可能是导致系统存在漏洞的根本原因(见第 8 节)。不过,目前我们尚无法确定该攻击是利用了系统实现过程中的漏洞,还是源于遥控钥匙同步或学习功能设计本身的局限性。

  3. 通过目前规模有限但仍在进行的真实世界实验,我们对来自全球不同地区的多种主流车辆进行了测试,以验证 RollBack 攻击的有效性。结果表明,全球约 40% 的远程无钥匙进入系统实现易受到 RollBack 攻击(见第 4 节),且亚洲地区受影响的程度似乎更高。

  4. 根据攻击所需条件(如需捕获和重放的不同信号数量、重放的时间范围和速度、信号的连续性),提出了五种不同的 RollBack 攻击变体。

  5. 讨论了由于 RollBack 攻击具有同步性和与指令无关的特性,结合人类的典型行为模式,狡猾的攻击者可通过捕获锁定信号来加快信号捕获过程(无需信号干扰),或通过再次锁定车辆来掩盖攻击痕迹(见第 5 节)。

  6. 尽管由于缺乏相关文档、资源和知识,目前尚无法确定攻击的根本原因,但我们认为遥控钥匙的学习过程可能是潜在根源,其行为与 RollBack 攻击存在相似之处。

  7. 最后,讨论了可能的缓解策略:包括车主在面对需要信号干扰的 RollBack 攻击时可采取的一些预防措施,以及针对特别容易受到 RollBack 攻击的汽车共享服务的建议(见第 9 节)。此外,还探讨了一些切实可行的缓解方法,例如使用时间戳。

2、背景与相关工作

本节首先简要介绍无钥匙进入系统的发展历程,随后阐述针对当今车辆这一核心功能所出现的主要攻击类型。

2.1 钥匙与进入系统的发展

2.1.1 物理钥匙

1886 年第一辆汽车诞生后的数十年间,汽车一直没有配备钥匙。1949 年,克莱斯勒公司首次为汽车配备了用于点火启动发动机的钥匙。该钥匙同时还起到安全防护作用,可防止儿童在车辆挂挡的情况下意外启动车辆并使其移动。

2.1.2 防盗锁止系统

为防范车辆被盗,本田公司率先推出了带有防盗锁止系统的钥匙。防盗锁止系统是一种无源设备,它利用射频识别(RFID)技术与钥匙孔附近的应答器进行通信,在启动发动机前验证遥控钥匙的合法性。若没有正确的应答器,钥匙孔会被机械锁死,防止非法钥匙转动,或者电子控制单元会切断燃油供应,阻止发动机启动。澳大利亚和欧盟的研究表明,在强制要求配备防盗锁止系统后,汽车盗窃案件数量大幅减少。

2.1.3 远程无钥匙进入(RKE)系统

远程无钥匙进入系统是一种单向认证系统。如今,远程无钥匙进入系统已具备诸多先进功能(如启动、熄火、紧急报警),车主只需按下遥控钥匙上对应的按钮,即可实现车辆的锁定或解锁。当按下按钮时,遥控钥匙会向车辆发送射频(RF)信号,信号的频段会根据地理位置的不同,选择 315MHz、433MHz 或 868MHz。车辆上的接收器会接收这些射频信号(接收距离最远可达数百米),并执行相应的操作(如锁定、解锁)。

需要注意的是,选择特定频段的主要目的是避免与政府监管机构授权的其他服务产生干扰,该选择不会影响设备本身的运行功能,仅用于确定无线电信号传输所使用的特定频谱范围。

2.1.4 被动无钥匙进入(PKES)系统

与远程无钥匙进入系统不同,当用户(即携带遥控钥匙的人)靠近车辆时,被动无钥匙进入系统会自动启动。此外,被动无钥匙进入系统采用双向挑战 - 响应通信方式进行有效的身份认证。携带有效遥控钥匙的车主,只需拉动车门把手就能解锁车辆;当车主离开车辆时,系统会自动锁定车辆。被动无钥匙进入系统的遥控钥匙通常还集成了远程无钥匙进入功能,即保留了按钮操作方式,作为备用机制或满足部分车主对 "传统" 按钮操作的偏好。

尽管被动无钥匙进入系统也采用滚动码技术,但由于车主需要靠近车辆才能触发系统,且攻击者无法预知解锁信号的发送时间,因此它受远程无钥匙进入系统常见重放攻击的影响远小于后者。不过,被动无钥匙进入系统容易受到中继攻击。

本文将重点研究远程无钥匙进入系统。

2.2 滚动码

本节简要介绍远程无钥匙进入系统中滚动码技术的发展历程,并定义后续文章中会用到的一些符号。远程无钥匙进入系统的历史可追溯至 20 世纪 70 年代,早期的电动车库门开启器通过无线传输 "明文" 静态码来执行相应操作(如开门、关门)。然而,攻击者只需嗅探并重放捕获到的信号,就能轻松打开车库门。为解决这一问题,滚动码技术应运而生。该技术相比静态码具有更高的安全性,同时相比其他高安全性方案,计算复杂度更低,因此得到了广泛应用。后一特性尤为重要,它使得遥控钥匙的体积更小、结构更简单,平均电池续航时间可达四年。

目前,有几家知名制造商为汽车行业提供基于滚动码技术的远程无钥匙进入系统解决方案。例如,微芯科技(Microchip Technology)提供了 Classic、Advanced 和 Ultimate KeeLoq 系列产品,并公开了相关文档和数据手册。此外,恩智浦(NXP)、欧姆龙(Omron)和德州仪器(Texas Instruments)等半导体公司也为汽车制造商提供专有解决方案。在下文的技术说明中,我们将重点介绍采用 Classic 和 Advanced KeeLoq 技术的远程无钥匙进入系统,因为这两种技术的相关文档是公开可获取的。但需要注意的是,从本质上讲,所有基于滚动码技术的方案在概念上都是相似的。

采用滚动码技术意味着,遥控钥匙每次发送的信号都是唯一的,即每按一次按钮,信号就会发生变化。这种唯一性是通过以下方式实现的:每按一次遥控钥匙上的按钮,遥控钥匙内部的 16 位计数器就会递增,车辆接收端在收到信号后,其内部的计数器也会相应递增。只有当双方的计数器值同步时,此次按钮操作才被视为有效。随后,双方会将各自的计数器 7 进一步递增,以确保下一次按钮操作时计数器仍能保持同步。因此,若攻击者捕获到遥控钥匙发送给车辆的有效信号(此时遥控钥匙计数器Ck = n并进行重放,车辆接收端会因为自身计数器值Cv > Ck(即Cv = (n + k) : k > 0)而丢弃该重放信号。

另一方面,针对遥控钥匙在车辆接收范围外被按下按钮的情况(即车主使用遥控钥匙尝试锁定或解锁车辆,但此时Ck > Cv,系统也制定了相应的应对机制。这类情况可进一步分为两种不同的操作窗口。

2.2.1 单窗口

若Cdif f = Ck − Cv的差值较小(例如Cdif f < 16),则在车主第一次按下按钮时,计数器会立即实现同步,无需额外操作。计数器同步意味着车辆接收端会作废遥控钥匙最后一次发送信号之前所有未被接收的密码。

2.2.2 同步 / 双窗口

当16 < Cdif f < 2^15时,接收端会临时存储计数器值Ck = l ,并等待下一次信号传输,即车主需再次按下同一按钮。若下一次传输的计数器值Ck = l + 1,接收端会根据最后一次接收到的信号实现同步。需要注意的是,该同步过程需要车主按下两次按钮,且只有在第二次信号接收完成并实现同步后,车辆才会执行相应操作。

若上述两种情况均未满足,车辆接收端会丢弃接收到的遥控钥匙信号。此外,由于底层加密机制的存在(例如文献中介绍的加密机制),即使信息中的某一位发生变化(如计数器递增),最终传输的信号也会发生显著改变。因此,攻击者通过捕获前一个有效信号来推断下一个有效信号(如解锁信号),在计算上是难以实现的。

2.3 相关工作:针对远程无钥匙进入系统的各类攻击

从本质上讲,滚动码方案的设计应能提供足够的安全性。然而,早期的滚动码系统已被证明存在安全漏洞。例如,目前主要用于车库门的 Classic KeeLoq 技术,已被证实可通过密码分析和针对接收端密钥推导方案的侧信道攻击被破解。随后,增强型 KeeLoq 实现方案(即 Advanced KeeLoq 和 Ultimate KeeLoq)通过采用更强的加密算法和更长的密钥,解决了这些安全问题。

针对基于滚动码的遥控钥匙,犯罪分子还会采用另一种简单却有效的攻击手段:当车主按下锁定按钮时,对信号进行干扰,阻止车辆接收该信号。若车主未察觉这一情况,车辆就会处于未锁定状态。这种攻击的一种更复杂变体是 "选择性干扰与重放":攻击者除了干扰信号外,还会捕获锁定信号。这样一来,若车主再次未察觉信号干扰,犯罪分子在窃取车内物品后,还可通过重放捕获到的锁定信号将车辆锁定,制造车辆已被正常锁定的假象。需要注意的是,在没有额外信息(如加密密钥、指令码表)的情况下,一旦信号被捕获,攻击者无法将其转换为其他信号(例如将锁定信号转换为解锁信号)。

恩智浦公司的 Hitag2 是另一种广泛应用的基于滚动码的远程无钥匙进入方案,被全球多家汽车制造商(如雷诺、福特、雪佛兰、蓝旗亚、欧宝)采用。近期,研究人员提出了一种基于相关性的攻击方法,只需捕获 4 至 8 个滚动码,就能恢复加密密钥,进而克隆遥控钥匙。此外,该研究还发现,1995 年以来生产的大多数大众集团车辆(如大众、西雅特、奥迪、保时捷)仅依赖少数几个主密钥。攻击者通过从电子控制单元中提取这些主密钥,只需捕获一个解锁信号,就能轻松克隆任意此类车辆的遥控钥匙。

2015 年,萨米・卡姆卡(Samy Kamkar)提出的 RollJam 攻击被证实可破解所有基于滚动码的方案。RollJam 攻击既不依赖密码分析,也不依赖侧信道攻击,而是将滚动码系统的安全机制转化为可被利用的漏洞。本质上,RollJam 是一种先进的 "选择性干扰与重放" 方法:通过精心设计的信号干扰、捕获与重放序列,攻击者能够捕获遥控钥匙发送的未被使用的信号,并在后续通过重放该信号解锁目标车辆,且不会被车主察觉。如第 1 节简要介绍的那样,RollJam 攻击基于四个核心原理:(i)捕获解锁信号;(ii)同时对车辆接收端所在频段进行干扰;(iii)诱导车主重试;(iv)及时重放之前捕获的信号。

图 2 (a) 总结了 RollJam 攻击的操作流程。当车主按下遥控钥匙上的解锁按钮时,隐藏在目标车辆上或附近的 RollJam 设备会(i)捕获该信号,同时(ii)对车辆接收端所在频段进行干扰,阻止车辆正常接收信号。由于车辆未做出响应,车主会误以为信号接收不良,从而(iii)再次按下同一按钮。然而,此次 RollJam 设备不仅会重复执行步骤(i)和(ii),还会迅速(iv)向车辆重放之前捕获的第一次信号(此时不再进行干扰)。最终,车辆会执行预期的解锁操作。此外,RollJam 设备还会获取该操作对应的下一个有效密码,即攻击者知晓了未来再次解锁车辆所需发送的信号。但如果车主在未受 RollJam 设备干扰的情况下再次使用遥控钥匙解锁车辆,攻击者所持有的信号就会失效,攻击者必须重新执行整个攻击流程才能再次解锁车辆。尽管 RollJam 攻击通常能有效突破所有基于滚动码的远程无钥匙进入系统,但由于步骤(iv)的存在,攻击者需要时刻谨慎操作并持续监控。

一种名为 Rolling-PWN 的攻击引发了广泛关注,多家在线新闻媒体(如《纽约邮报》、《The Drive》、《Security Affairs》)都对其进行了报道。该攻击的研究者发现,2012 年至 2022 年间生产的采用基于滚动码的远程无钥匙进入系统的本田车辆,易受到重放攻击。具体而言,研究者发现该攻击与 RollBack 攻击存在一些相似之处:向本田车辆连续发送解锁指令,可使车辆计数器实现同步。然而,目前尚未公开该攻击所需的具体密码序列、需捕获和重放的密码数量以及其他相关(硬件特定)细节。

3、RollBack:新型时间无关重放攻击

本节提出一种新型时间无关重放攻击 ------RollBack。该攻击通过利用远程无钥匙进入系统中的一项隐藏特性,克服了 RollJam 攻击的局限性。具体而言,RollBack 攻击只需捕获并重放少量已失效的解锁信号,就能在未来任意时间无限次解锁车辆,且无需后续再次捕获信号。为便于对比,下文将采用与 RollJam 攻击相同的场景(即使用信号干扰)来描述 RollBack 攻击的威胁模型。但需要注意的是,尽管信号干扰可加快攻击进程,但与 RollJam 不同,RollBack 攻击完全不需要信号干扰。

3.1 RollBack 攻击的威胁模型与操作流程

RollBack 攻击的主要目标是在未经车主授权(且可能不被车主察觉)的情况下解锁车辆。与所有针对远程无钥匙进入系统的攻击类似,RollBack 攻击解锁车辆的方式与使用原装遥控钥匙相同,不会对车辆造成物理损坏。

在该攻击的威胁模型中,攻击者拥有一台能够在目标车辆所用频段内捕获、干扰和重放信号的设备。为简化描述,我们将该设备称为 RollBack 设备。具体而言,用SI i表示遥控钥匙向车辆发送的信号,其中i ∈ {1, 2, ..., 2^15}是滚动码计数器值,I := {unlock,lock}表示信号对应的指令(解锁或锁定)。例如,Sunlock表示计数器值i=534的解锁信号。

如图 2 (b) 所示,RollBack 攻击的实施过程可分为两个不同阶段:侦察阶段和利用阶段。

3.1.1 侦察阶段

攻击者将 RollBack 设备放置在停放在公共场所(如停车场)且处于锁定状态的目标车辆附近。当车主返回车辆并尝试使用遥控钥匙解锁时(即车主执行SendV (Sunlock i )操作),RollBack 设备会:(i)捕获该信号(执行CaptureA(Sunlock i ));(ii)对车辆接收端所在频段进行干扰(执行JamA(Sunlock i )),阻止车辆正常接收信号(见图 2 (b) 中的侦察阶段 1)。由于车辆未解锁,车主会误以为信号接收不良,进而(iii)再次按下同一解锁按钮(即车主执行SendV (Sunlock i+1 )操作)(见图 2 (b) 中的侦察阶段 2)。此次,RollBack 设备会捕获第二个连续的解锁信号(即执行CaptureA(Sunlock i+1 )),但与 RollJam 攻击不同,它会允许车辆接收该信号(即攻击者不执行JamA (Sunlock i+1 ))。最终,车辆成功解锁,车主驾车离开,并未察觉任何异常(见图 2 (b) 中的闲置阶段)。需要注意的是,由于 RollBack 攻击无需追踪下一个有效的解锁信号,因此无需将 RollBack 设备隐蔽安装在车辆的某个位置。实际上,由于实施该攻击所需的廉价元件体积较小(详见第 3.2 节),这种类似钱包大小的专用 RollBack 设备甚至可以直接放置在车辆下方。在侦察阶段结束时(即完成图 2 (b) 中的侦察阶段 2 后),攻击者已获取两个连续的有效解锁信号。根据滚动码技术的设计原理,这两个捕获到的信号此时均已失效。

3.1.2 利用阶段

与 RollJam 攻击不同,利用阶段无需紧随侦察阶段之后进行。也就是说,在侦察阶段结束后,车主仍可正常使用车辆(如锁定、解锁车辆),次数不受限制(见图 2 (b) 中的闲置阶段)。然而,在之后的任意时间,只要车辆处于锁定状态,攻击者就能通过重放之前捕获的两个连续解锁信号(即执行SendA(Sunlock (i) )和SendA(Sunlock (i+1) )),在未经车主授权的情况下解锁车辆(见图 2 (b) 中的利用阶段)。

为简洁起见,本文的威胁模型未涉及攻击者解锁车辆后的进一步行为。攻击者可能会窃取车内遗留物品,或在必要时通过其他攻击手段窃取车辆本身。

3.2 核心硬件

在全面分析过程中,我们使用了软件定义无线电(SDR)设备。本质上,这类设备配备了可通过软件进行精细调节的无线接收器(和发射器),例如可通过软件设置设备监听信号的频段。哈克射频一号(HackRF One)是最知名的商用现成(COTS)软件定义无线电设备之一,它兼具信号发送和接收功能,在撰写本文时,其售价约为 300-400 美元。借助名为 gqrx 的商用现成软件,可轻松确定遥控钥匙发送信号所使用的具体频段。此外,由于所有遥控钥匙均在授权频谱内工作,因此它们都拥有在美国联邦通信委员会(FCC)注册的唯一标识符。基于此,通过在网站中输入遥控钥匙的 FCC ID,即可查询该遥控钥匙的公开详细信息。确定正确的信号频段后,可使用另一款商用现成软件 ------ 通用无线电黑客(URH)来控制软件定义无线电设备,实际执行信号捕获和(解锁信号)重放操作。若要使用软件定义无线电设备对特定频段进行干扰,攻击者有多种方案可供选择,具体取决于其技术水平和需求。例如,攻击者可使用基于 Arduino 的廉价可编程开发板和无线电发射器,也可使用配备完整操作系统的树莓派(Raspberry Pi),结合 RTL-SDR 加密狗进行信号接收,或使用 CC1101 收发器实施干扰。

需要注意的是,RollBack 攻击所需的硬件与 RollJam 攻击基本相同。此外,由于 RollBack 攻击并非必须进行信号干扰(详见第 3 节),因此构建 RollBack 设备的硬件要求更低,成本甚至可控制在 20-30 美元以内。

此外,与针对远程无钥匙进入系统的其他攻击(如 RollJam)类似,RollBack 攻击无需在隔离环境中实施。正如在拥挤停车场使用远程无钥匙进入系统解锁车辆的常规场景一样,其他远程无钥匙进入系统的同时使用,对 RollBack 攻击的成功率影响极小。关键在于攻击者能否成功捕获信号;而信号重放操作简单易行,必要时可在任意时间重复进行。而且,在信号捕获过程中,捕获设备的信号接收带宽窗口会被有意设置为比车辆的接收带宽窗口更窄(见图 3)。这样一来,既能对车辆的接收带宽窗口实施有效干扰,又不会影响攻击者自身的信号捕获。

图3、信号捕获与干扰示意图

3.3 RollBack 攻击的不同变体

我们首次发现这一漏洞时,测试的是一辆较旧的 2009 款日产颐达(Nissan Latio)车型(详见第 4.1 节)。在该车型上,RollBack 攻击表现出以下特性。

首先,我们需要确定实施攻击所需重放的信号数量。测试结果显示,针对日产颐达车型,仅需两个信号即可。但后续研究表明,其他易受攻击的系统可能需要更多信号。因此,RollBack 攻击的第一个(也是最重要的)特性是攻击者需捕获(并重放)的信号数量(即 #SIGNALS)。

其次,我们发现攻击者必须严格执行CaptureA(Sunlock i )和CaptureA(Sunlock i+1 )操作,并按相同顺序重放这两个信号。也就是说,若捕获并重放的是Sunlock

和(Sunlock i+k : k > 1),则无法触发预期的回滚机制。基于此,我们将第二个特性定义为信号序列(SEQUENCE):若像上述日产颐达案例那样,要求信号严格连续,则该特性为 "严格(Strict)";若不要求信号严格连续,只需按捕获时的(递增)顺序重放即可(即使信号之间存在其他有效但已失效的信号),则该特性为 "宽松(Loose)"。

此外,在日产颐达车型的测试中,我们发现必须在 5 秒内完成两个连续解锁信号的重放,否则 RollBack 攻击将失败。我们将第三个特性定义为时间范围(TIMEFRAME),它表示重放两个信号时允许的最大时间间隔(以秒为单位)。若不存在最大时间间隔限制。我们通过以下方式确定其具体数值:将捕获到的两个信号之间的间隔精确调整为N = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10}秒,然后保存调整后的信号并进行重放,观察 RollBack 攻击是否成功。需要注意的是,信号捕获完成后,可通过软件定义无线电软件对信号之间的间隔或背景噪声进行裁剪或复制粘贴,轻松调整时间范围。

在分析过程中(详见第 4 节),我们根据上述特性,衍生出了五种不同的 RollBack 攻击变体。这些变体的特性组合如下表 1 所示。

表 1、通过分析衍生出的不同 RollBack 攻击变体

4、评估

本节将对 RollBack 攻击进行评估,并探讨哪些车辆易受该攻击影响。

免责声明:在实验过程中,我们未在实际环境中尝试实施 RollBack 攻击。所有测试均在隔离环境中进行,确保测试区域内没有其他车辆和 / 或遥控钥匙。但如第 3.2 节所述,在实际环境中实施 RollBack 攻击时,无需隔离环境。测试中捕获的所有信号均仅临时存储,在完成信号捕获和重放测试后,立即永久删除。为验证 RollBack 攻击的时间无关特性,我们将两个遥控钥匙信号存储了较长时间(约 100 天),之后也将这些存储的信号永久删除。需要说明的是,无论车辆是否易受 RollBack 攻击,重放遥控钥匙信号都不会对车辆、遥控钥匙及整个电子系统造成任何损害。因此,所有测试车辆在测试后仍能正常运行。

本文是首次公开发布的关于我们研究发现和 RollBack 攻击的详细书面资料。在与远程无钥匙进入系统芯片制造商和汽车信息共享与分析中心(AUTO-ISAC)成员启动漏洞披露流程时,我们使用了本文的精简版本。关于漏洞披露流程和相关发现的更多细节,将在第 7 节中介绍。

4.1 受测车辆

起初,我们的测试范围仅限于少数车辆,主要是在新加坡较为常见的亚洲品牌和型号。但在首次公布研究发现后,众多汽车网络安全专家、爱好者和车主纷纷尝试在自己的车辆上测试 RollBack 攻击。事实上,RollBack 攻击的影响已扩展到其他领域,例如智能门锁。此外,许多人通过向我们公开的众包数据库提交测试结果,为研究提供了支持。受测车辆及其相关数据详见表 2 和表 3。其中,"型号年份(Model date)" 指该车型的生产时间段,"制造年份(Mfg. date)" 指所测试车辆的实际生产年份。通常可通过车辆识别码(VIN)和公开可用的服务 15 查询到这些信息。"地区(Region)" 指车辆使用和注册的地理区域,该信息也可能暗示车辆的生产地点。

不同品牌和型号的车辆及其遥控钥匙使用不同的信号频段。但如第 2.1.3 节所述,信号频段并不会影响车辆对 RollBack 攻击的脆弱性,因此本文未列出具体的频段信息。大多数情况下,我们通过手动拆解遥控钥匙,能够确定远程无钥匙进入系统的具体制造商、芯片型号和序列号 18。若无法拆解遥控钥匙(或印刷电路板上的芯片被遮挡,例如涂有黑漆),我们会尝试通过在网站中输入遥控钥匙的 FCC ID,或在各大零售商网站上查询备用遥控钥匙信息,以获取制造商相关信息。表 2 和表 3 的倒数第二列详细列出了已识别出的芯片信息。对于无法通过上述任何方式确定远程无钥匙进入系统制造商的车辆,我们在表 2 中相应位置留空。

最后一列表明车辆(更准确地说是远程无钥匙进入系统)是否易受 RollBack 攻击(若易受攻击,则标注有效的 RollBack 攻击变体)。

从实验结果(参见表 2 和表 3,数据仍在持续更新)中,我们可得出以下结论:首先,约 50% 的受测亚洲车辆易受到某种 RollBack 攻击变体的影响。而在其他地区,受测车辆对 RollBack 攻击的脆弱性相对较低(目前数据如此)。例如,我们发现亚洲生产的马自达车辆往往易受 RollBack 攻击,而欧洲生产的同型号马自达车辆则不易受该攻击影响。

其次,我们发现这种脆弱性并非特定于某一品牌、车型或车辆型号。尽管车辆的使用年限(即型号年份和制造年份)似乎并非决定性因素(例如,2002-2005 年款的马自达 6 车型可抵御 RollBack 攻击,而 2018 年款的马自达 CX-5 车型却易受该攻击),但远程无钥匙进入系统的制造商可能是一个重要的指示因素。具体而言,所有受测的采用欧姆龙(Omron)远程无钥匙进入系统的韩国车辆(如起亚和现代)均被发现易受攻击。值得注意的是,针对这类车辆,仅需捕获两个解锁信号即可实施攻击,且这两个信号甚至可在不同时间分别捕获(即信号序列为 "宽松")。然而,对于采用恩智浦(NXP)芯片的车辆,我们无法得出类似结论,因为对多辆配备恩智浦应答器的车辆进行测试后发现,部分车辆安全,部分车辆则存在安全漏洞。此外,我们发现所有三辆已识别出遥控钥匙制造商为德州仪器(Texas Instruments)的丰田车辆均能抵御 RollBack 攻击。但通过对更多丰田车辆的分析,我们的数据库显示,这并不意味着所有丰田车辆都具有抗 RollBack 攻击的能力。例如,丰田威驰 S(Toyota Wigo S)和丰田奔跑者(Toyota Rush)被发现易受该攻击。因此,目前我们无法确定配备德州仪器远程无钥匙进入系统的车辆是否普遍能抵御 RollBack 攻击。

最后,微芯科技(Microchip)的远程无钥匙进入系统在过去可能更为普及。但如今的部分车辆仍在使用其基于滚动码的解决方案,这意味着这些车辆可能都易受到 RollBack 攻击。

对于其他车辆(即采用非恩智浦 / 欧姆龙制造商的远程无钥匙进入系统,或无法确定远程无钥匙进入系统制造商的车辆),我们的测试结果总结如下:菲亚特 500(Fiat 500)、现代 i20(Hyundai i20)、马自达 2(Mazda 2)、马自达 3(Mazda 3)、马自达 6(Mazda 6)、三菱蒙特罗 GLS(Mitsubishi Montero GLS)、欧宝科莎 X(Opel Crossland X)、欧宝雅特(Opel Astra)和雷诺克里奥(Renault Clio)能够抵御 RollBack 攻击;而本田飞度(Honda Fit)、本田 Mobilio RS Navi、现代 ix20(Hyundai ix20)、日产颐达(Nissan Latio)和日产纳瓦拉(Nissan Navara)则易受 RollBack 攻击。

根据最新数据集,全球范围内约 40% 的受测车辆易受到 RollBack 攻击。在这些易受攻击的车辆中,20% 的车辆不要求重放的信号严格连续,这一情况尤为令人担忧。此外,在所有易受攻击的车辆案例中,大多数仅需捕获 2 个信号即可实施攻击;而需要捕获 5 个信号的案例占比不足 20%,需要捕获 2 个和 3 个信号的案例占比分别为 38% 和 43%。

需要注意的是,易受攻击的并非遥控钥匙本身(它仅负责发送信号),而是车辆接收端(即车辆内部的接收单元)。此外,遥控钥匙制造商通常仅生产遥控钥匙(即应答器),而车辆接收单元则由不同的原始设备制造商(OEM)提供。然而,我们的测试结果表明,遥控钥匙制造商与车辆接收单元之间存在密切关联:除恩智浦 F7953 芯片外,未发现任何两款采用相同应答器芯片的远程无钥匙进入系统对 RollBack 攻击表现出不同的反应。

还需注意的是,与 RollJam 等其他针对遥控钥匙的攻击类似,RollBack 攻击针对的是特定车辆。在 RollBack 攻击侦察阶段捕获的信号仅对该特定车辆有效,无论其他车辆的品牌、型号或其他特征如何,这些信号都无法用于攻击其他车辆。例如,针对我们的马自达 2 HB(改款)车型捕获的遥控钥匙信号,仅对该特定车辆有效,无法用于攻击同一年份生产的所有同型号马自达车辆。

表 2、受 RollBack 攻击测试的车辆详情

表 3、受 RollBack 攻击测试的车辆详情(续表)

5、RollBack攻击的其他显著优势

本节将探讨攻击者在进入车辆后如何轻松掩盖痕迹,以及在某些情况下如何以更低的成本实施 RollBack 攻击(即无需进行信号干扰)。

5.1 进入车辆后的重新锁车

回顾前文可知,由于计数器同步机制的存在,若攻击者捕获并重放后续信号,这些信号在同步后可立即正常生效。采用第 3.1 节中定义的符号,假设攻击者不仅捕获了连续的解锁信号。

5.2 RollBack 攻击与指令无关

在利用 RollBack 攻击实现计数器同步时,除最后一个信号外,其他信号中的具体指令通常无关紧要。具体而言,攻击者可通过重放锁定信号与解锁信号的组合来触发计数器同步过程。但关键在于,信号序列中的最后一个信号必须是解锁信号,才能最终实现车辆解锁,因为车辆会根据最后一个信号中的指令执行相应操作。这一特性使得 RollBack 攻击的危险性大幅提升,因为攻击者无需使用信号干扰器,就能轻松捕获所需的信号序列。此外,即使目标车辆易受需要更多信号的 RollBack 攻击变体影响,攻击者也可借助人类的典型行为模式和车辆的安全特性,在不进行信号干扰的情况下完成信号捕获。例如,当人们将贵重物品留在无人看管的地方(如停车场的车辆或家中大门)时,通常会确认是否已妥善锁定。因此,大多数人在锁门后会再次拉动门把手,检查门锁是否正常;同样,在离开车辆时,为确认车辆已锁定(车辆通常会通过闪烁应急灯或鸣笛来提示),人们往往会再次按下遥控钥匙上的锁定按钮。

之后,若在大型停车场寻找车辆,人们还会多次按下锁定按钮,通过车辆鸣笛来确定车辆位置。

另一方面,车辆的远程无钥匙进入系统通常设有一项安全特性:首次按下解锁按钮时,仅解锁驾驶员侧车门;若车主并非独自驾车,需为同行人员(如家人)提供进入车辆的权限,则需再次按下解锁按钮,以解锁所有车门。

这些特性和人类的典型行为模式使得所有 RollBack 攻击变体都能在无需信号干扰器的情况下成功实施。

6、汽车共享服务:RollBack攻击的主要目标

近年来,汽车共享服务迅速兴起,尤其在车辆拥有成本远高于平均水平的国家备受青睐。本质上,汽车共享服务使传统汽车租赁变得更加便捷、灵活且成本更低。用户无需至少租赁一天车辆,无需现场办理繁琐手续,也无需在各种保险政策和免责条款中纠结。由于无需人工服务、可按小时或分钟计费,且用户可通过移动应用便捷地在租赁开始和结束时解锁、锁定车辆,汽车共享服务的成本大幅降低。

汽车共享服务的典型流程如下:已注册的用户可通过移动应用预订车辆(预订特定时间段)。预订时间开始后,用户可通过移动应用指令解锁车辆。在后台,汽车共享公司会利用为车辆专门加装的额外电子控制单元,远程解锁车辆。车辆解锁后,用户会在车内隐蔽位置(通常是手套箱)找到原装遥控钥匙,随后即可启动车辆驾驶。需要注意的是,汽车共享公司通常还会要求用户完成其他步骤(如拍摄车辆照片、检查车辆损坏情况和油量等),但从攻击者的角度来看,这些步骤无关紧要。用户将车辆归还至指定停车场后,需将遥控钥匙放回原处;租赁结束时,用户需下车并关闭所有车门,完成汽车共享公司要求的其他步骤,然后通过应用锁定车辆。

攻击者在租赁期间可轻松使用遥控钥匙捕获实施攻击所需的解锁信号数量。由于攻击者在租赁期间暂时拥有车辆的使用权,甚至可进行进一步测试(如确定哪种 RollBack 攻击变体有效、需要捕获多少个信号等)。攻击者归还车辆后,租赁流程正式结束,在此期间,攻击者会妥善保管车辆,不会对车辆造成损坏。之后,其他用户将继续使用该车辆。大多数情况下,攻击者无需费力(如跟踪车辆、安装全球定位系统(GPS)追踪器)就能掌握车辆的位置信息,因为汽车共享服务会提供所有必要信息。具体而言,在 "A 点取还" 模式(车辆需归还至指定专属停车场才能结束租赁)的汽车共享服务中,通常会提前公布车辆的状态和预订时间表;而在 "A 点取、B 点还" 模式(车辆可在不同地点取还)的服务中,可能不会公开具体的预订时间表,但为方便用户预订,应用会提供必要信息(如附近车辆的车牌号码、当前可预订车辆列表等)。这意味着攻击者可通过编写爬虫脚本轻松获取目标车辆的位置信息。

利用这些信息,攻击者可等待该车辆被其他多名用户租赁使用,以降低自身行为的可疑性。一旦车辆处于可预订状态,攻击者即可实施 RollBack 攻击,进入并窃取车辆(由于遥控钥匙在车内)。需要注意的是,汽车共享公司通常会为车辆安装 GPS 追踪器,以监控车队位置,因此窃取车辆的吸引力可能较低,或需要更多操作(如干扰 GPS 信号)。但攻击者可利用车辆预订信息,查看目标车辆未来的预订情况,在预订开始前接近车辆,等待用户租赁车辆后,跟踪用户至其临时停车地点(如用户购物时锁定车辆但未归还),然后通过 RollBack 攻击解锁车辆,窃取车内遗留物品。

尽管攻击者实施 RollBack 攻击后可能采取的后续行动多种多样,但由于该攻击实施简单、所需成本低,它对汽车共享(及传统汽车租赁)公司构成了严重威胁。攻击者的行为可能对租赁公司的用户群体造成重大损害,最终影响公司声誉。

7、负责任的漏洞披露流程

本节将介绍我们开展的负责任漏洞披露工作,包括工作的启动过程、遇到的障碍以及最终的经验总结。

起初,我们并不清楚应将初步发现告知哪些机构。例如,在发现某一品牌和型号的车辆存在漏洞后,是否应直接联系汽车制造商(如现代汽车)?他们可能会首先询问:哪些具体车辆存在漏洞?是最新车型还是旧车型?该品牌还有其他车型存在漏洞吗?所有现代汽车都存在漏洞吗?由于当时实验范围有限,我们无法回答这些问题。

因此,我们继续对可获取的不同品牌和型号的车辆进行测试,直到发现同一遥控钥匙供应商的不同芯片所对应的 2-3 个远程无钥匙进入系统均存在漏洞(无论车辆品牌和型号如何)。

通过测试,我们锁定了两家遥控钥匙制造商:恩智浦(NXP)和欧姆龙(Omron)(见表 2)。欧姆龙未设立专门的漏洞报告网站,我们尝试通过其国际和新加坡本地网站上的联系表单与该公司取得联系,但未收到任何回复。相比之下,恩智浦高度重视漏洞披露流程,在其网站上提供了向产品安全事件响应团队(PSIRT)报告漏洞的所有必要信息。

2022 年 3 月,我们与恩智浦举行了线上会议。会议结论是,我们发现的问题确实属于安全漏洞,且不存在与 RollBack 攻击工作方式完全相同的功能。但该漏洞存在于远程无钥匙进入系统的接收端(负责管理滚动码并验证每个接收密码的有效性),而遥控钥匙仅负责发送车辆预期的信号。

另一方面,众所周知,遥控钥匙供应商通常仅生产应答器,车辆接收端则由其他原始设备制造商提供。因此,采用其他供应商遥控钥匙的车辆,也可能因接收端供应链问题而存在相同类型的漏洞。遥控钥匙制造商(可能)不对接收端负责,但接收端似乎是导致系统易受 RollBack 攻击的关键部件。

随后,恩智浦协助我们通过汽车信息共享与分析中心(Auto-ISAC)联系到受影响的汽车制造商。汽车信息共享与分析中心是位于美国的行业驱动型组织,致力于共享和分析汽车网络安全风险相关情报,共同提升全球汽车行业的车辆网络安全能力。该中心的成员包括全球大多数汽车制造商和原始设备制造商。通过与相关汽车制造商的沟通,我们从漏洞披露流程中获得了两点主要经验:首先,汽车信息共享与分析中心的成员认可了该漏洞的存在,并同意我们在 2022 年美国黑帽大会(Black Hat USA 2022)上(在特定范围内)展示研究成果;其次,由于该攻击针对特定车辆(而非某一品牌或型号的全部车辆),且针对不同车辆(即使是同一品牌和型号)需重新实施攻击,汽车制造商可能认为该攻击的威胁程度相对较低。大致而言,无论是通过砸车窗或撬锁的方式窃取车内物品,还是通过 RollBack 这类更复杂且不易被察觉的攻击方式达到相同目的,两种攻击方式都需要攻击者选定目标、找准时机并实施攻击。此外,仅依靠 RollBack 攻击本身,攻击者无法窃取车辆。

我们发现,近期曝光的 Rolling-PWN 攻击漏洞以及本田公司对此的回应,在一定程度上印证了我们上述结论。

8、探究漏洞根源

根据第 2.2.1 节和第 2.2.2 节讨论的正常操作流程,由于 RollBack 攻击重放的遥控钥匙信号计数器值Ck小于车辆接收端计数器值Cv,这些重放信号本应被丢弃。因此,我们首次发现这一漏洞时,立即推测该现象可能与遥控钥匙同步机制有关 ------ 当新的发射器(即遥控钥匙)需与接收器(即车辆的远程无钥匙进入系统)进行配对,或遥控钥匙更换电池后可能丢失最后一次的计数器值时,就需要进行同步操作。然而,目前我们无法确定该漏洞的根本原因,主要存在以下几点原因:首先,仅有微芯科技(Microchip)的产品文档详细说明了系统架构(包括上述配对流程)的工作原理。因此,本节将详细讨论微芯科技 KeeLoq 系统中的遥控钥匙配对流程,并指出该流程中与 RollBack 攻击操作不完全一致的关键步骤。

在 KeeLoq 系统 中,典型的配对流程如下(见图 4):进入配对模式后,按下新遥控钥匙上的按钮,第一个信号将发送至车辆。该信号包含未加密部分和加密部分,其中未加密部分包含遥控钥匙的序列号,加密部分包含滚动码计数器、判别位、所按按钮等其他数据。车辆接收端利用生产时预设的主密钥,根据第一个信号中未加密的序列号生成该遥控钥匙对应的加解密密钥;随后,接收端使用生成的密钥对信号数据包进行解密,并对信号进行认证。简而言之,认证过程包括通过判别位验证密钥是否正确使用,并缓存计数器值Ck=n;之后,接收端等待第二个信号(即再次按下遥控钥匙按钮)。当接收到第二个信号(并完成认证)后,接收端会检查该信号是否为第二次发送的信号(即验证第二个信号的计数器值是否为Ck=n+1。若验证通过,接收端会存储该遥控钥匙的序列号、当前同步计数器值和对应的解密密钥,最终系统退出配对模式。此后,当该新配对的遥控钥匙被使用时,接收端会从内存中调取对应的解密密钥和存储的同步计数器值。

显然,上述配对流程的操作方式与 RollBack 攻击存在相似之处。但我们需考虑以下五个关键问题,这些问题尚未得到充分解释,可能会对 "配对流程是 RollBack 攻击利用的漏洞根源" 这一推测产生质疑。

图4、KeeLoq HCS200/HCS300 远程无钥匙进入系统中的典型配对流程

8.1 配对模式

需注意的是,配对流程始于 "进入配对模式" 步骤。不同品牌、型号和生产年份的车辆,采用不同且复杂的方式将接收端设置为配对模式。换句话说,为避免误进入配对模式,车辆(即远程无钥匙进入系统)要求用户执行一系列非常规操作,这些操作在正常使用过程中几乎不会出现。例如,部分丰田车型要求在 5 秒内将钥匙在点火开关中从 "关闭(OFF)" 位置旋转至 "开启(ON)" 位置,并重复该操作。然而,RollBack 攻击无需明确进入这种配对模式。

另一方面,配对流程成功完成后,系统应默认退出配对模式(见图 4 中的 "退出(Exit)" 步骤)。这意味着易受 RollBack 攻击的车辆(详见第 4 节)可能始终处于配对模式(即不退出),或完全省去了 "进入配对模式" 这一初始步骤 ------ 即新遥控钥匙与车辆的同步流程被过度简化。

8.2 时间范围

如第 3.3 节所述,部分远程无钥匙进入系统要求在特定时间范围内重放捕获的信号,而其他系统则无此要求。微芯科技的相关文档未明确定义这一特性,但即便文献指出该文档描述的是典型实现方式,实际应用中仍可能根据需求进行调整。

8.3 信号数量与序列

尽管配对流程要求连续按下两次遥控钥匙按钮,但我们衍生出的多种 RollBack 攻击变体的工作方式有所不同。例如,宽松型(2)RollBack 攻击不要求信号严格连续,而其他变体(如严格型(5)RollBack 攻击则需要超过两个信号。需注意的是,图 4 描述的配对流程针对的是微芯科技的解决方案,但上述 RollBack 攻击变体可对其他品牌的远程无钥匙进入系统实施(详见第 4 节)。

8.4 车辆的响应

目前仍存在一个疑问:配对流程中,(i)应按下哪个具体按钮(及执行对应指令),(ii)是否需两次按下同一按钮?然而,由于配对流程中仅关注遥控钥匙的序列号和判别位,理论上按下两个不同的按钮并发送对应的两个不同信号 30,并不会对配对流程产生影响。换句话说,发送一个锁定信号和一个解锁信号,理论上足以完成新遥控钥匙与车辆的配对。

此外,配对流程成功完成后(见图 4 中的 "配对成功(Learn successful)" 步骤),文档未说明车辆是否应根据第二次按下按钮对应的指令(如按下锁定按钮则锁定车门)执行操作。但在 RollBack 攻击中,最后一个信号中的指令(如解锁)总会被执行。

8.5 已配对遥控钥匙的重新配对

目前尚无文档说明,若将已完成配对的遥控钥匙(如原装遥控钥匙)重新与系统配对,会出现何种情况。配对流程的关键步骤之一是将遥控钥匙的序列号和对应的加密密钥存储到内存中,以便后续使用该遥控钥匙时,车辆接收端能直接从内存中调取相关信息。然而,配对流程中并未包含 "检查遥控钥匙序列号是否已存在于内存中" 这一步骤(在将其添加到内存之前)。由于缺少对遥控钥匙序列号的检查,且无法确定车辆会如何响应(参见第 8.4 节),目前无法判断重新配对已存在的遥控钥匙时,系统是会默默忽略该操作(即仍处于配对模式,等待新的遥控钥匙进行配对),还是会将其作为新的遥控钥匙重新进行配对。

8.6 计数器不同步

最后需注意的是,在配对流程中,遥控钥匙的计数器值会在接收第一个信号时被缓存,仅在配对成功后才会被存储。但此时并不会将该计数器值Ck与车辆接收端的计数器值Cv进行比较。不过,这一设计符合常理 ------ 新的遥控钥匙通常无法与车辆接收端的计数器同步,因此才需要配对流程。此外,将新遥控钥匙的计数器与日常使用的遥控钥匙计数器进行同步也毫无意义,因为同一时间仅会使用其中一把遥控钥匙,不同遥控钥匙的计数器必然会不同步。因此,车辆接收端会为所有已配对的遥控钥匙分别存储对应的同步计数器值,这可能就是系统会无验证地接受连续但不同步的旧计数器值的原因。

尽管配对流程是我们目前在远程无钥匙进入系统中发现的、唯一与 RollBack 攻击操作方式相似的机制,但根据上述分析,我们无法确定 RollBack 攻击是否确实利用了该机制。不过,若该漏洞确实存在于配对流程中,那么易受攻击的车辆可能存在以下情况:(1)无意中始终处于 "永久" 配对模式(见第 8.1 节);(2)允许通过重放旧的连续信号(见第 8.6 节),对已配对的遥控钥匙进行重新配对(见第 8.5 节);(3)会根据信号中的指令执行相应操作(见第 8.4 节)。

9、缓解措施

要制定有效的缓解策略或补丁,首先需确定漏洞的根本原因。但如第 8 节所述,目前我们无法明确漏洞根源。因此,本节将从以下几个方面提出缓解策略:为车主提供通用建议,帮助其提高警惕,避免成为依赖信号干扰的远程无钥匙进入系统攻击(如 RollBack 攻击)的目标(见第 5 节);以及针对汽车共享 / 租赁场景的专项建议。

9.1 通用建议

与 RollJam 攻击等其他重放攻击类似,RollBack 攻击可通过信号干扰加快攻击进程,因此用户需警惕信号干扰的可能性。最重要的是,车主应尽量靠近车辆,避免因信号接收不良给攻击者可乘之机。若第一次按下按钮后车辆未响应,但第二次操作成功,则第一次信号很可能被干扰(并被捕获)。遇到这种情况,车主可交替按下锁定和解锁按钮,直至满足以下两个条件:(i)最后两次按钮操作的信号均被车辆正常接收;(ii)车辆执行了对应的指令。若仅满足条件(i),车主仍可能面临 RollJam 等持续攻击(这类攻击会干扰最新信号并重放之前捕获的信号);但只要同时满足两个条件,就能完全排除此类攻击的可能性。

此外,除计数器外,部分先进的滚动码实现方案(如 Ultimate KeeLoq)还加入了精确时间戳。由于重放信号的时间戳与车辆接收端的当前时间存在差异,这类方案可有效防范各类重放攻击。

需注意的是,RollBack 攻击完全无需信号干扰。因此,由于攻击的侦察阶段本质上是被动监听(见第 3.1.1 节),车主无法察觉自己是否已成为 RollBack 攻击的目标。

9.2 与指令无关特性的应对方案

尽管为每把已配对的遥控钥匙分配一个滚动码可简化系统设计并降低资源需求,但为不同指令设置不同的滚动码,可有效解决第 5 节中讨论的 "与指令无关" 漏洞。具体而言,若通过重放锁定信号实现计数器同步,仅后续无效的锁定信号会生效;而解锁指令对应的滚动码不会受到影响,重放单个解锁信号仍无法解锁车辆(即使锁定指令的计数器已同步)。这一改进可大幅增加 RollBack 攻击的实施难度,迫使攻击者在大多数情况下必须使用信号干扰。如第 9.1 节所述,警惕性高的用户可察觉信号干扰行为。

9.3 汽车共享场景的应对方案

汽车共享公司需为车辆加装额外的电子控制单元,以实现用户通过移动应用解锁和锁定车辆的功能。这类功能的实现方式多样(如利用互联网和 API 调用、移动短信等),但大多数情况下,该功能与车辆其他电子控制单元的工作相互独立。这意味着,即使通过该电子控制单元(即移动应用)锁定车辆,原装远程无钥匙进入系统仍可用于解锁车辆,因此车辆仍易受 RollBack 攻击。因此,汽车共享公司可考虑将该移动应用相关的电子控制单元与车辆其他系统关联,仅在车辆通过应用解锁后,才启用远程无钥匙进入系统(否则禁用)。但该措施仅能在车辆归还后提供保护;若租户在租赁期间将车辆暂时停放在停车场(使用遥控钥匙正常锁定车辆,但未结束租赁),攻击者仍可实施 RollBack 攻击。

9.4 基于时间戳的应对措施

与 RollJam 攻击类似,RollBack 攻击本质上也是一种重放攻击。防范这类攻击的一种可行方案是,在遥控钥匙发送给车辆接收端的信号中加入当前时间(即精确时间戳)。文献 32 的作者提出了一种基于时间戳和非对称加密技术的认证协议,该协议包括设置阶段和认证阶段两个部分:设置阶段仅在首次使用遥控钥匙前执行一次,遥控钥匙会生成一对公私钥和一个种子值,并将公钥和种子值发送给车辆接收端;当用户按下遥控钥匙按钮解锁车辆时,认证阶段启动 ------ 遥控钥匙根据种子值生成一个随机数,并将其与时间戳拼接,随后使用私钥对拼接后的字符串进行签名,最后将签名和指令(如解锁)发送给车辆。由于车辆接收端拥有相同的参数(即公钥和种子值),可验证接收信号的签名;若签名验证失败,车辆将不执行对应的指令。当攻击者通过 RollJam 或 RollBack 攻击重放信号时,重放信号中的时间戳与接收端的当前时间不符,导致签名验证失败,攻击最终失败。需注意的是,这类基于时间戳的方案要有效运行,需确保遥控钥匙和车辆接收端的时钟同步,但文献未涉及时间同步相关问题(如时钟偏移)。

10、结论

长期以来,远程无钥匙进入(RKE)系统一直是攻击者的目标,干扰、篡改、重放捕获的遥控钥匙信号等攻击方式屡见不鲜。因此,自 20 世纪 90 年代末起,远程无钥匙进入系统开始采用滚动码技术 ------ 每次按下遥控钥匙按钮后,所有之前的密码都会失效,这一技术大幅增加了攻击者的攻击难度。然而,2015 年出现的 RollJam 攻击被证实可破解所有基于滚动码的系统:通过精心设计的信号干扰、捕获与重放操作,RollJam 攻击总能比原装遥控钥匙提前获取下一个有效密码,使攻击者能够解锁任意车辆。但如果车主在未受 RollJam 设备干扰的情况下使用遥控钥匙(RollJam 设备需隐蔽安装在车辆某处,并持续监控),攻击者所持有的下一个(解锁)密码会因滚动码更新而失效。

本文提出了一种针对当今大多数远程无钥匙进入系统的新型时间无关重放同步攻击 ------RollBack。研究表明,即使滚动码系统中的一次性密码已失效,连续重放之前捕获的若干个信号,仍能触发远程无钥匙进入系统中的回滚机制。RollBack 攻击具有与指令无关的特性,即无论捕获的信号对应锁定还是解锁指令,都能触发相同的回滚行为。因此,在典型场景中,RollBack 攻击完全无需信号干扰;此外,该攻击还具有时间无关性 ------ 只需捕获一次信号,即可在未来任意时间多次重放。

根据实施攻击所需捕获的信号数量、信号序列和重放时间范围,我们衍生出了五种不同的 RollBack 攻击变体。持续分析表明,约 40% 的受测车辆易受某一 RollBack 攻击变体影响,且亚洲地区生产的车辆对该漏洞的脆弱性更高。目前,我们已建立一个关于车辆(是否)易受攻击的众包数据库,任何人都可通过填写表单为该数据库贡献数据。

作为应对措施,我们为车主提供了通用建议,帮助其在不同场景下防范各类基于信号干扰的远程无钥匙进入系统攻击;同时,针对最易受 RollBack 攻击的汽车共享场景,也提出了专项建议。然而,由于 RollBack 攻击无需信号干扰,且目前尚未明确漏洞的根本原因,暂时无法推出有效的应对措施和补丁。

相关推荐
大树8812 小时前
金刚石散热越强,管路越先见顶
大数据·运维·服务器·人工智能·ai
摇滚侠12 小时前
Linux CentOS7 rpm 安装 MySQL 5.7
linux·运维·mysql
霸道流氓气质12 小时前
领域驱动设计(DDD)在 Spring Boot 微服务中的实践指南
运维·spring boot·微服务
DaLi Yao13 小时前
【无标题】
人工智能·安全
Inhand陈工13 小时前
基于台达PLC与映翰通IG502的智慧水产养殖精准投喂与远程运维解决方案
运维·人工智能·物联网·阿里云·信息与通信
Alsn8613 小时前
等待学习-学习目录:Docker 容器安全攻防
学习·安全·docker
网络研究院13 小时前
2026年网络安全
网络·安全·法律·法规·趋势·发展
酣大智13 小时前
ARP代理--工作原理
运维·网络·arp·arp代理
treesforest14 小时前
AI安全系统如何识别异常访问?IP风险识别正在成为关键能力
网络·人工智能·tcp/ip·安全·web安全
shushangyun_14 小时前
2026年快消品B2B系统推荐:支持终端门店订货、促销政策自动化的工具?
java·运维·网络·数据库·人工智能·spring·自动化