本帖最后由 无双 于 2023-9-11 20:34 编辑
吃饭要刷饭卡,上班要签到打卡,有的小区停车、进电梯要刷物业专门配发的卡,每个人的钥匙扣上基本都挂有蓝色的钥匙扣卡,现代生活可以说离不开各种卡。之前在配钥匙的老师傅那看到过智能配匙机,分分钟给你复制一个门禁卡很是好奇,回来研究了下,其实这些卡无外乎 IC 卡和 ID 卡两大类,本文将介绍下 ID / IC 卡的基本知识,各种卡片的安全机制与漏洞,多卡合一的可能性以及分享下我自己 DIY 的门禁卡。
一、ID / IC 卡基本知识 1.1 ID 基本原理
【工作原理】ID 卡全称身份识别卡(Identification Card),是一种不可写入的感应卡,含固定的编号,一般会标注在卡片上。ID 卡属于低频卡,工作频率一般是 125KHz-1000Khz。发卡机构会购入一批 ID 卡,然后将这些卡号添加到数据库里,再把这些卡发放到用户手上,用户刷卡时读取卡号信息,与数据库(读卡器)匹配成功即可放行。
【安全性】ID 卡不包含加密信息,卡号是公开的,ID 卡号的读取无需任何权限,易于复制,安全性很低。一般情况下 ID 卡只做身份识别(门禁卡)用,ID 卡不可写入数据,其记录内容(卡号)只可由芯片生产厂一次性写入,开发商只可读出卡号加以利用,无法根据系统的实际需要制订新的号码管理制度。
【ID 卡现状】ID 卡由于其成本低,使用简单,目前大多数用作安全性不太高的门禁卡,比如我们学校大部分实验室和教研室的门禁,ID 卡正在逐步淘汰。
1.2 IC 基本原理
【工作原理】IC 卡全称集成电路卡(Integrated Circuit Card),又称智能卡(Smart Card),可读写,容量大,有加密功能,数据记录方便。IC 卡一般是 13.56MHz 的高频卡,跟手机 NFC 工作频率一样。所以手机 NFC 可以模拟未加密的 IC 卡,不能模拟 ID 卡。
【安全性】IC 卡内所记录数据的读取、写入均需相应的密码认证,甚至卡片内每个区均有不同的密码保护,全面保护数据安全。IC卡在使用时,必须要先通过IC卡与读写设备间特有的双向密钥认证后,才能进行相关工作,从而使整个系统具有极高的安全保障。常见的校园一卡通、公交卡等充值消费卡都是 IC 卡。
【IC 卡现状】IC 卡本身已记录了大量用户相关内容(卡号、用户资料、权限、消费余额等信息),完全可以脱离计算机平台运行,实现联网与脱机自动转换的运行方式。我们学校前两天校园卡系统故障,支付充值成功校园卡余额却没增加,流水也出现异常,不过随着系统修复,工作人员核算清楚后校园卡内余额信息也会恢复正常。IC 卡是现在的主流。
1.3 IC 卡数据信息存储情况 ID 卡仅仅记录卡号信息,数据无记录、无分区。
IC 卡(比如Philips Mifare1卡 S50)可以记录约 1000 个字符的内容,存储信息分为 16 个扇区(0-15),每个扇区又分为 4 个区域块,共64块。 每个扇区都有独立的一对密码 keyA 和 keyB,负责控制对每个扇区数据的读写操作,具有多个子系统独立管理功能,如第一分区实现门禁、第二分区实现消费、第三分区实现员工考勤等等。
第 0 扇区的块 0(即绝对地址0块)用于存放厂商代码(比如卡号),已经固化,不可更改。其他各扇区的块 0、块 1、块 2 为数据块 ,用于存贮数据;块 3 为控制块 ,存放 keyA、存取控制、keyB。IC 的信息可以被读卡器或者手机 NFC 读取出来,它是一个.dump文件,其结构如下:
1.4 ID / IC 区分
这里所讲的区分是指区分你的原始卡片,也就是物业或者管理机构发给你的一手卡,因为现在有各种卡片复制技术,方的给你复制成圆的,厚的给你复制成扁的,这里所说的区分方法不适用于复制卡。
ID 卡里面的信息就是一串编号,所以 ID 卡上一般印有一串数字。对于方形卡片来说,可以用手电筒照射卡片,透光看线圈形状,圆形线圈一般是 ID 卡,方形项圈一般是 IC 卡。一般来说,IC 卡线圈匝数比 ID 卡少,线也比 ID 线圈的细。ID芯片周围一般为线径为 3-8mm 的粗圆线圈,IC 卡通常是 1-2mm 宽的细圆线圈或方形线圈。
此外还可以用带有 NFC 功能的手机判断,将卡片贴在手机后盖上,有反应的就是 IC 卡,没反应的就是 ID 卡。
有的会员卡上面印有条形码或者编号,其实就只是一块塑料卡片,里面没有线圈,消费时需要店员手动输入或者扫码。
二、 ID / IC 卡分类
2.1 ID分类
国内常见的普通 ID 卡多为 EM 4100 或 EM 4102 卡,出厂固化 UID,只能读不能写(低成本门禁卡,小区门禁卡,停车场门禁卡)。
后来出现了 T55xx 或 EM4305 卡(俗称 ID 白卡),其特点是内部 EEPROM 可读可写,修改卡内 EEPROM 的内容即可修改卡片对外的 ID号,达到复制普通 ID 卡的目的。
2.2 IC分类
Mifare S50(M1)
MIFARE Classic 是恩智浦半导体开发的可用于非接触式智能卡,有 S20,S50(M1),S70 几种规格。M1 卡容量 1K 字节,每张卡片都有一个 4 字节的全球唯一序列号,0 扇区不可以修改,其他扇区可反复擦写,卡上数据保存期为 10 年,可改写 10 万次,读无限次。日常使用的电梯卡、门禁卡等智能卡发卡商所使用的都是 M1 卡,可以理解为物业发的原卡(母卡)。常见校园卡、公交卡等也是 M1 卡。M1 卡仅仅适合发卡方发新卡使用。
UID 卡
普通 IC 复制卡,可以重复擦写所有扇区。UID 可被重复修改,响应后门指令(意味着可被使用后门指令检测是否为克隆卡的机器发现),遇到带有防火墙的读卡器就会失效。平常去地摊上找老大爷配的门禁卡就是这种。
CUID 卡
UID 的升级版,可擦写防屏蔽卡,可以重复擦写所有扇区,不响应后门指令(意味着不容易被反克隆系统发现),可以绕过防火墙。
FUID 卡
不可擦写防屏蔽卡,此卡的特点 0 扇区只能写入一次,写入一次后变成 M1 卡,不能重复利用,修改后和 M1 卡完全一样,很难被屏蔽检测。
UFUID 卡
高级 IC 复制卡,可以理解为是 UID 和 FUID 的合成卡,需要封卡操作,不封卡就是 UID 卡,封卡后就变为 M1 卡。
CPU 卡
CPU 卡芯片内含有一个微处理器,配合操作系统即片上 OS,可以达到金融级别的安全等级。适用于金融、保险、交警、政府行业等多个领域。CPU 卡由 CPU 部分 7K 以及 M1 部分 1K 组成,最多破解其中 M1 部分,CPU 区域数据无法破解。实际上由于 CPU 部分和 M1 部分的数据会交互,所以基本上 CPU 卡无法破解。
2.3 扣卡型号表
此外钥匙扣卡根据不同的形状还分为好几种,最常见的是 2号钥匙扣和 3号钥匙扣。
三、IC / ID 卡安全机制
3.1 ID 卡加密与复制原理
ID 卡本身只包含一串数字的卡号信息,通过 ID 卡读卡器,读取卡内的 ID号,然后把这串 ID号写入到 ID 卡空卡中即可。随后厂商开发了带有防火墙的门禁系统,可以屏蔽普通的 ID 复制卡,不过市场又出现了新的 ID 复制卡,可以突破防火墙限制。
3.2 IC 卡 - 全加密技术
M1 卡分为 16 个扇区,每个扇区由 4 块(块 0、块 1、块 2、块 3)组成,前 3 个块是数据块,第 4 块是控制块。每个块都能存储 16 个字节的数据,控制块的 16 个字节数据就是用来存储控制和秘钥信息的:
默认方式下控制位为 “ FF 07 80 69 ”,这种方式下密钥 A 或密钥 B 都可以读写数据区,密钥 A 可写密钥区,优点是密钥控制字无需重新计算,读写方便,缺点是安全性能差,密钥 A 容易泄露。此外通过更改存取控制位来改变不同的读写方式。全加密卡就是指 16 个扇区的块 3 全部使用非默认密码。
常规破解方法有字典破解和暴力破解法,原理就是使用已知的一组秘钥来进行破解,对于使用默认密码的 IC 卡可能成功,对于全加密卡就无能为力了。对于全加密卡比较主流的是用侦测卡进行破解,M1卡与刷卡机进行交互的时候需要发出经过加密的正确密码,侦测卡可以接受到秘钥信息然后在电脑上读出来。
过去很多学校使用的水卡,上面写着挂失不补,基本就是一张加密的离线卡了,也就是刷卡机不联网,不会每日自动平账。卡中写有一定的初始余额,每次消费完就改写某个扇区的数据,破解后就可以随意刷写金额。
3.3 IC 卡 -一卡一密技术
一卡一密是指每张卡片通过特定的算法计算出独立的扇区密码,通常是使用物理卡号+种子密码的方式。举个例子,卡号是 1A5E87F5,密码是 4C08513044D8,如果不告诉你算法的话是无法找出来两者关系的。实际应用中算法会更加复杂,不可能通过一个 dump 文件来破解。
3.4 IC 卡 - 滚动码技术(动态密码)
动态密码并不是密码在动,而是数据在动,因为密码变动算法复杂,硬件要求较高,效率低。实现原理如下:
用户在刷卡时,控制器通过一定的算法将动态数据写入到卡片的扇区里,下次刷卡时将用户卡里的数据与控制器存储的数据进行比对,如果一致的话说明正常。如果对原卡进行复制,由于卡号是一样的,复制卡刷卡后控制器里的动态数据更新与复制卡一致,原卡就会失效。有的控制器发现不一致后还会把该卡号加入黑名单,这样原卡和复制卡都会失效。滚动码的系统基本是无法破解的,不过这种系统有个漏洞,那就是管理卡,也就是楼管或者保洁的全通卡,这种卡一般没有防复制机制。
3.5 总结
以上只是介绍了 IC 卡的攻防原理,请不要做违法的事情,一旦公家介入,这些破解技术都是小儿科。设备厂商与破解黑客之间的安全攻防一直在互相较量着,设备厂商在时间与现实的推动下不断完善和提高自家技术,破解的成本正越来越高,安全性很低的 ID 卡将来会被淘汰,而 IC 卡会变得越来越安全。
四、多卡合一
日常生活中总是要带很多很多的卡,门禁卡,考勤卡,公交卡等等等,这里讨论下多张卡合一的可能性与操作方法。
4.1 IC+ID 二合一
由于 IC 和 ID 卡工作频率不同,可以将 IC 卡和 ID 卡二合一,封装到一个钥匙扣里。
如果是两个 IC 或者两个 ID 卡,可以在中间中间加屏蔽层,刷正面是一张卡,刷反面是一张卡,不过可能存在刷卡信号不好或者两张卡互相干扰的情况。
4.2 IC+IC
要想把两个或者多个 IC 卡集成到一起理论上是可行的,要求两张卡都是 M1卡,且卡片能够解析成功,卡 A 和卡 B 两张卡必须有一张卡在交互过程中不校验 0 扇区(也就是卡号)。且卡 A 和卡 B 占用的扇区不冲突。将破解好的 dump 文件按照一定的规则合并写入到其中一张卡片中就可以实现。不过刷卡不校验卡号的 IC 卡很少。
4.3 多卡合一
IC / ID 卡的原理说白了就是线圈+芯片,可以共用线圈,通过微动开关切换不同的芯片来实现多张 IC 卡合一。缺点是需要内置纽扣电池供电,体积较大,价格也略贵。
手机 / 手环通过 NFC 也可以模拟多张 IC 门禁卡。
五、IC 门禁卡 DIY
ID / IC卡的构造为芯片+线圈,某宝有现成的芯片线圈,就是脱去外壳的钥匙扣卡,买回来直接用复制机将原卡信息写进去就好了。
将线圈芯片用贴纸包装下,再加上防磁贴,就可以贴到手机背面使用的。这就是最简单最低成本的改造方案了,前提是你得有或者借到一个复制机,而且只能使用 IC / ID 卡的门禁功能(验证卡号),诸如充值、消费之类涉及到数据读写的功能就不行了。
破解之类违法的事咱也不干,那怎么才能实现原卡的所有功能呢?前面提到 ID / IC卡就是芯片+线圈,理论上线圈可以自己绕,然后把原卡里的芯片拆下来焊接到线圈上去就 OK 了。这种方法本质上来讲就是你原来的卡,只需要有一定的动手能力就能改造。不过这种方法是破坏性的,首先得确保你的原卡可以补办且成本不高,否则失败一次就得补一次卡,手残党就别试了。
ID 卡的线圈动辄上百圈,不好手工绕。所以 DIY 的话一般都选用 IC 卡,下面以校园卡为例。
Step 1. 找芯片
首先用手电照射卡片,透光观察芯片位置,做上标记后把芯片剪下来。
Step 2. 取芯片
将包裹着塑料皮的芯片丢进 PVC 溶解液,或者用打火机加热,取出芯片本体。
Step 3. 绕线圈
拆开旧的充电器或其他电源类产品,找到里面的电感线圈,或者找个小马达,里面的漆包线多多的。然后找个柱状物体开始绕线圈,线圈不宜太小,太小感应不灵敏。一般绕上十几圈就可以,最后用胶水固定住线圈。也可以直接购买现成的线圈,自己绕的优势是可以随意改变线圈大小。
Step 4. 焊线圈
将芯片焊接在线圈上,烙铁温度不要太高以防烧坏芯片。然后用手机 NFC 测试下,有反应的话那就成功了,没反应就适当加减线圈数量。
Step 5. 改外观
芯片线圈改造成功后就可以随心所欲的 DIY 到任何物体上了,比如说加层防磁贴贴到手机后壳,别人刷饭卡的时候你可以刷手机。就是充饭卡的时候你得好好解释下哈哈哈。
网上还有 DIY 成戒指、手环、项链、耳环的,就差植入身体里了。
以前出门前需要检查四大件「身手钥钱」,父辈那一代人腰带上总是别着大大的钥匙串,到了现在钥匙是没那么多了,各种门禁扣却少不了,钱包里总是塞满各种信用卡与会员卡。好在电子身份证已经试点,智能门锁日益成熟,手机支付已经普及,手机 NFC 功能可以模拟部分门禁卡,有的时候出门只要带个手机就够了。也许将来 ID 卡和 IC 卡都将成为历史,你的指纹,你的眼睛,你的笑容将是你唯一的 ID。
|