读取 EMV 卡的序列号

Reading EMV card's serial number

我正在尝试读取 EMV 卡。 正如 EMV 卡所指定的那样,名为“9F1E”的标签包含由发行人指定的永久序列号(参见 https://www.eftlab.co.uk/index.php/site-map/knowledge-base/145-emv-nfc-tags)。

但是,我无法检索到此标签。我遍历了所有 SFI 的所有记录。有什么办法可以要求特定的EMV标签吗?

91FE 不是有效的 BER-TLV 标签,因此您的意思可能是 9F1E(这是该列表中唯一具有包含文本 "serial number"). (OP 更正了这一点。这确实意味着 9F1E。)

标签 9F1E 被描述为 "Interface Device (IFD) Serial Number, Unique and permanent serial number assigned to the IFD by the manufacturer"。因此,这是在终端内使用的标签(即智能卡 reader 端,也称为 "interface device" 端)。此标签不存在于任何卡片中。因此,您无法从卡中检索它。

当您要查找包含在特定数据对象中的值时,正确的方法是从卡中读取所有记录,直到找到数据对象标签。有些卡还支持GET DATA命令,在特定情况下查询特定标签。该 GET DATA 命令将如下所示:

80 CA P1 P2 00

其中 P1 包含标签的第一个字节(如果标签仅包含一个字节,则为 00),P2 包含标签的第二个字节(如果标签仅包含一个字节,则为唯一字节)一个字节)。

为了识别(不要将此与身份验证混为一谈!)持卡人或卡本身,EMV提供了其他方式:

有主帐号(PAN)和PAN序列号。 PAN 通常标识持卡人的支付账户。如果持卡人从银行获得新的替换卡(例如,因为旧卡过期),新卡的 PAN 通常保持不变(可能存在例外)。同样,一张卡和所有后续卡(即由于旧卡到期而发行的卡)的 PAN 序列号保持不变。因此,PAN 和 PAN 序列号的组合充其量只能用于识别持卡人。

您可以从卡中获得的最接近卡序列号的东西(即识别一张特定卡的东西)是 ICC(集成电路卡)public 密钥(参见标签 9F469F479F48)。这是智能卡非对称密钥对的 public 部分。虽然从理论上讲,发卡机构甚至可以为多张卡重复使用这个密钥对,但出于安全原因,我认为发卡机构会为每张新卡发行一个新的密钥对。