手机NFC模拟M1门禁卡、写CUID白卡的一些研究记录


一、需求场景

近来小区安装了智能门禁,但只配发了一张门禁卡,不方便使用,于是产生了用手机模拟门禁卡,或者复制一张门禁卡的想法。

本文使用的软件:(CSDN无法修改下载积分了。。。)

包括手机NFC读写卡神器Mifare Classic Tool(MCT)2.2.5最新版、手机读卡工具NFC TagInfo、NFC卡模拟软件Card emulator、RE管理器,以及一款NFC模拟的小工具0.4(适配机型不多)。

(由于原理一致,本文只侧重于讨论手机NFC写白卡,不讨论PN532、PM3、COPY5等设备读写卡。)

(本文是对研究过程的记录,只作学术研究,作者遵纪守法,是个良民。)

二、卡片分类

M1卡:全称Mifare classic 1K,普通IC卡,0扇区不可修改,其他扇区可以反复擦写。通常我们使用的门禁卡、电梯卡都是M1卡。

M1卡是NXP(恩智浦半导体)公司研发的IC卡,执行标准是ISO/IEC14443 Type A,读写频率是13.56MHz。目前大多数手机厂商使用的NFC芯片都是NXP,另一部分则是BRCM(博通)方案,均执行同一标准,这是手机读写M1卡的技术基础。

UID卡:普通复制卡,可以反复擦写所有扇区,门禁有防火墙则失效。

CUID:升级复制卡,可以反复擦写所有扇区,可以穿透大部分防火墙。

FUID:高级复制卡,0扇区只能写入一次,写入后变为M1卡。

UFUID:超高级复制卡,0扇区只能写入一次,封卡后变为M1卡,不封卡变为UID卡。

复制卡均可在网上购买,有普通卡片、钥匙扣、滴胶卡等类型,CUID通常1.5元/张,越高级的卡越贵。

三、M1卡的结构

(计算机领域的计数均是从0开始)

(M1卡标准储存的数据使用16进制,简称HEX,即由0-9、A-F组成,也写作0xAA)

(一)存储结构

Mifare classic 1K,即存储容量1K=1024Byte,包括16个扇区,每个扇区含4个块,每个块16Byte.

第0扇区比较特殊,0区0块前8位为厂商UID码,可以理解为M1卡的识别码。

0-2块为储存内容区间。

3块为系统保留区间,用于存放卡密码和控制码,其中:

3块前12位为keyA(密码A),3块后12位为keyB(密码B),3块中间8位为控制码。

A/B密码的默认值为12个F或0,翻译为2进制即4*12个1或0

控制码默认值为FF078069,意思是A密码(非默认情况下)不可见,B密码可见,读写验证A密码。

M1卡结构的参考文章

(二)读写权限

M1卡有4种主要权限:读、写、增量、减量。

以及2种附权限:读写控制码、读写A/B密码。

每种权限都要使用A或B密码、并在控制码约束下来操作。

基于M1卡的结构及读取权限特点,M1卡又可以分为非加密、半加密、全加密三种类型。

非加密:16个扇区的A/B密码均使用默认值。

半加密:0扇区外的某一个或多个数据扇区A/B密码不是默认值。

全加密:所有扇区A/B密码不是默认值。(由于M1卡的加密逻辑已经被公开,所以所有的M1加密卡都可以被破解,破解能力PN532<PM3<COPY5)

四、防伪系统的原理和破解

常见的防伪系统有三种,

一是加密型,通过对扇区进行加密实现防伪。单纯的加密型已经可以通过PN532、PM3等工具完成破解。

虽然卡A/B密码可以被破解,但真正破解的重头戏是在于如何找出卡信息的存储规律,从而进行自定义修改等操作。

二是篡改型,刷卡时系统尝试写入0扇区,如果成功,则卡片作废(CUID特性,0扇区可反复擦写)。

三是滚码型,每次刷卡,系统都从特定扇区读取验证一段校验码,并写入新的校验码。如果不能通过多次刷卡找到校验码的规律,则不可复制。

五、卡模拟及复制

(由于手机NFC的特性,通常用手机模拟M1卡时,只模拟8位厂商UID码。)

(使用手机模拟M1卡,必须ROOT,因为原生安卓不开放NFC的控制API)

(小米、华为可以通过自带的钱包功能实现模拟,无需ROOT)

了解了上述M1卡的一些基础知识后,再进行卡模拟或复制效率就高了。

(一)手机模拟M1卡

1、识别手机NFC的类型

由于不同手机厂商使用的NFC芯片不同,首先要确认自己的手机是什么NFC芯片,执行了什么协议标准。方法是用另一台手机使用NFC TagInfo识别目标手机,

  • 情况1. 识别不到,或被反向识别(即目标手机反而识别出了另一台手机的识别码)。

  • 情况2. 多次识别,目标手机UID没有变化。

  • 情况3. 多次识别,目标手机UID是08开头的随机值。

上述情况1./2.通常出现在安卓7.0以下,或国产手机阵营中,说明可以通过最简单的“直接修改配置文件”的方法完成M1卡模拟。

上述情况3.通常出现在安卓7.0以上,或三星S6以上产品中,只能通过“间接修改配置文件”的方法完成M1卡模拟。

2、直接修改配置文件

(1)利用模拟APP

大多数NFC模拟APP的原理都是利用ROOT权限,修改手机NFC的配置文件,改变默认应答码。

安卓的NFC配置文件保存在/vendor/etc/目录下,根据芯片的不同,分为libnfc-nci.conf、libnfc-nxp.conf和libnfc-brcm.conf

现在已经有成熟的APP可以完成模拟,比如NFC卡模拟软件Card emulator。该软件 V4.0.1以前的普通版本有广告,但没有模拟卡数量的功能限制。其配置文件存放在手机存储目录下的/card emulator/cards.json中,可以使用文本编辑器修改。

(2)利用RE管理器

这个方法的原理和上述APP的,修改过程网上很多,这里不再赘述,可以参考文章1文章2

3、间接修改配置文件

如果出现前述情况3.,说明系统不支持修改配置文件改变NFC应答码,这是ISO/IEC 14443-3协议中关于冲突检测的安全性要求。

间接修改的方式需要通过修改NCI层的libnfc-nci.so函数,来实现控制NFCC的目的,从而改变NFC随机应答码。

操作过程很复杂,不推荐使用,具体可以参考文章

(二)复制卡

不希望ROOT手机的玩家可以购买复制卡进行复制。

购买哪种复制卡要根据原卡情况进行选择,如果原卡是非加密卡,或是内容较简单的卡,推荐购买CUID,也可以买些UFUID以备不时之需。

MCT是手机读写M1卡的神器(无需ROOT),其功能包括读写卡、分析卡内容(APP中称作'转储’)、自定义A/B密码。

MCT自带了两种密码字典:

  • std.keys(如12个F/0等常用的密码组合)

  • extended-std.keys(如A1B2C3等常见的密码组合)

在读写卡时需要加载这些密码字典,来完成解码。

也可以自定义密码,或是下载一些字典文件,用手机解码(手机的运算速度不如电脑,不推荐用手机解码)

MCT的操作网上有很多,这里写一些自己操作的心得。

1、通常第一次写白卡时(CUID等),先编辑好需要写入的卡内容(即转储文件),用“写转储(克隆)”,即dump模式,一次写入一个或多个扇区。

2、非常推荐第一次写白卡时就改写默认控制码,使用【08778F69】,意思是A密码用于读取,B密码用于写入,A可见B不可见。(操作这一步一定要牢记B密码)

使用这一控制码的好处:

(1)可以通过修改B密码,防止别人或门禁防伪系统覆盖写入你的CUID卡。

(2)可以防止默认控制码dump写入后出现A密码不可读的情况。

(3)后续可以通过MCT指定位置针对性地修改部分块信息,不需要整卡格式化。

3、如果是全卡复制型写入白卡,在复写时,要先格式化全卡。

六、结语

本文记录了作者使用手机NFC模拟M1门禁卡,以及写CUID白卡的一些研究过程,其中仍有不少瑕疵。随着研究的深入,也发现M1卡和安卓系统有很多值得花时间探索的地方,下一步学习计划写一个针对间接修改NFC配置文件的APP来实现卡模拟。


博学之,审问之,慎思之,明辨之,笃行之。

(0)

相关推荐

  • 各种卡懵逼分不清?一张图带你全面了解各类复制卡 | NFC Reader Tool

    UID 卡(国外称GEN1) 普通复制卡,主要应用在IC卡复制上,遇到带有防火墙的读卡器就会失效.这类读卡器在刷卡的时候会默认发出后门指令修改UID卡卡号,导致复制卡无法再次使用,即复制卡只能使用一次 ...

  • 【最新!】超详解:模拟加密卡到设备(支持NFC手机+NFC版荣耀5手环)教程

     本帖最后由 Masters008 于 2020-4-21 00:02 编辑 虽然最近支持官方模拟加密卡,但是部分门禁依然没用是因为没有把加密区模拟,此教程依然适用--4-20更新 之前承诺给大家写个 ...

  • 完美解决小米手机无法模拟门禁卡的问题

    本人上一篇文章"解决小米手机无法模拟门禁卡问题"出来后没想到大家反应如此强烈,并有很多读者提出问题及疑问,本着对文章负责,对读者负责,对技术严谨的态度,本人又购买了IC卡专用读卡器 ...

  • 小米手环4玩转自定义表盘/开门锁/模拟加密卡

    iArter 2019-08-09 16:20 前言:这是一篇有料的良心原创汇总经验记录,如果为了刷积分,其实我完全可以分成3篇来发,但偏偏.雨渐渐大到我偏不~,玩转小米手环4 NFC版,看我一篇就够 ...

  • 科普贴-Proxmark3是什么?

    科普贴-Proxmark3是什么?(在我们的生活中,有很多场合会用到IC卡,和ID卡) PM3    echo      9个月前 (05-15)1898次0评论 首先,我们来讲一点背景信息. 在我们 ...

  • 解决小米手机无法模拟门禁卡问题

    作者以发表最新文章:"完美解决小米手机无法模拟门禁卡的问题" 小米手机模拟门禁卡功能为用户提供了很大的便利,但在实际使用中也遇到很多问题,本人使用小米手机多年,前两年开始尝试使用小 ...

  • 我是第一个吗?华为钱包成功模拟加密门禁卡!

     本帖最后由 DoctorSPH 于 2019-6-3 08:35 编辑 一个多月前换了华为P30Pro,也是第一次接触NFC手机.当时钱包版本是8.X,可以成功模拟单位的非加密门禁卡.网上搜索了很多 ...

  • (3条消息) 手机NFC模拟M1门禁卡、写CUID白卡的一些研究记录

    一.需求场景 近来小区安装了智能门禁,但只配发了一张门禁卡,不方便使用,于是产生了用手机模拟门禁卡,或者复制一张门禁卡的想法. 本文使用的软件:(CSDN无法修改下载积分了...) 包括手机NFC读写 ...

  • 教你用手机NFC模拟加密门禁卡

    目标:将门禁卡.考勤卡.会员卡.停车卡.电梯卡等等各种卡模拟进手机里,模拟后可用手机代替刷卡,无需root,不用电脑 背景介绍: 1.前言   目前,IC卡已被广泛应用于身份识别.金融消费.安全认证等 ...

  • 手机NFC怎么复制门禁卡

    特色指南: 写作指南 办事指南 科普知识 节日节气 分类导航: 游戏/数码 生活/家居 健康/养生 职场/理财 爱好/休闲 时尚/美容 美食/营养 教育/学习 家庭/情感 收起 首发 手机NFC怎么复 ...

  • 华为NFC手机模拟加密门禁卡实操

    创作立场声明:本文章是实操教程,相关原理可以百度了解,相同的软硬件可以按照文章老操作,软硬件不一致可以参考,不保证百分之百成功.硬件是我自己花钱购买的,购买后有给办公室和小区邻居制作门卡,充分利用手机 ...

  • 华为手机NFC模拟门禁卡功能上线,用手机就可以开门了!

    华为手机NFC模拟门禁卡功能上线,用手机就可以开门了!

  • 教你用手机模拟加密门禁卡

     本帖最后由 huafen131097825 于 2020-3-20 16:57 编辑 目标:将门禁卡.考勤卡.会员卡.停车卡.电梯卡等等各种卡模拟进手机里,模拟后可用手机代替刷卡,无需root,不用 ...

  • (32条消息) 小米NFC手机复制加密IC门禁卡

    几年没有发过任何文字信息了.闲来无事发一个NFC手机复制加密门禁卡的教程 思路: 第一步通过破解加密的门禁卡得到dump文件,获取卡号.修改dump文件只保留0扇区0块的内容也就是卡号,通过读卡器写入 ...

  • WWDC 2018新亮点,iPhone的NFC或能模拟成门禁卡

    苹果今年的WWDC 2018将于美国时间6月4-8日加州圣何塞举行,由于苹果公司有严格保密新产品的传统,很难说提前预知一些软件方面的新功能.不过外媒The Information就发现了一个新的WWD ...