I want to verify PIN1 on smart card and read retry counter. According to ISO 7816-4 page 54 (1), retry counter is stored in 2 LSB of SW2(SW1 should be 63) after verify command, but I have SW1 SW2 = 90 00 in case of correct password:
>> Reset
<< 3b 19 94 80 67 94 08 01 03 02 01 03
>> ff 00 ff
<< ff 00 ff
>> a0 a4 00 00 02
<< a4
>> 3f 00
<< 9f 16
>> a0 f2 00 00 16
<< f2 00 00 63 f4 3f 00 01 00 00 00 00 00 09 33 03 0a 08 00 83 8a 83 8a 90 00
0: pin enabled...
>> a0 20 00 01 08
<< 20
>> 31 31 31 31 ff ff ff ff
<< 90 00
And 98 04 in case of incorrect PIN1:
>> a0 20 00 01 08
<< 20
>> 31 31 31 32 ff ff ff ff
<< 98 04
What I missed?
(1) http://www.embedx.com/pdfs/ISO_STD_7816/info_isoiec7816-4%7Bed2.0%7Den.pdf
答案 0 :(得分:6)
您的智能卡似乎是GSM SIM卡。类字节显然具有MSB集,因此它不遵循ISO 7816.在这种情况下,您应该参考3GPP TS 11.11(可以从this link下载)。
验证CHV命令在9.2.9节,第8.9节和第11.3.1节中描述。
此命令的一些可能返回的状态字是:
'9000'
:成功进行CHV验证'9804'
:CHV验证失败,至少还有一次尝试。'9840'
:CHV被阻止'9808'
:与CHV状态相矛盾(即验证当前已禁用的PIN)'91XX'
:CHV验证成功,但主动命令待定。可以在成功选择目录(MF或DF)或发送STATUS命令(INS 'F2'
)时找到剩余尝试次数。字节19的低半字节包含CHV1 / PIN1的剩余尝试,PUK1的字节20,PIN2的字节21和PUK2的字节22。有关更多详细信息,请参阅第9.2.1节。
附加说明:
'00'
并在此卡中找到63CX
状态字。答案 1 :(得分:3)
虽然我完全不了解您的转储格式,但请注意以下事项:
仅返回63 Cx,如果在没有数据且的情况下发送VERIFY,则尚未授予访问权限。
每个卡操作系统都可以自由地执行此重试计数器响应。
正确的验证(即验证数据验证)显然必须返回90 00以表明验证成功。 98 04是GSM特定的(&#34;专有&#34;)返回代码,您将无法在ISO 7816中找到解释。