寂井浮廊
打赏我
欢迎您: 
游客
   
登录
  发现BUG请联系jintianhu2000@126.com
常用
加解密算法
常用工具
EMV相关
还珠楼论坛
答题闯关
用户信息
帖子列表
语法介绍
帖子详情
PBOC3.0与2.0规范不同点
jin.th 发布于2019-07-30 16:53
[评论区]
[我要回复]
[下载md文件]
[下载pdf文件]
仅自己可见
PBOC3.0中,对动态数据认证的签名的描述,比2.0来的简洁,只说对动态数据进行签名,而2.0里会说先生成哈希值,再签名之类的话。个人猜测是算法仍然是一样的 PBOC3.0中删除了所有关于DDF的描述,也不要求终端支持DDF的处理。 PBOC3.0对2.0中的IC卡的交易明细都改名叫交易日志。 终端改造的前提是能够兼容2.0的卡,基本业务流程和交易接口都不会变,只是新增了SM2/3/4,该SDA/DDA/CDA/fDDA的一步都没少 你把SM2看作RSA 把SM3看作SHA-1 把SM4看作3DES 对照17部分改就可以了 3.0 主要是三种卡 单国际算法卡 单国密算法卡 双算法卡国际 **第4部分** 5.1.4 PBOC3.0:目录结构允许以AID检索一个应用。 PBOC2.0:目录结构允许以AID检索一个应用,或以AID前n个字节作为DDF名检索一组应用 6.1.1 PBOC3.0:选择应用后,如果卡片支持SM2算法,则FCI中包含请求SM2算法支持指示器(TAG DF69) 6.1.4 PBOC3.0:对SDA、DDA的描述,与2.0有所不同,但是含义是一样的。 6.2.4.4 PBOC3.0:表10对SAD的说明:如果是RSA算法签名的,则包含卡片重要数据的哈希值。(如果是SM2算法签名的,是怎么样的?) 6.2.4.4.1 PBOC3.0:对签名静态应用数据的验证的描述简单了很多。 **第5部分** 5.1.1 PBOC3.0:选择应用后,如果卡片支持SM2算法,则FCI中应包含PDOL,PDOL应含有SM2算法支持指示器(TAG DF69) 6.1 PBOC3.0:删除了“目录定义文件DDF”的说明。 支付系统目录包含了ADF的入口 PBOC2.0:支付系统目录包含了ADF与DDF的入口 6.4.1 PBOC3.0:由于删除了DDF的处理,选择完PSE得到每一个入口后,不需要对是DDF的入口再发SELECT命令了。(即相对于2.0,删除了步骤3) PBOC3.0的卡片目录结构例子 ![image](/upload/BBS/f1862905-823a-4375-bfbe-3d90d46b581d.jpg) PBOC2.0的卡片目录结构例子 ![image](/upload/BBS/3b1b3cea-b4d3-43ed-8c73-f2a37f9fdbe6.jpg) 14.4.1 PBOC3.0:增加了说明:当CDOL1与PDOL中有相同标签(除了TVR 95、TSI 9B、不可预知数9F37),且终端给出的值不一致,卡片在GAC命令生成应用密文时以CDOL1的值为准。 14.5.3 PBOC3.0:卡片记录交易日志。 PBOC2.0:卡片记录交易明细,明细的内容在GPO命令传送到卡片中。 3.0中删除了对明细内容的说明,是否表示明细的内容不光包括GPO命令的数据?这对终端倒无关紧要 16.5 PBOC3.0:增加了说明:当第2次GAC某些标签的值与第一次GAC不一致时,卡片不能以飞9000响应第2次GAC。 16.6.2.1 与14.5.3一样 17.5 应用解锁 PBOC3.0:卡片能正常处理应用解锁命令,无论发卡行认证是否执行。 PBOC2.0:即使卡片支持发卡行认证,也不需要执行。 17.5 设置数据 PBOC3.0:对可以用PUT DATA命令修改的数据,都增加了TAG说明。 17.6.2 PBOC3.0:增加了说明:卡片不能因为没有执行发卡行认证而拒绝执行脚本。如果发卡行认证失败,卡片则应该拒绝执行脚本,推荐返回6985来响应脚本。 17.6.3 PBOC3.0:增加了说明:如果卡片收到安全报文校验失败的脚本命令,后续脚本命令不在执行,直接返回6985。 18.1 PBOC3.0:增加了说明:记录交易日志与GAC命令应同时成功;若其中一个失败,另一个应同时失败。 附录A.1 PBOC3.0:增加了说明:数据元传输时,从高字节至低字节传递;构造数据时也要这样。 增加SM2算法支持指示器DF69 修改了产品标识信息9F63的说明。(EMV内核中该标签没用到过,但是注释不对,怎么回事?#define TAG\_LOGSFI 0x9F63 // 交易日志记录SFI) 持卡人姓名5F20 持卡人姓名扩展9F0B PBOC3.0:如果持卡人姓名小于等于26个字节,不使用9F0B,都存放于5F20中。 如果持卡人姓名大于26个字节,不使用5F20,都存放于9F0B中。 PBOC2.0:5F20存持卡人姓名前26个字节,9F0B存持卡人姓名大于26字节的部分。 目前的EMV内核代码中有这2个TAG的定义,但没有用到过。 附录A.3 PBOC3.0:新增对TLV标签的说明 附录B.8.4 PBOC3.0:明确了GPO命令的2种响应格式:80模板与77模板 目前的EMV内核代码中已经对2种模板都有处理了 附录F PBOC3.0:删除了SSF33算法,新增SM4算法。(是不是表示卡对GAC命令生成的应用密文可能会使用SM4算法?) **第6部分** 7.1.1 选择应用(M) PBOC3.0:增加说明:在选择应用的同时,卡和终端之间协商选择应用的算法类型 7.1.1 卡片行为分析(M) PBOC3.0:完成检查后,卡片使用应用数据及卡上的加密对称密钥生成相应的应用密文。 PBOC2.0:完成检查后,卡片使用应用数据及卡上的加密DES密钥生成相应的应用密文。 说明3.0后卡片可以选择使用其它对称加密算法(如SM4)来生成应用密文 7.1.1 联机处理(O) PBOC3.0:保密对称密钥 PBOC2.0:保密DES密钥 同7.1.1一样 7.2.4.1 目录选择方法 PBOC3.0:解释更明确了,含义没变。(就是SELECT PSE,返回6A81终止交易,返回9000继续走下面流程,返回其它值用AID列表选择方法) 里面提到的“使用12.3.3条所描述的”指的是第3部分的12.3.3,其实与第6部分的7.2.4.2说的东西一样,就是用AID列表选择方法。 7.4.4 PBOC3.0:如果读取到TLV格式正确但规范未定义的标签,终端应将其保存以备后用,终端不应因此而终止交易。 PBOC2.0:如果读取到终端无法理解的数据,将其忽略。 PBOC3.0:卡片在一条或多条记录返回同一个标签两次及以上;卡片在某条记录中返回了已经在GPO响应中返回的标签:终端要终止交易。 PBOC2.0:一个基本数据对象在卡片中出现超过一次:交易将终止。 目前的EMV内核代码中的处理是,84、50、87、9F38、5F2D、9F11、9F12、9F4D、82、94这些TAG可以重复,其它的如果重复就交易终止;任何TAG的数据都会保存起来。 7.4.4 PBOC3.0:增加说明:以下情况1条或多条存在不应终止交易:卡片返回了持卡人姓名(5F20)但长度不对;卡片返回了持卡人姓名扩展(9F0B)但长度不对;卡片既返回了持卡人姓名(5F20)也返回了持卡人姓名扩展(9F0B)。 目前的EMV内核代码中有这2个TAG的定义,但没有用到过。 7.5.1.1 PBOC3.0:为支持脱机数据认证,终端应支持第7部分或第17部分描述的非对称算法和哈希算法。 PBOC2.0:为支持脱机数据认证,终端应支持第7部分描述的非对称算法和哈希算法。 第7部分描述的是RSA与SHA-1,第17部分描述的是SM2与SM3。是否终端不一定要支持国密算法? 7.12 PBOC3.0:删除发卡行脚本处理参考EMV4.1的说明 7.12.1 表32 PBOC3.0:发卡行脚本结果,第1个字节,高字节包含脚本处理结果,低字节包含脚本处理失败时的脚本序号,如果脚本处理成功,序号为0 PBOC2.0:发卡行脚本结果,第1个字节,包含脚本处理结果和脚本处理失败时的脚本序号,如果脚本处理成功,序号为0 其实是一样的,解释更详细了而已 7.12.2 PBOC3.0:对授权相应报文中的脚本格式做了详细的解释 目前的EMV内核代码中已经是根据该格式处理的 7.12.4.1 PBOC3.0:增加说明:无论发卡行是否批准交易,也无论卡片是否批准交易,终端都应执行发卡行脚本。 目前的EMV内核代码中已经是这么处理的 7.12.4.1 PBOC3.0:发卡行脚本执行成功,发卡行脚本执行结果第1字节置20 PBOC2.0:发卡行脚本执行成功,发卡行脚本执行结果第1字节置2X 目前的EMV内核代码中已经是这么处理的,估计是2.0的笔误 7.12.4.3 PBOC3.0:卡片对命令处理失败时,结束对该条发卡行脚本的处理 PBOC2.0:卡片对命令处理失败时,结束脚本的处理 目前的EMV内核代码中,如果某一条脚本处理失败,则不继续处理下面的脚本,和2.0的描述相符。但是3.0的描述,是否需要继续处理下面的脚本? 7.12.4.3 PBOC3.0:增加说明:置发卡行脚本执行结果低半字节为出错的命令号。 目前的EMV内核代码中已经是这么处理的 7.12.4.7 PBOC3.0:增加说明:终端必须具备将发卡行脚本结果传送给发卡行的能力。其它都是明确了解释而已。 8.2 PBOC3.0:认证中心RSA公钥模或SM2公钥 PBOC2.0:认证中心公钥模 **第7部分** 5.3.6.1 PBOC3.0:删除了“建议使用ATC作为IC卡动态数字” 12.1.2 PBOC3.0:删除整个12.1.2 SSF33算法 **第12部分** PBOC3.0 删除了MSD的所有内容 5.3 PBOC3.0:终端向卡片表明其可以支持的非接触种类(应支持qPBOC 或非接触借贷记应用) PBOC2.0:终端向卡片表明其可以支持的非接触种类(应支持qPBOC 或MSD) 5.3 PBOC3.0:增加SM算法应用于qPBOC的流程图。如果卡支持SM算法,则PDOL中包含SM算法指示器DF69标签。如果终端设置DF69=0,且卡是单SM算法卡,则GPO返回6985脱机拒绝。 换言之,如果终端不支持SM算法,则无法对单SM算法卡做交易。 6.1.2 通用终端要求 PBOC3.0:终端要支持qPBOC或非接触借贷记应用,或两者都有 PBOC2.0:终端要支持qPBOC或MSD,或两者都有 6.1.5 PBOC3.0:增加说明:是否启用交易日志功能由发卡机构决定。 6.2.2 PBOC3.0:如果授权金额为0,除非终端支持qpboc扩展应用,具有联机能力的终端应在终端交易属性字节2的第8位表示要求联机应用密文。 PBOC2.0:如果授权金额为0,具有联机能力的终端应在终端交易属性字节2的第8位表示要求联机应用密文。 PBOC3.0:如果授权金额为0,除非终端支持qpboc扩展应用,仅脱机终端应终止交易,提示持卡人使用另一种界面(如果存在) PBOC2.0:如果授权金额为0,仅脱机终端应终止交易,提示持卡人使用另一种界面(如果存在) 6.4.4 PBOC3.0:表3,终端交易属性9F66字节1的第8位预留,字节4的第8位:1终端支持01版本的fDDA,0终端仅支持00版本的fDDA 6.5.1 PBOC3.0:所有终端应支持格式2的GPO响应 只是明确了一下,我们目前的代码已实现了 6.5.6 PBOC3.0:增加说明:非接触式借贷记,如果卡片支持非接触式借贷记且9F66第1字节第7位=1,则卡片使用非接触式借贷记路径,终端按照非接触式借贷记处理交易 7.4.1 防拔保护 PBOC2.0与3.0都写了,如果交易结束前拔卡,会在下一次交易开始时恢复脱机计数器。但实际用银行卡测试发现:读完最后一条记录之前拔卡,然后再做交易,GPO命令中返回的ATC还是增长了。 7.4.4 PBOC3.0:表11增加了GPO可能返回的标签9F63(产品标识信息) PBOC3.0:9F10 发卡行自定义数据也可以包含脱机消费金额 PBOC2.0: 9F10 当请求联机处理时,发卡行自定义数据也可以包含脱机消费金额 7.4.5 PBOC3.0:增加了:强烈建议将9F08(应用版本号)加入到签名用的静态数据。 7.5 qpboc卡片要求 PBOC3.0:增加说明:卡片收到GPO指令后,根据终端发送的DF69(SM算法支持器)进行判定,如果卡片不支持终端要求的算法那么卡片返回6985脱机拒绝。 增加说明:如果终端和卡片都支持并选择了SM算法,那么卡片返回用SM算法计算TC、动态认证数据、9F10以及SM算法对应的AFL。 增加说明:如果一个数据元在GPO返回了,那么在卡片不应在读记录时也返回。即一个数据元在同一次交易中只被返回1次。 增加说明:qpboc脱机批准的交易,AFL中最后一条记录70模板不应超过32字节,如果卡片执行的是01版本的fDDA,则建议只放电子现金发卡行授权码(9F74)和卡片认证相关数据(9F69)。9F69只会在01版本的fDDA中出现。 增加说明:卡片要同时支持00与01版本的fDDA。如果终端支持01版本(9F66字节4第8位=1),则卡片应执行01版本 7.6 qpboc终端要求 PBOC3.0:增加说明:终端应能设置SM算法支持器,在GPO时发送给卡片 脱机数据认证过程中,终端根据公钥索引检查算法类型。如何检查? 当必备数据元没有返回时,终端应终止交易(2.0里写的是拒绝交易) 7.7.2 疑问:仅脱机终端,如果卡或终端至少一个不支持签名,就要终止非接触交易。这个2.0也有些,但没注意,S510就是仅脱机终端但没有打印机,按规范是不是就不能做非接触交易了?但是我用建行的卡做测试,GPO发下去的9F66=,卡片返回了脱机批准。 7.7.19 PBOC3.0:增加说明:响应最后一条度记录命令前,卡片若允许存交易记录,则会存一条交易记录。 7.10 对密文版本17的要求 PBOC3.0:这段没看明白,密文版本17是什么意思?密文版本01是什么意思? 附录B PBOC3.0:增加说明:将原来的fDDA算法定义为00版fDDA,新加了01版的fDDA。 是否00版fDDA就是基于RSA的,01版的fDDA是基于SM算法的? 增加说明:01版的fDDA,卡片用终端不可预知数、授权金额、交易货币代码,连接上卡片ATC和卡片认证相关数据共同用于动态签名的计算。 表B.1说明了00版与01版所需要的终端数据不同 附录C 表C.1 PBOC3.0:增加说明:9F6B(卡片CVM限额)可以被PUT DATA命令修改。9F79、9F77、9F6D、9F78不应在读记录命令中返回。增加9F74(电子现金发卡行授权码)的描述。 附录E 这里描述密文版本17,2.0和3.0一样的,以前没注意到过。什么时候用密文版本17呢? 附录F PBOC3.0:删除了附录F **第13部分** 5.1 PBOC3.0:新增数据元:DF4D(圈存日志入口)、DF4F(圈存日志格式) 5.8 圈存日志 PBOC3.0:新增内容。当电子现金余额被PUTDATA命令成功改写一次时,卡片就记录一条圈存日志。DF4D(圈存日志入口)在选择ADF的FCI中返回 7.4.5 PBOC3.0:增加说明:如果终端请求脱机批准,则卡片应检查终端在GAC中给的标签值与GPO中给的标签值是否一致(不包括95、9B、9F37) 10.2 日志查询 PBOC3.0:对表8的P1增加说明:如果P1=0,则一次性获取卡内圈存日志全部记录,并且返回的记录通过MAC确保记录完整性。 增加圈存日志的格式说明 附录C PBOC3.0:增加C3.3圈存日志
评论列表
回帖
浙ICP备17051204号