第二章:芯片卡物理结构——接触式与非接触式接口,IC芯片内部组成

各位同学,今天我们来聊聊芯片卡的“骨架”和“内脏”。

很多人觉得芯片卡就是一块塑料片加个金属触点,没什么技术含量。其实不然。我当年第一次拆解一张EMV卡时,也被里面的设计震撼到了——那么小的空间里,藏着完整的计算机系统。

2.1 接触式接口:你每天插进去的那个金属片

接触式接口,说白了就是卡上那8个金属触点。你把它插进POS机,机器就通过触点给卡供电、传数据。

这8个触点有标准定义,叫ISO 7816标准。我列个表,大家一看就明白:

触点编号符号功能备注
C1VCC供电(5V / 3V / 1.8V)现在主流是3V和1.8V
C2RST复位信号卡插入时先复位
C3CLK时钟信号频率通常3-5MHz
C4RFU保留未用部分卡用于USB接口
C5GND地线参考地
C6VPP编程电压老卡用,现在基本废弃
C7I/O数据输入输出半双工通信
C8RFU保留未用同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芯片。别看它小,里面五脏俱全。我画了一张结构图,大家先看个整体:

IC芯片内部结构 CPU 8位/16位/32位 安全协处理器 ROM 只读存储器 存放COS固件 RAM 随机存取存储器 运行临时数据 EEPROM / Flash 非易失性存储器 存放密钥、证书、交易记录 接触式接口(ISO 7816) / 非接触式接口(ISO 14443)

从上图可以看出,芯片内部有四个核心部件: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