第二章:磁条卡与EMV芯片卡原理

各位同学,今天我们来聊聊支付卡最核心的两个技术体系——磁条卡和EMV芯片卡。说实话,我在安全圈混了十几年,见过太多因为不懂这些底层原理而翻车的案例。你想想看,连卡的数据怎么存、怎么读都不清楚,怎么去发现漏洞?

2.1 磁条卡数据结构与克隆原理

磁条卡,说白了就是一条黑色塑料带子贴在一张塑料卡片上。嗯,这里要注意,这条带子可不是随便涂的黑色颜料,它里面藏着三层磁道。

2.1.1 磁道数据结构

磁条卡有三个磁道,每个磁道的用途和格式都不一样。我个人习惯把磁道2当作重点研究对象,因为大部分交易系统只读磁道2。

磁道 数据内容 最大字符数 编码方式
磁道1 卡号、持卡人姓名、有效期、服务码 79个字符 7位ASCII码
磁道2 卡号、有效期、服务码、PIN验证数据 40个字符 5位BCD码
磁道3 备用数据(很少用) 107个字符 5位BCD码

磁道2的数据格式长这样:

;卡号=有效期+服务码+自定义数据?
示例:;6222021234567890=2505123456789?
其中:
  ; 起始标识
  6222021234567890 卡号(19位)
  = 分隔符
  2505 有效期(25年05月)
  123 服务码
  456789 自定义数据
  ? 结束标识

我在项目中遇到过一件事:有家电商平台把磁道2数据直接存到数据库里,连加密都没有。你想想看,这等于把银行卡的"指纹"直接送人了。

2.1.2 克隆原理

磁条卡克隆,说白了就是"读出来,写进去"。为什么能克隆?因为磁条卡的数据是静态的、明文存储的,没有任何动态验证机制。

核心漏洞点:磁条卡的数据一旦被读取,就可以被无限复制。没有动态加密,没有挑战-响应机制。

克隆流程其实很简单:

  1. 读取磁道数据:用磁条读卡器(比如市面上的USB磁条刷卡器)读取磁道2数据
  2. 解析数据:提取卡号、有效期、服务码
  3. 写入空白卡:用磁条写卡器把数据写入空白磁条卡
  4. 使用克隆卡:在支持磁条交易的POS机上刷卡

避坑指南:我曾经见过一个渗透测试团队,他们用淘宝上几十块钱的磁条读卡器,在咖啡厅里"不经意"地刷了一下别人的卡,就拿到了完整的磁道数据。整个过程不到3秒。所以,磁条卡的安全问题不是"能不能被克隆",而是"什么时候被克隆"。

2.2 EMV芯片卡交易流程与加密机制

EMV芯片卡的出现,说白了就是为了解决磁条卡"一读就死"的问题。芯片卡里面有一颗真正的微处理器,能跑加密算法,能生成动态数据。

2.2.1 芯片卡内部结构

芯片卡内部有这几个关键组件:

  • CPU:8位或16位微处理器,跑COS(卡片操作系统)
  • ROM:存储COS固件,出厂就写死了
  • EEPROM:存储应用数据(卡号、密钥、交易记录)
  • RAM:临时存储交易过程中的计算数据
  • 加密协处理器:专门跑RSA、DES、AES等算法

2.2.2 交易流程

EMV交易流程,我习惯把它分成三个阶段:

第一阶段:卡片认证(SDA/DDA/CDA)

终端向卡片发送一个随机数,卡片用私钥签名后返回。终端用公钥验证签名。这样就能确认卡片是真的,不是克隆的。

第二阶段:持卡人验证(CVM)

这个阶段验证你是不是卡的主人。常见方式有:

  • 联机PIN:PIN送到发卡行验证
  • 脱机PIN:卡片自己验证PIN
  • 签名:传统方式,现在很少用了
  • 无CVM:小额免密

第三阶段:交易授权

卡片生成一个动态的ARQC(授权请求密码),这个值每次交易都不一样。发卡行验证ARQC后返回ARPC(授权响应密码)。

个人经验:我测试过一个支付系统,他们只验证了ARQC的格式,没验证ARQC的内容。结果我用一个固定的ARQC值反复提交交易,系统全通过了。这就是典型的"只检查了形式,没检查实质"。

2.2.3 加密机制

EMV的加密体系,说白了就是"公私钥+对称密钥"的混合体:

  • 非对称加密:用于卡片认证(RSA 1024/2048位)
  • 对称加密:用于交易数据保护(3DES/AES)
  • 动态数据:每次交易生成唯一的ARQC,防止重放攻击
  • 密钥分散:每张卡的密钥都不一样,从主密钥派生出来

2.3 磁条卡 vs 芯片卡安全对比

我直接说结论:磁条卡在安全层面,完全不是芯片卡的对手。但为什么还有那么多磁条卡在用?因为成本。

对比维度 磁条卡 EMV芯片卡
数据存储 明文静态存储 加密动态存储
克隆难度 极低(3秒克隆) 极高(需要破解私钥)
重放攻击 完全无法防御 ARQC机制天然防御
离线交易 支持(但风险极高) 支持(有脱机认证)
成本 约0.5元/张 约5-10元/张
全球普及率 逐年下降 超过80%

核心结论:磁条卡的安全问题不是"漏洞",而是"设计缺陷"。它从诞生那天起就没考虑过安全。EMV芯片卡虽然也不是绝对安全(比如侧信道攻击、故障注入攻击),但攻击成本已经高到让大多数黑客望而却步。

我记得有一次帮银行做渗透测试,他们还在用磁条卡做高额交易。我当场用一张空白卡克隆了一张他们的VIP卡,在ATM上取了5000块。银行的人脸都绿了。嗯,从那以后,他们连夜升级了芯片卡系统。

你想想看,如果你的支付系统还在支持纯磁条交易,那基本等于把金库大门敞开着。这不是技术问题,是态度问题。

磁条卡 vs EMV芯片卡安全对比流程图 磁条卡 EMV芯片卡 数据:明文静态存储 克隆:3秒完成 重放:完全无防御 成本:约0.5元/张 数据:加密动态存储 克隆:需破解私钥 重放:ARQC机制防御 成本:约5-10元/张 结论:磁条卡是设计缺陷,芯片卡是成本问题 攻击成本:磁条卡≈0元,芯片卡≈10万+元

渗透测试小技巧:测试支付系统时,先看它是否支持纯磁条交易。如果支持,直接克隆一张卡试试。如果系统连磁条卡和芯片卡都分不清,那后面的加密机制再强也没用。

专注资料整理