ISO 7816如何多次使用计算签名命令APDU



我按照ISO7816标准对智能卡的单个数据进行签名,步骤如下:

  1. 选择MF
  2. 选择DF
  3. 验证销
  4. 管理安全环境
  5. 计算数字签名

如果我想签名多个数据,那么我遵循以下步骤:

  1. 选择MF
  2. 选择DF
  3. 验证销
  4. 管理安全环境
  5. 计算数字签名1
  6. 验证销
  7. 管理安全环境
  8. 计算数字签名2
  9. 验证销
  10. 管理安全环境
  11. 计算数字签名3

我每次都要做VerifyPin和管理安全环境步骤吗?

如果我尝试以下步骤:

  1. 选择MF
  2. 选择DF
  3. 验证销
  4. 管理安全环境
  5. 计算数字签名1
  6. 计算数字签名2

我得到69 82(安全条件不满足)在第6步。

您所描述的是通常称为批量签名的概念。一些卡支持它,但这很可能需要在发行之前修改用于设置卡的个性化序列或使用不同的排序选项。更安全的标准行为(如您在示例中观察到的)是,获得的访问权限将在签名过程中耗尽。

存在严重的法律障碍,因为数字签名被认为是一种故意行为,因此暗示您知道您签署了什么并打算通过输入PIN来这样做。在要求批量签名的情况下,通常必须对环境补充相当多的组织安全规定,因此打算签署电子处方的医生必须使读卡器在他/她的持续监督下看起来合理。

还有更多限制形式的批量签名,其中PIN不必每次都输入,而是每10次输入一次,因为无限签名能力太危险了。

只是澄清一下:如果一张卡是为每个PIN输入的单个签名而硬连接的,那么应用程序就无法实现批量签名。

总结:虽然PIN条目证明了合法持卡人的存在,但这对于数字签名的故意行为方面是不够的。

最新更新