CN107592315B - 用于加密传输数据的客户端、服务器、网络***及方法 - Google Patents
用于加密传输数据的客户端、服务器、网络***及方法 Download PDFInfo
- Publication number
- CN107592315B CN107592315B CN201710852516.2A CN201710852516A CN107592315B CN 107592315 B CN107592315 B CN 107592315B CN 201710852516 A CN201710852516 A CN 201710852516A CN 107592315 B CN107592315 B CN 107592315B
- Authority
- CN
- China
- Prior art keywords
- message
- network
- server
- response
- network message
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本发明公开了一种客户端,驻留在网络***中,网络***还包括服务器,客户端包括:网络适配器;存储模块,适于存储密钥;第一报文处理模块,适于生成第一网络报文;以及第二报文处理模块,适于基于第一网络报文生成第二网络报文并经由网络适配器向服务器发送;还适于经由网络适配器接收响应报文;第一报文处理模块还适于生成第四网络报文,其包括使用通信参数加密的原始数据;第二报文处理模块还适于利用密钥对原始数据进行加密,以得到加密数据;基于第四网络报文和加密数据生成第五网络报文并经由网络适配器向服务器发送,第五网络报文包括加密数据。本发明还公开了对应的服务器、网络***和方法。
Description
技术领域
本发明涉及计算机网络技术领域,尤其涉及一种用于加密传输数据的客户端、服务器、网络***及方法。
背景技术
随着网络通信技术的迅速发展、互联网应用的持续深化、所承载信息的日益丰富,互联网已成为人类社会重要的基础设施。其中,网络上的数据传输安全也引起了广泛关注。
现有的加密通信技术,例如基于HTTPS协议的加密通信技术,在进行加密传输之前,通信双方需要先协商加密算法、验证身份等等,这些操作都是明文,易被外部识别。因此,不法分子通过这些明文的加密特征很容易将流量识别为加密传输的流量,从而进行有针对性的破译。对此,传统的应对思路是试图消除加密特征以避免被识别,但实际效果不佳。
因此,迫切需要一种更先进的、不会被轻易识别为加密传输从而进行针对性破译的加密数据传输方案。
发明内容
为此,本发明提供一种用于加密传输数据的客户端、服务器、网络***及方法,以力图解决或者至少缓解上面存在的至少一个问题。
根据本发明的一个方面,提供了一种客户端,驻留在网络***中,网络***还包括服务器,服务器与客户端预先协商用于数据加密和解密的密钥,客户端包括:网络适配器,包括至少一个网络端口,并适于经由网络端口发送和接收报文;存储模块,适于存储与服务器预先协商的密钥;第一报文处理模块,适于根据HTTPS协议生成目的地址为服务器的第一网络报文,第一网络报文请求与服务器进行加密通信,并协商该加密通信所要使用的通信参数;以及第二报文处理模块,适于接收第一网络报文;基于第一网络报文生成第二网络报文,第二网络报文的目的地址为服务器,并包括会话记录,会话记录包含有通信参数;经由网络适配器向服务器发送第二网络报文;还适于经由网络适配器接收响应报文;选择将第一响应报文发送至第一报文处理模块,第一响应报文是所述服务器响应于所述第二网络报文而返回的网络报文,其指示后续与客户端使用第二网络报文中会话记录包含的通信参数进行加密通信;其中第一报文处理模块还适于在接收到第一响应报文之后,根据HTTPS协议生成目的地址为服务器的第四网络报文,第四网络报文包括使用会话记录中的通信参数加密的、待传输的原始数据;第二报文处理模块还适于接收第四网络报文;利用密钥对原始数据进行加密,以得到相应的加密数据;基于第四网络报文和加密数据生成第五网络报文,第五网络报文的目的地址为服务器,并包括加密数据;经由网络适配器向服务器发送第五网络报文。
在根据本发明的客户端中,第一报文处理模块还适于根据HTTPS协议生成第三网络报文,第三网络报文指示后续与服务器使用所述会话记录中的通信参数进行加密通信;第二报文处理模块还适于接收并经由网络适配器向服务器发送第三网络报文。
在根据本发明的客户端中,第二报文处理模块还适于在第一网络报文中添加会话记录,以得到第二网络报文。
在根据本发明的客户端中,第二报文处理模块还适于修改第一网络报文中的服务器主机名。
在根据本发明的客户端中,第二报文处理模块还适于将第四网络报文中的加密应用层数据替换为加密数据,以得到第五网络报文。
在根据本发明的客户端中,第一报文处理模块还适于根据HTTPS协议生成目的地址不是服务器的网络报文;第二报文处理模块还适于接收并经由网络适配器发送该网络报文。
在根据本发明的客户端中,第二报文处理模块还适于选择对第三响应报文进行解析,第三响应报文是服务器响应于第四网络报文而返回的网络报文,并包括加密响应数据;利用密钥对第三响应报文中解析得到的加密响应数据进行解密,以得到相应的原始响应数据。
在根据本发明的客户端中,第二报文处理模块还适于选择将不是响应于第二网络报文和第五网络报文的响应报文发送至第一报文处理模块;第一报文处理模块还适于根据HTTPS协议对该响应报文进行解析。
根据本发明的另一个方面,提供了一种服务器,驻留在网络***中,网络***还包括客户端,客户端与服务器预先协商用于数据加密和解密的密钥,服务器包括:网络适配器,包括至少一个网络端口,并适于经由网络端口发送和接收报文;存储模块,适于存储与客户端预先协商的密钥;第二报文处理模块,适于经由网络适配器接收网络报文;选择将第二网络报文发送至第一报文处理模块,第二网络报文来自所述客户端,并包括会话记录,会话记录包含有通信参数;以及第一报文处理模块,适于根据HTTPS协议生成响应于第二网络报文的第一响应报文,第一响应报文指示后续与客户端使用会话记录中的通信参数进行加密通信;其中第二报文处理模块还适于接收第一响应报文;经由网络适配器向客户端发送第一响应报文;还适于选择对第五网络报文进行解析,第五网络报文来自所述客户端,并包括加密数据;利用密钥对第五网络报文中解析得到的加密数据进行解密,以得到相应的原始数据。
在根据本发明的服务器中,第二报文处理模块还适于经由网络适配器接收第三网络报文,第三网络报文指示后续与服务器使用第二网络报文中会话记录包含的通信参数进行加密通信。
在根据本发明的服务器中,第二报文处理模块还适于在经由网络适配器接收网络报文之后,根据该网络报文中是否存在会话记录来判断该网络报文是否为第二网络报文。
在根据本发明的服务器中,第二报文处理模块还适于进一步根据该网络报文中的服务器主机名来判断该网络报文是否为第二网络报文。
在根据本发明的服务器中,第二报文处理模块还适于在经由网络适配器接收网络报文之后,选择将不是第二网络报文、第三网络报文和第五网络报文的网络报文发送至第一报文处理模块;第一报文处理模块还适于根据HTTPS协议生成响应于该网络报文的响应报文;以及第二报文处理模块还适于接收并经由网络适配器发送该响应报文。
在根据本发明的服务器中,第二报文处理模块还适于将第五网络报文发送至第一报文处理模块;第一报文处理模块还适于根据HTTPS协议生成第二响应报文,第二响应报文响应于所述第五网络报文,并包括使用会话记录中的通信参数加密的原始响应数据;以及第二报文处理模块还适于接收第二响应报文;利用密钥对原始响应数据进行加密,以得到相应的加密响应数据;基于第二响应报文和加密响应数据生成第三响应报文,第三响应报文响应于第五网络报文,并包括加密响应数据;经由网络适配器向客户端发送第三响应报文。
在根据本发明的服务器中,第二报文处理模块还适于将第二响应报文中的加密应用层数据替换为加密响应数据,以得到第三响应报文。
根据本发明的另一个方面,提供了一种网络***,包括:根据本发明的客户端,以及根据本发明的服务器。
根据本发明的另一个方面,提供了一种用于在网络***中传输数据的方法,适于在网络***中的客户端中执行,网络***还包括服务器,服务器与客户端预先协商并存储用于数据加密和解密的密钥,该方法包括:根据HTTPS协议生成目的地址为服务器的第一网络报文,第一网络报文请求与服务器进行加密通信,并协商该加密通信所要使用的通信参数;基于第一网络报文生成第二网络报文,第二网络报文的目的地址为服务器,并包括会话记录,会话记录包含有通信参数;经由客户端的网络适配器向服务器发送第二网络报文;经由客户端的网络适配器接收第一响应报文,第一响应报文是服务器响应于第二网络报文而返回的网络报文,其指示后续与客户端使用第二网络报文中会话记录包含的通信参数进行加密通信;根据HTTPS协议生成目的地址为服务器的第四网络报文,第四网络报文包括使用会话记录中的通信参数加密的、待传输的原始数据;利用密钥对原始数据进行加密,以得到相应的加密数据;基于第四网络报文和加密数据生成第五网络报文,第五网络报文的目的地址为服务器,并包括加密数据;以及经由客户端的网络适配器向服务器发送第五网络报文。
在根据本发明的方法中,还包括步骤:在接收第一响应报文之后,根据HTTPS协议生成第三网络报文,第三网络报文指示后续与服务器使用会话记录中的通信参数进行加密通信;经由网络适配器向服务器发送第三网络报文。
在根据本发明的方法中,基于第一网络报文生成第二网络报文的步骤包括:在第一网络报文中添加会话记录,以得到第二网络报文。
在根据本发明的方法中,基于第一网络报文生成第二网络报文的步骤还包括:修改第一网络报文中的服务器主机名。
在根据本发明的方法中,基于第四网络报文和加密数据生成第五网络报文的步骤包括:将第四网络报文中的加密应用层数据替换为加密数据,以得到第五网络报文。
在根据本发明的方法中,还包括步骤:根据HTTPS协议生成目的地址不是服务器的网络报文;经由客户端的网络适配器发送该网络报文。
在根据本发明的方法中,还包括步骤:在发送第五网络报文之后,经由客户端的网络适配器接收第三响应报文,并对其进行解析,第三响应报文是服务器响应于第五网络报文而返回的网络报文,并包括加密响应数据;利用密钥对第三响应报文中解析得到的加密响应数据进行解密,以得到相应的原始响应数据。
在根据本发明的方法中,还包括步骤:经由客户端的网络适配器接收不是响应于第二网络报文和第五网络报文的响应报文,并根据HTTPS协议对其进行解析。
根据本发明的另一个方面,提供了一种用于在网络***中传输数据的方法,适于在网络***中的服务器中执行,网络***还包括客户端,客户端与服务器预先协商并存储用于数据加密和解密的密钥,该方法包括:经由服务器的网络适配器接收第二网络报文,第二网络报文来自所述客户端,并包括会话记录,会话记录包含有通信参数;根据HTTPS协议生成响应于第二网络报文的第一响应报文,第一响应报文指示后续与客户端使用第二网络报文中会话记录包含的通信参数进行加密通信;经由网络适配器向客户端发送第一响应报文;经由服务器的网络适配器接收第五网络报文,并对其进行解析,第五网络报文来自客户端,并包括加密数据;利用密钥对第五网络报文中解析得到的加密数据进行解密,以得到相应的原始数据。
在根据本发明的方法中,还包括步骤:在发送第一响应报文之后,经由服务器的网络适配器接收第三网络报文,第三网络报文指示后续与服务器使用会话记录中的通信参数进行加密通信。
在根据本发明的方法中,还包括步骤:在经由服务器的网络适配器接收网络报文之后,根据该网络报文中是否存在会话记录来判断该网络报文是否为第二网络报文。
在根据本发明的方法中,还包括步骤:进一步根据该网络报文中的服务器主机名来判断该网络报文是否为所述第二网络报文。
在根据本发明的方法中,还包括步骤:经由服务器的网络适配器接收不是第二网络报文、第三网络报文和第五网络报文的网络报文,根据HTTPS协议生成响应于该网络报文的响应报文,并经由服务器的网络适配器发送该响应报文。
在根据本发明的方法中,还包括步骤:在接收第五网络报文之后,根据HTTPS协议生成响应于第五网络报文的第二响应报文,第二响应报文包括使用会话记录中的通信参数加密的原始响应数据;利用密钥对原始响应数据进行加密,以得到相应的加密响应数据;基于第二响应报文和加密响应数据生成第三响应报文,第三响应报文响应于第五网络报文,并包括加密响应数据;经由服务器的网络适配器向客户端发送第三响应报文。
在根据本发明的方法中,还包括步骤:将第二响应报文中的加密应用层数据替换为加密响应数据,以得到第三响应报文。
根据本发明的加密数据传输方案,先在网络***的客户端处,对待传输的原始数据按照HTTPS协议生成请求进行加密通信的网络报文,基于该网络报文建立的加密通信的协商过程具有相当明显的加密特征,易被识别。本发明通过基于该网络报文和加密数据生成新的网络报文,从而将原本的网络报文伪装成不需要进行协商的网络报文,因此后续建立的加密通信没有上述加密特征,能够隐藏在网络上的海量报文中,也就有效的避免了被诸如防火墙之类的网络设备识别并针对性破译的情况。进一步地,本发明同时支持正常报文处理。
附图说明
为了实现上述以及相关目的,本文结合下面的描述和附图来描述某些说明性方面,这些方面指示了可以实践本文所公开的原理的各种方式,并且所有方面及其等效方面旨在落入所要求保护的主题的范围内。通过结合附图阅读下面的详细描述,本公开的上述以及其它目的、特征和优势将变得更加明显。遍及本公开,相同的附图标记通常指代相同的部件或元素。
图1示例性地示出根据本发明一个实施方式的网络***100的结构框图;
图2示例性地示出计算设备200的结构框图;
图3示例性地示出根据HTTPS协议进行加密通信的示意图;
图4示例性地示出根据本发明一个实施方式的客户端120的结构框图;
图5示例性地示出了根据本发明一个实施方式的服务器140的结构框图;以及
图6示例性地示出根据本发明一个实施方式的用于在网络***100中加密传输数据的方法600的流程图。
具体实施方式
下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
图1示例性示出根据本发明一个实施方式的网络***100的结构框图。如图1所示,该网络***100包括至少一个客户端120(图1所示客户端
100的数目仅为示例)、以及服务器140,客户端120和服务器140可以经由互联网进行通信,并预先协商用于数据加密和解密的密钥。
通常地,根据本发明的客户端120可以实现为在诸如桌面型计算机和膝上型计算机等等之类的计算设备(如图2所示)中执行的程序(如图2所示的计算设备200中的程序222的一种),也可以实现为在移动终端(未示出)中执行处理的程序。根据本发明的服务器140可以实现为诸如文件服务器、数据库服务器、应用程序服务器和网络服务器等等之类的计算设备(也如图2所示)。
图2示例性地示出计算设备200的结构框图。在基本的配置202中,计算设备200典型地包括***存储器206和一个或者多个处理器204。存储器总线208可以用于在处理器204和***存储器206之间的通信。
取决于期望的配置,处理器204可以是任何类型的处理,包括但不限于:微处理器((μP)、微控制器(μC)、数字信息处理器(DSP)或者它们的任何组合。处理器204可以包括诸如一级高速缓存210和二级高速缓存212之类的一个或者多个级别的高速缓存、处理器核心214和寄存器216。示例的处理器核心214可以包括运算逻辑单元(ALU)、浮点数单元
(FPU)、数字信号处理核心(DSP核心)或者它们的任何组合。示例的存储器控制器218可以与处理器204一起使用,或者在一些实现中,存储器控制器218可以是处理器204的一个内部部分。
取决于期望的配置,***存储器206可以是任意类型的存储器,包括但不限于:易失性存储器(诸如RAM)、非易失性存储器(诸如ROM、闪存等)或者它们的任何组合。***存储器206可以包括操作***220、一个或者多个程序222以及数据224。数据224可以包括可用于执行指令的程序数据228。在一些实施方式中,程序222可以被配置为在操作***220上由一个或者多个处理器204利用程序数据228执行指令。
计算设备200还可以包括有助于从各种接口设备(例如,输出设备
242、外设接口244和通信设备246)到基本配置202经由总线/接口控制器230的通信的接口总线240。示例的输出设备242包括图形处理单元248和音频处理单元250。它们可以被配置为有助于经由一个或者多个A/V端口252与诸如显示器或者扬声器之类的各种外部设备进行通信。示例外设接口244可以包括串行接口控制器254和并行接口控制器256,它们可以被配置为有助于经由一个或者多个I/O端口258和诸如输入设备(例如,键盘、鼠标、笔、语音输入设备、触摸输入设备)或者其他外设(例如打印机、扫描仪等)之类的外部设备进行通信。示例的通信设备246可以包括网络控制器260,其可以被布置为便于经由一个或者多个通信端口264与一个或者多个其他计算设备262通过网络通信链路的通信。
网络通信链路可以是通信介质的一个示例。通信介质通常可以体现为在诸如载波或者其他传输机制之类的调制数据信号中的计算机可读指令、数据结构、程序模块,并且可以包括任何信息递送介质。“调制数据信号”可以这样的信号,它的数据集中的一个或者多个或者它的改变可以在信号中编码信息的方式进行。作为非限制性的示例,通信介质可以包括诸如有线网络或者专线网络之类的有线介质,以及诸如声音、射频(RF)、微波、红外(IR)或者其它无线介质在内的各种无线介质。这里使用的术语计算机可读介质可以包括存储介质和通信介质二者。
图3示例性地示出根据HTTPS协议进行加密通信的流程图,如图3所示,根据HTTPS进行加密通信的过程可以包括协商阶段和数据传输阶段。其中,在协商阶段,客户端先向服务器发送client_hello报文,client_hello报文请求与服务器建立基于HTTPS协议的加密通信,并与服务器协商双方进行加密通信所要使用的通信参数,例如用于对数据进行加密和解密的会话密钥和加密算法等等。
具体地,client_hello报文至少可以包括客户端所支持的加密套件(ciphersuites)列表、客户端为该加密通信生成的第一随机数(random_C)、以及客户端所支持的扩展字段(extensions)等等。其中,加密套件包括用于身份认证的认证算法、用于会话密钥协商的密钥交换算法、用于加密数据的对称加密算法和用于完整性校验的信息摘要。随机数用于后续生成会话密钥,扩展字段则包括一些支持协议和算法的辅助信息,例如服务器主机名(server_host)。
另外,client_hello报文还可以包括会话标识(session ID),会话标识可以标识一个活动的或者可恢复的会话,一个空的会话标识表示客户端请求建立一个新的加密通信,一个非空的会话标识则表明客户客户端请求恢复一个之前建立的加密通信。这里假设发出的client_hello报文请求建立新的加密通信,其会话标识为空。
服务器接收到client_hello报文后,向客户端返回协商结果,即向客户端发送server_hello报文,server_hello报文指定双方进行加密通信所要使用的通信参数。具体地,server_hello报文至少可以包括选择使用的加密套件、服务器为该加密通信生成的第二随机数(random_S)和服务器证书。
接下来,客户端会对服务器证书进行验证,验证通过后将用于生成会话密钥的第三随机数利用服务器证书中的服务器公钥加密后发送给服务器(client_key_exchange报文)。同时,根据第三随机数和之前的第一随机数、第二随机数生成会话密钥,并通知服务器:后续采用该会话密钥和之前协商的加密算法进行加密通信(change_cipher_spec报文),客户端的协商阶段已经结束(encrypted_handshake_message报文)。
服务器利用其私钥解密得到第三随机数后,也生成与客户端相同的会话密钥,并同样通知客户端:后续采用该会话密钥和之前协商的加密算法进行加密通信(change_cipher_spec报文),服务器的协商阶段已经结束(encrypted_handshake_message报文)。
至此,客户端与服务器的协商阶段全部结束,后续进入数据传输阶段,双方开始传输使用上述会话密钥和加密算法进行加密的应用层数据。需要注意的是,在HTTPS协议的协商阶段,双方的通信均为明文,因此具有相当明显的加密特征(例如服务器证书的传输和验证等等),易于被诸如防火墙之类的网络设备识别出并进行针对性的破译,这样也就失去了加密传输的意义。
下面结合图4和图5对根据本发明一个实施方式的客户端120与服务器140进行加密数据传输的过程进行描述。
图4示例性地示出根据本发明一个实施方式的客户端120的结构框图。如图4所示,客户端120包括网络适配器122、存储模块124、第一报文处理模块126和第二报文处理模块128。其中,第一报文处理模块126与第二报文处理模块128相连接,第二报文处理模块128还分别与网络适配器122和存储模块124相连接。
网络适配器122包括至少一个网络端口,并适于经由该网络端口来发送和接收报文。第二报文处理模块128则适于经由网络适配器122发送网络报文以及接收响应报文。存储模块124则适于存储客户端120与服务器140预先协商的用于数据加密和解密的密钥,当然,也存储预先协商的用于加密和解密的加密算法。
客户端120要向服务器140加密传输数据时,第一报文处理模块126根据HTTPS协议生成目的地址为服务器140的第一网络报文,并将该第一网络报文发送至第二报文处理模块128。
该第一网络报文请求与服务器140进行加密通信,并协商该加密通信所要使用的通信参数。该第一网络报文通常为client_hello报文。
需要注意的是,这里的第一网络报文请求与服务器140建立新的加密通信,例如可以是如下会话标识为空的client_hello报文:
其中“Session ID Length:0”表示会话标识为空。
第二报文处理模块128适于接收第一报文处理模块126生成的第一网络报文,并基于该第一网络报文生成目的地址同样为服务器140的第二网络报文。第二网络报文包括会话记录(session ticket)。其中,会话记录为client_hello报文的一个扩展字段,其包含有利用服务器140的标识密钥(ticket key)加密的通信参数,因而可以用于恢复之前建立的加密通信。与会话标识类似地,在请求建立一个新的加密通信时,client_hello报文中的会话记录为空,即第一网络报文中的会话记录为空。例如,在上文所述的第一网络报文的示例中,“Type:SessionTicket TLS(0x0023)Length:0”表示会话记录为空。
具体地,第二报文处理模块128可以在第一网络报文中添加会话记录,也就是将会话记录的值修改为非空,以得到第二网络报文。这样,第二网络报文就请求与服务器140继续利用该会话记录中的通信参数进行加密通信。
其中,会话记录的值为利用服务器140的标识密钥加密的通信参数,该服务器140的标识密钥和预定加密算法可以预先存储至存储模块124中,通信参数则可以随机生成。以下是一个修改后的会话记录的示例:
其中,Data包含有加密的通信参数。
根据本发明的另一个实施方式,第二报文处理模块128还可以修改第一网络报文中的服务器主机名。第一网络报文中的服务器主机名通常为服务器140的主机名,那么可以将其修改为其他特定的主机名,据此来标识出第二网络报文。这样,最后生成的第二网络报文与第一网络报文的区别在于第二网络报文的服务器主机名不为服务器140的主机名、且包括会话记录,其他均相同。
在生成第二网络报文之后,第二报文处理模块128经由网络适配器122向服务器140发送该第二网络报文。
此外,客户端120也支持基于HTTPS协议的正常报文处理,例如,第一报文处理模块126可以根据HTTPS协议生成目的地址不是服务器140的网络报文,并发送至第二报文处理模块128。第二报文处理模块128接收并经由网络适配器122发送该网络报文,不对该网络报文进行任何修改。又例如,若客户端120与服务器140之间同时还需要进行正常的、基于HTTPS协议的加密通信,那么客户端120的存储模块122中可以存储配置文件,该配置文件指示需要进行本发明的加密传输的情况和需要进行基于HTTPS协议的加密通信的情况。这样,第一报文处理模块126根据HTTPS协议生成目的地址是服务器140的网络报文,并发送至第二报文处理模块128。第二报文处理模块128可以基于存储的配置文件来判断是对该网络报文进行修改后发送,还是直接发送,不进行任何修改。
图5示例性地示出根据本发明一个实施方式的服务器140的结构框图。如图5所示,服务器140包括网络适配器142、存储模块144、第一报文处理模块146和第二报文处理模块148。其中,第一报文处理模块146与第二报文处理模块148相连接,第二报文处理模块148还分别与网络适配器142和存储模块144相连接。
网络适配器142包括至少一个网络端口,并适于经由该网络端口来发送和接收报文。存储模块144则适于存储客户端120与服务器140预先协商的用于数据加密和解密的密钥和加密算法。第二报文处理模块148适于经由网络适配器142接收网络报文以及发送响应报文。
在客户端120发出第二网络报文之后,服务器140的第二报文处理模块148经由网络适配器142接收该第二网络报文,并选择将该第二网络报文发送至第一报文处理模块146。如前文所述,第二网络报文包括会话记录,会话记录包含有加密的通信参数。
其中,根据本发明的一个实施方式,第二报文处理模块148在经由网络适配器接收网络报文之后,还适于根据该网络报文中是否存在会话记录来判断该网络报文是否为第二网络报文。例如,对于源地址是客户端120的client_hello报文,如果其会话记录的值不为空,那么可以确定是第二网络报文,否则不是第二网络报文。当然,源地址不是客户端120、或者不是client_hello报文的网络报文也不是第二网络报文。
进一步地,考虑到客户端120与服务器140之间也可以支持正常的基于HTTPS协议的加密通信,为了更精确地识别出第二网络报文,第二报文处理模块148还适于进一步根据该网络报文中的服务器主机名来判断该网络报文是否为第二网络报文。具体地,对于源地址是客户端120、且其会话记录的值不为空的client_hello报文,如果其服务器主机名不为服务器140的主机名,则可以确定该网络报文是第二网络报文。第一报文处理模块146接收该第二网络报文,根据HTTPS协议生成响应于该第二网络报文的第一响应报文。
具体地,第一报文处理模块146根据HTTPS协议对第二网络报文进行解析,而后利用服务器140的标识密钥和预定加密算法对解析得到的会话记录进行解密。若解密成功,则可以得到会话记录中的通信参数,并生成相应的响应报文。这里,第一报文处理模块146显然能够成功解密第二网络报文中的会话记录,而后生成第一响应报文。
该第一响应报文指示后续与客户端120使用第二网络报文中的会话记录包含的通信参数进行加密通信,通常可以由server_hello报文、change_cipher_spec报文和encrypted_handshake_message报文组成。其中,server_hello报文确认所要使用的通信参数(也就是第二网络报文中的会话记录包含的通信参数),change_cipher_spec报文指示后续与客户端120使用协商的通信参数(也就是server_hello报文确认的通信参数)进行加密通信,encrypted_handshake_message报文指示服务器140的协商阶段结束,并包括校验数据,以供客户端120进行校验,该校验数据通常是利用协商的通信参数加密的、服务器140之前向客户端120发送的所有内容的hash值。以下是一个典型的第一响应报文的示例:
生成第一响应报文之后,第一报文处理模块146将第一响应报文发送至第二报文处理模块148,第二报文处理模块148接收该第一响应报文,经由网络适配器142向客户端120发送该第一响应报文。
至此,服务器140的协商阶段结束。
之后,客户端120的第二报文处理模块128经由网络适配器122接收第一响应报文,并选择将第一响应报文发送至第一报文处理模块126。
第一报文处理模块126接收第一响应报文,可以先基于该第一响应报文进行校验。具体地,可以根据其之前生成的通信参数对第一响应报文中的加密的校验数据进行解密,再对解密得到的校验数据进行校验,以确保数据和通信参数的正确性。
在校验通过之后,还可以根据HTTPS协议生成第三网络报文,并发送至第二报文处理模块128。第二报文处理模块128接收第三网络报文,并经由网络适配器122向服务器140发送该第三网络报文。
该第三网络报文指示后续与服务器140使用会话记录中的通信参数进行加密通信,通常可以包括change_cipher_spec报文和encrypted_handshake_message报文。与第一响应报文类似地,change_cipher_spec报文指示后续与服务器140使用协商的通信参数(也就是会话记录中的通信参数)进行加密通信,encrypted_handshake_message报文指示客户端140的协商阶段结束,并包括校验数据,以供服务器140进行校验。该校验数据通常是利用协商的通信参数加密的、客户端120之前向服务器140发送的所有内容的hash值。
至此,客户端120的协商阶段结束。下面双方可以进入数据传输阶段。
客户端120在发出第三网络报文之后,客户端120的第一报文处理模块126继续根据HTTPS协议生成目的地址为服务器140的第四网络报文。由于客户端120与服务器140已协商好通信参数(即会话记录中的通信参数),第四网络报文包括使用该通信参数加密的、待传输的原始数据。具体来说,第四网络报文包括加密应用层数据,该加密应用层数据为使用通信参数加密的基于HTTP协议的应用层数据,应用层数据的主体(body)即为待传输的原始数据。以下是一个典型的第四网络报文的示例:
其中,Encrypted Application Data为加密应用层数据,将EncryptedApplication Data解密后可以得到包含原始数据的应用层数据。
第一报文处理模块126将生成的第四网络报文也发送至第二报文处理模块128。第二报文处理模块128接收第四网络报文,利用存储模块124中的密钥和加密算法对待传输的原始数据进行加密,以得到相应的加密数据,而后基于第四网络报文和加密数据生成第五网络报文。
第五网络报文的目的地址为服务器140,并包括得到的加密数据。根据一个实施方式,第二报文处理模块128可以将第四网络报文中的加密应用层数据直接替换为加密数据,以得到第五网络报文。根据另一个实施方式,还可以先将第四网络报文中的加密应用层数据使用通信参数解密,得到基于HTTP协议的应用层数据。再将该应用层数据利用存储模块122中的密钥进行重新加密,最后用重新加密的应用层数据替换第四网络报文的加密应用层数据,得到包括加密数据的第五网络报文。
其中,存储模块124中的加密算法可以是诸如AES-256-CFB之类的对称加密算法,也可以是其他加密算法,本发明对此不做限制。例如,原始的数据为“0x01 0x08 0x08 0x080x00 0x50”,使用密钥“abc”经过AES-256-CFB算法加密,得到的加密数据为“0xbb 0x590x1c 0x4a 0xb9 0x0a 0x91 0xdc 0x07 0xef 0x72 0x05 0x90 0x42 0xca 0x0d 0x4c0x3b 0x87 0x8e 0xca 0xab 0x32”。
生成第五网络报文之后,第二报文处理模块经由网络适配器122向服务器140发送该第五网络报文。这样,就实现了客户端120向服务器140的加密数据传输。
接下来,在服务器140处,第二报文处理模块148可以经由网络适配器142接收第五网络报文,并选择对该第五网络报文进行解析,得到第五网络报文中的加密数据。而后利用存储模块144存储的密钥对该加密数据进行解密,以得到相应的原始数据。
当然,在接收第五网络报文之前,第二报文处理模块148还可以经由网络适配器142接收第三网络报文,并确定基于第三网络报文的校验通过。在校验通过之后,第一报文处理模块146可以对后续接收的第五网络报文进行响应。
根据本发明的一个实施方式,第二报文处理模块148可以将第五网络报文发送给第一报文处理模块146。第一报文处理模块146可以根据HTTPS协议生成响应于第五网络报文的第二响应报文,并再发送至第二报文处理模块148,该第二响应报文包括使用会话记录中的通信参数加密的原始响应数据。
第二报文处理模块148接收第二响应报文,利用密钥对待传输的原始响应数据进行加密,以得到相应的加密响应数据,而后基于第二响应报文和加密响应数据生成第三响应报文。该第三响应报文响应于第五网络报文,并包括的是加密响应数据,其可以通过将第二响应报文中的加密应用层数据替换为加密响应数据来得到。第二响应报文的结构与第四网络报文类似,得到第三响应报文的处理与客户端120得到第五网络报文的处理也类似,此处不再赘述。
在生成第三响应报文之后,第二报文处理模块148经由网络适配器142向客户端120发送第三响应报文。这样,就实现了服务器140向客户端120的加密数据传输。
服务器140发出第三响应报文之后,客户端120的第二报文处理模块128接收第三响应报文,并选择对第三响应报文进行解析。利用存储模块124存储的密钥对第三响应报文中解析得到的加密响应数据进行解密,最后得到相应的原始响应数据。
此外,服务器140也支持基于HTTPS协议的正常报文处理,根据本发明的一个实施方式,第二报文处理模块148可以在经由网络适配器142接收网络报文之后,选择将不是第二网络报文、第三网络报文和第五网络报文的网络报文发送至第一报文处理模块146,第一报文处理模块146根据HTTPS协议生成响应于该网络报文的响应报文,再发给第二报文处理模块148,第二报文处理模块148接收并经由网络适配器142发送该响应报文。
相应地,客户端120的第二报文处理模块128也可以经由网络适配器122接收不是响应于第二网络报文和第五网络报文的响应报文发送至第一报文处理模块126,第一报文处理模块126根据HTTPS协议对该响应报文进行解析。
综上,可以看到,根据本发明的这种加密传输方案在协商阶段没有明显的加密特征(例如不需要传输服务器证书),因此难以被识别出来并进行针对性破译,具有很高的隐蔽性。而且,基于HTTPS的加密通信中仅可以使用协议支持的加密算法,本发明的客户端与服务器则由于预先共享密钥,在其加密算法的选择上可以更宽泛,即使是HTTPS协议中不建议使用的加密算法,在本发明中依然可以保持高度的加密性。
进一步地,本发明还支持基于HTTPS协议的正常报文处理,可以在正常报文处理和本发明的加密传输中的特殊报文处理之间根据配置文件来方便地进行切换,并且处理特殊报文不会对正常报文的处理产生任何影响,从而满足用户多方面的需求,提高了用户体验。
图6示例性地示出根据本发明一个实施方式的用于在网络***100中加密传输数据的方法600的流程图。如图6所示,该方法600始于步骤S610,并适于在网络***100中执行,网络***100中的服务器140与客户端120预先协商并存储用于数据加密和解密的密钥。
在步骤S610中,客户端120根据HTTPS协议生成目的地址为服务器140的第一网络报文,第一网络报文请求与服务器140进行加密通信,并协商该加密通信所要使用的通信参数。
而后在步骤S615中,客户端120基于第一网络报文生成第二网络报文,并经由其网络适配器向服务器140发送该第二网络报文。第二网络报文的目的地址也为服务器140,并包括会话记录,该会话记录包含有通信参数。具体地,可以在第一网络报文中添加会话记录,修改第一网络报文中的服务器主机名,以得到第二网络报文。
而后服务器140经由其网络适配器接收该第二网络报文,并在步骤S620中,根据HTTPS协议生成响应于第二网络报文的第一响应报文,经由其网络适配器向客户端120发送第一响应报文。该第一响应报文指示后续与客户端120使用第二网络报文中会话记录包含的通信参数进行加密通信。
具体地,在经由服务器140的网络适配器接收网络报文之后,服务器140可以根据该网络报文中是否存在会话记录、以及该网络报文中的服务器主机名来判断该网络报文是否为所述第二网络报文。
客户端120经由其网络适配器接收第一响应报文,而后在步骤S625中,根据HTTPS协议生成第三网络报文,并经由其网络适配器向服务器140发送该第三网络报文。第三网络报文指示后续与服务器140使用会话记录中的通信参数进行加密通信。
接着,客户端120还在步骤S630中,根据HTTPS协议生成目的地址为服务器140的第四网络报文,该第四网络报文包括使用会话记录中的通信参数加密的、待传输的原始数据。而后在步骤S635中,先利用预先协商的密钥对原始数据进行加密,以得到相应的加密数据。再基于第四网络报文和加密数据生成第五网络报文,最后经由客户端120的网络适配器向服务器140发送该第五网络报文。
第五网络报文的目的地址为服务器140,并包括加密数据。具体地,可以将第四网络报文中的加密应用层数据替换为加密数据,以得到第五网络报文。
服务器140经由其网络适配器接收第五网络报文,对其进行解析。并在步骤S640中,利用预先协商的密钥对第五网络报文中解析得到的加密数据进行解密,以得到相应的原始数据。
还可以在之后的步骤S645中,根据HTTPS协议生成响应于第五网络报文的第二响应报文,第二响应报文包括使用会话记录中的通信参数加密的原始响应数据。在步骤S650中,先利用密钥对原始响应数据进行加密,以得到相应的加密响应数据,再基于第二响应报文和加密响应数据生成第三响应报文,最后经由服务器140的网络适配器向客户端120发送第三响应报文。
第三响应报文响应于第五网络报文,并包括加密响应数据。具体地,可以将第二响应报文中的加密应用层数据替换为加密响应数据,以得到第三响应报文。
客户端120经由其网络适配器接收第三响应报文,对其进行解析,并在步骤S655中,利用密钥对第三响应报文中解析得到的加密响应数据进行解密,以得到相应的原始响应数据。
此外,根据本发明的一个实施方式,客户端120可以根据HTTPS协议生成目的地址不是服务器140的网络报文,经由其网络适配器发送该网络报文。客户端120还可以经由其网络适配器接收不是响应于第二网络报文和第五网络报文的响应报文,并根据HTTPS协议对该响应报文进行解析。
服务器140可以经由其网络适配器接收不是第二网络报文、第三网络报文和第五网络报文的网络报文,根据HTTPS协议生成响应于该网络报文的响应报文,并经由服务器的网络适配器发送该响应报文。
以上在结合图1至图5对网络***100中的数据加密传输过程的具体描述中已经对各步骤的相应处理进行了详细解释,这里不再对重复内容进行赘述。
应当理解,这里描述的各种技术可结合硬件或软件,或者它们的组合一起实现。从而,本发明的方法和设备,或者本发明的方法和设备的某些方面或部分可采取嵌入有形媒介,例如软盘、CD-ROM、硬盘驱动器或者其它任意机器可读的存储介质中的程序代码(即指令)的形式,其中当程序被载入诸如计算机之类的机器,并被该机器执行时,该机器变成实践本发明的设备。
在程序代码在可编程计算机上执行的情况下,计算设备一般包括处理器、处理器可读的存储介质(包括易失性和非易失性存储器和/或存储元件),至少一个输入装置,和至少一个输出装置。其中,存储器被配置用于存储程序代码;处理器被配置用于根据该存储器中存储的该程序代码中的指令,执行本发明的各种方法。
以示例而非限制的方式,计算机可读介质包括计算机存储介质和通信介质。计算机可读介质包括计算机存储介质和通信介质。计算机存储介质存储诸如计算机可读指令、数据结构、程序模块或其它数据等信息。通信介质一般以诸如载波或其它传输机制等已调制数据信号来体现计算机可读指令、数据结构、程序模块或其它数据,并且包括任何信息传递介质。以上的任一种的组合也包括在计算机可读介质的范围之内。
应当理解,为了精简本公开并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多特征。更确切地说,如下面的权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。
本领域那些技术人员应当理解在本文所公开的示例中的设备的模块或单元或组件可以布置在如该实施例中所描述的设备中,或者可替换地可以定位在与该示例中的设备不同的一个或多个设备中。前述示例中的模块可以组合为一个模块或者此外可以分成多个子模块。
本发明还可以包括:A5、如A1-4中任一个所述的客户端,其中,所述第二报文处理模块还适于将所述第四网络报文中的加密应用层数据替换为所述加密数据,以得到第五网络报文。A6、如A1-5中任一个所述的客户端,其中,所述第一报文处理模块还适于根据HTTPS协议生成目的地址不是所述服务器的网络报文;所述第二报文处理模块还适于接收并经由所述网络适配器发送该网络报文。A7、如A1-6中任一个所述的客户端,其中,所述第二报文处理模块还适于选择对第三响应报文进行解析,所述第三响应报文是所述服务器响应于所述第四网络报文而返回的网络报文,并包括加密响应数据;利用所述密钥对所述第三响应报文中解析得到的所述加密响应数据进行解密,以得到相应的原始响应数据。A8、如A1-7中任一个所述的客户端,其中,所述第二报文处理模块还适于选择将不是响应于第二网络报文和第五网络报文的响应报文发送至所述第一报文处理模块;所述第一报文处理模块还适于根据HTTPS协议对该响应报文进行解析。
B12、如B11所述的服务器,其中,所述第二报文处理模块还适于进一步根据该网络报文中的服务器主机名来判断该网络报文是否为所述第二网络报文。B13、如B9-12中任一个所述的服务器,其中,所述第二报文处理模块还适于在经由网络适配器接收网络报文之后,选择将不是所述第二网络报文、所述第三网络报文和所述第五网络报文的网络报文发送至所述第一报文处理模块;所述第一报文处理模块还适于根据HTTPS协议生成响应于该网络报文的响应报文;以及所述第二报文处理模块还适于接收并经由所述网络适配器发送该响应报文。B14、如B9-13中任一个所述的服务器,其中,所述第二报文处理模块还适于将所述第五网络报文发送至所述第一报文处理模块;所述第一报文处理模块还适于根据HTTPS协议生成第二响应报文,所述第二响应报文响应于所述第五网络报文,并包括使用所述会话记录中的通信参数加密的原始响应数据;以及所述第二报文处理模块还适于接收所述第二响应报文;利用所述密钥对所述原始响应数据进行加密,以得到相应的加密响应数据;基于所述第二响应报文和所述加密响应数据生成第三响应报文,所述第三响应报文响应于所述第五网络报文,并包括所述加密响应数据;经由所述网络适配器向所述客户端发送所述第三响应报文。B15、如B14所述的服务器,其中,所述第二报文处理模块还适于将所述第二响应报文中的加密应用层数据替换为所述加密响应数据,以得到第三响应报文。
C18、如C17所述的方法,其中,还包括步骤:在接收所述第一响应报文之后,根据HTTPS协议生成第三网络报文,所述第三网络报文指示后续与所述服务器使用所述会话记录中的通信参数进行加密通信;经由所述网络适配器向所述服务器发送所述第三网络报文。C19、如C17或18所述的方法,其中,所述基于第一网络报文生成第二网络报文的步骤包括:在所述第一网络报文中添加会话记录,以得到第二网络报文。C20、如C19所述的方法,其中,所述基于第一网络报文生成第二网络报文的步骤还包括:修改所述第一网络报文中的服务器主机名。C21、如C17-20中任一个所述的方法,其中,所述基于第四网络报文和加密数据生成第五网络报文的步骤包括:将所述第四网络报文中的加密应用层数据替换为所述加密数据,以得到第五网络报文。C22、如C17-21中任一个所述的方法,其中,还包括步骤:根据HTTPS协议生成目的地址不是所述服务器的网络报文;经由客户端的网络适配器发送该网络报文。C23、如C17-22中任一个所述的方法,其中,还包括步骤:在发送所述第五网络报文之后,经由客户端的网络适配器接收第三响应报文,并对其进行解析,所述第三响应报文是所述服务器响应于所述第五网络报文而返回的网络报文,并包括加密响应数据;利用所述密钥对所述第三响应报文中解析得到的所述加密响应数据进行解密,以得到相应的原始响应数据。C24、如C17-23中任一个所述的方法,其中,还包括步骤:经由客户端的网络适配器接收不是响应于所述第二网络报文和第五网络报文的响应报文,并根据HTTPS协议对其进行解析。
D26、如D25所述的方法,其中,还包括步骤:在发送所述第一响应报文之后,经由服务器的网络适配器接收第三网络报文,所述第三网络报文指示后续与所述服务器使用所述会话记录中的通信参数进行加密通信。D27、如D25或26所述的方法,其中,还包括步骤:在经由服务器的网络适配器接收网络报文之后,根据该网络报文中是否存在所述会话记录来判断该网络报文是否为所述第二网络报文。D28、如D27所述的方法,其中,还包括步骤:进一步根据该网络报文中的服务器主机名来判断该网络报文是否为所述第二网络报文。D29、如D25-28中任一个所述的方法,其中,还包括步骤:经由服务器的网络适配器接收不是所述第二网络报文、第三网络报文和所述第五网络报文的网络报文,根据HTTPS协议生成响应于该网络报文的响应报文,并经由服务器的网络适配器发送该响应报文。D30、如D25-29中任一个所述的方法,其中,还包括步骤:在接收所述第五网络报文之后,根据HTTPS协议生成响应于所述第五网络报文的第二响应报文,所述第二响应报文包括使用所述会话记录中的通信参数加密的原始响应数据;利用所述密钥对所述原始响应数据进行加密,以得到相应的加密响应数据;基于所述第二响应报文和所述加密响应数据生成第三响应报文,所述第三响应报文响应于所述第五网络报文,并包括所述加密响应数据;经由服务器的网络适配器向所述客户端发送所述第三响应报文。D31、如D30所述的方法,其中,还包括步骤:将所述第二响应报文中的加密应用层数据替换为所述加密响应数据,以得到第三响应报文。
本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。
此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在下面的权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。
此外,所述实施例中的一些在此被描述成可以由计算机***的处理器或者由执行所述功能的其它装置实施的方法或方法元素的组合。因此,具有用于实施所述方法或方法元素的必要指令的处理器形成用于实施该方法或方法元素的装置。此外,装置实施例的在此所述的元素是如下装置的例子:该装置用于实施由为了实施该发明的目的的元素所执行的功能。
如在此所使用的那样,除非另行规定,使用序数词“第一”、“第二”、“第三”等等来描述普通对象仅仅表示涉及类似对象的不同实例,并且并不意图暗示这样被描述的对象必须具有时间上、空间上、排序方面或者以任意其它方式的给定顺序。
尽管根据有限数量的实施例描述了本发明,但是受益于上面的描述,本技术领域内的技术人员明白,在由此描述的本发明的范围内,可以设想其它实施例。此外,应当注意,本说明书中使用的语言主要是为了可读性和教导的目的而选择的,而不是为了解释或者限定本发明的主题而选择的。因此,在不偏离所附权利要求书的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。对于本发明的范围,对本发明所做的公开是说明性的,而非限制性的,本发明的范围由所附权利要求书限定。
Claims (31)
1.一种客户端,驻留在网络***中,所述网络***还包括服务器,所述服务器与客户端预先协商用于数据加密和解密的密钥,所述客户端包括:
网络适配器,包括至少一个网络端口,并适于经由网络端口发送和接收报文;
存储模块,适于存储与所述服务器预先协商的密钥;
第一报文处理模块,适于
根据HTTPS协议生成目的地址为所述服务器的第一网络报文,所述第一网络报文请求与所述服务器进行加密通信,并协商该加密通信所要使用的通信参数;以及
第二报文处理模块,适于
接收所述第一网络报文;
基于所述第一网络报文生成第二网络报文,所述第二网络报文的目的地址为所述服务器,并包括会话记录,所述会话记录包含有通信参数;
经由所述网络适配器向所述服务器发送所述第二网络报文;还适于
经由所述网络适配器接收响应报文;
选择将第一响应报文发送至所述第一报文处理模块,所述第一响应报文是所述服务器响应于所述第二网络报文而返回的网络报文,其指示后续与所述客户端使用所述第二网络报文中会话记录包含的通信参数进行加密通信;其中
所述第一报文处理模块还适于
在接收到所述第一响应报文之后,根据HTTPS协议生成目的地址为所述服务器的第四网络报文,所述第四网络报文包括使用所述会话记录中的通信参数加密的、待传输的原始数据;
所述第二报文处理模块还适于
接收所述第四网络报文;
利用所述密钥对所述原始数据进行加密,以得到相应的加密数据;
基于所述第四网络报文和加密数据生成第五网络报文,所述第五网络报文的目的地址为所述服务器,并包括所述加密数据;
经由所述网络适配器向所述服务器发送所述第五网络报文。
2.如权利要求1所述的客户端,其中,所述第一报文处理模块还适于
根据HTTPS协议生成第三网络报文,所述第三网络报文指示后续与所述服务器使用所述会话记录中的通信参数进行加密通信;
所述第二报文处理模块还适于接收并经由所述网络适配器向所述服务器发送所述第三网络报文。
3.如权利要求1所述的客户端,其中,所述第二报文处理模块还适于
在所述第一网络报文中添加会话记录,以得到第二网络报文。
4.如权利要求3所述的客户端,其中,所述第二报文处理模块还适于
修改所述第一网络报文中的服务器主机名。
5.如权利要求1-4中任一个所述的客户端,其中,所述第二报文处理模块还适于
将所述第四网络报文中的加密应用层数据替换为所述加密数据,以得到第五网络报文。
6.如权利要求1-4中任一个所述的客户端,其中,
所述第一报文处理模块还适于根据HTTPS协议生成目的地址不是所述服务器的网络报文;
所述第二报文处理模块还适于接收并经由所述网络适配器发送该网络报文。
7.如权利要求1-4中任一个所述的客户端,其中,所述第二报文处理模块还适于
选择对第三响应报文进行解析,所述第三响应报文是所述服务器响应于所述第四网络报文而返回的网络报文,并包括加密响应数据;
利用所述密钥对所述第三响应报文中解析得到的所述加密响应数据进行解密,以得到相应的原始响应数据。
8.如权利要求1-4中任一个所述的客户端,其中,所述第二报文处理模块还适于
选择将不是响应于第二网络报文和第五网络报文的响应报文发送至所述第一报文处理模块;
所述第一报文处理模块还适于根据HTTPS协议对该响应报文进行解析。
9.一种服务器,驻留在网络***中,所述网络***还包括客户端,所述客户端与服务器预先协商用于数据加密和解密的密钥,所述服务器包括:
网络适配器,包括至少一个网络端口,并适于经由网络端口发送和接收报文;
存储模块,适于存储与所述客户端预先协商的密钥;
第二报文处理模块,适于
经由所述网络适配器接收网络报文;
选择将第二网络报文发送至第一报文处理模块,所述第二网络报文来自所述客户端,并包括会话记录,所述会话记录包含有通信参数;
以及第一报文处理模块,适于
根据HTTPS协议生成响应于所述第二网络报文的第一响应报文,所述第一响应报文指示后续与所述客户端使用所述会话记录中的通信参数进行加密通信;
其中所述第二报文处理模块还适于
接收所述第一响应报文;
经由所述网络适配器向所述客户端发送所述第一响应报文;还适于
选择对第五网络报文进行解析,所述第五网络报文来自所述客户端,并包括加密数据;
利用所述密钥对所述第五网络报文中解析得到的所述加密数据进行解密,以得到相应的原始数据。
10.如权利要求9所述的服务器,其中,
所述第二报文处理模块还适于经由网络适配器接收第三网络报文,所述第三网络报文指示后续与所述服务器使用所述第二网络报文中会话记录包含的通信参数进行加密通信。
11.如权利要求9所述的服务器,其中,所述第二报文处理模块还适于在经由网络适配器接收网络报文之后,根据该网络报文中是否存在所述会话记录来判断该网络报文是否为所述第二网络报文。
12.如权利要求11所述的服务器,其中,所述第二报文处理模块还适于进一步根据该网络报文中的服务器主机名来判断该网络报文是否为所述第二网络报文。
13.如权利要求10所述的服务器,其中,
所述第二报文处理模块还适于在经由网络适配器接收网络报文之后,选择将不是所述第二网络报文、所述第三网络报文和所述第五网络报文的网络报文发送至所述第一报文处理模块;
所述第一报文处理模块还适于根据HTTPS协议生成响应于该网络报文的响应报文;以及所述第二报文处理模块还适于接收并经由所述网络适配器发送该响应报文。
14.如权利要求9-13中任一个所述的服务器,其中,
所述第二报文处理模块还适于将所述第五网络报文发送至所述第一报文处理模块;
所述第一报文处理模块还适于根据HTTPS协议生成第二响应报文,所述第二响应报文响应于所述第五网络报文,并包括使用所述会话记录中的通信参数加密的原始响应数据;以及
所述第二报文处理模块还适于
接收所述第二响应报文;
利用所述密钥对所述原始响应数据进行加密,以得到相应的加密响应数据;
基于所述第二响应报文和所述加密响应数据生成第三响应报文,所述第三响应报文响应于所述第五网络报文,并包括所述加密响应数据;
经由所述网络适配器向所述客户端发送所述第三响应报文。
15.如权利要求14所述的服务器,其中,所述第二报文处理模块还适于
将所述第二响应报文中的加密应用层数据替换为所述加密响应数据,以得到第三响应报文。
16.一种网络***,包括:
如权利要求1-8中任一个所述的客户端,以及
如权利要求9-15中任一个所述的服务器。
17.一种用于在网络***中传输数据的方法,适于在网络***中的客户端中执行,所述网络***还包括服务器,所述服务器与客户端预先协商并存储用于数据加密和解密的密钥,所述方法包括:
根据HTTPS协议生成目的地址为所述服务器的第一网络报文,所述第一网络报文请求与所述服务器进行加密通信,并协商该加密通信所要使用的通信参数;
基于所述第一网络报文生成第二网络报文,所述第二网络报文的目的地址为所述服务器,并包括会话记录,所述会话记录包含有通信参数;
经由客户端的网络适配器向所述服务器发送所述第二网络报文;
经由客户端的网络适配器接收第一响应报文,所述第一响应报文是所述服务器响应于所述第二网络报文而返回的网络报文,其指示后续与所述客户端使用所述第二网络报文中会话记录包含的通信参数进行加密通信;
根据HTTPS协议生成目的地址为所述服务器的第四网络报文,所述第四网络报文包括使用所述会话记录中的通信参数加密的、待传输的原始数据;
利用所述密钥对所述原始数据进行加密,以得到相应的加密数据;
基于所述第四网络报文和加密数据生成第五网络报文,所述第五网络报文的目的地址为所述服务器,并包括所述加密数据;以及
经由客户端的网络适配器向所述服务器发送所述第五网络报文。
18.如权利要求17所述的方法,其中,还包括步骤:
在接收所述第一响应报文之后,根据HTTPS协议生成第三网络报文,所述第三网络报文指示后续与所述服务器使用所述会话记录中的通信参数进行加密通信;
经由所述网络适配器向所述服务器发送所述第三网络报文。
19.如权利要求17所述的方法,其中,所述基于第一网络报文生成第二网络报文的步骤包括:
在所述第一网络报文中添加会话记录,以得到第二网络报文。
20.如权利要求19所述的方法,其中,所述基于第一网络报文生成第二网络报文的步骤还包括:
修改所述第一网络报文中的服务器主机名。
21.如权利要求17-20中任一个所述的方法,其中,所述基于第四网络报文和加密数据生成第五网络报文的步骤包括:
将所述第四网络报文中的加密应用层数据替换为所述加密数据,以得到第五网络报文。
22.如权利要求17-20中任一个所述的方法,其中,还包括步骤:
根据HTTPS协议生成目的地址不是所述服务器的网络报文;
经由客户端的网络适配器发送该网络报文。
23.如权利要求17-20中任一个所述的方法,其中,还包括步骤:
在发送所述第五网络报文之后,经由客户端的网络适配器接收第三响应报文,并对其进行解析,所述第三响应报文是所述服务器响应于所述第五网络报文而返回的网络报文,并包括加密响应数据;
利用所述密钥对所述第三响应报文中解析得到的所述加密响应数据进行解密,以得到相应的原始响应数据。
24.如权利要求17-20中任一个所述的方法,其中,还包括步骤:
经由客户端的网络适配器接收不是响应于所述第二网络报文和第五网络报文的响应报文,并根据HTTPS协议对其进行解析。
25.一种用于在网络***中传输数据的方法,适于在网络***中的服务器中执行,所述网络***还包括客户端,所述客户端与服务器预先协商并存储用于数据加密和解密的密钥,所述方法包括:
经由服务器的网络适配器接收第二网络报文,所述第二网络报文来自所述客户端,并包括会话记录,所述会话记录包含有通信参数;
根据HTTPS协议生成响应于所述第二网络报文的第一响应报文,所述第一响应报文指示后续与所述客户端使用所述第二网络报文中会话记录包含的通信参数进行加密通信;
经由所述网络适配器向所述客户端发送所述第一响应报文;
经由服务器的网络适配器接收第五网络报文,并对其进行解析,所述第五网络报文来自所述客户端,并包括加密数据;
利用所述密钥对所述第五网络报文中解析得到的所述加密数据进行解密,以得到相应的原始数据。
26.如权利要求25所述的方法,其中,还包括步骤:
在发送所述第一响应报文之后,经由服务器的网络适配器接收第三网络报文,所述第三网络报文指示后续与所述服务器使用所述会话记录中的通信参数进行加密通信。
27.如权利要求25所述的方法,其中,还包括步骤:
在经由服务器的网络适配器接收网络报文之后,根据该网络报文中是否存在所述会话记录来判断该网络报文是否为所述第二网络报文。
28.如权利要求27所述的方法,其中,还包括步骤:
进一步根据该网络报文中的服务器主机名来判断该网络报文是否为所述第二网络报文。
29.如权利要求25-28中任一个所述的方法,其中,还包括步骤:
经由服务器的网络适配器接收不是所述第二网络报文、第三网络报文和所述第五网络报文的网络报文,根据HTTPS协议生成响应于该网络报文的响应报文,并经由服务器的网络适配器发送该响应报文。
30.如权利要求25-28中任一个所述的方法,其中,还包括步骤:
在接收所述第五网络报文之后,根据HTTPS协议生成响应于所述第五网络报文的第二响应报文,所述第二响应报文包括使用所述会话记录中的通信参数加密的原始响应数据;
利用所述密钥对所述原始响应数据进行加密,以得到相应的加密响应数据;
基于所述第二响应报文和所述加密响应数据生成第三响应报文,所述第三响应报文响应于所述第五网络报文,并包括所述加密响应数据;
经由服务器的网络适配器向所述客户端发送所述第三响应报文。
31.如权利要求30所述的方法,其中,还包括步骤:
将所述第二响应报文中的加密应用层数据替换为所述加密响应数据,以得到第三响应报文。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710852516.2A CN107592315B (zh) | 2017-09-19 | 2017-09-19 | 用于加密传输数据的客户端、服务器、网络***及方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710852516.2A CN107592315B (zh) | 2017-09-19 | 2017-09-19 | 用于加密传输数据的客户端、服务器、网络***及方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107592315A CN107592315A (zh) | 2018-01-16 |
CN107592315B true CN107592315B (zh) | 2019-11-12 |
Family
ID=61046925
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710852516.2A Active CN107592315B (zh) | 2017-09-19 | 2017-09-19 | 用于加密传输数据的客户端、服务器、网络***及方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107592315B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108243259B (zh) * | 2018-02-08 | 2021-04-16 | 北京车和家信息技术有限公司 | 车联网数据的传输方法、装置及*** |
CN110062206A (zh) * | 2019-04-16 | 2019-07-26 | 阜阳师范学院 | 一种视频监控***的安全解决办法和视频监控传输*** |
CN110971616B (zh) * | 2019-12-24 | 2022-04-01 | 广州市百果园信息技术有限公司 | 基于安全传输层协议的连接建立方法、客户端和服务器 |
CN111740966B (zh) * | 2020-06-10 | 2021-10-15 | 腾讯科技(深圳)有限公司 | 一种基于区块链网络的数据处理方法及相关设备 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101022339A (zh) * | 2007-03-23 | 2007-08-22 | 郭传真 | 一种结合数字证书和***的电子签章认证方法 |
CN101094007A (zh) * | 2007-07-10 | 2007-12-26 | 马建国 | 一种可以近距离直接通信的手机及其工作方法 |
CN101873216A (zh) * | 2010-07-08 | 2010-10-27 | 布日古德 | 主机认证方法、数据包发送方法和接收方法 |
CN106027250A (zh) * | 2015-11-10 | 2016-10-12 | 天地融科技股份有限公司 | 一种身份证信息安全传输方法及*** |
CN106685983A (zh) * | 2017-01-13 | 2017-05-17 | 华北计算技术研究所(中国电子科技集团公司第十五研究所) | 一种基于ssl协议的数据还原方法与装置 |
-
2017
- 2017-09-19 CN CN201710852516.2A patent/CN107592315B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101022339A (zh) * | 2007-03-23 | 2007-08-22 | 郭传真 | 一种结合数字证书和***的电子签章认证方法 |
CN101094007A (zh) * | 2007-07-10 | 2007-12-26 | 马建国 | 一种可以近距离直接通信的手机及其工作方法 |
CN101873216A (zh) * | 2010-07-08 | 2010-10-27 | 布日古德 | 主机认证方法、数据包发送方法和接收方法 |
CN106027250A (zh) * | 2015-11-10 | 2016-10-12 | 天地融科技股份有限公司 | 一种身份证信息安全传输方法及*** |
CN106685983A (zh) * | 2017-01-13 | 2017-05-17 | 华北计算技术研究所(中国电子科技集团公司第十五研究所) | 一种基于ssl协议的数据还原方法与装置 |
Also Published As
Publication number | Publication date |
---|---|
CN107592315A (zh) | 2018-01-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6787952B2 (ja) | 要求によって供給される鍵を用いたデータセキュリティ | |
EP3229397B1 (en) | Method for fulfilling a cryptographic request requiring a value of a private key | |
CN105553951B (zh) | 数据传输方法和装置 | |
CN107592315B (zh) | 用于加密传输数据的客户端、服务器、网络***及方法 | |
JP6613909B2 (ja) | 相互認証方法、認証装置および認証プログラム | |
CN104580189B (zh) | 一种安全通信*** | |
US10154018B2 (en) | Method and system for facilitating network joining | |
CN107733656A (zh) | 一种密码认证方法及装置 | |
CN108900471A (zh) | 用于传输数据的服务器、客户端、网络***及方法 | |
CN103546289B (zh) | 一种基于USBKey的安全传输数据的方法及*** | |
CN107251476A (zh) | 保密通信管理 | |
CN106487765B (zh) | 授权访问方法以及使用该方法的设备 | |
US8495383B2 (en) | Method for the secure storing of program state data in an electronic device | |
US20140122884A1 (en) | Decoupled cryptographic schemes using a visual channel | |
CN110798433B (zh) | 一种验证码校验方法及装置 | |
CN103701586A (zh) | 获取密钥的方法和装置 | |
JP2013115522A (ja) | リンク・アクセスの制御方法、プログラム及びシステム | |
CN115913672A (zh) | 电子档案加密传输方法、***、终端设备及计算机介质 | |
CN107425959A (zh) | 一种实现加密处理的方法、***、客户端及服务端 | |
JP4684714B2 (ja) | ファイル管理システム、及びプログラム | |
CN110912683B (zh) | 密码存储方法及装置、密码验证方法及装置 | |
WO2014206146A1 (zh) | 通讯录的更新方法及装置 | |
CN110932843B (zh) | 一种嵌入式***数据通讯加密方法 | |
WO2017107642A1 (zh) | 一种安全输入法的文本处理方法、装置和*** | |
JP6223907B2 (ja) | ワンストップ申請システム、ワンストップ申請方法およびプログラム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
CB02 | Change of applicant information | ||
CB02 | Change of applicant information |
Address after: Room 311501, Unit 1, Building 5, Courtyard 1, Futong East Street, Chaoyang District, Beijing 100102 Applicant after: Beijing Zhichuangyu Information Technology Co., Ltd. Address before: 100097 Jinwei Building 803, 55 Lanindichang South Road, Haidian District, Beijing Applicant before: Beijing Knows Chuangyu Information Technology Co.,Ltd. |
|
GR01 | Patent grant | ||
GR01 | Patent grant |