当前位置: 首页 > 知识库问答 >
问题:

在带有PINPAD的读卡器上验证比利时EID卡的PIN码

安高翰
2023-03-14

我在PINPAD阅读器上验证PIN码的所有尝试都以失败告终,我的情况如下:

  • 比利时EID卡;
  • Vasco DIGIPASS 875,蓝牙连接;
  • 使用Vasco SDK的Android应用程序。

我使用APDU命令来选择和读取文件,设置安全环境(MSE: SET),经过无数的研究和合并来自不同留档的不同解决方案,我可以让读者询问我的个人识别码。但是使用伪APDU命令,我收到一个69|C#响应。同样的过程(读取文件、设置安全环境和验证PIN)在没有PINpad的USB阅读器上运行良好,所以我想APDU命令是可以的,但不是前面的伪APDU命令。

第6.1.11.3至6.1.11.6章的BED文件、PC/SC规范第10部分(2.5.2)和补充部分(2.2.1)以及USB智能卡设备。

第一部分应该是FF C2 01 06,以便在读取器上直接进行PIN验证,然后是后续数据的大小。接下来应该遵循PC/SC第10部分的结构:

  1. 超时1

我已经改变了几次一些我不太确定的值(2, 3, 4, 11和12填充字符已经存在或不存在),没有成功,只是有时不同的结果代码

我在这里做错了什么?

提前谢谢!

共有1个答案

卫俊誉
2023-03-14

经过最后一轮的研究和检查,我发现了另一个证明我错误的例子: PIN块!它是47,因为它不包括控制/有效PIN长度。所以我的正确答案是:

0xFF, 0xC2, 0x01, 0x06, // Base PPDU command
0x20,                   // Length of the data
0x00,                   // timeout
0x00,                   // timeout
0x89,                   // format
0x47,                   // PIN block
0x04,                   // PIN length format
0x04,                   // Min pin size
0x04,                   // Max pin size
0x02,                   // Entry validation condition
0x01,                   // Number of messages to display
0x04, 0x09,             // English
0x00,                   // Message "Enter pin"
0x00, 0x00, 0x00,       // Non significant here
0x00, 0x00, 0x00, 0x0D, // Length of the apdu once formatted
0x00, 0x20, 0x00, 0x01, // APDU command VERIFY
0x08,                   // APDU command Data length
0x20,                   // APDU command Control data + Effective PIN length
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF // APDU command PIN + filler
 类似资料:
  • 我正在尝试构建Xamarin表单原生条纹支付过程。这里的示例是在不需要SCA(安全客户端身份验证)的情况下工作的,但我也希望支持SCA,我无法理解如何做到这一点,因为我应该得到通知并打开一个单独的web视图,在那里执行额外的授权。我无法破译的信息,什么URL需要打开,如果支付成功,如何提供信息在手机应用程序,它是成功的。 以下是包含Xamarin示例应用程序示例链接,以及后端服务https://g

  • 我有一个Java应用程序,可以从智能卡读取证书,并使用它们登录用户。该应用还可以使用其他登录方法(用户名和密码)跟踪失败的登录尝试。 我想知道是否有可能在没有引脚的情况下从智能卡中读取用户信息?我想将失败的pin条目标记为失败的登录尝试,但是因为我需要pin从证书中读取别名,所以我无法知道哪个用户正在尝试登录。有没有读取这些信息没有引脚在Java? 我根据这个线程的建议尝试加载KeyStore对象

  • 说明 此协议用于用微信卡代替实体卡刷卡时,验证发送给客户微信的验证码,需要先调用协议5.4发送验证码。 请求地址 http://api.dc78.cn/Api/mb_checkvcode 请求方式 GET 请求参数 参数 参数名称 必填 描述 范例 id 微信卡id 是 code 验证码 是 amt 交易金额 否 传入金额可以验证与发送验证码时的金额是否匹配 pwd 通卡密码 是 当会员卡为通卡时

  • 此协议用于用微信卡代替实体卡刷卡时,验证发送给客户微信的验证码,需要先调用协议5.4发送验证码。 请求参数说明 参数 描述 必填 示例值 类型 最大长度 action 接口参数组 是 object └action 需要调用的接口名称 是 mb_checkvcode string get GET参数组,本组参数需要参与签名 是 object └mbno 会员卡号 否 15696132602 numb

  • 我试着用比利时身份证在一些pdf上签名。为了实现这一点,我使用比利时eid中间件对数据进行签名,并使用itext7在pdf上盖章。 我使用了一个PdfSigner(itext),并实现了一个IExternalSignature来调用eid中间件对消息进行签名。 所有这些都适用于带有加密RSA和哈希SHA256的比利时身份证1.7。 但是当我尝试使用加密ECDSA和哈希SHA384的新比利时身份证1

  • 问题内容: 我有一个IC接触式读卡器和SLE5528智能卡。想知道如何真正开始使用这些物品。 正在读取读取器,插入智能卡后看不到任何影响。 我还从http://www.openscdp.org/安装了opensmart的智能卡外壳 但是我不能用它来读任何读卡器。我想知道它是否有兼容性问题。 请我知道我可能不恰当地提出了这个问题,但是请那里的任何人帮助我。 任何相关的链接或有用的信息都可以帮助我入门