一、什么是滚动码?
这里我们将简单了解什么是滚动码及其工作原理。首先简要描述其概念和操作。然后,我们将看一个示例来进一步阐明。最后,我们将研究滚动代码以防止攻击的原因。
滚动码,也称为跳跃码,是远程无钥匙进入系统中常用的一种安全技术。实际上,当前的许多系统都采用这种技术,包括车辆锁定系统、车库门开启器和其他无线遥控系统。在这样的系统中,我们有两个设备:发射器和接收器。发射器设备向接收器发送数字代码。如果接收器确认代码有效,则依次执行操作(例如开门)。因此,滚动码的主要目的是防止对系统的未经授权的访问。基本思想是使攻击者难以拦截和复制发送器和接收器之间交换的任何代码。
因此,每次我们按下按钮时,使用滚动代码功能的遥控器都会生成一个新代码。发送和接收设备都使用允许接收器检查每个代码是否有效的策略。另外,接收设备在收到有效代码后,只会再次响应下一个有效代码。
这种机制使得被盗的代码对入侵者毫无用处,因为代码仅有效一次。
接下来,让我们看一个使用滚动代码技术的示例,以了解其工作原理。
二. 一个例子
在此示例中,我们描述了滚动代码应用于汽车远程锁定系统时的工作原理。在所描述的情况下,远程控制设备是汽车钥匙扣,并且接收设备是汽车的中央锁定系统。
下图说明了这种情况。完整的过程包含四个步骤:(1) 初始同步,(2) 代码生成,(3) 计数器递增,以及 (4) 接收器验证:
在第一步中,我们需要将汽车钥匙扣与汽车的中控锁系统配对。这样,两个设备建立同步的起始码和计数器。
从那时起,每次我们按下遥控器上的按钮时,它都会生成一个唯一的代码并将其发送到接收设备(步骤 2)。
在此步骤中,算法会考虑同步代码和计数器来生成唯一代码。每次传输后,传输设备都会递增其计数器(步骤 3)。
这确保了下一个发送的代码将与上一个不同。
接收设备对接收到的每个代码执行验证检查(步骤4)。执行此验证的常见方法是检查接收到的代码是否存在于接下来k个有效代码的窗口中。
更准确地说,假设n是用于生成先前有效代码的计数器。因此,只有当接收设备确认发射机使用范围[n+1,n+k]中的计数器生成代码时,接收设备才会接受接收到的代码。否则,接收设备将拒绝该代码。
此外,在步骤4中,在成功验证代码并执行预期动作之后,接收设备更新其本地计数器。换言之,它将在最近接收的代码的验证过程中发现的范围[n+1,n+k]中的值分配给计数器。
三、为什么滚动代码可以防止攻击?
一个重要的好处是滚动代码技术消除了固定代码技术中存在的漏洞。例如,这可以防止重放攻击,其中攻击者故意重复甚至延迟代码。滚动代码功能提供的安全性在于代码仅有效一次。也就是说,即使攻击者拦截了传输的代码,该代码在使用后也会变得过时,因为计数器会在下一次传输时递增。
此外,在不知道同步代码和计数器值的情况下,攻击者很难预测或复制未来的代码。设备仅在同步阶段交换代码。因此,必须仅在安全环境中同步设备,远离可能的入侵者。否则,入侵者可能会在同步阶段危害系统。
在本文中,我们研究了滚动代码的概念。滚动代码是一种安全技术,可以显着降低未经授权访问无钥匙进入系统的风险。
其操作基于这样的理念:一个设备通过先前建立的计数器生成的代码向另一个设备发送命令。鉴于该技术在无钥匙进入系统中的广泛使用,我们可以得出结论,滚动代码可能会使入侵者更难以进入车辆、车库门或其他安全区域。