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