第二章:芯片卡物理结构——接触式与非接触式接口,IC芯片内部组成
各位同学,今天我们来聊聊芯片卡的“骨架”和“内脏”。
很多人觉得芯片卡就是一块塑料片加个金属触点,没什么技术含量。其实不然。我当年第一次拆解一张EMV卡时,也被里面的设计震撼到了——那么小的空间里,藏着完整的计算机系统。
2.1 接触式接口:你每天插进去的那个金属片
接触式接口,说白了就是卡上那8个金属触点。你把它插进POS机,机器就通过触点给卡供电、传数据。
这8个触点有标准定义,叫ISO 7816标准。我列个表,大家一看就明白:
| 触点编号 | 符号 | 功能 | 备注 |
|---|---|---|---|
| C1 | VCC | 供电(5V / 3V / 1.8V) | 现在主流是3V和1.8V |
| C2 | RST | 复位信号 | 卡插入时先复位 |
| C3 | CLK | 时钟信号 | 频率通常3-5MHz |
| C4 | RFU | 保留未用 | 部分卡用于USB接口 |
| C5 | GND | 地线 | 参考地 |
| C6 | VPP | 编程电压 | 老卡用,现在基本废弃 |
| C7 | I/O | 数据输入输出 | 半双工通信 |
| C8 | RFU | 保留未用 | 同C4 |
避坑指南:我曾经遇到过一批卡,在老旧POS机上频繁掉线。查了半天,发现是POS机供电电压不稳,从5V掉到了4.2V。芯片卡对电压很敏感,低于4.5V就可能复位。所以做终端兼容性测试时,电压波动一定要测。
接触式接口的通信协议是T=0(异步半双工)或T=1(异步全双工)。T=0用得最多,每次传一个字节,带奇偶校验。T=1则是一帧一帧传,效率更高。
2.2 非接触式接口:挥一下就行,但背后不简单
非接触式卡,就是大家说的“挥卡”支付。你拿着卡在POS机上一晃,“滴”一声就完成了。
原理其实不复杂:读卡器发射13.56MHz的射频信号,卡上的线圈感应到电磁场,产生感应电流给芯片供电。同时,数据通过负载调制的方式传回去。
关键点:非接触式卡没有电池。它的所有能量都来自读卡器的射频场。所以距离一远(超过10cm),信号就弱了,卡可能掉电复位。
我测试过很多非接触式卡,发现一个有趣的现象:有些卡在冬天容易失败。为什么?因为冬天空气干燥,人体静电大,卡靠近读卡器时,静电放电会干扰射频场。嗯,这算是个冷知识。
非接触式接口遵循ISO 14443标准,分Type A和Type B两种。Type A用曼彻斯特编码,Type B用NRZ编码。国内银联卡基本都是Type A。
2.3 IC芯片内部组成:一个微型计算机
芯片卡的核心,就是那颗指甲盖大小的IC芯片。别看它小,里面五脏俱全。我画了一张结构图,大家先看个整体:
从上图可以看出,芯片内部有四个核心部件:CPU、ROM、RAM、EEPROM/Flash。我一个个讲。
2.4 CPU:芯片的大脑
CPU负责执行指令、处理数据。芯片卡里的CPU和电脑CPU原理一样,但更简单、更省电。
目前主流是8位或16位CPU,32位也开始普及。8位CPU跑个DES、AES加密没问题,但做RSA运算就吃力了。所以很多卡会集成一个安全协处理器,专门干加解密的活。
注意:芯片卡的CPU频率很低,通常只有几MHz到几十MHz。别拿它和手机CPU比。但正因为频率低,功耗才低,才能靠读卡器那点射频能量工作。
我见过一个案例:某银行发了一批卡,用户反映刷卡时特别慢,要等5秒才出结果。后来发现是CPU太弱,RSA 2048位签名运算要算3秒多。后来换了带协处理器的芯片,0.5秒就搞定了。
2.5 ROM:出厂就写死的“系统盘”
ROM里存的是芯片操作系统(COS)的固件。这玩意儿出厂就烧录好了,之后不能改。
ROM里主要放三样东西:
- 启动代码:上电后最先执行的程序,初始化硬件
- 基本指令集:APDU命令的处理函数
- 安全算法库:DES、AES、RSA等加密算法的实现
ROM的容量不大,一般几十KB到几百KB。但够用了,因为COS本身就很精简。
2.6 RAM:临时工作区
RAM是芯片的“内存”。程序运行时,变量、堆栈、临时数据都存在这里。
RAM的特点是快,但一断电数据就没了。所以交易过程中,敏感数据(比如PIN)只在RAM里短暂停留,交易结束立刻擦除。
避坑指南:我曾经调试过一个bug,卡在交易中途突然复位,结果发现是RAM溢出导致的。芯片卡的RAM通常只有几百字节到几KB,写代码时一定要精打细算。我建议做开发时,先算好最大堆栈深度,别让局部变量撑爆了。
2.7 EEPROM/Flash:真正的“硬盘”
EEPROM和Flash都是非易失性存储器,断电后数据不丢。它们存的是最关键的东西:
- 密钥:发卡行密钥、应用密钥、PIN加密密钥等
- 证书:CA证书、IC卡公钥证书
- 交易记录:最近几笔交易的日志
- 应用数据:余额、脱机交易限额、累计金额等
EEPROM和Flash的区别在于:EEPROM可以按字节擦写,Flash必须按块擦写。芯片卡里两者都有,但Flash更便宜、容量更大,现在新卡多用Flash。
容量方面,早期卡只有4KB、8KB,现在主流是32KB到128KB。够存几十个密钥和几百条交易记录了。
重要提醒:EEPROM/Flash有写入寿命限制。EEPROM一般10万次,Flash更少,1万到10万次。所以不要频繁写卡,否则卡会“写死”。我见过一张测试卡,被自动化脚本连续写了20万次,最后彻底报废了。
2.8 小结:一张卡就是一台微型安全计算机
好了,总结一下。芯片卡的物理结构,说白了就是:
- 接口:接触式(ISO 7816)或非接触式(ISO 14443),负责供电和通信
- CPU:执行指令,处理加解密
- ROM:存固件,出厂固化
- RAM:临时工作区,掉电即失
- EEPROM/Flash:存密钥和交易数据,持久保存
你想想看,这么小的芯片,要跑操作系统、要加密解密、要防攻击、还要省电——设计难度其实很高。我每次拆卡看芯片,都觉得这帮做芯片的工程师是真牛。
下一章我们会讲芯片卡上的数据存储结构,包括文件系统、密钥体系这些。嗯,到时候再细聊。
公众号:蓝海资料掘金营,微信deep3321