远程密钥下载(RKL)实现.doc_第1页
远程密钥下载(RKL)实现.doc_第2页
远程密钥下载(RKL)实现.doc_第3页
远程密钥下载(RKL)实现.doc_第4页
远程密钥下载(RKL)实现.doc_第5页
已阅读5页,还剩21页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

远程密钥下载(RKL)在XFS中实现江清源2013-05-151缩写、符号和术语22RKL简介32.1加密算法介绍32.1.1对称与非对称算法比较42.1.2非对称算法的用途52.2金融系统的密钥管理52.2.1传统ATM采用的密钥管理体系52.2.2RKL(Remote Key Loading)62.3RKL下载主密钥的思想73Signature协议的RKL73.1操作流程73.1.1初始化阶段73.1.2交换公钥93.1.3下载主密钥103.2XFS层接口114Certificate协议的RKL114.1操作流程114.1.1初始阶段124.1.2交换公钥证书144.1.3下载主密钥154.2XFS层接口165测试数据175.1签名协议测试数据175.1.1GrgPK175.1.2HostPK185.1.3要下载的主密钥明文195.2证书协议模拟测试数据195.2.1主机证书195.2.2密码键盘加密证书205.2.3密码键盘签名证书215.2.4解密要安装的DES密钥信息226参考文档231 缩写、符号和术语本文档使用以下缩写、符号和术语:ATM自动柜员机BER基本编码规则DER可辨别编码规则CA认证机构DES数据加密标准EPP密码键盘HOST银行主机PKCS公钥密码标准PKCS1RSA加密标准PKCS7密码信息语法标准RSA使用公钥和私钥的非对称加密方案XFS金融扩展服务SI厂商签名系统SKEPPEPP或ATM的私钥PKEPPEPP或ATM的公钥SKATMEPP或ATM的私钥PKATMEPP或ATM的公钥SKEPPsEPP或ATM的签名用途私钥PKEPPsEPP或ATM的签名用途公钥SKHOST主机的私钥PKHOST主机的公钥SKSI厂商签名系统的私钥PKSI厂商签名系统的公钥KMDES或3DES主密钥KWDES或3DES工作密钥IATMEPP或ATM标识Ihost主机标识UIATMEPP或ATM标识CertPKname指定name名称的公钥证书Sign(SKe)D使用私钥SKe对数据D的签名RSACrypt(PKe)D使用公钥PKe对数据D的加密结果A | B数据A 与 数据B串联RATMEPP或ATM产生的随机数RHost主机产生的随机数2 RKL基础2.1 DER-TLV数据对象抽象对象的方法称为ASN.1(Abstract Syntax Notation One,X.208),把这些对象转换成“0”和“1”的比特流的一套规则称为BER(Basic Encoding Rules ,X.209)。ASN.1是一套灵活的记号,它允许定义多种数据类型,从integer、bit string一类的简单类型到结构化类型,如set和sequence,还可以使用这些类型构建复杂类型。BER说明了如何把每种ASN.1类型的值编码为8bit的octet流。通常每个值有不止一种的BER编码方法。一般使用另外一套编码规则DER,它是BER的一个子集,对每个ASN.1值只有唯一一种编码方法。每个数据对象都有一个ASN.1定义的类型,用一个或多个字节表示,称为Tag, 数据的长度也进行编码用一个或多个字节表示, 然后是数值的编码。比如:整数5, 用DER编码结果为:02 01 052.2 加密算法根据密钥类型不同将加密算法分为两类:对称加密算法(秘密钥匙加密)和非对称加密算法(公开密钥加密)。对称加密算法是加密和解密均采用同一把秘密钥匙,而且通信双方都必须获得这把钥匙,并保持钥匙的秘密。对称加密算法用来对敏感数据等信息进行加密,常用的算法包括:DES(Data Encryption Standard):数据加密标准,速度较快,适用于加密大量数据的场合。3DES(Triple DES):是基于DES,对一块数据用三个不同的密钥进行三次加密,强度更高。AES(Advanced Encryption Standard):高级加密标准,是下一代的加密算法标准,速度快,安全级别高。非对称加密算法采用的加密钥匙(公钥)和解密钥匙(私钥)是不同的。常见的非对称加密算法如下:RSA:由 RSA 公司发明,是一个支持变长密钥的公共密钥算法,需要加密的文件块的长度也是可变的。DSA(Digital Signature Algorithm):数字签名算法,是一种标准的 DSS(数字签名标准)。ECC(Elliptic Curves Cryptography):椭圆曲线密码编码学。2.2.1 对称与非对称算法比较比较项对称算法非对称算法定义加密和解密均采用同一把秘密钥匙,而且通信双方都必须获得这把钥匙,并保持钥匙的秘密加密和解密所使用的不是同一个密钥,通常有两个密钥,称为”公钥”和“私钥”,它们两个必需配对使用运算速度快,常用于大量信息的加密慢,慢数千倍安全性低,容易破解和密钥易泄漏高,不易破解和私钥不泄漏金融行业使用的具体算法 DES(8字节) 3DES(16或24字节) RSA公钥:模数和指数(3,17,65537);私钥:模数(与公钥的模相同)和指数注意:金融系统对这两种算法结合使用。对不经常更新且数据量小的信息使用“非对称算法”(如传送主密钥), 对经常使用或数据量大的信息使用“对称算法”2.2.2 非对称算法的用途加密和解密:甲方用乙方的公钥对敏感信息加密,发给乙方。乙方用自己的私钥解密。使消息传递实现了保密性。PKCS1-v1_5加密算法 简述:1. 填充使EM长度为密钥模长, EM = 0x00 | 0x02 | PS | 0x00 | M (PS是非0的随机数,其长度=8; M是要加密的信息)2. C= RSAEP (n, e), EM)解密与加密相反签名和校验:甲方用自己的私钥对敏感信息的Hash值加密,发给乙方(签名)。乙方用甲方的公钥解密,比较结果与消息的Hash值是否一致(校验)。使消息传递实现了完整性和不可抵赖性。PKCS1-v1_5签名算法 简述:1. H = Hash (M), M的长度无限制2. T=30 21 30 09 06 05 2B 0E 03 02 1A 05 00 04 14 | H3. EM = 0x00 | 0x01 | PS | 0x00 | T, 这里PS=FF FF4. S = RSASP1 (K, EM) , 这里K是私钥由模和私钥指数组成签名算法的例子:发送者公钥的模=AD CE 59 09 9F 6E 2C 37 E5 9F BB 54 93 2A 1C 51 E8 A5 DD A3 BA F6 00 CC AB BC 6A FF 5C 9F 2A AA 90 73 7B 3D 64 A1 8F 33 E0 37 9E AF 2D CD 5B A8 2C E0 1C E2 A7 87 8E 59 41 DC E2 69 1E 7A C2 A3 92 16 DE DE 00 BB 2B AD 33 1A 7D 32 46 6B CC FD 18 BD 3F 7B ED 8E 05 95 86 93 E2 96 3B 08 35 3F 12 77 58 0A 82 76 41 52 A1 56 43 CA 9B 9A DE 77 0D 02 A8 EC B4 DA D3 0E BC 39 2E 9C 38 C7 54 1D 58 E3 C9 58 2F EC 0B B0 CC AF C3 0E 41 60 CF CE 6C 25 B1 85 60 75 DF C3 75 D5 F6 50 0D 68 4F 5F D9 7C CA C0 CC BF 8D 1A 54 9D 0E B6 79 90 D1 89 AB F0 42 38 21 64 D2 52 9C 7C DB 9D 8E D4 0E AE 6E F6 FF B2 4B 93 91 48 F3 62 3C 0E 68 24 1C 37 47 8B 88 80 79 78 54 41 13 2D AE D3 F0 95 E6 2B 7F B0 C7 5E 53 89 93 75 62 2E B9 FE 76 7F 2A 55 28 D9 6E 5E 6D A5 2C 7E E4 2B B3 0D 9E E9 3B 9B 发送者公钥的指数=01 00 01 发送者私钥的指数= 25 2C 6A 2C BD B5 B1 AD 6E E6 60 09 B1 C4 22 F4 7D DE E3 ED BD F2 19 AF AC D7 8A C6 FD 47 69 B7 BB 57 87 B7 54 CB 9D 36 4A 31 7B 36 1A 84 BE A2 D4 9E 46 6F 4F C7 95 71 8F BD AF 8B 2E 22 B1 78 8C A9 69 97 6F EE 98 63 DD F7 3F 69 BE 58 16 2A D7 DC BA 34 46 55 C6 E9 F9 33 AE 15 D5 A0 66 CB 0B A7 0C E4 8A 8C C2 61 EA F1 E9 63 EF 2E 0B 80 C8 FE 95 A4 B2 F5 CE 88 6B 47 8B A9 8C 17 4D EC F1 D3 8D A6 B3 1F C4 70 D2 A4 38 50 5A 4F D9 CA 5C 95 0D 12 E0 B0 BE 3F 19 47 92 91 F2 C8 50 BA DB 17 DE 33 08 89 8C EE B1 64 A7 E1 3C CC 15 6D 34 C7 95 26 71 CD B2 A5 A1 74 A2 90 0A BE 71 11 52 30 40 43 E4 74 8D 30 5D 58 2F BA 56 3C 90 9F 52 0B 18 53 88 93 55 D4 32 45 F1 9A C5 D1 89 CC 6F 58 B8 39 BB 31 60 18 EF 1A 5E A3 D4 F3 0F 98 C8 5F EB 31 02 6D B2 DE D0 0E 30 48 19 0F F0 B1要发送的数据M= D0 CE C8 DD B4 CA B1 C8 BD CF BC B6 BA CD D7 EE B8 DF BC B6 B5 C4 D0 CE CA BD 20 D2 BB A1 A2 D0 CE C8 DD B4 CA B1 C8 BD CF BC B6 BA CD D7 EE B8 DF BC B6 B5 C4 B9 B9 B3 C9 20 D0 CE C8 DD B4 CA B5 C4 B1 C8 BD CF BC B6 BA CD D7 EE B8 DF BC B6 B1 E4 BB AF D0 CE CA BD B9 E6 D4 F2 C8 E7 CF C2 20 B9 B9 20 B3 C9 20 B7 A8 20 D4 AD 20 BC B6 20 B1 C8 20 BD CF 20 BC B6 20 D7 EE 20 B8 DF 20 BC B6 20 A2 D9 20 D2 BB B0 E3 B5 A5 D2 F4 BD DA B4 CA C4 A9 CE B2 BC D3 AA B2 65 72 20 BA CD 20 AA B2 65 73 74 20 73 74 72 6F 6E 67 20 73 74 72 6F 6E 67 65 72 20 73 74 72 6F 6E 67 65 73 74 20 A2 DA 20 B5 A5 D2 F4 BD DA B4 CA C8 E7 B9 FB D2 D4 AA B2 65 BD E1 CE B2 A3 AC D6 BB BC D3 AA B2 72 20 BA CD AA B2 73 74 20 73 74 72 61 6E 67 65 20 73 74 72 61 6E 67 65 72 20 73 74 72 61 6E 67 65 73 74 20 A2 DB 20 B1 D5 D2 F4 BD DA B5 A5 D2 F4 BD DA B4 CA C8 E7 C4 A9 CE B2 D6 BB D3 D0 20 D2 BB B8 F6 B8 A8 D2 F4 D7 D6 C4 B8 A3 AC 20 D0 EB CF C8 CB AB D0 B4 D5 E2 B8 F6 B8 A8 D2 F4 D7 D6 C4 B8 A3 AC D4 D9 BC D3 AA B2 65 72 BA CD AA B2 65 73 74 20 73 61 64 20 62 69 67 20 68 6F 74 20 73 61 64 64 65 72 20 62 69 67 67 65 72 20 68 6F 74 74 65 72 20 73 61 64 64 65 73 74 20 62 69 67 67 65 73 74 20 68 6F 74 74 65 73 74 20 A2 DC 20 C9 D9 CA FD D2 D4 AA B2 79 2C AA B2 65 72 28 BB F2 AA B2 75 72 65 29 2C AA B2 6F 77 2C AA B2 62 6C 65 BD E1 CE B2 B5 C4 CB AB D2 F4 BD DA B4 CA A3 AC 20 C4 A9 CE B2 BC D3 AA B2 65 72 BA CD AA B2 65 73 74 28 D2 D4 AA B2 79 BD E1 CE B2 B5 C4 B4 CA A3 AC C8 E7 AA B2 79 C7 B0 CA C7 B8 A8 D2 F4 D7 D6 C4 B8 A3 AC 20 B0 D1 79 B1 E4 B3 C9 69 A3 AC D4 D9 BC D3 AA B2 65 72 BA CD AA B2 65 73 74 A3 AC D2 D4 AA B2 65 BD E1 CE B2 B5 C4 B4 CA C8 D4 20 D6 BB BC D3 AA B2 72 BA CD AA B2 73 74 29 20 61 6E 67 72 79 20 63 6C 65 76 65 72 20 6E 61 72 72 6F 77 20 6E 6F 62 6C 65 20 61 6E 67 72 69 65 72 20 63 6C 65 76 65 72 65 72 20 6E 61 72 72 6F 77 65 72 20 6E 6F 62 6C 65 72 20 61 6E 67 72 65 73 74 20 63 6C 65 76 65 72 65 73 74 20 6E 61 72 72 6F 77 65 73 74 20 6E 6F 62 6C 65 73 74 20 A2 DD 20 C6 E4 CB FB CB AB D2 F4 BD DA BA CD B6 E0 D2 F4 BD DA B4 CA B6 BC D4 DA C7 B0 C3 E6 BC D3 B5 A5 B4 CA 6D 6F 72 65 BA CD 6D 6F 73 74 20 64 69 66 66 65 72 65 6E 74 20 6D 6F 72 65 20 64 69 66 66 65 72 65 6E 74 20 6D 6F 73 74 20 64 69 66 66 65 72 65 6E 74 20 63 6C 65 61 72 6E CA CA D3 C3 D3 DA B5 DA D2 BB CC F5 A3 AC CB F9 D2 D4 D6 B1 BD D3 BC D3 65 72 BE CD BF C9 D2 D4 C1 CB1. H=5C 3E B8 00 66 42 00 02 BC 3D CC 7C A4 AB 6E FA D7 ED 4A E52. T=30 21 30 09 06 05 2B 0E 03 02 1A 05 00 04 14 FB 69 1D 94 F3 09 C8 28 D5 5D 9E 3E 99 C9 33 8B 35 8C 65 1C3. EM = 01 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF 00 30 21 30 09 06 05 2B 0E 03 02 1A 05 00 04 14 FB 69 1D 94 F3 09 C8 28 D5 5D 9E 3E 99 C9 33 8B 35 8C 65 1C4. S=36 BF 69 3F 21 E7 F4 CF D3 CD 51 1B 8A 45 49 34 A9 2E 31 21 B1 3F B5 6D C9 79 AB 5C 95 07 D7 7B DA 9D 4D 1E 2A B3 E3 C3 F6 7E B2 8F FE B4 5E ED 87 39 73 09 62 78 7E 04 6D 85 3A 06 43 A9 1B D3 FC 25 FB F6 92 CF FB 22 27 28 32 44 47 2D C2 A2 A1 5F 99 73 DF C2 99 BC 6E FA FF 70 5B 88 7E 84 2A CF E4 35 10 04 3F 1F 06 E0 6F B7 BF 5B A5 61 35 EC 3C 1C BD 43 C4 1D 49 89 FA 5C 75 CD 31 00 9E 96 EF 14 1C 11 76 BA 93 2C 90 24 CA 88 4A 46 2C B9 2F 90 4A 8A 94 0A 0F 7C 13 E8 BE 8E F5 5A C5 52 A8 62 BF 80 92 34 36 C4 FD 83 5F 8A ED A4 5F 26 2E 18 60 C2 81 88 31 4C 1D D7 77 EB 32 C7 A2 A5 95 78 2F 68 75 7F AC 01 82 41 9E 0F 52 1C DA E5 8F 70 7A C2 29 B2 02 8F A0 6E E9 A0 54 42 CE 1B 27 51 4E 93 AE 68 DB 74 1C B2 CB F0 C3 79 3F 1B 8C 70 64 83 D3 1A 43 E6 5C 7D 23 EA 6D 35注意:在RKL的实现中,加密和签名都得到了使用。2.3 金融系统的密钥管理2.3.1 传统ATM采用的密钥管理体系含有两级密钥:主密钥、工作密钥。主机在适当时候产生主密钥MK,然后需要管理员到每个ATM网点去手工输入该密钥MK到密码键盘。ATM重启或每隔一段周期时间,ATM向主机申请工作密钥,主机产生WK后用MK去加密, 把密钥密文通过网络传送到ATM;ATM收到密钥密文后用WK去解密,解密结果就是WK。每次交易,ATM和主机之间交换信息,发送方用WK去加密,接受方用WK去解密。缺点:下载主密钥不方便,通过网络下载主密钥没有安全保障。2.3.2 RKL(Remote Key Loading)提供了一种安全、便捷的方式,让银行能够方便的更新主密钥。1) 在初始阶段,主机和ATM拥有各自的密钥对(公钥和私钥)2) 为了下载3DES主密钥MK, 双方先交换RSA公钥。3) 主机产生3DES密钥MK, 先用密码键盘的公钥加密,再用自己私钥去签名,最后把MK密文和签名结果发给密码键盘4) 密码键盘收到MK密文和签名结果后,先用主机的公钥校验, 通过后再用自己的私钥去解密MK密文得到MK明文,保存MK。上面的过程就是RKL过程, 余下的WK生成及下载,交易信息的交换与1.2.1相同, RKL提供了便捷、安全可靠的下载主密钥的方法,将成为今后发展的趋势。流程示意图如下:2.4 RKL下载Des(3Des)主密钥的思想主机用密码键盘的公钥加密主密钥得到主密钥密文,再对该密文用自己的私钥去签名,把该密文和它的签名一起发给密码键盘;密码键盘收到消息后先用主机公钥校验签名,再用自己的私钥解密主密钥密文。RKL有种具体实现方案:一个是Wincor/NCR发起的Signature协议,另一个是Diebold主导的Certificate协议。3 Signature协议的RKL3.1 操作流程3.1.1 初始化阶段密码键盘出厂时,应烧入下面数据:PKSI - 厂商公钥 PKATM - 密码键盘公钥SKSI - 厂商私钥 SKATM - 密码键盘私钥UIATM - 密码键盘标识Sign(SKSI) PKATM - 厂商私钥对密码键盘公钥的签名Sign(SKSI) UIATM - 厂商私钥对密码键盘标识的签名银行在安装ATM时, 需要向厂商提供他的公钥, 厂商用私钥对银行的公钥签名, 该签名连同厂商公钥一起返回给银行(这一通信过程一般都通过信函方式确保信息的可靠性) PKSI - 厂商公钥 PKHost - 主机公钥SKSI - 厂商私钥 SKHost - 主机私钥Sign(SKSI) PKHost - 厂商私钥对密码键盘公钥的签名3.1.2 交换公钥交换公钥是进行下载主密钥的基础, ATM安装后至少要执行一次。 按下列流程进行:1) 主机向密码键盘询问ATM标识(密码键盘的型号+序列号)WFS_CMD_PIN_EXPORT_RSA_ISSUER_SIGNED_ITEM, 参数取值: WFS_PIN_EXPORT_EPP_ID2) 密码键盘返回密码键盘标识及签名(用厂商私钥签的), 主机用厂商公钥校验,并查询键盘标识列表, 若校验通过且该键盘标识在列表中存在, 继续下一步, 否则失败退出。3) 主机向密码键盘询问密码键盘公钥WFS_CMD_PIN_EXPORT_RSA_ISSUER_SIGNED_ITEM, 参数取值: WFS_PIN_EXPORT_PUBLIC_KEY4) 密码键盘返回密码键盘公钥及签名(用厂商私钥签的), 主机用厂商公钥校验, 若校验通过, 继续下一步, 否则失败退出。5) 主机向密码键盘传送其公钥和签名(用厂商私钥签的), 密码键盘用厂商公钥校验, 若校验通过, 继续下一步, 否则失败退出。 具体流程见下图所示:3.1.3 下载主密钥按下面流程进行:1) 主机向密码键盘请求随机数RATM WFS_CMD_PIN_START_KEY_EXCHANGE2) 密码键盘产生随机数RATM, 返回给主机3) 主机生成中主密钥Km, 用密码键盘公钥加密后得Cryptdata, 连接IATM得keyVal,用自己的私钥对keyVal签名得signData, 然后把keyVal和signData一起发给密码键盘。WFS_CMD_PIN_IMPORT_RSA_SIGNED_DES_KEY4) 密码键盘先用主机公钥校验签名, 通过后再对比随机数是否和刚才生成的一致,然后用自己的私钥解密Cryptdata, 得到主密钥明文Km, 保存Km。输入参数按下面方法生成:n 令PlaintextDesKey = 11 22 33 44 55 66 77 88 aa bb cc dd ee ff 01 02 ,这是要下载的主密钥MK1明文n 把上面的PlaintextDesKey用密码键盘的公钥加密, 得到256字节的密文keyValue。 密码键盘公钥由调用exportRSAPublicKey得到。n 把2中的结果keyValue(若使用随机数前面还要增加8字节的随机数)用模拟主机的私钥去签名, 得到256字节的Signature。 流程示意图如下:4 Certificate协议的RKL4.1 操作流程4.1.1 初始阶段 密码键盘出厂时安装了两个证书,加密证书和签名证书; 银行主机也安装了主机签名证书。这些证书由同一家CA颁发。这些证书都是p7b格式的标准证书,它包含颁发者和主体信息,有效期,证书用途,主体公钥等重要信息。为了方便签名计算,将证书按照ASN.1语法(DER) X.208规则进行编码后传送。ASN.1 DER编码是对每个元素对应的标签、长度、值编码系统。X.509 v3证书基本语法如下: Certificate := SEQUENCE tbsCertificate TBSCertificate, signatureAlgorithm AlgorithmIdentifier, signatureValue BIT STRING TBSCertificate := SEQUENCE version 0 EXPLICIT Version DEFAULT v1, serialNumber CertificateSerialNumber, signature AlgorithmIdentifier, issuer Name, validity Validity, subject Name, subjectPublicKeyInfo SubjectPublicKeyInfo, issuerUniqueID 1 IMPLICIT UniqueIdentifier OPTIONAL, - If present, version shall be v2 or v3 subjectUniqueID 2 IMPLICIT UniqueIdentifier OPTIONAL, - If present, version shall be v2 or v3 extensions 3 EXPLICIT Extensions OPTIONAL - If present, version shall be v3 Version := INTEGER v1(0), v2(1), v3(2) CertificateSerialNumber := INTEGER Validity := SEQUENCE notBefore Time, notAfter Time Time := CHOICE utcTime UTCTime, generalTime GeneralizedTime UniqueIdentifier := BIT STRING SubjectPublicKeyInfo := SEQUENCE algorithm AlgorithmIdentifier, subjectPublicKey BIT STRING Extensions := SEQUENCE SIZE (1.MAX) OF Extension Extension := SEQUENCE extnID OBJECT IDENTIFIER, critical BOOLEAN DEFAULT FALSE, extnValue OCTET STRING 证书的数据结构解析结果如下图所示:4.1.2 交换公钥证书按下列步骤进行交换,交换公钥证书是后续下载主密钥的基础:1) 主机向密码键盘请求加密用途的公钥证书2) 密码键盘返回加密用途的公钥证书, 主机收到后用PKCA验证, 验证成功后保存该公钥证书3) 主机向密码键盘请求签名用途的公钥证书4) 密码键盘返回签名用途的公钥证书, 主机收到后用PKCA验证, 验证成功后保存该公钥证书5) 主机向密码键盘传送主机的公钥证书6) 密码键盘收到后用PKCA验证, 验证成功后保存该公钥证书, 并向主机返回证书的摘要值流程示意图如下:4.1.3 下载主密钥按下面流程进行:1) 主机向密码键盘请求随机数RATM, 2) 密码键盘产生随机数RATM, 返回给主机3) 主机生成Km, Km与Ihost连接后用密码键盘公钥加密, 生成的密文与Rhost, Ratm, Iatm, 打包成PKCS7定义的签名数据对象,再用主机私钥去签名, 把密文和签名结果一起发给密码键盘4) 密码键盘先用主机公钥校验签名, 通过后再对比随机数是否和刚才生成的一致,然后用自己的私钥解密, 得到主密钥明文Km, 保存Km5) 密码键盘用自己的私钥对Rhost| Ratm|Iatm进行签名,把签名发给主机, 主机校验签名后确认下载主密钥是否成功流程示意图如下:4.2 XFS层接口1) WFS_CMD_PIN_LOAD_CERTIFICATE,下载主机公钥证书。2) WFS_CMD_PIN_GET_CERTIFICATE, 获取密码键盘的两个公钥证书。注意输入参数指定了哪种公钥证书。3) WFS_CMD_PIN_START_KEY_EXCHANGE, 开始进行主密钥下载。4) WFS_CMD_PIN_IMPORT_RSA_ENCIPHERED_PKCS7_KEY, 下载密文主密钥。输入参数比较复杂,是pkcs-7中的复合签名数据对象格式输入参数的结构如下图所示:Ihost与Km按下图方式打包成TLV数据对象,再用密码键盘公钥加密生成主密钥密文:5 测试数据5.1 签名协议测试数据5.1.1 GrgPK84 6B 00 D8 C3 97 E1 C0 AF BC E2 A7 DB 0E 93 1E 86 97 CA DB F5 1E DD E4 B5 9A 77 7F 1A A3 0C B9 04 F7 F7 98 68 78 24 96 39 75 F4 68 CB 99 24 25 91 89 41 17 36 95 EB 44 EA E6 11 05 C0 10 67 61 BE 5B D1 FE F8 09 B7 CD 4C 94 A6 08 13 A7 75 36 4C DF 27 E7 13 1A 4A F9 27 71 1B 5E 66 EA 3A 79 06 18 F3 8D 09 2B 83 EA 94 FC A9 3C DA 94 DC 06 2D 78 88 86 7B B7 D7 B7 AA C2 D1 A4 63 5F EE F4 FB 57 AC 09 61 6C B1 6A 50 15 FD E6 30 17 E0 E4 86 57 7B 6B 93 A8 84 B4 81 E9 29 E0 86 1D F8 6F 44 93 E5 6A 03 E4 2F C3 31 F1 50 28 48 3E EF 94 99 9F 12 71 68 F6 22 02 1C DA AC C4 2F 81 2D 9E 4C 4F CF 9F 6E F8 B8 C1 86 0A C5 FB 30 85 D3 F9 55 ED 26 D5 82 68 0F 7E C0 E3 1B 3F 18 92 DA 0E 03 92 E9 7F 7B 5E 1E A3 EF 5A 3D B2 A7 24 E7 39 73 B2 F1 92 66 A0 00 F0 4C 5F D1 38 EC 8D C9 D1GrgPK是不变的。不会随银行和密码键盘的不同而改变.5.1.2 HostPKHostPK_DER=30 82 01 0A 02 82 01 01 00 AD CE 59 09 9F 6E 2C 37 E5 9F BB 54 93 2A 1C 51 E8 A5 DD A3 BA F6 00 CC AB BC 6A FF 5C 9F 2A AA 90 73 7B 3D 64 A1 8F 33 E0 37 9E AF 2D CD 5B A8 2C E0 1C E2 A7 87 8E 59 41 DC E2 69 1E 7A C2 A3 92 16 DE DE 00 BB 2B AD 33 1A 7D 32 46 6B CC FD 18 BD 3F 7B ED 8E 05 95 86 93 E2 96 3B 08 35 3F 12 77 58 0A 82 76 41 52 A1 56 43 CA 9B 9A DE 77 0D 02 A8 EC B4 DA D3 0E BC 39 2E 9C 38 C7 54 1D 58 E3 C9 58 2F EC 0B B0 CC AF C3 0E 41 60 CF CE 6C 25 B1 85 60 75 DF C3 75 D5 F6 50 0D 68 4F 5F D9 7C CA C0 CC BF 8D 1A 54 9D 0E B6 79 90 D1 89 AB F0 42 38 21 64 D2 52 9C 7C DB 9D 8E D4 0E AE 6E F6 FF B2 4B 93 91 48 F3 62 3C 0E 68 24 1C 37 47 8B 88 80 79 78 54 41 13 2D AE D3 F0 95 E6 2B 7F B0 C7 5E 53 89 93 75 62 2E B9 FE 76 7F 2A 55 28 D9 6E 5E 6D A5 2C 7E E4 2B B3 0D 9E E9 3B 9B 02 03 01 00 01HostPK=AD CE 59 09 9F 6E 2C 37 E5 9F BB 54 93 2A 1C 51 E8 A5 DD A3 BA F6 00 CC AB BC 6A FF 5C 9F 2A AA 90 73 7B 3D 64 A1 8F 33 E0 37 9E AF 2D CD 5B A8 2C E0 1C E2 A7 87 8E 59 41 DC E2 69 1E 7A C2 A3 92 16 DE DE 00 BB 2B AD 33 1A 7D 32 46 6B CC FD 18 BD 3F 7B ED 8E 05 95 86 93 E2 96 3B 08 35 3F 12 77 58 0A 82 76 41 52 A1 56 43 CA 9B 9A DE 77 0D 02 A8 EC B4 DA D3 0E BC 39 2E 9C 38 C7 54 1D 58 E3 C9 58 2F EC 0B B0 CC AF C3 0E 41 60 CF CE 6C 25 B1 85 60 75 DF C3 75 D5 F6 50 0D 68 4F 5F D9 7C CA C0 CC BF 8D 1A 54 9D 0E B6 79 90 D1 89 AB F0 42 38 21 64 D2 52 9C 7C DB 9D 8E D4 0E AE 6E F6 FF B2 4B 93 91 48 F3 62 3C 0E 68 24 1C 37 47 8B 88 80 79 78 54 41 13 2D AE D3 F0 95 E6 2B 7F B0 C7 5E 53 89 93 75 62 2E B9 FE 76 7F 2A 55 28 D9 6E 5E 6D A5 2C 7E E4 2B B3 0D 9E E9 3B 9BHostSKeyE = 25 2C 6A 2C BD B5 B1 AD 6E E6 60 09 B1 C4 22 F4 7D DE E3 ED BD F2 19 AF AC D7 8A C6 FD 47 69 B7 BB 57 87 B7 54 CB 9D 36 4A 31 7B 36 1A 84 BE A2 D4 9E 46 6F 4F C7 95 71 8F BD AF 8B 2E 22 B1 78 8C A9 69 97 6F EE 98 63 DD F7 3F 69 BE 58 16 2A D7 DC BA 34 46 55 C6 E9 F9 33 AE 15 D5 A0 66 CB 0B A7 0C E4 8A 8C C2 61 EA F1 E9 63 EF 2E 0B 80 C8 FE 95 A4 B2 F5 CE 88 6B 47 8B A9 8C 17 4D EC F1 D3 8D A6 B3 1F C4 70 D2 A4 38 50 5A 4F D9 CA 5C 95 0D 12 E0 B0 BE 3F 19 47 92 91 F2 C8 50 BA DB 17 DE 33 08 89 8C EE B1 64 A7 E1 3C CC 15 6D 34 C7 95 26 71 CD B2 A5 A1 74 A2 90 0A BE 71 11 52 30 40 43 E4 74 8D 30 5D 58 2F BA 56 3C 90 9F 52 0B 18 53 88 93 55 D4 32 45 F1 9A C5 D1 89 CC 6F 58 B8 39 BB 31 60 18 EF 1A 5E A3 D4 F3 0F 98 C8 5F EB 31 02 6D B2 DE D0 0E 30 48 19 0F F0 B1Sgin(HostPK)38 C5 05 BD 14 BE DA F0 3A 88 55 2C 6E 51 DB D4 E0 C9 20 1F E1 EB 44 38 E5 AF A8 8C D5 58 EC F1 A8 42 42 6A 19 00 8B A3 57 B3 75 4C 47 F2 20 96 E5 25 D9 BA 7B 50 48 AD 64 76 63 36 AE 16 B7 6D D7 85 5B 56 70 83 1D BC 9A 87 2A 2F 35 3D 79 1D BE 45 64 24 0D DA DC 78 8F 76 59 6E EB B4 5E E4 79 46 3C 03 24 75 90 2E 26 01 B0 88 68 82 90 1D 94 20 A4 6B E9 C0 41 B1 FC 28 ED 9C F0 E4 81 71 70 8C E9 75 4B 0E A8 B3 C1 15 C7 A4 66 B2 BD 58 EA 7C 63 42 A9 7A 4E AF 50 FA 82 1C 0C EC 11 A4 2D DF AC F4 25 B9 00 B6 6C 37 8C F5 A2 3D E0 4C C2 58 4B A1 07 00 96 3A 89 6C 43 8A 91 36 72 6B 22 F3 E6 0D A5 FC C7 B0 D2 1E 2A B5 7C 55 10 34 71 DB 15 7E CA B5 25 A9 76 2B 6B E1 E7 FF 99 0A DB 6B DE 91 7A 8A A4 0B EC CC D8 E6 5E 8F E0 46 A7 7B 78 26 D5 A5 77 1B 11 65 1F D

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论