
(质量认证)ISO智能卡中OPGP应用的功能规范.doc
30页ISO智能卡中OpenPGP应用的功能规范版本1.1作者:Achim Pietig作者:Achim PietigPPC Card Systems GmbHSenefelderstr. 1033100 PaderbornGermanyEmail: a.pietig@ppc-card.deachim@This document and translations of it may be copied and furnished to others, andderivative works that comment on or otherwise explain it or assist in its implementationmay be prepared, copied, published and distributed, in whole or in part, withoutrestriction of any kind, provided that the copyright notice and this paragraph areincluded on all such copies and derivative works. However, this document itself maynot be modified in any way, such as by removing the copyright notice or references. 2004 Achim Pietig, PPC Card Systems GmbH, PaderbornPPC Card Systems GmbH and the author do not assume responsibility nor give a guarantee for the correctnessand/or completeness of the features and functions described in this document.PPC Card Systems GmbH and the author are unable to accept any legal responsibility or liabilityfor incorrect and/or incomplete details and their consequences.Furthermore, PPC Card Systems GmbH and the author reserves the right to revise these specifications for technical reasonsand make amendments and/or updates to the same.历史变化:V1.0 到 V1.1l 改变了GENERATE ASYMMETRIC KEY PAIR命令的访问权限,总是使得P1=81(读取公钥)。
l 文献的调整l 具有不同访问权限的私有的新的数据对象这是一个可选特征项,在扩展功能中描述l 描述密钥产生日期/时间的新的数据对象l CHV状态字节(C4)数据对象在GET DATA命令中作为一个对象强制使用目 录1 介绍 61.1 缩写定义 62 要求概要 72.1 本版本的限制 73 目录结构 84 OpenPGP应用中数据对象的目录 94.1 MF和DF中的数据文件和对象 94.1.1 EF_DIR 94.2 OpenPGP的DF 94.2.1 应用标志符(AID) 104.2.2 OpenPGP应用的用户认证 114.3 数据对象(DO) 114.3.1 GET DATA的数据对象 124.3.2 PUT DATA的数据对象 144.3.3 数据对象详述 154.3.3.1 私有用法 154.3.3.2 名称 164.3.3.3 语言 164.3.3.4 性别 164.3.3.5 扩展性能 164.3.3.6 算法属性 164.3.3.7 私钥模 164.3.4 数据对象的长度域 165 安全架构 176 历史字节(ATR) 186.1 卡片性能 197 命令 197.1 ISO标准命令的使用 197.2 命令详述 217.2.1 SELECT FILE命令 217.2.2 VERIFY命令 217.2.3 CHANGE REFERENCE DATA命令 217.2.4 RESET RETRY COUNTER命令 217.2.5 GET DATA命令 217.2.6 PUT DATA命令 217.2.7 GET RESPONSE命令 217.2.8 PSO: COMPUTE DIGITAL SIGNATURE命令 217.2.9 PSO:DECIPHER命令 217.2.10 INTERNAL AUTHENTICATE命令 217.2.11 GENERAL ASYMMETRIC KEY PAIR命令 217.2.12 GET CHALLENGE命令 217.3 不同IO协议下的命令用法 217.4 类型字节定义 227.5 安全消息 227.6 逻辑通道 227.7 状态字节 228 文献 239 流程图 239.1 使用短Lc/Le开启卡片应用。
249.2 使用扩展Lc/Le开启卡片应用 269.3 计算数字签名 279.4 消息解密 289.5 私钥生成 29 1 介绍这篇功能规范描述了ISO智能卡操作系统中的OpenPGP应用的功能,还有他定义卡和终端接口时所遵循的原则本文中主要为OpenPGP软件与以PC/SC为基础的标准读卡器之间的接口问题解决方案主要关心如下内容:l 国际标准的使用l 避免与其他专利冲突l GNU公用证书下的软件的免费使用l 与描述智能卡操作系统无关l 将来增加功能时的便捷性l 通用性因为这篇规范并不涉及以下内容:描述卡片的所有命令和数据文件,卡片提供的安全功能,涉及多个应用的功能特征,例如协议,也不描述卡片的通用电气机械特征特别地,本规范详细描述了与应用相关的数据对象和他们各自的内容格式应用数据的内容只有在其表现出不变因素的时候才会被描述除了特别指定,文章中的编码值都是十六进制格式的1.1 缩写定义AC 访问条件AID 应用标志符ATR 重启的应答AUT 认证BCD 二进制编码的十进制数据CHV 持卡人验证CLA 类别字节DEC 解密的密文dec. 十进制DF 专用文件DO 数据对象DSA 数据签名算法ECC 椭圆曲线加密FCP 文件控制参数INS 指示字节MF 主控文件OS 操作系统PK 公钥RFU 留作后用RSA 一种公钥算法由三个发明人的姓名的首字母组成SE 安全环境SIG 签名URL 统一资源定位符UTF-8 UCS转化格式8(兼容US-ASCII七位编码)2 要求概要OpenPGP应用的设计目标是能够在几个兼容ISO的智能卡操作系统中运行。
因此OpenPGP能够在几种不同制造商的芯片上运行实现过程中,下述的所有需求必须完全满足卡片:l 完全支持7816-3的ATR指令n OpenPGP评估了卡片兼容性的历史特征l 至少支持ISO 7816-3 T=1 或者T=0中的一种传输协议n 最好是T=1(支持链和扩展Lc/Le)l 卡片必须支持不同的传输协议n ATR可能指示不同的传输协议(比如T=0 和T=1)n 不同的协议应该支持PPS选择l 根据ISO7816-3(Fi/Di),高速模式是必须的(达到芯片所能达到的最大值)n 卡片应该在卡片性能中明示这个特征n 如果不支持扩展Lc/Le,那么卡片应该支持命令链 或者 用GET RESPONSE命令响应大数据对象读卡器:l 应该支持PC/SC驱动n PC/SC应该能够在好几种平台上使用(比如:win32,Linux,Macintosh)l 应该支持T=1 和T=0l 应该支持高速协议(PPS)l 应该支持扩展Le/Lc2.1 本版本的限制本版本的卡中OpenPGP应用和终端OpenPGP应用有一些限制主要原因是实际中的卡和读卡器(有PC/SC)不能满足所有的要求终端:l 可能不支持扩展的Lc/Le(尽管卡支持扩展Lc/Le也只能使用短的Lc/Le)l 可能不支持ECC和DSA(所用的功能只使用RSA算法)卡:l 可能不支持高速协议(这种情况下,终端默认为ISO标准值)l 可能不支持扩展的Lc/Lel 卡片应该支持RSA(最低1024位)PCSCl 可能不支持高速协议(这种情况下,终端默认为ISO标准值)l 可能不支持扩展的Lc/Le3 目录结构下图给出了与OpenPGP应用相关的目录和数据对象的一个概览。
安全相关的数据(例如:密码CHV)会根据使用的OS而被存储(文件,数据对象或者其他)4 OpenPGP应用中数据对象的目录DF_OpenPGP目录和数据对象组成了OpenPGP应用卡片中的专用文件(DF)还可能存在着其他应用.4.1 MF和DF中的数据文件和对象OpenPGP应用可能会使用全局CHV(持卡人验证)这些数据可能会被存放在主控文件中(MF),也可能在其他专用文件中(DF)或者当前OS的特殊路径中另外,所有应用和特殊密钥的全局信息也可能被存放在MF中4.1.1 EF_DIR这个MF(文件标志符:’2F00’)中的文件如果存在的话,可能包含一个或多个iso/iec7816-4中的应用模板和应用标志符虽然OpenPGP应用并不请求和计算这个数据文件,但是可能会被第三方用来声明应用他也被那些不支持用AID 运行SELECT FILE命令的卡所用下列的入口应该被添加进来:l 应用标志符(tag ‘4F’),应该只使有具有意义的值(6字节=D27600012401)l 应用标签名(tag ‘50’),应用的标签名应该包含如下的UTF-8编码的文字:OpenPGP4.2 OpenPGP的DFOpenPGP的应用目录可以在卡中的任意地方存放。
没有固定的文件标志符(FID),因此在任何情况下它都很容易为应用所合并如果需要FID的话,可以由卡片生产商或者其他任何机构所指定目录中包含应用的所有数据对象所有给定的FCP(文件控制参数)都是实现的信息参数,在响应SELECTFILE命令的时候可以选择使用终端中的OpenPGP应用不会计算FCP的TagOpenPGP应用使用GET DATA命令在与应用相关数据(Tag 6E)中寻找到AID(Tag 4F的数据对象)DF_OpenPGP中可能存在的文件控制参数(。












