IC卡破解方法

更新时间:2023-09-29 15:35:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

RFID破解方法

网上看了很多RFID破解的文章,大部分都是工具使用,一步步该怎么操作,基本上没有讲原理的,估计导致了很多初学者非常迷惑,特别是一旦按照操作步骤操作的时候出错时更加迷惑,不知道是什么状况,国内radiowar也同样没有看到过特别介绍原理性的文章。

建议大家还是多看看外文原版的资料说明,会理解的更透彻些,才能更快的加入到RFID安全研究及测试中。

参考站点:

http://www.proxmark.org 多看看论坛里面提问跟回答

http://nfc-tools.orghttp://www.openpcd.org/http://www.rfdump.orghttp://www.libnfc.org

这篇文章就当是我自以为是的普及性介绍,我想应该还是会给很多人解惑。 首先,先说说目前RFID破解涉及到的几种方法,我尽量以最直白的语言描述。

1、最简单ID卡破解

常见破解办法:ID卡复制,ID卡除了复制也没有其他研究的了,毕竟太简单了。 基本原理介绍:

ID卡属于大家常说的低频卡,一般大部分情况下作为门禁卡或者大部分大学里使用的饭卡,一般为厚一些的卡,是只读的,卡里面只保存有一串唯一的数字序号ID,可以把这串数字理解为你的身份证号,刷卡的时候,读卡器只能读到ID号,然后通过跟后台数据库进行匹配,如果是门禁卡,那么数据库里面就是存在这样的ID号,如果匹配上门就开了,匹配不上门就开不了。

如果是学校的饭卡,刷卡的时候,实际上操作的是你对应ID号相关的数据库中的数据。ID卡本身不存在任何其他数据,所以,学校使用的ID卡饭卡,只能复制卡,刷别人的钱(数据库中的钱),再没有其他办法。

破解方法:通过ID卡读卡器,读取卡内的ID号,然后把这串ID号写入到ID卡空卡中即可,各类工具特别多,需要一个ID卡读卡器。最简单的淘宝有卖的工具,两节7号电池,按读卡按钮读要复制的卡的ID,然后再按写卡按钮,把读到的ID

号写入到空白卡中,即完成了卡复制工作,优点就是方便,缺点就是我们看不到整个过程,对我们安全研究来说作用不大。

2、射频IC卡破解

写在前面的技术铺垫:

射频IC卡种类繁多,标准也繁多,这些不在介绍范围内,但是以下攻击介绍的原理类似,下面不特别说明就是指的M1 S50卡,这也是目前广泛使用的,并且大家做测试时最常见的IC卡。

常见的破解方法:

1)跟ID卡一样,复制IC卡的UID号码写入到新的空白IC卡中。 2)破解IC卡的密码,从而改写IC卡中的数据。

3)破解IC卡的密码之后,把所有数据导出再写入到一个新的空白IC卡中,也就是IC卡全卡复制(NFC手机及PM3等设备也支持把自己模拟成一个IC卡,实际上也属于卡复制一类)。

IC卡破解基本上都逃不脱以上的几种应用,这里面又涉及到一个简单的IC的内部结构的说明,便于理解就简单说明一下。

IC 卡(S50)分为16个扇区(0-15),每个扇区又分为4个区域块(0-63),每个扇区都有独立的一对密码keyA和keyB(先记着独立两个字,后面要思考问题)负责控制对每个扇区数据的读写操作,keyA和keyB分布

在每个扇区的第四块中,第0扇区的第一个数据块,存储着IC卡的UID号(想成身份证号),其他扇区可以存储其他的数据,如钱等数据。

一般IC卡的UID是唯一的也是写死的不能更改,其他块的数据是可以更改的,所以也就有了普通IC空白卡以及UID可写空白卡(可以认为是不遵守规范的商家制作的)。

现在我们开始想象破解的几种环境:

1)读卡器把IC卡当成ID卡一样只识别UID正确即可,不管IC卡内其他数据,这时候,只需要把卡的UID读出来,并使用一个UID可写的空白卡,把UID写入即可。

2)读卡器首先识别UID是否正确,然后再识别其他扇区的数据,通过keyA或者keyB对数据进行读写操作。这样首先UID得正确,其次,keyA或者keyB得正确(后面为了说的方便,我们就不说keyA或者keyB,直接说IC卡密码)。

这样如果知道了IC卡密码,我们也不需要复制新卡,那么就可以更改IC卡中的数据,比如更改饭卡中的钱数。如果我们想复制一张一模一样的卡,那么就把原卡的所有扇区的数据全面导出来,再写入新的UID可写卡中即可。

3)读卡器不识别UID,只管对扇区的密码进行验证,如果验证成功则允许对卡内数据操作等。(如某“XX快捷酒店”的门卡,就不管UID,只要扇区密码正确即可),那我们可以通过扇区密码更改门卡中的数据,如房号,住宿的时间等,也可以通过一个普通的IC卡(uid不能更改)复制一张门卡(跟原卡UID不同),也可以通过一个UID可写的卡,复制一张跟原卡完全相同的卡(跟原卡UID也相同)。

基本上也就是以上几种环境,改写UID、通过扇区密码改写扇区数据、通过把原卡数据导出重新导入到新的IC卡中复制一张卡。

IC卡的UID是不通过密码控制的,可以直接通过读卡器获得,后面讲IC卡的通信过程会说明。那么我们做IC卡破解时,主要的问题就是破解IC卡每个扇区的控制密码,如果密码破解了,那要怎么操作都随便了。

IC卡密码破解的几种方法:

1)使用默认的密码攻击,很多应用IC卡都没有更改默认密码,所以导致可以直接使用默认密码来尝试接入IC卡,常见的默认密码有:

ffffffffffff 000000000000 a0a1a2a3a4a5 b0b1b2b3b4b5 aabbccddeeff 4d3a99c351dd 1a982c7e459a d3f7d3f7d3f7 714c5c886e97 587ee5f9350f a0478cc39091 533cb6c723f6 8fd0a4f256e9 FFzzzzzzzzzz A0zzzzzzzzzz

2)nested authentication 攻击(大家常说的验证漏洞攻击) 前面讲到每个扇区都有独立的密码,一些情况下,比如某饭卡,扇区3中存储着钱等数据,扇区3的更改了默认密码,扇区5中也存储着一些数据,扇区5也更改了密码,其他扇区没有更改默认密码。

我们要操作扇区3跟5,不知道密码怎么办?

使用nested authentication 攻击,这种攻击方式是在已知了16个扇区中任意一个扇区的密码之后,采用的攻击方式,可以获得其他扇区的密码。

我们前面都提到了,16个扇区的密码都是独立的,那么怎么能通过某个扇区的密码获得其他扇区的密码呢?如果可以,那说明扇区就不

是独立的呀,有人会说,由于M1卡的加密算法被破解了,我只能说那是还没有理解,具体算法不讲,只说明一下,算法只是使得猜解密码的时间变短,使得猜解密码成为可能。

这是什么样的原理呢?首先先了解,这是一个对等加密算法,也就是读卡器跟tag中都保存着同样的密码,也都是用同样的算法加密,然后看rfid的验证过程:

开始交互的时候,tag就已经把uid给reader说了,主要牵扯到防冲撞机制,之后才开始验证。

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

首先记住这里面只有第一次的nt是明文,之后都是密文,而且nt是tag发送的,也就是验证过程中,tag是主动的。

本文来源:https://www.bwwdw.com/article/uhhd.html

Top