一卡通(M1卡)破解过程记录——理论篇

本文记录了一卡通(M1卡)的安全研究过程,主要探讨M1卡的扇区密钥、控制属性及其认证流程。强调了存取控制的重要性,指出不当设置可能导致卡被锁死。同时,提到了M1卡与读卡器的三轮认证机制,该机制存在Crypto-1算法漏洞,可能导致密钥预测和安全风险。
摘要由CSDN通过智能技术生成

前些日子在研究学校的一卡通安全,在此记录一下一卡通破解的全过程,仅用作学习交流,切勿用于违法用途

 其他几篇: 一卡通(M1卡)破解过程记录——准备篇              获取扇区密钥            数据分析篇

理论篇参考了国内外的一些文献,写的比较杂乱,如有错误请指正,有条件的推荐去谷歌一些外文文献了解其原理,如《Attack.MIFARE》、《Dismantling_MIFARE_Classic》、《Pickpocketing.Mifare》、《The-MIFARE-Hack-1》和《A Practical Attack on the MIFARE Classic》等。

M1卡扇区密钥及控制属性

M1卡的块3数据直接决定了M1卡的访问权限,在使用M1卡之前我们需要设定好合适的控制块,从而使M1卡可以在一个RFID系统下的多台读卡器上正常工作。在M1卡设计之初为了保障其兼容性,恩智浦公司对控制块的设置有着统一的规范,而在M1卡发卡后RFID系统管理者根据实际需要设定每个扇区各自的密码及存取控制字节在后续的对一卡通的攻击过程中,我们需要使用正确的控制属性来修改数据并确保其能在其他读卡器上被正常识别。

大部分情况下我们只需要知道每个扇区的块3(即第4块)掌握整个扇区的控制权限,想要对扇区操作需先获取块3内容,对块3内容操作务必要小心,如果错误操作了控制块就会导致卡被锁死。如果使用的是PHILIPS原始芯片的卡片,且控制字 = FF078069时,通过某台读卡器进行B密钥验证后可读写卡片,说明这台读卡器有BUG。最大的可能性是这个读卡器并不区分AB密钥。
我们可以做个简单的实验,将AB密钥设为不同的值,例如先将密钥BLOCK改写为如下:111111111111FF078069222222222222此时KeyA = 111111111111, KeyB =  222222222222然后用可以通过B密钥读写的读卡器进行操作,就会发现问题所在。

                    FF FF FF FF FF FF FF 07 80 69 FF FF FF FF FF FF
                                 密钥A             存取控制           密钥B  

块3存取控制字节中共有三个控制位对应不同数据块或控制块的读写条件,定义为:"CmXn",其中Cm代表每块控制位号(C1~C3),X代表某块所属扇区号(0~15), n代表该扇区内某块号。例如C173 表示7扇区内块3的第1控制位,其他扇区和块的控制位表示法以此类推。

  控制位表示方法

存储块

控制位1

控制位2

控制位3

存储块属性

块0

C1X0

C2X0

C3X0

用户数据块,(0区0块除外)

块1

C1X1

C2X1

C3X1

用户数据块

块2

C1X2

C2X2

C3X2

用户数据块

块3

C1X3

C2X3

C3X3

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值