CRYPTO1: 密码分析学 (门禁卡破解)

是这样的,想请问一下,CRYPTO1: 密码分析学 (门禁卡破解)
最新回答
夏迟归

2026-07-23 22:25:54

介绍 NXP 公司的 NFC 卡加密认证破解过程

从2015年至今,门禁卡、校园卡等的破解复制技术已在全球范围内广泛应用,技术手段从简单的软件工具到复杂的专业设备,只需几分钟甚至一分钟即可完成。这一切都源于1994年NXP发布的一款设计有安全漏洞的NFC卡——MIFARE Classic EV11K,也被称为M1卡。该卡在公交卡、地铁卡、门禁卡、学生卡等众多领域得到广泛应用,但其认证、加密算法对外界保密,直到2008年才有人利用逆向工程还原其细节,揭示了部分攻击路径。尽管NXP紧急修复了一些认证漏洞,但2015年,密码分析学的突破使核心Crypto1加密算法被完全破解,导致NXP宣布不再使用此卡。

如今,2023年,只需一分钟就能完整破解的M1卡仍在广泛流通,其生命周期已超过三十年。NXP的M1卡成为密码学应用中的一个有趣的反面教材。本文将详细介绍M1卡的设计、认证加密方式以及破解路径。

首先,介绍NFC开源软硬件。对于希望快速实践破解门禁卡的同学,市面上有PN532模块及mfoc程序、Proxmark 3等工具,只需一行命令即可实现复制。接下来,本文将深入M1卡的数据存储与认证加密设计,并介绍针对UID、认证、加密(Crypto1)的攻击方式。

接着,详细介绍了M1卡的设计,可视为一个容量仅1KB(1024字节)的U盘。作为门禁卡使用时,1KB足以存储房间信息,每张卡有一个全球唯一的ID,即使不存储信息,仅凭匹配ID也能进行认证。M1卡现可制作得非常小巧,甚至可贴在手机背面。内部结构由线圈与芯片组成,当NFC卡接近读卡器时,线圈供电给芯片,读取ID与数据。M1卡工作频率为高频13.56MHz,早期也有无存储功能的卡,工作频率在125KHz。

通过proxmark命令,可读取M1卡的ID:0xDC 0x23 0xAB 0x11。卡内1KB数据加密存储,共分为16个区块,每个区块64字节,分别加密,可为每个区块设置不同的密钥,M1卡包含Key A与Key B。默认情况下,Key A为FF FF FF FF FF FF,Key B同样为FF FF FF FF FF FF。控制位决定读写数据权限。

M1卡加密机制分为认证与加密两部分。认证过程遵循ISO14443-A规范,但M1卡未完全遵循,导致设计存在漏洞。认证流程包括读取UID、选择读取区块、交换加密所需的非加密信息。加密算法Crypto1不对外公开,最终被逆向工程破解。

接下来,介绍M1卡的认证与加密设计。M1卡的UID是全球唯一,可读取,而1KB数据经过加密。数据分为16个区块,每个区块64字节,分别加密,密钥存储于对应区块。控制位决定读写权限。M1卡的加密机制包括对称加密(使用Crypto1)和非对称加密(用于生成密钥对)。Crypto1属于流加密算法。

本文详细介绍了M1卡的认证与加密设计,以及如何通过认证与加密机制进行破解。通过分析M1卡设计中的漏洞,利用NFC卡与读卡器的通信流程,以及逆向工程还原内部设计,最终实现对M1卡的完整破解。