无法使用EMV非接触式(Interac Flash)读取借记卡上的PAN

5
尝试使用标准EMV协议读取支持NFC Interac Flash的借记卡号。
以下是我的交易序列:
请求1:00A404000E325041592E5359532E444446303100(选择2PAY.SYS.DDF01以获取PSE目录)
响应1:6F2C840E325041592E5359532E4444463031A51ABF0C1761154F07A00000027710105007496E74657261638701019000(发现AID A0000002771010,Interac)
请求2:00A4040007A000000277101000(选择AID A0000002771010)
响应2:6F348407A0000002771010A5295007496E74657261638701015F2D02656E9F38159F59039F5A019F02069F1A025F2A029F37049F58016285(已选择AID,响应包括PDOL,请参见下面的图像。)

http://i.stack.imgur.com/c9FjM.png

请求3: 80A800001583130000990000000000000001240124000001230000(根据上述结构获取处理选项)

响应3: 6985(命令不允许; 使用条件不满足。)

我无法通过6985错误; 经过两天的规范阅读和试错。

有没有提示/想法/从借记卡(Interac)读取卡号的成功示例?正在测试的卡是带有Interac Flash非接触式功能的TD借记卡。

非常感谢!

--- 注意:我能够从Visa和MasterCard读取卡号而无需GET PROCESSING OPTION。但由于我一直收到GPO未经授权的6985,因此我尝试这样做,但失败了。我真的不需要做GPO,只需要获取卡号和有效期。---

2个回答

7
“Interac直接支付双界面读卡器/终端规范”1.4版指出,当内部应用交易计数器(ATC)达到最大值时,卡片应响应SW1 SW2 = 6985:
3.2.6获取处理选项命令 ……如果ATC达到其最大值(“FFFF”),则卡片对GET PROCESSING OPTION的响应为SW1SW2 ='69 85'。
然而,由于对所请求PDOL的无效响应,该卡可能会拒绝GET PROCESSING OPTIONS(GPO)命令。以下是您的GPO命令中发送值与有效Interac Flash交易中的值的比较:
TAG  LEN MEANING                                YOUR SAMPLE    VALID SAMPLE
9F59 03  Terminal Transaction Information       000099         C08000
9F5A 01  Terminal transaction Type              00             00               
9F02 06  amount, authorised                     000000000000   000000001000
9F1A 02  Terminal country code                  0124           0124
5F2A 02  Transaction currency code              0124           0124
9F37 04  Unpredictable number                   00000123       823DDE7A 
9F58 01  Merchant Type Indicator                00             01

你会注意到以下几点:
  1. 终端交易信息似乎无效。它应该根据你的读卡器功能进行设置。
  2. 金额可能不被卡支持:你试图进行0美元购买。
  3. 商户类型指示器无效(有效值范围为01至05)
一旦你纠正了这些值,卡片很可能会接受GPO命令,然后你就可以使用READ RECORD命令读取PAN。
希望这能帮到你。
以下是一个已接受的InteracFlash购买示例,达到了已接受的GPO命令。PCD标识由非接触式读卡器/终端发送的命令,PICC标识来自InteracFlash卡的响应。
PCD     Select File
PCD         CLA: 00
PCD         INS: A4
PCD         P1: 04
PCD         P2: 00
PCD         Lc: 0E
PCD         Data: 32 50 41 59 2E 53 59 53 2E 44 44 46 30 31
PCD         Le: 00
PICC    Successful
PICC        Data (46 bytes)
PICC            Tag 6F:FCI Template
PICC            Length:2C
PICC            Value :84 0E 32 50 41 59 2E 53 59 53 2E 44 44 46 30 31 
        A5 1A BF 0C 17 61 15 4F 07 A0 00 00 02 77 10 10 
        87 01 01 50 07 49 4E 54 45 52 41 43
PICC                Tag 84:Dedicated File (DF) Name
PICC                Length:0E
PICC                Value :32 50 41 59 2E 53 59 53 2E 44 44 46 30 31
PICC                Tag A5:FCI Proprietary Template
PICC                Length:1A
PICC                Value :BF 0C 17 61 15 4F 07 A0 00 00 02 77 10 10 87 01 
        01 50 07 49 4E 54 45 52 41 43
PICC                    Tag BF0C:FCI Discretionary Data
PICC                    Length:17
PICC                    Value :61 15 4F 07 A0 00 00 02 77 10 10 87 01 01 50 07 
        49 4E 54 45 52 41 43
PICC                        Tag 61:Application Template
PICC                        Length:15
PICC                        Value :4F 07 A0 00 00 02 77 10 10 87 01 01 50 07 49 4E 
        54 45 52 41 43
PICC                            Tag 4F:Application Identifier
PICC                            Length:07
PICC                            Value :A0 00 00 02 77 10 10
PICC                            Tag 87:Application Priority Indicator
PICC                            Length:01
PICC                            Value :01
PICC                            Tag 50:Application Label
PICC                            Length:07
PICC                            Value :49 4E 54 45 52 41 43
PICC                            ASCII Value:INTERAC
PICC            SW1 SW2: 90 00
PCD     Select File
PCD         CLA: 00
PCD         INS: A4
PCD         P1: 04
PCD         P2: 00
PCD         Lc: 07
PCD         Data: A0 00 00 02 77 10 10
PCD         Le: 00
PICC    Successful
PICC        Data (62 bytes)
PICC            Tag 6F:FCI Template
PICC            Length:3C
PICC            Value :84 07 A0 00 00 02 77 10 10 A5 31 50 07 49 4E 54 
        45 52 41 43 87 01 01 9F 38 15 9F 59 03 9F 5A 01 
        9F 02 06 9F 1A 02 5F 2A 02 9F 37 04 9F 58 01 5F 
        2D 02 65 6E BF 0C 05 9F 4D 02 0B 14
PICC                Tag 84:Dedicated File (DF) Name
PICC                Length:07
PICC                Value :A0 00 00 02 77 10 10
PICC                Tag A5:FCI Proprietary Template
PICC                Length:31
PICC                Value :50 07 49 4E 54 45 52 41 43 87 01 01 9F 38 15 9F 
        59 03 9F 5A 01 9F 02 06 9F 1A 02 5F 2A 02 9F 37 
        04 9F 58 01 5F 2D 02 65 6E BF 0C 05 9F 4D 02 0B 
        14
PICC                    Tag 50:Application Label
PICC                    Length:07
PICC                    Value :49 4E 54 45 52 41 43
PICC                    ASCII Value:INTERAC
PICC                    Tag 87:Application Priority Indicator
PICC                    Length:01
PICC                    Value :01
PICC                    Tag 9F38:Processing Options Data Object List (PDOL)
PICC                    Length:15
PICC                    Value :9F 59 03 9F 5A 01 9F 02 06 9F 1A 02 5F 2A 02 9F 
        37 04 9F 58 01
PICC                        Tag 9F59:Terminal Transaction Information
PICC                        Length:03
PICC                        Tag 9F5A:Terminal transaction Type
PICC                        Length:01
PICC                        Tag 9F02:Amount, Authorized (Numeric)
PICC                        Length:06
PICC                        Tag 9F1A:Terminal Country Code
PICC                        Length:02
PICC                        Tag 5F2A:Transaction Currency Code
PICC                        Length:02
PICC                        Tag 9F37:Unpredictable Number
PICC                        Length:04
PICC                        Tag 9F58:Merchant Type Indicator
PICC                        Length:01
PICC                    Tag 5F2D:Language Preference
PICC                    Length:02
PICC                    Value :65 6E
PICC                    ASCII Value:en
PICC                    Tag BF0C:FCI Discretionary Data
PICC                    Length:05
PICC                    Value :9F 4D 02 0B 14
PICC                        Tag 9F4D:Log Entry
PICC                        Length:02
PICC                        Value :0B 14
PICC            SW1 SW2: 90 00
PCD     Get Processing Options
PCD         CLA: 80
PCD         INS: A8
PCD         P1: 00
PCD         P2: 00
PCD         Lc: 15
PCD         Data: 83 13 C0 80 00 00 00 00 00 00 10 00 01 24 01 24 
        82 3D DE 7A 01
PCD         Le: 00
PICC    Successful
PICC        Data (23 bytes)
PICC            Tag 77:Response Message Template Format 2
PICC            Length:15
PICC            Value :82 02 18 00 94 08 08 01 01 00 10 01 02 00 9F 63 
        04 00 10 00 00
PICC                Tag 82:Application Interchange Profile
PICC                Length:02
PICC                Value :18 00
PICC                Tag 94:Application File Locator (AFL)
PICC                Length:08
PICC                Value :08 01 01 00 10 01 02 00
PICC                Tag 9F63:Card Transaction Information
PICC                Length:04
PICC                Value :00 10 00 00
PICC            SW1 SW2: 90 00
...

非常感谢您提供的详细回复。今晚我将测试这些调整并向小组汇报! - Billy
尝试了一个新的请求#3,基于您建议的值:80A80000158313C080000000000000100001240124823DDE7A0100,仍然返回6985。我在EMV规范中查找了9F59和9F58,它们似乎有不同的含义(连续交易计数器上限(CTCUL)和连续交易计数器限制(CTCL))。与您的不同(假设这是Interac分配的特殊含义)?有什么想法吗?非常感谢! - Billy
你说得对,9F59和9F58在Interac规范中的含义与EMV规范中的含义不同。Interac规范并非公开的,你有权限访问吗? - Nicolas Riousset
抱歉,这份文件是由我的公司提供给我的,因为被标记为机密,所以我不能随便上传副本。我想你需要联系Interac协会获取一份副本。祝你好运。 - Nicolas Riousset
一个包括GPO的示例消息交换也会非常有帮助。 - Billy
显示剩余6条评论

3
以下是整个工作流程,包括GPO和READ RECORD指令。
请求1: 00A404000E325041592E5359532E444446303100 响应1: 6F2C840E325041592E5359532E4444463031A51ABF0C1761154F07A00000027710105007496E74657261638701019000
请求2: 00A4040007A000000277101000 (选择) 响应2: 6F348407A0000002771010A5295007496E74657261638701015F2D02656E9F38159F59039F5A019F02069F1A025F2A029F37049F58019000
请求3: 80A80000158313C080000000000000100001240124823DDE7A0100 (GPO) 响应3: 7711820218009404100102009F6304001000009000
请求4: 00B2011400 (读记录) 响应4: 70615A08XXXXXXXXXXXXXXXXX5F3401015F24031711308E0C0000000000000000010302038C159F02069F03069F1A0295055F2A029A039C019F37048D09910A8A0295059F37049F0D05FCF8FCF8F09F0E0500100000009F0F05FCF8FCF8F09F070229009000
感谢Nicolas Riousset。我的问题包括错误的PDOL响应,一个死亡的EMV卡片,最后在读记录中,我需要读取记录2来提取跟踪数据(而不是记录1)。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接