• 569.20 KB
  • 21页

中国银联ic卡技术规范——辅助规范 第6部分 金融ic卡借记贷记应用根ca公钥认证规范——技术规范

  • 21页
  • 当前文档由用户上传发布,收益归属用户
  1. 1、本文档共5页,可阅读全部内容。
  2. 2、本文档内容版权归属内容提供方,所产生的收益全部归内容提供方所有。如果您对本文有版权争议,可选择认领,认领后既往收益都归您。
  3. 3、本文档由用户上传,本站不保证质量和数量令人满意,可能有诸多瑕疵,付费之前,请仔细先通过免费阅读内容等途径辨别内容交易风险。如存在严重挂羊头卖狗肉之情形,可联系本站下载客服投诉处理。
  4. 文档侵权举报电话:19940600175。
'Q/CUP中国银联股份有限公司企业标准Q/CUP046.6.2—2012代替Q/CUP041.1.2-2011中国银联IC卡技术规范——辅助规范第6部分金融IC卡借记/贷记应用根CA公钥认证规范——技术规范ChinaUnionPayintegratedcircuitcardspecifications—auxiliaryspecificationsPart1FinancialICCardDebit/CreditApplicationsRootCAPublicKeyAuthenticationSpecification——TechnicalSpecification2012-11-01发布2012-11-01实施中国银联股份有限公司发布 Q/CUP046.6.2—2012目次前言.............................................................................II1范围................................................................................12规范性引用文件......................................................................13术语和定义..........................................................................14编码符号表示........................................................................25金融IC卡借记/贷记应用公钥认证.......................................................25.1金融IC卡借记/贷记应用中的IC卡数据认证............................................35.2金融IC卡借记/贷记应用使用的公钥种类...............................................76根CA公钥文件......................................................................76.1根CA公钥文件命名................................................................76.2根CA公钥文件内容................................................................76.3未签名根CA公钥输出扩展..........................................................76.4自签名根CA公钥..................................................................87成员机构根CA公钥证书验证..........................................................98发卡机构公钥输入文件...............................................................108.1基本要求.........................................................................108.2发卡机构公钥输入文件命名.........................................................108.3发卡机构公钥输入文件结构.........................................................108.4发卡机构公钥输入文件格式.........................................................109发卡机构公钥输入文件的验证.........................................................1210发卡机构公钥输出文件..............................................................1310.1发卡机构公钥证书输出文件命名....................................................1310.2发卡机构公钥证书输出文件结构....................................................1310.3未签名发卡机构公钥输出扩展......................................................1410.4签名的发卡机构公钥证书..........................................................1410.5根CA单独签名..................................................................1511发卡机构公钥证书验证..............................................................15参考文献.............................................................................17I Q/CUP046.6.2—20121前言本标准对金融IC卡借记/贷记应用根CA公钥认证及服务在技术及系统接口方面的要求做了规定。本标准由中国银联股份有限公司提出。本标准由中国银联股份有限公司制定。本标准由中国银联股份有限公司技术管理部归口。本标准起草单位:中国银联股份有限公司。本次2012年对规范进行重新编号,规范内容不变。本标准主要起草人:刘先、徐晋耀、徐志忠、杨辅祥、李春欢、柏建宁、隆永红、赵宇、黄发国、姜红。II Q/CUP046.6.2—2012中国银联IC卡技术规范——辅助规范第6部分金融IC卡借记/贷记应用根CA公钥认证规范——技术规范1范围本标准规定了金融IC卡借记/贷记应用根CA公钥认证的技术要求和系统接口。本标准适用于金融IC卡借记/贷记应用根CA公钥认证的服务提供机构和服务接受机构,包括认证管理机构、接受认证服务的中国银联成员机构以及中国银联成员机构授权的代理机构。2规范性引用文件下列文件中的条款通过本标准的引用而成为本标准的条款。凡是注日期的引用文件,其随后所有的修改单(不包括勘误的内容)或修订版均不适用于本标准,然而,鼓励根据本标准达成协议的各方研究是否可使用这些文件的最新版本。凡是不注日期的引用文件,其最新版本适用于本标准。JR/T0025-2005中国金融集成电路(IC)卡规范JR/T0003-2001银行卡联网联合安全规范中国银联,《银联卡业务运作规章》第七卷《IC卡业务规则》,2005年中国银联,银联卡密钥安全管理规则,2004年8月中国银联,金融IC卡借记/贷记应用根CA公钥认证管理规则3术语和定义3.1发卡机构标识代码BankIdentificationNumber;BIN用于标识发卡机构的代码。3.2EMVEMV是EUROPAY、MasterCard、VISA三个国际信用卡公司的首字母缩略词,这三个公司联合制定的IC卡借记/贷记应用标准,简称为EMV标准。3.3入网机构标识码institutionidentificationcode在银行卡网络上唯一地标识受理方、发卡方、交换中心等机构的代码,通常用于ISO8583报文中的下列数据元:域32:AcquiringInstitutionIdentificationCode。域33:ForwardingInstitutionIdentificationCode。域99:SettlementInstitutionIdentificationCode。3.4成员机构(Memberorganisation)在本标准中指中国银联成员机构。3.5金融IC卡借记/贷记应用根CA(FinancialICCardDebit/CreditApplicationsRootCA)由中国人民银行授权建立的、由中国银联统一管理的服务于金融行业IC卡安全应用的根认证中心,以下简称“根CA”。实现该根认证中心功能的应用系统是“金融IC卡借记/贷记应用根CA系统”,以下简称“根CA系统”。1 Q/CUP046.6.2—20123.6发卡机构(Issuer)指开展金融IC卡发卡业务的成员机构。3.7收单机构(Acquirer)指开展金融IC卡收单业务的成员机构。3.8主账号primaryaccountnumber;PAN标识发卡机构和持卡人信息的数字代码。它由发卡机构标识代码、个人账户标识和校验位组成,是银行卡金融交易的主要账号,在银行卡金融交易中等同于卡号。3.9RID,Registeredapplicationprovideridentifier已注册的应用提供者标识。3.10公钥密码算法(Publickeycryptographicalgorithm)《中国金融集成电路(IC)卡规范》第七部分第十二章规定的公钥密码算法。3.11哈希算法(Hashalgorithm)《中国金融集成电路(IC)卡规范》第七部分第十二章规定的哈希算法。3.12静态数据认证,Staticdataauthentication;SDA终端认证卡片中静态数据的签名,是脱机数据认证的一种。这种认证用于防止对卡片中关键个人化数据的篡改。3.13动态数据认证,Dynamicdataauthentication;DDA芯片卡对特定交易数据元进行签名,终端验证该签名,是脱机数据认证的一种。这种认证用于防止卡片的非法复制、伪造。3.14CDA,Combineddynamicdataauthentication/applicationcryptogramgeneration复合动态数据认证/应用密文生成,是脱机动态数据认证的一种。这种认证用于防止卡片的非法复制、伪造,同时生成交易密文。4编码符号表示本标准定义的编码方式符合《中国金融集成电路(IC)卡规范》,并与EMV2000标准兼容,同时兼容VISA、MasterCard、JCB等国际信用卡公司的有关规范及其支付系统。这些编码方式如下:b:二进制编码。用无符号二进制表示数据的一种方式。例如十进制数值的公钥指数3和65537,其二进制编码用十六进制表示则为(hex)‘03’和(hex)‘010001’。cn:压缩数字编码。每一字节表示两个十进制数字,具有固定长度,不足部分在右边以‘F’填充。如主帐号(PAN):6123567890123以长度为8的‘cn’编码值为:‘6123567890123FFF’。n:数字编码。每一字节表示两个十进制数字,具有固定长度,不足部分在左边以十六进制字符‘0’填充。例如以长度为10的‘n’编码表示十进制数值1234567为:‘0001234567’。5金融IC卡借记/贷记应用公钥认证5.1金融IC卡借记/贷记应用中的IC卡数据认证2 Q/CUP046.6.2—2012金融IC卡借记/贷记应用公钥认证在IC卡支付过程中的作用是进行脱机IC卡数据认证,包括:——静态数据认证(SDA)——动态数据认证(DDA),包括:●标准动态数据认证●复合动态数据认证/应用密文生成(CDA)这两种IC卡数据认证遵循《中国金融集成电路(IC)卡规范》,并与EMV2000规范兼容。5.1.1静态数据认证(SDA)静态数据认证由终端验证卡片中的静态数据的数字签名来完成。其目的是确认存放在银联标准IC卡中关键的静态数据的合法性,可以发现在卡片个人化以后对卡内的发卡机构数据未经授权的改动,能有效地检测银联标准IC卡内关键静态数据的真实性。静态数据认证流程和银联标准IC卡与根CA公钥认证体系之间的关系如图1所示:整个银联标准IC卡静态数据认证的过程说明如下:1)发卡机构的密钥管理系统产生发卡机构公/私钥对PI和SI,并将公钥PI传送至根CA;2)根CA用自己的私钥SCA对发卡机构公钥PI进行数字签名,产生发卡机构公钥证书,连同根CA公钥证书(包括RID及根CA公钥索引)返回给发卡机构密钥管理系统;3)发卡机构密钥管理系统用发卡机构私钥SI对卡片静态数据进行数字签名,将签名结果、发卡机构公钥证书、RID及根CA公钥索引传送至发卡系统;4)发卡系统在个人化时将静态数字签名、发卡机构公钥证书、RID以及根CA公钥索引写入每一张卡片中;5)根CA将其公钥PCA、RID、根CA公钥索引及其它相关信息经收单机构传送至终端管理系统;6)收单机构终端管理系统把根CA公钥PCA、RID、根CA公钥索引及其它相关信息下载至终端;7)银联标准IC卡进行交易时,脱机静态数据认证过程如下:●终端从卡片中读取发卡机构公钥证书及签名数据,使用根CA公钥索引和RID找到根CA公钥PCA,由PCA恢复出发卡机构公钥PI并验证其有效性;●终端使用恢复的发卡机构公钥PI验证卡片签名数据的有效性。3 Q/CUP046.6.2—2012发卡机构根CA收单机构发卡机发卡机根CA根CA根CA初始化构私钥构公钥私钥公钥公钥SIPISCAPCAPCA发卡机构公钥证书(PI由SCA签名)个人化签名的发卡机应用数构公钥据(由SI证书签名)IC卡应用READRECORD响交易应报文包含:IC卡应用根CA公钥索引终端发卡机构公钥证书签名应用数据-用PCA从发卡机构公钥证书恢复PI-用PI恢复签名应用数据图1银联IC卡静态数据认证5.1.2标准动态数据认证在动态数据认证(DDA)过程中,终端验证卡片上的静态数据以及卡片产生的当前动态交易数据的签名。DDA能确认卡片上的发卡机构应用数据自卡片个人化后没有被非法篡改,更重要的是DDA还能确认卡片的真实性,防止卡片的非法复制和伪造。DDA可以是标准动态数据认证或复合动态数据认证/应用密文生成(CDA)。银联标准IC卡动态数据认证如图2所示。在这种方式下,银联标准IC卡将来自卡片的动态交易数据以及由动态数据认证数据对象列表(DDOL)所标识的终端数据生成一个数字签名(见《中国金融集成电路(IC)卡规范》)。4 Q/CUP046.6.2—2012发卡机构根CA收单机构初始化发卡机发卡机根CA根CA根CA构私钥构公钥私钥公钥公钥S1P1SCAPCAPCA发卡机构公钥证书,PI由SCA签名个人化IC卡私IC卡公发卡机钥SICC钥PICC构公钥证书IC卡公钥证书(PICC由SI签名)READRECORD响应报文包含:根CA公钥索引IC卡应用发卡机构、IC卡公终端钥证书签名应用数据交易IC卡应用INTERNALAUTHENTICATE或GENERATEAC命令用PCA从发卡机构公钥证书恢复IC卡应用PI用PI从IC卡公钥证书恢复PICC用SICC计验证IC卡公钥证书中数据哈希值算动态签INTERNALAUTHENTICATE(对于名终端标准DDA)或含动态签名的GENERATEAC响应(对于CDA)用PICC验证动态签名图2银联标准IC卡动态数据认证5 Q/CUP046.6.2—2012银联标准IC卡标准动态数据认证整体过程说明如下:1)发卡机构密钥管理系统产生发卡机构公私钥对SI和PI,并将发卡机构公钥PI传送至根CA;2)根CA用自己的私钥SCA对发卡机构公钥进行数字签名,产生发卡机构公钥证书,连同根CA公钥证书(包括RID和根CA公钥索引)返回给发卡机构密钥管理系统;3)发卡机构密钥管理系统为每一张银联标准IC卡产生一对公私钥对SICC和PICC,并用发卡机构私钥SI对IC卡公钥PICC进行数字签名,产生IC卡公钥证书;4)发卡机构密钥管理系统将发卡机构公钥证书、IC卡公钥证书、IC卡私钥、RID以及根CA公钥索引传送至发卡系统;5)发卡系统在个人化时将发卡机构公钥证书、IC卡公钥证书、IC卡私钥、RID及根CA公钥索引写入卡片中;6)根CA将其公钥PCA、RID、根CA公钥索引及其它相关信息经收单机构传送至终端管理系统;7)收单机构终端管理系统把根CA公钥PCA、RID、根CA公钥索引及其它相关信息下载至终端;8)银联标准IC卡进行交易时的脱机标准动态数据认证过程如下:●终端从卡片读取发卡机构公钥证书、IC卡公钥证书、RID以及根CA公钥索引,利用RID和根CA公钥索引定位根CA公钥PCA,使用根CA公钥PCA恢复出发卡机构公钥PI并验证其有效性,使用恢复的发卡机构公钥PI恢复出IC卡公钥PICC并验证其有效性;●终端向IC卡发送内部认证命令(INTERNALAUTHENTICATE)(见《中国金融集成电路(IC)卡规范》)请求一个动态签名;卡片对内部认证命令中的终端数据和IC卡交易动态数据进行连接,由IC卡私钥SICC对该连接数据进行数字签名并返回给终端;●终端使用IC卡公钥PICC对上一步骤的数字签名进行验证。5.1.3复合动态数据认证/应用密文生成(CDA)该方式在第一个请求应用密文命令发出后执行(见《中国金融集成电路(IC)卡规范》)。银联标准IC卡将来自卡片的数据包括应用密文以及来自终端的数据生成一个数字签名。银联标准IC卡复合动态数据认证/应用密文生成的整体过程如下:1)发卡机构密钥管理系统产生发卡机构公私钥对SI和PI,并将发卡机构公钥PI传送至根CA;2)根CA用自己的私钥SCA对发卡机构公钥进行数字签名,产生发卡机构公钥证书,连同根CA公钥证书(包括RID和根CA公钥索引)返回给发卡机构密钥管理系统;3)发卡机构密钥管理系统为每一张银联标准IC卡产生一对公私钥对SICC和PICC,并用发卡机构私钥SI对IC卡公钥PICC进行数字签名,产生IC卡公钥证书;4)发卡机构密钥管理系统将发卡机构公钥证书、IC卡公钥证书、IC卡私钥、RID以及根CA公钥索引传送至发卡系统;5)发卡系统在个人化时将发卡机构公钥证书、IC卡公钥证书、IC卡私钥、RID及根CA公钥索引写入卡片中;6)根CA将其公钥PCA、RID、根CA公钥索引及其它相关信息经收单机构传送至终端管理系统;7)收单机构终端管理系统把根CA公钥PCA、RID、根CA公钥索引及其它相关信息下载至终端;8)银联标准IC卡进行交易时的脱机复合动态数据认证过程如下:●终端从IC卡中读取发卡机构公钥证书、IC卡公钥证书、RID及根CA公钥索引。●终端使用RID和根CA公钥索引定位根CA公钥PCA,使用根CA公钥PCA验证发卡机构公钥证书的签名并恢复出发卡机构公钥PI。●终端使用发卡机构公钥PI验证IC卡公钥证书的签名并恢复出IC卡公钥PICC。●终端生成一不可预知数并与其它相关数据一并传给IC卡。●IC卡使用其自身的私钥SICC对收到的终端数据(包括不可预知数、交易数据)和其它IC卡数据(包括TC/ARQC)做数字签名并发送给终端。●终端使用IC卡公钥PICC验证IC卡传递的签名数据。6 Q/CUP046.6.2—20125.2金融IC卡借记/贷记应用使用的公钥种类在金融IC卡借记/贷记应用公钥认证体系中使用三种公私钥对:根CA公私钥对、发卡机构公私钥对和银联标准IC卡公私钥对。其作用如表1所示。表1金融IC卡借记/贷记应用公钥认证体系使用的公钥种类密钥名称存在条件用途根CA公私钥对必须存在用于对发卡机构签发公钥证书用于对静态数据进行数字签名,以及对IC卡签发公钥证书发卡机构公私钥对支持SDA或DDA用于动态数据认证IC卡公私钥对支持DDA用于动态数据认证6根CA公钥文件根CA公钥证书以根CA公钥文件形式进行传递。6.1根CA公钥文件命名根CA公钥文件名格式为:01010000.CAA。其中:——01010000标识银联借记/贷记服务;——C标识中国银联;——AA为根CA的公钥索引,以0xAA表示。例如:01010000.C01。6.2根CA公钥文件内容根CA公钥文件是二进制数据,其格式和内容如表9所示。表2根CA公钥文件内容字段名长度(字节数)描述35+NCA+eCA见本标准第6.3节未签名根CA公钥输出这里NCA和eCA分别是根CA公钥模长度和公钥指数长扩展度,以字节数表示见本标准第6.4节自签名根CA公钥NCA6.3未签名根CA公钥输出扩展未签名根CA公钥输出扩展是根CA公钥文件的第一部分,其内容如表3所示。表3未签名根CA公钥输出扩展字段名长度(字节数)描述格式记录头1十六进制‘20’b标识一个中国银联借记贷记服务,将相应应用的私有应用标识扩展(PIX),右补十六进制‘0’构成。服务标识4‘01010000’=借、贷记b‘01010100’=借记‘01010200’=贷记7 Q/CUP046.6.2—2012字段名长度(字节数)描述格式‘01010300’=准贷记根CA公钥模的长度NCA,以十六进制表示。NCA是一根CA公钥模长2b个偶数根CA公钥算法标识1表示生成根CA公钥的密码算法b根CA公钥指数长度1根CA公钥指数长度eCA,以十六进制表示b注册的应用提供商标识(RID)5标识银联RID,为十六进制‘A000000333’b根CA公钥索引1唯一标识根CA公钥b根CA公钥模NCA根CA公钥模b根CA公钥指数eCA根CA公钥指数b本表第6到第9项的(从RID到根CA公钥指数)连接哈希值20b数据的哈希值6.4自签名根CA公钥自签名根CA公钥是根CA公钥文件的第二部分。自签名根CA公钥是根CA按照《中国金融集成电路(IC)卡规范》第七部分第12章规定的签名算法利用根CA签名私钥对根CA公钥证书数据(表4进行签名所得)。表4根CA公钥证书数据字段名长度(字节数)描述格式记录头1十六进制‘21’b标识一个中国银联借记贷记服务,将相应应用的私有应用标识扩展(PIX),右补十六进制‘0’构成。‘01010000’=借、贷记服务标识4b‘01010100’=借记‘01010200’=贷记‘01010300’=准贷记注册的应用提供商标识(RID)5标识银联RID:为十六进‘A000000333’b根CA公钥索引1唯一标识根CA公钥b证书失效日期2月和年(MMYY),在该月最后一日之后证书失效n4十六进制‘01’标识生成根CA公钥的公钥算法,见根CA公钥算法标识1b《中国金融集成电路(IC)卡规范》第七部分第12章。根CA公钥模的左边NCA−36+eCA字节,这里NCA和根CA公钥模的左边部分NCA−36+eCAbeCA分别表示根CA公钥模长和公钥指数长度。8 Q/CUP046.6.2—2012字段名长度(字节数)描述格式十六进制‘01’,标识生成哈希值的哈希算法,见《中哈希算法标识1b国金融集成电路(IC)卡规范》第七部分第12章。根CA公钥指数长度1为十六进制字节数,表示根CA公钥指数长度eCA。b根CA公钥指数eCA根CA公钥指数。b下列数据连接后计算的哈希值:RID、根CA公钥索引、哈希值20b根CA公钥模、根CA公钥指数。表4根CA公钥证书数据中哈希值的计算见《中国金融集成电路(IC)卡规范》第七部分第12章。7成员机构根CA公钥证书验证成员机构收到根CA公钥文件后,必须按照下列步骤对根CA公钥证书(根CA公钥文件)进行验证,验证成功后方可使用根CA测试及生产型公钥。成员机构使用从自签名根CA公钥数据解析出的哈希值来验证根CA公钥。1)按照未签名根CA公钥输出扩展中根CA公钥算法标识规定的公钥算法,使用未签名根CA公钥输出扩展中的根CA公钥模和根CA公钥指数,将自签名根CA公钥恢复出根CA公钥证书数据(见表4)。2)检查恢复的根CA公钥证书数据中的记录头,若不是‘21’,则拒绝该根CA公钥证书。3)从恢复的根CA公钥证书数据中的注册应用提供者标识(RID),若不是A000000333,则拒绝该根CA公钥。4)检查恢复的根CA公钥证书数据中的根CA公钥索引,若不符合本标准和《金融IC卡借记/贷记应用根CA公钥认证管理规则》,则拒绝该根CA公钥。5)检查恢复的根CA公钥证书数据中根CA公钥失效日期,若失效日期早于当前日期,则拒绝该根CA公钥。6)检查恢复的根CA公钥证书数据中根CA公钥算法标识,若不是‘01’,则拒绝该根CA公钥。7)检查恢复的根CA公钥证书数据中根CA公钥模长度,若该公钥模长度不符合《金融IC卡借记/贷记应用根CA公钥认证管理规则》第6.2.2.1节的规定,则拒绝该根CA公钥。8)检查根CA自签名数据和恢复的根CA公钥证书数据长度是否一致,并且数据长度都是NCA字节,若不是,则拒绝该根CA公钥。9)检查恢复的根CA公钥证书数据中根CA公钥指数长度,若不是‘01’,则拒绝该根CA公钥。1610)检查恢复的根CA公钥证书数据中根CA公钥指数,若不是3或2+1,则拒绝该根CA公钥。11)从记录头到根CA公钥指数将恢复的根CA公钥数据的各字段从左向右连接。12)按照根CA公钥数据中的哈希算法标识确定的哈希算法对上一步骤得到的数据计算哈希值。13)比较上一步骤计算的哈希值和恢复的根CA公钥数据中的哈希值,若不同,则拒绝该根CA公钥。14)将恢复的根CA公钥证书数据中的根CA公钥指数与未签名根CA公钥输出扩展中的根CA公钥指数比较,若不同,则拒绝该根CA公钥。15)将恢复的根CA公钥证书数据中根CA公钥模的左边部分(NCA−36+eCA字节)与未签名根CA公钥输出扩展中的根CA公钥模的前NCA−36+eCA字节比较,若不同,则拒绝该根CA公钥。若上述验证都通过,则成员机构可以接受所收到的根CA公钥。成员机构可以使用根CA公钥认证处理软件完成上述验证。9 Q/CUP046.6.2—20128发卡机构公钥输入文件8.1基本要求发卡机构为获得发卡机构生产型公钥证书或测试型公钥证书,需向中国银联提交发卡机构公钥证书申请,包括发卡机构公钥输入文件(电子版)和发卡机构公钥证书申请表(电子版)。发卡机构公钥输入文件的具体格式和要求见本标准第8.2、8.3、8.4节之规定。发卡机构公钥证书申请表见《金融IC卡借记/贷记应用根CA公钥认证管理规则》附录D。8.2发卡机构公钥输入文件命名公钥输入文件的文件名格式为:“YLTTTTTT.INP”。其中“YL”为前缀;“TTTTTT”是记录号,唯一标识一个发卡机构的一次公钥证书申请,由银联统一管理和分发,发卡机构必须使用该记录号。例如:YL123456.INP。8.3发卡机构公钥输入文件结构发卡机构公钥输入文件是一个二进制文件,由两部分组成,如表5所示。表5公钥输入文件字段名长度(字节数)描述未签名发卡机构公钥输入扩展7+NI+e见本标准第8.4.1节。这里自签名发卡机构公钥数据NINI是发卡机构公钥模长的字节数,e为发卡机构公钥指数长度的字节数。见本标准第8.4.2节。8.4发卡机构公钥输入文件格式8.4.1未签名发卡机构公钥输入扩展未签名发卡机构公钥输入扩展是发卡机构公钥输入文件的第一部分。该输入扩展提供发卡机构公钥信息,具体格式见表6。表6未签名发卡机构公钥输入扩展字段名长度(字节数)描述编码格式记录头1十六进制值‘22’b发卡机构公钥模长1发卡机构公钥模长(NI)的十六进制值(字节数)b发卡机构公钥模Var未经签名的发卡机构公钥模(NI)b发卡机构公钥指数长度1发卡机构公钥指数长度(e)(字节数)b发卡机构公钥指数Var发卡机构公钥指数b发卡机构公钥算法标识1标识用于发卡机构公钥的数字签名算法,见《中国b金融集成电路(IC)卡规范》第七部分第12章记录号3发卡机构公钥证书申请记录号n68.4.2自签名发卡机构公钥数据自签名发卡机构公钥数据是发卡机构公钥输入文件的第二部分,发卡机构利用所申请发卡机构公钥证书中的公钥对应的私钥对该发卡机构公钥数据进行签名。根CA使用该发卡机构公钥来验证签名的公钥数据。发卡机构使用发卡机构私钥对发卡机构公钥数据(表4中的所有数据)进行签名,形成自签名发卡机构公钥数据。其中,发卡机构私钥应与提交给中国银联的发卡机构公钥相对应,签名算法参见《中国金10 Q/CUP046.6.2—2012融集成电路(IC)卡规范》第七部分第12章的数字签名算法。自签名发卡机构公钥数据的长度必须等于用来签名的发卡机构公私钥对中公钥的长度。表4中的哈希值是将表4中除了哈希值外所有数据依原有顺序连接后进行哈希计算得到的。该哈希值仅用于根CA对发卡机构提交的公钥数据进行认证,与组成发卡机构公钥证书的哈希值不是同一个值。表7发卡机构公钥数据字段名长度(字节)描述格式记录头1十六进制‘23’b标识一个中国银联借记贷记服务,将相应应用的私有应用标识扩展(PIX),右补十六进制‘0’构成。‘01010000’=借、贷记服务标识4b‘01010100’=借记‘01010200’=贷记‘01010300’=准贷记证书格式1十六进制‘02’b发卡机构标4主帐号(PAN)最左面的3-8个数字。(不足部分右补十六进制数‘F’)cn8识证书失效日2月和年(MMYY),在该月最后一天之后证书失效n4期记录号3发卡机构公钥证书申请记录号n6哈希算法标标识用来产生哈希值的哈希算法,见《中国金融集成电路(IC)卡规范》1b识第七部分第12章发卡机构公标识发卡机构使用的数字签名算法,见《中国金融集成电路(IC)卡规1b钥算法标识范》第七部分第12章发卡机构公1以十六进制表示的发卡机构公钥模长(NI)(字节数)b钥模长发卡机构公1以十六进制表示的发卡机构公钥指数长度(字节数)b钥指数长度发卡机构公公钥模(NI)的最左NI-(39+e)部分,这里NI表示发卡机构公钥模长的字钥模的左边NI−(39+e)b节数,e表示发卡机构公钥指数所占的字节数部分发卡机构公e发卡机构公钥指数,为3或65537,以十六进制存储为‘03’或‘010001’b钥指数发卡机构公钥及其相关信息的哈希结果,为本表中除哈希值外从记录头哈希值20b依顺序到发卡机构公钥指数的哈希值成员发卡机构生成自签名发卡机构公钥数据的流程如图3所示。成员发卡机构可以使用根CA公钥认证处理软件完成上述发卡机构公钥证书输出文件的生成。11 Q/CUP046.6.2—2012记录头服务标识记录头证书格式发卡机构标识证书失效日期记录号哈希算法标识发卡机构公钥算法标识发卡机构公钥模长发卡机构公钥指数长度发卡机构公钥模的左边部分发卡机构公钥指数哈希算法记录头服务标识证书格式发卡机构标识证书失效日期记录号哈希算法标识发卡机构公钥算法标识发卡机构公钥模长发卡机构公钥指数长度发卡机构公钥模的左边部分发卡机构公钥指数哈希值NI字节公钥算法发卡机构签名私钥NINI字节自签名发卡机构公钥数据字节图3生成自签名发卡机构公钥数据的流程9发卡机构公钥输入文件的验证中国银联需对发卡机构公钥输入文件(包含未签名发卡机构公钥输入扩展和自签名发卡机构公钥数据)进行验证。中国银联按照下列步骤验证发卡机构公钥输入文件,并恢复发卡机构公钥数据。1)检查未签名发卡机构公钥输出扩展文件长度是否是7+NI+e字节,若不是,则中国银联拒绝该公钥证书申请。2)检查自签名发卡机构公钥数据是否为NI个字节,若不是,则中国银联拒绝该公钥证书申请。3)检查未签名发卡机构公钥输入扩展中的公钥算法标识来验证其是否是十六进制‘01’。若不是,则该标识不符合《中国金融集成电路(IC)卡规范》,此时中国银联将拒绝该公钥证书申请。4)检查未签名发卡机构公钥输入扩展中的公钥长度是否为中国银联可接受的长度(小于或等于中国银联将用来签发该证书的公钥模长),若不是,则中国银联拒绝该公钥证书申请。5)检查未签名发卡机构公钥输入扩展中的公钥指数长度是否为1,若不是,则中国银联拒绝该公钥证书申请。6)检查未签名发卡机构公钥输入扩展中的公钥指数是否为3,若不是,则中国银联拒绝该公钥证书申请。7)检查未签名发卡机构公钥输入扩展以获取发卡机构公钥模。8)使用《中国金融集成电路(IC)卡规范》第7部分第12章的数据恢复算法恢复发卡机构公12 Q/CUP046.6.2—2012钥数据(表4),以恢复发卡机构公钥数据。9)检查恢复的发卡机构公钥数据中记录头是否是十六进制‘23’,若不是,则中国银联拒绝该公钥证书申请。10)恢复的发卡机构公钥数据中证书格式是否是十六进制‘02’,若不是,则中国银联拒绝该公钥证书申请。11)恢复的发卡机构公钥数据中发卡机构标识。中国银联检查发卡机构标识是否是中国银联所接受的,若不是,则中国银联拒绝该公钥证书申请。12)恢复的发卡机构公钥数据中记录号和未签名发卡机构公钥输入扩展中的记录号是否相同,并且是否是中国银联安排的,若不是,则中国银联拒绝该公钥证书申请。13)检查恢复的发卡机构公钥数据中的发卡机构公钥指数长度是1,若不是,则中国银联拒绝该公钥证书申请。14)检查恢复的发卡机构公钥数据中的发卡机构公钥指数是否是3,若不是,则中国银联拒绝该公钥证书申请。15)检查恢复的发卡机构公钥数据中的发卡机构公钥算法标识和未签名发卡机构公钥输入扩展中的发卡机构公钥算法标识是否相同,若不是,则中国银联拒绝该公钥证书申请。16)检查恢复的发卡机构公钥数据中的发卡机构公钥模长和未签名发卡机构公钥输入扩展的发卡机构公钥模长是否相同,若不是,则中国银联拒绝该公钥证书申请。17)检查恢复的发卡机构公钥数据中的发卡机构公钥模左边NI−(39+e)个字节和未签名发卡机构公钥输入扩展中的发卡机构公钥模左边NI−(39+e)个字节是否相同,若不是,则中国银联拒绝该公钥证书申请。18)检查恢复的发卡机构公钥数据中的发卡机构哈希算法标识是否是十六进制‘01’,若不是,则中国银联拒绝该公钥证书申请。19)自左向右连接恢复的发卡机构公钥数据中从记录头到发卡机构公钥指数的各项数据。20)使用以哈希算法标识字段规定的哈希算法计算上一步骤得到的连接数据的哈希值。21)比较上一步骤计算的哈希值和恢复的发卡机构公钥数据(表7)中的哈希值,若不同,则中国银联拒绝该公钥证书申请,若相同并且上述所有步骤的验证都成功,则中国银联接受该公钥证书的申请。10发卡机构公钥输出文件在中国银联按照《金融IC卡借记/贷记应用根CA公钥认证管理规则》程序同意发卡机构公钥证书申请并将发卡机构公钥证书申请传递给根CA后,根CA签发该发卡机构公钥证书并产生一个发卡机构公钥证书输出文件。发卡机构公钥证书输出文件由三部分组成,第一部分是未签名发卡机构公钥输出扩展,第二个部分是根CA对发卡机构公钥证书的签名,第三个部分是根CA公钥单独签名。各部分的组成详见本标准第10.3节、第10.4节和第10.5节。10.1发卡机构公钥证书输出文件命名发卡机构公钥输出文件名格式为:AAAAAA.INN。其中:“AAAAAA”是申请记录号,与本标准第6.4节自签名发卡机构公钥数据中的记录号相同;I是固定值(‘I’)表示发卡机构;NN是用来签发发卡机构公钥证书的根CA公钥的索引。例如:010101.I01。10.2发卡机构公钥证书输出文件结构发卡机构公钥证书输出文件的格式见表8。表8发卡机构公钥证书输出文件字段名长度(字节数)描述17+e若NI≤NCA+36见本标准第未签名发卡机构公钥输出扩展53+NI−NCA+e若NI>NCA+36710.3节13 Q/CUP046.6.2—2012这里,e、NI、和NCA分别表示发卡机构公钥指数字节数、发卡机构公钥模长字节数、和根CA用来生成该发卡机构公钥证书的公钥模长字节数见本标准第签名的发卡机构公钥证书NCA10.4节见本标准第根CA单独签名NCA10.5节10.3未签名发卡机构公钥输出扩展未签名发卡机构公钥输出扩展是发卡机构公钥输出文件的第一部分,其格式见表9。该公钥输出扩展提供了该发卡机构公钥证书信息。表9未签名发卡机构公钥输出扩展字段名长度(字节数)描述格式记录头1十六进制值‘24’b标识一个中国银联借记贷记服务,将相应应用的私有应用标识扩展(PIX),右补十六进制‘0’构成。‘01010000’=借、贷记服务标识4b‘01010100’=借记‘01010200’=贷记‘01010300’=准贷记发卡机构标识4主帐号(PAN)最左面的3-8个数字。(不足部分右补十六进制数’F’)cn8证书序列号3由根CA系统分配的唯一标识证书的二进制数b证书失效日期2月和年(MMYY),在该月最后一天之后证书失效n4发卡机构公钥1发卡机构公钥模余项的长度b余项长度发卡机构公钥0和(NI–NCA+该字段仅在NI>NCA–36时存在,由发卡机构公钥(NI)的最低NI-NCA+b余项36)的最大值36字节组成。发卡机构公钥1以十六进制表示的发卡机构公钥指数的长度(字节数)b指数长度发卡机构公钥发卡机构公钥指数,为3或65537,存储为十六进制‘03’或十六进eb指数制‘010001’根CA公钥索1根CA系统用来签发发卡机构公钥证书的公钥索引b引10.4签名的发卡机构公钥证书签名的发卡机构公钥证书是发卡机构公钥证书输出文件的第二部分,由根CA利用相应根CA私钥对表10中的发卡机构公钥数据进行签名产生。表10发卡机构公钥证书数据字段名长度(字节数)描述格式恢复数据头1十六进制值‘6A’b证书格式1十六进制值‘02’b主帐号最左面的3到8位数字(从第1位开始)(不足部分右补发卡机构标识4cn8十六进制‘F’)14 Q/CUP046.6.2—2012证书失效日期2月和年份(MMYY),在本月最后一天之后证书失效n4证书序列号3由根CA系统分配的唯一标识证书的二进制数b哈希算法标识1标识用来产生数字签名哈希值的哈希算法b发卡机构公钥算法标1标识用于发卡机构公钥的数字签名算法b识发卡机构公钥长度1以十六进制表示的发卡机构公钥的模长(NI)(字节数)b发卡机构公钥指数长1以十六进制表示的发卡机构公钥指数的长度(字节数)b度如果NI≤NCA-36,该字段包含了完整的发卡机构公钥模(NI),发卡机构公钥模的左并在右面填充NCA–36–NI个字节的‘BB’。NCA−36b边部分如果NI>NCA–36,该字段包含了发卡机构公钥模(NI)的最高NCA–36字节哈希值20发卡机构公钥及其相关信息的哈希结果n恢复数据尾1十六进制值‘BC’b根CA通过未签名发卡机构公钥输出扩展(表9)中的根CA公钥索引来定位根CA公钥及私钥,并通过该根CA私钥对发卡机构公钥证书数据(表10)进行签名得到签名的发卡机构公钥证书。10.5根CA单独签名由于未签名发卡机构公钥输出扩展没有经过根CA签名,为保证其文件的数据完整性、信息源可认证性以及与签名的发卡机构公钥证书的有效绑定,在发卡机构公钥证书输出文件中加入了根CA单独签名。根CA单独签名是发卡机构公钥证书输出文件的第三部分,由根CA通过根CA私钥对根CA单独签名数据(表11)进行签名,其中,根CA私钥通过未签名发卡机构公钥输出扩展(表9)中的根CA公钥索引来定位,使用的签名算法见《中国金融集成电路(IC)卡规范》第七部分第12章。发卡机构对根CA单独签名的验证本标准不做强制性要求。表11根CA单独签名数据文件长度(字节数)描述格式记录头1十六进制‘00’b分组格式编码1十六进制‘01’b右边添加字符NCA-24NCA-24字节十六进制‘FF’b分隔符1十六进制‘00’b算法标识1根CA使用的哈希算法标识,为十六进制‘01’b对未签名发卡机构公钥输出扩展(表6)和发卡机构公钥证书哈希值20b数据(表7)进行连接后的数据计算哈希值11发卡机构公钥证书验证发卡机构在收到中国银联为其颁发的发卡机构公钥证书后必须经过验证才可使用。发卡机构公钥证书是以发卡机构公钥证书输出文件(见本标准第10章)传递的,发卡机构按照下列步骤验证发卡机构公钥证书:1)从发卡机构公钥证书输出文件的第一个数据(未签名发卡机构公钥输出扩展)中解析出根CA公钥索引,判断发卡机构由《金融IC卡借记/贷记应用根CA公钥认证管理规则》第6.2节程序得到的根CA公钥证书中的公钥索引是否与该索引相同,若不同则验证失败。2)发卡机构将发卡机构公钥证书输出文件的第二个数据(签名的发卡机构公钥证书)的长度与根15 Q/CUP046.6.2—2012CA公钥证书中的公钥模长比较,若不同则验证失败。3)使用根CA公钥,按照《中国金融集成电路(IC)卡规范》第七部分第12章规定的公钥算法对发卡机构公钥证书输出文件的第二个数据(签名的发卡机构公钥证书)作数据恢复运算,恢复发卡机构公钥证书数据(见表10),若恢复数据结尾不是‘BC’,则验证失败。4)检查恢复的发卡机构公钥证书数据的数据头,若不是‘6A’,则验证失败。5)检查恢复的发卡机构公钥证书数据的证书格式,若不是‘02’,则验证失败。6)从“证书格式”到“发卡机构公钥左边部分”将恢复的发卡机构公钥证书数据的各字段进行连接。7)对上一步骤的连接数据按照《中国金融集成电路(IC)卡规范》第七部分第12章规定的哈希算法计算哈希值。8)比较上一步骤计算的哈希值和恢复的发卡机构公钥证书数据中的哈希值,若不同,则验证失败。9)检查发卡机构标识,若不是银联所接受的,则验证失败。10)检查证书失效日期,如不正确,则验证失败。11)检查发卡机构哈希算法标识,若不是‘01’,则验证失败。12)检查发卡机构公钥算法标识,若不是‘01’,则验证失败。13)如果上述所有验证都是正确的,则发卡机构公钥证书验证成功。将发卡机构公钥模的左边部分与发卡机构公钥模余项连接,得到完整的发卡机构公钥模。成员机构可以使用根CA公钥认证处理软件完成上述验证。16 Q/CUP046.6.2—2012参考文献EMV2000IntegratedCircuitCardSpecificationforPaymentSystems:Book1~Book417'