一种基于协商密钥的双CPU通信方法及系统与流程
- 国知局
- 2024-09-05 14:45:01
本发明涉及支付安全,特别指一种基于协商密钥的双cpu通信方法及系统。
背景技术:
1、随着科技的发展与进步,各种类型的用于支付的pos终端层出不穷,pos终端的安全也受到越来越多的关注。为了满足多样化的业务场景和更高的性能要求,pos终端通常会采用双cpu的架构,包含通用cpu(简称ap)和安全cpu(简称sp)。为了完成交易,双cpu之间往往需要传递数据,传递的数据一般会包含敏感数据,仅简单使用双cpu架构,暴露的通讯总线存在被监听和篡改的安全问题,进而影响支付安全性。
2、因此,如何提供一种基于协商密钥的双cpu通信方法及系统,实现提升双cpu通信的安全性,进而提升支付安全性,成为一个亟待解决的技术问题。
技术实现思路
1、本发明要解决的技术问题,在于提供一种基于协商密钥的双cpu通信方法及系统,实现提升双cpu通信的安全性,进而提升支付安全性。
2、第一方面,本发明提供了一种基于协商密钥的双cpu通信方法,包括如下步骤:
3、步骤s1、认证服务器基于sm2算法创建一根私钥、一携带根公钥的根证书,基于sm2算法创建一第一ap私钥、一第一ap公钥、一sp私钥以及一sp公钥,通过所述根私钥对第一ap公钥进行签名得到ap工作证书,通过所述根私钥对sp公钥进行签名得到sp工作证书;
4、步骤s2、认证服务器将所述根证书、ap工作证书以及第一ap私钥下发给通用cpu,将所述根证书、sp工作证书以及sp私钥下发给安全cpu;
5、步骤s3、通用cpu生成一第一随机数,将所述第一随机数以及ap工作证书发送给安全cpu;
6、步骤s4、安全cpu对所述ap工作证书进行合法性校验并提取第一ap公钥,生成一第二随机数,通过所述sp私钥对第一随机数进行签名得到第一签名数据,将所述第一签名数据、sp工作证书以及第二随机数发送给通用cpu;
7、步骤s5、通用cpu对所述sp工作证书进行合法性校验并提取sp公钥,通过所述sp公钥对第一签名数据进行验签后,创建一第二ap私钥以及一第二ap公钥,通过所述第一ap私钥对第二ap公钥以及第二随机数进行签名得到第二签名数据,将所述第二签名数据以及第二ap公钥发送给安全cpu;
8、步骤s6、安全cpu对所述第二签名数据进行验签后,生成一会话密钥,通过所述第二ap公钥对会话密钥进行加密得到密文数据,计算所述会话密钥的第一校验值,通过所述sp私钥对密文数据以及第一校验值进行签名得到第三签名数据,将所述密文数据、第一校验值以及第三签名数据发送给通用cpu;
9、步骤s7、通用cpu对所述第三签名数据进行验签后,解密所述密文数据得到会话密钥,计算所述会话密钥的第二校验值,通过所述第二校验值对第一校验值进行校验后,建立通用cpu与安全cpu之间的安全通信通道并进行通信。
10、进一步的,所述步骤s1中,所述根私钥与根公钥为配对的一对密钥;所述第一ap私钥与第一ap公钥为配对的一对密钥;所述sp私钥与sp公钥为配对的一对密钥;
11、所述根私钥用于第一ap公钥、sp公钥进行签名;所述根公钥用于对ap工作证书和sp工作证书进行验签;
12、所述步骤s4具体为:
13、安全cpu从所述根证书提取根公钥,通过所述根公钥对接收的ap工作证书进行验签后,从所述ap工作证书中提取第一ap公钥,生成一第二随机数,通过所述sp私钥对第一随机数进行签名得到第一签名数据,将所述第一签名数据、sp工作证书以及第二随机数实时发送给通用cpu。
14、进一步的,所述步骤s5具体为:
15、通用cpu从所述根证书提取根公钥,通过所述根公钥对接收的sp工作证书进行验签后,从所述sp工作证书提取sp公钥,通过所述sp公钥对第一签名数据进行验签后,基于sm2算法创建一第二ap私钥以及一第二ap公钥,所述第二ap私钥与第二ap公钥为配对的一对密钥;
16、通用cpu通过所述第一ap私钥对第二ap公钥以及第二随机数进行签名得到第二签名数据,将所述第二签名数据以及第二公钥实时发送给安全cpu。
17、进一步的,所述步骤s6具体为:
18、安全cpu通过所述第一ap公钥对第二签名数据进行验签后,生成一会话密钥,通过所述第二ap公钥对会话密钥进行加密得到密文数据,使用所述会话密钥对16个字节的0进行加密,至多取前3字节作为第一校验值,通过所述sp私钥对密文数据以及第一校验值进行签名得到第三签名数据,将所述密文数据、第一校验值以及第三签名数据实时发送给通用cpu。
19、进一步的,所述步骤s7具体为:
20、通用cpu通过所述sp公钥对第三签名数据进行验签后,使用所述第二ap私钥解密密文数据得到会话密钥,使用所述会话密钥对16个字节的0进行加密,至多取前3字节作为第二校验值,判断所述第一校验值与第二校验值是否一致,若否,则结束流程;若是,则建立通用cpu与安全cpu之间的安全通信通道,通用cpu与安全cpu通过所述安全通信通道进行通信,通信过程中通过所述会话密钥对通信数据进行加解密。
21、第二方面,本发明提供了一种基于协商密钥的双cpu通信系统,包括如下模块:
22、证书创建模块,用于认证服务器基于sm2算法创建一根私钥、一携带根公钥的根证书,基于sm2算法创建一第一ap私钥、一第一ap公钥、一sp私钥以及一sp公钥,通过所述根私钥对第一ap公钥进行签名得到ap工作证书,通过所述根私钥对sp公钥进行签名得到sp工作证书;
23、证书下发模块,用于认证服务器将所述根证书、ap工作证书以及第一ap私钥下发给通用cpu,将所述根证书、sp工作证书以及sp私钥下发给安全cpu;
24、第一随机数生成模块,用于通用cpu生成一第一随机数,将所述第一随机数以及ap工作证书发送给安全cpu;
25、第一签名模块,用于安全cpu对所述ap工作证书进行合法性校验并提取第一ap公钥,生成一第二随机数,通过所述sp私钥对第一随机数进行签名得到第一签名数据,将所述第一签名数据、sp工作证书以及第二随机数发送给通用cpu;
26、第二签名模块,用于通用cpu对所述sp工作证书进行合法性校验并提取sp公钥,通过所述sp公钥对第一签名数据进行验签后,创建一第二ap私钥以及一第二ap公钥,通过所述第一ap私钥对第二ap公钥以及第二随机数进行签名得到第二签名数据,将所述第二签名数据以及第二ap公钥发送给安全cpu;
27、会话密钥创建模块,用于安全cpu对所述第二签名数据进行验签后,生成一会话密钥,通过所述第二ap公钥对会话密钥进行加密得到密文数据,计算所述会话密钥的第一校验值,通过所述sp私钥对密文数据以及第一校验值进行签名得到第三签名数据,将所述密文数据、第一校验值以及第三签名数据发送给通用cpu;
28、安全通信通道建立模块,用于通用cpu对所述第三签名数据进行验签后,解密所述密文数据得到会话密钥,计算所述会话密钥的第二校验值,通过所述第二校验值对第一校验值进行校验后,建立通用cpu与安全cpu之间的安全通信通道并进行通信。
29、进一步的,所述证书创建模块中,所述根私钥与根公钥为配对的一对密钥;所述第一ap私钥与第一ap公钥为配对的一对密钥;所述sp私钥与sp公钥为配对的一对密钥;
30、所述根私钥用于对第一ap公钥、sp公钥进行签名;所述根公钥用于对ap工作证书和sp工作证书进行验签;
31、所述第一签名模块具体用于:
32、安全cpu从所述根证书提取根公钥,通过所述根公钥对接收的ap工作证书进行验签后,从所述ap工作证书中提取第一ap公钥,生成一第二随机数,通过所述sp私钥对第一随机数进行签名得到第一签名数据,将所述第一签名数据、sp工作证书以及第二随机数实时发送给通用cpu。
33、进一步的,所述第二签名模块具体用于:
34、通用cpu从所述根证书提取根公钥,通过所述根公钥对接收的sp工作证书进行验签后,从所述sp工作证书提取sp公钥,通过所述sp公钥对第一签名数据进行验签后,基于sm2算法创建一第二ap私钥以及一第二ap公钥,所述第二ap私钥与第二ap公钥为配对的一对密钥;
35、通用cpu通过所述第一ap私钥对第二ap公钥以及第二随机数进行签名得到第二签名数据,将所述第二签名数据以及第二ap公钥实时发送给安全cpu。
36、进一步的,所述会话密钥创建模块具体用于:
37、安全cpu通过所述第一ap公钥对第二签名数据进行验签后,生成一会话密钥,通过所述第二ap公钥对会话密钥进行加密得到密文数据,使用所述会话密钥对16个字节的0进行加密,至多取前3字节作为第一校验值,通过所述sp私钥对密文数据以及第一校验值进行签名得到第三签名数据,将所述密文数据、第一校验值以及第三签名数据实时发送给通用cpu。
38、进一步的,所述安全通信通道建立模块具体用于:
39、通用cpu通过所述sp公钥对第三签名数据进行验签后,使用所述第二ap私钥解密密文数据得到会话密钥,使用所述会话密钥对16个字节的0进行加密,至多取前3字节作为第二校验值,判断所述第一校验值与第二校验值是否一致,若否,则结束流程;若是,则建立通用cpu与安全cpu之间的安全通信通道,通用cpu与安全cpu通过所述安全通信通道进行通信,通信过程中通过所述会话密钥对通信数据进行加解密。
40、本发明的优点在于:
41、1、通过认证服务器创建一根私钥、一携带根公钥的根证书,创建第一ap私钥、第一ap公钥、sp私钥、sp公钥,通过根私钥对第一ap公钥进行签名得到ap工作证书,通过根私钥对sp公钥进行签名得到sp工作证书,将根证书、ap工作证书、第一ap私钥下发给通用cpu,将根证书、sp工作证书、sp私钥下发给安全cpu;接着通用cpu生成第一随机数,将第一随机数以及ap工作证书发送给安全cpu,安全cpu对ap工作证书进行合法性校验并提取第一ap公钥,生成第二随机数,通过sp私钥对第一随机数进行签名得到第一签名数据,将第一签名数据、sp工作证书以及第二随机数发送给通用cpu;接着通用cpu对sp工作证书进行合法性校验并提取sp公钥,通过sp公钥对第一签名数据进行验签后,创建第二ap私钥、第二ap公钥,通过第一ap私钥对第二ap公钥以及第二随机数进行签名得到第二签名数据,并将第二签名数据以及第二ap公钥发送给安全cpu,接着安全cpu对第二签名数据进行验签后,基于sp私钥以及第一ap公钥协商会话密钥,通过第二ap公钥对会话密钥进行加密得到密文数据,计算会话密钥的第一校验值,通过sp私钥对密文数据以及第一校验值进行签名得到第三签名数据,将密文数据、第一校验值以及第三签名数据发送给通用cpu;最后通用cpu对第三签名数据进行验签后,解密密文数据得到会话密钥,计算会话密钥的第二校验值,通过第二校验值对第一校验值进行校验后,建立通用cpu与安全cpu之间的安全通信通道并进行通信;即基于根证书、ap工作证书、sp工作证书,对通用cpu和安全cpu之间的串口通信进行认证,认证过程采取至少5重安全措施(ap工作证书校验、sp工作证书校验、第一签名数据验签、第二签名数据验签、第一校验值校验),且第一签名数据验签、第二签名数据验签以及第一校验值校验均基于多个密钥生成,增加破解难度,最终极大的提升了双cpu通信的安全性,进而极大的提升了支付安全性。
42、2、通过通用cpu生成第一随机数、安全cpu生成第二随机数用于双向认证,可有效预防重放攻击,进一步提升了双cpu通信的安全性。
43、3、通过第二ap公钥对会话密钥进行加密得到密文数据,避免会话密钥在传输过程中被明文窃取,保障了会话密钥传输的安全性,进而提升了双cpu通信的安全性。
本文地址:https://www.jishuxx.com/zhuanli/20240905/287976.html
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 YYfuon@163.com 举报,一经查实,本站将立刻删除。