我一直在阅读一些关于汽车安全的知识,以及汽车可以通过各种重放攻击的各种改变而被盗的所有方式。在研究是否有任何更现代的汽车使用比“使用后的新代码”更安全的东西时,我真的没有发现任何令人满意的东西。这让我产生疑问,为什么汽车制造商不使用 RFC 4226 之类的东西来保护汽车?这似乎是一个足够简单的解决方案。也许我在这里错过了什么?
为什么汽车钥匙不使用像 RFC 4226 这样的算法?
在某些情况下,RFC 4226 (HOTP) 仍然容易受到重放攻击。在老式钥匙扣的情况下,您必须按下按钮才能解锁汽车,想象一下有人在您不在汽车范围内时可以短暂使用钥匙扣。攻击者可以按下按钮一次,记录遥控钥匙传输的代码,然后冲到你的车上,重放记录的代码,并获得对车辆的访问权限。
另一种可能的攻击是RollJam 攻击,只需要 32 美元的设备。该设备隐藏在车辆附近。当车主过来开锁时,遥控钥匙发出的信号会被设备记录下来并卡住,导致车子无法开锁。主人自然会再试一次。信号被记录并再次阻塞,但第一个信号随后被重放。汽车接收到重放的信号并解锁。同时,第二个信号还没有被汽车看到,所以一旦车主离开,它就可以用来解锁汽车。
对于更现代的密钥卡,它变得更加复杂。这些设计为被动式,因此您无需按下任何按钮即可解锁汽车。只要钥匙在你的口袋里,当你走近它时汽车会自动解锁,当你走开时汽车会自动锁定,无需交互。不错,对吧?事实证明,这些都是少数需要保护的。现在,如果您在这种情况下使用 HOTP,那么攻击者所要做的就是假装是汽车并在您不在汽车范围内时请求代码。然后记录代码,回到车上,重放它并获利。
然后是一个DOS漏洞。由于攻击者可以根据需要请求任意数量的 HOTP 代码,因此他们可以使遥控钥匙的内部 HOTP 计数器偏离汽车中的计数器如此之远,以至于遥控钥匙将不再能够进行身份验证。(实际上,这也可能是普通 fobs 的问题。如果您的孩子开始玩它并按下解锁按钮数百次会发生什么?)
事实上,事实证明,这些现代无钥匙遥控钥匙需要付出很多努力才能确保安全。早期的制造商决定实施专有的挑战-响应机制。一个密码安全的挑战响应系统,会出现什么问题?好吧,猜猜偷车贼做了什么?
他们只是简单地放大了车辆和遥控钥匙传输的信号,以使挑战-响应机制在比预期更远的距离上工作。因此,您的 BMW 停在您家门外,您可以舒适地躺在床上睡个好觉。有人拿着一个特殊的设备走到你的窗前。该设备将放大的挑战从您的汽车传递到您房间的密钥卡。遥控钥匙认为汽车就在附近,因此它会计算响应并将其发回。该设备会放大响应,使其到达汽车,然后 BOOM,当你早上醒来时,你闪亮的新宝马就不见了。
因此,制造商不得不采取进一步的安全措施,例如测量密钥卡响应所需的时间。如果收到响应的时间过长,汽车就会断定遥控钥匙超出范围。但我猜汽车制造商现在已经吸取了教训,并且拥有更强大的安全性(或者可能没有)。
设计缺陷不在于证明者(密钥)和验证者(汽车)之间的密码绑定。它在通讯通道中。HOTP 是一种生成令牌的安全方式,但它不保护通道。HOTP 只能用于遥控锁定/解锁的钥匙扣。NFC 设备有一个无法解决的中继攻击问题,这是针对密钥卡的攻击所依据的。
现代汽车使用 3 种类型的钥匙:
带遥控锁定/解锁和按钮启动的钥匙扣
钥匙扣使用滚动代码来授权锁定和解锁命令。汽车被动地监听代码并验证它是否与未来的代码匹配。制造商实际上可以在这里使用 HOTP,但不能用于按钮启动。按钮启动通过质询和响应来验证密钥卡,以检测密钥卡的存在。汽车还会在运行时定期 ping 遥控钥匙以检测它的存在,如果没有检测到遥控钥匙,则会发出警告。钥匙扣容易受到RollJam 攻击和信号放大中继攻击(SARA)。
在 RollJam 攻击中,中继会阻塞并捕获第一个信号。车主认为它可能已经错过了,再次发出信号。继电器卡住并捕获第二个信号并重放第一个信号。现在攻击者有未使用的第二个信号来解锁汽车。为了启动汽车,攻击者使用 SARA 放大挑战信号,使其到达钥匙扣并将响应转发回汽车。启动汽车就足够了,但是如果汽车停下来,没有钥匙扣就不会再次启动。
无钥匙进入 Fobs 和按钮启动
无钥匙进入钥匙不使用滚动密码来锁定/解锁门。他们完全使用挑战-响应。汽车不断地发出一个随机挑战,并监听无钥匙进入卡以在挑战中产生令牌。只要无钥匙进入遥控钥匙在附近,车门就会保持解锁状态,只需按下按钮即可打开行李箱。
它也容易受到 SARA 的攻击。偷车贼已被抓获利用这种攻击方式偷走豪华车。唯一的条件是发动机一旦启动,离开视线后不应该关闭。
智能卡无钥匙进入和按钮启动
非接触式智能卡密钥相对更安全,因为它们的无源电源将证明者的范围限制在距离验证者仅 3-6 厘米的范围内。超出该范围,智能卡将无法通电,或者验证者无法获得来自卡的响应。Tesla Model X 随附 NFC 智能卡钥匙和无钥匙进入钥匙作为附件。这与非接触式支付的概念相同。
虽然 SARA 由于范围小而不能在非接触式智能卡上工作,但基本的中继攻击仍然有效。例如,攻击者只需在你的口袋周围挥动继电器,同时通过 wifi、蓝牙或移动数据与汽车附近的另一个继电器连接。这种攻击也适用于非接触式支付。
针对中继的唯一对策是距离边界协议(演示)。使用距离限制,如果延迟容限为 20 纳秒,则中继必须在验证者和证明者之间的距离小于 6 米。只有验证者需要为此提供时钟。距离限制实际上是EMV 非接触式卡的规范,并且已知只有万事达卡在使用它。汽车制造商需要它来防止针对无钥匙进入遥控钥匙和智能卡无钥匙进入的中继攻击。