从欧洲DTCO公司卡读取数据

时间:2012-05-22 15:00:08

标签: security cryptography smartcard

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

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

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

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

2 个答案:

答案 0 :(得分:2)

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

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

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

答案 1 :(得分:2)

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

  1. 选择并阅读卡证书(EF_CERTIFICATE)
  2. 发出“管理安全环境”命令以选择“根CA”公钥
  3. 使用国家/地区CA证书颁发验证证书
  4. 发出“管理安全环境”命令以选择国家/地区CA公钥
  5. 使用您的证书颁发验证证书
  6. 发出管理安全环境命令以选择您的公钥
  7. 发出内部身份验证命令。验证回复。
  8. 发出获取挑战命令
  9. 发出外部身份验证命令
  10. 计算会话密钥
  11. 选择文件EF_IDENTIFICATION
  12. 使用安全消息传递执行读取二进制命令(您需要会话密钥来计算校验和并解密结果)。