EMV/PBOC 解析(一) 卡片文件结构

  刚到公司老大便发我一份文档《智能卡ISO7816-4规范(中文版)》,然后就让我研究下IC智能卡数据读取和支付。身为一直做.NET开发的我对硬件啥的一无所知,各种无头绪啊,研究了两天后,稍微了解IC智能卡的文件基本结构和指令后,终于让我找到了根节点。其它数据的读取还是毫无头绪,果断问度娘,果然之前有点走偏了,我应该研究的是 《中国金融集成电路(IC)卡规范 (PBOC 3.0)》,好了终于走上正轨,在拜读了一些大神的文章后,终于,身为小小白的我对EMV/PBOC的解析和支付有了一定的了解,但是和大神还差好远,但是希望能帮助到和我一样的小白,同事温故而知新嘛。好了说了这么多的废话,开始正文。

  因为《中国金融集成电路(IC)卡规范》也是以《ISO7816规范》为基础的,这里就先参照《ISO7816规范》来赘述下文件的基本结构和APDU的报文结构,后续再做读取卡片数据的具体操作指令。

先上缩略语:

  APDU       应用协议数据单元

  ATR        复位应答

  CLA        类别字节

  DIR        目录

  DF         专用文件

  EF         基本文件

  FCI        文件控制信息

  FCP        文件控制参数

  FMD        文件管理数据

  INS        指令字节

  MF         主文件

  P1—P2     参数字节

  RFU        保留供将来使用

  SM         安全报文交换

  SW1—SW2   状态字节

  TLV        标记、长度、值

  TPDU       传输协议数据单元

  ...

(1)文件结构

——专用文件(DF)。

——基本文件(EF)。

卡内数据的逻辑组织结构由下列专用文件的结构化分级组成。

——在根处的DF称作主文件(MF)。该MF是必备的。

——其他DF是任选的。

定义了下列两种类型的EF。

——内部EF——那些EF预期用于存储由卡所解释的数据,即,为了管理和控制目的由卡所分析和使用的数据。

——工作的EF——那些EF预期用于不由卡所解释的数据,即,仅仅由外界待使用的数据。

上图:

(2)APDU报文组成

APDU由下列内容组成:

——必备的4字节首标(CLA  INS P1  P2);

——有条件的可变长度主体。

(首标) [CLA INS P1 P2]    [Lc字段][数据字段][Le字段] (主体)

INS代码:

值    命令名称 
‘0E’ ERASE BINARY 
‘20’ VERIFY 
‘70’ MANAGE CHANNEL 
‘82’ EXTERNAL AUTHENTICATE 
‘84’ GET CHALLENGE 
‘88’ INTERNAL AUTHENTICATE 
‘A4’ SELECT FILE 
‘BO’ READ BINARY
‘CO’ GET RESPONSE 
‘C2’ ENVELOPE
‘CA’ GET DATA 
‘DO’ WRITE BINARY 
‘D2’ WRITE RECORD 
‘D6’ UPDATE BINARY 
‘DA’ PUT DATA 
‘DC’ UPDATE RECORD 
‘E2’ APPEND RECORD

如有不妥之处欢迎指正。

时间: 2024-11-07 19:37:04

EMV/PBOC 解析(一) 卡片文件结构的相关文章

PBOC中文件结构,文件类型解析

1.明确两个规范,a. ISO7816   b.EMV规范/PBOC规范,二者的区别,7816是ISO制定的,是国际规范,而EMV规范是卡组织制定的,是遵循ISO7816规范的,PBOC是抄袭EMV规范的,肯定也是遵循ISO7816规范的 2.几种常见的文件类型: a. MF,DF,EF,这是ISO7816里定义的文件,MF也是一种DF,是最顶层的DF,叫根目录,而EF是目录里普通的文件 b.ADF,DDF,AEF,这是EMV/PBOC里定义的文件, PBOC/EMV里定义的IC卡文件结构是符合

Xamarin XAML语言教程XAML文件结构与解析XAML

Xamarin XAML语言教程XAML文件结构与解析XAML XAML文件结构 在上文中,我们创建XAML文件后,会看到类似图1.16所示的结构 图1.16  结构 其中,.xaml文件和.xaml.cs文件就是XAML文件的结构.以下就是对这两个文件的介绍. .xaml文件中包含的就是XAML代码,实际上就是XML语法.官方的说法:它是一个声明对象的语言,为我们创建对象提供便捷的一种方式.与HTML类似,特点是用来描述用户接口 (UI)内容. 通常我们把与.xaml文件关联的.xaml.cs

PBOC

http://blog.sina.com.cn/s/blog_64cc82620100rcgu.html 最近在做一个基于PBOC电子现金卡的终端应用, 项目还没有完成, 但电子现金部分的处理模块已完成,剩下的基本是UI和调试的事情了. 想把对PBOC电子现金理解整理成一篇文章. 电子现金的概念是在PBOC规范的第十三部分<<基于借记/贷记应用的小额支付规范 >>里提出的. 可以这样理解,电子现金是PBOC里的一个应用,它基于借贷记. 这个应用被提出的目的就是实现我们经常听说的一个

EMV技术学习和研究(转)

刚开始学习EMV&PBOC,磕磕碰碰,感谢xuture的<EMV技术学习和研究>给了很大帮助,让我少走了很多弯路,也感谢广俊.surge.艾零.小SO.Spinach.龙行天下的帮助,尤其要感谢广俊!!! 分享也收藏<EMV技术学习和研究>链接: EMV技术学习和研究(一)开篇 EMV技术学习和研究(二)应用选择 EMV技术学习和研究(三)应用初始化&&读应用数据 EMV技术学习和研究(四)脱机数据认证之SDA EMV技术学习和研究(五)脱机数据认证之DDA

BER-TLV数据结构

本文是自身在研究学习过程中碰到的问题,整理而成. 为了便于后文的引用说明,先列出一段TLV结构的数据: [6F] 4D │ ├─[84] 07 A0000003330101 │ ├─[A5] 42 │ │ ├─[50] 0B 50424F4320437265646974 │ │ ├─[87] 01 01 │ │ ├─[9F38] 06 9F33039F4E14 │ │ ├─[5F2D] 08 7A68656E66726465 │ │ ├─[9F11] 01 01 │ │ ├─[9F12] 0F

Linux 程序设计学习笔记----POSIX 文件及目录管理

转载请注明:http://blog.csdn.net/suool/article/details/38141047 问题引入 文件流和文件描述符的区别 上节讲到ANSI C 库函数的实现在用户态,流的相应资源也在用户空间,但无论如何实现最终都需要通过内核实现对文件的读写控制.因此fopen函数必然调用了对OS的系统调用.这一调用在LINUX下即为open, close, read, write等函数.这些都遵循POSIX标准. so,在linux系统中是如何通过POSIX标准实现对文件的操作和目

比支付宝更好用的读IC卡信息工具

编程语言:VC++ 更新时间:2014.10.23 操作系统:windowAll 工具:PCSC读卡器 在上一个博文<<解惑:NFC手机如何轻松读取银行卡信息?>>中,介绍了支付宝钱包8.0利用NFC手机终端来获取IC卡信息,但是只能识别部分银行,还有些银行IC卡直接显示无法识别,究其原因,是因为支付宝钱包通过发送指令00B2011444来获取IC卡0201DGI中的5A标签,但因各家银行个人化数据不尽相同,根据14443协议,如果遇到读取长度与实际长度不符的情况,返回6CXX,所

《软件测试自动化之道》读书笔记 之 XML测试

<软件测试自动化之道>读书笔记 之 XML测试 2014-10-07 待测程序测试程序  通过XmlTextReader解析XML  通过XmlDocument解析XML  通过XmlPathDocument解析XML  通过XmlSerializer解析XML  通过DataSet解析XML   通过XSD Schema对XML文件进行验证  通过XSLT对XML文件进行修改  通过XmlTextWrite对XML文件进行写操作  比较两个XML文件是否严格相等  不考虑编码方式,比较两个X

lrc歌词文件格式

一.lrc文件有什么作用 lrc文件就是一个文本文件,用来记录歌曲的歌词信息,使得播放歌曲时能够让歌词与声音同步显示,类似于电影字幕那种效果. 心情很丧时我们会听首歌陶冶一下情操,不知你是否注意过音乐播放软件播放音乐时歌词信息,这是酷我音乐的歌词播放界面: 当前正在播放的这一句歌词会被高亮显示,从上面这幅图我们能够看出来,这个歌词文件至少记录了什么时间播放哪一句歌词,这些信息都是放在lrc文件中的,一个lrc文件的格式大致如下: [al:本歌所在的唱片集][ar:演出者-歌手][au:歌詞作者-