【问题标题】:(Smart Card) APDU Command to sign(智能卡)APDU 命令签名
【发布时间】:2020-01-19 14:57:29
【问题描述】:

我正在开发一个应用程序,该应用程序需要使用智能卡对服务器进行客户端身份验证。 作为指导,我正在使用浏览器跟踪正常的 Web 身份验证,我发现包含“证书验证”结构的 SSL/TLS 数据包是使用卡的签名会话创建的。

分析发送到读卡器的 CCID-APDU 数据包我看到了这个转储:

6f 05 01 00 00 00 41 00 01 00 00 2a 80 86 00 01 01 00 00 01 ff ff ........

这个命令的答案其实就是发送到'Certificate Verify' SSL/TLS结构的内容。

奇怪的是发送的APDU命令是

00 2a 80 86 00 

查看 APDU 文档,这是一个“PSO:DECIPHER”命令,但它不应该是签名命令吗? (00 2A 9E 9A xx)

谁能澄清这种行为?

Tnx

【问题讨论】:

  • 如果有帮助,请参考这个SO Answer进行Web身份验证...您没有提到运行浏览器的客户端的操作系统...?!

标签: digital-signature smartcard sign apdu smartcard-reader


【解决方案1】:

PSO DECIPHER 与签名生成共享它应用私钥。它明显更简单,因为它仅限于一个数据块,即。 e. APDU 的命令数据字段。用于计算数字签名的 PSO CDS 具有许多额外的复杂性,例如链接(将数据拆分为多个命令)、散列(使用各种算法)、填充(使用各种填充方案)以确保正确的数据长度等。

看来,您分析的解决方案已针对所需的特定场景进行了优化,并且尽可能多的优化清晰度会因副作用而有所降低。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-07-31
    • 1970-01-01
    • 2016-06-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多