# 一个礼拜学习Ios7816协议 第三天

前两天学习了一下大概的偏向于嵌入式的文档,今天开始不在学习,如果有朋友想要继续了解,请私信我

在这里插入图片描述

卡内部文件大概

在这里插入图片描述

行业间命令

范围

本规范规定了:
	由接口设备至卡以及相反方向所发送的报文,命令和相应的内容
	在复位应答期间卡所发送的历史字节的结构及内容
	档处理交换用的行业间命令时,在接口处所看到的文件和数据的结构
	访问卡内文件和数据方法
	定义访问卡内文件和数据的权利的安全体系结构
	安全报文交换的方法

定义

复位应答文件 Answer-to Reset file
标识卡操作特性的基本文件
命令相应対 Command-response pair
两种报文的集合,命令后面紧跟着相应
数据单元 data unit
可以无二义性的被应用的最少位集合
数据元 data element
在接口所看到的信息,为他定义了名称,逻辑内容描述,编码和格式
数据对象 data objects
在接口处所看到的信息,他由标签,长度和值(即,数据元)组成,在本部分中
数据对象称之为BER-TLV,压缩TLV和简单的TLV数据单元
专用文件 dedicate file
包含文件控制信息和任选的供分配用的存储器文件,他可以是EFs和/或DFs的父辈
DF名称 DFname
唯一的标识了卡内专用文件的字节串
目录文件 directory file
基本文件
基本文件 elementary file
共享同一文件标识符的数据单元或记录的集合,他不可能是另一文件的父辈
文件控制参数 file control parmeters
文件的逻辑,结构和安全的属性
文件标识符 file identifier
用来寻址文件的二字节二进制值
文件管理数据 file management data
除文件控制参数(例如,有效日期,应用标号)外,关于文件的任何信息
内部基本文件 internal elementary file
用来存储由卡锁解释数据的基本文件
主文件 master file
标识文件结构根的强制性唯一专用文件
报文 message
由接口设备向卡所发送的字节串,反之 但不包括面向传输的字符
父辈文件 parent file
在分级结构范围内,直接在某一给定文件之前的专用文件
口令 password
应用可以要求的数据,通过其用户将他呈现给卡
路径 path
文件标识符的并置,而无需定界,如果路径为主文件的标识符开始,则他是一条绝对的路径
提供者 provider
具有或层获取在卡内建立专用文件权利的管理机构
记录 record
可以由卡处理为一整体的并且可由记录号或者记录标识符所引用的字符串
记录标识符 record number
分配给每一个记录的循序号,他唯一的标识其基本文件内的记录
工作的基本文件 working elementary file
用来存储不由卡所解释数据的基本文件

略缩语与记号

APUD	应用协议数据单元
ATR		复位应答
BER		ASN.1的基本编码规则
CLA		类别字节
DIR		目录
DF		专用文件
EF		基本文件
FCI		文件控制信息
FCP		文件管理数据
INS		指令字节
MF		主文件
P1-P2	参数字节
PTS		协议类型选择
RFU		保留供将来使用
SM		安全报文交换
SW1-SW2	状态字节
TLV		标记长度
TPDU		传输协议数据单元

0 到 9 A 到 F		十六个十六进制数字
B①		字节B①的值
B① B②		字节B①(最高有效字节)和B②(最低有效字节)的并置
(B① B②)	字节B①和B②并置的值
#		编号

基本组织结构

数据结构
本条包含当处理交换用的行业间命令时在接口处所看到的有关与数据逻辑结构的信息,超出本条概述之外的数据和结构信息的实际存储位置不在本范围内
文件组织结构
本部分规范支持下列两种文件
	专用文件(DF)
	基本文件(EF)
	卡内数据的逻辑住址结构由下列专用文件的结构化分级组成
		在根处的DF称作主文件(MF),该MF是必备的
		其他的DF是任选的
	定义了下列两种类型的EF
		内部EF 那些EF预期用于存储由卡锁解释的数据,即 为了管理和控制目的由卡所分析和使用的数据
		工作的EF 那些EF预期用于不由卡所解释的数据,即仅仅由外界待使用的数据

在这里插入图片描述

文件的引用方法
当文件不能被默认的选择时,应有可能至少通过下列方法之一来选择他
通过文件标识符引用 任何文件都可以通过按2字节编码的文件标识符引用。
如果MF通过文件标识符来引用 应使用3F00(保留值)。值FFFF被保留供将来使用。
值3FFF被保留,为了通过文件标识符来选择无二义性的任何文件,直接在给定DF下的所有EF和DF都应具有不同的文件标识符

通过路径引用 任何文件都可以通过路径来引用(文件标识符的并置,该路径以MF或当前DF的标识符开始,并且以文件自身的标识符结束,在这两个标识符之间,路径有连续的父辈DFs(如果有)的标识符组成,
文件标识符的次序总是在腹肌至自己的方向上,如果当前的DF的标识符未知,值3FFF(保留值)可以用于路径的开始处,路径允许从MF或当前DF中无二异性的选择任何文件

3FFF(重点记录)

通过短EF标识符使用 任何EF都可通过值在130范围内的五位编码的短EF标识符来引用,用作短EF标识符的值0引用了当前选择的EF,短EF标识符不能在路径中或不能作为文件标识符(比如在SELECT FILE 命令中)

通过DF名称引用 任何DF都可以通过按116个字节编码的DF名称来引用,为了通过DF名称进行无二义性的选择(例如,借助IOS/IEC7816规定的应用标识符选择的时候),每个DF名称给定在卡内是唯一的
基本文件结构
定义了下列EF的结构
	透明结构 在接口处EF可看做为一系列数据单元
	记录结构 在接口处EF可以看作为一序列各自可标识的记录

为按记录构成的EF定义了下列属性
	记录的长度,固定或可变的
	记录的组织结构,按顺序(线性结构)或者按环形(循环结构)
为了构造EF,卡至少应支持下列四种方法之一
	透明EF
	带有固定窗度记录的线性EF
	带有可变长度记录的线性文件
	带有固定长度记录的循环EF

在这里插入图片描述

箭头是当前记录的结构

数据的引用方法
数据可以作为记录,数据单元或数据对象加以引用,数据可被认为是存储在单个连续数列记录(在记录结构的EF内) 或者是存储在单个连续顺序序列数据单元(在透明结构的EF内) 引用超出EF的记录或数据单元是一次差错

数据引用方法,记录编号方法和数据单元疮毒都是与EF有关的特征,卡能在ATR,ATR文件和任何文件控制信息中提供指示,当卡在几个地方提供了指示时,对给定EF有效的知识就是从MF至那个EF的路径范围内最接近EF的一个指示
记录引用
在背个记录结构的EF内,每个记录可以通过记录标识符/或记录号来引用
	
记录标识符和记录号都是带有值的 从01 到 FE范围内无符号9比特整数,值 00 保留用于特定木丁,值FF为RFU

通过记录标识符引用应引起对记录指针的管理,卡的复位,选择文件和运载有效短EF标识符的任何命令都能影响记录指针,**通过记录号引用应不影响记录指针**

通过记录表师傅引用  每个记录标识符由应用来提供,如果记录实在报文的数据字段中简单TLV(记录长度)数据对象 则记录标识符是数据对象的第一个字节,在记录结构的EF内,记录可以具有相同记录标识符,再此情况下,在李璐中所包含的数据可以用来便捷这些记录

每次使用记录表师傅进行引用,一个指针应指定目标记录的逻辑位置,第一个或最后一个出现,县一个或先前一个出现都与记录指针有关(就相当于编程写文件的文件指针类似吧)

在每个线性结构的EF内。当写入或者添加时,逻辑位置应有序的分配,即按建立的次序,因此,第一个建立的记录是在第一个逻辑位置中

在每个循环结构的EF内,逻辑位置应按相反的次序来分配,即,最当前的简历记录实在第一个逻辑位置中,为了线性结构和循环结构,

为了线性结构和循环结构,定义下列附加规则

第一个出现应是带有规定标识符的记录,并且实在最后一个逻辑位置中

当不存在当前记录时,下一个出现应等大于第一个穿线,先前第一个出现应等价与最后一个出现

当存在当前记录时,下一个出现应是带有规定标识符的最近记录,但是再比当前记录更大的逻辑位置中,先前第一个出现应是带有规定标识符的最近记录,但是在比当前记录更小的逻辑位置中

值 00 应按编号标识第一个,下一个或先前一个记录,但是与记录标识符无关

通过记录号引用,在每一个记录结构的EF内,记录号是唯一的和有顺序的,

在每一个线性结构的EF内,当写入或添加时,记录号应有序的被分配,即案件里的次序,因此,第一个记录(记录号1,#1) 是第一个创建的记录。

在每个循环结构的EF内,记录号应按相反的次序来分配,即,第一个记录号(记录号1,#1)是最近建立的记录
为了线性结构或者循环结构,定义了一下列附加规则
值 00 应标识当前记录,即,通过记录指针所固定的那个记录

数据单元引用

在每个透明结构的EF内,每个数据单元可以通过偏移量(例如,在 READ BINARY 命令中) 来引用, 他是一个无符号整数,按照相应命令中的选项,他被限制在8或者15位,对于EF的第一个数据单元值为0,对于每个后续数据单元。偏移量增加1

通过默认,即,如果卡没有给出提示,则数据单元的长度为1个字节。
  1. 记录结构的EF可疑之处数据单元应用,在他支持的情况下,数据单元可以包含结构化信息以及数据,比如,线性结构中的记录号。
  2. 在记录结构的EF内,数据单元应用可以不提供续期结果,因为在EF中的记录存储次序位置,例如在循环结构中的存储次序
数据对象引用
每个数据 是以引用他的标记头开始的

文件控制信息

文件控制信息 FCI 是可用于相应 SELECT FILE 命令的数据字节,对于任何文件,文件控制信息都可以呈现

当文件控制信息编码为BER-TLV数据对象时 下图引入了预期用来运送文件控制信息的三种样板 
标记
62文件控制参数(FCP样板)
64文件管理数据(FMD样板)
6F文件控制信息(FCI样板)
FCP
FCP样板预期用来运送文件控制参数(FCP),即,下表2中定义的任何BER-TLV数据对象
FMD
FMD样板预期用来运送文件管理数据(FMD),即在本部分规范或本规范其他部分中规定的BER-TLV数据对象
FCI
FCI样板预期用来云送文件控制参数和文件管理数据

表2

标记L适用于
802在文件中的数据字节数,不宝具哦结构信息透明EFs
812在文件中的数据字节数,如果有,包括结构信息任何文件
8212,3或4文件描述字节(见表3),文件描述符字节后面紧跟着数据编码字节(见表86) ,文件描述符字节后面紧跟着数据编码字节和最大记录长度任何文件,任何文件,带有记录结构的EFs
832文件标识符任何文件
841,16DF名称DFs
85变量专有信息任何文件
86变量安全属性编码超出本规范本部分的范围任何文件
872包含扩充FCI的EF标识符任何文件
88,9ERFU
9FXYRFU
三种样板可以根据选择SELECT FILE 命令中的选项见下表进行检索,如果FCP或FMD选项呗置位,则使用相应的样板是强制性的,如果FCI选项被设置,则使用FCI样板是任选的

在应用的控制下,文件控制信息的一部分可以附加的存在于工作的EF中,并且可按照标签87 加以引用。对于编码的这种EF的文件控制信息,使用FCP或FCI样板是必备的
不按照本部分规范的编码文件控制信息可以引入如下
00 或者大于 9F的任何值 -- 编码的后续字符串是专有的
标记=53 数据对象的值字段由未按TLV编码的自由选定的数据组成
标记 = 73 数据对象的值字段由自由选定的BER-TLV数据对象组成

表3文件描述符字节

b8b7b6b5b4b3b2b1含义
0x-----文件可方文性
00-----不可共享的文件
01-----可共享的文件
0-xxx---文件类型
0-000---工作的EF
0-001---内部的EF
0-010---保留的EFs的专有类型用
0-011---保留的EFs的专有类型用
0-100---保留的EFs的专有类型用
0-101---保留的EFs的专有类型用
0-110----保留的EFs的专有类型用
0-111----DF
0----xxxEF结构
0----000没有信息被给出
0----010线性固定,没有进一步的信息
0----011线性固定,简单TLV
0----100线性可变,没有进一步的信息
0----101线性可变 简单TLV
0----110循环,没有进一步的信息
0----111循环,简单TLV
1xxxxxxxRFU
意味至少支持不同逻辑信号上的当前访问

卡的安全体系结构

本条件描述下列特征
	安全状态
	安全属性
	安全机制
		讲安全属性与安全状态相比较,以执行命令和/或访问文件
安全状态
安全状态标识完成下列动作后获得的可能的当前状态
 安全状态标识下列动作后所获得的可能的当前状态
复位应答
复位应答(ATR) 和可能的协议类型选择(RTS)和/或
单个命令或一序列命令,可能执行的认证规程
安全状态也可以从完成所包含实体(如果有)的标识有关的安全规程中产生
通过证明了解口令
通过证明了解秘钥(例如,使用 GET CHALLENGE) 命令后面紧跟着 EXTERNAL AUTHENTICATE 命令
通过安全报文交换(例如,报文鉴别)
考虑了三种安全状态

全局安全状态,
	他可以通过完成与MF相关的鉴别规程进行修改(例如,通过连接到MF的口令或秘钥的实体鉴别)

文件特定安全状态
	他可以通过完成与DF相关的鉴别规程进行修改(比如,通过连接到特定DF的口令或秘钥的实体鉴别) 
	它可以通过文件选择进行维护,回复或被丢失 这种修改只与鉴别规程所属的应用相关

命令特定安全状态 
	近在执行涉及及使用安全报文交换 他CIA存在,这种命令可以保留未变化的其他安全状态

如果逻辑信道概念适用,则特定安全状态可以依赖于逻辑信道

安全属性

当安全属性存在时,它定义了允许的动作以及完成这种动作号执行的规程,安全属性可以与每个文件相关,并且安排为了允许对文件进行操作而应该满足的安全条件,文件的安全属性依赖于
它的种类
在他的文件控制信息中的和/或在其父辈文件的文件控制信息中任选参数
注
	安全状态也可以与其他对象(例如,秘钥)相关

安全机制

本规范部分定义了下列安全机制
使用口令的实体鉴别
卡对从外界接收到的数据同保密的内部数据进行比较,该机制可以用来保护用户的权利
使用秘钥进行实体鉴别
卡对从外界接受到的数据同保密的内部数据进行比较,该机制可以用来保护用户的权利
使用秘钥的实体鉴别
待鉴别的实体必须按照鉴别规程(例如,使用GET CHALLENGE 命令后紧跟着 EXTERNAL AUTHENTICATE 命令 来证明了解的相关秘钥
数据鉴别
使用包的或公开的内部数据,卡校验从外界接收到的冗余数据另一种方法是使用保密的内部数据,啦计算数据元(密码的校验和或者数字签名) 并且将其插入发送给外界的数据中心,该机制可以用来保护提供者的权利
数据加密
使用保密的内部数据,卡解密白数据字段中接收到的密文,另一种方法是,使用秘钥的或公开的内部数据,卡计算密码,并将其插入数据字段中尽可能与其他数据一起进行,该机制可以用来停工保密性服务,例如,用于秘钥管理和有条件的访问,除了密码机制外,数据保密性可以通过数据伪装来获得,再次星狂下,卡计算伪装字符串,并通过异或运算将其加入到外界接受到的的数据字节中,或将其加到发送给外界的数据字节中,该机制可以用来保护秘密,并且减少报文过滤的可能性

见别的结果可以按照应用的要求被登录到内部的EF中

APDU 报文结构

应用协议中的一个步骤由发送命令,接受实体处理它以及发回的相应组成,因此,特定的相应対与特定的命令。称作为命令相应対

应用协议数据单元(APUD)可包含有命令报文或相应报文,他从接口设备发送到卡,或者相反的由卡发送到接口设备

在命令相应対中,命令报文和相应保温都可以包含有数据,于是引起了表4概括的四种情况

表4

情况命令数据期望相应数据
1无数据无数据
2无数据有数据
3有数据无数据
4有数据有数据
命令APUD
如表4.1所示表6 本规范本部分所定义的命令APDU由下列内容组成
	必备的4字节首标(CLA INS P1 P2)
	有条件可变长主体

表4.1

首标主体
CLA INS P1 P2[Lc字段] [数据字段][Le字段]

表6

主体尾标
[数据字段]SW1,SW2
在命令APDU的数据字段中呈现的字节数用Lc来表示
在相应APDU的数据字段中期望的字节最大数用Le(期望数据的长度)来表示,当Le字段只包含0时,则要求有效数据字节的最大数

表4,1按照表4的四种情况示出可命令APDU的四种结构

图4
在这里插入图片描述

情况1
在情况1时,长度为空,因此Lc字段和数据字段都为空,长度Le也为空,因此Le字段为空,从而,主体为空
情况2
在情况2时,长度Lc为空;因此Lc字段和数据字段都为空,长度Le不为空,因此Le字段存在,从而,主体由Le字段组成
情况3
在情况3时,长度Lc不为空,因此 Lc字段存在,并且数据字段由Lc后续字节组成,长度Le为空,因此Le字段为空,从而主体有Le字段后紧跟着数据字段组成
情况4
在情况4是,疮毒L不为空;因此Lc字段存在,并且数据字段由Lc后续字节组成,疮毒Lc也不为空;因此Lc字段也存在,从而主体由Lc字段后紧跟着数据字段和Lc字段组成

命令主体用的解码规定

在情况1下 命令APDU的主体为空,这种命令APDU未运载长度字段
在情况2,3,4时 命令APUD的主体有B1值Bl说标识的L字节组成,如图5所示,这种主体运载了1或者2长度字段B1是第一个疮毒字段的第一个部分

图5

在这里插入图片描述

在卡能力(下面介绍的卡能力)	,在命令APUD内,卡说明了Lc字段和Le字段即可谓短的(1个字节用于每个长度字段)也可为扩充的(B1的值为 00 并且每个长度值都按2个其他字节进行编码)

表5示出了按照表4和图4中定义的四种情况及可能的Lc,Le扩展的命令APUD的解码

表5
在这里插入图片描述

任何其他命令APDU为无效的
Le 用的解码约定

如果Le的值不为全空而按1个或2个字节进行编码,则LE的值等于该字节的值,
他位于 1 到 255 (或 65 535) 的范围内,所有这些位的空值以为这Le的最大值为256(或65 536)
前四种情况适用于所有的卡
情况1 L=0 主体为空
	没有字节用于值为0的Lc
	没有数据字节存在
	没有字节用于值为0的L

情况2S L=1
	没有字节用于值为0的Lc
	没有数据字节存在
	B1 编码值从1至255的Le

情况4s	L=2+(B1),并且(B1) 0
	B1编码了值从1至255的Lc( 0 )
	B2 - BL-1 都是数据字段中的Lc字字节
	B1 编码了从1至256的Le
后三种情况也适用于知识扩充的Lc和Le 下面讲的卡能力有介绍 的卡
情况2E L =3 并且 (B1) = 0
	没有字节用于值为0的Lc
	没有数据字节存在
	Le字段由三个字节组成,其中B2和B3 编码了值从65 536的Le
情况3E 3 +(B2,B3),(B1) = 0  并且(B2 B3) 0
	Lc 字段由前三个字节组成,其中B2和B3编码了值从1 到 65 535的Lc(0)
	B4 至 B1 都是数据字段中Lc字节
	没有字节用于值为0的L
情况4E L = 5 (B2 B3 ), (B1) = 0 并且(B2 B3) 0
	Lc字段由前三个字节组成,其中B2和编码B3编码了值从 65 535 的Lc(0)
	B4 至 BL-2 都是数据字段中Lc的字节
	Le字段由最后两个字节BL-1和Bl组成 他们编码值从1到 65 536 的Le

对弈本规范部分定义的每个传输协议,附属到本部分的最后,规定了前七种情况中的每一种用的运输APDU的命令相应対
  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值