3.PSAM卡操作

0082

0084

00C0

0088

00B0

00B2

00A4

00/04D6

00/04DC

0020

00B0 读二进制文件
00B0960006
00B0 标识
96文件标识
00 起始位置
06 读取长度
00A4 选择文件目录
00A4000002DF01  选DF01目录
00A4 标识
00 固定
00 固定
02 固定
DF01 目录名称
801A 秘钥分散
801A 59 03 10 FFFFFFFFFFFFFFFFC2B7CDF8C2B7CDF8
801A 标识
59   秘钥用途
03   秘钥标识 SM4算法为43
10   2级分散  //说明00:0级分散;  08:1级分散;  10:2级分散;  18:3级分散
80FA 安全计算
80FA 80 00 607E94D0B5382432FC777FD4005DF295BB059A4040363169850EA4A6A4ECFAF31115CFA12AE681422150E87680CD822CEB7AE09B31366E08F747F86F3F91CB0C54888E71747CEEB0BD7C271F732490A9AF7C271F732490A9AF0000000000000000
80FA 标识
80   无后续块解密 //说明08:MAC计算;  00:加密;  80:无后续加密
00   P2

0084 取随机数

8072 校验MAC2

8070 计算MAC1

8070 00 00 24 AC2EC4 9F00 2200000000 09 20140909 1201010100FFFFFFFFFFFFFFFFC2B7CDF8C2B7CDF8
8070 标识
00 P1
00 P2

 

交通部PSAM卡参考手册

密钥种类:

卡片控制密钥(CCK):卡片控制密钥首先由卡片商写入,然后由发卡方替换为发卡方的卡片主控密钥。
卡片维护密钥(CMK):卡片维护密钥用于卡片MF区域的应用维护,在卡片主控密钥的控制下装载和更新。
应用主控密钥(ACK):应用主控密钥(ACK)在ADF(应用数据文件)区域,是应用的控制密钥在卡片主控密钥(CCK)控制下写入。

命令功能:

    扩展命令:
        扩展命令将根据它的用途,可在细分:装载新的密钥和更新现存密钥、密钥计算、用于消费交易。
        Write Key                        0xD4        写入密钥命令
        Init For Descrypt                0x1A        通用DES计算初始化命令
        Descrypt                        0xFA        通用DES计算命令
        Init SAM For Purchase            0x70        MAC1计算初始化命令
        Credit SAM For Purchase            0xFC        校验MAC2命令
    管理命令:
        命令Application Unblock将一个已锁应用解锁,而且这类管理命令都使用安全报文(SM)。
        Application Block                0x1E        应用锁定命令
        Application Unblock                0x18        应用解锁命令
        Card Block                        0x16        卡锁定命令
        Delete DDF                        0xE8        删除文件命令
    认证命令:
        鉴别命令与交易以及管理命令联合执行,用于保证传输途径的安全和检验权限。认证的复杂程度根据所要求的安全等级而定,同时也根据人或设备是否需要认证而定
        External Authentication            0x82        外部认证命令
        Get Challenge                    0x84        取随机数命令
    数据传输命令:
        对于T=0的协议,Get Response命令用于上述情况2和情况4下的数据传输。
        Get Response                    0xC0        去响应数据命令
    文件管理命令:
        文件管理命令用于读取和更新数据,例如确定用户的身份、检查交易记录。
        Read Binary                        0xB0        读二进制文件命令
        Read Record                        0xB2        度记录文件命令
        Selection                        0xA4        选择文件命令
        Update Binary                    0xD6        写二进制文件命令
        Update record                    0xDC        写记录文件命令

响应:

    正常操作:
        0x90 0x00    正常处理
        0x61 xx      正常处理 “xx”表示可以通过后续Get Response命令得到额外的数据长度。
    警告:
        0x63 0xCx    “x”为计数器值,准确意义根据命令而定。
    执行错误:
        0x64 0x00    标志状态位未变。
        0x65 0x81    内存失败
    校验错误:
        0x67 0x00    长度错误
        0x68 0x82    不支持安全报文
        0x69 0x00    无法处理
        0x69 0x01    无效状态
        0x69 0x81    命令与文件结构不兼容
        0x69 0x82    不满足安全状态
        0x69 0x83    认证方法锁定或个人密码锁定
        0x69 0x84    引用数据无效
        0x69 0x85    不满足使用条件
        0x69 0x86    不满足命令执行的条件(不是当前EF)
        0x69 0x87    安全报文数据项丢失
        0x69 0x88    安全报文数据项不正确
        0x6A 0x80    数据域参数不正确
        0x6A 0x81    功能不支持:应用被锁定
        0x6A 0x82    未找到文件
        0x6A 0x83    未找到记录
        0x6A 0x84    文件内存空间不足
        0x6A 0x86    参数P1/P2不正确
        0x6A 0x88    未找到引用数据
        0x6B 0x00    参数不正确:偏移地址超出EF
        0x6C xx      Le长度错误:SW2标明准确长度
        0x6F 0x00    判断不准确:数据无效
        0x93 0x02    MAC不正确
        0x93 0x03    应用永久锁定
        0x94 0x01    金额不足
        0x94 0x03    密钥索引不支持
        0x94 0x06    MAC和/或TAC无效

 

posted @ 2023-09-25 22:22  流水江湖  阅读(337)  评论(0编辑  收藏  举报