首页 PBOC3.0 发布版\PBOC3.0发布版\17部分:借记贷记应用安全增强规范

PBOC3.0 发布版\PBOC3.0发布版\17部分:借记贷记应用安全增强规范

举报
开通vip

PBOC3.0 发布版\PBOC3.0发布版\17部分:借记贷记应用安全增强规范ICS35.240.40A11备案号:JR中华人民共和国金融行业标准JR/T0025.17—2013中国金融集成电路(IC)卡规范第17部分:借记/贷记应用安全增强规范Chinafinancialintegratedcircuitcardspecifications—Part17:Enhanceddebit/creditapplicationsecurityspecification2013-02-05发布2013-02-05实施中国人民银行发布JR/T0025.17—2013目次前言..................

PBOC3.0 发布版\PBOC3.0发布版\17部分:借记贷记应用安全增强规范
ICS35.240.40A11备案号:JR中华人民共和国金融行业 标准 excel标准偏差excel标准偏差函数exl标准差函数国标检验抽样标准表免费下载红头文件格式标准下载 JR/T0025.17—2013中国金融集成电路(IC)卡 规范 编程规范下载gsp规范下载钢格栅规范下载警徽规范下载建设厅规范下载 第17部分:借记/贷记应用安全增强规范Chinafinancialintegratedcircuitcardspecifications—Part17:Enhanceddebit/creditapplicationsecurityspecification2013-02-05发布2013-02-05实施中国人民银行发布JR/T0025.17—2013目次前言.................................................................................II引言................................................................................III1范围................................................................................12规范性引用文件......................................................................13术语和定义..........................................................................14符号和缩略语........................................................................25脱机数据认证........................................................................45.1静态数据认证(SDA)..............................................................45.2动态数据认证(DDA)..............................................................66应用密文和发卡行认证...............................................................116.1应用密文产生.....................................................................116.2发卡行认证.......................................................................127安全报文...........................................................................137.1报文完整性及其验证...............................................................137.2报文私密性.......................................................................138安全机制...........................................................................138.1对称加密机制.....................................................................138.2非对称密码机制...................................................................169认可的算法.........................................................................179.1对称加密算法.....................................................................179.2非对称算法.......................................................................179.3哈希算法.........................................................................1710算法选择与交易流程................................................................1710.1新增数据元......................................................................1710.2SM算法应用 方案 气瓶 现场处置方案 .pdf气瓶 现场处置方案 .doc见习基地管理方案.doc关于群访事件的化解方案建筑工地扬尘治理专项方案下载 .................................................................1710.3借记贷记应用流程................................................................1810.4基于借记贷记应用的小额支付流程..................................................2010.5qPBOC应用流程..................................................................2210.6个人化相关密钥的初始化..........................................................2311PIN修改/解锁命令数据计算方式......................................................2411.1使用当前PIN修改PIN值..........................................................2411.2不使用当前PIN修改PIN值........................................................24附录A(规范性附录)算法标识........................................................25参考文献.............................................................................27IJR/T0025.17—2013前言JR/T0025《中国金融集成电路(IC)卡规范》分为以下部分:——第1部分:电子钱包/电子存折应用卡片规范(废止);——第2部分:电子钱包/电子存折应用规范(废止);——第3部分:与应用无关的IC卡与终端接口规范;——第4部分:借记/贷记应用规范;——第5部分:借记/贷记应用卡片规范;——第6部分:借记/贷记应用终端规范;——第7部分:借记/贷记应用安全规范;——第8部分:与应用无关的非接触式规范;——第9部分:电子钱包扩展应用指南(废止);——第10部分:借记/贷记应用个人化指南;——第11部分:非接触式IC卡通讯规范;——第12部分:非接触式IC卡支付规范;——第13部分:基于借记/贷记应用的小额支付规范;——第14部分:非接触式IC卡小额支付扩展应用规范;——第15部分:电子现金双币支付应用规范;——第16部分:IC卡互联网终端规范;——第17部分:借记/贷记应用安全增强规范。本部分为JR/T0025的第17部分。本部分依据GB/T1.1-2009给出的规则起草。本部分由中国人民银行提出。本部分由全国金融标准化技术委员会(SAC/TC180)归口。本部分主要起草单位:中国人民银行、国家密码管理局商用密码管理办公室、总参三部、中国工商银行、中国建设银行、中国邮政储蓄银行、中国银联股份有限公司、中国金融电子化公司、中国金融认证中心、银行卡检测中心、北京中电华大电子设计有限责任公司、北京诺君安信息技术有限公司、北京江南天安科技有限公司、北京华大信安科技有限公司、北京华大智宝电子系统有限公司、上海格尔软件股份有限公司、航天信息股份有限公司。本部分主要起草人:王永红、李晓枫、陆书春、潘润红、杜宁、陈则栋、吴晓光、安晓龙、谢永泉、刘平、徐志忠、陈芳、汤洋、严伟峰、李东风、张永峰、赵宇、李春欢、张栋、汤沁莹、仲祺、施海平、李一凡、史大鹏、李建峰、李新、陈震宇、郑元龙、董浩然、韩小西、李国、汪朝晖、陈跃、谭武征、罗世新。本部分为首次发布。IIJR/T0025.17—2013引言本部分是对JR/T0025.7的扩展,以支持SM2、SM3和SM4等密码算法在借记/贷记应用中的使用。本部分介绍了认证中心、发卡行和IC卡使用SM2算法进行数字签名,使用SM3算法计算哈希值,使用SM4算法进行数据加密及安全报文计算的实现。IIIJR/T0025.17—2013中国金融集成电路(IC)卡规范第17部分:借记/贷记应用安全增强规范1范围本部分作为JR/T0025.7的增强,主要规定描述了基于SM2、SM3、SM4算法的借记/贷记应用安全功能方面的要求以及为实现这些安全功能所涉及的安全机制和获准使用的加密算法,包括:基于SM2、SM3的IC卡脱机数据认证方法,基于SM4的IC卡和发卡行之间的通讯安全以及为实现这些安全功能所涉及的安全机制和加密算法的规范。本部分适用于由银行发行或受理的金融借记/贷记IC卡应用与安全有关的设备、卡片、终端机具及管理等。其使用对象主要是与金融借记贷记IC卡应用相关的卡片、终端及加密设备等的设计、制造、管理、发行以及应用系统的研制、开发、集成和维护等相关部门(单位)。2规范性引用文件下列文件对于本文件的应用是必不可少的。凡是注日期的引用文件,仅注日期的版本适用于本文件。凡是不注日期的引用文件,其最新版本(包括所有的修改单)适用于本文件。JR/T0025.4中国金融集成电路(IC)卡规范第4部分:借记/贷记应用规范JR/T0025.5中国金融集成电路(IC)卡规范第5部分:借记/贷记应用卡片规范JR/T0025.7中国金融集成电路(IC)卡规范第7部分:借记/贷记应用安全规范GM/T0002SM4分组密码算法GM/T0003SM2椭圆曲线公钥密码算法GM/T0004SM3密码杂凑算法GM/TAAAASM2密码算法使用规范3术语和定义下列术语和定义适用于本文件。3.1应用application卡片和终端之间的应用 协议 离婚协议模板下载合伙人协议 下载渠道分销协议免费下载敬业协议下载授课协议下载 和相关的数据集。3.2命令command终端向IC卡发出的一条报文,该报文启动一个操作或请求一个响应。3.3密文cryptogram加密运算的结果。3.4金融交易financialtransaction由于持卡者和商户之间的商品或服务交换行为而在持卡者、发卡机构、商户和收单行之间产生的信息交换、资金清算和结算行为。3.51JR/T0025.17—2013集成电路integratedcircuit(IC)具有处理和/或存储功能的电子器件。3.6集成电路卡(IC卡)integratedcircuit(s)card(ICC)内部封装一个或多个集成电路用于执行处理和存储功能的卡片。3.7接口设备interfacedevice终端上插入IC卡的部分,包括其中的机械和电气部分。3.8发卡行行为代码issueractioncode发卡行根据TVR的内容选择的动作。3.9磁条magstripe包括磁编码信息的条状物。3.10支付系统环境paymentsystemenvironment当符合JR/T0025的支付系统应用被选择,IC卡中所确立的逻辑条件集合。3.11响应responseIC卡处理完成收到的命令报文后,返回给终端的报文。3.12脚本script发卡行向终端发送的命令或命令序列,目的是向IC卡连续输入命令。3.13SM2算法SM2algorithm一种椭圆曲线公钥密码算法,其密钥长度为256比特。3.14SM3算法SM3algorithm一种密码杂凑算法,其输出为256比特。3.15SM4算法SM4algorithm一种分组密码算法,分组长度为128比特,密钥长度为128比特。3.16终端terminal在交易点安装、用于与IC卡配合共同完成金融交易的设备。它应包括接口设备,也可包括其它的部件和接口(如与主机的通讯)。3.17终端行为代码terminalactioncode收单行根据TVR的内容选择的动作。4符号和缩略语下列符号和缩略语适用于本文件。AAC应用认证密文(ApplicationAuthenticationCryptogram)AC应用密文(ApplicationCryptogram)2JR/T0025.17—2013AFL应用文件定位器(ApplicationFileLocator)AIP应用交互特征(ApplicationInterchangeProfile)ARC授权响应码(AuthorizationResponseCode)ARPC授权响应密文(AuthorizationResponseCryptogram)ARQC授权请求密文(AuthorizationRequestCryptogram)ATC应用交易计数器(ApplicationTransactionCounter)ATM自动柜员机(AutomatedTellerMachine)AUC应用用途控制(ApplicationUsageControl)CDA复合动态数据认证/应用密文生成(CombinedDDA/ACGeneration)CDOL卡片风险管理数据对象列表(CardRiskManagementDataObjectList)CID密文信息数据(CryptogramInformationData)Cn压缩数字型(CompressedNumeric)CVM持卡人验证方法(CardholderVerificationMethod)CVR卡片验证结果(CardVerificationResults)DDA动态数据认证(DynamicDataAuthentication)DDOL动态数据认证数据对象列表(DynamicDataAuthenticationDataObjectList)DESDES数据加密标准(DataEncryptionStandard)DOL数据对象列表(DataObjectList)ECB电子密码本(ElectronicCodeBook)EF基本文件(ElementaryFile)EMVEuropay、MasterCard和VISAFCI文件控制信息(FileControlInformation)GPO获取处理选项(GetProcessingOptions)IAC发卡行行为代码(IssuerActionCode)IC集成电路(IntegratedCircuit)M必备(Mandatory)MAC报文鉴别码(MessageAuthenticationCode)MDK主密钥(MasterKey)N数字型(Numeric)O可选(Optional)PAN主账号(PrimaryAccountNumber)PIN个人识别码(PersonalIdentificationNumber)RSARSA公钥密码算法(Rivest,Shamir,AdlemanAlgorithm)SCA认证中心私钥(CertificationAuthorityPrivateKey)SAD签名的静态应用数据(SignedStaticApplicationData)SDA静态数据认证(StaticDataAuthentication)SFI短文件标识符(ShortFileIdentifier)SHASHA安全哈希(杂凑)算法(SecureHashAlgorithm1)SI发卡行私钥(IssuerPrivateKey)SICIC卡私钥(ICCPrivateKey)Sign(SK)[X]用私钥SK,通过SM2算法,对数据块X进行签名SW1状态字1(StatusWordOne)SW2状态字2(StatusWordTwo)TC交易证书(TransactionCertificate)3JR/T0025.17—2013TLV标签、长度、值(TagLengthValue)TVR终端验证结果(TerminalVerificationResults)UDK子密钥(UniqueKey)Verify(PK)[X,S]用公钥PK,通过SM2算法,对数据块X的签名结果S进行验证X:=ALG-1(K)[Y]用密钥K,通过64位或128位分组加密方法,对64位或128位数据块Y进行解密Y:=ALG(K)[X]用密钥K,通过64位或128位分组加密方法,对64位或128位数据块X进行加密5脱机数据认证5.1静态数据认证(SDA)5.1.1密钥和证书认证中心使用认证中心私钥SCA,对表1中指明的数据使用SM2算法进行签名,得到格式如表4所示的发卡行公钥证书。发卡行使用发卡行私钥SI,对表2中指明的数据使用SM2算法进行签名,得到签名的静态应用数据,其格式见表5。执行静态数据认证需要的必要数据元在表3中定义,如果缺少这些数据中的任意一项,静态数据认证失败。表1由认证中心签名的发卡行公钥数据(待签名数据)字段名长度描述格式证书格式( 记录 混凝土 养护记录下载土方回填监理旁站记录免费下载集备记录下载集备记录下载集备记录下载 头)1十六进制,值为‘12’B发卡行标识4主账号最左面的3-8个数字。(在右边补上十六Cn8进制数‘F’)证书失效日期2MMYY,在此日期后,这张证书无效N4证书序列号3由认证中心分配给这张证书的唯一的二进制数b发卡行公钥签名算法标识1标识发卡行公钥对应的数字签名算法。SM2算b法为‘04’。发卡行公钥加密算法标识1标识发卡行公钥对应的加密算法,暂不使用,b取值‘00’。发卡行公钥参数标识1用于标识所用的椭圆曲线。见附录A.4b发卡行公钥长度1标识发卡行公钥字节长度b发卡行公钥NISM2公钥是椭圆曲线上的一个点b对表1中的数据计算进行SM2签名的结果是两个大整数r和s,签名格式见GM/TAAAA,将字节串r||s附着在表1之后就形成了用SM2签名的发卡行公钥证书,其格式见表4。密码算法标识的定义见附录A。表2由发卡行签名的静态应用数据(待签名数据)字段名长度描述格式签名数据格式1十六进制,值为‘13’b数据验证代码2由发卡行分配的代码b需认证的静态数据变长在JR/T0025.5的9.3.1节指明的需认证的静-态数据4JR/T0025.17—2013表3SM2签名静态数据认证用到的数据对象标签长度值格式-5注册的应用提供商标识B‘8F’1认证中心公钥索引B‘90’NCA+NI+14SM2签名的发卡行公钥证书数据,格式B见表4‘93’NI+3SM2签名静态应用数据,格式见表5B-变长在JR/T0025.5的9.3.1节指明的需认-证的静态数据5.1.2发卡行公钥获取认证中心采用SM2算法签名发卡行公钥证书,终端获取的发卡行证书数据如表4所示,包括被签名的明文数据及数字签名。发卡行公钥以明文形式包含在发卡行公钥证书中,用认证中心的公钥验证发卡行公钥证书中的签名字段。如验证通过,则从发卡行公钥证书中提取公钥信息。表4发卡行公钥证书的格式字段名长度描述格式证书格式1十六进制,值为‘12’B发卡行标识4主账号最左面的3-8个数字(在右边补上十六进制数cn8‘F’)证书失效日期2MMYY,在此日期后,这张证书无效n4证书序列号3由认证中心分配给这张证书的,唯一的二进制数b发卡行公钥签名算法标识1标识使用在发卡行公钥上的数字签名算法。SM2算法为b‘04’。发卡行公钥加密算法标识1标识使用在发卡行公钥上的加密算法,暂不使用,取值b‘00’。发卡行公钥参数标识1用于标识椭圆曲线,同时确定NI。见附录A.4b发卡行公钥长度1标识发卡行公钥字节长度b发卡行公钥NI对于SM2算法是椭圆曲线上的一个点b数字签名NCA认证中心对表1的数据计算的SM2签名r||sb使用SM2算法签名的发卡行公钥证书验证步骤如下:获取并解析如表4所示的发卡行公钥证书数据。如果失败,那么静态数据认证失败。a)检查证书格式的值。如果不是“12”,那么静态数据认证失败。b)比较发卡行标识的值是否与应用主账号最左面的3-8个数字一致(允许发卡行标识在其后补“F”)。如果不一致,那么静态数据认证失败。c)比较证书失效日期中指定年月的最后日期与当天的日期。如果证书失效日期在今天的日期之前,那么证书已过期,静态数据认证失败。d)检查连接起来的RID、认证中心公钥索引、证书序列号是否有效。如果无效,那么静态数据认证失败。e)检查发卡行公钥签名算法标识,如果不是“04”,那么静态数据认证失败。f)准备表4中前9个数据元(即表1数据)。g)使用认证中心公钥和相应的认证中心签名算法按照8.2.3条中指明的验证方法对表4的数字签名进行验证。如果验证签名失败,那么静态数据认证失败。h)如果以上所有的检验都通过,继续下面的流程。5JR/T0025.17—20135.1.3签名的静态应用数据验证终端获取的SM2签名静态应用数据的格式如表5所示,包括被签名的明文数据及数字签名。表5签名的静态应用数据格式字段名长度描述格式签名数据格式1十六进制,值为‘13’B数据验证代码2由发卡行分配的代码B数字签名NI发卡行对表2中数据计算的SM2签名r||sB验证步骤如下:a)获取并解析如表5所示的经过发卡行签名的签名静态数据。如果失败,则静态数据认证失败。b)检查签名数据格式的值。如果不是“13”,那么静态数据认证失败。c)准备表5的前2个数据元及JR/T0025.5的9.3.1条中指明的需认证的静态数据(用于验证签名)。如果静态数据认证标签列表存在,并且其包含非“82”的标签,那么静态数据认证失败。d)使用发卡行公钥和相应的发卡行签名算法并将8.2.3条中指明的验证方法对表5的数字签名进行验证。如果验证签名失败,那么静态数据认证失败。如果以上所有的步骤都成功,那么静态数据认证成功。终端应将表5中的数据验证代码存放在标签“9F45”中。5.2动态数据认证(DDA)5.2.1密钥和证书认证中心使用认证中心私钥SCA,对表1中指明的数据使用SM2算法进行签名,得到格式如表4所示的发卡行公钥证书。发卡行使用发卡行私钥SI,对表6中指定的数据使用SM2算法签名,得到IC卡公钥证书,其格式见表8。执行动态数据认证需要的必要数据元在表7中定义,如果缺少这些数据中的任意一项,动态数据认证失败。表6由发卡行签名的IC卡公钥数据(待签名数据)字段名长度描述格式证书格式1十六进制,值为‘14’b应用主账号10主账号(在右边补上十六进制数‘F’)Cn20证书失效日期2MMYY,在此日期后,这张证书无效n4证书序列号3由发卡行分配给这张证书的唯一的二进制数bIC卡公钥签名算法标识1标识IC卡公钥对应的数字签名算法bIC卡公钥加密算法标识1标识IC卡公钥对应的加密算法,暂不使用,取值‘00’。bIC卡公钥参数标识1用于标识椭圆曲线,同时确定NIC。见附录A.4bIC卡公钥长度1标识IC卡公钥的字节长度bIC卡公钥NIC如果IC卡公钥算法标识对应于SM2,该字段为椭圆曲线上的b一个点参与脱机数据认证的静态数据变长在JR/T0025.5中定义b对表6中数据进行SM2签名的结果是两个大整数r和s,将字节串r||s附着在表6的前9项之后就形成了用SM2签名的IC卡公钥证书,其格式见表8。表7动态认证中的公钥认证所需的数据对象标签长度值格式-5注册的应用提供商标识B‘8F’1认证中心公钥索引B6JR/T0025.17—2013‘90’NCA+NI+14SM2签名的发卡行公钥证书数据,格式见表4B‘9F46’NI+NIC+20SM2签名的IC卡公钥证书数据,格式见表8B-变长JR/T0025.5第9.3.1节详细说明了需认证的静态数据-5.2.2发卡行公钥的获取见5.1.2。5.2.3IC卡公钥的获取终端获取的IC卡公钥证书数据如表8所示。IC卡公钥以明文形式包含在IC卡公钥证书中,终端用发卡行的公钥验证IC卡公钥证书中的签名字段。如验证通过,则从IC卡公钥证书中提取公钥信息。表8发卡行使用SM2签名的IC卡公钥证书的格式字段名长度描述格式证书格式1十六进制,值为‘14’B应用主账号10主账号(在右边补上十六进制数‘F’)cn20证书失效日期2MMYY,在此日期后,这张证书无效n4证书序列号3由发卡行分配给这张证书的唯一的二进制数BIC卡公钥签名算法标识1标识使用在IC卡公钥上的数字签名算法。SM2算法B为‘04’。IC卡公钥加密算法标识1标识使用在IC卡公钥上的加密算法,暂不使用,取B值‘00’。IC卡公钥参数标识1用于标识所用的椭圆曲线。见附录A.4BIC卡公钥长度1标识IC卡公钥的字节长度BIC卡公钥NIC对于SM2算法是椭圆曲线上的一个点B数字签名NI发卡行对表6数据计算的SM2签名r||sB验证步骤如下:a)获取并解析如表8所示的经过IC卡公钥证书数据。如果失败,则动态数据认证失败。b)检查证书格式的值。如果不是“14”,那么动态数据认证失败。c)比较证书中的主账号和从IC卡读出的应用主账号是否相同。如果不同,那么动态数据认证失败。d)比较证书失效日期中指定年月的最后日期与当天的日期。如果证书失效日期在今天的日期之前,那么证书已过期,动态数据认证失败。e)准备表8中的前9个数据元以及JR/T0025.5的9.3.1条指明的需认证的静态数据(用于验证签名)。如果静态数据认证标签列表存在,并且其包含非“82”的标签,那么动态数据认证失败。f)检查IC卡公钥签名算法标识,如果不是“04”,那么动态数据认证失败。g)使用发卡行公钥和相应的发卡行签名算法将8.2.3条中指明的验证方法对表8的数字签名进行验证。如果验证签名失败,那么动态数据认证失败。h)如果以上所有的检验都通过,继续下面的流程。5.2.4标准动态数据认证5.2.4.1动态签名的生成使用SM2算法生成动态签名按以下的步骤进行:a)终端发出内部认证(INTERNALAUTHENTICATE)命令,命令中包含由DDOL指定的数据元,这些数据元按JR/T0025.4中指明的规则连接在一起。b)IC卡使用IC卡私钥对表9中指明的数据计算SM2签名,得到如表11的格式的SM2签名动态应用数据。表9需签名的动态应用数据(待签名数据)字段名长度描述格式7JR/T0025.17—2013签名的数据格式1十六进制,值为‘15’BIC卡动态数据长度1标识IC卡动态数据的字节长度LDDBIC卡动态数据LDD由IC卡生成和/或存储在IC卡上的动态数据-终端动态数据变长由DDOL指定的数据元连接而成-IC卡动态数据的定义见JR/T0025.7。除了表9中指明的数据,动态数据认证所需的数据对象在表10中定义。表10生成和检验动态签名所需要的其它数据对象标签长度值格式‘9F4B’NIC+LDD+2SM2签名动态应用数据,格式见表11B‘9F49’变长DDOLB5.2.4.2动态签名的验证使用SM2签名动态应用数据,终端获取的签名动态应用数据的格式如表11所示,包括被签名的明文数据及数字签名。终端使用IC卡的公钥验证动态应用数据的签名。表11IC卡使用SM2签名的动态应用数据的格式字段名长度描述格式签名的数据格式1十六进制,值为‘15’BIC卡动态数据长度1标识IC卡动态数据的字节长度LDDBIC卡动态数据LDD由IC卡生成和/或存储在IC卡上的动态数据-数字签名NICIC卡对表9中数据计算的SM2签名r||sB验证步骤如下:a)获取并解析如表11所示的经过发卡行签名的动态数据。如果失败,则动态数据认证失败。b)检查签名的数据格式的值。如果不是“15”,那么动态数据认证失败。c)准备表11中的前3个数据元(即从签名数据格式直到IC卡动态数据)及DDOL中指定的数据元,即表9数据。d)使用IC卡公钥和相应的IC卡签名算法将8.2.3条中指明的验证方法对表11的数字签名进行验证。如果验证签名失败,那么动态数据认证失败。如果以上所有的步骤都成功,那么动态数据认证成功。终端应将表11中的IC卡动态数据中所包含的IC卡动态数字存放在标签“9F4C”中。5.2.5复合动态数据认证/应用密文生成(CDA)5.2.5.1动态签名的生成IC卡使用SM2算法生成动态签名,复合动态签名和应用密文生成按以下的步骤进行:a)终端根据JR/T0025.5中的定义发出生成应用密文(GENERATEAC)命令,并且命令中CDA请求位为1。b)如果IC卡将以TC或ARQC作为响应,则IC卡执行如下步骤:——IC卡生成TC或ARQC;——IC卡应用由SM3对从左到右连接的如下数据元进行哈希运算:●在第一个GENERATEAC命令情形下:◆由PDOL中指明,并按在其中出现的顺序,由终端在GETPROCESSINGOPTIONS命令中发送给IC卡的数据元的值。◆由CDOL1中指明,并按在其中出现的顺序,由终端在第一个GENERATEAC命令中发送给IC卡的数据元的值。8JR/T0025.17—2013◆IC卡在响应该GENERATEAC命令返回的数据元的标签、长度和值,根据它们返回的顺序且不包括签名动态应用数据。●在第二个GENERATEAC命令情形下:◆由PDOL中指明,并按在其中出现的顺序,由终端在GETPROCESSINGOPTIONS命令中发送给IC卡的数据元的值。◆由CDOL1中指明,并按在其中出现的顺序,由终端在第一个GENERATEAC命令中发送给IC卡的数据元的值。◆由CDOL2中指明,并按在其中出现的顺序,由终端在第二个GENERATEAC命令中发送给IC卡的数据元的值。◆IC卡在响应该GENERATEAC命令返回的数据元的标签、长度和值,根据它们返回的顺序且不包括签名动态应用数据。32字节的哈希运算结果称作交易数据哈希值。——IC卡使用IC卡私钥对表12中的数据计算SM2签名,形成签名动态应用数据,格式如表17所示。表12需签名的动态应用数据(待签名数据)字段名长度描述格式签名的数据格式1十六进制,值为‘15’bIC卡动态数据长度1标识IC卡动态数据的字节长度LDDbIC卡动态数据LDD由IC卡生成和/或存储在IC卡上的动态数据-不可预知数4由终端生成的不可预知数bIC卡动态数据的最左边的32-38个字节由表13中指明的数据连接而成。表13IC卡动态数据的内容长度值格式1IC卡动态数字长度b2-8IC卡动态数字b1密文信息数据b8TC或ARQCb32交易数据哈希值bIC卡动态数字的定义见JR/T0025.7。IC卡对生成应用密文(GENERATEAC)命令的响应应按照JR/T0025.5中定义的格式2(带有标签‘77’的结构数据对象)编码,且应包含表14中指明的三个必须数据对象(在响应中按TLV编码),或可选包含发卡行应用数据。表14在CDA中GENERATEAC命令返回的数据对象标签长度值存在‘9F27’1密文信息数据必须‘9F36’2应用交易计数器必须‘9F4B’NIC+LDD+6SM2签名的动态应用数据,在表12后附上SM2签必须名即得‘9F10’变长,最长32发卡行应用数据可选c)如果IC卡以AAC作为响应,那么IC卡的响应应按照JR/T0025.5中定义的格式1或格式2编码,且应包含表15中指明的三个必须数据对象,可选包含发卡行应用数据。表15生成AAC时GENERATEAC命令返回的数据对象9JR/T0025.17—2013标签长度值存在‘9F27’1密文信息数据必须‘9F36’2应用交易计数器必须‘9F26’8应用认证密文必须‘9F10’变长,最长32发卡行应用数据可选如果存在发卡行应用数据(标签‘9F10’),应按照表16所示的格式编码。表16发卡行应用数据标签长度值存在1长度指示符必须1分散密钥索引必须1密文版本号必须4卡片验证结果(CVR)必须1算法标识必须变长发卡行自定义数据可选分散密钥索引指示IC卡产生应用密文所使用的密钥,密文版本号指示了应用密文的计算方式,6.1条描述了生成应用密文的方法。密文版本号和算法标识的定义,见附录A。5.2.5.2动态签名的验证假定终端已成功地按上面讲述的过程取回了IC卡公钥。IC卡采用SM2签名动态应用数据,终端获取的签名动态应用数据的格式如表17所示,包括被签名的明文数据及数字签名。终端使用IC卡的公钥验证动态应用数据的签名。表17SM2签名的动态应用数据字段名长度描述格式签名的数据格式1十六进制,值为‘15’bIC卡动态数据长度1标识IC卡动态数据的字节长度LDDbIC卡动态数据LDD由IC卡生成和/或存储在IC卡上的动态数据-数字签名NICIC卡对表12中数据计算的SM2签名r||sbSM2验证步骤如下:a)获取并解析如表17所示的经过IC卡签名的动态数据。如果失败,那么复合动态数据认证/应用密文生成失败。b)检查签名的数据格式的值。如果不是“15”,那么复合动态数据认证/应用密文生成失败。c)从IC卡动态数据中取得表13中指明的数据。d)检查从IC卡动态数据中取得的密文信息数据是否等于从产生应用密文(GENERATEAC)命令的响应中获得的密文信息数据。如果不等,那么复合动态数据认证/应用密文生成失败。e)准备表17中的前3个数据元(即从签名数据格式直到IC卡动态数据)及不可预知数,即表12数据。f)将下列数据元从左到右连接:——在第一个GENERATEAC命令情形下:●由PDOL中指明,并按在其中出现的顺序,由终端在GPO命令中发送给IC卡的数据元的值。●由CDOL1中指明,并按在其中出现的顺序,由终端在第一个GENERATEAC命令中发送给IC卡的数据元的值。●IC卡在响应该GENERATEAC命令返回的数据元的标签、长度和值,根据它们返回的顺序且不包括签名动态应用数据。10JR/T0025.17—2013——在第二个GENERATEAC命令情形下:●由PDOL中指明,并按在其中出现的顺序,由终端在GPO命令中发送给IC卡的数据元的值。●由CDOL1中指明,并按在其中出现的顺序,由终端在第一个GENERATEAC命令中发送给IC卡的数据元的值。●由CDOL2中指明,并按在其中出现的顺序,由终端在第二个GENERATEAC命令中发送给IC卡的数据元的值。●IC卡在响应该GENERATEAC命令返回的数据元的标签、长度和值,根据它们返回的顺序且不包括签名动态应用数据。i)使用SM3算法应用到上一步的连接结果从而得到交易数据哈希值。j)把上一步计算得到的交易数据哈希值和步骤3中从IC卡动态数据中取得的的交易数据哈希值相比较。如果它们不一样,那么复合动态数据认证/应用密文生成(CDA)失败。k)使用IC卡公钥和相应的算法并将8.2.3条中指明的验证方法对表17的数字签名进行验证。如果验证签名失败,那么复合动态数据认证/应用密文生成失败。如果以上所有的步骤都成功,那么复合动态数据认证/应用密文生成(CDA)成功。终端应将表13中的IC卡动态数据中所包含的IC卡动态数字存放在标签“9F4C”中,将表13中的ARQC值或TC值存放在标签“9F26”中。6应用密文和发卡行认证6.1应用密文产生6.1.1数据源选择见JR/T0025.7。6.1.2应用密文算法以一个唯一的16字节IC卡应用密文(AC)子密钥MKAC,和6.1.1条描述的数据源作为输入,按以下两步计算8字节的应用密文:a)以IC卡应用密文(AC)子密钥MKAC和两字节的IC卡应用交易计数器作为输入,使用8.1.3条描述的算法,生成16字节的应用密文过程密钥SKAC。b)使用上一步生成的16字节应用密文过程密钥SKAC和“经选择的数据”作为输入,按照8.1.2条中指明的MAC算法计算得到应用密文(TC、ARQC或AAC)。详细密文生成的步骤如下:步骤1:终端将CDOL中指定的终端数据通过生成应用密文命令传送给卡片。如果CDOL中有要交易证书(TC)哈希结果,终端要将此数据放到命令数据域中。步骤2:根据卡片风险管理的结果,卡片决定返回的密文类型为TC、AAC或ARQC。生成密文的数据块:——交易证书(TC)哈希结果(如果存在);——生成应用密文命令中送进卡片的数据。不包括TC哈希结果;——卡片内部数据。步骤3:按照8.1.2条的“填充并分块”中描述的方法对数据进行填充与分块。步骤4:如图1,使用过程密钥用对称密钥算法生成应用密文(过程密钥是由IC卡应用密文(AC)子密钥MKAC分散生成,具体生成方法见8.1.3条)。步骤5:取上一步计算结果的左边8字节,得到8字节的密文。11JR/T0025.17—2013I1=D1I2I3KSM4(e)KSM4(e)KSM4(e)O1O2O3取最左边8字节++TC/AAC/ARQCD2D3说明:I=输入D=数据块SM4(e)=SM4算法(加密模式)K=密钥O=输出+=异或图1TC/AAC/ARQC的生成算法6.2发卡行认证生成8字节的授权响应密文ARPC的方法是将16字节的应用密文过程密钥SKAC(见8.1.2条)按照11.1.2条中指明的对称加密算法对8.1.2条生成的8字节长的ARQC和2字节的授权响应码ARC进行加密,加密步骤如下:a)在2字节的ARC的后面补上6个‘00’字节来获得一个8字节的数X:=(ARC||‘00’||‘00’||‘00’||‘00’||‘00’||‘00’)。b)计算Y:=ARQC⊕X。c)计算ARPC:将Y左对齐后面补8个字节00形成D;D:=Y||‘00’||‘00’||‘00’||‘00’||‘00’||‘00’||‘00’||‘00’基于16字节分组加密算法获得16字节ARPC0;ARPC0:=SM4(SKAC)[D];取ARPC0的左边8字节得到ARPC。图2是ARPC的生成方法。12JR/T0025.17—2013I=DKSM4(e)取最左边8字节OARPC说明:I=输入D=数据块SM4(e)=SM4算法(加密模式)K=密钥O=输出图2生成ARPC的算法7安全报文7.1报文完整性及其验证7.1.1MAC过程密钥产生安全报文MAC生成的第一步包括从IC卡的唯一的16字节安全报文鉴别(MAC)子密钥和2字节ATC分散得到一个唯一的16字节安全报文鉴别码(MAC)过程密钥。过程密钥产生方法见8.1.3条。7.1.2MAC的计算MAC是通过使用按照7.1.1条中描述的方法产生的MAC过程密钥并将8.1.2条中描述的机制应用在所要保护的报文上计算得到的。在本部分中MAC长度为4,在按上面描述的方法计算得到16个字节的结果后,取其中最左面的4字节作为MAC。7.2报文私密性7.2.1加密过程密钥产生安全报文加/解密的第一步包括从IC卡的唯一的16字节安全报文加密子密钥和2字节ATC分散得到一个唯一的16字节加密过程密钥。过程密钥产生方法见8.1.3条。7.2.2加密解密对明文/加密命令数据域的加/解密是通过使用按照7.2.1条中描述的方法产生的加密过程密钥并应用8.1.1条中描述的机制进行的。8安全机制8.1对称加密机制8.1.1加密解密对数据的加密采用16字节分组加密算法,可以是电子密码本(ECB)模式或密码块链接(CBC)模式。JR/T0025选用ECB模式作为加密解密模式。用加密过程密钥KS对任意长度的报文MSG加密的步骤如下:a)填充并分块13JR/T0025.17—2013如果报文MSG的长度不是分组长度的整数倍,在MSG的右端加上1个‘80’字节,然后再在右端加上最少的‘00’字节,使得结果报文的长度MSG:=(MSG||‘80’||‘00’||‘00’||„||‘00’)是分组长度的整数倍。如果报文MSG的长度是分组长度的整数倍,不对数据作填充。被加密数据首先要被格式化为以下形式的数据块:明文数据的长度,不包括填充字符;明文数据;填充字符(按上述填充方式)。然后MSG被拆分为16字节的块X1,X2,„,Xk。b)密文计算1)ECB模式用加密过程密钥KS,以ECB模式的分组加密算法将块X1,X2,...,XK加密为16字节的块Y1,Y2,...,YK,因此当i=1,2,„,K时分别计算:Yi:=ALG(KS)[Xi]。2)CBC模式用加密过程密钥KS以CBC模式的分组加密算法将块X1,X2,...,XK加密为16字节的块Y1,Y2,...,YK,因此当i=1,2,„,K时分别计算:Yi:=ALG(KS)[Xi⊕Yi-1]Y0的初始值为:Y0:=(‘00’||‘00’||‘00’||‘00’||‘00’||‘00’||‘00’||‘00’||‘00’||‘00’||‘00’||‘00’||‘00’||‘00’||‘00’||‘00’)记为:Y:=(Y1||Y2||„||YK)=ENC(KS)[MSG]。解密过程如下:a)ECB模式当i=1,2,...,K时,分别计算:Xi:=ALG-1(KS)[Yi]。b)CBC模式当i=1,2,...,K时,分别计算:Xi:=ALG-1(KS)[Yi]⊕Yi-1。Y0的初始值为:Y0:=(‘00’||‘00’||‘00’||‘00’||‘00’||‘00’||‘00’||‘00’||‘00’||‘00’||‘00’||‘00’||‘00’||‘00’||‘00’||‘00’)为了得到原来的报文MSG,将块X1,X2,...,XK连接起来,如果使用了填充,从最后一块Xk中删除尾部的(‘80’||‘00’||‘00’||...||‘00’),记为:MSG=DEC(KS)[Y]。8.1.2报文鉴别码采用CBC模式的16字节分组加密算法以及MAC过程密钥KS对任意长度的报文MSG计算一个S字节的MAC(4≤S≤8)值S的步骤如下。a)填充并分块依据GB/T16649.4对报文MSG进行填充,因此在MSG的右端强制加上1个‘80’字节,然后再在右端加上最少的‘00’字节,使得结果报文的长度MSG:=(MSG||‘80’||‘00’||‘00’||„||‘00’)是16字节的整数倍。然后MSG被拆分为16字节的块X1,X2,„,XK。b)MAC过程密钥MAC过程密钥KS长度为16字节。c)密文计算用MAC过程密钥以CBC模式的分组加密处理16字节块X1,X2,...,XK:Hi:=ALG(K)[Xi⊕Hi-1],这里i=1,2,...,K。14JR/T0025.17—2013H0的初始值H0:=(‘00’||‘00’||‘00’||‘00’||‘00’||‘00’||‘00’||‘00’||‘00’||‘00’||‘00’||‘00’||‘00’||‘00’||‘00’||‘00’)。使用SM4算法计算HK的算法如图3所示。初始值I2I3I4+KMSM4(e)KMSM4(e)KMSM4(e)I1=D1O1O2O3++HKD2D3说明:I=输入D=X=数据块SM4(e)=SM4算法(加密模式)KM=MAC过程密钥O=输出+=异或图3使用SM4算法计算HK的算法最终密文生成分以下两种情况:a)在报文完整性及验证时,取HK的前4字节作为MAC值。b)计算应用密文(TC、ARQC或AAC)时,取HK的左边8字节作为应用密文。8.1.3过程密钥产生MAC和数据加密过程密钥的产生如下所述:——第一步:卡片/发卡行决定是使用MAC密钥还是数据加密密钥来进行所选择的算法处理。——第二步:将当前的ATC在其左边用十六进制数字‘0’填充到8个字节记为数据源A,将当前的ATC异或十六进制值FFFF后在其左边用十六进制数字‘0’填充到8个字节记为数据源B,将数据源A和数据源B串连,用选定的密钥对该数据作如图4所示的运算产生过程密钥。Z:=SM4(Key)[‘00’||‘00’||‘00’||‘00’||‘00’||‘00’||ATC||‘00’||‘00’||‘00’||‘00’||‘00’||‘00’||(ATC⊕‘FFFF’)]过程密钥产生流程如图4所示。15JR/T0025.17—2013输入数据SM4(加密)Key过程密钥图4过程密钥产生流程8.1.4子密钥分散本节指定了一种利用一个16字节的发卡行主密钥IMK分散得出用于密文生成、发卡行认证和安全报文的IC卡子密钥的方法。这一方式以主账号(PAN)和主账号序列号(如果主账号序列号不存在,则用一个字节‘00’代替)的最右16个数字及其衍生数据作为输入数据,以及16字节的发卡行主密钥IMK作为密钥,生成16字节的IC卡子密钥MK作为输出:a)将主账号和主账号序列号连接生成数据块X,如果X的长度小于16个数字,X右对齐,在最左端填充十六进制的‘0’以获得8字节的Y。如果X的长度至少有16个数字,那么Y由X的最右边的16个数字组成。b)计算:Z:=SM4(IMK)[Y||(Y(‘FF’||‘FF’||‘FF’||‘FF’||‘FF’||‘FF’||‘FF’||‘FF’))],16字节的IC卡子密钥MK就等于Z。IC卡子密钥分散流程图见5。发卡行主机安全模块发卡行生成16字节主密钥IMK(IMK)PAN和PAN序列号取反的PAN和PAN序个人化时,发卡行为每张(Y)列号IC卡生成子密钥MKSM4IMKMK使用应用主账号和主账(加密)号序列号、取反的主账号和主账号序列号,进行连接并执行SM4计算生成MK图5子密钥分散8.2非对称密码机制8.2.1本部分使用GM/T0003的椭圆曲线算法进行数字签名算法SM2签名方案使用下面三种函数:——一个依赖于私钥SK的签名函数Sign(SK)[M],该函数输出两个相同长度的数字r和s;16JR/T0025.17—2013——一个依赖于公钥PK的验证函数Verify(PK)[M,Sign(SK)[M]],该函数输出True或False,表示验证正确或失败;——一个哈希算法SM3[],将任意长度的报文映射为一个32字节的哈希值。8.2.2数字签名产生对任意长度的数据组成的报文MSG计算签名S的过程如下:a)计算ZA=SM3[ENTLA||IDA||a||b||xG||yG||xA||yA]。其中IDA固定设置为16字节定长的十六进制数据0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38;ENTLA值为两个字节数据0x00,0x80;b)计算报文MSG的32字节的HASH值h:=SM3[ZA||MSG];c)计算Sign(SK)[h],得到两个数字r和s;d)数字签名S被定义为S:=r||s,即数字签名S由数字r和s串联而成。8.2.3数字签名验证对任意长数据组成的报文MSG验证签名S的过程如下:a)计算ZA=SM3[ENTLA||IDA||a||b||xG||yG||xA||yA]。其中IDA固定设置为16字节定长的十六进制数据0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38;ENTLA值为两个字节数据0x00,0x80;b)计算报文MSG的32字节的HASH值h:=SM3[ZA||MSG];c)Verify(PK)[h,S],若函数输出True表示验证正确,若输出False,表示验证失败。9认可的算法9.1对称加密算法本部分使用的对称加密算法为SM4算法,算法定义见GM/T0002。9.2非对称算法本部分使用的非对称算法为SM2算法,算法定义见GM/T0003。9.3哈希算法本部分使用的哈希算法为SM3算法,算法定义见GM/T0004。10算法选择与交易流程本章规定了支持SM2/SM3/SM4算法(以下
本文档为【PBOC3.0 发布版\PBOC3.0发布版\17部分:借记贷记应用安全增强规范】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_742038
暂无简介~
格式:pdf
大小:706KB
软件:PDF阅读器
页数:0
分类:互联网
上传时间:2018-09-11
浏览量:119