1. 首页 » 生活常识

从CUID与UID卡差异看IC卡复制实战心路历程

认识ic卡和id卡

ID卡是我们的俗称,频率有125KHz、250KHz、375KHz、500KHz,使用最多的频率为125KHZ,含固定的编号.正规id卡的卡号不可再更改,绝对确保卡号的唯一性和安全性.ID卡在弱电系统中一般作为门禁或停车场系统的使用者身份识别,因ID卡无密钥安全认证机制,且不能写卡,现在行业内的基本共识是ID卡不适合做成一卡通,也不合适做消费系统。

IC不同于ID卡的是其卡内数据不仅仅是一串写死的ID序列号,其内部有扇区以储存IC卡内包含的大量数据,且可经过反复擦写。即IC卡可支持读取与写入。IC卡可以分为:接触式IC卡、非接触式IC卡和双界面IC卡。又称集成电路卡,一般可读可写,IC卡使用最多的频率为13.56MHZ,M1卡是IC卡的一种,是目前较为常见的,一般是指菲利浦下属子公司恩智浦出品的芯片缩写,属于非接触式IC卡,M1卡储存的数据大小为8k位,相当于1KB的容量。

M1卡就是非接触式IC卡中应用最广泛的卡。M1卡就是Mifare非接触式感应卡,M1卡数据保存期为10年,可改写10万次,读无限次。无电源,自带天线,工作频率为13.56MHZ.M1卡内含加密控制逻辑和通讯逻辑电路。M1卡主要有两种,一种是S50和一种是S70。主要应用:门禁、考勤、会议签到、身份识别、物流、工业自动化、各种会员卡、如售饭、地铁、公交代币卡、俱乐部等电子消费、电子门票、动物识别、目标跟踪、洗衣管理、各种一卡通等等。

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

M1卡存储结构:

M1卡分为16个数据存储区,通常我们称为“扇区”,编号是“0”到“15”。每个扇区又分为4个存储单元,我们称为“块”,在M1卡中数据存储的最小单位就是“块”。每一块有16字节(16B),用来存放数据。。每个扇区都有独立的一组密码及访问控制,每张卡有唯一的一个32位的序列号。

第0扇区的块0(即绝对地址0块),它用于存放厂商代码,已经固化,不可更改。每张M1卡都有一个全球唯一的UID号,这个UID号保存在卡的00扇区的00段,也称为厂商段,其中前4个字节是卡的UID,第5个字节是卡UID的校验位,由卡号通过持定算法计算而来,填写镨误可能导致卡片锁死作废(一般写卡工具带有桉验功能,错误会提示),第6-8字节为卡片类型(SAK值和ATQA值),最后8位为厂商代码(由卡片广家确定)。IC卡数据0扇区0块的第6字节代表着芯片类型,普通的IC卡SAK类型为:08,CPU模拟卡为:28,纯CPU卡为:20

每个扇区的0,1,2块为数据块,用来存储数据,第3块为控制块,前6个字节存放A密码,中间4字节为控制字段(决定该扇区的读写权),后6字节存放B密码。每个扇区的密码都是独立的,

SAK值和ATQA值详细谈谈芯片类型

cuid和uid卡有什么区别

IC卡可以读出SAK值

SAK值芯片类型重复擦写功能特性用户群体

08M1卡(又叫S50卡、1K卡)0扇区不可写天生可过防火墙物业发卡授权

08UID卡全扇区可读写响应magic指令,遇防火墙失效个人读写设备复制

08CUID卡全扇区可读写不响座magic指令,遇高級防火墙失效个人读写设备复制

08FUID卡0扇区写入自动固化自动固化后变成M1卡,可过防火墙个人读写设备复制

08UFUID卡0扇区写入需手动锁定固化手动固化后变成M1卡,可过防火墙个人读写设备复制

18M4卡(又叫S70卡、4K卡)/内存是4K,平时很少碰到物业发卡授权

20CPU卡/安全系最高,密码错误最大16次,超过后就锁死卡片,除非知道其cos系统指令,知道卡密码,否则将无解。/

28MF1卡,又叫CPU模拟M1卡/CPU卡加M1卡的复合体/

GTU卡可反复擦写可以自动复位数据,用于滚动码防复制

GDMIC卡可反复擦写和GTC功能一致,生产厂商不同

ID卡读不出SAK值

芯片类型重复擦写功能特性用户群体

ID-TK4100(又叫ID授权卡)不可擦写正常渠道发卡物业发卡授权

ID-5200可反复擦写遇防火墙失效个人读写设备复制

ID-T5577可反复擦写遇防火墙失效个人读写设备复制

ID-8268可反复擦写可过防火墙个人读写设备复制

ID卡、M1卡和CPU卡谁更好?

C卡与ID卡比较:

首先IC卡是比ID卡的安全性更好,ID卡全称身份识别卡,卡内除了卡号外,几乎无任何保密功能,其“卡号”是公开、裸露的。所以说ID卡就是“感应式磁卡”,很容易被复制,安全性比较低,但价格便宜。IC卡在使用时,必须要先通过IC卡与读写设备间特有的双向密钥认证后,才能进行相关工作,从而使整个系统具有极高的安全保障。IC卡与读写设备间必须具备特有的双向密钥认证,所以,就必须对出厂的IC卡进行初始化 (即加密),出厂后的IC卡内生成不可破解的一卡通系统密钥。ID卡则不需要,ID卡内的卡号读取无任何权限,易于仿制。

M1卡的漏洞:

绝大多数的高校一卡通都属于M1卡这种类型,M1卡式恩智浦公司(现在已经被飞利浦收购)根据ISO14443-A非接触式智能卡标准设计的一种IC卡,是目前世界上使用量最大的非接触式IC卡,在2013年前它被广泛应用于一些国家和地区的交通系统,如香港的八达通、台湾的悠游卡、伦敦的牡蛎卡和荷兰的OV卡等。2007年12月K.Nohl和H.Plot利用显微镜观察M1卡逻辑电路并对其逆向工程,从而发现其加密算法的设计缺陷。而在2008年3月,荷兰内梅亨大学的三位工程师自制了读卡设备并利用其Crypto 1算法的缺陷成功复制了一张M1卡。不过这些攻击并没有威胁到它的核心 Crypto 1 加密算法。之后 NXP 公司紧急修复了认证过程的一些漏洞,表示还能继续使用。2015 年, Crypto1 加密算法被完全破解了,NXP 公司只好宣布今后不再使用这张卡。

所以现在M1卡一般用于对安全需求不是特别高的场景中,如校园和企业一卡通,社区门禁等。

M1卡与CPU卡比较:

和身份证虽然都可以感应使用,但其不是M1卡,M1卡是逻辑加密卡,使用私有加密算法Crypto-1,而和身份证是CPU卡,内置一个微型CPU,可以进行多种加解密运算,有些和身份证还使用了国密算法,相比Crypto-1更新,尚未爆出安全漏洞,目前很难破解,如图是的标签信息,可以看到其SAK为28,只要SAK为28的都为CPU卡,有些学校比较变态使用了CPU卡这种解决方案,看到是这种卡的可以放弃了,暂时还没有对应的破解方案。

M1卡CPU卡

密钥长度M1卡采用6字节密码,分扇区控制。每个扇区可单独进行加密CPU卡使用16字节密钥,并可根据实际需要建立多级分区,实现多级分区多级密钥的组合控制,提高了使用上的安全性

加密认证算法M1卡采用专用不公开硬件逻辑算法,目前已被破解,存在很大的安全隐患CPU卡采用通用公开软件或硬件加速算法,并可定制,且达到了金融标准。

读写安全模块M1卡采用算法内置密钥外送,认证方式为卡片与专用基站芯片认证,此技术目前已被破解CPU卡采用通用读写模块透明传输,配合SAM密钥算法,认证在双方卡内部进行,传输过程中使用加密后的随机数,大大提高了读写时的安全性

访问权限控制M1卡可进行只读、只写、读写、加、减操作CPU卡对不同文件类型灵活设计认证方式

协议控制无ISO14443-A协议

ID复制卡选择

T5577 卡是一种可以写入数据可以加密的低频卡。最特别之处是,写入ID号可以变身成为ID卡,写入HID号可以变身HID卡,写入Indala卡号,可以变身Indala卡。T5577一共有8个块,每个块只能存8位数。第0块是用来设置卡片类型和调制方式的,决定了卡片是ID卡还是HID卡,如果随意修改会导致读不到卡。最后一个块,在没有加密时是数据区,加密后,其数据就变成了密码。读取原卡有效的10位或18位识别码,将其复制后写入白卡中一般即可通过门禁验证。(基本)

IC复制卡选择

UID卡:

UID卡可以修改任意扇区,作为M1复制的子卡,主要应用在IC卡复制上。该卡片完全兼容mifare 1k卡片。卡片的block0(UID所在的block)可以任意修改,重复修改,不需要密码即可读写卡,同时不怕写坏卡,即使写错0块,写坏扇区控制字,也可以随时修复回来,不影响后续使用。

CUID卡:

CUID卡是针对UID卡做的优化。UID卡出现的比较早,会响应后门指令,可被使用后门指令检测是否为克隆卡的机器发现,而CUID卡不会响应,一般可绕过读卡器防火墙。CUID卡可以重复修改0块,但是它和UID卡的区别是,UID卡是通过指令修改0块,CUID使用的是常规密码验证的方法写0块,其他扇区和标准M1卡相同。缺点是,还是有可能会被检测出来,而且如果不小心写错了UID号的校验位导致无法读卡,没办法修复只能报废。

FUID卡:

CUID卡复制没有用的情况下的备选,FUID卡是针对CUID卡做的优化。新的读卡系统,通过检测卡片对特殊指令的回应,可以检测出UID卡,因此可以来拒绝UID卡的访问,来达到屏蔽复制卡的功能。FUID可以修改0块,但只可以修改一次,写错也没办法更改,也不能重复利用。修改后和M1卡完全一样,很难被屏蔽检测,针对一些更高级的读卡器防火墙。

UFUID卡:

UID卡和FUID卡的结合版,可以手动控制0块锁死,0块锁死前为UID卡,锁死后就变成了FUID卡。我们一般使用CUID卡即可,不必购买更高成本的FUID和UFUID,除非你确信自己操作无误且CUID卡无法通过验证。

防火墙机制

防火墙的主要作用是防止复制卡的使用。

ID普通防火墙:修改卡片id,判断是否为复制卡,复制卡则提示错误并阻止通过验证。

ID高級防火墙:(暂无相关参考资料,可能是通过读取卡片信息判断是否为T5577卡,由于F8268卡厂家没有公开相应指令,致使现阶殷很多门禁厂家无法 判断是否为8268卡,由于id门禁时代久远,今后即便公开操作指令冂禁升缀的几率也不大,荜竟成本很高。

IC普通防火墙:检测卡片是否响应magic指令,判断是否为uid卡,若是uid卡则禁止使用。

IC高級防火墙:使用密码修改0扇区0抉数据,成功则为cuid卡,针对检测原理可采用如下办法(需要尝試判断防火墙使用了何种检测技术):

修改0扇区密码,cuid卡验证蜜码失败的情况,不可修改数据,但防火墙也可设计为先判断密码是否被修改,被修改了就直接提示锴误。

修改0扇区控制位,修改为不可写(具体参考m1控制位规范),但防火情同样可设置为检测控制位是舌被修改,如果被修改,则提示镨误。

由于FUID写入一次以后或UFUID锁卡后变为m1卡,和物业原卡一样,防火墙无法判断是否为复制卡,故FUID和UFUID都可以过防火墙。

M1卡漏洞机制

PRNG安全缺陷

PRNG安全缺陷,国外的安全研究人员发现,MIFARE Classic采用的是Crypto-1私有加密算法,其算法的特点就是对称式的密码算法或者说是私钥密码系统。其主要组成部分是伪随机数发生器(PRNG)、48位的线性反馈移位寄存器(LFSR)以及非线性函数。由于算法当中的Filter Function的设计出现缺陷,导致改变线性反馈移位寄存器的后8位数值就有可能得到所对应的Keystream。这个缺陷类似于802.11b WEP算法,不同的明文有极高的可能性被相同的Keystream,使得整个加密算法出现了漏洞,而Proxmark3就是基于PRNG的安全缺陷进行的随机数碰撞,利用PRNG的安全缺陷我们可以很快速地得到对应的密钥,从而进行进一步的破解操作。

已知密钥穷举

已知密钥穷举,从多次针对算法的破解得出的Key列表中发现,很多使用MIFARE Classic的用户都会将其默认的密钥延续使用,意思就是很多人宁可贪图一时方便继续使用出厂时的密钥,也不会根据自身的安全需求而进行改变,以至我们可以不需要花费太多的时间就可以进行破解从而得到卡类的信息。综合上述,我们知道如果要处理任何MIFARE Classic卡的数据都需要利用密钥进行识别,从而读取对应的数据。不破解就不可能读取其内容。

暴力破解

暴力破解,从WEP到 WPA/WPA2的密钥破解我们可以知道,暴力破解已经从浪费时间、成功率低到现在GPU暴力破解时间短、成功率高转变,MIFARE Classic也是如此,我们可以利用GPU等高速暴力破解手段进行破解,从而得到我们所需要的密钥。

6 读卡设备

PN532:最廉价的方案,30多块钱就可以搞定,仅仅一块单薄的电路板,但可以满足常规的M1卡的读写操作,但是配套软件较差,配合mfoc和mfcuk软件使用,在Linux下bug比较少,目前也有国产的GUI软件,但功能能比较单一,可以用于破解M1卡中1K容量的S50卡,不能破解全加密卡(找不到使用默认密钥的扇区),适合搞定门禁,钥匙扣型的卡去小区物业办一般要20块,如果你想做很多张门禁卡的还是自己制作更划算,不用看这篇文章根据淘宝客服的教程来成功率都很高。

ACR122U:读写的主芯片为PN532,相对PN532软件更加完善,使用稍微简单一些,厂家还提供了一款官方的M1卡破解软件,配合mfoc和mfcuk使用更加稳定,但同样不能用来破解全加密卡,对于加密了部分扇区的S70卡也较难破解,性价比一般,卖一百多块适合小白使用,能找到比较多的教程。

Proxmark3:我主要使用的设备,是Jonathan Westhues 在2007年就读硕士期间设计并开发的RFID读卡器,它是一款开源的RFID研究平台,设计图被公布在Proxmark3官方网站,在GitHub上可以找到配套的软件及WIKI,另有社区可获取对应的固件及技术支持,同时支持Linux、Windows、Mac OS多平台。最新版本的pm3整合了nested authentication攻击,darkside攻击,PRNG漏洞扫描,以及随机数采集和无卡嗅探功能,能够有效破解M1卡扇区密钥,可破解低频卡、S50和S70全加密卡和部分特殊卡,可以说相当强大,但是价格比较贵,目前淘宝山寨的pm3都要200多块。

变色龙侦测卡:可以用来模拟M1卡,也可配合其他读卡器侦测获取扇区密钥来破解卡,主要针对全加密卡,但是价格也要100多块,所以一般购买pm3即可,pm3还有一款RDV2升级版本就是集成了变色龙侦测卡,嗅探的能力更强并且可以模拟卡,用于一些比较变态的M1卡系统。

关键字

ATQA Answer To Request acc. to ISO/EC 14443-4

ATS Answer To Select acc. to ISO/IEC 14443-4

DIF Dual Interface (cards)

cos Card Operating System

CL Cascade Level acc.to ISO/IEC 14443-3

CT Cascade Tag, Type A

n.a. not applicable

NFC Near Field Communication

PCD Proximity Coupling Device (“Contactless Reader”)

PICC Proximity Integrated Circuit ("Contactless Card”)

PKE Public Key Encryption (like RSA or ECC)

REQA Request Command, Type A

SAK Select Acknowledge, Type A

Select Select Command, Type A

RID Random ID, typically dynamically generated at Power-on Reset

RFU Reserved for future use

UID Unique ldentifier, Type A

NUID Non-Unique ldentifier

cuid和uid卡有什么区别

1. 读写器指定要访问的区,向卡发送身份验证请求,并选择密钥A或B。

2. 卡从位块读取密钥和存取控制条件。然后,卡向读写器发送明文4字节随机数Nt。(第一轮)

3. 读写器利用密钥和随机数Nt计算生成一个新随机数Nr,并将两个随机数一起加密为8个字节的数据发送给卡片。(第二轮)。

4. 卡解密得到Nt与Nr,验证Nt,若通过再一次加密Nr并发送给读卡器(第三轮)。

5. 读写器解密得到Nr,验证通过。

M1卡破解

暴力破解法原理简单,在此不再赘述,在pm3终端输入hf mf rdbl 00 A FFFFFFFFFFFF或hf mf rdsc 00 A FFFFFFFFFFFF命令,意思是使用keyA密码FFFFFFFFFFFF读取00块/00扇区数据。

嵌套认证攻击

三次认证过程本身合理安全,但除了其伪随机数可被预测外,还包含了一个重要漏洞。卡片在通过第一次三轮认证后就会将其他扇区的数据加密后发送给读卡器,每个扇区中块3用来存放密钥,获取了加密后的扇区数据就等于获取了加密后的密钥信息。此时,我们可以使用获得的加密信息辅助暴力破解,大大降低了对48位密钥的搜索空间,缩短了获取密钥的时间成本。这个漏洞利用的前提是必须获得一个扇区的keyA或keyB,也就是我们常讲的“知一密求全密”

Prng攻击

M1卡传输数据时会分为若干个1bit的块加密传输给读卡器。而当读卡器发送的加密数据中的某8bit部分全部正确而其他内容错误时,M1卡会给读卡器发送一个加密的4bit的否定响应,而这4bit的响应有助于我们不断枚举卡内数据,结合算法的漏洞可以破解出某个扇区的密钥,之后再进行知一密求全密等。终端输入hf mf darkside命令进行,但是该漏洞仅针对部分全加密卡,我这边的卡漏洞都已修复。

嗅探密钥

上图讲到没有Prng漏洞,建议我们进行嗅探攻击。嗅探攻击原理是使用硬件对卡片和读卡器见进行中间人攻击,目的在于获取卡片与读卡器三次认证中出传输的数据和UID号,再对Crypto-1算法进行逆向破解出真正的密钥。将全加密卡降为半加密卡,再进行嵌套认证攻击。

04 00:卡片表明了自己的类型。

93 20:读卡器请求卡片发送自己的UID号。7e b4 60 d2 78:卡片发送自己的卡号。60 03 6e 49:验证03块的keyA密钥,6e49为该命令CRC校验位(忽略)。88 fd b7 42:随机数Nt3c df c7 d1 8c 6de4 65:加密后的Nt和Nr。88d2 60 5a:解密后的随机数Nr。

cuid和uid卡有什么区别

总结:

1. 扇区不使用暗码或滚动码代替明码储存。如有条件将金额等敏感数据存于后台数据库,根据卡号进行索引。

2. 不使用默认或弱密钥,每一个扇区的keyA与keyB均设置不同,做到一卡一密,且修复卡的Prng漏洞。

3. 不使用默认的存取控制FF078069,根据需求合理设置安全的控制位,否则容易扇区锁死。推荐08 77 8F 69(块012 keyAB均可读,仅keyB可写。块3 keyA和keyB均不可读,只能用keyB写入。控制字节keyAB均可读,只有keyB可写。

4. 升级更新读卡器,识别基础UID与CUID复制卡。

5. 完善管理制度,提高人员安全意识,不将卡片随意给予他人。

IC(Integrated Circuit)卡是1970年由法国人Roland Moreno发明的,他第一次将可编程设置的IC芯片放于卡片中,使卡片具有更多功能。“IC卡”和“磁卡”都是从技术角度起的名字,不能将其和“信用卡”、“电话卡”等从应用角度命名的卡相混淆。自IC卡出现以后,国际上对它有多种叫法。英文名称有“Smart Card”、“IC Card”等;在亚洲特别是香港、台湾地区,多称为“聪明卡”、“智慧卡”、“智能卡”等;在我国,一般简称为“IC卡”。

声明:本文由"百度是最好的搜索"发布,不代表"破站"立场,转载联系作者并注明出处:https://www.848586.cn/306482.html