当前位置: 首页 > news >正文

用ACR122U读写器破解一张食堂饭卡,我发现了M1卡存储余额的秘密

解密M1卡:从食堂饭卡破解看NFC安全机制

那天中午在食堂排队时,我突然意识到手中的饭卡可能隐藏着不为人知的秘密。这张看似普通的塑料卡片,每次"嘀"一声就能完成支付,背后究竟是如何存储和计算余额的?作为一名硬件爱好者,我决定用ACR122U读写器一探究竟。

1. 认识我们的研究对象:M1卡

M1卡的全称是NXP Mifare1系列智能卡,采用13.56MHz射频识别技术。你可能不知道的是,这种卡片已经广泛应用于:

  • 校园一卡通系统
  • 公共交通卡
  • 门禁卡
  • 会员储值卡

M1卡的核心特点

  • 1KB存储容量(部分型号可达4KB)
  • 分为16个扇区,每个扇区4个块
  • 每个扇区有独立的两组密码(Key A和Key B)
  • 采用三重认证机制

注意:实际操作前请确认你拥有该卡的合法使用权,未经授权的卡片操作可能涉及法律风险

2. 工具准备与基础环境搭建

要分析M1卡,我们需要以下硬件和软件:

2.1 硬件配置

设备名称型号用途说明
NFC读写器ACR122U卡片数据读取与写入
测试用M1卡任意品牌建议使用自己的可操作卡片
计算机任意配置运行分析软件

2.2 软件工具链

  • 驱动软件:ACR122U官方驱动
  • 分析工具
    • Mifare Classic Tool (MCT)
    • HxD十六进制编辑器
    • Python脚本(用于数据解析)
# 简单的十六进制转十进制工具 def hex_to_balance(hex_str): value = int(hex_str, 16) return value / 100.0 # 假设存储单位为分 print(hex_to_balance("7CC4")) # 输出:319.4

3. 卡片数据结构深度解析

通过ACR122U读取卡片后,我们得到了一个1KB的dump文件。用十六进制编辑器打开,发现数据主要分布在几个关键扇区。

3.1 扇区布局分析

典型的M1卡存储结构如下:

扇区0: [块0] UID和厂商信息 [块1] 用户数据 [块2] 用户数据 [块3] 密码A(6B) + 存取控制(4B) + 密码B(6B) 扇区1-15: 类似结构,每个扇区独立控制

3.2 余额存储的奥秘

通过对比多次消费前后的数据变化,我们定位到余额存储在扇区11的块1中:

00 00 00 27 00 00 74 A4 FF FF 8B 5B 00 00 00 23

其中关键数据段:

  • 74 A4:当前余额(0x74A4 = 29860分 = 298.6元)
  • 8B 5B:校验值(0x74A4取反+1 = 0x8B5C,实际少1可能是特殊算法)
  • 2723:交易计数器

提示:许多消费卡系统采用"分"作为基本单位存储金额,分析时需注意单位转换

4. 安全机制与防护建议

虽然我们成功解析了卡片数据结构,但这揭示了M1卡的一些安全隐患:

4.1 已知安全漏洞

  1. 弱加密问题

    • Crypto1算法已被破解
    • 部分卡片使用默认密码(如FF FF FF FF FF FF)
  2. 数据校验不足

    • 部分系统仅依赖卡片存储数据
    • 缺乏服务器端验证
  3. 物理安全缺陷

    • 卡片易被克隆
    • UID可伪造(某些特殊卡)

4.2 防护措施建议

对于个人用户:

  • 为卡片设置复杂密码(如果系统支持)
  • 定期检查消费记录
  • 避免将卡片长时间暴露在高磁场环境

对于系统设计者:

  • 采用更安全的CPU卡替代M1卡
  • 实现服务器端余额校验
  • 使用动态加密算法

5. 进阶实验:数据修改与验证

在完全理解数据结构后,我们可以尝试修改余额数据。以下是关键步骤:

  1. 定位目标扇区:确认余额存储位置(本例为扇区11块1)
  2. 计算新值
    • 600元 = 60000分 = 0xEA60
    • 校验值 = ~0xEA60 + 1 = 0x15A0
  3. 修改数据
    原数据:00 00 00 27 00 00 74 A4 FF FF 8B 5B 00 00 00 23 新数据:00 00 00 27 00 00 EA 60 FF FF 15 A0 00 00 00 23
  4. 写入验证
    • 使用Mifare Classic Tool写入修改后的块
    • 在消费终端上测试新余额
# 使用nfc-mfclassic工具写入修改后的块 nfc-mfclassic w B a dump.mfd modified.mfd

这个实验让我深刻理解了M1卡的工作原理,也意识到日常使用的各种智能卡其实都遵循着类似的存储逻辑。下次当你"嘀"一声刷卡时,或许会想起这背后复杂的十六进制舞蹈。

http://www.jsqmd.com/news/824352/

相关文章:

  • 实测5款AI教材编写工具,低查重效果惊人,快速生成专业教材
  • 基于RK3399的智能黑板核心硬件选型与功能模块深度解析
  • 2026年4月评价高的混凝土制造商推荐,轻骨料混凝土/B型轻集料混凝土/A型轻集料混凝土,混凝土制造企业口碑推荐分析 - 品牌推荐师
  • 2026年丹阳眼镜培训学校,权威排名推荐 - GrowthUME
  • 基于单片机的氧气含量检测系统设计(有完整资料)
  • 使用 Taotoken CLI 工具一键配置开发环境中的多工具密钥
  • 【Transformer系列】从One-Hot到Embedding:构建AI语言理解的基石
  • 把智谱清言输出格式转换成word效果最好的工具有哪些?收费还是免费使用? - AI导出鸭
  • 人事管理软件系统推荐,泛微・聚才林打造专业 HRM 解决方案 - 资讯速览
  • 九大网盘文件直链智能获取:告别客户端束缚的自动化解决方案
  • 学术论文排版标准化挑战的LaTeX自动化解决方案
  • RAG 系列(十六):Graph RAG——用知识图谱解决多跳关系问题
  • Rust ORM实战:Diesel深度解析
  • 《AI视觉技术:从入门到进阶》第三章(3)
  • STM32串口通信实战:从原理到蓝桥杯嵌入式竞赛应用
  • 一次断电引起的Oracle故障恢复-ora-600 2662故障---惜分飞
  • 贾子竞争哲学与新范式升维战略——从 “多维对抗“ 到 “意义消解“ 的终极战略蓝图
  • CMP仿真:芯片制造良率保障与可制造性设计的关键技术
  • OCPP 1.6 协议详解:ClearChargingProfile 清除充电配置文件指令
  • 对比直接调用与通过taotoken聚合调用的ubuntu端延迟体感
  • 基于物联网的智能家居灯光控制系统(有完整资料)
  • 【职场】所有的职场画饼,都是低成本的控制术
  • 抖音直播弹幕数据抓取:如何构建高效的实时监控系统?
  • 北京正规乔雅登注射机构实地盘点与资质解析 - 资讯焦点
  • 实战指南:利用CTFTraining题库与Docker-Compose在CTFd中一键部署Web靶场
  • Fast-Planner核心思想拆解:从B样条优化到时间重分配,如何让无人机飞得更快更稳?
  • 成都钢材市场包钢集团H型钢2026年5月(上、中、下旬)出厂价格及政策|盛世钢联现货行情与预测 - 四川盛世钢联营销中心
  • Openclaw 错误分析 与 解决方案 之:Selected model is at capacity. Try a different model, or wait and retry.
  • MoneyPrinterTurbo终极指南:5步实现AI短视频自动化创作
  • CANape工程实战指南:从零搭建XCP测量与标定环境