发送 PPS 智能卡读卡器

Posted

技术标签:

【中文标题】发送 PPS 智能卡读卡器【英文标题】:PPS smart card reader sended 【发布时间】:2018-08-08 09:35:53 【问题描述】:

我想知道 PPS 智能卡读卡器发送到智能卡的内容,还有用 PC 捕获它吗? 无论如何,我是否可以通过 PC/SC 从 PC 发送 PPS?

【问题讨论】:

【参考方案1】:

据我所知,您不能直接将 PPS 数据发送到智能卡。PPS 处理是在读卡器和智能卡操作系统内部实现的。

如果你想窥探读卡器和卡的通信,可以使用Micropross MP300 SC2

【讨论】:

我认为 pps 类似于 Apdu。我的意思是我们可以用 scardtransmit 发送 pps。但是我在pps交换卡停用pps交换后阅读了标准。如果读卡器没有自动交换,我想我们可以直接用 scardtransmit 发送,但问题可能是我们可以为卡更改此参数,但我们如何为读卡器更改它们。【参考方案2】:

PPS 控制流程在 ISO 7816 第 3 部分的协议和参数选择部分中进行了描述。正如 vikky 正确指出的那样,它低于您可以通过 PCSC 访问的级别,因为它位于阅读器的固件中。

卡在 ATR 中指示其波特率最大值(由 Fi/Di 表示)。然后读卡器发送,它愿意,卡可以接受或拒绝它(没有保证,任何较慢的波特率都可以工作,因为卡和读卡器可能只接受一些特殊的组合)。在后一种情况下,读者可以尝试另一种情况。

更新:读者没有义务发送 PPS,在这种情况下,(慢)默认参数仍然存在。另请注意,PPS 逻辑必须在卡重置后直接发生,之后应用所选费率直到会话结束,即。 e.到下一次重置或关机。

从外部影响流程的唯一方法是更改​​ ATR。如何做到这一点,很大程度上取决于所使用的卡类型。

【讨论】:

如果读卡器没有向卡发送 pps 会发生什么?它们将使用默认参数?或者它们无法通信?【参考方案3】:

PPS是卡和终端设备或阅读器在两者之​​间进行实际通信之前交换协议参数的东西。它提供卡运行的波特率和相关信息。根据标准,此信息应在每张卡的 ATR 中提供。您可以在 ISO7816-3、ISO7816-4 规范中找到更多信息。您可以向卡发送 PPS 请求,如果卡支持 PPS,则卡将回复相应的 PPS 响应。在您开始向卡发送 APDU 之前,您的 PC/SC 读卡器还将与卡交换 PPS 信息。但是 PC/SC 或 Gemalto 或 Omnikey 读卡器不具备解码和显示这些卡级别信息的能力。它们仅显示与卡上运行的应用程序交换的 APDU。 Micropross MP300/MP500、Comprion Spy、UL Spy 等工具可以解码 PPS。考虑购买像 Comprion 或 UL spy 这样的好工具,Microposs 可能太重而无法随身携带。

【讨论】:

以上是关于发送 PPS 智能卡读卡器的主要内容,如果未能解决你的问题,请参考以下文章

使用 java smartcardio 函数发送 APDU 命令以将数据写入智能卡读卡器

通过串行连接从智能卡读卡器接收数据(C#)

通过 Android USB 主机与智能卡读卡器通信

如何访问 Omnikey 3121 智能卡读卡器

从智能卡发送/接收数据

智能卡读卡器常见使用方法