身边的智能卡安全么?——IC卡安全性初探
字数 2711 2025-08-22 12:22:59
IC卡安全性分析与破解技术详解
1. 智能卡分类与技术概述
1.1 主要卡片类型
ID卡:
- 只存储ID号,无算法
- 设备仅识别ID号
- 安全性低,易复制
- 应用:普通门禁卡
IC卡(Integrated Circuit):
- 1970年由法国人Roland Moreno发明
- 带芯片的智能卡统称
- 国际名称:Smart Card、IC Card、智慧卡等
- 与磁条卡区别:采用芯片而非磁性介质存储
磁条卡:
- 磁性介质存储
- 可被轻易读取和复制
- 无密码时极易被盗刷
- 一般为接触式
RFID卡:
- 采用射频识别技术(Radio Frequency Identification)
- 供电方式分类:
- 无源卡:无电源,近距离识别(校园卡、公交卡、二代身份证)
- 有源卡:自带电源,主动发射信号(ETC系统)
- 半有源卡:平常休眠,低频信号激活后高频通信
M1卡(NXP Mifare1 Card):
- 使用飞利浦子公司恩智浦的Mifare1系列芯片
- 常见型号:S50及S70
- 特点:
- 可读写
- 有存储器无处理器
- 存储ID号和数据
- 采用单一算法认证
- 可暴力破解密钥
CPU卡:
- 有操作系统和微处理器
- 特点:
- 可读写
- 有存储器和处理器
- 安全性极高
- 算法在设备内部
- 认证过程更复杂:
- CPU卡发数据→设备与SAM卡运算→返回数据确认
- 有接触式和非接触式
芯片卡:
- CPU卡的另一种简称
- 可接触式也可非接触式
1.2 接触式与非接触式
非接触式卡:
- 射频卡
- 由IC芯片、感应天线组成
- 封装在标准PVC卡片内
- 芯片及天线无外露
接触式卡:
- 芯片金属暴露在外
- 通过触点与读写器交换信息
- 现代银行卡多为接触式芯片卡
双界面卡:
- 同时支持接触式和非接触式
- 例:苏州社保卡(可刷医保和公交)
1.3 NFC与RFID关系
NFC:
- RFID的子集
- 工作频率:13.56MHz
- 工作距离:0-10cm
- 特点:
- 支持读写模式和卡模式
- 支持P2P通信
- 兼容ISO14443/ISO15693标准
- 应用:门禁、公交卡、手机支付
RFID:
- 工作频率:低频、高频(13.56MHz)及超高频
- 工作距离:几厘米到几十米
- 应用:生产、物流、跟踪、资产管理
ETC:
- RFID的分支
- 工作频率:2.45GHz
- 应用:高速收费
2. 非接触式IC卡结构与通信原理
2.1 卡片组成结构
- IC芯片
- 感应线圈
- 封装在标准PVC卡片内
- 通信距离:5-10cm
2.2 供电原理(无源IC卡)
- 读写器发射固定频率电磁波
- 卡片内部LC谐振电路产生共振
- 电容积累电荷达2V后为电路供电
- 现代电压可达3.5V
2.3 通信原理
- 频率:13.56MHz
- 读写器信号组成:
- 电源信号:为芯片供电
- 指令和数据信号:指挥芯片操作
- 读写器组成:
- 单片机
- 专用智能模块
- 天线
- 与PC的接口
2.4 通信协议与认证过程
通信过程:
- 寻卡:卡片进入磁场,发送UID
- 选卡:读写器选择卡片
- 认证:对指定扇区进行认证
认证过程(M1卡):
- 卡片产生随机数NT,明文发送给读写器
- 读写器:
- 根据卡片ID找到密钥
- 用密钥加密NT得到aR
- 发送aR和读写器随机数nR给卡片
- 卡片:
- 验证nR
- 错误:终止认证
- 正确:加密nR并发送
M1卡安全缺陷:
- 加解密算法和密钥硬件实现
- 无尝试次数记录
- 可无限次尝试暴力破解
CPU卡安全优势:
- 加密通过CPU实现
- 记录尝试次数
- 多次错误会锁卡
3. M1卡破解技术与实践
3.1 破解工具
1. 带NFC功能的手机:
- 硬件:NFC手机(如小米)
- 软件:Mifare Classic Tools (MCT)
2. PN532:
- 价格:约30元
- 需焊接或胶带固定
- 上位机软件:miLazyCracker
- Linux驱动:libnfc
3. PM5/PM6:
- 价格:100-110元
- 专用M1卡服务程序
- 支持一键读写、爆破
- PM6支持更多卡片型号
3.2 破解实践案例
公司饭卡分析:
- 扇区0:卡片UID、厂商信息、密钥
- 扇区2-3:
- 第一行前4字节:余额(十六进制,需字节反转)
- 第二行:消费金额和次数
- 第三行:
- 递增数据:日期
- 不规则数据:时间(时:分:秒)
- 最后:累计刷卡次数
- 校验方式:金额+后面4字节=固定值
写入限制:
- 可能原因:
- 写入密钥未知(非默认FFFFFFFFFF)
- 设备/软件限制
3.3 其他卡片测试结果
公司门禁卡:
- SAK20标志
- CPU卡,无法简单破解
社保卡:
- 读取数据为空
- 可能原因:
- 半加密
- NFC功能未启用
二代身份证:
- 手机能感应但无响应
- 非接触式IC卡(Type B CPU卡)
- 带COS(芯片操作系统)
4. 智能卡安全现状与建议
4.1 发展现状(2013年数据)
- 中国最大IC卡市场之一
- 2011年:
- 销售收入:90亿元
- 销售数量:24.3亿张
- 二代身份证:已发行约10亿张
发展趋势:
- 高安全性:
- 对称密钥:DES、3DES
- 非对称密钥:1024位RSA
- 低功耗设计
- 一卡多用
- 大容量存储
- 复合式(双界面)卡
4.2 攻击方式与案例
1. 干扰攻击:
- 扰乱读写器与标签通信
- 破坏系统可用性
2. 克隆攻击:
- 2004年:破解DST加密(汽车防盗)
- 可低成本复制智能卡
3. 芯片攻击:
- 电流分析攻击:
- 简单电源攻击
- 差分电源攻击
- 故障攻击:
- 破坏触发器
- 获取密码算法信息
- 案例:
- 2008年:Mifare芯片破解(全球10亿张卡受影响)
- 2011年:Mifare DESFire MF3ICD40破解(7小时,3000美元设备)
4. 可用性攻击:
- 物理破坏标签
- 强电磁脉冲破坏电路
5. 其他攻击:
- 重放攻击
- 中间人攻击
- 窃听攻击
- DoS攻击
4.3 M1卡安全建议
- 避免使用默认密钥(如FFFFFFFFFFFF)
- 设置复杂密钥
- 全扇区加密
- 非仅关键扇区加密
- 增加混淆数据
- 结合数据库验证
- 不单纯依赖卡内数据
- 每次刷卡与数据库比对
- 逐步替换为CPU卡
- 更高安全性
- 防暴力破解
5. 技术细节补充
5.1 M1卡数据结构示例
Block0: 卡片信息(UID、厂商等)
Block1: 密钥A | 访问控制 | 密钥B
Block2: 数据块(如余额)
5.2 认证过程技术细节
- 随机数生成:硬件伪随机数
- 加密算法:CRYPTO1(Mifare Classic)
- 密钥长度:48位
5.3 破解工具使用要点
- miLazyCracker:
- 依赖libnfc
- 命令:./miLazyCrackerFreshInstall.sh
- MCT手机端:
- 需支持全功能NFC
- 可读取UID、扇区数据
5.4 防御措施进阶
- 物理防护:
- 防拆设计
- 防侧信道攻击屏蔽
- 加密增强:
- 动态密钥
- 一次一密
- 行为监测:
- 异常交易检测
- 多因素认证