You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PIV小程序中ISO7816-4 INS 87通用认证命令技术问询

PIV智能卡INS 87(通用认证)命令APDU解析

问题背景

正在开展智能卡通信项目,针对PIV(个人身份验证)小程序,对ISO7816-4标准中INS 87(通用认证)命令的数据域构造及响应含义存在疑问,无法解码特定APDU序列的数据域部分,请求详细解释。

已知参数说明

  • INS:87,通用认证命令
  • P1:03,算法标识(对应PIV规范中的椭圆曲线类密码算法)
  • P2:9B,卡槽标识(对应PIV中与PIN关联的认证密钥存储槽)
  • 标签(TAG)定义:
    • 7C:构造标签,用于封装多个子标签
    • 80(Witness):零知识证明凭证,空Witness(长度为0)表示向卡请求生成凭证
    • 81(Challenge):认证挑战值,用于用户身份验证的随机值
    • 82(Response):认证响应值,卡端返回的验证结果

APDU序列详细解析

第一次交互:请求Witness凭证

发送APDU 1

00 87 03 9B 04 7C 02 80 00

字段解析:

  • CLA:00,默认指令类
  • INS:87,通用认证
  • P1:03,指定算法
  • P2:9B,指定目标卡槽
  • Lc:04,数据域总长度为4字节
  • 数据域:7C 02 80 00
    • 7C 02:构造标签,子标签总长度为2字节
    • 80 00:子标签80,长度为0,表示向卡请求生成Witness凭证

响应APDU

7C 0A 80 08 35 34 03 6D 14 98 63 F3 90 00

字段解析:

  • 数据域:7C 0A 80 08 35 34 03 6D 14 98 63 F3
    • 7C 0A:构造标签,子标签总长度为10字节
    • 80 08:子标签80,凭证长度为8字节
    • 35 34 03 6D 14 98 63 F3:卡生成的8字节Witness凭证
  • SW:90 00,操作执行成功

第二次交互:完成挑战-响应认证

发送APDU 2

00 87 03 9B 16 7C 14 80 08 1F DE 85 70 42 9D 2F CE 81 08 59 8D 59 47 DC D3 94 15

字段解析:

  • CLA:00
  • INS:87
  • P1:03
  • P2:9B
  • Lc:16,数据域总长度为22字节
  • 数据域:7C 14 80 08 1F DE 85 70 42 9D 2F CE 81 08 59 8D 59 47 DC D3 94 15
    • 7C 14:构造标签,子标签总长度为20字节
    • 80 08 1F DE 85 70 42 9D 2F CE:子标签80,携带8字节的Witness(客户端对卡返回的凭证做处理后的值)
    • 81 08 59 8D 59 47 DC D3 94 15:子标签81,携带客户端生成的8字节Challenge挑战值

响应APDU

7C 0A 82 08 41 88 14 09 EB 08 09 A5 90 00

字段解析:

  • 数据域:7C 0A 82 08 41 88 14 09 EB 08 09 A5
    • 7C 0A:构造标签,子标签总长度为10字节
    • 82 08:子标签82,响应值长度为8字节
    • 41 88 14 09 EB 08 09 A5:卡端用卡槽9B对应的密钥对Challenge计算得到的8字节认证响应值
  • SW:90 00,认证流程执行成功

参考资料

  • ISO/IEC 7816-3:2006(智能卡 触点式卡的物理特性和接口)
  • ISO/IEC 7816-4:2020(智能卡 组织、安全和命令)
  • NIST SP 800-78-4(联邦信息处理标准 密码算法的选择:非对称算法)

内容的提问来源于stack exchange,提问作者Mehul Savaliya

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.21 21:55:06