如何读取智能卡数据

How to read Smart Card data

我正在尝试使用智能卡 reader 从智能卡中检索数据。我已经使用该软件 (PascProbe.exe) 获取了所有可能的数据。这是我得到的:

卡 Reader:OMNIKEY CardMan 5x21-CL 0
ATR=3B8F8001804F0CA0000003060A0018000000007A(十六进制)
卡片类型:PicoPass 2KS
卡序列号(CSN、UID):504B4901FBFF12E0(十六进制);
PACS 位(原始 Wiegand)数据:000000202FA473F8
应用 HID H10304 卡格式:
设施代码:=762
卡号:=145916

我了解如何使用 APDU 从卡中获取 CSN(UID) 和 ATR,并且 我了解如何从 PACS 位(此处为 H10304 卡格式)获取设施代码和卡号,但我不知道我需要知道什么才能从智能卡中检索 "PACS bits"。请帮忙。 (我正在使用.Net)
提前致谢

您可以使用 Omnikey 5x21 和 APDU 命令执行类似的操作(在 .NET 和 C++ 中,这没有区别)。

  1. 启动安全会话(读,不可写)。
  2. Select 0x00
  3. 使用 KD 0x21 进行验证
  4. 读取 0x06、0x07、0x08、0x09。 (如果您在安全会话中执行此操作 它是写在卡上的真实数据,否则它的 FF FF FF FF FF .....)
  5. 现在,你在 0x07 得到了你的韦根吗?如果是,完成。 Esle 读取 0x07 再次,但将第 3 个字节设置为 0x80,而不是 0x00。(这取决于 你有卡)
  6. 结束你的会话。

在Secured Session中使用APDU命令的方式很不一样,你需要读取密钥。通信也有DES加密。

您可以阅读有关 5x21-CL 的 dev-guide。但我确定您在阅读本文时已经做到了。