CH584读卡M1卡和CPU卡讲解

前言:

针对14443卡类型讲解,例如S50/CPU卡

卡类型区分:

image

读卡流程

在读取逻辑加密卡(M1卡 MIFARE Classic例如S50)数据时,其使用 14443A 作为底层协议,并在其上附加了私有的加密认证和块读写命令;
在读取CPU卡(如FM1280)数据时,同样使用 14443A 作为底层,但上层传输使用 14443-4 和 APDU 命令;

讲解:

  1. ISO 14443-3 就像 拨号、振铃、建立连接 的过程。这个阶段的目标只有一个:从多个可能的卡片中,唯一地选中一张,并获得它的身份证(UID)。
    • 初始化:读卡器发射能量,唤醒射频场内的所有卡片,告诉它们“我要开始通信了”。
    • 防冲突:如果有多张卡片同时被唤醒,读卡器会通过一套算法(类似二进制树形检索),快速逐一识别出每张卡的 UID(唯一序列号),然后选择其中一张进行后续操作。
  2. ISO 14443-4 就像 接通后,双方约定使用同一种语言(比如英语)进行正式交谈 的过程。 
    • 为什么要它?
      1. CPU 卡内部有一个操作系统(COS),它需要接收的命令非常复杂(比如 APDU:选择文件、验证 PIN、签名等)。这些命令长短不一,需要更高的可靠性、分包传输和流量控制。第 3 层的简单“发一个包、收一个包”满足不了需求。
    • 它做了什么?
      1. 协议激活(RATS/ATS):读卡器发送 RATS 命令,询问“你的通信能力如何?”。卡片回复 ATS,告诉读卡器“我最大能收多少字节、需要多长的等待时间”等参数。这就好比接起电话后,双方先确认“你会说中文吗?你说话速度多快?”。
      2. 建立逻辑链路:之后,读卡器和卡片之间的所有数据(APDU 命令和响应)都会被封装在 I-block(信息块) 中传输。I-block 支持长数据分包、发送确认(链结)、错误检测等。
      3. 可选速率协商(PPS):可以协商从默认的 106kbps 提升到 212、424 甚至 848kbps。 

总结:

  1. 发送 REQA / WUPA → 获得 ATQA。

  2. 根据 ATQA 中指示是否支持 ISO 14443-4(例如 ATQA 的 bit 8 或 bit 13,不同芯片定义略有差异,通常 0x0008 表示支持)。

  3. 如果 ATQA 指示不支持 14443-4(比如经典 M1 卡 ATQA=0x0004):
    → 走 MIFARE 经典流程:防冲突选卡 → 获取 UID → 认证 → 读/写块。

  4. 如果 ATQA 指示支持 14443-4(比如 FM1280 返回 0x0008):
    → 走 ISO 14443-4 流程:防冲突选卡 → 获取 UID(这一步仍然需要)→ 发送 RATS → 接收 ATS → 然后使用 APDU 进行后续操作。

 

posted @ 2026-06-09 15:21  SweetTea_lllpc  阅读(38)  评论(0)    收藏  举报