序
最近接触到Arduino的RFID模块,一直在思考怎么给手中的RC522模块做应用拓展,恰好Arduino库更新了有关RFID Cloner的相关源码,连接上模块烧入程序,预想是读出手头上的洗衣卡内信息。但是后来由于M1卡扇区加密的情况,遂想尝试破解读数据。
材料
- 校园一卡通
- 洗衣卡
- UID白卡
- ACR122U以及配套软件
- Windows平台 RFID RadioEye、M1服务程序。
关于M1卡
M1卡全称Mifare classic 1K卡,属于无源被动式射频卡,又称为S50卡、复旦卡。工作原理简单的说读卡器向卡片发送一定频率的电磁波,使卡片内部电路共振产生电荷,电荷积累到一定量的时候就会使卡片芯片工作,从而向读卡器反馈数据。M1卡内部有编号为0-15的16个储存扇区,每个扇区内又有编号为0-3的4个数据块,每个扇区0号数据块储存卡片ID和制造商预先写入数据,3号数据块钱储存着对扇区读写操作的两段密钥KeyA和KeyB,密钥中间是控制位。M1卡的0扇区是出厂预置的,所以在后续操作中不能进行写入操作。所以不能对M1卡进行全卡的复制,如果想复制M1卡,则新卡可以选择0扇区可写的UID白卡。
Arduino+RC522
构成很简单,RC522模块对应针脚正确连接,基本就是个读写器的雏形了,烧入程序,开始读卡,但是RC522读到后面几个扇区时出现了连接超时的情况,以为是模块连接问题,后来换了公交卡(同为M1卡),发现全扇区均不可读