首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Pin验证命令返回90 00

Pin验证命令返回90 00
EN

Stack Overflow用户
提问于 2015-06-30 13:39:20
回答 2查看 3.9K关注 0票数 3

我想验证智能卡上的PIN1并读取重试计数器。根据ISO 7816-4页第54 (1)页,重试计数器存储在SW2的两个LSB中( SW1应该是63),但如果密码正确,则使用SW1 SW2=9000:

代码语言:javascript
复制
>> 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

如果PIN1不正确,则为9804:

代码语言:javascript
复制
>>  a0 20 00 01 08
<<  20
>>  31 31 31 32 ff ff ff ff
<<  98 04

我错过了什么?

(1) Isiec7816-4%7Bed2.0%7Den.pdf

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-07-02 04:55:02

你的智能卡似乎是一张GSM SIM卡。类字节显然具有MSB设置,因此它不遵循ISO 7816。在这种情况下,您应该参考3 3GPP 11.11 (可以从此链接下载)。

核实CHV命令在第9.2.9节、第8.9节和第11.3.1节中作了说明。

该命令可能返回的状态词有:

  1. '9000':成功的CHV验证
  2. '9804':CHV验证失败,至少还有一次尝试。
  3. '9840':CHV被阻断
  4. '9808':与CHV状态相矛盾(即验证当前禁用的PIN )
  5. '91XX':也是成功的CHV验证,但有未雨绸缪的命令挂起。

其余尝试的次数可以在成功选择目录(MF或DF)或发送状态命令(INS 'F2')时找到。低字节19包含CHV1 1/Pin1的剩余尝试,PUK1的字节20,PIN2的字节21,PUK2的字节22。有关更多细节,请参阅9.2.1节。

补充说明:

  1. 如果卡是USIM,则验证命令遵循ISO 7816。您可以使用CLA '00'并在此卡中找到63CX状态字。
  2. 可以从选择目录字节14选中启用或禁用PIN1。b8=0: CHV1已启用;b8=1: CHV1禁用。
票数 7
EN

Stack Overflow用户

发布于 2015-06-30 14:49:40

虽然我不完全理解您的转储格式,但请注意以下内容:

  • 仅返回63 Cx,如果没有数据发送验证,则访问权限尚未授予。
  • 每个卡操作系统都可以实现此重试计数器响应。

正确的验证(即使用验证数据进行验证)显然必须返回9000才能表明验证是成功的。98 04是一个GSM专用(“专有”)返回代码,您将无法在ISO 7816中找到解释.

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31139858

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档