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

刚到公司老大便发我一份文档<智能卡ISO7816-4规范(中文版)>,然后就让我研究下IC智能卡数据读取和支付.身为一直做.NET开发的我对硬件啥的一无所知,各种无头绪啊,研究了两天后,稍微了解IC智能卡的文件基本结构和指令后,终于让我找到了根节点.其它数据的读取还是毫无头绪,果断问度娘,果然之前有点走偏了,我应该研究的是 <中国金融集成电路(IC)卡规范 (PBOC 3.0)>,好了终于走上正轨,在拜读了一些大神的文章后,终于,身为小小白的我对EMV/PBOC的解析和支付有了一定…
上一篇简单的了解了IC智能卡的文件结构和APDU报文,这篇我们直接来读取卡内的数据.下面我们主要参照<中国金融集成电路(IC)卡规范>. 好了废话不多说,下面贴指令: (1)卡片接收一个来自终端的选择(SELECT)命令,请求选择 PSE(文件名“1PAY.SYS.DDF01”):     选择支付系统 PSE-1PAY.SYS.DDF01,在这里是规范规定的PSE的文件名为“1PAY.SYS.DDF01” ->00a404000E315041592E5359532E4444463031…
1.什么是TLV格式? TLV即Tag-Length-Value,常在IC卡与POS终端设备中通过这样的一个应用通信协议进行数据交换. 金融系统中的TLV是BER-TLV编码的一个特例编码规范,而BER-TLV是ISO定义中的规范.在TLV的定义中,可以知道它包括三个域,分别为:标签域(Tag),长度域(Length),内容域(Value).这里的长度域的值实际上就是内容域的长度. 其实,在BER编码的方式有两种情况,一种是确定长度的方式,一种是不确定长度的方式,而金融TLV选择了确定长度的方式…
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 XAML文件结构 在上文中,我们创建XAML文件后,会看到类似图1.16所示的结构 图1.16  结构 其中,.xaml文件和.xaml.cs文件就是XAML文件的结构.以下就是对这两个文件的介绍. .xaml文件中包含的就是XAML代码,实际上就是XML语法.官方的说法:它是一个声明对象的语言,为我们创建对象提供便捷的一种方式.与HTML类似,特点是用来描述用户接口 (UI)内容. 通常我们把与.xaml文件关联的.xaml.cs…
http://blog.sina.com.cn/s/blog_64cc82620100rcgu.html 最近在做一个基于PBOC电子现金卡的终端应用, 项目还没有完成, 但电子现金部分的处理模块已完成,剩下的基本是UI和调试的事情了. 想把对PBOC电子现金理解整理成一篇文章. 电子现金的概念是在PBOC规范的第十三部分<<基于借记/贷记应用的小额支付规范 >>里提出的. 可以这样理解,电子现金是PBOC里的一个应用,它基于借贷记. 这个应用被提出的目的就是实现我们经常听说的一个…
刚开始学习EMV&PBOC,磕磕碰碰,感谢xuture的<EMV技术学习和研究>给了很大帮助,让我少走了很多弯路,也感谢广俊.surge.艾零.小SO.Spinach.龙行天下的帮助,尤其要感谢广俊!!! 分享也收藏<EMV技术学习和研究>链接: EMV技术学习和研究(一)开篇 EMV技术学习和研究(二)应用选择 EMV技术学习和研究(三)应用初始化&&读应用数据 EMV技术学习和研究(四)脱机数据认证之SDA EMV技术学习和研究(五)脱机数据认证之DDA…
一.XML 可扩展标记语言 是什么?是一段有规范的字符串, 用在哪?用在任何地方 语法: * 结点Node <结点名 属性名="属性值"> 结点内容 </结点名> * 结点的开始和结尾配对 * 结点内可以有子结点 * 结点内可以有文本 * 结点名和属性名区分大小写 * 结点不能交叉 * 结点名和属性名 随便写 术语: 结点.属性 叶子结点  :没有子结点的结点 <a b="c"></a>可以简化<a b=&quo…
转自:https://www.cnblogs.com/SCPlatform/p/5076935.html 为了便于后文的引用说明,先列出一段TLV结构的数据: [6F] 4D │ ├─[84] 07 A0000003330101 │ ├─[A5] 42 │ │ ├─[50] 0B 50424F4320437265646974 │ │ ├─[87] 01 01 │ │ ├─[9F38] 06 9F33039F4E14 │ │ ├─[5F2D] 08 7A68656E66726465 │ │ ├─[…
本文是自身在研究学习过程中碰到的问题,整理而成. 为了便于后文的引用说明,先列出一段TLV结构的数据: [6F] 4D │ ├─[] A0000003330101 │ ├─[A5] │ │ ├─[] 0B 50424F4320437265646974 │ │ ├─[] │ │ ├─[9F38] 9F33039F4E14 │ │ ├─[5F2D] 7A68656E66726465 │ │ ├─[9F11] │ │ ├─[9F12] 0F 4341524420494D4147452030303031…
EMV规范中的BER-TLV数据格式:BER-TLV结构由Tag.Length.Value三部分组成. [TAG域]TAG可以由1个与多个字节组成,TAG域的第一个字节编码格式如下: 其中由三部分组成,高两位表示Tag类别,低五位表示Tag 编号,第6位表示Tag类型.Tag类别:00:通用类01:应用类02:上下文相关类03:专用类在智能卡中见得较多的是应用类与上下文相关类,通用类与行业无关,好像只有一个(0x06:Object Identifier):应用类就很多了,如前文中的0x6F,还有…
编程语言:VC++ 更新时间:2014.10.23 操作系统:windowAll 工具:PCSC读卡器 在上一个博文<<解惑:NFC手机如何轻松读取银行卡信息?>>中,介绍了支付宝钱包8.0利用NFC手机终端来获取IC卡信息,但是只能识别部分银行,还有些银行IC卡直接显示无法识别,究其原因,是因为支付宝钱包通过发送指令00B2011444来获取IC卡0201DGI中的5A标签,但因各家银行个人化数据不尽相同,根据14443协议,如果遇到读取长度与实际长度不符的情况,返回6CXX,所…
编程语言:VC++ 更新时间:2014.10.23 操作系统:windowAll 工具:PCSC读卡器 在上一个博文<<解惑:NFC手机怎样轻松读取银行卡信息?>>中,介绍了支付宝钱包8.0利用NFC手机终端来获取IC卡信息,可是仅仅能识别部分银行,还有些银行IC卡直接显示无法识别,究其原因,是由于支付宝钱包通过发送指令00B2011444来获取IC卡0201DGI中的5A标签.但因各家银行个人化数据不尽同样,依据14443协议.假设遇到读取长度与实际长度不符的情况.返回6CXX.…
<软件测试自动化之道>读书笔记 之 XML测试 2014-10-07 待测程序测试程序  通过XmlTextReader解析XML  通过XmlDocument解析XML  通过XmlPathDocument解析XML  通过XmlSerializer解析XML  通过DataSet解析XML   通过XSD Schema对XML文件进行验证  通过XSLT对XML文件进行修改  通过XmlTextWrite对XML文件进行写操作  比较两个XML文件是否严格相等  不考虑编码方式,比较两个X…
登录 阿里巴巴矢量图标 (https://www.iconfont.cn) 选中图标,加入购物车图标 下载源代码 解析出来如下文件结构 有两种使用方式: 1)不转换成base64的文件 找到 iconfont.css 文件,直接复制出来粘贴在微信小程序的wxss 文件内 再在小程序的wxml 里引用类 2)转换成base64的文件 在线转换 (https://transfonter.org/) 先找到下载的源码中的 iconfont.ttf 文件,导入 后续引用与1类似…
一.lrc文件有什么作用 lrc文件就是一个文本文件,用来记录歌曲的歌词信息,使得播放歌曲时能够让歌词与声音同步显示,类似于电影字幕那种效果. 心情很丧时我们会听首歌陶冶一下情操,不知你是否注意过音乐播放软件播放音乐时歌词信息,这是酷我音乐的歌词播放界面: 当前正在播放的这一句歌词会被高亮显示,从上面这幅图我们能够看出来,这个歌词文件至少记录了什么时间播放哪一句歌词,这些信息都是放在lrc文件中的,一个lrc文件的格式大致如下: [al:本歌所在的唱片集][ar:演出者-歌手][au:歌詞作者-…
上一章我们讲了 redis 基本类型的数据结构 和 对象系统 ,这篇来说一下单机redis 的知识点. 一.数据库 一个数据库在redis中就有一个结构体,而数据库的结构体是由redisServer这个结构体持有. 也就是redis服务器对应一个redisService 结构体,一个redisServer结构体持有多个redisDB数组,并且存储了数组的大小. struct redisServer { ... // 一个数组保存服务器所有的数据库 redisDb *db; // 服务器的数据库的…
四:脱机数据认证-可选终端进行脱机数据认证来,认证卡片.记住:对于某个事情,终端与卡片谁单独也说了不算,要二者都能干才能干. 终端依据卡片(AIP)和终端(终端性能)的支持情况,决定是否使用及使用哪种认证方式来验证卡片数据.此步骤对于联机终端,为可选执行.如果终端支持脱机数据认证功能,并且检测到卡片支持静态数据认证(SDA).动态数据认证( DDA)或复合动态数据认证( CDA)中至少一种,则终端需进行脱机数据认证. SDA - 验证卡片在个人化出厂后,关键数据是否被非法篡改.终端使用储存在卡上…
高性能IP数据库格式 qqzeng-ip.dat 编码:UTF8           字节序:Little-Endian 返回多个字段信息(如:亚洲|中国|香港|九龙|油尖旺|新世界电讯|810200|Hong Kong|HK|114.17495|22.327115) ------------------------ 文件结构 --------------------------- //文件头 16字节(4-4-4-4) [索引区第一条流位置][索引区最后一条流位置][前缀区第一条的流位置][前…
十:联机处理-可选项终端根据卡片行为分析的结果,执行对应的处理.若卡片响应联机,则终端发起联机操作.联机处理使得发卡行后台可以根据基于后台的风险管理参数检查并授权批准或拒绝交易.除了传统的联机欺诈和信用检查外,发卡行后台授权系统还可以使用卡片生成的动态密文进行联机卡片认证并在授权决策中考虑脱机处理的结果. [如果卡片或终端决定交易需要进行联机授权,同时终端具备联机能力,终端将卡片产生的ARQC(授权请求密文)报文送至发卡行进行联机授权.此报文包括ARQC 密文,用来生成ARQC 的数据以及表示脱…
七:终端风险管理-必选但包含可选步骤异常文件:终端检查应用主账号是否在异常文件列表(卡号黑名单)中.商户强制联机:商户可以将当前交易强制为联机处理.最低限额:控制交易当前交易金额或同一张卡片连续几笔交易累积金额超过某个数值时则要求联机授权.随机交易选择:控制交易基于当前交易的金额随机决定交易是否联机授权.(可选支持)频度检查:要求卡片在连续脱机交易一定次数后要求进行一次联机交易.新卡检查:判断卡片是否为初次使用. 6个 [终端必须具备风险管理功能,但其中的检查项是可以选择的.终端通过终端和卡片提…
两个PPT结合起来--一些基础介绍--每一步的详细细节还要去研读文档 EMV-全球标准PBOC-国内标准 ----------------------一:必选:应用选择应用选择的方法:目录选择法.AID列表选择法AID匹配方式:由ASI决定,分完全匹配和部分匹配应用选择方式:A.终端检测终端和卡片都支持的应用并将这些应用显示,供用户选择.B.终端根据发卡行事先定义的优先级别自动选择卡片上优先级最高的应用.--即是终端来选择. 国际组织制定的AID列表AID由注册的应用提供商RID+应用标识扩展P…
PBOC/EMV里有两个非常重要的概念,SDA(static data authentication)和DDA(dynamic data authentication),分别叫做静态数据认证和动态数据认证.这两个认证都是脱机下(off-line)的认证. SDA实现的原理是数字签名.过程如下:IC卡的里的数据先签个名,它的做法是用Hash为这些数据生成一个简短表示做为该数据的摘要,然后,把这个摘要加密,得到一个签名;.再把数据和加密后的签名发给终端.终端在这一头先把收到的数据Hash,得到一个签…
转自:http://blog.csdn.net/u010650845/article/details/53520426 MP3文件结构解析(超详细) 1. MP3文件结构解析 1.1. 概述 1.1.1. 音频相关术语 ID3: 一般位于一个mp3文件的开头或末尾的若干字节内,记录该mp3文件的歌手.标题.专辑名称.年代.风格等信息,ID3分位两个版本,V1版ID3在文件末尾的固定128字节,以TAG字符开头,若没有则认为无ID3V1信息,V2版ID3位于mp3的开头,长度可变. 采样率: 每秒…
转自:https://mp.weixin.qq.com/s/OX-aXd5MYlE_YoZ3p32qWA 作者简介 宋牧春,linux内核爱好者,喜欢阅读各种开源代码(uboot.linux.ucos.rt-thread等),对于优秀的代码框架及其痴迷.现就职于一家手机研发公司,任职Android BSP开发工程师. 正文开始 1. Device Tree简介 设备树就是描述单板资源以及设备的一种文本文件.至于出现的原因,大家可以上网查询更多关于设备树的文章.本篇文章主要是更深层次的探讨设备文件…
转自:https://mp.weixin.qq.com/s/WPZSElF3OQPMGqdoldm07A 作者简介 宋牧春,linux内核爱好者,喜欢阅读各种开源代码(uboot.linux.ucos.rt-thread等),对于优秀的代码框架及其痴迷.现就职于一家手机研发公司,任职Android BSP开发工程师. 正文开始 前情提要: 宋牧春: Linux设备树文件结构与解析深度分析(1) 征稿和征稿奖励名单: Linuxer-"Linux开发者自己的媒体"第二月稿件录取和赠书名单…
Java类文件结构 Java虚拟机不和包括Java在内的任何语言绑定,只与 "Class文件" 这种特定的二进制文件所关联, Class文件中包含了Java虚拟机指令集合符号表以及若干其它辅助信息. Java虚拟机作为一个通用的.机器无关的执行平台,任何其他语言都可以将其作为语言的产品交付媒介. Class类文件结构 Class文件是一组以8位字节为基础的二进制流, 各个数据项目严格按照顺序紧凑地排列在Class文件之中,中间没有添加任何分隔符, 这使得整个Class文件中存储的内容几…
Copy from :https://blog.csdn.net/woyimibayi/article/details/77574736 正文开始 1. Device Tree简介 设备树就是描述单板资源以及设备的一种文本文件.至于出现的原因,大家可以上网查询更多关于设备树的文章.本篇文章主要是更深层次的探讨设备文件的构成以及kernel解析设备树的原理.所以,本篇内容并不是针对没有任何设备树知识的读者.本篇文章主要针对已经使用过设备树或者对设备已经有所了解并想深层次的探究设备树的文件结构和ke…
FLV(FLASH VIDEO),是一种常用的文件封装格式,目前国内外大部分视频分享网站都是采用的这种格式.其标准定义为<Adobe Flash Video File Format Specification>.RTMP协议也是基于FLV视频格式的. FLV的文件格式在该规范中已阐述清楚,本章节不再重复描述,而是结合下面的示例具体阐述如何分析FLV文件.图3. FLV文件结构示例1 图4. FLV文件结构示例2 FLV文件的分析工具有很多,这里给大家推荐FLV Parser这个小软件,通过它可…
如果想从头学起Cypress,可以看下面的系列文章哦 https://www.cnblogs.com/poloyy/category/1768839.html 默认文件结构 在使用 cypress open 命令首次打开 Cypress,Cypress 会自动进行初始化配置并生成一个默认的文件夹结构,如下图 前言 这里先介绍文件结构中每种文件的作用是啥,后面再具体写代码的栗子 fixtures 测试夹具 简介 测试夹具通常配合 cy.fixture() 使用 主要用来存储测试用例的外部静态数据…