JAVA卡同TSM平台外部认证详细流程

在SCP02的规则下打开安全通道的流程大致如下:
显式打开安全通道由两条命令来完成:
1,INITIALIZE UPDATE 
2,EXTERNAL AUTHENTICATE


具体命令解释如下:
1,INITIALIZ E UPDATE:80 50 00 00 08 XX XX XX XX XX XX XX XX
解释下这条命令,这条命令实际上就是向智能卡送入一个随机数(8个XX),这个随机数产生的规则由主机程序自己定义。GP规范中称其为Host Challange
智能卡收到这条命令之后就会返回28个字节的响应数据,返回的数据包括:Key diversification(10Bytes)|key information(2Bytes)|
sequence Counter(2Bytes)|card challenge(6bytes)|card cryptogram(8BYtes),参考下面的实例。
====================================================================================================================
exchangeapdu "0x80 0x50 0x00 0x00 0x08 0x01 0x02 0x03 0x04 0x05 0x06 0x07 0x08"
SEND -> HEADER: 80 50 00 00 Lc = 008d


0 1 2 3 4 5 6 7 8 9 A B C D E F
------------------------------------------------
00| 01 02 03 04 05 06 07 08 


//host challenge: 01 02 03 04 05 06 07 08


RECEIVE -> STATUS: 611C


SEND -> GET RESPONSE
HEADER: 80 C0 00 00 Le = 028d


RECEIVE -> STATUS: 9000


0 1 2 3 4 5 6 7 8 9 A B C D E F
------------------------------------------------
00| 00 00 72 95 71 32 36 00 68 68 FF 02 00 08 8B 32 
01| 0E C6 0E 9B F5 A6 DB F1 B3 FE B8 75 


//以上这段是智能卡在收到Host Challenge之后的Response。


//Key diversification: 00 00 72 95 71 32 36 00 68 68
//key information: FF 02
//sequence Counter: 00 08
//card challenge: 8B 32 0E C6 0E 9B
//card cryptogram: F5 A6 DB F1 B3 FE B8 75
========================================================================================================================


首先外部应用程序需要认证智能卡,也就是根据智能卡传回的数据和自己产生的Host Challenge以及应用程序事先应该知道的静态KEY
按照一定的规则计算出一个密文出来和卡返回的card cryptogram,进行比较,如果一致的那说明卡通过了外部应用程序的认证。


Host根据卡返回的数据校验card cryptogram的过程如下:
首先需要根据静态的Key(下面计算过程中的静态Key全部是0x40 0x41 0x42 0x43 0x44 0x45 0x46 0x47 0x48 0x49 0x4a 0x4b 0x4c 0x4d 0x4e 0x4f)
产生一套SessionKey,包括C-MAC Session Key,R-MAC Session Key,S-ENC Session Key,S-DEK Session Key
这4种SessionKey。


按照SCP02的规则产生Session Keys的过程如下:
step1:  Generating the Secure Channel C-MAC session keys
  Derivation Data = Constant(2bytes) | Sequence Counter(2bytes) | 00 00...00(12bytes)
      = 01 01 00 08 00 00 00 00 00 00 00 00 00 00 00 00
  C-MAC Session Key = 3DES-CBC[S-MAC](Derivation Data) = 01 5a 6c 21 17 aa ae 94 57 61 4e 5d af 04 29 b9


step2: Generating the Secure Channel R-MAC session keys
  Derivation Data = Constant(2bytes) | Sequence Counter(2bytes) | 00 00...00(12bytes)
      = 01 02 00 08 00 00 00 00 00 00 00 00 00 00 00 00
  R-MAC Session Key = 3DES-CBC[S-MAC](Derivation Data) = a4 82 e6 d5 a5 d3 83 13 0b b2 71 a8 57 8f 3b 16


step3: Generating the Secure Channel encryption session keys
  Derivation Data = Constant(2bytes) | Sequence Counter(2bytes) | 00 00...00(12bytes)
      = 01 82 00 08 00 00 00 00 00 00 00 00 00 00 00 00
  S-ENC Session Key = 3DES-CBC[S-MAC](Derivation Data) = 64 0d 58 ca 61 ad 53 ba bb e5 48 36 8d 81 da 20


step4: Generating the Secure Channel data encryption session keys
  Derivation Data = Constant(2bytes) | Sequence Counter(2bytes) | 00 00...00(12bytes)
      = 01 81 00 08 00 00 00 00 00 00 00 00 00 00 00 00
  S-DEK Session Key = 3DES-CBC[S-MAC](Derivation Data) = b4 f7 5c e0 a9 5e a3 f8 6b bd 05 1c b7 7c 0f ae


在SCP02规则下计算Card Authentication Cryptogram的过程如下:
  ICV = 00 00 00 00 00 00 00 00
  Derivation Data = 8bytes Host Challange | 2bytes Sequence Counter | 6bytes Card Challange | 80 00 00 00 00 00 00 00
      = 01 02 03 04 05 06 07 08 00 08 8B 32 0E C6 0E 9B 80 00 00 00 00 00 00 00
  Card Cryptogram = 3DES-CBC[S-ENC Session Key | ICV](Derivation Data)
      = F5 A6 DB F1 B3 FE B8 75


//Host 计算出来自己的Card Cryptogram再去和卡传回来的比较,就完成了外部程序认证卡的过程。


Host计算出来的Card Cryptogram和卡传回来的是一致的,第一步完成了!


接下来卡还要认证外部应用程序,外部应用程序同样根据卡传回来的数据和Host Challenge计算一个Host Cryptogram传给卡,卡内部
会来校验传给卡的数据的合法性的


看看怎样来计算Host Authentication Cryptogram,其过程如下:
  ICV = 00 00 00 00 00 00 00 00
  Derivation Data = 2bytes Sequence Counter | 6bytes Card Challange | 8bytes Host Challange | 80 00 00 00 00 00 00 00
      = 00 08 8B 32 0E C6 0E 9B 01 02 03 04 05 06 07 08 80 00 00 00 00 00 00 00
  Host Cryptogram = 3DES-CBC[S-ENC Session Key | ICV](Derivation Data)
      = b9 8d e2 87 b7 7f 7d 30


计算好了Host Cryptogram之后,由于传给卡的数据需要带MAC校验值,下面看看C-MAC的计算规则。
HOST把Host Cryptogram传送给智能卡是通过命令EXTERNAL AUTHENTICATE来实现的。
其命令结构是:APDU Header | Host Cryptogram(8Bytes) | MAC(8Bytes)
   其中APDU Header = 84 82 00 00 10


接着就需要计算C-MAC值了,其过程如下:
  ICV = 00 00 00 00 00 00 00 00
  Derivation Data = APDU Header | Host Cryptogram(Data Filed) | (padding value)
      = 84 82 00 00 10 b9 8d e2 87 b7 7f 7d 30 80 00 00
  把Derivation Data分割为2个部分:DerivationData_lefthalf = 84 82 00 00 10 b9 8d e2
          DerivationData_righthalf= 87 b7 7f 7d 30 80 00 00
  ICV1 = DES-CBC[first half of C-MAC Session Key | ICV](DerivationData_lefthalf) 
   = B8 01 83 80 5F 24 DF 56


  MAC = 3DES-CBC[C-MAC Session Key | ICV1](DerivationData_righthalf)
   = 33 7B 1E E8 E3 C8 9A DA


计算好了MAC值,就可以把Host Challenge 和 MAC一起通过如下命令发送到智能卡验证是否成功!
=======================================================================================================================  
exchangeapdu "0x84 0x82 0x00 0x00 0x10 0xb9 0x8d 0xe2 0x87 0xb7 0x7f 0x7d 0x30 0x33 0x7B 0x1E 0xE8 0xE3 0xC8 0x9A 0xDA"
SEND -> HEADER: 84 82 00 00 Lc = 016d


0 1 2 3 4 5 6 7 8 9 A B C D E F
------------------------------------------------
00| B9 E2 87 B7 7F 7D 30 33 7B 1E E8 E3 C8 9A DA 


RECEIVE -> STATUS: 9000
=======================================================================================================================
打开安全通道成功
1. 介绍 2 2. 系统架构 10 3. 卡的架构 11 3.1. 运行时环境 11 3.2. 卡的管理者(Card Manager) 12 3.2.1. GlobalPlatform运行时环境(OPEN) 12 3.2.2. 发行者安全域 12 3.2.3. 卡持有者的校验方法 13 3.3. 安全域(Secure Domains) 13 3.4. GP的API(Open Platform API) 13 3.5. 卡的内容 13 4. 安全架构 15 4.1. 目标 15 4.2. 安全职责 15 4.2.1. 卡发行者(Card Issuer) 15 4.2.2. 应用提供者(Application Provider) 16 4.2.3. 控制授权中心机构(Controlling Authority) 16 4.2.4. 卡上组件的安全要求 16 4.2.4.1. 对运行时环境的安全要求 16 4.2.4.2. 对OPEN的安全要求 17 4.2.4.3. 对发行者安全域的安全要求 17 4.2.4.4. 对CVM处理者的安全要求 17 4.2.4.5. 对安全域的安全要求 17 4.2.4.6. 对应用的安全要求 18 4.2.5. 后台系统的安全要求 18 4.3. 加密支持 18 4.3.1. 卡内容的完整性校验和数据鉴别 18 4.3.1.1. 装载文件数据块HASH 18 4.3.1.2. 装载文件数据块签名 19 4.3.1.3. 委托管理令牌 19 4.3.1.4. 收条 19 4.3.2. 安全通讯 19 5. 生命周期模型 21 5.1. 卡的生命周期 21 5.1.1. 卡生命周期的状态 21 5.1.1.1. OP_READY状态 21 5.1.1.2. INITIALIZED状态 22 5.1.1.3. SECURED状态 22 5.1.1.4. CARD_LOCKED状态 22 5.1.1.5. TERMINATED状态 22 5.1.2. 卡生命周期状态的迁移 23 5.2. 可执行装载文件的生命周期(Excutable Load File Life Cycle) 24 5.2.1. 可执行装载文件的生命周期 25 5.2.1.1. LOADED状态 25 5.2.1.2. 可执行装载文件的删除 25 5.2.2. 可执行模块的生命周期 25 5.3. 卡内应用和安全域的生命周期 25 5.3.1. 卡内应用的生命周期状态 26 5.3.1.1. INSTALLED状态 26 5.3.1.2. SELECTBLE状态 26 5.3.1.3. LOCKED状态 26 5.3.1.4. 应用的删除 27 5.3.1.5. 应用特定生命周期状态 27 5.3.2. 安全域的生命周期状态 28 5.3.2.1. INSTALL状态 28 5.3.2.2. SELECTABLE状态 28 5.3.2.3. PERSONALIZED状态 28 5.3.2.4. LOCKED状态 28 5.3.2.5. 安全域的删除 29 5.4. 卡的生命周期和AP生命周期状态的演示 30 6. 卡的管理者(CM) 32 6.1. 概述 32 6.1.1. OPEN 32 6.1.2. 发行者安全域 33 6.1.3. CVM处理者 34 6.2. CM的服务 34 6.2.1. 应用访问OPEN服务 34 6.2.2. 应用访问CVM服务 34 6.2.3. 应用访问发行者安全域的服务 35 6.2.4. 发行者域访问应用服务 35 6.4. 卡内容的管理 41 6.4.1. 卡内容的装载和安装 41 6.4.1.1. 卡内容的装载 42 6.4.1.2. 卡内容的安装 43 6.4.2. 内容的移除 45 6.4.2.1. 应用的移除 45 6.4.2.2. 可执行装载文件的移除 46 6.4.2.3. 可执行装载文件和相关应用的移除 47 6.4.3. 内容的移交(context Extradition) 48 6.5. 委托管理 48 6.6. GP的注册表 49 6.6.1. 发行者域数据元素的描述 49 6.6.1.1. 发行者安全域的AID 50 6.6.1.2. 卡的生命周期状态 50 6.6.2. 应用/可执行装载文件/可执行模块的数据元素的描述 50 6.6.2.1. 应用/可执行装载文件/可执行模块的AID 50 6.6.2.2. 应用/可执行装载文件/可执行模块的生命周期 50 6.6.2.3. 资源分配 50 6.6.2.4. 应用的权限 51 6.6.2.5. 相关联安全域的AID 52 6.7. 安全管理 52 6.7.1. 应用的锁定 53 6.7.2. 卡的锁定 54 6.7.3. 卡的终止 55 6.7.4. 操作频率的检查 56 6.7.4.1. 卡内容的装载和安装时的频率检查 56 6.7.4.2. 异常操作频率检查 56 6.7.5. 跟踪和事件的记载 57 6.7.6. 安全内容的装载和安装 57 6.7.6.1. 装载文件的数据块HASH值 57 6.7.6.2. 令牌 57 6.7.6.3. 装载文件数据块的签名 57 6.8. 发行者安全域 58 6.8.1. 发行者的标识号 58 6.8.2. 卡的Image号 58 6.8.3. 卡的识别数据 59 6.8.4. 卡上的密钥信息 59 7. 安全域 63 7.1. 概述 63 7.2. 安全域服务 64 7.2.1. 访问安全域服务的应用 64 7.2.2. 访问应用的安全域 65 7.3. 个人化支持 65 7.4. 运行时消息支持 66 7.5. DAP验证 67 7.6. 代理管理 68 7.6.1. 代理下载 68 7.6.2. 代理安装 69 7.6.3. 代理移交 70 7.6.4. 代理删除 71 7.7. 代理管理令牌、收条及DAP验证 72 7.7.1. 下载令牌 72 7.7.2. 下载收条 73 7.7.3. 安装、移交令牌 73 7.7.4. 安装收条 73 7.7.5. 移交收条 74 7.7.6. 删除收条 74 7.7.7. 下载文件数据块hash 75 7.7.8. 下载文件数据块签名 (DAP验证) 75 8. 安全通讯 76 8.1. 安全通道 76 8.2. 显式/隐式的安全通道 76 8.2.1. 显式安全通道初始化 76 8.2.2. 隐式安全通道初始化 77 8.2.3. 安全通道结束 77 8.3. 直接/间接处理安全通道协议 77 8.4. 实体认证 77 8.5. 安全消息传输 77 8.6. 安全通道协议标识 78 9. APDU命令参考 80 9.1. 总的编码规则 81 9.1.1. 生命周期状态的编码 81 9.1.2. 应用的权限编码 82 9.1.3. 一般性的错误情形 83 9.1.4. CLASS字节编码 84 9.1.5. APDU命令和响应数据 84 9.1.6. 密钥类型编码 84 9.1.7. 在委托管理的响应消息中的收条信息(可选) 85 9.2. DELETE命令 86 9.2.1. 定义和范围 86 9.2.2. 命令消息 86 9.2.2.1. 引用控制参数P1 86 9.2.2.2. 引用控制参数P2 86 9.2.2.3. 命令消息中发送的数据字段 86 9.2.3. 响应消息 87 9.2.3.1. 在响应消息中返回的数据字段 87 9.2.3.2. 在响应消息中返回的处理状态 87 9.3. GET DATA命令 88 9.3.1. 定义和范围 88 9.3.2. 命令消息 88 9.3.2.1. CLA字节 88 9.3.2.2. 参数P1和P2 88 9.3.2.3. 在命令消息中发送的数据字段 89 9.3.3. 响应消息 89 9.3.3.1. 在响应消息中返回的数据字段 89 9.3.3.2. 在响应消息中返回的处理状态 90 9.4. GET STATUS命令 90 9.4.1. 定义和范围 90 9.4.2. 命令消息 90 9.4.2.1. 引用控制参数P1 91 9.4.2.2. 引用控制参数P2 91 9.4.2.3. 命令消息中发送的数据字段 92 9.4.3. 响应消息 92 9.4.3.1. 在响应消息中返回的数据字段 92 9.4.3.2. 在响应消息中返回的处理状态 93 9.5. INSTALL命令 94 9.5.1. 定义和范围 94 9.5.2. 命令消息 94 9.5.2.1. 引用控制参数P1 94 9.5.2.2. 引用控制参数P2 95 9.5.2.3. 命令消息中发送的数据字段 95 9.5.3. 响应消息 98 9.5.3.1. 在响应消息中返回的数据字段 98 9.5.3.2. 在响应消息中返回的处理状态 99 9.6. LOAD命令 99 9.6.1. 定义和范围 99 9.6.2. 命令消息 99 9.6.2.1. 引用控制参数P1 100 9.6.2.2. 引用控制参数P2-块号 100 9.6.2.3. 命令消息中发送的数据字段 100 9.6.3. 响应消息 101 9.6.3.1. 在响应消息中返回的数据字段 101 9.6.3.2. 在响应消息中返回的处理状态 101 9.7. MANAGE CHANNEL命令 102 9.7.1. 定义和范围 102 9.7.2. 命令消息 102 9.7.2.1. 引用控制参数P1 102 9.7.2.2. 引用控制参数P2 102 9.7.2.3. 命令消息中发送的数据字段 103 9.7.3. 响应消息 103 9.7.3.1. 在响应消息中返回的数据字段 103 9.7.3.2. 在响应消息中返回的处理状态 103 9.8. PUT KEY命令 103 9.8.1. 定义和范围 103 9.8.2. 命令消息 104 9.8.2.1. 引用控制参数P1 104 9.8.2.2. 引用控制参数P2 104 9.8.2.3. 命令消息中发送的数据字段 105 9.8.3. 响应消息 106 9.8.3.1. 在响应消息中返回的数据字段 106 9.8.3.2. 在响应消息中返回的处理状态 107 9.9. SELECT命令 107 9.9.1. 定义和范围 107 9.9.2. 命令消息 107 9.9.2.1. 引用控制参数P1 108 9.9.2.2. 引用控制参数P2 108 9.9.2.3. 命令消息中发送的数据字段 108 9.9.3. 响应消息 108 9.9.3.1. 在响应消息中返回的数据字段 108 9.9.3.2. 在响应消息中返回的处理状态 109 9.10. SET STATUS命令 109 9.10.1. 定义和范围 109 9.10.2. 命令消息 109 9.10.2.1. 引用控制参数P1-状态类型 110 9.10.2.2. 引用控制参数P2-状态控制 110 9.10.2.3. 命令消息中发送的数据字段 111 9.10.3. 响应消息 111 9.10.3.1. 在响应消息中返回的数据字段 111 9.10.3.2. 在响应消息中返回的处理状态 111 9.11. STORE DATA命令 111 9.11.1. 定义和范围 111 9.11.2. 命令消息 111 9.11.2.1. 引用控制参数P1 112 9.11.2.2. 引用控制参数P2 113 9.11.2.3. 命令消息中发送的数据字段 113 9.11.3. 响应消息 114 9.11.3.1. 在响应消息中返回的数据字段 114 9.11.3.2. 在响应消息中返回的处理状态 114 A. GP的API 116 A.1. 不赞成的Open Platform Java卡API 116 A.2. GP在JAVA卡上 116 A.2.1. GP特定的要求 116 A.2.1.1. GlobalPlatform包的AID 116 A.2.1.2. 安装 116 A.2.1.3. T=0传输协议 117 A.2.1.4. 原子操作 118 A.2.1.5. 逻辑通道 118 A.2.1.6. 加密算法 118 A.2.1.7. 信任级别 118 A.2.1.8. GlobalPlatform方法的调用 118 A.2.2. 类的层次 119 A.2.2.1. 接口org.globalplatform.Application 119 A.2.2.2. 接口org.globalplatform.SecureChannel 120 A.2.2.3. 类org.globalplatform.GPSystem 127 A.2.2.4. 接口org.globalplatform.CVM 131 A.3. GP在windows Powered智能卡 136 B. 算法(加密和HASH) 138 B.1. 数据加密标准(DES) 138 B.1.1. 加密/解密 138 B.1.1.1. CBC模式 138 B.1.1.2. ECB模式 138 B.1.2. MAC 138 B.1.2.1. 完整的TDES MAC 138 B.1.2.2. Single DES加上最终的TDES MAC 138 B.2. HASH算法 139 B.2.1. 安全HASH算法(SHA-1) 139 B.3. 公钥加密方案1(PKCS#1) 139 B.4. DES数据填充 139 C. 安全内容管理 141 C.1. 密钥 141 C.1.1. 发行者安全域密钥 141 C.1.1.1. 令牌密钥 141 C.1.1.2. 收条密钥 141 C.1.2. 安全域密钥 141 C.2. 下载文件数据块Hash 142 C.3. 令牌 142 C.3.1. 下载令牌 142 C.3.2. 安装令牌 143 C.3.3. Extradition Token 145 C.4. 收条 145 C.4.1. 下载收条 146 C.4.2. 安装收条 146 C.4.3. 删除收条 147 C.4.4. 移交收条 148 C.5. DAP验证 148 C.5.1. PKC方案 149 C.5.2. DES方案 149 D. 安全通道协议‘01’ 150 D.1. 安全通讯 150 D.1.1. SCP01安全通道 150 D.1.2. 相互认证 150 D.1.3. 消息的完整性 152 D.1.4. 消息数据的机密性 152 D.1.5. ICV的加密 152 D.1.6. 安全级别 152 D.2. 加密密钥 153 D.3. 加密用法 154 D.3.1. DES会话密钥 154 D.3.2. 鉴别密码(Authenticated Cryptogram) 156 D.3.2.1. 卡的鉴别密码(Card cryptogram) 156 D.3.2.2. 主机端鉴别密码(host cryptogram) 156 D.3.3. MAC生成和MAC校验的APDU指令 156 D.3.4. APDU命令的加密和解密 157 D.3.5. 关键敏感数据的加密和解密 158 D.4. 安全通道的APDU命令 159 D.4.1. INITIALIZE UPDATE命令 159 D.4.1.1. 定义和范围 159 D.4.1.2. 命令消息 160 D.4.1.3. 引用控制参数P1——密钥版本号 160 D.4.1.4. 引用控制参数P2——密钥标识 160 D.4.1.5. 命令消息中要传送的数据段 160 D.4.1.6. 响应消息 160 D.4.1.7. 在响应消息中返回的执行状态 161 D.4.2. EXTERNAL AUTHENTICATION命令 161 D.4.2.1. 定义和范围 161 D.4.2.2. 命令消息 161 D.4.2.3. 引用控制参数P1——安全级别 162 D.4.2.4. 引用控制参数P2 162 D.4.2.5. 命令消息中要传送的数据段 162 D.4.2.6. 响应消息返回的数据段 162 D.4.2.7. 在响应消息中返回的执行状态 162 E. 安全通道协议‘02’ 164 E.1. 安全通迅 164 E.1.1. SPC02安全通道 164 E.1.2. 实体鉴别 165 E.1.2.1. 显式安全通道的初始化 166 E.1.2.2. 隐式安全通道的初始化 167 E.1.3. 消息的完整性 167 E.1.4. 消息数据的机密性 168 E.1.5. 安全级别 168 E.2. 加密密钥 170 E.3. 加密算法 171 E.3.1. CBC 171 E.3.2. 消息的完整性ICV在显式安全通道初始化中的使用 171 E.3.3. 消息的完整性ICV在隐式安全通道初始化中的使用 172 E.3.4. ICV的加密 172 E.4. 加密用法 172 E.4.1. DES会话密钥 172 E.4.2. 在显式安全通道中的鉴别密码 173 E.4.2.1. 卡的鉴别密码(Card cryptogram) 173 E.4.2.2. 主机端的鉴别密码(host cryptogram) 173 E.4.3. 在隐式安全通道中的鉴别密码(Authenticate Cryptogram) 174 E.4.4. APDU命令C-MAC的生成和校验 174 E.4.5. APDU命令响应的R-MAC生成和校验 176 E.4.6. APDU命令数据段的加密和解密 177 E.4.7. 敏感数据的加密和解密 178 E.5. 安全通道的APDU指令 178 E.5.1. INITIALIZE UPDATE命令 179 E.5.1.1. 定义和范围 179 E.5.1.2. 命令消息 179 E.5.1.3. 引用控制参数P1——密钥版本号 180 E.5.1.4. 引用控制参数P2 180 E.5.1.5. 命令消息中要传送的数据段 180 E.5.1.6. 响应消息 180 E.5.1.7. 在响应消息中返回的执行状态 180 E.5.2. EXTERNAL AUTHENTICATION命令 181 E.5.2.1. 定义和范围 181 E.5.2.2. 命令消息 181 E.5.2.3. 引用控制参数P1——安全级别 181 E.5.2.4. 引用控制参数P2 182 E.5.2.5. 命令消息中要传送的数据段 182 E.5.2.6. 响应消息返回的数据段 182 E.5.2.7. 在响应消息中返回的执行状态 182 E.5.3. BEGIN R-MAC SESSION命令 182 E.5.3.1. 定义和范围 182 E.5.3.2. 命令消息 183 E.5.3.3. 引用控制参数P1 183 E.5.3.4. 引用控制参数P2 183 E.5.3.5. 命令消息中要传送的数据段 183 E.5.3.6. 响应消息返回的数据段 184 E.5.3.7. 在响应消息中返回的执行状态 184 E.5.4. END R-MAC SESSION命令 184 E.5.4.1. 定义和范围 184 E.5.4.2. 命令消息 184 E.5.4.3. 引用控制参数P1 185 E.5.4.4. 引用控制参数P2 185 E.5.4.5. 命令消息中要传送的数据段 185 E.5.4.6. 响应消息返回的数据段 185 E.5.4.7. 在响应消息中返回的执行状态 185 F. GP的数据及卡的识别数据 187 F.1. 数据值 187 F.2. 卡识别数据的结构 187 F.3. 安全域管理数据 188
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值