为了正常的体验网站,请在浏览器设置里面开启Javascript功能!

中国金融集成电路(IC)卡借记贷记规范v2.0-安全部分

2011-10-27 50页 doc 604KB 27阅读

用户头像

is_493997

暂无简介

举报
中国金融集成电路(IC)卡借记贷记规范v2.0-安全部分中国金融集成电路(IC)卡借记/贷记规范 中国金融集成电路(IC)卡 借记/贷记规范 第四部分:安全规范 中国金融集成电路(IC)卡标准修订工作组 二零零四年九月 目 次 TOC \o "1-3" \h \z 1. 引言 1 2. 范围 1 3. 参考资料 1 4. 定义 1 5. 缩略语和符号 4 6. 脱机数据认证 6 6.1 密钥和证书 7 6.1.1 认证中心 7 6.1.2 公开密钥对 7 6.2 静态数据认证(SDA) 8 6.2.1 密钥和证书 11 6.2.2 认证中心公钥获取 13 6.2.3 发卡行公钥获取...
中国金融集成电路(IC)卡借记贷记规范v2.0-安全部分
中国金融集成电路(IC)卡借记/贷记 中国金融集成电路(IC)卡 借记/贷记规范 第四部分:安全规范 中国金融集成电路(IC)卡修订工作组 二零零四年九月 目 次 TOC \o "1-3" \h \z 1. 引言 1 2. 范围 1 3. 参考资料 1 4. 定义 1 5. 缩略语和符号 4 6. 脱机数据认证 6 6.1 密钥和证 7 6.1.1 认证中心 7 6.1.2 公开密钥对 7 6.2 静态数据认证(SDA) 8 6.2.1 密钥和证书 11 6.2.2 认证中心公钥获取 13 6.2.3 发卡行公钥获取 13 6.2.4 签名的静态应用数据验证 14 6.3 动态数据认证(DDA) 15 6.3.1 密钥和证书 18 6.3.2 认证中心公钥的获取 20 6.3.3 发卡行公钥的获取 20 6.3.4 IC卡公钥的获取 22 6.3.5 标准动态数据认证 23 6.3.6 复合动态数据认证/应用密文生成(CDA) 25 7. 应用密文和发卡行认证 30 7.1 应用密文产生 30 7.1.1 数据源选择 30 7.1.2 应用密文算法 31 7.2 发卡行认证 31 7.3 密钥管理 31 8. 安全报文 31 8.1 报文格式 32 8.2 报文完整性及其验证 32 8.2.1 命令数据域 32 8.2.2 MAC过程密钥分散 32 8.2.3 MAC的计算 32 8.3 报文私密性 32 8.3.1 命令数据域 32 8.3.2 加密过程密钥分散 33 8.3.3 加密解密 33 8.4 密钥管理 33 9. 卡片安全 33 9.1 共存应用 33 9.2 密钥的独立性 33 9.3 卡片内部安全体系 33 9.3.1 卡片内部安全目标 33 9.3.2 卡片内部安全概述 33 9.3.3 文件控制信息 34 9.3.4 文件控制参数 36 9.3.5 IC卡本地数据建议访问条件 37 9.4 卡片中密钥的种类 37 10. 终端安全 38 10.1 终端数据安全性要求 38 10.1.1 一般要求 38 10.1.2 安全模块的物理安全要求 39 10.1.3 安全模块的逻辑安全要求 39 10.2 终端设备安全性要求 39 10.2.1 防入侵设备 39 10.2.2 PINPAD安全性 40 10.3 终端密钥管理要求 41 10.3.1 终端密钥种类 41 10.3.2 认证中心公钥管理 42 11. 密钥管理体系 43 11.1 认证中心公钥管理 43 11.1.1 认证中心公钥生命周期 44 11.1.2 认证中心公钥对泄漏 46 11.1.3 认证中心密钥管理策略 47 11.2 发卡行公钥管理 49 11.3 发卡行对称密钥管理 50 11.3.1 安全性要求 50 11.3.2 功能性要求 50 12. 安全机制 51 12.1 对称加密机制 51 12.1.1 加密解密 51 12.1.2 报文认证码 53 12.1.3 过程密钥分散 54 12.1.4 子密钥分散 56 12.2 非对称加密机制 57 12.2.1 用于报文恢复的数字签名方案 57 13. 认可的算法 58 13.1 对称加密算法 58 13.1.1 DES 58 13.1.2 SSF33 58 13.2 非对称加密算法 58 13.2.1 RSA 58 13.3 哈希算法 60 13.3.1 SHA-1 60 图 表 TOC \h \z \c "图表" 图表 6‑1:SDA证书和公钥体系结构 10 图表 6‑2:DDA证书和公钥体系结构 18 图表 11‑1:认证中心公钥的分发 45 图表 11‑2:发卡行公钥的分发 46 图表 12‑1单长度过程密钥的产生 55 图表 12‑2128位分组加密算法过程密钥的产生 56 表 格 TOC \h \z \c "表格" 表格 6‑1:SDA和DDA的比较 6 表格 6‑2:SDA,DDA和CDA处理优先级 7 表格 6‑3:由认证中心签名的发卡行公钥数据(即哈希算法的输入) 11 表格 6‑4:由发卡行签名的静态应用数据(即哈希算法的输入) 12 表格 6‑5:静态数据认证用到的数据对象 12 表格 6‑6 从发卡行公钥证书恢复数据的格式 13 表格 6‑7:从签名的静态应用数据恢复数据的格式 14 表格 6‑8:由认证中心签名的发卡行公钥数据(即哈希算法的输入) 18 表格 6‑9:由发卡行签名的IC卡公钥数据(即哈希算法的输入) 19 表格 6‑10:动态认证中的公钥认证所需的数据对象 20 表格 6‑11:从发卡行公钥证书恢复数据的格式 20 表格 6‑12:从IC卡公钥证书恢复数据的格式 22 表格 6‑13:需签名的动态应用数据(即哈希算法的输入) 23 表格 6‑14:生成和检验动态签名所需要的其它数据对象 24 表格 6‑15:从签名的动态应用数据恢复的数据格式 24 表格 6‑16:需签名的动态应用数据(即哈希算法的输入) 26 表格 6‑17:IC卡动态数据的 26 表格 6‑18:在CDA中GENERATE AC命令返回的数据对象 27 表格 6‑19:生成AAC时GENERATE AC命令返回的数据对象 27 表格 6‑20:发卡行应用数据 27 表格 6‑21:从签名动态应用数据恢复的数据的格式 28 表格 7‑1:建议的应用密文生成中使用的最小数据集 30 表格 7‑2:可选的应用密文生成数据源 31 表格 8‑1:以完整性和认证为目的的安全报文的命令数据域格式 32 表格 8‑2:以私密性为目的的安全报文的命令数据域格式 32 表格 9‑1:基本文件的访问条件 36 表格 9‑2:卡片上保存的密钥种类 37 表格 10‑1:终端内部保存的密钥种类 41 表格 10‑2:存储在终端中的认证中心公钥相关数据元的最小集 42 表格 11‑1:管理的对称密钥类型 50 表格 13‑1:SSF33同DES的比较 58 表格 13‑2:对模长字节数的强制上限 59 1.​ 引言 本规范包含了中国金融集成电路(IC)卡借记贷记应用安全功能方面的要求,包括:IC卡脱机数据认证方法,IC卡和发卡行之间的通讯安全,以及相关的对称及非对称密钥的管理。 本文包括以下具体内容: ​ 脱机数据认证 ​ 应用密文和发卡行认证 ​ 安全报文 ​ 卡片安全 ​ 终端安全 ​ 对称和非对称密钥管理体系 此外,本文还包括了为实现这些安全功能所涉及的安全机制和获准使用的加密算法的规范。 2.​ 范围 《中国金融集成电路(IC)卡借记/贷记应用安全规范》适用于由银行发行或受理的金融借记/贷记IC卡应用与安全有关的设备、卡片、终端机具及管理等。其使用对象主要是与金融借记贷记IC卡应用相关的卡片、终端及加密设备等的设计、制造、管理、发行以及应用系统的研制、开发、集成和维护等部门(单位)。 3.​ 参考资料 EMV规范文档 ​ EMV 2000 Integrated Circuit Card Specification for Payment Systems,Version 4.0, Book 2, Security and Key Management VIS规范文档 ​ VISA Integrated Circuit Card Application Overview , Version 1.4.0 ​ VISA Integrated Circuit Card Card Specification , Version 1.4.0 ​ VISA Integrated Circuit Card Terminal Specification , Version 1.4.0 中国集成电路(IC)卡文件 ​ 《中国金融集成电路(IC)卡规范》第1部分:卡片规范 (V1.0) ​ 《中国金融集成电路(IC)卡规范》第2部分:应用规范 (V1.0) ​ 《中国金融集成电路(IC)卡规范》第3部分:终端规范 (V1.0) 4.​ 定义 以下的术语用于本规范: 提前回收 - 在已公布的密钥失效日期到期前回收密钥。 应用 - 包括终端和卡片之间的应用协议及其相关的数据集合。 非对称加密技术 - 采用两种相关变换的加密技术:公开变换(由公钥定义)和私有变换(由私钥定义)。这两种变换存在这样一种特性:在获得公开变换的情况下是不能够通过计算得出私有变换的。 认证 – 确认一个实体所宣称的身份的。 字节 – 8个二进制位。 卡片 – 支付系统中定义的支付卡片。 证书 – 由发行证书的认证中心使用其私钥对实体的公钥,身份信息以及其它相关信息进行签名,形成的不可伪造的数据。 证书回收 – 由发行证书的实体废除一个有效证书的过程。 认证中心 –证明公钥和其它相关信息同其拥有者相关联的可信的第三方机构。 密文 – 加密的信息。 命令 – 终端向IC卡发出的一个操作并要求返回应答的报文。 泄露 – 机密或安全被破坏。 串联 – 通过把第二个元素的字节添加到第一个元素的结尾将两个元素连接起来。每个元素中的字节在结果串中的顺序和原来从IC卡发到终端时的顺序相同,即,高位字节在前。在每个字节中比特按由高到低的顺序排列。一组元素或对象可以按下面的方式连接:将第一对元素连接成新的元素,把它作为第一个元素再连接下一个元素,以此类推。 加密算法 – 为了隐藏或显现数据信息内容的变换算法。 密钥有效期 – 某个特定的密钥被授权可以使用的时间段,或者某个密钥在给定的系统中有效的时间段。 数据完整性 – 数据没有被以未授权的方式改变或者破坏的特性。 解密 – 对应加密过程的逆操作。 数字签名 – 对数据的一种非对称加密变换。该变换可以使数据接收方确认数据的来源和完整性,保护数据发送方发出和接收方收到的数据不被第三方篡改,也保护数据发送方发出的数据不被接收方篡改。 加密 – 基于某种加密算法对数据作可逆的变换从而生成密文的过程。 金融交易 – 在持卡人和商户或收单行之间发生的通过支付来换取货物或服务的行为。 哈希函数 – 将一个位串映射成固定长度的位串的函数,它满足以下两个特性: ​ 给定一个输出,不可能通过计算得到与该输出对应的输入; ​ 给定一个输入,不可能通过计算得到具有相同的输出的另一个输入。 另外,如果哈希函数要求防冲突,它还必须满足以下特性: ​ 不可能通过计算找到两个不同的输入具有相同的输出。 哈希结果 – 哈希函数输出的位串。 集成电路 – 被设计用来完成处理和/或存储功能的电子器件。 集成电路卡 – 内部封装一个或多个集成电路,来完成处理和存储功能的卡片。 接口设备 – 终端上插入IC卡的部分,包括诸如机械和电气等相关设备。 密钥 – 加密转换中控制操作的一组符号。 密钥失效日期 - 用特定密钥产生的签名不再有效的最后期限。用此密钥签名的发卡行证书必须在此日期或此日期之前失效。在此日期后,此密钥可以从终端删除。 密钥导入 –产生、分发和开始使用密钥对的过程。 密钥生命周期 – 密钥管理的所有阶段,包括计划、生成、回收、销毁和存档。 密钥更换 – 回收一个密钥,同时导入一个密钥来代替它。 密钥回收 – 回收使用中的密钥以及处理其使用后的遗留问题的密钥管理过程。密钥回收可以按计划回收或提前回收。 密钥回收日期 – 在此日期后,任何仍在使用的合法卡不会包含用此密钥签名的证书。因此,密钥可以从终端上被删除。对按计划的密钥回收,密钥回收日期应等同于密钥失效日期。 密钥撤回 – 作为密钥回收的一部分,将密钥从服务中删除的过程。 逻辑泄露 – 由于密码分析技术和/或计算能力的提高,对密钥造成的泄露。 报文 - 由终端发送给卡片(或反之)的一串字节,不包括传输控制字符。 报文认证码 – 对数据的一种对称加密变换,为保护数据发送方发出和接收方收到的数据不被第三方伪造。 填充 – 向数据串某一边添加附加位。 密码键盘 – 用于输入个人密码的一组数字和命令按键。 明文 – 未加密的信息。 物理泄露 – 由于没有安全的保护,或者硬件安全模块的被盗或被未经授权的人存取等事实对密钥造成的泄露。 计划回收 – 按照公布的密钥失效日期进行的密钥回收。 潜在泄露 – 密码分析技术和/或计算能力的提高达到了可能造成某个特定长度的密钥的泄露的情况。 私钥 – 在一个实体使用的非对称密钥对中仅被该实体使用的密钥。在数字签名方案中,私钥定义了签名函数。 公钥 – 在一个实体使用的非对称密钥对中可以被公众使用的密钥。在数字签名方案中,公钥定义了验证函数。 公钥证书 - 由认证中心签名的不可伪造的某个实体的公钥信息。 响应 – IC卡接收到命令报文经过处理后返回给终端的报文。 对称加密技术 – 产生方和接受方使用同一个保密密钥进行转换的加密技术。如果不知道保密密钥,是无法通过计算得到产生方和接受方的转换信息的。 终端 – 在交易点安装的设备,和IC卡一起完成金融交易。它包括接口设备,也可以包括其它的部件和接口,例如和主机的通讯。 5.​ 缩略语和符号 下面为本规范用到的缩略语和符号: AAC 应用认证密文(Application Authentication Cryptogram) AC 应用密文(Application Cryptogram) AFL 应用文件定位器(Application File Locator) AID 应用标识符(Application Identifier) AIP 应用交互特征(Application Interchange Profile) ADF 应用定义文件(Application Definition File) APDU 应用协议数据单元(Application Protocol Data Unit) ARC 授权响应码(Authorization Response Code) ARPC 授权响应密文(Authorization Response Cryptogram) ARQC 授权请求密文(Authorization Request Cryptogram) ATC 应用交易序号(Application Transaction Counter) ATM 自动柜员机(Automated Teller Machine) b 二进制(Binary) CBC 密码块链接(Cipher Block Chaining) CDOL 卡片风险管理数据对象列表(Card Rish Management Data Object List) CLA 命令报文的类别字节(Class Byte of the Command Message) cn 压缩数字(compress numeric) DDA 动态数据认证(Dynamic Data Authentication) DDOL 动态数据认证数据对象列表(Dynamic Data Authentication Data Object List) DES 数据加密标准(Data Encryption Standard) ECB 电子密码本(Electronic Code Book) EF 基本文件(Elementary File) FIPS 联邦信息处理标准(Federal Information Processing Standard) hex. 十六进制数(Hexadecimal) IC 集成电路(Integrated Circuit) ICC 集成电路卡(Integrated Circuit Card) IEC 国际电工委员会(International Electrotechnical Commission) IFD 接口设备(Interface Device) INS 命令报文的指令字节(Instruction Byte of Command Message) KM 主密钥(Master Key) KS 过程密钥(Session Key) LDD IC卡动态数据长度(Length of the ICC Dynamic Data) MAC 报文认证码(Message Authentication Code) MMYY 月,年(Month ,Year) N 数字(Numeric) NCA 认证中心公钥模长(Length of the Certification Authority Public Key Modulus) NI 发卡行公钥模长(Length of the Issuer Public Key Modulus) NIC IC卡公钥模长(Length of the ICC Public Key Modulus) P1 参数1(Parameter 1) P2 参数2(Parameter 2) PAN 主帐号(Primary Account Number) PCA 认证中心公钥(Certification Authority Public Key) PI 发卡行公钥(Issuer Public Key) PIC IC卡公钥(ICC Public Key) PIN 个人鉴别码(Personal Identification Number) SFI 短文件标识符(Short File Identifier) RID 注册的应用提供商标识(Registered Application Provider Identifier) RSA Rivest,Shamir,Adleman算法 SCA 认证中心私钥(Certification Authority Private Key) SDA 静态数据认证(Static Data Authentication) SI 发卡行私钥(Issuer Private Key) SIC IC卡私钥(ICC Private Key) SHA 安全哈希算法(Secure Hash Algorithm) TC 交易证书(Transaction Certificate) TLV 标签,长度,值(Tag Length Value) var. 变长(Variable) 以下符号适用于本规范: ‘0’-‘9’和‘A’-‘F’ 16 进制数字 A := B A 被赋予数值 B A = B 数值A 等于 数值B A ≡ B mod n 整数A与B对于模n同余,即存在一个整数 d,使得 (A - B) = dn A mod n A 模 n的余数,即:唯一的整数r,0 ≤ r < n,存在一个整数d,使得 A = dn + r A / n A 整除 n,即:唯一的整数d,存在一个整数r,0 ≤ r < n,使得 A = dn + r Y := ALG(K)[X] 用密钥K,通过64位或128位分组加密方法,对64位或128位数据块X进行加密(在13.1节中有详细说明) X = ALG-1(K)[Y] 用密钥K,通过64位或128位分组加密方法,对64位或128位数据块Y进行解密(在13.1节有详细说明) Y := Sign (SK)[X] 用私钥SK,通过非对称可逆算法,对数据块X进行签名(在13.2节中有详细说 明) X = Recover(PK)[Y] 用公钥PK,通过非对称可逆算法,对数据块Y进行恢复(在13.2节中有详细说 明) C := (A || B) 将m位数字B和n位数字A进行链接,定义为:C = 2m A + B H := Hash[MSG] 用160位的HASH函数对任意长度的报文MSG进行HASH运算。 以下术语适用于本规范: 专用的 本规范未定义和/或在本规范范围之外的。 必须 表示一种强制性的要求。 应该 表示一种建议。 可选 表示可自行决定支持或不支持 6.​ 脱机数据认证 脱机数据认证是终端采用公钥技术来验证卡片数据的方法,脱机数据认证有2种形式: ​ 静态数据认证(SDA) ​ 动态数据认证(DDA) 在静态数据认证过程中,终端验证卡片上静态数据的合法性,SDA能确认卡片上的发卡行应用数据自卡片个人化后没有被非法篡改。 在动态数据认证过程中,终端验证卡片上的静态数据以及卡片产生的交易相关信息的签名,DDA能确认卡片上的发卡行应用数据自卡片个人化后没有被非法篡改。DDA还能确认卡片的真实性,防止卡片的非法复制。DDA可以是标准动态数据认证或复合动态数据认证/应用密文生成(CDA)。AIP指明了IC卡支持的脱机数据认证方法。 脱机数据认证的结果影响到卡片和终端是执行脱机交易,联机授权还是拒绝交易。表格 6‑1列出了SDA和DDA的比较。 表格 6‑1:SDA和DDA的比较 SDA DDA 确认卡片数据未被篡改 是 是 防止卡片复制 否 是 要求卡片支持非对称加密算法 否 是 要求终端支持非对称加密算法 是 是 包含发卡行公钥证书 是 是 包含卡片公钥证书 否 是 公钥解密次数 2 3 脱机数据认证仅执行一种验证方式,三种脱机验证方式的优先级从高到低依次为:CDA,标准DDA,SDA。表格 6‑2列出了卡片和终端支持不同脱机验证方式的情况下脱机验证的执行情况。 表格 6‑2:SDA,DDA和CDA处理优先级 AIP指示卡片支持 终端支持SDA 终端支持SDA和标准DDA 终端支持SDA,标准DDA和CDA SDA SDA SDA SDA SDA和标准DDA SDA 标准DDA 标准DDA SDA,标准DDA和CDA SDA 标准DDA CDA 6.1​ 密钥和证书 终端通过采用公钥算法验证IC卡上的签名和证书来实现脱机数据认证。公钥技术使用私钥产生加密数据(证书或签名),该加密数据可以被公钥解密而用于验证和数据恢复。RSA公钥模的位长度应是8的倍数,最左边(高)字节的最左(高)一位为1。所有的长度以字节为单位。 如果卡片上的静态应用数据不是唯一的(比如卡片针对国际和国内交易使用不同的CVM),卡片必须支持多IC卡公钥证书(或静态数据签名),如果被签名的静态应用数据在卡片发出后可能会被修改,卡片必须支持IC卡公钥证书(或静态数据签名)的更新。 6.1.1​ 认证中心 脱机数据认证需要一个认证中心(CA),认证中心拥有高级别安全性的加密设备并用来签发发卡行公钥证书。每一台符合本规范的终端都应为每一个它能识别的应用保存相应的认证中心公钥。 6.1.2​ 公开密钥对 认证中心和发卡行必须使用13.2节中指定的非对称算法产生认证中心公私钥对,发卡行公私钥对以及IC卡公私钥对。在本章中对脱机数据认证过程及相关数据元素的描述以RSA算法为例。 6.1.2.1​ 认证中心公私钥对 认证中心最多会产生6个公私钥对,每个公私钥对都将分配一个唯一的认证中心公钥索引。认证中心公钥及其索引由收单行加载到终端,认证中心私钥由认证中心保管并保证其私密性和安全性。 终端必须有足够空间存放认证中心公钥及其对应的注册应用提供商标识(RID)和认证中心公钥索引。终端通过RID和认证中心公钥索引定位认证中心公钥。 认证中心公钥模长必须在13.2.1节中所定义的范围内,认证中心公钥指数必须等于3或216+1。 6.1.2.2​ 发卡行公私钥对 支持SDA或DDA都需要发卡行产生发卡行公私钥对,并从认证中心获取发卡行公钥证书。发卡行将其公钥发送给认证中心,认证中心使用所有模长大于等于发卡行公钥模长并且公钥有效期晚于发卡行公钥有效期的认证中心私钥对其进行签名。 IC卡必须包含发卡行公钥证书及其用来验证发卡行证书的认证中心公钥索引,发卡行私钥由发卡行保管并保证其私密性和安全性。 发卡行公钥模长必须小于等于认证中心公钥最大模长,发卡行公钥模长必须在13.2.1节中所定义的范围内。发卡行公钥指数必须等于3或216+1, 终端通过注册应用提供商标识(RID)和认证中心公钥索引定位认证中心公钥,并用认证中心公钥从发卡行证书恢复发卡行公钥,然后用发卡行公钥恢复并验证卡片上的发卡行应用数据。 6.1.2.3​ IC卡公私钥对 支持DDA还要求发卡行为每张IC卡产生IC卡公私钥对,IC卡私钥存放在IC卡中的安全存贮区域,IC卡公钥由发卡行私钥签名,产生IC卡公钥证书并存放在卡片中。 IC卡公钥模长必须小于等于发卡行公钥模长,IC卡公钥模长必须在13.2.1节中所定义的范围内。IC卡公钥指数必须等于3或216+1。 终端通过注册应用标识(RID)和认证中心公钥索引定位认证中心公钥,并用认证中公钥从发卡行公钥证书恢复发卡行公钥,然后用发卡行公钥从IC卡公钥证书恢复IC卡公钥,并用IC卡公钥验证卡片的动态签名数据。 IC卡公钥对还可被用于脱机密文PIN验证,本规范中对脱机密文PI N不作要求,具体内容请参见EMV 2000 第二册 第7章。 6.2​ 静态数据认证(SDA) SDA的目的是确认存放在IC卡中的由应用文件定位器(AFL)和可选的静态数据认证标签列表所标识的,关键的静态数据的合法性,从而保证IC卡中的发卡行数据在个人化以后没有被非法篡改。 支持静态数据认证的IC卡个人化后应包含下列数据元素: ​ 认证中心公钥索引:该单字节数据元素包含一个二进制数字, 指明终端应使用其保存的相应的认证中心公钥对中的哪一个来验证IC卡。 ​ 发卡行公钥证书:该变长数据元素由认证中心提供给发卡行。当终端验证这个数据元素时,按6.2.3节描述的过程认证发卡行公钥和其它的数据。 ​ 签名的静态应用数据:由发卡行使用同发卡行公钥证书所认证的发卡行公钥相对应的发卡行私钥产生的变长数据元素。它是一个对存放在IC卡中的关键静态数据元素的数字签名,在6.2.4节中有详细描述。 ​ 发卡行公钥的余项:一个变长数据元素。它在IC卡中的存在是可选的。6.2.1节有进一步的解释。 ​ 发卡行公钥指数:一个由发卡行提供的变长数据元素。6.2.1节有进一步的解释。 为了支持静态数据认证,每一台终端应该能为每个注册的应用提供商标识(RID)存储六个认证中心公钥,而且必须使得和密钥相关的密钥信息能够同每一个密钥相关联(以使终端能在将来支持多种算法,并允许从一个算法过渡到另一个,参见10.3节)。在给定RID和IC卡提供的认证中心公钥索引的情况下,终端应能定位这样的公钥以及和公钥相关的信息。 图表 6‑1:SDA证书和公钥体系结构 静态数据认证必须使用一种在12.2.1节和13.2节中指明的可逆算法。6.2.1节包含了对静态数据认证过程中涉及到的密钥和证书的概述,6.2.2节到6.2.4节详细说明了认证过程中主要的三个步骤,即: ​ 由终端恢复认证中心公钥。 ​ 由终端恢复发卡行公钥。 ​ 由终端验证签名的静态应用数据。 6.2.1​ 密钥和证书 为了支持静态数据认证,一张IC卡必须包含签名的静态应用数据,它是用发卡行私钥签名的。发卡行公钥必须以公钥证书形式存放在IC卡中。 为了获得发卡行公钥证书,使用认证中心私钥SCA,对表格 6‑3中指明的数据应用12.2.1节中指明的签名方案。 认证中心的公钥对有一个公钥模,该公钥模为NCA个字节。认证中心公钥指数必须等于3或216+1。 为了获得签名的静态应用数据,使用发卡行私钥SI,对表格 6‑4中指明的数据应用12.2.1节中指明的签名方案。 发卡行的公钥对有一个发卡行公钥模,该公钥模为NI个字节(NI≤NCA)。如果NI >(NCA-36),那么发卡行公钥模被分成两部分,即一部分包含公钥模中高位的NCA-36个字节(发卡行公钥中最左边的数字);另一部分包含剩下的低位NI -(NCA-36)个字节(发卡行公钥的余项)。发卡行公钥指数必须等于3或216+1。 所有静态数据认证需要的信息在表格 6‑5中详细说明,并存放在IC卡中。除了RID可以从AID中获得外,其它信息可以通过读取记录(READ RECORD)命令得到。如果缺少这些数据中的任意一项,静态数据认证即告失败。 表格 6‑3:由认证中心签名的发卡行公钥数据(即哈希算法的输入) 字段名 长度 描述 格式 证书格式 1 十六进制,值为‘02’ b 发卡行标识 4 主帐号最左面的3-8个数字。(在右边补上十六进制数‘F’) cn 8 证书失效日期 2 MMYY,在此日期后,这张证书无效 n 4 证书序列号 3 由认证中心分配给这张证书的唯一的二进制数 b 哈希算法标识 1 标识用于在数字签名方案中产生哈希结果的哈希算法 b 发卡行公钥算法标识 1 标识使用在发卡行公钥上的数字签名算法 b 发卡行公钥长度 1 标识发卡行公钥模的字节长度 b 发卡行公钥指数长度 1 标识发卡行公钥指数的字节长度 b 发卡行公钥数位或发卡行公钥的最左边部分 NCA – 36 如果NI≤NCA–36,这个字段包含了在右边补上了NCA–36–NI 个值为‘BB’的字节的整个发卡行公钥。 如果NI >NCA-36,这个字段包含了发卡行公钥最高位的NCA–36个字节 b 发卡行公钥余项 0 或NI–NCA+36 这个字段只有在NI>NCA–36时才出现。它包含了发卡行公钥最低位的NI–NCA+36个字节 b 发卡行公钥指数 1或3 发卡行公钥指数等于3或216+1 b 表格 6‑4:由发卡行签名的静态应用数据(即哈希算法的输入) 字段名 长度 描述 格式 签名数据格式 1 十六进制,值为‘03’ b 哈希算法标识 1 标识用于在数字签名方案中产生哈希结果的哈希算法 b 数据验证代码 2 由发卡行分配的代码 b 填充字节 NI–26 填充字节由NI–26个值为‘BB’的字节组成3 b 需认证的静态数据 变长 在中国金融集成电路(IC)卡借记贷记应用卡片规范10.3.1节指明的需认证的静态数据(参见下文) - 认证过程的输入由被AFL标识的记录组成,其后跟有AIP(如果AIP被可选的静态数据认证标签列表(标签‘9F4A’)标识)。如果静态数据认证标签列表存在,则它必须仅包含标识AIP用的标签‘82’。 表格 6‑5:静态数据认证用到的数据对象 标签 长度 值 格式 - 5 注册的应用提供商标识 b ‘8F’ 1 认证中心公钥索引 b ‘90’ NCA 发卡行公钥证书 b ‘92’ NI – NCA +36 发卡行公钥的余项(如果有) b ‘9F32’ 1或3 发卡行公钥指数 b ‘93’ NI 签名的静态应用数据 b - 变长 在中国金融集成电路(IC)卡借记贷记应用卡片规范10.3.1节指明的需认证的静态数据(参见上文) - 6.2.2​ 认证中心公钥获取 终端读取认证中心公钥索引。使用这个索引和RID,终端必须确认并取得存放在终端的认证中心公钥的模、指数和与密钥相关的信息,以及相应的将使用的算法。如果终端没有存储与这个索引及RID相关联的密钥,那么静态数据认证失败。 6.2.3​ 发卡行公钥获取 1.​ 如果发卡行公钥证书的长度不同于在前面的过程中获得的认证中心公钥模长度,那么静态数据认证失败。 2.​ 为了获得在表格 6‑6中指明的恢复数据,使用认证中心公钥和相应的算法按照12.2.1节中指明的恢复函数恢复发卡行公钥证书。如果恢复数据的结尾不等于‘BC’,那么静态数据认证失败。 表格 6‑6 从发卡行公钥证书恢复数据的格式 字段名 长度 描述 格式 恢复数据头 1 十六进制,值为‘6A’ B 证书格式 1 十六进制,值为‘02’ B 发卡行标识 4 主帐号最左面的3-8个数字(在右边补上十六进制数‘F’) cn 8 证书失效日期 2 MMYY,在此日期后,这张证书无效 n4 证书序列号 3 由认证中心分配给这张证书的,唯一的二进制数 B 哈希算法标识 1 标识用于在数字签名方案中产生哈希结果的哈希算法 B 发卡行公钥算法标识 1 标识使用在发卡行公钥上的数字签名算法 B 发卡行公钥长度 1 标识发卡行公钥的模的字节长度 B 发卡行公钥指数长度 1 标识发卡行公钥指数的字节长度 B 发卡行公钥或发卡行公钥的最左边字节 NCA-36 如果NI≤NCA–36,这个字段包含了在右边补上了NCA–36–NI 个值为‘BB’的字节的整个发卡行公钥。 如果NI >NCA-36,这个字段包含了发卡行公钥最高位的NCA–36个字节 B 哈希结果 20 发卡行公钥以及相关信息的哈希值 B 恢复数据结尾 1 十六进制,值为‘BC’ b 3.​ 检查恢复数据头。如果它不是‘6A’,那么静态数据认证失败。 4.​ 检查证书格式。如果它不是‘02’,那么静态数据认证失败。 5.​ 将表格 6‑6中的第二个到第十个数据元素(即从证书格式直到发卡行公钥或发卡行公钥的最左边字节)从左到右连接,再把发卡行公钥的余项加在后面(如果有),最后是发卡行公钥指数。 6.​ 使用指定的哈希算法(从哈希算法标识得到)对上一步的连接结果计算得到哈希结果。 7.​ 把上一步计算得到的哈希结果和恢复出的哈希结果相比较。如果它们不一样,那么静态数据认证失败。 8.​ 检验发卡行标识是否匹配主帐号最左面的3-8个数字(允许发卡行标识可能在其后补‘F’)。如果不一致,那么静态数据认证失败。 9.​ 检验证书失效日期中指定月的最后日期是否等于或迟于今天的日期。如果证书失效日期在今天的日期之前,那么证书已过期,静态数据认证失败。 10.​ 检验连接起来的RID、认证中心公钥索引、证书序列号是否有效。如果无效,那么静态数据认证失败。 11.​ 如果发卡行公钥算法标识无法识别,那么静态数据认证失败。 12.​ 如果以上所有的检验都通过,连接发卡行公钥的最左边字节和发卡行公钥的余项(如果有)以得到发卡行公钥模,以继续下一步签名的静态应用数据的检验。 6.2.4​ 签名的静态应用数据验证 1.​ 如果签名静态应用数据的长度不等于发卡行公钥模的长度,那么静态数据认证失败。 2.​ 为了获得在表格 6‑7中指明的恢复数据,使用发卡行公钥和相应的算法并将12.2.1节中指明的恢复函数应用到签名的静态应用数据上。如果恢复数据的结尾不等于‘BC’,那么静态数据认证失败。 表格 6‑7:从签名的静态应用数据恢复数据的格式 字段名 长度 描述 格式 恢复数据头 1 十六进制,值为‘6A’ b 签名数据格式 1 十六进制,值为‘03’ b 哈希算法标识 1 标识用于在数字签名方案中产生哈希结果的哈希算法 b 数据验证代码 2 由发卡行分配的代码 b 填充字节 NI–26 填充字节由NI–26个值为‘BB’的字节组成 b 哈希结果 20 需认证的静态应用数据的哈希值 b 恢复数据结尾 1 十六进制,值为‘BC’ b 3.​ 检查恢复数据头。如果它不是‘6A’,那么静态数据认证失败。 4.​ 检查签名数据格式。如果它不是‘03’,那么静态数据认证失败。 5.​ 将表格 6‑7中的第二个到第五个数据元素(即从签名数据格式直到填充字节)从左到右连接,再把中国金融集成电路(IC)卡借记贷记应用卡片规范10.3.1节中指明的需认证的静态数据加在后面。如果静态数据认证标签列表存在,并且其包含非‘82’的标签,那么静态数据认证失败。 6.​ 把指定的哈希算法(从哈希算法标识得到)应用到上一步的连接结果从而得到哈希结果。 7.​ 把上一步计算得到的哈希结果和恢复出的哈希结果相比较。如果它们不一样,那么静态数据认证失败。 8.​ 如果以上所有的步骤都成功,那么静态数据认证成功。在表格 6‑7中的恢复得到的数据验证代码应被存放在标签‘9F45’中。 6.3​ 动态数据认证(DDA) DDA的目的是确认存放在IC卡中和由IC卡生成的关键数据以及从终端收到的数据的合法性。DDA除了执行同SDA类似的静态数据认证过程,确保IC卡中的发卡行数据在个人化以后没有被非法篡改,还能防止任何对这样的卡片进行伪造的可能性。 动态数据认证有以下可选的两种方式: ​ 标准的动态数据认证,这种方式在卡片行为分析前执行。在这种方式下,IC卡根据由IC卡动态数据所标识的存放在IC卡中的或由IC卡生成的数据以及由动态数据认证数据对象列表所标识的从终端收到的数据生成一个数字签名。 ​ 复合动态数据认证/应用密文生成,这种方式在GENERATE AC命令发出后执行。在交易证书或授权请求密文的情况下,IC卡根据由IC卡动态数据所标识的存放在IC卡中的或由IC卡生成的数据得到一个数字签名,这些数据包括交易证书或授权请求密文,以及由卡片风险管理数据对象列表(对第一条GENERATE AC命令是CDOL1,对第二条GENERATE AC命令是CDOL2)标识的由终端生成的不可预知数 AIP指明IC卡支持的选项。 支持动态数据认证的IC卡必须包含下列数据元素: ​ 认证中心公钥索引:该单字节数据元素包含一个二进制数字, 指明终端应使用其保存的相应的认证中心公钥对中的哪一个来验证IC卡。 ​ 发卡行公钥证书:该变长数据元素由相应的认证中心提供给发卡行。终端验证这个数据元素时,按6.3.3节描述的过程认证发卡行公钥和其它的数据。 ​ IC卡公钥证书:该变长数据元素由发卡行提供给IC卡。终端验证这个数据元素时,按6.3.4节描述的过程认证IC卡公钥和其它的数据。 ​ 发卡行公钥的余项:一个变长数据元素。6.3.1节有进一步的解释。 ​ 发卡行公钥指数:一个由发卡行提供的变长数据元素。6.3.1节有进一步的解释。 ​ IC卡公钥的余项:一个变长数据元素。6.3.1节有进一步的解释。 ​ IC卡公钥指数:一个由发卡行提供的变长数据元素。6.3.1节有进一步的解释。 ​ IC卡私钥:一个存放在IC卡内部的变长数据元素,用来按6.3.5节和6.3.6节描述的过程生成签名的动态应用数据。 支持动态数据认证的IC卡必须生成下列数据元素: ​ 签名的动态应用数据:一个由IC卡使用同IC卡公钥证书所认证的IC卡公钥相对应的IC卡私钥生成的变长数据元素。它是一个数字签名,包含了6.3.5节和6.3.6节描述的存放在IC卡中的或由IC卡生成的以及终端中的关键数据元素。 为了支持动态数据认证,每一台终端必须能够为每个注册的应用提供商标识存储六个认证中心公钥,而且必须使同密钥相关的密钥信息能够同每一个密钥相关联(以使终端能在将来支持多种算法,允许从一个算法过渡到另一个,参见10.3节)。在给定RID和IC卡提供的认证中心公钥索引的情况下,终端必须能够定位这样的公钥以及和公钥相关的信息。 动态数据认证必须使用一种在12.2.1节和13.2节中指明的可逆的算法。6.3.1节包含了对动态数据认证过程中涉及到的密钥和证书的概述,6.3.2节到6.3.4节详细说明了认证过程中的起始步骤,即: ​ 由终端恢复认证中心公钥。 ​ 由终端恢复发卡行公钥。 ​ 由终端恢复IC卡公钥。 最后,6.3.5节和6.3.6节详细说明了两种情况下动态签名的生成和验证过程。 图表 6‑2:DDA证书和公钥体系结构 6.3.1​ 密钥和证书 为了支持动态数据认证,一张IC卡必须拥有它自己的唯一的公钥对,公钥对由一个私有的签名密钥和相对应的公开的验证密钥组成。IC卡公钥必须存放在IC卡上的公钥证书中。 动态数据认证采用了一个三层的公钥证书方案。每一个IC卡公钥由它的发卡行认证,而认证中心认证发卡行公钥。这表明为了验证IC卡的签名,终端需要先通过验证两个证书来恢复和验证IC卡公钥,然后用这个公钥来验证IC卡的动态签名。 按12.2.1节中指明的签名方案分别将认证中心私钥SCA应用到表格 6‑8中指定的数据以及将发卡行私钥SI应用到表格 6‑9中指定的数据,以分别获得发卡行公钥证书和IC卡公钥证书。 认证中心的公钥对有一个NCA个字节的公钥模。认证中心公钥指数必须等于3或216+1。 发卡行的公钥对有一个为NI个字节(NI≤NCA)的发卡行公钥模。如果NI >(NCA-36),那么发卡行公钥模被分成两部分,即一部分包含模中最高的NCA-36个字节(发卡行公钥中最左边的数字);另一部分包含剩下的模中最低的NI -(NCA-36)个字节(发卡行公钥余项)。发卡行公钥指数必须等于3或216+1。 IC卡的公钥对有一个为NIC个字节(NIC≤NI≤NCA)的IC卡公钥模。如果NIC>(NI-42),那么IC卡公钥模被分成两部分,即一部分包含模中最高的NI- 42个字节(IC卡公钥中最左边的数字);另一部分包含剩下的模中最低的NIC -(NI-42)个字节(IC卡公钥余项)。IC卡公钥指数必须等于3或216+1。 如果卡片上的静态应用数据不是唯一的(比如卡片针对国际和国内交易使用不同的CVM),卡片必须支持多IC卡公钥证书,如果被签名的静态应用数据在卡片发出后可能会被修改,卡片必须支持IC卡公钥证书的更新。 为了完成动态数据认证,终端必须首先恢复和验证IC卡公钥(这一步叫做IC卡公钥认证)。IC卡公钥认证需要的所有信息在表格 6‑10中详细说明,并存放在IC卡中。除了RID可以从AID中获得外,其它信息可以通过读取记录(READ RECORD)命令得到。如果缺少这些数据中的任意一项,那么动态数据认证失败。 表格 6‑8:由认证中心签名的发卡行公钥数据(即哈希算法的输入) 字段名 长度 描述 格式 证书格式 1 十六进制,值为‘02’ b 发卡行识别号 4 主帐号最左面的3-8个数字。(在右边补上十六进制数‘F’) cn 8 证书失效日期 2 MMYY,在此日期后,这张证书无效 n 4 证书序列号 3 由认证中心分配给这张证书的唯一的二进制数 b 哈希算法标识 1 标识用于在数字签名方案中产生哈希结果的哈希算法 b 发卡行公钥算法标识 1 标识使用发卡行公钥的数字签名算法 b 发卡行公钥长度 1 标识发卡行公钥模的字节长度 b 发卡行公钥指数长度 1 标识发卡行公钥指数的字节长度 b 发卡行公钥或发卡行公钥的最左边字节 NCA – 36 如果NI≤NCA–36,这个字段包含了在右边补上了NCA–36–NI 个值为‘BB’的字节的整个发卡行公钥。 如果NI >NCA -36,这个字段包含了发卡行公钥最高位的NCA–36个字节 b 发卡行公钥的余项 0 或 NI–NCA+36 这个字段只有在NI >NCA –36时才出现。它包含了发卡行公钥最低位的NI–NCA+36个字节 b 发卡行公钥指数 1或3 发卡行公钥指数等于3或216+1 b 表格 6‑9:由发卡行签名的IC卡公钥数据(即哈希算法的输入) 字段名 长度 描述 格式 证书格式 1 十六进制,值为‘04’ b 应用主帐号 10 主帐号(在右边补上十六进制数‘F’) cn 20 证书失效日期 2 MMYY,在此日期后,这张证书无效 n4 证书序列号 3 由发卡行分配给这张证书的唯一的二进制数 b 哈希算法标识 1 标识用于在数字签名方案中产生哈希结果的哈希算法 b IC卡公钥算法标识 1 标识使用在IC卡公钥上的数字签名算法 b IC卡公钥长度 1 标识IC卡公钥的模的字节长度 b IC卡公钥指数长度 1 标识IC卡公钥指数的字节长度 b IC卡公钥或IC卡公钥的最左边字节 NI – 42 如果NIC≤NI–42,这个字段包含了在右边补上了NI–42–NIC 个值为‘BB’的字节的整个IC卡公钥。 如果NIC>NI –42,这个字段包含了IC卡公钥最高位的NI–42个字节 b IC卡公钥的余项 0 或 NIC–NI+42 这个字段只有在NIC >NI –42时才出现。它包含了IC卡公钥最低位的NIC–NI+42个字节 b IC卡公钥指数 1或3 IC卡公钥指数等于3或216+1 b 需认证的静态数据 变长 在中国金融集成电路(IC)卡借记贷记应用卡片规范10.3.1节详细说明了需认证的静态数据(参见下文) b 认证过程的输入由被AFL标识的记录组成,其后跟有AIP(如果AIP被可选的静态数据认证标签列表(标签‘9F4A’)标识)。如果静态数据认证标签列表存在,它必须仅包含标识AIP用的标签‘82’。 表格 6‑10:动态认证中的公钥认证所需的数据对象 标签 长度 值 格式 - 5 注册的应用提供商标识 b ‘8F’ 1 认证中心公钥索引 b ‘90’ NCA 发卡行公钥证书 b ‘92’ NI–NCA+36 发卡行公钥的余项(如果存在) b ‘9F32’ 1或3 发卡行公钥指数 b ‘9F46’ NI IC卡公钥证书 b ‘9F48’ NIC–NI+42 IC卡公钥的余项(如果存在) b ‘9F47’ 1或3 IC卡公钥指数 b - 变长 在中国金融集成电路(IC)卡借记贷记应用卡片规范10.3.1节详细说明了需认证的静态数据(参见上文) - 6.3.2​ 认证中心公钥的获取 终端读取认证中心公钥索引。使用这个索引和RID,终端能够确认并取得存放在终端的认证中心公钥的模,指数和与密钥相关的信息,以及将使用的相应算法。如果终端没有存储与这个索引及RID相关联的密钥,那么动态数据认证失败。 6.3.3​ 发卡行公钥的获取 1.​ 如果发卡行公钥证书的长度不同于在前面的章节中获得的认证中心公钥模长度,那么动态数据认证失败。 2.​ 为了获得在表格 6‑11中指明的恢复数据,使用认证中心公钥和相应的算法按照12.2.1节中指明的恢复函数恢复发卡行公钥证书。如果恢复数据的结尾不等于‘BC’,那么动态数据认证失败。 表格 6‑11:从发卡行公钥证书恢复数据的格式 字段名 长度 描述 格式 恢复数据头 1 十六进制,值为‘6A’ b 证书格式 1 十六进制,值为‘02’ b 发卡行标识 4 主帐号最左面的3-8个数字(在右边补上十六进制数‘F’) cn 8 证书失效日期 2 MMYY,在此日期后,这张证书无效 n4 证书序列号 3 由认证中心分配给这张证书的唯一的二进制数 b 哈希算法标识 1 标识用于在数字签名方案中产生哈希结果的哈希算法 b 发卡行公钥算法标识 1 标识使用在发卡行公钥上的数字签名算法 b 发卡行公钥长度 1 标识发卡行公钥的模的字节长度 b 发卡行公钥指数长度 1 标识发卡行公钥指数的字节长度 b 发卡行公钥或发卡行公钥的最左边字节 NCA-36 如果NI≤NCA–36,这个字段包含了在右边补上了NCA–36–NI 个值为‘BB’的字节的整个发卡行公钥。 如果NI >NCA -36,这个字段包含了发卡行公钥最高位的NCA–36个字节 b 哈希结果 20 发卡行公钥以及相关信息的哈希值 b 恢复数据结尾 1 十六进制,值为‘BC’ b 3.​ 检查恢复数据头。如果它不是‘6A’,那么动态数据认证失败。 4.​ 检查证书格式。如果它不是‘02’,那么动态数据认证失败。 5.​ 将表格 6‑11中的第二个到第十个数据元素(即从证书格式直到发卡行公钥或发卡行公钥的最左边字节)从左到右连接,再把发卡行公钥的余项加在后面(如果有),最后是发卡行公钥指数。 6.​ 使用指定的哈希算法(从哈希算法标识得到)对上一步的连接结果计算得到哈希结果。 7.​ 把上一步计算得到的哈希结果和恢复出的哈希结果相比较。如果它们不一样,那么动态数据认证失败。 8.​ 检验发卡行识别号是否匹配主帐号最左面的3-8个数字(允许发卡行识别号可能在其后填充的‘F’)。如果不匹配,那么动态数据认证失败。 9.​ 确认证书失效日期中指定月的最后日期等于或迟于今天的日期。如果证书失效日期在今天的日期之前,那么证书已过期,动态数据认证失败。 10.​ 检验连接起来的RID、认证中心公钥索引、证书序列号是否有效。如果无效,那么动态数据认证失败。 11.​ 如果发卡行公钥算法标识无法识别,那么动态数据认证失败。 12.​ 如果以上所有的检验都通过,连接发卡行公钥的最左边字节和发卡行公钥的余项(如果有)以得到发卡行公钥模,从而继续下一步取得IC卡公钥。 6.3.4​ IC卡公钥的获取 1.​ 如果IC卡公钥证书的长度不同于在前面的章节中获得的发卡行公钥模长度,那么动态数据认证失败。 2.​ 为了获得在表格 6‑12中指明的恢复数据,使用发卡行公钥和相应的算法将12.2.1节中指明的恢复函数应用到IC卡公钥证书上。如果恢复数据的结尾不等于‘BC’,那么动态数据认证失败。 表格 6‑12:从IC卡公钥证书恢复数据的格式 字段名 长度 描述 格式 恢复数据头 1 十六进制,值为‘6A’ b 证书格式 1 十六进制,值为‘04’ b 应用主帐号
/
本文档为【中国金融集成电路(IC)卡借记贷记规范v2.0-安全部分】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。 本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。 网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。

历史搜索

    清空历史搜索