银联卡QPBOC处理流程及数据分析

简介: 银联卡QPBOC处理流程及数据分析

qPBOC基本信息数据采用TLV(tag-length-value)的表示方式,即每项由tag标签(T),长度(L)和取值(V)构成。


标签:


 tag标签的属性为bit,由16进制表示,占1~2个字节长度。若tag标签的第一个字节(注:字节排序方向为从左往右数(b8~b0),第一个字节即为最左边的字节。bit排序规则同理。)的后四个bit为“1111”,则说明该tag占两个字节,例如“9F33”;否则占一个字节,例如“95”。b8和b7两位标识tag所属类别. 这个可以暂时不用理.  b6决定当前的TLV数据是一个单一的数据和复合结构的数据. 复合的TLV是指value域里也包含一个或多个TLV, 类似嵌套的编码格式. b5~b1如果全为1,则说明这个tag下面还有一个子字节. 占两个字节, 否则tag占一个字节。


长度:


 长度(即L本身)的属性也为bit,占1~3个字节长度。具体编码规则如下:


 a)当L字段最左边字节的最左bit位(即bit8)为0,表示该L字段占一个字节,它的后续7个bit位(即bit7~bit1)表示取值的长度,采用二进制数表示取值长度的十进制数。


 b)当L字段最左边字节的最左bit位(即bit8)为1,表示该L字段不止占一个字节,那么它到底占几个字节由该最左字节的后续7个bit位(即bit7~bit1)的十进制取值表示。例如,若最左字节为10000010,表示L字段除该字节外,后面还有两个字节。其后续字节的十进制取值表示取值的长度。


银联卡QPBOC处理流程及数据分析。。。


银联卡处理


交易金额确定


检查IC卡参数


选择QPBOC目录


AID选应用:


send:00A404000E 325041592E5359532E4444463031


recv:


6F 30//FCI模板


84 0E 325041592E5359532E4444463031


A5 1E //FCI专有模板


BF0C 1B//模板,文件控制信息(FCI)专有数据


61 19//模板


4F 08 A000000333010101//应用标示符(AID)


50 0A 50424F43204445424954//应用标签


87 01 01//应用优先指示器


9000


卡片校验


终端IC卡参数检查


rcode=0x00


选择ICPParm.TVL9F06


AID选应用:


send:00A4040008 A000000333010101


recv:


6F 36//FCI模板


84 08 A000000333010101//专有(DF)文件名称


A5 2A //FCI专有模板


50 0A 50424F43204445424954//应用标签


87 01 01//应用优先指示器


9F38 18 //处理选项数据对象列表PDOL


//PDOL中的标签


9F66 04//终端交易属性


9F02 06 //授权金额


9F03 06 //其他金额


9F1A 02 //国家代码


95 05 //终端验证结果TVR


5F2A 02//交易货币代码


9A 03 //交易日期


9C 01//交易类型


9F37 04//不可预知数


9000


rcode=0x9000


交易扣钱


读取余额


send:80CA9F7900


recv:9F79 06 000000000076 9000


GPO前准备工作


发送GPO命令


send:80A80000238321


2A000000//PDOL中的终端交易属性9F66


000000000001 //授权金额


000000000000 //其他金额


0156//国家代码


0000000000//终端验证结果TVR


0156//交易货币代码


131111//交易日期


00//交易类型


35383F5B//不可预知数


00


recv:


77 5A//模板


82 02 7C00 //应用交互特征AIP


9F36 02 0075//应用交易计数器ATC


9F10 13 07010103900000010A010000000075C5B41C32//发卡行应用数据


9F26 08 B5D1C169FA969D76//应用密文AC


9F6C 02 0000


57 13 6214834270000244D22102200484900826610F//磁条2等效数据,卡BIn


5F34 01 00//应用PAN序列号


94 10//应用文件定位器(AFL)


10 03 04 00  //读取文件10的第3条到第4条记录


10 09 0B 01 //读取文件10的第9条到0B条,即09,0A,0B


30 01 01 00 //读取文件30的第1条


28 01 01 00//读取文件28的第1条


9000


TLV数据解析


卡bin号检查


根据AFL文件定位器读取相关文件


读取记录:


send:00B2031400


recv:7081B39081B0A33373F56850C06B1DE59D93F4F2A362CEA2A57C37D5DC78E3BF84914B608A43ACD22539B6C0491E88652244D2A199E6516D0C6F3C632F65202561106420FA406F530AE8D39CAF6EA5730E4A5AB15763FB42EAFA0AEE69A9E69640642E29CA15D5449B7AB74411A50EF811ACDEF4D8F93004C423E77E55AC263DA89308FCC05E3E0AA599565590C83CCE7FF6B17602F1BD7DB22C48A5A039FB97C48A8FA16083CC56DD6FEC3C6E7E81F37DCA25A949EC9000


读取记录:


send:00B2041400


recv:70488F0103920433DFA0159F3201039F4701039F482A7523A98A790DCBAAF8E3771B9584942288691B3813C5FBBFDF4BF06C2664A3B4DC1106E8CF90E96EFEC39F49039F37049F4A01829000


读取记录:


send:00B2091400


recv:70465F24032210315F25031210185A0862148342700002449F0702FF008E0C000000000000000042031E039F0D05D8609CA8009F0E0500100000009F0F05D8689CF8005F280201569000


读取记录:


send:00B20A1400


recv:708193938190794DDFB6EF2B5C8849C9900315CE0DB4F7E8F8BDEC674BEAE0BC19D50149316CF36337E62AE3E92F98A0300FD2DA8CEAE31FBEE5E7013CC3AB31EB9AA136659E53906E83C06421123A5DABF6A5B3D283E2AB0D8CCB598390D3F3DED42A8B3CB517BFC24BD52957EAD943DAC0EFA69C6843EAEE57EDC271854E357B8DB4C09C10D9375C349BCBD7818F699C7689C4B9A19000


读取记录:


send:00B20B1400


recv:7081949F46819079D536285A08A1E179FB62C23AD67D84A9F252E5540B0378EC25F9087DBFABA30F3BC7301A36E64271A3441051814FC3B21ABDB778223E2C8EFBCAA2C88EEA225AF7F8B2CA3E457EDB067DED077CB7909A72F7170CA43F80AB913384157FAADF400DF6E4E9A783FEBDDB780BF8886688CA32FE5363088AC951FB5DF0D33AF4F5B799D0441AFD821D876F1AD63A80C1809000


读取记录:


send:00B2013400


recv:70819D9F4B81906E550C4CFE23FE956BB65807531F77806154C8B073C229692D06E9560CAB83AAD2F2FCB83E715A5392B3D820B288F693CDF5EED96B7339059C05CA3EB2E183E48354D609757BD89D754C9F6D9795EB2B1F8808F0EC4F92BC42CDEDACAF4F414ABC0675F6BD973BFC152D22E6703BB65351D7C7A6D9154A91B41A3B9D146562F32A2A67EA6ED8ACB6D944668A6C7782149F5D060000000000759000


读取记录:


send:00B2012C00


recv:70099F74064543433030319000


脱机数据认证..


卡处理结束


脱机数据认证采用了一个三层的公钥证书方案。每一个IC卡公钥由它的发卡行认证,而认证中心认证发卡行公钥。这表明为了验证IC卡的签名,终端需要先通过验证两个证书来恢复和验证IC卡公钥,然后用这个公钥来验证IC卡的动态签名。


1.通过从用户卡获取的索引和RID,终端能够确认并取得存放在终端的认证中心公钥的模,指数和与密钥相关的信息,以及将使用的相应算法。如果终端没有存储与这个索引及RID相关联的密钥,那么脱机数据认证失败 ;


2.用认证中心公钥对从用户卡获取的发卡行公钥证书中恢复出发卡行公钥,并进行格式及哈希校验;


3.用发卡行公钥对从用户卡获取的IC卡公钥证书中恢复出IC卡公钥,并进行格式及哈希校验;


4.用IC卡公钥对从用户卡获取的动态签名中恢复出动态数据,并进行格式及哈希校验;


完整指令和数据如下:


-----------------------------------------------------------------------------------------------------------

通用指令--选择QPBOC应用

00A404000E325041592E5359532E4444463031

6F30840E325041592E5359532E4444463031A51EBF0C1B61194F08A000000333010101500A50424F432044454249548701019000

-----------------------------------------------------------------------------------------------------------


通用指令--选择电子现金AID


00A4040008A000000333010101


6F548408A000000333010101A548500A50424F432044454249548701019F38189F66049F02069F03069F1A0295055F2A029A039C019F37045F2D027A689F1101019F120A50424F43204445424954BF0C059F4D020B0A9000


-----------------------------------------------------------------------------------------------------------


通用指令--读电子现金余额


80CA9F7900


9F79060000000002479000


-----------------------------------------------------------------------------------------------------------


添加指令--GPO指令


80A800002383212A000000000000000001000000000000015600000000000156131111001915270200


7781DB82027C00940810020300180104019F360201C89F2608F60D0DF4E5AB42619F100F07110103900000010601000000024657136217876300000144401D22102201000029300F5F3401019F4B8180E3CF2D39C54236139C74D2D15D344491AF55B12D994E2A65945A3784FCCD6B6F613687A9F01E59AE958004683027686BF9876CDA9D931FA26B86A3FC0932B81438464969EAA75D1294D2D50EF25CCD854B7E8CECC8834EE2624658BAA78B9276DD829A82E538340C57330262F04DF5D488ACFE4AD5371478882BC53AF90A034E9F6C0200009F5D060000000002469000


-----------------------------------------------------------------------------------------------------------


添加指令--根据AFL读取记录


00B2031400


70379F3201039224FF3685821C5BCDDC1C8DD348084CF3AF6F5080BD4445D630BFA0006649EC3289E574BDC58F01039F4701039F49039F37049000


-----------------------------------------------------------------------------------------------------------


添加指令--


00B2021400


7081B39081B0551593050C8A8252F4C27289B1F48DA4C3B254318B58F863A1C8A6E5F8A0FE7C258AE433E5C90CABF09BEA86B106E849D360BE72FCC4CA6C9AC3E48464F2A3515D7649B5D55FCC5A4D56ECF40178ED36E6C6DAFBAC71C6DAFD9AF5EBB7F7298B422893D65AA9B325B1FA


-----------------------------------------------------------------------------------------------------------


D37081BFED1C0D3A4A2A3B6EF7E2AC7219345B376D3B6C42A3C7E00B92BAB2ED6CC575A288429000


-----------------------------------------------------------------------------------------------------------


添加指令--


00B2011C00


70425F24032210315A0A6217876300000144401F9F0702FF008E0C00000000000000005E031F009F0D05D8603CA8009F0E0500108000009F0F05D8683CF8005F280201569000


-----------------------------------------------------------------------------------------------------------


添加指令--


00B2021C00


70559F4A01828C1B9F02069F03069F1A0295055F2A029A039C019F37049F21039F4E148D1D8A029F02069F03069F1A0295055F2A029A039C019F37049F21039F4E149F420201565F300202209F080200205F25031210169000


-----------------------------------------------------------------------------------------------------------


添加指令--


00B2031C00


7081BD9F4681B08377E6C2F9CCA0E0D4831348875022E973FFF4B9A1D1485BD13BEADF8980064BC2DBB8AA942EDF4F656476B8E48A4D23B386D219473F3B37AA1947CD06615C330EC6E3A7ACD9FCD11D2A1EDAA099C2CA96F3D85CFAB6063DCD2C41B185DF734E6F24C78AC275AA810C84D472DAD6FFC81BB329DEB82ABB36CFF489DBD53D4FB76CFAE8F12B0FA089631206E362AEEF1FC6F1A7AF3B94B54759178146E6DBE0F8EE7B7CEC67D80D880D0789C5BA72657E9F74064543433030319000


-----------------------------------------------------------------------------------------------------------


添加指令--


00B2041C00


7081B39381B03083906618D04895A44F87F5896AC200BF5E9E96CAC576921F93F813C0C85E5680DCFEEEAB780277A5C87014C89C92B656BBCB929472FA4B45C9789BCB505454DC668B98156493314AD61DDF0EB4934CE6E3827E3D9BB0A10A3AA5ED0B2FD686446DBA89CDCCA4AB9EFDC776D627040BFAA2C18EF796E07D4053502927C57C8D6F51A3D4A1B6D7225D869147A520F922138FAE233FED1875F640D1AFF4480AB9B5EB9CDDE7BB15A1728C341BD253C54D9000


-----------------------------------------------------------------------------------------------------------


通用指令--读电子现金余额


80CA9F7900


9F79060000000002469000


-----------------------------------------------------------------------------------------------------------


相关文章
|
3月前
|
数据采集 人工智能 数据可视化
Streamline Analyst: 基于LLMs、一键完成全流程的数据分析AI Agent 🚀
Streamline Analyst 🪄是一个开源的基于GPT-4这样的大语言模型的应用,目标简化数据分析中从数据清洗到模型测试的全部流程。分类预测、聚类、回归、数据集可视化、数据预处理、编码、特征选择、目标属性判断、可视化、最佳模型选择等等任务都不在话下。用户需要做的只有选择数据文件、选择分析模式,剩下的工作就可以让AI来接管了。所有处理后的数据和训练的模型都可下载。
243 2
Streamline Analyst: 基于LLMs、一键完成全流程的数据分析AI Agent 🚀
|
6月前
|
人工智能 Cloud Native 大数据
构建高性能云原生大数据处理平台:融合人工智能优化数据分析流程
构建高性能云原生大数据处理平台:融合人工智能优化数据分析流程
333 0
|
3月前
|
算法 安全 数据挖掘
Python典型数据分析流程——纯理论(深入理解的看)
Python典型数据分析流程——纯理论(深入理解的看)
57 0
|
3月前
|
数据采集 数据可视化 数据挖掘
知识分享-商业数据分析业务全流程
知识分享-商业数据分析业务全流程
56 1
|
6月前
|
数据采集 SQL 数据可视化
79 网站点击流数据分析案例(整体技术流程及架构)
79 网站点击流数据分析案例(整体技术流程及架构)
57 0
|
7月前
|
分布式计算 数据可视化 数据挖掘
06 离线数据分析流程介绍
06 离线数据分析流程介绍
42 0
|
9月前
|
数据采集 监控 算法
【解密】筛选数据分析师简历全流程
【解密】筛选数据分析师简历全流程
|
9月前
|
数据采集 SQL 数据可视化
人人都会点数据分析 | 了解数据分析的整体流程
人人都会点数据分析 | 了解数据分析的整体流程
124 0
|
12月前
|
机器学习/深度学习 数据可视化 数据挖掘
跟着Nature Genetics学数据分析:nucmer+lastz+svum流程全基因组比对鉴定CNV
跟着Nature Genetics学数据分析:nucmer+lastz+svum流程全基因组比对鉴定CNV
|
数据挖掘
【数据分析】:搭建数据分析业务工作流程
【数据分析】:搭建数据分析业务工作流程
【数据分析】:搭建数据分析业务工作流程