这是我之前的一个问题:多次按下汽车遥控器是否为滚动代码提供拒绝服务攻击?的后续问题。
我想强调的是,我问这个问题更多的是为了弥补我对滚动代码的学术(错误)理解上的漏洞,而不是作为一个实用的“我如何启动我的车?”有个问题。
许多(旧的)汽车和车库遥控器使用滚动代码系统,所以每次按下fob按钮,就会发送不同的代码,以防止重放攻击。
我对滚动代码的最初理解是有一个共享的秘密(也许是序列号?)在fob和car之间,它被用于密码学上在两边产生相同的无限滚动码序列。
那样的话,简单的重放攻击就行不通了。(接收方不会两次接受相同的代码。)
我还认为,攻击者需要嗅出不可能的长代码序列,然后他们才能反向工程原来的秘密,从而在序列中生成新的项目。
通过默默无闻的
我现在认为我高估了这项技术,因为一个接收器似乎可以接受一种相对简单的、不需要传输秘密的新的fob --当汽车/车库处于“更改密码”模式时,只需按一次就行了。
这意味着没有共享的秘密,但只有一个非常长的(算法生成的?)这两个设备需要同步的顺序。
如果汽车能听一次fob并预测未来的代码,那么嗅探器肯定也能做到这一点吗?
如果我的新理解是正确的:*所有的fobs使用相同的生成序列。算法可能很模糊,但它并不是由秘密定制的--唯一的“秘密”是fob当前的内部状态,在每一个按钮按下都会广播。*虽然天真的嗅探器不能使用重放攻击,但复杂的嗅探器可以从单个代码生成整个未来序列。*我对汽车/车库安全系统感到失望。
汽车/汽车修理厂是否使用共享的秘密,并在此基础上生成序列?如果是这样的话,在同步过程中允许远程和fob共享秘密密钥的内部进程是什么?
发布于 2019-02-01 22:59:30
https://security.stackexchange.com/questions/202149
复制相似问题