由门禁卡来谈谈ICID复制卡的原理和知识
首先要知道门禁卡是什么,门禁卡内部构造里面有一圈一圈的线圈连接到一个芯片上,这种技术叫RFID(Radio Frequency Identification)射频识别技术,已得到广泛应用,如出入证、门禁卡、停车卡、会员卡等;门禁卡在发放最终用户使用前,经由系统管理员设置,确定可使用区域及用户权限,用户使用门禁卡刷卡进入管理区域,无门禁卡或权限未开通用户,不能进入管理区域。
知道了门禁卡内部构造之后,来看看门禁卡类型,根据工作频率的不同,可大致分为低频ID卡和高频IC卡
全称为身份识别卡(Identification Card),内部芯片的全名叫做EM4100或EM41XX是一种只读不可写入的感应卡,频率有125KHz、250KHz、375KHz、500KHz,使用最多的频率为125KHZ,含固定的编号.正规id卡的卡号不可再更改,绝对确保卡号的唯一性和安全性.ID卡在弱电系统中一般作为门禁或停车场系统的使用者身份识别,因ID卡无密钥安全认证机制,且不能写卡,现在行业内的基本共识是ID卡不适合做成一卡通,也不合适做消费系统。
又称集成电路卡,一般可读可写,IC卡使用最多的频率为13.56MHZ,M1卡是IC卡的一种,是目前较为常见的,一般是指菲利浦下属子公司恩智浦出品的芯片缩写,属于非接触式IC卡,M1卡储存的数据大小为8k位,相当于1KB的容量。
等等,你跟我说IC卡和ID卡长那么像要怎么来辨别,那我告诉你简单的目测法:ID钥匙扣上一般有00开头的10位或者8位数字,没有数字编号的一般为IC号。对卡片使用强光穿透卡片观察,线圈是方形一般是IC卡,但不是绝对
目测比较是不准确的,最准确的还是要读卡看SAK值法来确定芯片类型,手机端下载PCR532软件查看。
拓展一下,SAK是什么,IC卡数据0扇区0块的第6字节代表着芯片类型,不同SAK对应不同的芯片类型
首先IC卡是比ID卡的安全性更好,ID卡全称身份识别卡,卡内除了卡号外,几乎无任何保密功能,其“卡号”是公开、的。所以说ID卡就是“感应式磁卡”,非常容易被复制,安全性比较低,但价格实惠公道。IC卡在使用时,必须要先通过IC卡与读写设备间特有的双向密钥认证后,才能进行有关工作,从而使总系统具有极高的安全保障。IC卡与读写设备间一定要具有特有的双向密钥认证,所以,就必须对出厂的IC卡进行初始化 (即加密),出厂后的IC卡内生成不可破解的一卡通系统密钥。 ID卡则不需要,ID卡内的卡号读取无任何权限,易于仿制。
绝大多数的高校一卡通都属于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卡,M1卡是逻辑加密卡,使用私有加密算法Crypto-1,而银行卡和身份证是CPU卡,内置一个微型CPU,能够直接进行多种加解密运算,有些银行卡和身份证还使用了国密算法,相比Crypto-1更新,尚未爆出安全漏洞,目前很难破解,如图是银行卡的标签信息,能够正常的看到其SAK为28,只要SAK为28的都为CPU卡,有些学校比较变态使用了CPU卡这种解决方案,看到是这种卡的可以放弃了,暂时还没有对应的破解方案。
CPU卡使用16字节密钥,并可结合实际要建立多级分区,实现多级分区多级密钥的组合控制,提高了使用上的安全性
M1卡采用算法内置密钥外送,认证方式为卡片与专用基站芯片认证,此技术目前已被破解
CPU卡采用通用读写模块透明传输,配合SAM密钥算法,认证在双方卡内部进行,传输过程中使用加密后的随机数,大幅度的提升了读写时的安全性
首先我们要了解什么卡是正常的卡,我在3.1 IC卡可以读出SAK值和3.2 ID卡读不出SAK值中的表格中有指出过,IC的M1卡和ID的TK4100授权卡是物业授权给我们的正常卡。
为什么咱们不可以用正常卡来复制卡呢?这就要知道物业是怎么给我们授权卡的,首先物业写卡的机器是专门用来授权有密码的,我们没法获取到这个专门授权机器的密码,所以要通过其他方式来复制卡。
ID卡阅读器将载波信号经天线向外发送,ID卡进入卡阅读器的工作区域后,由阅读器中电感线圈和电容组成的谐振回路接收阅读器发射的载波信号,卡中芯片的射频接口模块由此信号产生出电源电压、复位信号及系统时钟,使芯片“激活”。芯片读取控制模块将存储器中的数据经调相编码后调制在载波上,经卡内天线回送给卡阅读器;卡阅读器对接收到的卡回送信号进行解调、解码后送至后台计算机;后台计算机根据卡号的合法性,针对不同应用做出相应的处理和控制。
T5577 卡是一种可以写入数据可以加密的低频卡。最特别之处是,写入ID号可以变身成为ID卡,写入HID号可以变身HID卡,写入Indala卡号,可以变身Indala卡。T5577一共有8个块,每个块只能存8位数。第0块是用来设置卡片类型和调制方式的,决定了卡片是ID卡还是HID卡,如果随意修改会导致读不到卡。最后一个块,在没有加密时是数据区,加密后,其数据就变成了密码。读取原卡有效的10位或18位识别码,将其复制后写入白卡中一般即可通过门禁验证。
卡片内有一个LC串联谐振电路,其频率与读写器发射的频率相同,这样在电磁波激励下,LC谐振电路产生共振,从而使电容内有了电荷;在这个电容的另一端,接有一个单向导通的电子泵,将电容内的电荷送到另一个电容内存储,当所积累的电荷达到2V时,此电容可作为电源为其它电路提供工作电压,将卡内数据发射出去或接受读写器的数据。
UID卡可以修改任意扇区,作为M1复制的子卡,主要使用在在IC卡复制上。该卡片完全兼容mifare 1k卡片。卡片的block0(UID所在的block)能随意修改,重复修改,不需要密码即可读写卡,同时不怕写坏卡,即使写错0块,写坏扇区控制字,也可以每时每刻修复回来,不影响后续使用。
CUID卡是针对UID卡做的优化。UID卡出现的比较早,会响应后门指令,可被使用后门指令检测是否为克隆卡的机器发现,而CUID卡不会响应,一般可绕过读卡器防火墙。CUID卡可以重复修改0块,但是它和UID卡的区别是,UID卡是通过指令修改0块,CUID使用的是常规密码验证的方法写0块,其他扇区和标准M1卡相同。缺点是,还是有一定的概率会被检测出来,而且如果不小心写错了UID号的校验位导致没办法读卡,没办法修复只能报废。
CUID卡复制没有用的情况下的备选,FUID卡是针对CUID卡做的优化。新的读卡系统,通过检验测试卡片对特殊指令的回应,可以检测出UID卡,因此能来拒绝UID卡的访问,来达到屏蔽复制卡的功能。FUID可以修改0块,但只可以修改一次,写错也没办法更改,也不能重复利用。修改后和M1卡完全一样,很难被屏蔽检测,针对一些更高级的读卡器防火墙。
UID卡和FUID卡的结合版,可以手动控制0块锁死,0块锁死前为UID卡,锁死后就变成了FUID卡。我们通常用CUID卡即可,不必购买更高成本的FUID和UFUID,除非你确信自己操作无误且CUID卡无法通过验证。
T5557 是非接触式 R/ W 辨识集成电路(IDIC),适用于 125 KHz 频率范围。被连接到芯片的单一天线线卷, 被视为集成电路的电力驱动补给和双向信息的沟通接口。天线和芯片一起构成应答卡片或标签。在芯片上有330 bit 的 E2PROM(分布为10个区块, 每个区块 33 bit)能从一个读写器上被读和写。区块 0 是被保留用于设置 T5557 的操作模式的标签块。区块 7 可能包含一组密码,用于避免未经认可的写。数据的传送,利用 IDIC 加载调制完成。它是在2个终端1和2 的线圈中感生出一个RF抵抗场强,这IC接收到 扫描场,再以100%的振幅进行解码调制,从而得到基站或读写器的编译码信息。
M1卡分为16个数据存储区,通常我们称为“扇区”,编号是“0”到“15”。每个扇区又分为4个存储单元,我们称为“块”,在M1卡中数据存储的最小单位就是“块”。每一块有16字节(16B),用来存放数据。。每个扇区都有独立的一组密码及访问控制,每张卡有唯一的一个32位的序列号。
第0扇区的块0(即绝对地址0块),它用于存放厂商代码,已经固化,不可更改。每张M1卡都有一个全球唯一的UID号,这个UID号保存在卡的00扇区的00段,也称为厂商段,其中前4个字节是卡的UID,第5个字节是卡UID的校验位,由卡号通过持定算法计算而来,填写镨误可能会引起卡片锁死作废(一般写卡工具带有桉验功能,错误会提示),第6-8字节为卡片类型(基本上没啥用,改了也一样能识别到正确类型),最后8位为厂商代码(由卡片广家确定)。
每个扇区的0,1,2块为数据块,用来存储数据,第3块为控制块,前6个字节存放A密码,中间4字节为控制字段(决定该扇区的读写权),后6字节存放B密码。每个扇区的密码都是独立的,
如果仅仅复制只用于门禁的M1卡,可以先不用购买设备,因为一般门禁的原理是验证0扇区的UID号,如果该UID在系统中存在,则验证通过,而有些发卡商为便利让0扇区使用了默认密钥FFFFFFFFFFFF,所以能先用手机NFC测试复制0扇区0块
ID普通防火墙:修改卡片id,判断是否为复制卡,复制卡则提示错误并阻止通过验证。
ID高級防火墙:(暂无相关参考资料,可能是通过读取卡片信息判断是否为T5577卡,由于F8268卡厂家没有公开相应指令,致使现阶殷很多门禁厂家无法 判断是否为8268卡,由于id门禁时代久远,今后即便公开操作指令冂禁升缀的几率也不大,荜竟成本很高。
IC普通防火墙:检测卡片是否响应magic指令,判断是否为uid卡,若是uid卡则禁止使用。
IC高級防火墙:使用密码修改0扇区0抉数据,成功则为cuid卡,针对检测原理可采用如下办法(需要尝試判断防火墙使用了何种检测技术):
修改0扇区密码,cuid卡验证蜜码失败的情况,不可修改数据,但防火墙也可设计为先判断密码是否被修改,被修改了就直接提示锴误。
修改0扇区控制位,修改为不可写(具体参考m1控制位规范),但防火情同样可设置为检测控制位是舌被修改,如果被修改,则提示镨误。
由于FUID写入一次以后或UFUID锁卡后变为m1卡,和物业原卡一样,防火墙无法判断是否为复制卡,故FUID和UFUID都可以过防火墙。
PRNG安全缺陷,国外的安全研究人员发现,MIFARE Classic采用的是Crypto-1私有加密算法,其算法的特点是对称式的密码算法或者说是私钥密码系统。其主要组成部分是伪随机数发生器(PRNG)、48位的线性反馈移位寄存器(LFSR)以及非线性函数。由于算法当中的Filter Function的设计出现缺陷,导致改变线位数值就非常有可能得到所对应的Keystream。这个缺陷类似于802.11b WEP算法,不同的明文有极高的可能性被相同的Keystream,使得整个加密算法出现了漏洞,而Proxmark3就是基于PRNG的安全缺陷进行的随机数碰撞,利用PRNG的安全缺陷我们大家可以很快速地得到对应的密钥,从而进行进一步的破解操作。
已知密钥穷举,从多次针对算法的破解得出的Key列表中发现,很多使用MIFARE Classic的用户都会将其默认的密钥延续使用,意思是很多人宁可贪图一时方便接着使用出厂时的密钥,也不会依据自己的安全需求而进行改变,以至我们大家可以不要消耗太多的时间就能够直接进行破解从而得到卡类的信息。综合上述,我们大家都知道如果要处理任何MIFARE Classic卡的数据都需要利用密钥进行识别,从而读取对应的数据。不破解就不可能读取其内容。
暴力破解,从WEP到 WPA/WPA2的密钥破解我们大家可以知道,暴力破解已经从荒度时间、成功率低到现在GPU暴力破解时间短、成功率高转变,MIFARE Classic也是如此,我们大家可以利用GPU等高速暴力破解手段进行破解,从而得到我们所需要的密钥。
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卡系统。
上一篇:IC卡、ID卡、CPURFID和NFC的差异