我正在使用智能卡,并使用自定义 C# 库用于向智能卡发出 APDU 命令。
我正在尝试执行外部身份验证,这需要调用“获取挑战”,然后使用挑战的响应进行外部身份验证。
我收到响应 S1=69 S2=83“身份验证方法被阻止”。
我认为这是由于多次调用authenticate失败而导致的,因为之前我得到了S1=63 S2= C7到C1,我认为这意味着再尝试7次,再倒计时1次尝试,然后卡进入阻止状态。
问题
一旦智能卡达到“身份验证方法被阻止”状态,是否有 APDU 命令可以“解锁”该卡?
我在互联网上搜索了可以执行此操作的正确 APDU 命令,发现有一些与重置 PIN 相关的命令,但我觉得这不是 PIN,而是不同的东西。
这是我能找到的唯一 APDU 命令和响应列表。
更新 - 2023 年 10 月 6 日
根据 nvf 和 guidot 的建议,我的问题的答案将取决于卡的具体情况以及它是否具有此功能。
在这种情况下,我已联系制造商并寻求支持,以澄清这些卡是否“变砖”或者是否有某种方式可以重置它们,以便我可以继续尝试测试并为我们的软件创建正确的身份验证逻辑成功使用此智能卡。
到目前为止,简短的答案似乎是否定的!因此,这些智能卡现在是塑料回收的候选者:-)。
浏览可用的标准 ISO APDU 命令列表,其中有与设置和重置 PIN 相关的命令,但这似乎与我尝试并阻止的外部身份验证不同。
我还有一个希望; APDU命令列表中有一系列CHV命令,我认为它代表CardHolder Verification,命令是:
最后一张看起来很有希望,如果运气好的话我会更新,但我怀疑这些卡会被扔进垃圾里,我必须获得更多的工作卡,然后在尝试调试并使此身份验证正常工作时要更加小心。
删除密钥(如果需要)并重新创建它可能是一个可用的选项,但正如 nvf 正确评论的那样,它是专有的(与所有密钥创建相关的东西一样)并且肯定取决于某些管理访问权限。
请注意,您正在考虑一种场景,智能卡默认情况下会阻止这种情况。
如果不了解特定卡上可用的管理流程和密钥,并且无法访问特定于操作系统的手册,那么机会似乎非常渺茫。