门禁卡模拟一些心得
由于与手机nfc同频率,所以可以用nfc写入数据代替实体门禁卡。各大安卓厂商纷纷推出了门禁卡功能就是基于这个原理。
IC卡一共有16个扇区,0到15,每个扇区又有4个区块,在某几个区块,物业会给你写上你小区的关键数据。一张标准的门禁卡数据,里面存储了很多关键信息,比如有效期,小区编号,门禁读头编号,还有的梯控卡,里面存储了楼层数据,用来控制这张卡可以刷开哪个读头,或者你能去哪个楼层,以及卡的使用有效期。
当你刷卡时,读头一般会校验你的卡号,他是通过特定的算法,对你的卡号进行计算,最后得出来一个数值,用这个数值和已经提前写在了门禁卡某个校验位的数值进行比对,一致了,就认为你的卡号是已经被授权的卡号。就会放行。随后读头会继续校验加密位置,一般在每个扇区的3区块,叫做keya部分,同样利用卡里固定位置的一些数据进行计算,最后得出来卡密,和你卡里已经写入的卡密比对,一致了放行。其他有效期,楼层之类,也是这样校验。读头的校验每个位置用的算法都是厂家独有的,固定的,所以当你想改变卡的有效期,楼层,或者增加能刷的读头编号时,校验位也要用厂家的算法进行计算,然后把计算出来的数据写进对应位置。如果你手里有这个算法,那你就可以自己修改你手中的卡数据。
如果只是简单的模拟,那就没有这么复杂了,各大手机厂商推出的门禁卡功能,有一部分机型是可以直接对加密卡进行解密,解密完得出完整的数据,这样的可以直接进行模拟。
还有一部分机型,没有解密的能力,这部分机型,模拟加密门禁卡时,要么厂家直接设计成读取到加密区禁止你模拟,要么直接跳过加密区,只给你模拟没有加密的部分,导致数据不完整,去刷卡时,读头校验加密区,可是你模拟的卡加密去压根没有数据,比对不一致,就会刷卡失败。
只有卡号的卡是不存在加密区的,所以模拟加密卡一般采用下面的方法。
1先做中转卡,用cuid卡制作一张和原卡同卡号的空白卡。
2用手机模拟这个没有加密只有卡号的cuid卡。手机里就多了一张和原卡卡号一致的空白卡。
3再用专用设备去解密原卡。可以通过穷举法跑密钥库解密,也可以用一些特殊设备,模拟原卡卡号,去读头处刷设备,截取读头通过计算返回的数据,快速计算出加密区数据,这种方法也叫做嗅探。拿到完整的门禁卡数据。
4,把这个数据写入到上面手机模拟出来的只有卡号的空白卡里。手机模拟就完成了。
并不是所有的卡你模拟了,就一定原卡和模拟卡可以同时使用,有一些门禁卡厂商为了防止你复制他的卡。采用滚码原理设计了数据,这类卡,卡内有若干个位置,你刷一次卡,读头比对校验成功以后,会向你的卡里这些位置写入新的数据,一般这些位置写的是刷卡次数,和次数校验。用于下次刷卡比对。再说通俗点,比如你原卡是A,模拟卡是B,是滚动码原理。A里面存储了刷卡次数x,校验值a,和B卡一致。当你刷A卡时,读头会写入一个新的数据y,替换掉了x,同时再另外一个位置写入y校验生成的校验数值b,替换掉a,同时读头会记录下你这个卡号刷卡次数是y次,当你再用B卡刷卡,由于B卡里刷卡次数数值是x,和y不一致,读头校验不通过,就会认为B卡是复制卡,B卡就不能正常使用,或者直接把这个卡号拉黑,导致AB都不能使用。这种卡,你想用模拟卡刷卡,就不能再用原卡了。
所以,不要认为什么卡都可以复制。复制成功了不代表使用成功。建议先去了解自己的卡是不是滚动码,再做行动。
目前市面上性价比最高的解密设备是熊猫GP3代,可以满足大部分人玩卡需求。pm系列太贵了。慎重考虑。