ISO智能卡中OpenPGP应用的功能规范文档格式.docx
- 文档编号:20815385
- 上传时间:2023-01-25
- 格式:DOCX
- 页数:25
- 大小:751.85KB
ISO智能卡中OpenPGP应用的功能规范文档格式.docx
《ISO智能卡中OpenPGP应用的功能规范文档格式.docx》由会员分享,可在线阅读,更多相关《ISO智能卡中OpenPGP应用的功能规范文档格式.docx(25页珍藏版)》请在冰豆网上搜索。
这篇功能规范描述了ISO智能卡操作系统中的OpenPGP应用的功能,还有他定义卡和终端接口时所遵循的原则。
本文中要紧为OpenPGP软件与以PC/SC为基础的标准读卡器之间的接口咨询题。
解决方案要紧关怀如下内容:
国际标准的使用
幸免与其他专利冲突
GNU公用证书下的软件的免费使用
与描述智能卡操作系统无关
今后增加功能时的便利性
通用性
因为这篇规范并不涉及以下内容:
描述卡片的所有命令和数据文件,卡片提供的安全功能,涉及多个应用的功能特点,例如协议,也不描述卡片的通用电气机械特点。
专门地,本规范详细描述了与应用有关的数据对象和他们各自的内容格式。
应用数据的内容只有在其表现出不变因素的时候才会被描述。
除了专门指定,文章中的编码值差不多上十六进制格式的。
缩写定义
AC访咨询条件
AID应用标志符
ATR重启的应答
AUT认证
BCD二进制编码的十进制数据
CHV持卡人验证
CLA类别字节
DEC解密的密文
dec.十进制
DF专用文件
DO数据对象
DSA数据签名算法
ECC椭圆曲线加密
FCP文件操纵参数
INS指示字节
MF主控文件
OS操作系统
PK公钥
RFU留作后用
RSA一种公钥算法由三个发明人的姓名的首字母组成
SE安全环境
SIG签名
URL统一资源定位符
UTF-8UCS转化格式8(兼容US-ASCII七位编码)
要求概要
OpenPGP应用的设计目标是能够在几个兼容ISO的智能卡操作系统中运行。
因此OpenPGP能够在几种不同制造商的芯片上运行。
实现过程中,下述的所有需求必须完全满足。
卡片:
完全支持7816-3的ATR指令
OpenPGP评估了卡片兼容性的历史特点
至少支持ISO7816-3T=1或者T=0中的一种传输协议
最好是T=1(支持链和扩展Lc/Le)
卡片必须支持不同的传输协议
ATR可能指示不同的传输协议(例如T=0和T=1)
不同的协议应该支持PPS选择
按照ISO7816-3(Fi/Di),高速模式是必须的(达到芯片所能达到的最大值)
卡片应该在卡片性能中明示那个特点
如果不支持扩展Lc/Le,那么卡片应该支持命令链或者用GETRESPONSE命令响应大数据对象。
读卡器:
应该支持PC/SC驱动
PC/SC应该能够在好几种平台上使用(例如:
win32,Linux,Macintosh)
应该支持T=1和T=0
应该支持高速协议(PPS)
应该支持扩展Le/Lc
本版本的限制
本版本的卡中OpenPGP应用和终端OpenPGP应用有一些限制。
要紧缘故是实际中的卡和读卡器(有PC/SC)不能满足所有的要求
终端:
可能不支持扩展的Lc/Le(尽管卡支持扩展Lc/Le也只能使用短的Lc/Le)
可能不支持ECC和DSA(所用的功能只使用RSA算法)
卡:
可能不支持高速协议(这种情形下,终端默认为ISO标准值)
可能不支持扩展的Lc/Le
卡片应该支持RSA(最低1024位)
PCSC
名目结构
下图给出了与OpenPGP应用有关的名目和数据对象的一个概览。
安全有关的数据(例如:
密码。
CHV)会按照使用的OS而被储备(文件,数据对象或者其他)
OpenPGP应用中数据对象的名目
DF_OpenPGP名目和数据对象组成了OpenPGP应用。
卡片中的专用文件(DF)还可能存在着其他应用.
MF和DF中的数据文件和对象
OpenPGP应用可能会使用全局CHV(持卡人验证)。
这些数据可能会被存放在主控文件中(MF),也可能在其他专用文件中(DF)或者当前OS的专门路径中。
另外,所有应用和专门密钥的全局信息也可能被存放在MF中
EF_DIR
那个MF(文件标志符:
’2F00’)中的文件如果存在的话,可能包含一个或多个iso/iec7816-4中的应用模板和应用标志符。
尽管OpenPGP应用并不要求和运算那个数据文件,然而可能会被第三方用来声明应用。
他也被那些不支持用AID运行SELECTFILE命令的卡所用。
下列的入口应该被添加进来:
应用标志符(tag‘4F’),应该只使有具有意义的值(6字节=D27600012401)
应用标签名(tag‘50’),应用的标签名应该包含如下的UTF-8编码的文字:
OpenPGP
OpenPGP的DF
OpenPGP的应用名目能够在卡中的任意地点存放。
没有固定的文件标志符(FID),因此在任何情形下它都专门容易为应用所合并。
如果需要FID的话,能够由卡片生产商或者其他任何机构所指定。
名目中包含应用的所有数据对象。
所有给定的FCP(文件操纵参数)差不多上实现的信息参数,在响应SELECT
FILE命令的时候能够选择使用。
终端中的OpenPGP应用可不能运算FCP的Tag。
OpenPGP应用使用GETDATA命令在与应用有关数据(Tag6E)中查找到AID(Tag4F的数据对象)。
DF_OpenPGP中可能存在的文件操纵参数(FCP)
应用标志符(AID)
能够使用唯独应用标志符来选择OpenPGP应用(参见SELECTFILE命令)。
AID有16字节长,使用下面的方法进行编码。
卡中的每一个AID差不多上唯独的,同时要求那个值被整合到证书中去,例如用来进行客户端/服务器验证的证书。
OpenPGP的AID在FSFEuropee.V中注册
RID应用注册提供者的标志符(OpenPGP的唯独标志符),ISO7816-5
PIX所有权应用标注符扩展(为OpenPGP应用定义)
Applicetion应用指示位
Version应用的版本号
Manufacturer应用(卡片)制造商的唯独编码
SerialNumber唯独序列号
RFU保留位
Application:
那个值(1字节)指示应用。
今后,在FSFEuropee.V.的操纵之下能够被设计用来指示不同的应用。
下列的值差不多被定义
保留
OpenPGP应用(标准)
0F保留
Version:
版本号(2字节,BCD)给出了当前应用的状态信息。
通过那个值能够通知进行更新。
版本号定义如下
字节1字节2
主版本号次版本号(取值范畴:
00-99)
举例:
1.0被编码成0100
2.10201
11.71107
Manufacturer:
为了在开放网络中(例如密钥服务器)标识卡片和登陆一台电脑,就必须要有一个应用号。
因为上述缘故,每一个制造卡片的卡片制造商或者部署应用的个人化操作者都必须有一个唯独的标记。
那个制造商标志符由FSFEuropee.V.操纵,并免费分发给卡片制造商。
只有注册了的制造商才承诺生产与OpenPGP兼容的应用。
系统运行方式类似网络上的物理地址码(MAC)。
2个字节采纳二进制编码,0000和FFFF被保留用来测试。
Serialnumber:
制造商治理下的每一个OpenPGP应用都有一个唯独序列号。
制造商应该保证现实世界中没有两个重复的序列号(如同网络中的物理地址码一样)。
序列号有4个字节的长度,采纳MSB——LSB的格式(高有效位,低有效位)。
关于制造商来讲,第一个应用从00000001开始并自动增加
OpenPGP应用的用户认证
OpenPGP使用3个本地密码来验证使用者,称之为持卡人验证(CHV1,CHV2最低要求6个字符,CHV3最低要求8个字符)。
CHV的格式是UTF8(大小写敏锐)。
卡片所能支持的每一个CHV最大长度被称之为CHV最大长度数据对象。
只有有关的字节被CHV命令使用,没有填充和扩充。
CHV的储备取决于当前的OS。
能够使用全局CHV,然而必须将其映射为应用本地的CHV。
CHV1是命令PSO:
CDS的访咨询条件。
CHV2是下列命令的访咨询条件:
PSO:
DEC,INT-AUT,GETDATA,PUT。
CHV3是下列命令的访咨询条件:
RESETRETRYCOUNTER,PUTDATA,GENERATEASYMMETRICKEYPAIR(密钥生成)。
所有CHV的错误计数器被初始化为3。
在正确验证了CHV后,错误计数器能够被GETDATA命令读取。
除非进行卡片重启,或者选择不同的DF,或者专门指令的内部重启,否则相应CHV的访咨询状态会一直有效。
如果卡片未被个人化,或者没有设置CHV。
那么CHV的默认的值如下:
CHV1和CHV2=“123456”(6字节,313233343536);
CHV3=“12345678”(8字节,3132333435363738)。
强烈要求持卡人更换这些值。
因为关于使用者来讲,CHV1和CHV2的使用比较类似,直到终端应用同步这些值。
数据对象(DO)
为了与终端的接口比较简单,为了使OpenPGP应用与其它操作系统的交互比较方便,所有与应用有关的数据元素差不多上采纳数据对象的形式进行储备的。
终端能够仅仅使用SELECTFILE,GETDATA,PUTDATA和加密命令即能够与应用进行交互运行。
改变任何的文件标志符,短文件标志符,文件类型或者文件结构关于终端接口都没有阻碍。
DO使用ISO规定的(例如7816-6)TLV格式进行储备。
GETDATA的数据对象
GETDATA应该支持下列表格中的数据对象。
至少应该能够在OpenPGP的EF中访咨询他们。
所有的数据对象差不多上共享的也能够被其它应用所使用。
简单数据对象在GETDATA命令下仅仅返回值。
结构数据对象还要返回他的标签和长度。
在结构数据对象中可能会有附加的数据对象,然而终端的OpenPGP应用并不运算他的值。
使用GETDAT命令时,相连的数据对象可能会被看作一个对象。
OpenPGP只使用一般数据对象。
结构数据对象中的数据次序可能会有所变化
PUTDATA的数据对象
PUTDATA命令支持下列数据对象。
数据对象详述
下面的章节详细描述了一些对象,专门是私有对象。
(具体对象需要时再翻译)
私有用法
这些可选的数据对象能够作为持卡人,治理员或者其他程序作为私有数据而使用(例如口令列表)。
这些数据对象间的不同之处是他们的访咨询条件。
这些数据对象的使用与否会在扩展性能项里被告知。
名称
那个数据元素能够由39个字节组成,每一个字符是iso8859-1(拉丁1)中的字母(与编码值小于80的US-ASCII中7位编码的字符一样)。
数据元素由姓和名组成,每一项之间用分隔符‘<
’隔开(3C),姓和名之间用’<
<
’分隔开
语言
那个数据元素由1-4个双字节组成(例如2字节或6字节),按照iso639编码,ASCII小写字母。
(例如:
de=德语,en=英语,nl=荷兰语,fr=法语)。
至少有一个条目(2字节),第一个条目具有最高优先使用权。
那个信息能够被终端用来与做用户的接口(例如文字的语言类别)
性别
按照iso5218那个数据元素有一个字节,表示一个人的性别.下面的值在OpenPGP中被定义:
男性31
女性32
未知39
终端能够使用这些信息
扩展性能
卡片利用那个表格向终端明示了自己的附加特点。
如果位值被设置为1,则表示此功能可用,如果为0则表示此功能不可用。
所有位能够同时设置。
扩展性能的编码:
算法属性
那个数据对象指示了卡片所支持的算法。
终端在使用密钥导入功能的时候应该会用到那个信息。
卡片生成密钥的时候会使用这些格式,这些格式与有关命令的输出格式也有关。
RSA:
本版本只定义了RSA算法的内容。
私钥模
如果卡片支持密钥导入(参见扩展性能),相应私钥中的每一信息段将会按照如下方法编码。
只使用强制值(需要的话)。
函数并不管密钥在卡内是如何储备的。
我们假设卡片具有按照输入产生内在值(例如,使用RSA产生余数定理部分)的功能。
函数可不能设置相应的指纹值。
本版本只定义RSA密钥的输入,同时数据对象的输入顺序是固定的
这些数据对象的长度必须符合其算法属性中给定的长度(C1-C3),例如,如果模数N的长度是1024位,那么P和Q则固定的差不多上512位。
数据对象的长度域
按照ISO7816-4,TLV结构中的长度域具有如下的格式:
安全架构
所有的命令和数据都在COS的安全操纵之下。
ISO为了安全的目的定义了安全机制,属性(例如FCP)和环境。
因为那个特点专门复杂同时卡和卡之间还不一样,因此OpenPGP并不运算与卡安全有关的对象。
因此本章节仅仅是定义所有命令和数据访咨询条件的一样性做法,以供开发者参考。
描述的安全特点是卡片必须要有的,然而编码和实现的方法取决于卡片开发者,卡片制造者或者个人化者。
私有密钥和口令不能被任何命令和函数读出到卡外。
命令和数据的访咨询条件必须在全部满足时方可访咨询。
下面的表格描述了OpenPGP应用所有的访咨询条件。
关于所有操作系统的函数和命令来讲,READ是一样的,其作用是将数据读取出来。
WRITE也类似,其作用是改变芯片储备其中的数据。
在处理结构化的数据对象时,其中的每一个子对象的访咨询条件都必须得到满足。
有关命令的访咨询条件:
数据对象的访咨询条件:
历史字节(ATR)
在接收到卡片的ATR(重置响应)后,格式字节(T0)按照iso7816-3将历史字节放置在字节的1-4位上。
关于OpenPGP应用来讲相当于放置了一个与卡片性能有关的数据对象。
能够在iso7816-4的历史字节编码中找到
第一个历史字节是一个类别指示字节。
如果类别指示字节被设备为00,10或者80,则遵从ISO的格式。
其它的任何值指示使用私有格式
如果第一个历史字节被设置为00,那么剩下的历史字节由可选的COMPACT-TLV数据对象组成,同时在其后面还跟有状态指示符(最后的3个字节,不在TLV中)
如果第一个历史字节被设置为80,那么剩下的历史字节由可选的COMPACT-TLV数据对象组成,最后一个数据对象可能包含一个1字节,或者2字节,或者3字节的状态指示符。
如果类别指示符被设置为10,那么后续字符为DIR参考数据。
参考数据之后为COMPACT-TLV格式字节
COMPACT-TLV格式用其第一个字节的5-8位表示一个标签(tag),用1-4位表示长度。
在OpenPGP应用中只有TL是73才是与OpenPGP有关的。
它表示一个卡片性能的数据对象,有3个字节的长度
卡片性能
按照iso7816-4那个数据元素由3个软件功能表组成(1字节1个功能表)。
第一个软件功能表指示了卡片所支持的选择方法。
第二个软件功能表是数据编码字节,第三个软件功能表指示了是否支持下列功能:
链命令,扩展Lc/Le域,逻辑通道。
当某一位被设置为1时,表示功能可用(除非专门指定),设置为0表示功能不可用。
位的设置能够同时进行。
关于OpenPGP来讲,只有第三个功能表与应用有关(本版本中链接功能可不能被采纳)。
命令链,长度域和逻辑通道(第三字节)
命令
OpenPGP应用的功能是按照iso7816-4和iso7816-8的功能来建立的。
因此外部能够使用标准OS命令与其交互。
这取决于当前的OS和命令编码的格式。
ISO标准命令的使用
下面的表格描述了符合ISO标准的操作系统的标准命令,这些命令被OpenPGP所使用。
尽管只有给出的命令包含字节(P1/P2)应该被实现,然而卡片也能够提供其他函数。
其他附加的命令不在本规范的范畴之内
命令详述
SELECTFILE命令
VERIFY命令
CHANGEREFERENCEDATA命令
RESETRETRYCOUNTER命令
GETDATA命令
PUTDATA命令
GETRESPONSE命令
COMPUTEDIGITALSIGNATURE命令
DECIPHER命令
INTERNALAUTHENTICATE命令
GENERALASYMMETRICKEYPAIR命令
GETCHALLENGE命令
不同IO协议下的命令用法
OpenPGP应用使用T=1协议作为标准协议。
其他卡内的协议也能够使用。
OpenPGP能够在任何协议下运行,只要读卡器的PC/SC驱动支持协议。
类型字节定义
关于OpenPGP来讲,所有的命令均使用按照ISO编码的CLA。
CLA为00,其意思为:
标准命令中没有安全信息(SM)的CLA(命令链中最后或者仅有的命令)
安全消息
本版本的OpenPGP没有采纳安全消息
逻辑通道
本版本的OpenPGP没有使用逻辑通道。
所有命令使用通道号为0的通道
状态字节
接收到命令之后,芯片返回两个状态字节(返回码)。
对卡来讲iso7816-4的所有编码都可用,或者也能够自己指定内容。
下面的表格列出了状态字的可能编码(部分)
文献
DIN(2000):
DINV66291-1(Prenorm):
Chipcardswithdigitalsignatureapplication/function
accordingtoSigGandSigV,Part1:
ApplicationInterface,Version1.0
ISO/IEC(2004):
ISO/IECCD7816-3,Identificationcards-Integratedcircuit(s)cardswithcontacts
-Part3:
Electronicsignalsandtransmissionprotocols
ISO/IECFDIS7816-4,Informationtechnology-Identificationcards–Integratedcircuit(s)cardswithcontacts-Part4:
Inter-industrycommandsforinterchange
ISO/IECDIS7816-6,Identificationcards-Integratedcircuit(s)cardswithcontacts
-Part6:
Interindustrydataelementsforinterchange
ISO/IECDIS7816-8,Identificationcards-Integratedcircuit(s)cardswithcontacts,Part8:
Interindustrycommandsforacryptographictoolbox
RSALaboratories(2002):
PKCS#1v2.1:
RSAEncryptionStandard
GermanOfficeIdentityCard,(ElektronischerDienstausweis),Version1.0
TheInternetSociety(1998):
RFC2440:
OpenPGPMessageFormat
流程图
通信的概要图描述了OpenPGP的可能的用法。
只描述了少数的几个功能,还有其他的几个附加功能可使用。
原则上来讲,讲解的应用次序与本规范中的描述的应用结构相习惯。
应用顺序的实现是建立在操作系统提供给卡的全局命令之上的,同时考虑了安全结构。
因为注意到次序咨询题,因此仅有那些与卡和终端接口有关的应用数据被考虑到。
为了明了性,返回码,头信息和错误事件没有被描述。
概要图的要紧目的是使得对应用的要紧机制更明确,使得对本规范的懂得更容易。
并不是终端程序实现的唯独基础参考。
在考虑到应用的安全性方针的时候,下述概要图都要做修改。
使用
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- ISO 智能卡 OpenPGP 应用 功能 规范