一种浏览器应用和本地应用间建立SSL_TLS通信的方法及系统与流程

文档序号:29460403发布日期:2022-04-02 01:08阅读:291来源:国知局
一种浏览器应用和本地应用间建立SSL_TLS通信的方法及系统与流程
一种浏览器应用和本地应用间建立ssl_tls通信的方法及系统
技术领域
1.本发明涉及计算机技术领域,具体涉及一种浏览器应用和本地应用间建立ssl_tls通信的方法及系统。


背景技术:

2.随着信息化技术和互联网产业发展,用户对信息系统的安全性需求与日俱增。当信息系统管理的信息不断增多时,通信安全的重要性就逐渐凸显出来。信息系统在通信时如何防止敏感数据不被泄露,成为信息系统需要考虑的重要问题之一。
3.信息系统与本地应用通信时需要使用ssl/tls安全通信协议保证信息传输安全。
4.传统方案中建立这种安全协议是通过以下方法实现的:
5.1、浏览器应用采用https协议和应用后台通信;
6.2、本地应用采用ssl/tls协议和应用后台通信;
7.3、应用后台转发浏览器应用和本地应用间的通信数据。
8.这种方式有如下缺点:
9.1、应用后台需要确定浏览器应用和本地应用运行在同一台电脑。
10.因为浏览器的安全性限制,应用后台无法获取客户的主机标示,无法基于主机标示将浏览器应用和本地应用建立对应关系;
11.目前电信运营商、办公环境中普遍采用nat技术,多用户共享ip地址的上网方式,也无法基于客户的ip地址将浏览器应用和本地应用建立对应关系。
12.2、当浏览器应用和本地应用连接至不同应用后台主机时,还需要在多个应用后台主机间进行消息转发。
13.另外一些方案均需要本地应用配合建立远端服务器的ssl/tls连接(或直接与本地应用建立ssl/tls连接),这种方式的主要缺点在于ssl/tls证书和密钥部署于本地,容易被盗取或者滥用,或者会对远端服务器的身份鉴别功能提出更高要求,难以简单使用。


技术实现要素:

14.针对现有技术中存在的缺陷和不足,本发明提出的一种浏览器应用和本地应用间建立ssl_tls通信的方法及系统,解决了方案均存在复杂性较高、对外围系统要求较高、存在安全风险等问题。
15.为实现上述目的,本发明的技术方案如下:
16.一种浏览器应用和本地应用间建立ssl_tls通信的系统,包括:客户端和服务器端;
17.所述客户端包括:浏览器应用、本地通信模块和本地应用;
18.所述服务端包括:ssl/tls通信模块和协议转换模块;
19.所述本地通信模块与浏览器应用、本地应用部署于同一主机上;
20.所述本地通信模块与ssl/tls通信模块通信,用于完成ssl/tls握手并建立连接;
21.浏览器应用为安装于客户端的浏览器软件;
22.本地应用与浏览器进行通信或者数据交换;
23.ssl/tls通信模块和协议转换模块部署和运行于远端,两者部署于同一服务器中,或者分别部署于相应的服务器中;
24.所述协议转换模块,用于通信过程中,完成协议数据转换;
25.所述ssl/tls通信模块包含内置的ssl/tls服务器证书和密钥,使用ssl/tls服务器证书和密钥建立ssl/tls连接,并通过已建立的ssl/tls连接收发数据;
26.优选的,所述ssl/tls通信模块还包括:
27.构建单元,用于建立浏览器应用、本地应用和远端服务之间的通信;
28.嵌套生成单元,用于通过浏览器应用、本地应用和远端服务之间的通信,形成ssl/tls嵌套;
29.数据传输单元,用于基于ssl/tls嵌套的tcp网络连接ssl_a和ssl_b进行数据传输。
30.优选的,所述协议转换模块还包括:
31.转换单元,用于在ssl_a和ssl_b进行数据传输在传输过程中,将ssl_a和ssl_b的数据进行相互转换。
32.进一步地,所述构建单元包括:
33.浏览器应用向本地通信模块建立tcp网络连接sock_a;
34.本地通信模块向ssl/tls通信模块建立tcp网络连接sock_b;
35.本地通信模块和ssl/tls通信模块完成ssl/tls连接协商;
36.将协商后的ssl/tls连接命名为ssl_b,所述ssl_b通信数据通过sock_b传输;
37.浏览器应用通过已建立好的sock_a和ssl_b,与ssl/tls通信模块进行通信,并且完成ssl/tls连接协商,建立浏览器应用与ssl/tls之间的网络连接ssl_a。
38.进一步地,所述嵌套生成单元包括:
39.所述ssl_a通信数据经由tcp网络连接sock_a和ssl_b进行传输;
40.将基于建立的ssl_a、ssl_b安全通信连接,且ssl_a逻辑嵌套于ssl_b中,通过本地通信模块居中转发的方式定义为接力中转传输;其中,ssl_a为接力中转连接;
41.使用所述接力中转连接ssl_a,在浏览器应用、本地应用和远端服务进行通信,形成ssl/tls嵌套。
42.进一步地,所述转换单元包括:
43.解码、解密ssl_a的ssl/tls数据封包;
44.根据ssl_b数据的连接参数,对所述数据封包进行转换与改写,并经过编码、加密数据封包,作为ssl/tls的数据封包格式,将ssl_a数据转为ssl_b数据。
45.优选的,所述通过已建立的ssl/tls连接收发数据包括:
46.浏览器应用向本地应用发送数据,本地应用向浏览器应用发送数据。
47.进一步地,所述浏览器应用向本地应用发送数据包括:
48.浏览器应用通过ssl_a发送数据,其中,ssl_a是建立ssl/tls嵌套建立的接力中转连接;
49.ssl/tls通信模块收到数据后,通过服务端内部网络连接或内存数据交换方式,调用协议转换模块,完成数据格式转换;
50.ssl/tls通信模块通过已建立的网络连接,通过ssl_b发送经过格式转换的数据至本地通信模块;
51.本地通信模块通过先前已建立的网络连接,或以内存数据交换方式转交数据至本地应用。至此,本地应用已接收到浏览器应用发送的数据。
52.进一步地,所述本地应用向浏览器应用发送数据包括:
53.本地应用发送数据至本地通信模块;
54.本地通信模块通过已建立的网络连接ssl_b发送数据至服务端的ssl/tls通信模块;
55.服务端的ssl/tls通信模块收到数据后,调用协议转换模块,完成数据格式转换,并将数据交还至ssl/tls通信模块;其中,数据交换方式可以采用以建立的网络连接或内存数据交换;
56.ssl/tls通信模块通过ssl_a发送经过协议转换模块进行格式转换后的数据至浏览器应用。
57.一种浏览器应用和本地应用间建立ssl_tls通信的方法,所述方法包括:建立浏览器应用、本地应用和远端服务之间的通信;
58.通过浏览器应用、本地应用和远端服务之间的通信,形成ssl/tls嵌套;
59.基于ssl/tls嵌套的tcp网络连接ssl_a和ssl_b进行数据传输;
60.在ssl_a和ssl_b进行数据传输在传输过程中,将ssl_a和ssl_b的数据进行相互转换。
61.本发明的有益效果体现在:
62.本发明提供的一种浏览器应用和本地应用间建立ssl_tls通信的方法及系统,准确识别浏览器应用和本地应用间的对应关系;
63.ssl_a的通信数据是由sock_a、ssl_b接力中转传输的,这样ssl_a和ssl_b的数据会由相同的ssl/tls通信模块处理,ssl/tls通信模块能够为ssl_a和ssl_b间建立准确的对应关系,也就是浏览器应用和本地应用建立了准确的对应关系。
64.本发明具有后台主导的安全性,其具体体现在ssl/tls服务器证书部署和使用都在应用后台,没有在客户端主机上泄露ssl/tls服务器证书的风险;
65.协议转换模块对浏览器应用和本地应用间传输的数据进行检查,仅限于传输应用定义的业务数据;避免因本地通信模块被劫持后,可以通过ssl_b向ssl_a传输任意数据,实现ssl/tls服务器证书被冒用的效果,从而破坏应用的安全性。
66.本发明方案对应用具有友好性,无需要求本地应用首先登录应用后台,也无需增加对本地通信模块的认证过程;
67.在单个ssl/tls通信模块内完成数据传输,无需在多个应用后台主机间进行数据转发,降低后台应用开发的复杂性;
68.浏览器应用的sock_a、ssl_a建立过程,基于浏览器应用内置标准的javascript api即可实现,例如ajax调用、websocket调用等,具有新、老浏览器的广泛适用性。
附图说明
69.为了更清楚地说明本发明具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍。在所有附图中,类似的元件或部分一般由类似的附图标记标识。附图中,各元件或部分并不一定按照实际的比例绘制。
70.图1为本发明具体实施方式中的一种浏览器应用和本地应用间建立ssl_tls通信系统结构示意图;
71.图2本发明具体实施方式中的一种浏览器应用和本地应用间建立ssl_tls通信的方法流程图。
具体实施方式
72.下面将结合附图对本发明技术方案的实施例进行详细的描述。以下实施例仅用于更加清楚地说明本发明的技术方案,因此只作为示例,而不能以此来限制本发明的保护范围。
73.需要注意的是,除非另有说明,本技术使用的技术术语或者科学术语应当为本发明所属领域技术人员所理解的通常意义。
74.本方案提出了一种浏览器应用和本地应用间建立ssl_tls通信的方法及系统,解决了传统方案存在复杂性较高、对外围系统要求较高、存在安全风险等诸多问题。
75.如图一所示,本地通信模块与浏览器应用、本地应用部署于同一主机上。可以是互相分离部署的形式,也可以是集成为一个应用,也可以被共同集成进另一第三方应用中。
76.本地通信模块用于和ssl/tls通信模块通信、完成ssl/tls握手和建立连接。
77.浏览器应用即用户安装于客户端的浏览器软件。
78.本地应用是需要和浏览器进行通信或数据交换的本地应用程序。
79.ssl/tls通信模块和协议转换模块部署和运行于远端,两者可以部署于同一服务器中,亦可分别进行部署。不管部署形式如何,ssl/tls服务器证书和密钥是配置在ssl/tls通信模块中的,用于协商和建立ssl/tls通信连接。通常认为ssl/tls证书和密钥不应部署与客户端,仅应部署于服务端。
80.ssl/tls通信模块用于和本地通信模块通信、完成ssl/tls握手和建立连接。协议转换模块用于通信过程中,完成必要的协议数据转换。ssl/tls服务器证书是用于建立ssl/tls连接的必要条件,本专利对其不做要求,对其技术要求与国家相关管理部门对ssl/tls通信证书应符合的技术要求一致。使用ssl/tls服务器证书和密钥建立ssl/tls连接、通过已建立连接收发数据的技术与方法是公开的。
81.在方案中的部分过程中,需要在两个不同模块中建立tcp连接。建立、维护和使用tcp连接收发数据的技术与方法是公开的。
82.其中,ssl/tls通信模块还包括:
83.构建单元,用于建立浏览器应用、本地应用和远端服务之间的通信;
84.嵌套生成单元,用于通过浏览器应用、本地应用和远端服务之间的通信,形成ssl/tls嵌套;
85.数据传输单元,用于基于ssl/tls嵌套的tcp网络连接ssl_a和ssl_b进行数据传输。
86.所述协议转换模块还包括:
87.转换单元,用于在ssl_a和ssl_b进行数据传输在传输过程中,将ssl_a和ssl_b的数据进行相互转换。
88.ssl/tls嵌套建立过程包括:
89.浏览器向本地通信模块建立tcp网络连接,在方案中此连接命名为sock_a;
90.本地通信模块向ssl/tls通信模块建立tcp网络连接,此连接命名为sock_b,建立tcp网络连接过程中使用的技术对于相关领域从业者是不言自明的;
91.本地通信模块和ssl/tls通信模块完成ssl/tls连接协商(也称握手或ssl/tls握手)。连接协商(或称握手)的方式,符合相关领域的国家标准或技术规范。协商后的ssl/tls连接在方案中被命名为ssl_b。根据网络通信原理,ssl_b通信数据通过sock_b传输;
92.浏览器应用通过已建立好的sock_a和ssl_b,与ssl/tls通信模块进行通信,并且完成ssl/tls连接协商,建立ssl_a。ssl_a在逻辑上是浏览器应用与ssl/tls之间的网络连接。但是其通信数据是经由sock_a和ssl_b进行传输的。
93.基于上述过程建立的ssl_a、ssl_b是两个安全通信连接,并且ssl_a是逻辑嵌套于ssl_b中的。这种通过本地通信模块居中转发的方式,即为“接力中转传输”。其中的ssl_a即为接力中转连接。使用接力中转连接,在浏览器应用、本地应用和远端服务进行通信的方案即为ssl/tls嵌套方案。
94.应用ssl/tls嵌套方案传输数据过程:
95.在完成ssl/tls嵌套方案建立过程后,进行传输数据过程。
96.在传输过程中,远端的协议转换模块用于将ssl_a和ssl_b的数据进行相互转换。转换的过程如下(以ssl_a数据转为ssl_b数据为例):
97.1.解码、解密ssl_a的ssl/tls数据封包。
98.2.根据ssl_b的连接参数,对数据封包进行转换与改写。
99.3.编码、加密数据封包,使其称为ssl/tls的数据封包格式。
100.解码、解密、编码、加密的方法对于掌握ssl/tls相关技术的人员是不言自明的浏览器应用向本地应用发送数据的过程和方法如下:
101.1.浏览器应用通过ssl_a发送数据,ssl_a是使用上文中建立ssl/tls嵌套方案建立的接力中转连接。;
102.2.ssl/tls通信模块收到数据后,通过服务端内部网络连接或内存数据交换方式,调用协议转换模块,完成数据格式转换;
103.3.ssl/tls通信模块通过已建立的网络连接,通过ssl_b发送经过格式[具体传输过程是什么?现在都是一些功能性的描述,可以适当地细化一下。]转换的数据至本地通信模块;
[0104]
4.本地通信模块通过先前已建立的网络连接,或以内存数据交换方式转交数据至本地应用。至此,本地应用已接收到浏览器应用发送的数据。
[0105]
本地应用向浏览器应用发送数据:
[0106]
1.本地应用发送数据至本地通信模块;
[0107]
2.本地通信模块通过已建立的网络连接ssl_b发送数据至服务端的ssl/tls通信模块;
[0108]
3.服务端的ssl/tls通信模块收到数据后,调用协议转换模块,完成数据格式转换。并将数据交还至ssl/tls通信模块。数据交换方式可以采用以建立的网络连接或内存数据交换;
[0109]
4.ssl/tls通信模块通过ssl_a发送经过协议转换模块进行格式转换后的数据至浏览器应用。
[0110]
实施例2:
[0111]
基于实施例1的同一发明构思,本发明实施例还提供一种浏览器应用和本地应用间建立ssl_tls通信的方法,如图2所示,所述方法包括:
[0112]
s1建立浏览器应用、本地应用和远端服务之间的通信;
[0113]
s2通过浏览器应用、本地应用和远端服务之间的通信,形成ssl/tls嵌套;
[0114]
s3基于ssl/tls嵌套的tcp网络连接ssl_a和ssl_b进行数据传输;
[0115]
s4在ssl_a和ssl_b进行数据传输在传输过程中,将ssl_a和ssl_b的数据进行相互转换。
[0116]
本领域内的技术人员应明白,本技术的实施例可提供为方法、系统、或计算机程序产品。因此,本技术可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本技术可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。
[0117]
本技术是参照根据本技术实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
[0118]
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
[0119]
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
[0120]
最后应当说明的是:以上实施例仅用以说明本发明的技术方案而非对其限制,尽管参照上述实施例对本发明进行了详细的说明,所属领域的普通技术人员应当理解:依然可以对本发明的具体实施方式进行修改或者等同替换,而未脱离本发明精神和范围的任何修改或者等同替换,其均应涵盖在本发明的权利要求保护范围之内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1