PKCS#11 智能卡令牌的最大尝试次数
Posted
技术标签:
【中文标题】PKCS#11 智能卡令牌的最大尝试次数【英文标题】:Maximum number of try for PKCS#11 smart card token 【发布时间】:2019-09-25 07:59:55 【问题描述】:我的任务是找出输入 PKCS#11 智能卡令牌 PIN 码的最大尝试次数。我已经知道here 中提到的 CK_TOKEN_INFO/TokenInfo 中的标志,即 CKF_USER_PIN_COUNT_LOW、CKF_USER_PIN_FINAL_TRY、CKF_USER_PIN_LOCKED。但不知何故,我的主管坚持认为智能卡内部的某个地方包含有关输入 PIN 的最大尝试次数的信息。
真的在里面吗?
【问题讨论】:
【参考方案1】:当然:卡中的每个 PIN 对象都有各自的错误计数器。否则,一旦涉及多个客户端,就无法确保在给定次数的错误尝试后,PIN 确实会被阻塞。
(PKCS 只是将通用命令转换为相应卡类型的特殊命令的附加层。)
问题在于,以标准化方式提取错误计数器的方法很少,甚至没有。这取决于卡类型及其配置之一。最好的机会是发送带有错误 PIN 数据的VERIFY
命令并查找“63 Cn”状态代码,其中 n 表示剩余的尝试次数。然而,在最坏的情况下,如果还有一次或多次尝试,则卡会响应“63 00”,如果 PIN 被阻止,则卡会响应“69 83”。详情请参考智能卡操作系统手册。
【讨论】:
您提到的确切的VERIFY
命令是什么?很少有人提到here。感谢您的回复。
@NuqieNoila:我指的是 ISO 7816 中的验证,第 4 部分,card 将看到的唯一一个。显然这对应于 PKCS-speak 中的C_Login
;但同样:PKCS 并不能真正帮助理解卡级细节作为错误计数器处理。以上是关于PKCS#11 智能卡令牌的最大尝试次数的主要内容,如果未能解决你的问题,请参考以下文章
在 CAPI/CNG 中替换 PKCS #11 智能卡数据对象