收藏 分销(赏)

远程密钥下载(RKL)实现.doc

上传人:pc****0 文档编号:5961325 上传时间:2024-11-24 格式:DOC 页数:26 大小:965KB 下载积分:10 金币
下载 相关 举报
远程密钥下载(RKL)实现.doc_第1页
第1页 / 共26页
远程密钥下载(RKL)实现.doc_第2页
第2页 / 共26页


点击查看更多>>
资源描述
远程密钥下载(RKL)在XFS中实现 江清源 2013-05-15 1 缩写、符号和术语 2 2 RKL简介 3 2.1 加密算法介绍 3 2.1.1 对称与非对称算法比较 4 2.1.2 非对称算法的用途 5 2.2 金融系统的密钥管理 5 2.2.1 传统ATM采用的密钥管理体系 5 2.2.2 RKL(Remote Key Loading) 6 2.3 RKL下载主密钥的思想 7 3 Signature协议的RKL 7 3.1 操作流程 7 3.1.1 初始化阶段 7 3.1.2 交换公钥 9 3.1.3 下载主密钥 10 3.2 XFS层接口 11 4 Certificate协议的RKL 11 4.1 操作流程 11 4.1.1 初始阶段 12 4.1.2 交换公钥证书 14 4.1.3 下载主密钥 15 4.2 XFS层接口 16 5 测试数据 17 5.1 签名协议测试数据 17 5.1.1 GrgPK 17 5.1.2 HostPK 18 5.1.3 要下载的主密钥明文 19 5.2 证书协议模拟测试数据 19 5.2.1 主机证书 19 5.2.2 密码键盘加密证书 20 5.2.3 密码键盘签名证书 21 5.2.4 解密要安装的DES密钥信息 22 6 参考文档 23 1 缩写、符号和术语 本文档使用以下缩写、符号和术语: ATM 自动柜员机 BER 基本编码规则 DER 可辨别编码规则 CA 认证机构 DES 数据加密标准 EPP 密码键盘 HOST 银行主机 PKCS 公钥密码标准 PKCS1 RSA加密标准 PKCS7 密码信息语法标准 RSA 使用公钥和私钥的非对称加密方案 XFS 金融扩展服务 SI 厂商签名系统 SKEPP EPP或ATM的私钥 PKEPP EPP或ATM的公钥 SKATM EPP或ATM的私钥 PKATM EPP或ATM的公钥 SKEPPs EPP或ATM的签名用途私钥 PKEPPs EPP或ATM的签名用途公钥 SKHOST 主机的私钥 PKHOST 主机的公钥 SKSI 厂商签名系统的私钥 PKSI 厂商签名系统的公钥 KM DES或3DES主密钥 KW DES或3DES工作密钥 IATM EPP或ATM标识 Ihost 主机标识 UIATM EPP或ATM标识 CertPKname 指定name名称的公钥证书 Sign(SKe)[D] 使用私钥SKe对数据D的签名 RSACrypt(PKe)[D] 使用公钥PKe对数据D的加密结果 A || B 数据A 与 数据B串联 RATM EPP或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 05 2.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 || H 3. EM = 0x00 || 0x01 || PS || 0x00 || T, 这里PS=FF … FF 4. 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 CB 1. H=5C 3E B8 00 66 42 00 02 BC 3D CC 7C A4 AB 6E FA D7 ED 4A E5 2. 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 1C 3. 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 1C 4. 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协议的RKL 3.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_ID 2) 密码键盘返回密码键盘标识及签名(用厂商私钥签的), 主机用厂商公钥校验,并查询键盘标识列表, 若校验通过且该键盘标识在列表中存在, 继续下一步, 否则失败退出。 3) 主机向密码键盘询问密码键盘公钥 WFS_CMD_PIN_EXPORT_RSA_ISSUER_SIGNED_ITEM, 参数取值: WFS_PIN_EXPORT_PUBLIC_KEY 4) 密码键盘返回密码键盘公钥及签名(用厂商私钥签的), 主机用厂商公钥校验, 若校验通过, 继续下一步, 否则失败退出。 5) 主机向密码键盘传送其公钥和签名(用厂商私钥签的), 密码键盘用厂商公钥校验, 若校验通过, 继续下一步, 否则失败退出。 具体流程见下图所示: 3.1.3 下载主密钥 按下面流程进行: 1) 主机向密码键盘请求随机数RATM WFS_CMD_PIN_START_KEY_EXCHANGE 2) 密码键盘产生随机数RATM, 返回给主机 3) 主机生成中主密钥Km, 用密码键盘公钥加密后得Cryptdata, 连接IATM得keyVal,用自己的私钥对keyVal签名得signData, 然后把keyVal和signData一起发给密码键盘。 WFS_CMD_PIN_IMPORT_RSA_SIGNED_DES_KEY 4) 密码键盘先用主机公钥校验签名, 通过后再对比随机数是否和刚才生成的一致,然后用自己的私钥解密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协议的RKL 4.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, 保存Km 5) 密码键盘用自己的私钥对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 GrgPK 84 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 D1 GrgPK是不变的。不会随银行和密码键盘的不同而改变. 5.1.2 HostPK HostPK_DER=30 82
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 包罗万象 > 大杂烩

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服