当前位置: 首页>編程日記>正文

APDU指令小记

APDU指令小记

前言:

为了方便查看博客,特意申请了一个公众号,附上二维码,有兴趣的朋友可以关注,和我一起讨论学习,一起享受技术,一起成长。

在这里插入图片描述


1. 简述

APDU: Application Protocol data unit,,是智能卡与智能卡读卡器之间传送的信息单元, (向智能卡发送的命令)指令(ISO 7816-4规范有定义):CLA INS P1 P2 Lc Data Le。

CLA:指令类别;INS:指令码;P1、P2:参数;Lc:为Data的长度;Le:为希望响应时回答的数据字节数,0表最大可能长度。

在这里插入图片描述
必选部分:CLA, INS, P1, P2
可选部分:Lc, 数据段: Le
CLA 确定 APDU 的类别,INS 确定要执行的指令,P1 和 P2 是参数。

2. 指令解释

指令格式
命令APDUCLA INS P1 P2 Lc Data Le
响应APDUData SW1 SW2

命令 APDU 的四种组成格式:

在这里插入图片描述
解释:

Case1
命令中没有数据送到卡( Lc)中,也没有数据从卡中返回( Le)。
不含安全报文的命令: CLA | INS | P1 | P2
含安全报文的命令: CLA | INS | P1 | P2 | Lc | MAC

注: Lc = MAC 的长度, 4 字节。

Case2
命令中没有数据送到卡( Lc)中,有数据从卡中返回( Le)。
不含安全报文的命令: CLA | INS | P1 | P2 | Le
含安全报文的命令: CLA | INS | P1 | P2 | Lc | MAC | Le

注: Lc = MAC 的长度, 4 字节。

Case3
命令中有数据送到卡( Lc)中,没有数据从卡中返回( Le)。
不含安全报文的命令: CLA | INS | P1 | P2 | Lc | Data
含安全报文的命令: CLA | INS | P1 | P2 | Lc | Data+MAC

注: Lc = 数据的长度 + MAC 的长度( 4 字节)。

Case4
命令中既有数据送到卡( Lc)中,也有数据从卡中返回( Le)。
不含安全报文的命令: CLA | INS | P1 | P2 | Lc | Data | Le
含安全报文的命令: CLA | INS | P1 | P2 | Lc | Data+MAC | Le

注: Lc = 数据的长度 + MAC 的长度( 4 字节)。

通用APDU命令集:

指令名称CLAINS解释
READ BINARY00/04B0读出带有透明结构的EF内容的一部分
WRITE BINARYD0将二进制值写入 EF
UPDATE BINARY00/04D6启动使用在命令 APDU 中给出的位来更新早已呈现在EF中的位
ERASE BINARY0E顺序地从给出的偏移开始,将 EF 的内容的一部分置为其逻辑擦除的状态
READ RECORD00/04B2给出了EF的规定记录的内容或EF的一个记录开始部分的内容
WRITE RECORDD2WRITE RECORD命令报文启动下列操作之一:a. 写一次记录;b. 对早已呈现在卡内的记录数据字节与在命令 APDU 中给出的记录数据字节进行逻辑“或”运算;c. 对早已呈现在卡内的记录数据字节与在命令 APDU 中给出的记录数据字节进行逻辑“和”运算
APPEND RECORD00/04E2启动在线性结构 EF 的结束端添加记录,或者在循环结构的 EF 内写记录号 1
UPDATE RECORD00/04DC启动使用命令 APDU 给出的位来更新特定记录
GET DATACA可在当前上下文(例如应用特定环境或当前 DF )范围内用于检索一个原始数据对象,或者包含在结构化数据对象中所包含的一个或多个数据对象
PUT DATADA可在当前上下文(例如应用特定环境或当前 DF )范围内用于存储一个原始数据对象,或者包含在结构化数据对象中的一个或多个数据对象正确的存储功能(写一次和/或更新和/或添加)通过数据对象的定义和性质来引出
SELECT FILE00A4设置当前文件后续命令可以通过那个逻辑信道隐式地引用该当前文件
VERIFY00/0420启动从接口设备送入卡内的验证数据与卡内存储的引用数据(例如口令)进行比较
INTERNAL AUTHENTICATE0088启动卡使用从接口设备发送来的询问数据和在卡内存储的相关秘密(例如密钥)来计算鉴别数据,当该相关秘密被连接到 MF 时,命令可以用来鉴别整个卡当该相关秘密被连接到另一个 DF 时命令可以用来鉴别那个 DF。
EXTERNAL AUTHENTICATE0082使用卡计算的结果(是或否)有条件地来更新安全状态而该卡的计算是以该卡先前发出(例如通过 GETCHALLENGE 命令)的询问在卡内存储的可能的秘密密钥以及接口设备发送的鉴别数据为基础的
GET CHALLENGE0084要求发出一个询问(例如随机数)以便用于安全相关的规程(例EXTERNAL AUTHENTICATE 命令)
MANAGE CHANNEL70打开和关闭逻辑信道
GET RESPONSE00C0用于从卡发送至接口设备用可用的协议不能传送的那一些的 APDU (或APDU的一部分)
ENVOLOPE80C2用来发送那些不能由有效协议来发送的 APDU 或 APDU 的一部分或任何数据串

响应APDU:

在这里插入图片描述

常用SW1-SW2值:

SW1SW2解释
9000执行成功
6100数据被截断
6200警告,信息未提供
6281警告,回送数据可能出错
6282警告,文件长度小于Le
6283应用无效
6284FCI格式与P2指定的不符
6300认证失败
63Cx校验失败(x-允许重试次数)
6400原因不明
6581内存失败
6700长度不对
6900不能处理
6901命令不接受(无效状态)
6981命令与文件结构不相容,当前文件非所需文件
6982要PIN验证
6983文件无效,PIN被锁定
6984数据无效,随机数无效,引用的数据无效
6985条件不满足
6986不允许该命令
6982安全条件不满足
6987安全消息丢失
6988安全消息不正确
6999应用选择失败
6A80数据错误
6A81功能不支持
6A82文件找不到
6A83记录找不到
6A84没有足够的空间
6A86不正确的参数(P1,P2)
6A88引用数据没找到
6B00错误的参数 (P1,P2)
6C00长度错误 (Le)
6D00INS不支持
6E00CLA 不支持
6F00未知错误
9301资金不足
9302MAC无效
9303应用被永久锁定
9401交易金额不足
9402交易计数器达到最大值
9403密钥索引不支持
9406所需MAC不可用
SW1 与 SW2 状态码
正常处理警告错误执行错误检测错误
61XX或者900062XX或者63XX64XX或者65XX67XX直到6FXX

参考:

1.APDU常用指令

2.APDU命令格式

3.常用APDU指令错误码

4.APDU命令集


https://www.fengoutiyan.com/post/14992.html

相关文章:

  • aba指令的概念
  • cpu卡的apdu指令
  • adrset指令怎么用
  • 我的世界变小自己指令
  • 小指令
  • 我的世界让玩家变小的指令
  • acall指令
  • adprw指令说明
  • 鏡像模式如何設置在哪,圖片鏡像操作
  • 什么軟件可以把圖片鏡像翻轉,C#圖片處理 解決左右鏡像相反(旋轉圖片)
  • 手機照片鏡像翻轉,C#圖像鏡像
  • 視頻鏡像翻轉軟件,python圖片鏡像翻轉_python中鏡像實現方法
  • 什么軟件可以把圖片鏡像翻轉,利用PS實現圖片的鏡像處理
  • 照片鏡像翻轉app,java實現圖片鏡像翻轉
  • 什么軟件可以把圖片鏡像翻轉,python圖片鏡像翻轉_python圖像處理之鏡像實現方法
  • matlab下載,matlab如何鏡像處理圖片,matlab實現圖像鏡像
  • 圖片鏡像翻轉,MATLAB:鏡像圖片
  • 鏡像翻轉圖片的軟件,圖像處理:實現圖片鏡像(基于python)
  • canvas可畫,JavaScript - canvas - 鏡像圖片
  • 圖片鏡像翻轉,UGUI優化:使用鏡像圖片
  • Codeforces,CodeForces 1253C
  • MySQL下載安裝,Mysql ERROR: 1253 解決方法
  • 勝利大逃亡英雄逃亡方案,HDU - 1253 勝利大逃亡 BFS
  • 大一c語言期末考試試題及答案匯總,電大計算機C語言1253,1253《C語言程序設計》電大期末精彩試題及其問題詳解
  • lu求解線性方程組,P1253 [yLOI2018] 扶蘇的問題 (線段樹)
  • c語言程序設計基礎題庫,1253號C語言程序設計試題,2016年1月試卷號1253C語言程序設計A.pdf
  • 信奧賽一本通官網,【信奧賽一本通】1253:抓住那頭牛(詳細代碼)
  • c語言程序設計1253,1253c語言程序設計a(2010年1月)
  • 勝利大逃亡英雄逃亡方案,BFS——1253 勝利大逃亡
  • 直流電壓測量模塊,IM1253B交直流電能計量模塊(艾銳達光電)
  • c語言程序設計第三版課后答案,【渝粵題庫】國家開放大學2021春1253C語言程序設計答案
  • 18轉換為二進制,1253. 將數字轉換為16進制
  • light-emitting diode,LightOJ-1253 Misere Nim
  • masterroyale魔改版,1253 Dungeon Master
  • codeformer官網中文版,codeforces.1253 B
  • c語言程序設計考研真題及答案,2020C語言程序設計1253,1253計算機科學與技術專業C語言程序設計A科目2020年09月國家開 放大學(中央廣播電視大學)
  • c語言程序設計基礎題庫,1253本科2016c語言程序設計試題,1253電大《C語言程序設計A》試題和答案200901
  • 肇事逃逸車輛無法聯系到車主怎么辦,1253尋找肇事司機