(智能卡)要签名的 APDU 命令



我正在开发一个应用程序,该应用程序需要使用智能卡对服务器进行客户端身份验证。 作为指导,我正在使用浏览器跟踪正常的 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 ........

此命令的答案实际上是发送到"证书验证"SSL/TLS结构的内容。

奇怪的是,发送的APDU命令是

00 2a 80 86 00 

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

有人能够澄清这种行为吗?

嘟嘟

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

因此,您分析的解决方案似乎针对所需的特定方案进行了优化,并且许多优化的清晰度会因副作用而有所降低。

最新更新