Security 从欧洲DTCO公司卡读取数据

Security 从欧洲DTCO公司卡读取数据,security,cryptography,smartcard,Security,Cryptography,Smartcard,我需要能够从欧洲数字行车记录仪公司卡(智能卡)中读取卡和公司识别数据。这些都在文档中进行了描述,但我遇到了一个问题。我需要能够读取的数据包含在文件EF Identification中,该文件必须通过安全消息进行读取,因此我需要发出Manage secure EnvironmentAPDU命令,该命令需要一个密钥标识符来识别卡上的密钥 我不知道在哪里可以找到这些关键标识符或组成它们的数据(在文档的附录中描述)。我正在等待我们欧洲合作伙伴的反馈,但我想我会在这里抓住机会提问,希望有人会这样做,并能够

我需要能够从欧洲数字行车记录仪公司卡(智能卡)中读取卡和公司识别数据。这些都在文档中进行了描述,但我遇到了一个问题。我需要能够读取的数据包含在文件EF Identification中,该文件必须通过安全消息进行读取,因此我需要发出Manage secure EnvironmentAPDU命令,该命令需要一个密钥标识符来识别卡上的密钥

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

关键标识符由设备序列号、日期、制造商代码和制造商特定类型组成。这表明了一个问题,因为我需要能够访问任何公司卡的数据,而不管制造商、发卡机构或持有人。我不知道如何获取数据来组成密钥


我意识到这是一个非常专业的信息,但是已经被搁置了一个多星期,所以我非常迫切地想找到一个解决方案,这样我就可以继续了。

我不知道标准,但我假设您读取了
EF Card\u证书
,恢复证书内容并从中提取密钥标识符

假设您拥有根证书(在此处发布:),则需要:

  • 读取EF CA_证书
  • 遵循附录11第3.3.3节中的算法
  • 从证书内容中提取CA公钥
  • 读取EF卡\u证书
  • 遵循附录11第3.3.3节中的算法
  • 密钥标识符现在应该是恢复的证书内容的字节20-27

  • 我不知道标准,但我假设您读取了
    EF Card\u Certificate
    ,恢复证书内容并从中提取密钥标识符

    假设您拥有根证书(在此处发布:),则需要:

  • 读取EF CA_证书
  • 遵循附录11第3.3.3节中的算法
  • 从证书内容中提取CA公钥
  • 读取EF卡\u证书
  • 遵循附录11第3.3.3节中的算法
  • 密钥标识符现在应该是恢复的证书内容的字节20-27

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

  • 选择并读取卡证书(EF_证书)
  • 发出managesecurityenvironment命令以选择根CA公钥
  • 使用国家CA证书颁发验证证书
  • 发出managesecurityenvironment命令以选择国家/地区CA公钥
  • 使用您的证书颁发验证证书
  • 发出managesecurityenvironment命令以选择公钥
  • 发出内部身份验证命令。验证响应
  • 发出获取质询命令
  • 发出外部身份验证命令
  • 计算会话密钥
  • 选择文件EF_标识
  • 使用安全消息执行读取二进制命令(需要会话密钥来计算校验和并解密结果)

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

  • 选择并读取卡证书(EF_证书)
  • 发出managesecurityenvironment命令以选择根CA公钥
  • 使用国家CA证书颁发验证证书
  • 发出managesecurityenvironment命令以选择国家/地区CA公钥
  • 使用您的证书颁发验证证书
  • 发出managesecurityenvironment命令以选择公钥
  • 发出内部身份验证命令。验证响应
  • 发出获取质询命令
  • 发出外部身份验证命令
  • 计算会话密钥
  • 选择文件EF_标识
  • 使用安全消息执行读取二进制命令(需要会话密钥来计算校验和并解密结果)

  • 我想知道这是否可能。我已经可以阅读Card_证书了,我会仔细阅读规范,看看它是否包含我需要的标识符。@Steve Crane:我浏览了标准并添加了一些指针。谢谢,这非常有帮助。如果您不熟悉智能卡、钥匙和证书的使用,那么尝试遵循该标准并不容易。虽然取得了一些进展,但仍有一些困难。当您说“假设您拥有根证书”时,这是否意味着我们需要从卡以外的其他地方获得证书才能完成身份验证过程?我没有这样的证书。你怎么弄到的?当我们正在编写一个需要一个的应用程序时,我们是否需要请求某些权威机构向我们颁发一个?@Steve Crane:我相信根证书是由ECRA发布的。我想知道这是否可能。我已经可以阅读Card_证书了,我会仔细阅读规范,看看它是否包含我需要的标识符。@Steve Crane:我浏览了标准并添加了一些指针。谢谢,这非常有帮助。如果您不熟悉智能卡、钥匙和证书的使用,那么尝试遵循该标准并不容易。虽然取得了一些进展,但仍有一些困难。当您说“假设您拥有根证书”时,这是否意味着我们需要从卡以外的其他地方获得证书才能完成身份验证过程