【问题标题】:Smart Card eToken PRO CardOS/M4 Digital Signature APDU智能卡 eToken PRO CardOS/M4 数字签名 APDU
【发布时间】:2013-07-23 13:48:06
【问题描述】:

我有一个来自 eToken SDK 的示例,它生成 RSA 密钥、创建数字签名并验证它。 示例中的算法如下:

  • 生成 RSA 密钥 (GENERATE_KEY_PAIR);
  • 为签名创建安全环境 (PUT_DATA_SECI);
  • 恢复安全环境 (MSE RESTORE);
  • 签名数据(PSO_CDS);
  • 为验证创建安全环境 (PUT_DATA_SECI);
  • 恢复安全环境 (MSE RESTORE);
  • 验证签名 (PDO_VDS)。

我已将带有证书的外部密钥容器导入到令牌中,我需要摆脱算法中的 RSA 密钥生成项。 如何找到我的私钥的对象 ID 以将其传递给 PUT_DATA_SECI APDU 命令?

【问题讨论】:

  • 虽然我知道 CardOS,但我并不熟悉 Aladdin 中间件。有机会可以从 PKCS15 信息文件中读取密钥 ID。如果不是,那么至少应在此处说明所需安全环境的 ID。因此,虽然在后一种情况下您不知道密钥 ID,但您可以简单地恢复现有的安全环境。
  • 是的,我发现,安全环境是在选择私钥文件时设置的。 PKCS#11 私钥索引文件 (0x3XXX) 还包含可以绑定到公钥的容器 UID。

标签: signature smartcard apdu e-token


【解决方案1】:

存储在令牌上的私有 RSA 是 RSA_PURE (0x0c)。它不能用于 PSO_CDS 操作。他们必须正确填充散列值(rfc-2313:块类型 1 + 散列 OID)并使用 PSO_DEC 来获取签名。结果将是与 PSO_CDS 相同的二进制数据。

【讨论】:

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