2

我需要能够从欧洲数字行驶记录仪公司卡(智能卡)中读取卡和公司识别数据。这些在COMMISSION REGULATION (EC) No 1360/2002文件中有所描述,但我遇到了问题。我需要能够读取的数据包含在文件EF Identification中,必须使用安全消息来读取该文件,因此我需要发出一个Manage Secure Environment APDU 命令,该命令需要一个密钥标识符来标识驻留在卡上的密钥。

我不知道在哪里可以找到这些关键标识符或构成它们的数据(在文档的附录中描述)。我正在等待我们在欧洲的合作伙伴的反馈,但我想我会借此机会在这里提问,希望有人会这样做并能够提供一些建议。

密钥标识符由设备序列号、日期、制造商代码和制造商特定类型组成。这表明存在问题,因为我需要能够从任何公司卡访问数据,无论制造商、发行人或持有人如何。不知道如何获取数据来组成密钥。

我意识到这是非常专业的信息,但已经停滞了一个多星期,所以我非常渴望找到解决方案,以便我可以继续。

4

2 回答 2

2

我不知道标准,但我会假设您读出EF Card_Certificate、恢复证书内容并从中提取密钥标识符。

假设您拥有根证书(在此处发布:http: //dtc.jrc.it/erca_of_doc/EC_PK.zip),您将需要:

  1. 阅读 EF CA_Certificate
  2. 遵循附录 11 第 3.3.3 节中的算法
  3. 从证书内容中提取 CA 公钥
  4. 读取 EF Card_Certificate
  5. 遵循附录 11 第 3.3.3 节中的算法
  6. 密钥标识符现在应该是已恢复证书内容的 20-27 字节。
于 2012-05-22T21:08:28.897 回答
2

我相信您首先必须从国家CA获得证书。然后,您可以执行以下算法(从附录 11 第 4 节简化):

  1. 选择并读取卡证书(EF_CERTIFICATE)
  2. 发出管理安全环境命令以选择根 CA 公钥
  3. 颁发带有国家 CA 证书的验证证书
  4. 发出管理安全环境命令以选择国家 CA 公钥
  5. 使用您的证书颁发验证证书
  6. 发出管理安全环境命令以选择您的公钥
  7. 发出内部验证命令。验证响应。
  8. 发出获取挑战命令
  9. 发出外部身份验证命令
  10. 计算会话密钥
  11. 选择文件 EF_IDENTIFICATION
  12. 使用安全消息执行读取二进制命令(您需要会话密钥来计算校验和并解密结果)。
于 2012-05-30T18:41:03.113 回答