《PBOCEMV-交易流程详解--POS与卡片的数据交互进行分析资料.doc》由会员分享,可在线阅读,更多相关《PBOCEMV-交易流程详解--POS与卡片的数据交互进行分析资料.doc(21页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、Good is good, but better carries it.精益求精,善益求善。PBOCEMV-交易流程详解-POS与卡片的数据交互进行分析-PBOC/EMV-交易流程详解-POS与卡片的数据交互进行分析符号说明:RFU:预留使用近期在调试pboc的交易,就萌生了把所有数据交互进行分析的想法,目的是抛砖引玉,希望有高手指正本文错误,或者理解不透彻的地方。事不宜迟,下面是pboc交易的开始:检测插片,检测卡片存在后:(1):选择支付环境pse:1PAY.SYS.DDF01选择(SSELECT)报文,00A4xx(通过命令选择)xx(第一个或仅有一个)a4#ICLEN:2000a404
2、000e315041592e5359532e444446303100SELECTSENDENDddqwe#GETLEN:406f24840e315041592e5359532e4444463031a5128801015f2d087a68656e667264659f1101019000SELECTGETENDdd#对PSE支付环境的响应6F:FCI模板84:DF名称A5:FCI专用模板88:目录基本文件的SFI(高三位为0,后面补100,进行读取文件数据)5F2D:首选语言9F11:发卡行代码表索引BF0C:发卡行自定义数据-(该卡没有带此数据)FCI(文件控制信息)包含FCI(短文件标识符),
3、目录中的每个应用列出一个应用。-至此,PSE选择完成。如果卡片对选择支付环境的响应不是9000,POS需要尝试逐个选择AID。(2):选择与PSE相关联的一个基本文件,该文件会列出所支持的支付应用。(读记录)READRECORD00b2xx(记录号)xx(表明读记录号)b2#ICLEN:500b2010c00SELECTSENDENDdd#asd#GETLEN:49702d612b4f07a0000003330101500b50424f43204372656469748701019f120f4341524420494d41474520303030319000SELECTGETENDdd#卡片的
4、响应:70xx(长度)xx(记录模板)70:基本数据模板61:应用模板,有pse才会存在,包含应用目录入口相关的数据对象4F:应用标识符=RID+PIX(应用提供商和专用应用标识符)50:应用标签,EMV规定为必备数据,用于应用选择,与AID相关的便于记忆的数据此处为PBOCCredit87:应用优先指示器,如果卡片有多个应用,指出同一目录中应用的优先级。bit8=1:没有持卡人确认应用不能选择;0:没有持卡人确认可以选择应用bit7-bit5:RFUbit4-bit10000:不指定优先级。:xxxx:1-15,1优先级最高9f12:应用首选名称此处是:CARDIMAGE0001获得一个AI
5、D后,应该选入AID列表。继续读取文件的下一个记录b2#ICLEN:500b2020c00SELECTSENDENDdd#asd#GETLEN:26a83SELECTGETENDdd#直到没有任何记录可读取。(3):根据读取的记录的应用标识符加入AID列表,然后根据用户按键进行选择应用或者根据优先级选择应用。a4#ICLEN:1300a4040007a000000333010100SELECTSENDENDddqwe#GETLEN:486f2c8407a0000003330101a5218701019f380c9f1a029f7a019f02065f2a025f2d087a68656e6672
6、64659f1101019000SELECTGETENDdd#-选择ADF的响应报文6F:FCI模板84:DF名称9F38:PDOL的数据(9F1A:终端国家代码;9F7A:电子现金指示器,9F02:授权金额,5F2A:交易货币代码)5F2D:首选语言9F11:发卡行代码表索引进行最终选择,要求用户输入金额,判断POS是否能走电子现金交易路径,表示电子现金指示器。(4):获取处理选项(GPO)通知卡片交易开始。根据PDOL选项进行组包。GPO指令的发送80a80000xx(长度)83(PDOL标签)xx(PDOL长度)xxxx(数据)a8#ICLEN:1980a800000d830b01560
7、1000000000009015600SELECTSENDENDss#GETLEN:18800e58000801010010010401180103009000SELECTGETENDss#GPO的响应格式包括:80xx(长度)xx(应用交互特征)xx(AFL)如上,应用交互特征为:5800解析:bit8:RFU;bit7:1=支持SDA;bit6:1=支持DDA;bit5:1=支持持卡人认证bit4:执行终端风险管理bit3:支持发卡行认证bit2:RFUbit1:1=支持CDA字节2:RFUAFL(应用文件定位器),每个AFL包括4个字节字节1:bit8-bit4:SFI(短文件标识符)b
8、it3-bit1:000字节2:文件中要读的第1个记录的记录号(不能为0)字节3:文件中要读的最后一个记录的记录号(大于或等于字节2)字节4:从字节2的记录好开始,用于静态数据记录的个数(从0开始,不大于(字节3)-(字节2)+1)根据GPO返回的AFL,读文件。读文件号格式为:SFI左移3位,右边补100。比如上面的08十六进制就是00001000bit8-bit4才是SFI,所以真实的是:00000001,读取文件的时候,右补0100(表明读取指定记录),得到00001100,就是0x0c。同理,02文件就是:0x14b2#ICLEN:500b2010c00SELECTSENDENDdd#
9、asd#GETLEN:66703e5f200f46554c4c2046554e4354494f4e414c57116228000100001117d101220101234567899f1f16303130323033303430353036303730383039304130429000SELECTGETENDdd#70:模板5f20:持卡人姓名:FULLFUNCTIONAL57:二磁道等价数据(包括主账户分隔符失效日期服务码PIN验证域自定义数据如果不是偶数,补充F)9F1F:磁道一自定义数据b2#ICLEN:500b2011400SELECTSENDENDdd#asd#GETLEN:18
10、700e5a0862280001000011175f3401019000SELECTGETENDdd#5a:应用主账号(PAN)5F34:应用主账号(应用PAN的序列号)b2#ICLEN:500b2021400SELECTSENDENDdd#asd#GETLEN:8970558c1d9f34039f02069f03069f1a0295059b025f2a029a039f21039c019f37048d1c8a029f02069f03069f1a0295059b025f2a029a039f21039c019f37049f0e0500000000009f0f0500000000009f0d0500
11、000000009000SELECTGETENDdd#8C:卡片风险管理数据对象列表1CDOL18d:卡片风险管理数据对象列表2CDOL29F0E:发卡行行为代码-拒绝9F0F:发卡行行为代码-联机9F0D:发卡行行为代码-缺省b2#ICLEN:500b2031400SELECTSENDENDdd#asd#GETLEN:5370315f25039507015f24031012315f280201569f0702ffc09f0802008c8e0a00000000000000001f005f300202019f420201569000SELECTGETENDdd#5F25:应用生效日期5F24:
12、应用失效日期5F28:发卡行国家代码9F07:应用用途控制9f08:应用版本号8e:持卡人验证方法5F30:服务码9F42:应用货币代码b2#ICLEN:500b2041400SELECTSENDENDdd#asd#GETLEN:1370099f74064543433131319000SELECTGETENDdd#9F74:电子现金发卡行授权码(如果没有9F74不能进行电子现金交易)b2#ICLEN:500b2011c00SELECTSENDENDdd#asd#GETLEN:1397081868f0180908180229103a5e3120f2d2862091176aa2bd4e24d69e
13、7eef7b9195c91ea0088aecff47edfa0beef7c391df3b05f717dcc06ffc8eeff90ba14212b8a52ad48b33277b2e230d40b3e76dc59778926f1d8739e106cd741de06a7423dfba25e02f12e543d13d1b471806526024981b7d26b4bf6e5558604ccc289f59e8a802f45fb3d9e679000SELECTGETENDdd#8F:公钥索引90:发卡行公钥证书-用于脱机数据认证b2#ICLEN:500b2021c00SELECTSENDENDdd#as
14、d#GETLEN:46702a9f32010392248b643d1eaf2ea784ac205303c90e745ea2efa5cbf02cc47d47833bb7b27ecc6962385a4b9000SELECTGETENDdd#9F32:发卡行公钥指数92:发卡行公钥余数b2#ICLEN:500b2031c00SELECTSENDENDdd#asd#GETLEN:136708183938180335d0cc24c1970a269bca79bd92cad1268359d105fafa1d0c52946f3645fbcd46a45e623a437f61ed7b45d8f3242767e69
15、534dee7ba035cdc0649e1495cf7a138903ae4f2805e518b1123188edcc745242e5f4c52ee934d957df0d79e14cc612627cabbdf5fd1ba1a5dd234e0e540b597491ddb5cb775085610d758377a7fec39000SELECTGETENDdd#93:签名的静态应用数据-SDA文件中的记录已经读取完毕POS已经检查可以做电子现金交易,读取可用余额值:9F799F4F#ICLEN:580ca9f7900SELECTSENDENDEE#GETLEN:119f79060000000100009
16、000SELECTGETENDEE#POS已经检查可以做电子现金交易,读取重置阀值:9F6D9F4F#ICLEN:580ca9f6d00SELECTSENDENDEE#GETLEN:119f6d060000000015009000SELECTGETENDEE#如果可用余额减去授权金额,小于重置阀值,POS将强制联机,需要用户输入后台账户。至此,获取随机数,进行脱机数据认证(SDA/DDA),获取卡号信息,进行使用控制,失效日期检查,生效日期检查,执行CVM,进行终端风险管理,卡片行为分析,以及各种牛逼检查。(5):GenerateAC(获取应用密文)80AExx(控制参数)00AE#ICLEN
17、:4380ae4000253f000100000000000900000000000001560000800000c000015610041020190200b84fba0700SELECTSENDENDoo#控制参数40:bit8,bit7:00=AAC-拒绝01=TC-脱机10=ARQC-联机11=RFU生成密文的数据源:第五部分附录D:授权金额#GETLEN:34801e400001dfdbca784ff1546607-长度01-分散密钥索引01-密文版本号03940000-卡片验证结果CVR01-算法标识0a01000000080011223344-自定义数据9000SELECTGETOUTOFPAPER.ENDoo#OUTOFPAPER.#80:模板此模板的响应数据为:密文信息数据(L:1)+应用交易计数器(L:2)+应用密文(L:8)+发卡行应用数据交易结束-