读取智能卡的 UID

Posted

技术标签:

【中文标题】读取智能卡的 UID【英文标题】:Reading the UID of a smart card 【发布时间】:2016-08-24 13:33:24 【问题描述】:

我使用 HID Omnikey Worbench。使用此工具,我可以获得非接触式智能卡的 UID(唯一标识符)。但是我没有收到这样的联系人卡片 UID。

是否可以从联系人智能卡中读取 UID?

【问题讨论】:

【参考方案1】:

接触式智能卡没有 UID(或任何防冲突标识符)。

接触式和非接触式智能卡使用不同的物理通信介质(电线与射频场),因此需要不同的(较低层)通信协议。使用接触式智能卡,读卡器仅通过有线连接连接到一张卡。使用非接触式卡,多张卡可以在一个读卡器的射频场范围内。因此,智能卡阅读器需要执行某种形式的防冲突和枚举,以发现其范围内的所有(或至少一个)非接触式智能卡。这正是 UID 的用武之地(至少在 ISO/IEC 14443 Type A 中)。 UID 用于在防冲突期间对每张卡进行唯一寻址。由于接触卡没有防冲突(反正只有一张卡连接到读卡器),因此不需要接触卡的 UID。

【讨论】:

正是我的假设。谢谢 只是另一个可能相关的问题:也许您知道 UID 和序列号之间的关系是什么?例如,它在 EMV 上的表现如何? @bafla UID 通常用作标签/卡片的序列号(尤其是 ISO/IEC 14443 Type A 卡片/标签和 ISO/IEC 15693 标签)。但是,并非所有 UID 都适合用作序列号。例如。每次 RF 激活都会随机分配带有 UID 的卡。此外,4 字节 UID 必须有冲突,因为具有 4 字节 UID 的卡比有效的 4 字节 UID 多。并非所有制造商都保证为每个标签/卡分配唯一值。最后,UID 可以轻松克隆。 @bafla EMV 不使用 UID 来识别卡。 EMV 使用帐号来识别卡(甚至是一组卡)背后的支付账户。使用公钥加密(从不使用协议版本)或共享密钥(旧协议)对卡进行身份验证。因此,一张卡使用一些秘密信息签署一条消息,以证明它是与特定帐号相关联的真实卡。

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

使用 JAVA 智能卡 API 读取 NFC 标签在 MAC OS 上不起作用

复制卡用uid卡还是cuid卡

在 Java 中将数据写入 NFC 智能卡

请问ic和id卡分别是啥卡,uid卡又是啥卡?

水卡用的是uid吗

使用 C# 从 PKI 智能卡读取证书