射频识别吧 关注:25贴子:218
  • 0回复贴,共1

ISO7816协议(APDU指令)

只看楼主收藏回复

APDUApplicationProtocolDataUnit--应用协议数据单元。协议数据单元PDU(ProtocolDataUnit)是指对等层次之间传递的数据单位。协议数据单元(ProtocolDataUnit)物理层的PDU是数据位(bit),数据链路层的PDU是数据帧(frame),网络层的PDU是数据包(packet),传输层的PDU是数据段(segment),其他更高层次的PDU是数据(data)。
在分层网络结构,例如在开放式系统互联(OSI)模型中,在传输系统的每一层都将建立协议数据单元(PDU)。PDU包含来自上层的信息,以及当前层的实体附加的信息。然后,这个PDU被传送到下一较低的层。物理层实际以一种编帧的位流形式传输这些PDU,但是由协议栈的较高层建造这些PDU。接收系统自下而上传送这些分组通过协议栈,并在协议栈的每一层分离出PDU中的相关信息。重要的一点是,每一层附加到PDU上的信息,是指定给另一个系统的同等层的。这就是对等层如何进行一次通信会话协调的。 应用协议数据单元(APDU)传输协议数据单元(TPDU)IC卡的应用越来越广泛,从存储卡到逻辑加密卡,目前CPU卡已经逐渐在应用中占据主导地位。CPU卡根据通讯协议可分为两种:接触式和非接触式。接触式CPU卡主要采用两种通讯协议:T=0和T=1通讯协议。T=0是异步半双工字符传输协议,T=1是异步半双工块传输协议。目前T=0通讯协议的应用较为广泛,国内外大多数CPU卡都支持该协议,在金融交易中也采用这种通讯协议。

https://item.taobao.com/item.htm?ft=t&id=662336379712
传输协议
在SIM卡和ME的数据交互过程中,规定了T=0和T=1两种传输协议
命令头标由5个连续的字节组成:(T0)
CLA INS P1 P2 P3 CLA: 命令类别,取值为“A0”,当CLA=FF时,为PPS过程的头标;
INS: 指令代码;
P1,P2: 指令附加参数;
P3: 由INS的编码而定,或是表示命令中送给SIM卡的数据长度,或是表示等待从SIM卡响应的数据最大长度。
注释: 也就是说将这些拼接上A0+INS+P1+P2+P3
举例: A0A40000023F00(进入到3F00文件, 其中A4是命令, 相当于终端中用cd进入文件位置一样)
文件标识符
3F:主文件;
7F:第一级专有文件
5F:第二级专有文件
2F:主文件下的基本文件
6F:在第一级专有文件下的基本文件
4F:在第二级专有文件下的基本文件
判断SIM卡是否是白卡
A0A40000023F00 // 进入3F00主文件 A0A40000027F20 // 进入7F20文件 A0A40000026F07 // 进入6F07文件 A0B0000009 // B0 允许SIM卡从当前透明文件中读取字节串 // 返回的字符串 str = [str substringWithRange:NSMakeRange(0, 18)]; if ([str isEqualToString:@"FFFFFFFFFFFFFFFFFF"]) { // 为白卡 return YES; }
读取短信中心
A0A40000023F00 A0A40000027F10 A0A40000026F42 A0C000000F A0B2010428 // B2 用于读取线性固定文件或循环文件的记录
读取iccid
A0A40000023F00 A0A40000022FE2 A0B000000A // 返回的卡号为倒序卡号
读取IMSI号
A0A40000023F00 A0A40000027F20 A0A40000026F07 A0B0000009
以上就是本次内容了, 遵循SIM卡规范国际标准
https://item.taobao.com/item.htm?ft=t&id=662336379712


1楼2022-03-23 18:53回复