一种基于云网络的安全通道建立系统转让专利

申请号 : CN201711080191.7

文献号 : CN107707564B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 徐波宋志华

申请人 : 山东渔翁信息技术股份有限公司

摘要 :

本发明公开了一种基于云网络的安全通道建立系统,包括应用端和加密机,加密机中预先设置有设备密钥,其中:应用端在与加密机建立socket连接后,生成一个随机数,使用设备密钥的公钥对随机数进行加密处理,获得第一密文,将第一密文发送给加密机,加密机使用私钥对第一密文进行解密处理,根据随机数,确定socket连接对应的会话密钥,使用会话密钥对预设的成功信息进行加密运算,获得第二密文,将第二密文返回给应用端,应用端使用socket连接对应的会话密钥对第二密文进行解密运算,根据解密结果,确定与加密机的安全通道是否建立成功。这样,提高了待传输的数据的安全性,降低了待传输的数据被泄露和篡改的风险。

权利要求 :

1.一种基于云网络的安全通道建立系统,其特征在于,包括应用端和加密机,所述加密机中预先设置有设备密钥,其中:所述应用端,用于在与所述加密机建立socket连接后,生成一个随机数;使用预先获得的所述设备密钥的公钥对所述随机数进行加密处理,获得第一密文;将所述第一密文发送给所述加密机;接收所述加密机返回的第二密文;使用所述socket连接对应的会话密钥对所述第二密文进行解密运算;根据解密结果,确定与所述加密机的安全通道是否建立成功;

所述加密机,用于接收所述应用端发送的所述第一密文;使用所述设备密钥的私钥对所述第一密文进行解密处理;如果获得所述随机数,则根据所述随机数,确定所述socket连接对应的所述会话密钥,使用所述会话密钥对预设的成功信息进行加密运算,获得所述第二密文;将所述第二密文返回给所述应用端,所述会话密钥为所述随机数的部分字节;

所述加密机,还用于根据所述随机数,确定所述socket连接对应的初始化矢量;将所述会话密钥、所述初始化矢量与所述socket连接的socket句柄绑定存储;

所述应用端,还用于在确定与所述加密机的安全通道建立成功时,将所述会话密钥、初始化矢量与所述socket连接的socket句柄绑定存储;

所述应用端与所述加密机建立安全通道后,所述应用端使用与所述socket句柄绑定的会话密钥与所述加密机进行通信,通过所述加密机对待传输的数据进行加解密操作。

2.根据权利要求1所述的基于云网络的安全通道建立系统,其特征在于,所述应用端,具体用于在解密结果与预设的成功标识匹配时,确定与所述加密机的安全通道建立成功;在所述解密结果与所述成功标识不匹配时,确定与所述加密机的安全通道未建立成功。

3.根据权利要求2所述的基于云网络的安全通道建立系统,其特征在于,所述应用端,还用于在确定与所述加密机的安全通道未建立成功时,关闭所述socket连接,与所述加密机建立新的socket连接。

4.根据权利要求1所述的基于云网络的安全通道建立系统,其特征在于,所述加密机,还用于在所述使用所述设备密钥的私钥对所述第一密文进行解密处理之后,如果未获得所述随机数,则向所述应用端发送错误信息,并关闭所述socket连接。

5.根据权利要求4所述的基于云网络的安全通道建立系统,其特征在于,所述应用端,还用于在接收到所述错误信息后,关闭所述socket连接。

6.根据权利要求1至5之中任一项所述的基于云网络的安全通道建立系统,其特征在于,所述设备密钥为基于SM2算法的密钥。

7.根据权利要求6所述的基于云网络的安全通道建立系统,其特征在于,所述应用端,具体用于基于所述SM2算法,使用预先获得的所述设备密钥的公钥对所述随机数进行加密处理;

所述加密机,具体用于基于所述SM2算法,使用所述设备密钥的私钥对所述第一密文进行解密处理。

8.根据权利要求7所述的基于云网络的安全通道建立系统,其特征在于,所述加密机,具体用于基于SM4CBC模式,使用所述会话密钥对预设的成功信息进行加密运算;

所述应用端,具体用于基于所述SM4CBC模式,使用所述socket连接对应的会话密钥对所述第二密文进行解密运算。

说明书 :

一种基于云网络的安全通道建立系统

技术领域

[0001] 本发明涉及信息安全技术领域,特别是涉及一种基于云网络的安全通道建立系统。

背景技术

[0002] 随着云计算技术的快速发展,云网络的使用越来越频繁,各个厂家越来越倾向于在云网络中部署自己的应用端来达到节约成本、集中管理的目的。应用端在云网络下的安全需求需要调用加密机来实现,即作为通信发送方的应用端通过加密机对待传输的数据进行加密操作后,发送给通信接收方。
[0003] 目前,应用端与加密机之间多是通过明文方式传输数据,这种方式在云网络下安全性较低,传输的数据容易被泄露和篡改。

发明内容

[0004] 本发明的目的是提供一种基于云网络的安全通道建立系统,以提高应用端与加密机之间的数据的安全性,降低传输的数据被泄露和篡改的风险。
[0005] 为解决上述技术问题,本发明提供如下技术方案:
[0006] 一种基于云网络的安全通道建立系统,包括应用端和加密机,所述加密机中预先设置有设备密钥,其中:
[0007] 所述应用端,用于在与所述加密机建立socket连接后,生成一个随机数;使用预先获得的所述设备密钥的公钥对所述随机数进行加密处理,获得第一密文;将所述第一密文发送给所述加密机;接收所述加密机返回的第二密文;使用所述socket连接对应的会话密钥对所述第二密文进行解密运算;根据解密结果,确定与所述加密机的安全通道是否建立成功;
[0008] 所述加密机,用于接收所述应用端发送的所述第一密文;使用所述设备密钥的私钥对所述第一密文进行解密处理;如果获得所述随机数,则根据所述随机数,确定所述socket连接对应的所述会话密钥,使用所述会话密钥对预设的成功信息进行加密运算,获得所述第二密文;将所述第二密文返回给所述应用端。
[0009] 在本发明的一种具体实施方式中,
[0010] 所述加密机,还用于根据所述随机数,确定所述socket连接对应的初始化矢量;将所述会话密钥、所述初始化矢量与所述socket连接的socket句柄绑定存储。
[0011] 在本发明的一种具体实施方式中,
[0012] 所述应用端,具体用于在解密结果与预设的成功标识匹配时,确定与所述加密机的安全通道建立成功;在所述解密结果与所述成功标识不匹配时,确定与所述加密机的安全通道未建立成功。
[0013] 在本发明的一种具体实施方式中,
[0014] 所述应用端,还用于在确定与所述加密机的安全通道未建立成功时,关闭所述socket连接,与所述加密机建立新的socket连接。
[0015] 在本发明的一种具体实施方式中,
[0016] 所述应用端,还用于在确定与所述加密机的安全通道建立成功时,将所述会话密钥、初始化矢量与所述socket连接的socket句柄绑定存储。
[0017] 在本发明的一种具体实施方式中,
[0018] 所述加密机,还用于在所述使用所述设备密钥的私钥对所述第一密文进行解密处理之后,如果未获得所述随机数,则向所述应用端发送错误信息,并关闭所述socket连接。
[0019] 在本发明的一种具体实施方式中,
[0020] 所述应用端,还用于在接收到所述错误信息后,关闭所述socket连接。
[0021] 在本发明的一种具体实施方式中,所述设备密钥为基于SM2算法的密钥。
[0022] 在本发明的一种具体实施方式中,
[0023] 所述应用端,具体用于基于所述SM2算法,使用预先获得的所述设备密钥的公钥对所述随机数进行加密处理;
[0024] 所述加密机,具体用于基于所述SM2算法,使用所述设备密钥的私钥对所述第一密文进行解密处理。
[0025] 在本发明的一种具体实施方式中,
[0026] 所述加密机,具体用于基于SM4CBC模式,使用所述会话密钥对预设的成功信息进行加密运算;
[0027] 所述应用端,具体用于基于所述SM4CBC模式,使用所述socket连接对应的会话密钥对所述第二密文进行解密运算。
[0028] 应用本发明实施例所提供的技术方案,应用端在与加密机建立socket连接后,生成一个随机数,使用预先获得的加密机中预设设置的设备密钥的公钥对随机数进行加密处理,获得第一密文,将第一密文发送给加密机,加密机使用设备密钥的私钥对第一密文进行解密处理,如果获得随机数,则根据随机数,确定socket连接对应的会话密钥,使用会话密钥对预设的成功信息进行加密运算,获得第二密文,将第二密文返回给应用端,应用端使用socket连接对应的会话密钥对第二密文进行解密运算,根据解密结果,确定与加密机的安全通道是否建立成功。实现应用端与加密机的安全通道的建立,使得应用端可以通过安全通道将待传输的数据发送给加密机,提高待传输的数据的安全性,降低待传输的数据被泄露和篡改的风险。

附图说明

[0029] 为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0030] 图1为本发明实施例中一种基于云网络的安全通道建立系统的结构示意图;
[0031] 图2为本发明实施例中基于云网络的安全通道建立过程示意图。

具体实施方式

[0032] 为了使本技术领域的人员更好地理解本发明方案,下面结合附图和具体实施方式对本发明作进一步的详细说明。显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0033] 参见图1所示,为本发明实施例所提供的一种基于云网络的安全通道建立系统的结构示意图。该系统可以包括应用端110和加密机120,加密机120中预先设置有设备密钥,其中:
[0034] 应用端110,用于在与加密机120建立socket连接后,生成一个随机数;使用预先获得的设备密钥的公钥对随机数进行加密处理,获得第一密文;将第一密文发送给加密机120;接收加密机120返回的第二密文;使用socket连接对应的会话密钥对第二密文进行解密运算;根据解密结果,确定与加密机120的安全通道是否建立成功;
[0035] 加密机120,用于接收应用端110发送的第一密文;使用设备密钥的私钥对第一密文进行解密处理;如果获得随机数,则根据随机数,确定socket连接对应的会话密钥,使用会话密钥对预设的成功信息进行加密运算,获得第二密文;将第二密文返回给应用端110。
[0036] 本发明实施例所提供的基于云网络的安全通道建立系统包括应用端110和加密机120,目的是建立应用端110和加密机120之间的安全通道。
[0037] 在本发明实施例中,加密机120中预先设置有设备密钥,该设备密钥可以是加密机120出厂时初始化设置的,还可以是加密机120出厂后技术人员修改设置的。在实际应用中,设备密钥具体可以为基于SM2算法的密钥,包括公钥和私钥。应用端110可以从加密机120处预先获得设备密钥的公钥。当然,设备密钥还可以是基于RSA算法等其他算法的密钥,本发明实施例对此不做限制。
[0038] 在实际应用过程中,应用端110可以向加密机120发送socket连接请求,加密机120监听服务端口,在接收到请求后与应用端110建立socket连接。应用端110在与加密机120建立socket连接后,可以生成一个随机数。比如生成一个32字节的随机数。
[0039] 应用端110使用预先获得设备密钥的公钥对随机数进行加密处理,可以获得第一密文。具体的,应用端110可以基于SM2算法,使用预先获得的设备密钥的公钥对随机数进行加密处理,获得第一密文。
[0040] SM2算法是一种基于ECC椭圆曲线算法,是一种安全的非对称算法,可以使用更短的密钥达到更高的安全等级。
[0041] 应用端110获得第一密文后,将第一密文发送给加密机120。
[0042] 加密机120接收到应用端110发送的第一密文后,使用设备密钥的私钥对第一密文进行解密处理。相应的,加密机120可以基于SM2算法,使用设备密钥的私钥对第一密文进行解密处理。
[0043] 加密机120在使用设备密钥的私钥对第一密文进行解密处理之后,可以通过是否获得随机数,确定是否解密成功。如果可以获得随机数,则表明解密成功,加密机120可以根据随机数,确定socket连接对应的会话密钥,使用会话密钥对预设的成功信息进行加密运算,获得第二密文,并将第二密文返回给应用端110。如果未获得随机数,如获得乱码,则表明解密失败。在这种情况下,加密机120可以向应用端110发送错误信息,并关闭socket连接。应用端110在接收到错误信息后,可以关闭socket连接。
[0044] 加密机120在获得随机数后,还可以根据随机数,确定socket连接对应的初始化矢量,将会话密钥、初始化矢量与socket连接的socket句柄绑定存储。
[0045] 以应用端110生成32字节随机数为例,加密机120使用设备密钥的私钥对第一密文进行解密处理后,如果解密成功,可获得32字节随机数,在获得32位字节随机数后,可以将该随机数的前16字节确定为会话密钥,后16字节确定为初始化矢量(initialization vector,iv)。确定的会话密钥和初始化矢量均为当前socket连接对应的,加密机120可以将会话密钥、初始化矢量与socket连接的socket句柄绑定存储。
[0046] 预设的成功信息可以是0或其他字符,本发明实施例对此不做限制。
[0047] 加密机120将第二密文返回给应用端110后,应用端110可以接收加密机120返回的第二密文,使用socket连接对应的会话密钥对第二密文进行解密运算。根据解密结果,可以确定与加密机120的安全通道是否建立成功。具体的,在解密结果与预设的成功标识匹配时,确定与加密机120的安全通道建立成功;在解密结果与成功标识不匹配时,确定与加密机120的安全通道未建立成功。
[0048] 在本发明实施例中,可以预设一个成功标识,如设置为0,应用端110使用socket连接对应的会话密钥对第二密文进行解密运算,如果解密结果与预设的成功标识匹配,则可以确定与加密机120的安全通道建立成功,如果解密结果与成功标识不匹配,则可以确定与加密机120的安全通道未建立成功。
[0049] 应用端110在确定与加密机120的安全通道未建立成功时,可以关闭socket连接,与加密机120建立新的socket连接,重新进行会话密钥的协商。
[0050] 应用端110在确定与加密机120的安全通道建立成功时,可以将会话密钥、初始化矢量与socket连接的socket句柄绑定存储。
[0051] 在本发明的一种具体实施方式中,加密机120具体可以基于SM4CBC模式,使用会话密钥对预设的成功信息进行加密运算;相应的,应用端110具体可以基于SM4CBC模式,使用socket连接对应的会话密钥对第二密文进行解密运算。
[0052] SM4算法是一种对称算法,CBC模式的算法可以保证数据的保密性和不可抵赖性,达到加密和防篡改的目的。
[0053] 应用端110与加密机120建立安全通道后,应用端110可以使用与socket句柄绑定的会话密钥与加密机120进行通信,通过加密机120对待传输的数据进行加解密操作。即应用端110使用与socket句柄绑定的会话密钥对待传输的第一数据进行加密后,得到第二数据,传输给加密机120,加密机120使用会话密钥对接收到的第二数据进行解密,得到待传输的第一数据,使用预设的加密规则对待传输的第一数据进行加密后,得到第三数据,使用相应的会话密钥对第三数据进行加密,得到第四数据,返回给应用端110,应用端110使用相应的会话密钥对第四数据进行解密,得到经过加密机120加密处理的第三数据,将第三数据发送给通信接收方即可。也就是说,应用端110与加密机120之间建立安全通道后,应用端110通过安全通道将待传输的数据发送给加密机120,可以提高待传输的数据的安全性,降低传输的数据被泄露和篡改的风险。
[0054] 为便于理解,以图2为例,对本发明实施例中基于云网络的安全通道建立过程进行详细说明。
[0055] S210:应用端向加密机发送socket连接请求;
[0056] S220:加密机与应用端之间建立socket连接;
[0057] S230:应用端生成32字节随机数;
[0058] S240:应用端使用加密机的设备密钥的公钥对随机数进行加密处理,获得第一密文,发送给加密机;
[0059] S250:加密机使用设备密钥的私钥对第一密文进行解密,确定会话密钥和初始化矢量;
[0060] S260:加密机使用会话密钥对成功信息进行加密运算,获得第二密文,发送给应用端;
[0061] S270:应用端使用会话密钥对第二密文进行解密运算;
[0062] S280:应用端与加密机之间的安全通道建立成功。
[0063] 应用本发明实施例所提供的系统,应用端在与加密机建立socket连接后,生成一个随机数,使用预先获得的加密机中预设设置的设备密钥的公钥对随机数进行加密处理,获得第一密文,将第一密文发送给加密机,加密机使用设备密钥的私钥对第一密文进行解密处理,如果获得随机数,则根据随机数,确定socket连接对应的会话密钥,使用会话密钥对预设的成功信息进行加密运算,获得第二密文,将第二密文返回给应用端,应用端使用socket连接对应的会话密钥对第二密文进行解密运算,根据解密结果,确定与加密机的安全通道是否建立成功。实现应用端与加密机的安全通道的建立,使得应用端可以通过安全通道将待传输的数据发送给加密机,提高待传输的数据的安全性,降低待传输的数据被泄露和篡改的风险。
[0064] 本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似部分互相参见即可。
[0065] 专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
[0066] 结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
[0067] 本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的技术方案及其核心思想。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以对本发明进行若干改进和修饰,这些改进和修饰也落入本发明权利要求的保护范围内。