SIM卡文件结构、常用APDU指令和应答 您所在的位置:网站首页 apdu指令错误码 SIM卡文件结构、常用APDU指令和应答

SIM卡文件结构、常用APDU指令和应答

2024-07-11 13:33| 来源: 网络整理| 查看: 265

1、SIM卡文件结构专有名词解析:

MF(Master File)主文件 EF(Elementary File)基本文件 DF(Dedicated File)专用文件 ADF(Application Dedicated File)应用专用文件 AID(Application IDentifier)应用标识符 fcp(File Control Parameters)文件控制参数 binary二进制内容 record记录

2、文件结构

在这里插入图片描述 一个MF里面会包含ADF/DF/EF,ADF下面也会包含DF/EF,DF下面又会包含DF/EF,不过EF下面就不会再包含其他文件了。

所以我们可以把MF当做主文件夹,ADF/DF当做次文件夹,EF当做最后一层文件夹; MF/ADF/DF下面只有fcp,EF下面有fcp/binary/record

MF(Master File):主文件,理解为根目录。MF文件的ID为3F00

DF(Dedicated File):专用文件,理解为文件夹。常见的DF有:

DF-GSM:ID为7F20DF-TELECOM:ID为7F10ADF:Application DF,ID为7FFF

EF(Elementary File):基本文件,存储数据用的文件。基本文件又分为3类

透明EF:透明结构的 EF 由一个字节序列组成。简单理解为 只有一条记录 \color{Red}{只有一条记录} 只有一条记录的文件

线性固定EF:线性固定 EF 文件由一个记录长度固定的记录序列组成。第一个记录记录号是 1。 简单理解为记录多条记录的文件。

循环EF:循环文件用于以时间顺序存储的记录,当所有的记录空间都占用时,新的存储数据将覆盖最旧的信息。 如果线型固定EF的记录是一个数组的话,循环EF的记录就是一个循环链表。

注意:线性固定 E F 和循环 E F 最多只能存放 255 条记录 \color{Red}{注意:线性固定EF和循环EF最多只能存放255条记录} 注意:线性固定EF和循环EF最多只能存放255条记录

根据上面的描述,可以看得出来,要精确的定位到一个EF文件,完整的文件路径应该是:MFID + DFID + EFID。比方说在DF-TELECOM下面的EF-SMS(保存短消息的SIM卡文件,ID为6F3C),完整路径就是“3F007F106F3C”。

下图为SIM卡部分内容结构图: 在这里插入图片描述

3、文件操作指令 COMMAND值说明SELECT‘A4’选择文件STATUS‘F2’查询当前目录的信息READ BINARY‘B0’读取透明EF内容/二进制UPDATE BINARY‘D6’更新透明EF内容/二进制READ RECORD‘B2’读取线性固定EF或者循环EF的记录UPDATE RECORD‘DC’更新线性固定EF或者循环EF的记录SEEK‘A2’查找线性固定EF中与关键字相匹配的记录INCREASE‘32’向循环EF中插入最旧的记录VERIFY CHV‘20’验证PIN码CHANGE CHV‘24’修改PIN码DISABLE CHV‘26’关闭PIN码验证ENABLE CHV‘28’打开PIN码验证UNBLOCK CHV‘2C’解锁INVALIDATE‘04’功能使当前 EF 无效REHABILITATE‘44’使当前无效的 EF 恢复有效状态RUN GSM ALGORITHM‘88’,‘89’起动 SIM 卡中的 GSM 算法 A3 和 A8SLEEP‘FA’睡眠 命令只被 Phase1 的移动设备支持,对于 Phase2 或者以后的移动设备不会使用该命令。GET RESPONSE‘C0’返回指令的响应数据TERMINAL PROFILE‘10’告知SIM卡手机对STK的支持能力,初始化SIM卡的过程中发给SIM卡。ENVELOPE‘C2’‘手机发送数据或者事件给SIM卡。FETCH‘12’手机从SIM卡获取命令TERMINAL RESPONSE‘14’手机返回SIM卡执行主动式命令的结果

补充: \color{Red}{补充:} 补充:

COMMAND值说明RETRIEVE DATA‘CB’SET DATA‘DB’GET CHALLENGE‘84’TERMINAL CAPABILITY‘AA’MANAGE CHANNEL‘70’MANAGE SECURE CHANNEL‘73’TRANSACT DATA‘75’ 4、文件操作应答内容 4.1、正常过程(90xx、91xx、92xx) SW1 SW2说明9000命令正常完成91xx命令正常完成,加上来自主动UICC的额外信息,其中包含用于终端的命令。响应数据长度xx92xx命令正常完成,带有关于正在进行的数据传输会话的额外信息 4.2、推迟处理(9300) SW1 SW2说明9300SIM卡应用工具箱忙。命令暂时无法执行,允许执行下一步正常命令 4.3、警告(62xx、63xx) SW1 SW2说明6200没有给出信息,非易失性存储器的状态不变6281部分返回的数据可能已损坏6282在读取LE字节之前到达文件/记录的结束位置6283选择的文件无效6285选择的文件处于终止状态62F1更多可用数据62F2更多可用数据和主动命令等待处理62F3响应数据可用63F1预计会有更多数据63F2更多的数据预期和主动命令等待63Cx命令成功,但在使用内部更新后重试例程X次;验证失败,x重试(见注释)注释对于VERIFY PIN命令,SW1 SW2表示命令成功,但PIN不正确,并且还有X重试。对于所有其它命令,它表示卡为完成命令而内部重试次数。 4.4、执行错误(6400、6500、6581) SW1 SW2说明6400没有给出信息,非易失性存储器的状态不变6500没有给出信息,非易失性存储器的状态改变6581内存问题 4.5、检查错误 SW1 SW2说明6700错误的长度67xx除了SW2=00外,这个状态字的解释与命令有关6B00错误参数P1-P26D00指令代码不受支持或无效6E00不支持的类6F00技术问题,没有精确的诊断6FXX除了SW2=00外,这个状态字的解释与命令有关 4.6、在CLA功能不受支持(68xx) SW1 SW2说明6800未提供资料6881不支持的逻辑通道6882不支持安全消息传递 4.7、不允许的命令(69xx) SW1 SW2说明6900未提供资料6981命令与文件结构不兼容6982不满足安全状态6983认证/PIN方法阻塞6984提及数据无效6985不符合使用条件6986命令不允许(没有选择EF)6989命令不允许-安全通道-安全性不满足 4.8、错误参数(6Axx) SW1 SW2说明6A80数据字段参数不正确6A81不支持此功能6A82未找到文件6A83没有找到记录6A84内存空间不足6A86P1-P2参数不正确6A87Lc与P1到P2不一致6A88未找到参考数据 4.9、应用程序错误(98xx) SW1 SW2说明9850无法执行INCREASE,已达到最大值9862身份验证错误,特定于应用程序9863安全会话或关联过期注释应用程序可以定义自己的错误代码

补充: \color{Red}{补充:} 补充:

SW1 SW2说明9000命令正常完成61XXSW2表示仍然有效的响应字节数6E00CLA不支持6D00CLA支持,但INS未编程或无效6B00CLA INS支持,但P1、P2不正确6700CLA INS P1 P2支持,但P3不正确6F00命令不支持且未给出精确诊断6982不满足安全条件:SIM PUK时,想要读IMSI就会出现6E00SIM卡却用USIM卡的指令6A82没有找到文件6A86P1-P2参数不对


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有