找回密码
 注册
首页 ≡≡桌面技术≡≡ 非接触式IC卡 关于nested authentication 攻击(验证漏洞攻击)原理 ...

关于nested authentication 攻击(验证漏洞攻击)原理

灰儿 2019-5-14 15:26:02
关于RFID 中 nested authentication 攻击(大家常说的验证漏洞攻击)
    前面讲到每个扇区都有独立的密码,一些情况下,比如某饭卡,扇区3中存储着钱等数据,扇区3的更改了默认密码,扇区5中也存储着一些数据,扇区5也更改了密码,其他扇区没有更改默认密码。我们要操作扇区3跟5,不知道密码怎么办?使用nested authentication 攻击,这种攻击方式是在已知了16个扇区中任意一个扇区的密码之后,采用的攻击方式,可以获得其他扇区的密码。我们前面都提到了,16个扇区的密码都是独立的,那么怎么能通过某个扇区的密码获得其他扇区的密码呢?如果可以,那说明扇区就不是独立的呀,有人会说,由于M1卡的加密算法被破解了,我只能说那是还没有理解,具体算法不讲,只说明一下,算法只是使得猜解密码的时间变短,使得猜解密码成为可能。

这是什么样的原理呢?首先先了解,这是一个对等加密算法,也就是读卡器跟tag中都保存着同样的密码,也都是用同样的算法加密,然后看rfid的验证过程:开始交互的时候,tag就已经把uid给reader说了,主要牵扯到防冲撞机制,之后才开始验证。

第一次验证时,读卡器首先验证0扇区的密码,card给读卡器发送一个随机数a(明文),然后读卡器通过跟密码相关的加密算法加密a,同时自己产生一个随机数b(密文)发送给card,card用自己的密码解密之后,如果解密出来的a就是自己之前发送的a,则认为正确,然后通过自己的密码相关的算法加密读卡器的随机数b(密文)发送给读卡器,读卡器解密之后,如果跟自己之前发送的随机数nr相同,则认为验证通过,之后所有的数据都通过此算法加密传输。


01.jpg
        首先记住这里面只有第一次的a是明文,之后都是密文,而且a是card发送的,也就是验证过程中,card是主动先发随机数的。我们破解的时候,读卡器中肯定没有密码(如果有就不用破解了),那么card发送一个a给读卡器之后,读卡器用错误的密码加密之后发送给card,card肯定解密错误,然后验证中断,这个过程中,我们只看到card发送的明文随机数,card根本没有把自己保存的密码相关的信息发送出来,那怎么破解呢?

        所以,要已知一个扇区的密码,第一次验证的时候,使用这个扇区验证成功之后,后面所有的数据交互都是密文,读其他扇区数据的时候,也需要验证,也是card首先发送随机数a,这个a是个加密的数据,我们前面也说过每个扇区的密码是独立的,那么加密实际上就是通过card这个扇区的密码相关的算法加密的a,这个数据中就包含了这个扇区的密码信息,所以我们才能够通过算法漏洞继续分析出扇区的密码是什么。

        这也是为什么nested authentication攻击必须要知道某一个扇区的密码,然后才能破解其他扇区的密码。






您需要登录后才可以回帖 登录 | 注册
学习中心
站长自定义文字内容,利用碎片时间,随时随地获取优质内容。
Q设计语言 了解更多
Q Design 提供商家设计所需的指导与资源,帮商家快速完成产品设计、降低生产成本。
学习中心
站长自定义文字内容,利用碎片时间,随时随地获取优质内容。
Q设计语言 了解更多
Q Design 提供商家设计所需的指导与资源,帮商家快速完成产品设计、降低生产成本。