一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种基于加密设备的网络协议安全提升方法与流程

2022-09-03 15:28:54 来源:中国专利 TAG:


1.本发明涉及网络安全技术领域,尤其是涉及一种基于加密设备的网络协议安全提升方法。


背景技术:

2.传统网络服务如ftp,telnet等,在网络上使用明文传输口令和数据,在本质上是不安全的,很容易被攻击者截获。其中,网络服务中提供安全性的协议可以为ssh、rfb、rdp协议等,以ssh(secure shell)协议为例,它是基于公钥的安全应用协议,具有加密、认证、完整性检测等多种安全服务,可以有效的抵御“中间人攻击”等攻击方式,openssh工具是ssh协议的免费开源实现,可以提供密钥生成、密钥协商、完整性校验等功能。
3.从客户端的角度来看,ssh提供了两种级别的安全验证。第一种是基于口令的安全验证。只要知道自己的账号和口令,就可以登录到远程主机。所有的传输数据都会被加密。但是这种方式并不能有效验证服务器的身份,依然会受到“中间人攻击”等攻击。第二种是基于密钥的安全验证。使用这种方式时,服务端和客户端都生成自己的密钥对。客户端连接服务器时,客户端会根据服务器的公钥和签名来验证服务器的身份。验证通过后,客户端会发送自己的公钥以及客户端信息的签名,服务器使用客户端公钥进行验签,并比对客户端信息,比对通过后完成ssh登录过程。这种方式对比第一种,能更有效的防止“中间人攻击”,安全性更高。
4.在一些需要高安全性的涉密网络中,如政务系统,银行系统等,面对的风险来自方方面面,用户私钥的安全性很容易成为整个网络服务登录过程的薄弱环节。
5.故亟需提供一种网络协议安全提升方法来解决上述问题。


技术实现要素:

6.基于此,本发明的目的在于提供一种基于加密设备的网络协议安全提升方法,客户端在生成公钥、私钥时由用户环境生成替换成由加密设备生成,使得私钥不出密码设备,有效提升了私钥的安全性和密码运算的安全性。
7.为解决上述技术问题,本发明采用以下技术方案:
8.本发明提供了一种基于加密设备的网络协议安全提升方法,其包括如下步骤:
9.步骤s110、在网络服务协议中增加密钥生成函数,调用加密设备,获取密钥及私钥索引,其中,密钥对包括公钥及私钥,网络服务协议为ssh、nvc或rdp协议;
10.步骤s120、将私钥索引和公钥信息返回给密钥管理模块;
11.步骤s130、密钥管理模块将私钥索引、公钥信息与客户端信息进行组合后生成公钥文件,发送到服务端;
12.步骤s140、对客户端进行身份认证,存储公钥文件;
13.步骤s150、客户端发起登陆请求;
14.步骤s160、建立加密隧道;
15.步骤s170、对公钥文件及客户端信息进行签名;
16.步骤s180、客户端通过加密隧道发送经签名的公钥文件及客户端信息给服务端;
17.步骤s190、建立网络协议连接。
18.在其中一个实施例中,当网络服务协议为ssh协议时,所述步骤s110的方法,具体操作包括:
19.在openssh源码中sshkey.c密码算法文件中增加密钥生成函数sm2_generate_private_key,修改rsa_generate_private_key函数,把密钥生成的过程修改为调用设备兼容层api;其中,设备兼容层api为设备兼容层的调用接口;
20.设备兼容层调用加密设备,加密设备生成sm2/rsa密钥对及私钥索引;
21.加密设备将私钥索引和公钥信息返回给设备兼容层,设备兼容层获取加密设备生成的sm2/rsa密钥对及私钥索引;其中,公钥信息为加密设备生成密钥对中的公钥信息。
22.在其中一个实施例中,当网络服务协议为ssh协议时,所述步骤s160的方法,包括以下步骤:
23.步骤s161-1a、修改openssh源码ssh-keyscan.c、sshconnect2.c文件,增加sm2标识符;
24.步骤s162-1a、修改openssh源码中的cipher.c、digest-openssl.c文件,增加sm4算法;
25.步骤s161a、服务端与客户端进行会话,服务端发送服务端支持的算法给客户端,客户端将客户端支持的算法与服务端支持的算法进行比对,客户端与服务端确定协商需要的算法;
26.步骤s162a、服务端利用dh算法与客户端通过会话方式协商出使用sm4算法的会话密钥,实现建立加密隧道的操作。
27.在其中一个实施例中,当网络服务协议为ssh协议时,所述步骤s170的方法,具体操作包括:
28.步骤s171a、设备兼容层根据私钥索引,通过调用加密设备对公钥文件及客户端信息进行签名;
29.步骤s172a、客户端通过设备兼容层api获取设备兼容层返回的公钥文件及客户端信息的签名。
30.在其中一个实施例中,当网络服务协议为vnc协议时,所述步骤s110的方法,具体操作包括:
31.在vnc源码所依赖的加密模块的源码com/jcraft/jsch/keypairxxx.java文件中增加国密sm2密钥生成算法,在vnc源码所依赖的加密模块的源码/com/jcraft/jsch/keyexchange.java文件中增加sm2签名验签算法、sm4对称加解密算法,把密钥生成的过程修改为调用jni封装;jni封装为设备兼容层的调用接口;
32.设备兼容层调用加密设备,加密设备生成sm2密钥对及私钥索引;
33.加密设备将私钥索引和公钥信息返回给设备兼容层,设备兼容层获取加密设备生成的sm2密钥对及私钥索引;其中,公钥信息为加密设备生成密钥对中的公钥信息。
34.在其中一个实施例中,当网络服务协议为vnc协议时,所述步骤s160的方法,包括以下步骤:
35.步骤s161-1b、修改vnc源码common/rfb/ssecuritytls.cxx文件,增加sm2标识符;
36.步骤s162-1b、修改vnc源码所依赖的加密模块的源码/com/jcraft/jsch/keyexchange.java文件,增加sm4算法;
37.步骤s161b、服务端与客户端进行会话,服务端发送服务端支持的算法给客户端,客户端将客户端支持的算法与服务端支持的算法进行比对,客户端与服务端确定协商需要的算法;
38.步骤s162b、服务端利用dh算法与客户端通过会话方式协商出使用sm4算法的会话密钥,实现建立加密隧道的操作。
39.在其中一个实施例中,当网络服务协议为vnc协议时,所述步骤s170的方法,具体操作包括:
40.步骤s171b、设备兼容层根据私钥索引,通过调用加密设备对公钥文件及客户端信息进行签名;
41.步骤s172b、客户端通过jni封装从java调用c 库获取设备兼容层返回的公钥文件及客户端信息的签名。
42.在其中一个实施例中,当网络服务协议为rdp协议时,所述步骤s110的方法,具体操作包括:
43.在rdp源码所依赖的加密模块的源码crypto/crypto.c文件中增加国密sm2密钥生成算法,把密钥生成的过程修改为调用设备兼容层api;其中,设备兼容层api为设备兼容层的调用接口;
44.设备兼容层调用加密设备,加密设备生成sm2密钥对及私钥索引;
45.加密设备将私钥索引和公钥信息返回给设备兼容层,设备兼容层获取加密设备生成的sm2/rsa密钥对及私钥索引;其中,公钥信息为加密设备生成密钥对中的公钥信息。
46.在其中一个实施例中,当网络服务协议为rdp协议时,所述步骤s160的方法,包括以下步骤:
47.步骤s161-1c、修改rdp源码sspi/schannel/schannel.c文件,增加sm2标识符;
48.步骤s162-1c、修改rdp源码中的crypto/crypto.c文件,增加sm4算法;
49.步骤s161c、服务端与客户端进行会话,服务端发送服务端支持的算法给客户端,客户端将客户端支持的算法与服务端支持的算法进行比对,客户端与服务端确定协商需要的算法;
50.步骤s162c、服务端利用dh算法与客户端通过会话方式协商出使用sm4算法的会话密钥,实现建立加密隧道的操作。
51.在其中一个实施例中,当网络服务协议为rdp协议时,所述步骤s170的方法,具体操作包括:
52.步骤s171c、设备兼容层根据私钥索引,通过调用加密设备对公钥文件及客户端信息进行签名;
53.步骤s172c、客户端通过设备兼容层api获取设备兼容层返回的公钥文件及客户端信息的签名。
54.综上所述,本发明提供的一种基于加密设备的网络协议安全提升方法通过关联客户端及客户端获取的私钥索引,在客户端向服务端发起登陆请求时,客户端通过私钥对应
的私钥索引,调用加密设备进行签名,整个过程做到私钥不出加密设备,保证了私钥的安全性。
附图说明
55.图1为本发明实施例提供的基于加密设备的网络协议安全提升方法的流程示意图。
具体实施方式
56.为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
57.图1是本发明实施例提供的一种基于加密设备的网络协议安全提升方法的流程示意图,如图1所示,一种基于加密设备的网络协议安全提升方法,包括如下步骤:
58.步骤s110、在网络服务协议中增加密钥生成函数,调用加密设备,获取密钥及私钥索引,其中,密钥对包括公钥及私钥,加密设备可以为国密加密机、国密ukey或云加密机等,网络服务协议可以为ssh、nvc或rdp协议等,由于私钥通过调用加密设备获取,使得私钥不出加密设备,比传统的私钥直接暴漏在用户环境下具有更高的安全性。
59.步骤s120、将私钥索引和公钥信息返回给密钥管理模块;具体地,设备兼容层将获取的私钥索引和公钥信息发送给密钥管理模块,密钥管理模块用于调用设备兼容层获取的各种信息。
60.步骤s130、密钥管理模块将私钥索引、公钥信息与客户端信息进行组合后生成公钥文件,发送到服务端,客户端信息包括客户端对应的用户名、网卡mac地址等设备信息。
61.步骤s140、对客户端进行身份认证,存储公钥文件;具体地,客户端发送用户名及用户密码给服务端,服务端验证用户名和用户密码通过后,存储公钥文件,并通知客户端密钥生成过程完成,实现对客户端进行身份认证的操作。
62.步骤s150、客户端发起登陆请求;具体地,客户端向服务端发起登陆请求。
63.步骤s160、建立加密隧道。
64.步骤s170、对公钥文件及客户端信息进行签名;通过关联客户端及客户端获取的私钥索引,在客户端向服务端发起登陆请求时,客户端通过私钥对应的私钥索引,调用加密设备进行签名,整个过程做到私钥不出加密设备,保证了私钥的安全性。
65.步骤s180、客户端通过加密隧道发送经签名的公钥文件及客户端信息给服务端。
66.步骤s190、建立网络协议连接,以完成客户端登陆请求操作。
67.本实施例中,所述步骤s190的方法,具体操作为:
68.服务端对客户端发送的公钥文件的签名值进行验签操作,验签操作通过后,再将服务端存储的公钥文件与客户端发送的经签名的公钥文件进行比对操作,比对操作通过后,建立网络协议连接,从而完成客户端登陆请求操作。
69.为了更加清晰本发明的技术方案,下面再阐述若干优选实施例。
70.实施例一
71.当网络服务协议为ssh协议时,本发明一种基于加密设备的网络协议安全提升方法,包括如下步骤:
72.步骤s110、在网络服务协议的源码中增加密钥生成函数,调用加密设备,获取密钥对及私钥索引,其中,密钥对包括公钥及私钥,加密设备可以为国密加密机、国密ukey或云加密机等,网络服务协议为ssh协议,由于私钥通过调用加密设备获取,使得私钥不出加密设备,比传统的私钥直接暴漏在用户环境下具有更高的安全性。
73.所述步骤s110的方法,具体操作包括:
74.在openssh源码中sshkey.c密码算法文件中增加密钥生成函数sm2_generate_private_key,修改rsa_generate_private_key等函数,把密钥生成的过程修改为调用设备兼容层api;其中,设备兼容层api为设备兼容层的调用接口,通过设备兼容层可以与各种类型的加密设备进行连接,通过设备兼容层能将各种加密设备的加密密钥进行接收,同时,在ssh-keygen中增加对私钥的生命周期管理功能,通过设备兼容层管理用户的私钥,屏蔽各个厂商生产的加密设备的不同,尽可能的减少用户使用的学习成本;
75.设备兼容层调用加密设备,加密设备生成sm2/rsa密钥对及私钥索引;本实施例中,设备兼容层通过标准sdf接口来调用加密设备,加密设备接收设备兼容层发送过来的调用指令后,加密设备生成对应指令的sm2/rsa密钥对及私钥索引,通过设备兼容层提供对加密设备如ukey、国密加密机、云加密机等的调用,以及对sm2、rsa算法的封装调用;
76.加密设备将私钥索引和公钥信息返回给设备兼容层,设备兼容层获取加密设备生成的sm2/rsa密钥对及私钥索引;其中,公钥信息为加密设备生成密钥对中的公钥信息。
77.步骤s120、将获取的私钥索引和公钥信息发送给密钥管理模块;设备兼容层将获取的私钥索引和公钥信息发送给密钥管理模块,本实施例中,密钥管理模块为ssh密钥管理工具,密钥管理模块用于通过设备兼容层api来调用设备兼容层获取的各种信息,通过增加设备兼容层api,使其更容易集成在安全分级体系中,有效减少二次开发的成本。
78.步骤s130、密钥管理模块将私钥索引、公钥信息与客户端信息进行组合后生成公钥文件,发送到服务端,客户端信息包括客户端对应的用户名、网卡mac地址等设备信息;公钥信息通过设备兼容层返回给密钥管理模块,密钥管理模块再通过使用公钥信息完成其它功能,如与私钥索引、客户端信息组合形成公钥文件等。
79.所述步骤s130之前,还包括
80.步骤s130-1、修改openssh源码中的keyx.c、key.h、sshd.c等函数,增加sm2算法标识kex_sm2_sm3,以方便让服务端支持读取公钥文件。
81.本实施例中,所述步骤s110-1被描述成设置在步骤s130之前,也可根据需要描述成设置在步骤s120或步骤s110之前。
82.步骤s140、对客户端进行身份认证,存储公钥文件;具体地,客户端发送用户名及用户密码给服务端,服务端验证用户名和用户密码通过后,存储公钥文件,并通知客户端密钥生成过程完成,实现对客户端进行身份认证的操作。
83.步骤s150、客户端发起登陆请求;具体地,客户端向服务端发起登陆请求。
84.步骤s160、建立加密隧道。
85.所述步骤s160的方法,包括以下步骤:
86.步骤s161a、服务端与客户端进行会话,服务端发送服务端支持的算法给客户端,
客户端将客户端支持的算法与服务端支持的算法进行比对,客户端与服务端确定协商需要的算法;
87.步骤s162a、服务端利用dh算法与客户端通过会话方式协商出使用sm4算法的会话密钥,以实现建立加密隧道的操作;本发明后续步骤中,在客户端与服务端建立加密隧道后,使用sm4算法对服务端与客户端的数据传输进行加解密,从而使得客户端与服务端所有数据的交互,都由sm4算法进行加解密。
88.在一个实施例中,所述步骤s161a之前,还包括
89.步骤s161-1a、修改openssh源码ssh-keyscan.c、sshconnect2.c等文件,增加sm2标识符,从而使得客户端与服务端协商需要的算法为sm2算法。
90.在一个实施例中,所述步骤s162a之前,还包括
91.步骤s162-1a、修改openssh源码中的cipher.c、digest-openssl.c等文件,增加sm4算法,进而方便服务端利用dh算法与客户端通过会话方式协商出使用sm4算法的会话密钥,从而实现建立加密隧道的操作。
92.由于openssh中本身不包含国密算法,通过修改openssh源码,增加ssh协议中sm4的算法标识符,增加sm2验签、sm3哈希等无需加密设备的计算函数,使ssh协议本身支持国密算法,避免了二次验证等方式对协议栈的增加效果,同时也增加ssh通信过程中密码算法的安全性,保持对传统加密算法如rsa算法等的兼容性。
93.进一步地,为更加清楚本实施例中步骤s160的技术方案,下面再阐述优选实施例。
94.所述步骤s160的方法,包括以下步骤:
95.步骤s161-1a、修改openssh源码ssh-keyscan.c、sshconnect2.c文件,增加sm2标识符;
96.步骤s162-1a、修改openssh源码中的cipher.c、digest-openssl.c文件,增加sm4算法;
97.步骤s161a、服务端与客户端进行会话,服务端发送服务端支持的算法给客户端,客户端将客户端支持的算法与服务端支持的算法进行比对,客户端与服务端确定协商需要的算法;
98.步骤s162a、服务端利用dh算法与客户端通过会话方式协商出使用sm4算法的会话密钥,以实现建立加密隧道的操作;本发明后续步骤中,在客户端与服务端建立加密隧道后,使用sm4算法对服务端与客户端的数据传输进行加解密,从而使得客户端与服务端所有数据的交互,都由sm4算法进行加解密。
99.步骤s170、客户端对公钥文件及客户端信息进行签名;通过修改openssh源码,关联客户端及客户端获取的私钥索引,在客户端向服务端发起登陆请求时,客户端通过私钥对应的私钥索引,调用加密设备进行签名,整个过程做到私钥不出加密设备,保证了私钥的安全性。
100.所述步骤s170的方法,具体操作包括:
101.步骤s171a、设备兼容层根据私钥索引,通过调用加密设备对公钥文件及客户端信息进行签名;
102.步骤s172a、客户端通过设备兼容层api获取设备兼容层返回的公钥文件及客户端信息的签名。
103.步骤s180、客户端通过加密隧道发送经签名的公钥文件及客户端信息给服务端。
104.步骤s190、建立网络协议连接,以完成客户端登陆请求操作。
105.本实施例中,所述步骤s190的方法,具体操作为:
106.服务端对客户端发送的公钥文件的签名值进行验签操作,验签通过后,再将服务端存储的公钥文件与客户端发送的经签名的公钥文件进行比对,比对通过后,建立ssh连接,从而完成客户端登陆请求操作。
107.实施例二
108.当网络服务协议为vnc协议时,本发明一种基于加密设备的网络协议安全提升方法,包括如下步骤:
109.步骤s110、在网络服务协议的源码中增加密钥生成函数,调用加密设备,获取密钥对及私钥索引,其中,密钥对包括公钥及私钥,加密设备可以为国密加密机、国密ukey或云加密机等,网络服务协议为vnc协议,由于私钥通过调用加密设备获取,使得私钥不出加密设备,比传统的私钥直接暴漏在用户环境下具有更高的安全性。
110.所述步骤s110的方法,具体操作包括:
111.在vnc源码所依赖的加密模块的源码com/jcraft/jsch/keypairxxx.java文件中增加国密sm2密钥生成算法,在vnc源码所依赖的加密模块的源码/com/jcraft/jsch/keyexchange.java文件中增加sm2签名验签算法、sm4对称加解密算法,把密钥生成的过程修改为调用jni封装;jni封装为设备兼容层的调用接口;
112.设备兼容层调用加密设备,加密设备生成sm2密钥对及私钥索引;本实施例中,设备兼容层通过标准sdf接口来调用加密设备,加密设备接收设备兼容层发送过来的调用指令后,加密设备生成对应指令的sm2密钥对及私钥索引;
113.加密设备将私钥索引和公钥信息返回给设备兼容层,设备兼容层获取加密设备生成的sm2密钥对及私钥索引;其中,公钥信息为加密设备生成密钥对中的公钥信息,通过设备兼容层可以与各种类型的加密设备进行连接,通过设备兼容层能将各种加密设备的加密密钥进行接收,通过设备兼容层提供对加密设备如ukey、国密加密机、云加密机的调用,以及对sm2、rsa算法的封装调用,同时,通过设备兼容层管理用户的私钥,屏蔽各个厂商生产的加密设备的不同,尽可能的减少用户使用的学习成本。
114.步骤s120、将获取的私钥索引和公钥信息发送给密钥管理模块;密钥管理模块为java本地接口,设备兼容层将获取的私钥索引和公钥信息发送给密钥管理模块,本实施例中,密钥管理模块用于通过jni封装来调用设备兼容层获取的各种信息,通过增加设备兼容层api,使其更容易集成在安全分级体系中,有效减少二次开发的成本。
115.步骤s130、密钥管理模块将私钥索引、公钥信息与客户端信息进行组合后生成公钥文件,发送到服务端,客户端信息包括客户端对应的用户名、网卡mac地址等设备信息;公钥信息通过设备兼容层返回给密钥管理模块,密钥管理模块再通过使用公钥信息完成其它功能,如与私钥索引、客户端信息组合形成公钥文件等。
116.步骤s140、对客户端进行身份认证,存储公钥文件;具体地,客户端发送用户名及用户密码给服务端,服务端验证用户名和用户密码通过后,存储公钥文件,并通知客户端密钥生成过程完成,实现对客户端进行身份认证的操作。
117.步骤s150、客户端发起登陆请求;具体地,客户端向服务端发起登陆请求。
118.步骤s160、建立加密隧道。
119.所述步骤s160的方法,包括以下步骤:
120.步骤s161b、服务端与客户端进行会话,服务端发送服务端支持的算法给客户端,客户端将客户端支持的算法与服务端支持的算法进行比对,客户端与服务端确定协商需要的算法;
121.步骤s162b、服务端利用dh算法与客户端通过会话方式协商出使用sm4算法的会话密钥,以实现建立加密隧道的操作;本发明后续步骤中,在客户端与服务端建立加密隧道后,使用sm4算法对服务端与客户端的数据传输进行加解密,从而使得客户端与服务端所有数据的交互,都由sm4算法进行加解密。
122.在一个实施例中,所述步骤s161b之前,还包括
123.步骤s161-1b、修改vnc源码common/rfb/ssecuritytls.cxx文件,增加sm2标识符,从而使得客户端与服务端协商需要的算法为sm2算法。
124.在一个实施例中,所述步骤s162b之前,还包括
125.步骤s162-1b、修改vnc源码所依赖的加密模块的源码/com/jcraft/jsch/keyexchange.java文件,增加sm4算法,进而方便服务端利用dh算法与客户端通过会话方式协商出使用sm4算法的会话密钥,从而实现建立加密隧道的操作。
126.由于nvc中本身不包含国密算法,通过修改nvc源码,增加nvc协议中sm4的算法标识符,增加sm2验签、sm3哈希等无需加密设备的计算函数,使nvc协议本身支持国密算法,避免了二次验证等方式对协议栈的增加效果,同时也增加nvc通信过程中密码算法的安全性,保持对传统加密算法如rsa算法等的兼容性。
127.进一步地,为更加清楚本实施例中步骤s160的技术方案,下面再阐述优选实施例。
128.所述步骤s160的方法,包括以下步骤:
129.步骤s161-1b、修改vnc源码common/rfb/ssecuritytls.cxx文件,增加sm2标识符;
130.步骤s162-1b、修改vnc源码所依赖的加密模块的源码/com/jcraft/jsch/keyexchange.java文件,增加sm4算法;
131.步骤s161b、服务端与客户端进行会话,服务端发送服务端支持的算法给客户端,客户端将客户端支持的算法与服务端支持的算法进行比对,客户端与服务端确定协商需要的算法;
132.步骤s162b、服务端利用dh算法与客户端通过会话方式协商出使用sm4算法的会话密钥,以实现建立加密隧道的操作;本发明后续步骤中,在客户端与服务端建立加密隧道后,使用sm4算法对服务端与客户端的数据传输进行加解密,从而使得客户端与服务端所有数据的交互,都由sm4算法进行加解密。
133.步骤s170、客户端对公钥文件及客户端信息进行签名;通过修改nvc源码,关联客户端及客户端获取的私钥索引,在客户端向服务端发起登陆请求时,客户端通过私钥对应的私钥索引,调用加密设备进行签名,整个过程做到私钥不出加密设备,保证了私钥的安全性。
134.所述步骤s170的方法,具体操作包括:
135.步骤s171b、设备兼容层根据私钥索引,通过调用加密设备对公钥文件及客户端信息进行签名;
136.步骤s172b、客户端通过jni封装从java调用c 库获取设备兼容层返回的公钥文件及客户端信息的签名;客户端通过jni封装调用设备兼容层,传输数据和指令给设备兼容层,进而获取从设备兼容层返回的公钥文件及客户端信息的签名。
137.步骤s180、客户端通过加密隧道发送经签名的公钥文件及客户端信息给服务端。
138.步骤s190、建立网络协议连接,以完成客户端登陆请求操作。
139.本实施例中,所述步骤s190的方法,具体操作为:
140.服务端对客户端发送的公钥文件的签名值进行验签操作,验签通过后,再将服务端存储的公钥文件与客户端发送的经签名的公钥文件进行比对,比对通过后,建立vnc连接,从而完成客户端登陆请求操作。
141.实施例三
142.当网络服务协议为rdp协议时,本发明一种基于加密设备的网络协议安全提升方法,包括如下步骤:
143.步骤s110、在网络服务协议的源码中增加密钥生成函数,调用加密设备,获取密钥对及私钥索引,其中,密钥对包括公钥及私钥,加密设备可以为国密加密机、国密ukey或云加密机等,网络服务协议为rdp协议。
144.所述步骤s110的方法,具体操作包括:
145.在rdp源码所依赖的加密模块的源码crypto/crypto.c文件中增加国密sm2密钥生成算法,把密钥生成的过程修改为调用设备兼容层api;其中,设备兼容层api为设备兼容层的调用接口,通过设备兼容层可以与各种类型的加密设备进行连接,通过设备兼容层能将各种加密设备的加密密钥进行接收,同时,通过设备兼容层管理用户的私钥,屏蔽各个厂商生产的加密设备的不同,尽可能的减少用户使用的学习成本;
146.设备兼容层调用加密设备,加密设备生成sm2密钥对及私钥索引;本实施例中,设备兼容层通过标准sdf接口来调用加密设备,加密设备接收设备兼容层发送过来的调用指令后,加密设备生成对应指令的sm2密钥对及私钥索引,通过设备兼容层提供对加密设备如ukey、国密加密机、云加密机的调用,以及对sm2算法的封装调用;
147.加密设备将私钥索引和公钥信息返回给设备兼容层,设备兼容层获取加密设备生成的sm2/rsa密钥对及私钥索引;其中,公钥信息为加密设备生成密钥对中的公钥信息。
148.步骤s120、将获取的私钥索引和公钥信息发送给密钥管理模块;密钥管理模块为rdp密钥管理工具,设备兼容层将获取的私钥索引和公钥信息发送给密钥管理模块,本实施例中,密钥管理模块用于通过设备兼容层api来调用设备兼容层获取的各种信息,通过增加设备兼容层api,使其更容易集成在安全分级体系中,有效减少二次开发的成本。
149.步骤s130、密钥管理模块将私钥索引、公钥信息与客户端信息进行组合后生成公钥文件,发送到服务端,客户端信息包括客户端对应的用户名、网卡mac地址等设备信息;公钥信息通过设备兼容层返回给密钥管理模块,密钥管理模块再通过使用公钥信息完成其它功能,如与私钥索引、客户端信息组合形成公钥文件等。
150.步骤s140、对客户端进行身份认证,存储公钥文件;具体地,客户端发送用户名及用户密码给服务端,服务端验证用户名和用户密码通过后,存储公钥文件,并通知客户端密钥生成过程完成,实现对客户端进行身份认证的操作。
151.步骤s150、客户端发起登陆请求;具体地,客户端向服务端发起登陆请求。
152.步骤s160、建立加密隧道。
153.所述步骤s160的方法,包括以下步骤:
154.步骤s161c、服务端与客户端进行会话,服务端发送服务端支持的算法给客户端,客户端将客户端支持的算法与服务端支持的算法进行比对,客户端与服务端确定协商需要的算法;
155.步骤s162c、服务端利用dh算法与客户端通过会话方式协商出使用sm4算法的会话密钥,以实现建立加密隧道的操作;本发明后续步骤中,在客户端与服务端建立加密隧道后,使用sm4算法对服务端与客户端的数据传输进行加解密,从而使得客户端与服务端所有数据的交互,都由sm4算法进行加解密。
156.在一个实施例中,所述步骤s161c之前,还包括
157.步骤s161-1c、修改rdp源码sspi/schannel/schannel.c等文件,增加sm2标识符,从而使得客户端与服务端协商需要的算法为sm2算法。
158.在一个实施例中,所述步骤s162c之前,还包括
159.步骤s162-1c、修改rdp源码中的crypto/crypto.c等文件,增加sm4算法,进而方便服务端利用dh算法与客户端通过会话方式协商出使用sm4算法的会话密钥,从而实现建立加密隧道的操作。
160.由于rdp中本身不包含国密算法,通过修改rdp源码,增加rdp协议中sm4的算法标识符,增加sm2验签、sm3哈希等无需加密设备的计算函数,使rdp协议本身支持国密算法,避免了二次验证等方式对协议栈的增加效果,同时也增加rdp通信过程中密码算法的安全性,保持对传统加密算法如rsa算法等的兼容性。
161.进一步地,为更加清楚本实施例中步骤s160的技术方案,下面再阐述优选实施例。
162.所述步骤s160的方法,包括以下步骤:
163.步骤s161-1c、修改rdp源码sspi/schannel/schannel.c文件,增加sm2标识符;
164.步骤s162-1c、修改rdp源码中的crypto/crypto.c文件,增加sm4算法;
165.步骤s161c、服务端与客户端进行会话,服务端发送服务端支持的算法给客户端,客户端将客户端支持的算法与服务端支持的算法进行比对,客户端与服务端确定协商需要的算法;
166.步骤s162c、服务端利用dh算法与客户端通过会话方式协商出使用sm4算法的会话密钥,以实现建立加密隧道的操作;本发明后续步骤中,在客户端与服务端建立加密隧道后,使用sm4算法对服务端与客户端的数据传输进行加解密,从而使得客户端与服务端所有数据的交互,都由sm4算法进行加解密。
167.步骤s170、客户端对公钥文件及客户端信息进行签名;通过修改rdp源码,关联客户端及客户端获取的私钥索引,在客户端向服务端发起登陆请求时,客户端通过私钥对应的私钥索引,调用加密设备进行签名,整个过程做到私钥不出加密设备,保证了私钥的安全性。
168.所述步骤s170的方法,具体操作包括:
169.步骤s171c、设备兼容层根据私钥索引,通过调用加密设备对公钥文件及客户端信息进行签名;
170.步骤s172c、客户端通过设备兼容层api获取设备兼容层返回的公钥文件及客户端
信息的签名。
171.步骤s180、客户端通过加密隧道发送经签名的公钥文件及客户端信息给服务端。
172.步骤s190、建立网络协议连接,以完成客户端登陆请求操作。
173.本实施例中,所述步骤s190的方法,具体操作为:
174.服务端对客户端发送的公钥文件的签名值进行验签操作,验签通过后,再将服务端存储的公钥文件与客户端发送的经签名的公钥文件进行比对,比对通过后,建立rdp连接,从而完成客户端登陆请求操作。
175.综上所述,本发明一种基于加密设备的网络协议安全提升方法通过关联客户端及客户端获取的私钥索引,在客户端向服务端发起登陆请求时,客户端通过私钥对应的私钥索引,调用加密设备进行签名,整个过程做到私钥不出加密设备,保证了私钥的安全性。
176.本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
177.在本发明所提供的几个实施例中,应该理解到,所揭露的系统和方法,可以通过其它的方式实现。例如,以上所描述的系统实施例仅仅是示意性的。例如,各个单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。
178.本发明实施例方法中的步骤可以根据实际需要进行顺序调整、合并和删减。本发明实施例装置中的单元可以根据实际需要进行合并、划分和删减。另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以是两个或两个以上单元集成在一个单元中。该集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分,或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,终端,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。
179.以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本发明范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明的保护范围应以所附权利要求为准。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献