CN106685983A - 一种基于ssl协议的数据还原方法与装置 - Google Patents
一种基于ssl协议的数据还原方法与装置 Download PDFInfo
- Publication number
- CN106685983A CN106685983A CN201710026015.9A CN201710026015A CN106685983A CN 106685983 A CN106685983 A CN 106685983A CN 201710026015 A CN201710026015 A CN 201710026015A CN 106685983 A CN106685983 A CN 106685983A
- Authority
- CN
- China
- Prior art keywords
- client
- certificate
- server
- ssl
- 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.)
- Pending
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/08—Network architectures or network communication protocols for network security for authentication of entities
- H04L63/0823—Network architectures or network communication protocols for network security for authentication of entities using certificates
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/16—Implementing security features at a particular protocol layer
- H04L63/168—Implementing security features at a particular protocol layer above the transport layer
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/30—Network architectures or network communication protocols for network security for supporting lawful interception, monitoring or retaining of communications or communication related information
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0816—Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
- H04L9/0819—Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
- H04L9/0822—Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) using key encryption key
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3247—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3263—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving certificates, e.g. public key certificate [PKC] or attribute certificate [AC]; Public key infrastructure [PKI] arrangements
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3263—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving certificates, e.g. public key certificate [PKC] or attribute certificate [AC]; Public key infrastructure [PKI] arrangements
- H04L9/3268—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving certificates, e.g. public key certificate [PKC] or attribute certificate [AC]; Public key infrastructure [PKI] arrangements using certificate validation, registration, distribution or revocation, e.g. certificate revocation list [CRL]
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Technology Law (AREA)
- Computer And Data Communications (AREA)
Abstract
公开了一种基于SSL协议的数据还原方法与装置,所述方法包括:将SSL协议端口数据重定向至中间人模块;中间人模块与所述SSL协议端口数据对应的客户端、服务器分别建立SSL连接,并在建立SSL连接后根据获取的通信秘钥对SSL加密数据进行解密;对解密后的数据进行内容提取;其中,在建立SSL连接过程中,中间人模块根据服务器的原始证书生成自签名伪证书、并将所述自签名伪证书发送至客户端。本发明无需在客户端预先安装“中间人”伪造的证书,而是在通信过程中生成一张与原始证书相似的伪证书,从而极大地提高了证书被客户端接受的概率,为网络监管部门更好、更全面的监控网络数据提供了保障。
Description
技术领域
本发明涉及互联网安全技术领域,尤其涉及一种基于SSL协议的数据还原方法与装置。
背景技术
基于互联网的电子商务、网上银行、社交网络等新兴应用,极大地方便了人们的日常生活。但是,这些应用在使用时往往会涉及用户的隐私、财产信息。因此,它们对网络通信的安全性提出了更高的要求。
传统的HTTP协议由于采用明文形式传输数据,不能验证通信双方的身份、无法识别出传输的数据是否被篡改,因此无法满足新兴应用对数据安全性方面的要求。Netscape公司研发的SSL(安全套接字协议),利用数据加密、身份验证和消息完整性检查机制,为网络上数据传输的安全性提供了保证。SSL可以为HTTP提供安全连接,从而在很大程度上改善了网络的安全性问题,但同时使得网络监管部门也无法对网络传播的非法信息进行有效鉴别和拦截。
目前,针对SSL协议漏洞的破解方法主要是“中间人”破解法,该方法通过会话劫持使攻击者处在客户端和服务器的中间位置,并在通信时使中间人服务器对服务器端冒充客户端、对客户端冒充服务器端,以劫持通信双方的交互数据。具体来说,现有的“中间人”破解法主要包括两种:第一种是利用伪造X.509证书的中间人攻击,第二种是利用HTTP与HTTPS之间转换漏洞的中间人攻击。在第一种方法中,需要预先在客户端的机器上安装中间人伪造的证书,而这一过程需要用户的主动信任和安装,因此该方法的覆盖用户量不多,很难大规模应用。在第二种方法中,无需安装证书,因此该方法比较容易推广使用。但是,一旦用户在浏览器的地址栏中指定使用HTTPS协议传输,该方法就变得无能为力。此外,在服务器端对客户端身份进行验证的情况下,以上两种方法都不能实现SSL协议的破解。
针对现有的SSL协议破解方法存在的缺陷,亟需一种新的解决方案,以能够让客户端在无感知的情况下安装“中间人”伪造的证书,从而为网络监管部门更好、更全面的监控网络数据提供了保障。
发明内容
本发明的目的在于提出一种基于SSL协议的数据还原方法、装置与系统,以能够让客户端在无感知的情况下安装“中间人”伪造的证书,进而为网络监管部门更好、更全面的监控网络数据提供保障。
本发明提供了一种基于SSL协议的数据还原方法,包括:
S1、将SSL协议端口数据重定向至中间人模块;
S2、中间人模块与所述SSL协议端口数据对应的客户端、服务器分别建立SSL连接,并在建立SSL连接后根据获取的通信秘钥对SSL加密数据进行解密;
S3、对解密后的数据进行内容提取;
其中,在建立SSL连接过程中,中间人模块根据服务器的原始证书生成自签名伪证书、并将所述自签名伪证书发送至客户端。
其中,中间人模块与客户端、服务器建立SSL连接,包括:
S21、与客户端、服务器分别进行SSL会话协商;其中,所述SSL会话协商的内容包括:会话采用的SSL版本与加密套件;
S22、根据接收的服务器的原始证书生成自签名伪证书,并将所述自签名伪证书发送至客户端;
S23、若所述自签名伪证书通过客户端验证,与客户端、服务器分别进行通信秘钥交互;
S24、与客户端、服务器分别进行MAC值验证。
其中,步骤S21包括:接收客户端发送的Client Hello消息,并向服务器发送Client Hello消息;其中,客户端发送的Client Hello消息包括:客户端支持的SSL版本与加密套件;接收服务器发送的Server Hello消息,从所述Server Hello消息中解析出会话采用的SSL版本与加密套件,并将向客户端发送Server Hello消息。
其中,步骤S22包括:接收服务器发送的Certificate消息;从服务器发送的Certificate消息中解析出服务器的原始证书,并根据所述原始证书生成自签名伪证书;将所述自签名伪证书通过Certificate消息发送至客户端。
其中,步骤S23包括:若所述自签名伪证书通过客户端验证,接收客户端发送的Client Key Exchange消息;其中,所述客户端发送的Client Key Exchange消息包括:利用伪证书的公钥加密的预主秘钥;利用与伪证书的公钥匹配的私钥从客户端发送的ClientKey Exchange消息中解析出预主秘钥,并根据预主秘钥生成通讯秘钥;利用原始证书的公钥对所述预主秘钥加密,并将加密后的预主秘钥通过Client Key Exchange消息发送至服务器。
其中,步骤S24包括:接收客户端发送的Finished消息,并根据所述Finished消息进行Mac值验证;接收服务器发送的Finished消息,并根据所述Finished消息进行Mac值验证;并且,向客户端、服务器分别发送Finished消息。
其中,在步骤S21之前,中间人模块与客户端、服务器建立SSL连接,还包括:与客户端、服务器分别建立TCP连接。
优选的,中间人模块与客户端、服务器建立SSL连接,还包括:中间人模块被服务器进行身份验证,具体为:接收服务器发送的Certificate Request消息;向服务器发送Certificate消息和Certificate Verify消息;其中,向服务器发送的Certificate消息包括:服务器的原始证书;向服务器发送的Certificate Verify消息包括:用所述原始证书的公钥加密后的哈希值;
以及,中间人模块对客户端进行身份验证,具体为:向客户端发送CertificateRequest消息;接收客户端发送的Certificate消息和Certificate Verify消息;根据Certificate消息和Certificate Verify消息对客户端的身份进行验证;其中,客户端发送的Certificate消息包括:中间人模块的自签名伪证书;客户端发送的Certificate Verify消息包括:用所述自签名伪证书的公钥加密后的哈希值。
本发明还提供了一种基于SSL协议的数据还原装置,包括:
重定向模块,用于将SSL协议端口数据重定向至中间人模块;
中间人模块,用于与所述SSL协议端口数据对应的客户端、服务器分别建立SSL连接,并在建立SSL连接后根据获取的通信秘钥对SSL加密数据进行解密;其中,在建立SSL连接过程中,中间人模块根据服务器的原始证书生成自签名伪证书、并将所述自签名伪证书发送至客户端;
数据提取模块,用于对解密后的数据进行内容提取。
其中,中间人模块包括:
会话协商单元,用于与客户端、服务器进行SSL会话协商;其中,所述SSL会话协商的内容包括:会话采用的SSL版本与加密套件;
证书生成单元,用于根据接收的服务器的原始证书生成自签名伪证书,并将所述自签名伪证书发送至客户端;
秘钥交互单元,用于在所述自签名伪证书通过客户端验证时,与客户端、服务器进行通信秘钥交互;
Mac值验证单元,用于与客户端、服务器进行MAC值验证。
其中,所述会话协商单元与客户端、服务器进行SSL会话协商,具体包括:接收客户端发送的Client Hello消息,并向服务器发送Client Hello消息;其中,所述Client Hello消息包括:客户端支持的SSL版本与加密套件;从服务器发送的Server Hello消息中解析出会话采用的SSL版本与加密套件,并向客户端发送Server Hello消息。
其中,所述证书生成单元生成自签名伪证书,并将所述自签名伪证书发送至客户端,具体包括:接收服务器发送的Certificate消息;从服务器发送的Certificate消息中解析出服务器的原始证书,并根据所述原始证书生成自签名伪证书;将所述自签名伪证书通过Certificate消息发送至客户端;接收服务器发送的Server Hello Done消息,并向客户端发送Server Hello Done消息。
其中,所述秘钥交互单元与客户端、服务器进行通信秘钥交互,具体包括:接收客户端发送的Client Key Exchange消息;其中,所述客户端发送的Client Key Exchange消息包括:利用伪证书的公钥加密的预主秘钥;利用与伪证书的公钥匹配的私钥从客户端发送的Client Key Exchange消息中解析出预主秘钥,并根据预主秘钥生成通讯秘钥;利用原始证书的公钥对所述预主秘钥加密,并将加密后的预主秘钥通过Client Key Exchange消息发送至服务器。
其中,Mac值验证单元与客户端、服务器进行MAC值验证,具体包括:接收客户端发送的Finished消息,并根据所述Finished消息进行Mac值验证;接收服务器发送的Finished消息,并根据所述Finished消息进行Mac值验证;并且,向客户端、服务器分别发送Finished消息。
其中,所述中间人模块还包括:TCP连接响应单元,用于与客户端、服务器建立TCP连接。
优选的,所述中间人模块还包括:
被动身份验证单元,用于被服务器进行身份验证,具体为:接收服务器发送的Certificate Request消息;向服务器发送Certificate消息和Certificate Verify消息;其中,向服务器发送的Certificate消息包括:服务器的原始证书;向服务器发送的Certificate Verify消息包括:用所述原始证书的公钥加密后的哈希值;
主动身份验证单元,用于对客户端进行身份验证,具体为:向客户端发送Certificate Request消息;接收客户端发送的Certificate消息和Certificate Verify消息;根据Certificate消息和Certificate Verify消息对客户端的身份进行验证;其中,客户端发送的Certificate消息包括:中间人模块的自签名伪证书;客户端发送的Certificate Verify消息包括:用所述自签名伪证书的公钥加密后的哈希值。
从以上技术方案可知,在中间人模块与客户端、服务器通信过程中,通过生成一张与服务器的原始证书相似的自签名证书,极大提高了证书被客户端接受的概率,为中间人模块的大规模使用提供了可行性的支撑,进而为网络监管部门更好、更全面的监控网络数据提供了保障。进一步的,在服务器需要验证客户端身份的情况下,中间人模块可将保存的原始证书发送给服务器以完成验证,从而提高了中间人模块的适用范围。
附图说明
通过以下参照附图而提供的具体实施方式部分,本发明的特征和优点将变得更加容易理解,在附图中:
图1是本发明实施例的基于SSL协议的数据还原方法流程示意图;
图2是本发明一个实施例中的中间人模块与客户端建立SSL连接的流程示意图;
图3是本发明另一实施例中客户端、中间人模块、服务器建立SSL连接的流程示意图;
图4是本发明实施例中的基于SSL协议的数据还原装置的组成框图;
图5是本发明实施例中的中间人模块的组成框图;
1、客户端;2、数据还原装置;3、服务器;21、重定向模块;22、中间人模块;23、数据提取模块;221、会话协商单元;222、证书生成单元;223、秘钥交互单元;224、Mac值验证单元。
具体实施方式
下面参照附图对本发明的示例性实施方式进行详细描述。对示例性实施方式的描述仅仅是出于示范目的,而绝不是对本发明及其应用或用法的限制。
针对现有的SSL协议破解方法存在的不足,本发明的发明人提出了一种新的解决方案。本发明的主要思路是:通过中间人模块与客户端、服务器进行握手交互;在握手交互的过程中,根据服务器的原始证书生成一张与其相似的自签名伪证书,并将自签名伪证书发送至客户端。由于该伪证书是在报文交互过程中生成的、且带有数字签名的证书,因此易于获取用户的信任,从而极大地提高了伪证书被接受的概率,为中间人模块监控客户端、服务器的交互数据提供了可靠支撑,进而为网络监管部门更好、更全面的监控网络数据提供了保障。
下面结合附图和具体实施例对本发明的技术方案进行详细说明。图1示出了本发明实施例的基于SSL协议的数据还原方法流程示意图。本发明的数据还原方法涉及的架构包括:客户端、数据还原装置、服务器。其中,数据还原装置又包括:重定向模块、中间人模块、数据提取模块。图1所示的方法流程主要是从数据还原装置一侧进行描述的,其具体包括以下步骤:
在步骤S1中,将SSL协议端口数据重定向至中间人模块。
具体的,可在中间人模块开启以后,自动添加防火墙的重定向规则,从而将SSL协议的相关端口数据重定向至中间人模块的监听端口。例如,可将网络主干路上443端口的数据重定向至中间人模块的443端口。
在步骤S2中,中间人模块与所述SSL协议端口数据对应的客户端、服务器进行握手交互;其中,在握手交互过程中,中间人模块根据服务器的原始证书生成自签名伪证书、并将所述自签名伪证书发送至客户端;在所述自签名伪证书通过客户端的验证、且中间人模块与客户端、服务器握手成功以后,中间人模块还根据获取的通信秘钥对SSL加密数据进行解密。
图2给出了本发明一个实施例中的中间人模块与客户端、服务器建立SSL连接的主要流程。其中,图2所示的流程主要是从中间人模块一侧进行描述的,其具体包括以下步骤:
步骤S20、与客户端、服务器分别建立TCP连接。
具体的,中间人模块接收客户端发起的TCP连接请求,并向客户端返回TCP连接确认信息。同时,中间人模块以客户端的身份向服务器发起TCP连接请求,并等待接收服务器发送的TCP连接确认信息。
步骤S21、与客户端、服务器分别进行SSL会话协商;其中,所述SSL会话协商的内容包括:会话采用的SSL版本与加密套件。
具体的,中间人模块接收客户端发送的Client Hello消息,并向服务器发送Client Hello消息。然后,中间人模块接收服务器发送的Server Hello消息,从所述ServerHello消息中解析出会话采用的SSL版本与加密套件,并向客户端发送Server Hello消息。其中,所述Client Hello消息包括:客户端支持的SSL版本与加密套件,加密套件又包括:加密算法、秘钥交换算法、MAC算法等信息。所述Server Hello消息包括:服务器确定的本次会话采用的SSL版本与加密套件。
步骤S22、根据接收的服务器的原始证书生成自签名伪证书,并将所述自签名伪证书发送至客户端。
具体的,中间人模块接收服务器发送的Certificate消息,从服务器发送的Certificate消息中解析出服务器的原始证书,并根据所述原始证书的主题名、版本、序列号、有效期等关键信息生成一张与其极为相似的自签名伪证书,并将所述自签名伪证书通过Certificate消息发送至客户端。
另外,在具体实施时,中间人模块在接收Certificate消息的同时,还会接收到服务器发送的Server Hello Done消息。同样的,中间人模块会以服务器的身份向客户端发送Server Hello Done消息。
步骤S23、若所述自签名伪证书通过客户端验证,与客户端、服务器分别进行通信秘钥交互。
当自签名伪证书到达客户端后,客户端的浏览器会提示用户是否接受这个自签名伪证书。由于该自签名伪证书是根据原始证书伪造的,用户很可能会接受这个自签名伪证书。当用户接受这个自签名伪证书之后,客户端利用自签名伪证书的公钥加密客户端随机生成的预主秘钥,并通过Client Key Exchange消息发送至中间人模块
中间人模块在接收客户端发送的Client Key Exchange消息之后,利用与自签名伪证书的公钥匹配的私钥从Client Key Exchange消息中解析出预主秘钥,并根据预主秘钥生成通讯秘钥。并且,中间人模块利用原始证书的公钥对预主秘钥加密,并将加密后的预主秘钥通过Client Key Exchange消息发送至服务器。
服务器在接收到中间人模块发送的Client Key Exchange消息之后,会利用与原始证书的公钥匹配的私钥从Client Key Exchange消息中解析出预主秘钥,并根据预主秘钥生成通讯秘钥。
步骤S24、与客户端、服务器分别进行MAC值验证。
在该步骤中,客户端、服务器会分别向中间人模块发起MAC值验证,中间人模块会以服务器的身份向客户端发起MAC值验证,并且,中间人模块会以客户端的身份向服务器发起MAC值验证。在客户端向中间人模块发起的MAC值验证过程中:中间人模块接收客户端发送的Finished消息,并根据Finished消息进行Mac值验证。其中,中间人模块根据Finished消息进行Mac值验证具体为:中间人模块从客户端发送的Finished消息中解析出MAC值,并将解析出的MAC值与计算出来的MAC值进行比较。如果二者相同,则MAC值验证成功。类似的,在服务器向中间人模块发起的MAC值验证过程中:中间人模块接收服务器发送的Finished消息,并根据所述Finished消息进行Mac值验证。此外,在中间人模块向客户端发起的MAC值验证过程中:向客户端发送Finished消息;在中间人模块向服务器发起的MAC值验证过程中:向服务器发送Finished消息。
另外,在具体实施时,中间人模块在接收到客户端、服务器发送的Finished消息时,还会收到客户端、服务器发送的Change Cipher Spec消息。同样的,中间人模块会以服务器的身份向客户端发送Change Cipher Spec消息,以通知客户端后续报文将采用协商好的通讯秘钥、加密套件进行加密。以及,中间人模块会以客户端的身份向服务器发送ChangeCipher Spec消息,以通知服务器后续报文将采用协商好的通讯秘钥、加密套件进行加密。
在步骤S3中,对解密后的数据进行内容提取。
具体的,在中间人模块对加密数据进行解密以后,可对解密后的数据进行重组、分类、并根据与之相匹配的特征值模板进行内容提取,并按照数据库的格式要求将提取出的内容保存至文件中。
图3示出了本发明另一实施例中客户端、中间人模块、服务器建立SSL连接的流程示意图。图3与图2所示的流程大致相同,其不同之处主要在于,图3还包括:服务器对中间人模块进行身份验证的流程,以及中间人模块对客户端进行身份验证的流程。并且,在该实施例中,中间人模块在接收到服务器发送的原始证书之后,除了生成自签名伪证书以外,还要将原始证书保存在内存中。在具体实施时,中间人模块可采用Map数据结构存储原始证书。基于Map数据结构的特性,在中间人模块需要原始证书与服务器交互时,能快速的获取原始证书。
具体的,服务器对中间人模块进行身份验证的流程包括:
A1、服务器向中间人模块发送Certificate Request消息,以请求中间人模块发送证书。
A2、中间人模块接收服务器发送的Certificate Request消息,并向服务器发送Certificate消息和Certificate Verify消息;其中,向服务器发送的Certificate消息包括:服务器的原始证书;向服务器发送的Certificate Verify消息包括:用所述原始证书的公钥加密后的哈希值。
A3、服务器接收到Certificate消息和Certificate Verify消息之后,从Certificate消息中解析出原始证书的公钥,并利用解析出的公钥解密CertificateVerify消息,然后将从Certificate Verify消息的解析结果与计算出的握手消息的哈希值进行比较,如果二者相同,则中间人伪造的客户端的身份验证成功。
具体的,中间人模块对客户端进行身份验证的流程包括:
B1、中间人模块向客户端发送Certificate Request消息,以请求客户端发送证书。
B2、客户端接收中间人模块发送的Certificate Request消息,并向中间人模块发送Certificate消息和Certificate Verify消息。其中,客户端发送的Certificate消息包括:中间人模块的自签名伪证书;客户端发送的Certificate Verify消息包括:用所述自签名伪证书的公钥加密后的哈希值。
B3、接收客户端发送的Certificate消息和Certificate Verify消息,根据Certificate消息和Certificate Verify消息对客户端的身份进行验证。
在本发明中,通过SSL端口数据重定向、建立中间人模块与客户端、服务器之间的SSL连接、对加密数据进行解密、并对解密后的数据进行内容提取等步骤,能够对SSL协议的数据进行还原,便于网络监管部门更好、更全面的监控网络,保障网络安全。进一步的,本发明通过在报文交互过程中生成一张与服务器的原始证书相似的自签名证书,极大提高了证书被客户端接受的概率,为中间人模块的大规模使用提供了可行性的支撑。进一步的,通过将服务器的原始证书保存在内存中,可以在服务器需要验证“客户端”身份的情况下,将原始证书发送给服务器进行验证,从而提高了该数据还原方法的适用性。
下面结合图4、图5对本发明实施例中的基于SSL协议的数据还原装置、系统进行详细说明。如图4所示,该数据还原装置具体包括:重定向模块21、中间人模块22、数据提取模块23。
重定向模块21,用于将SSL协议端口数据重定向至中间人模块22。
中间人模块22,用于与所述SSL协议端口数据对应的客户端1、服务器3分别建立SSL连接,并在建立SSL连接后根据获取的通信秘钥对SSL加密数据进行解密。其中,在建立SSL连接过程中,中间人模块22根据服务器3的原始证书生成自签名伪证书、并将所述自签名伪证书发送至客户端1。
数据提取模块23,用于对中间人模块22解密后的数据进行内容提取。
图5示出了本发明一个实施例中的中间人模块的组成框图。从图5可见,中间人模块22包括:会话协商单元221、证书生成单元222、秘钥交互单元223、Mac值验证单元224。另外,该实施例中的中间人模块还包括:TCP连接响应单元(图中未示出)。TCP连接相应单元用于与客户端、服务器建立TCP连接。
会话协商单元221,用于与客户端1、服务器3进行SSL会话协商。其中,所述SSL会话协商的内容包括:会话采用的SSL版本与加密套件。在具体实施时,会话协商单元221与客户端1、服务器3进行SSL会话协商,包括:接收客户端1发送的Client Hello消息,并向服务器3发送Client Hello消息;从服务器3发送的Server Hello消息中解析出会话采用的SSL版本与加密套件,并向客户端1发送Server Hello消息。其中,客户端发送的Client Hello消息包括:客户端支持的SSL版本与加密套件。
证书生成单元222,用于根据接收的服务器的原始证书生成自签名伪证书,并将所述自签名伪证书发送至客户端1。在具体实施时,证书生成单元222生成自签名伪证书,并将所述自签名伪证书发送至客户端,包括:接收服务器发送的Certificate消息;从服务器发送的Certificate消息中解析出服务器的原始证书,并根据所述原始证书生成自签名伪证书;将所述自签名伪证书通过Certificate消息发送至客户端;接收服务器发送的ServerHello Done消息,并向客户端发送Server Hello Done消息。
秘钥交互单元223,用于在所述自签名伪证书通过客户端验证时,与客户端、服务器进行通信秘钥交互。在具体实施时,秘钥交互单元与客户端、服务器进行通信秘钥交互,包括:接收客户端发送的Client Key Exchange消息;其中,所述客户端发送的Client KeyExchange消息包括:利用伪证书的公钥加密的预主秘钥;利用与伪证书的公钥匹配的私钥从客户端发送的Client Key Exchange消息中解析出预主秘钥,并根据预主秘钥生成通讯秘钥;利用原始证书的公钥对所述预主秘钥加密,并将加密后的预主秘钥通过Client KeyExchange消息发送至服务器。
Mac值验证单元224,用于与客户端1、服务器3进行MAC值验证。在具体实施时,Mac值验证单元与客户端、服务器进行MAC值验证,包括:接收客户端发送的Change CipherSpec消息,并向服务器发送Change Cipher Spec消息;接收客户端发送的Finished消息,并根据所述Finished消息进行Mac值验证,并向服务器发送Finished消息;接收服务器发送的Change Cipher Spec消息,并向客户端发送Change Cipher Spec消息;接收服务器发送的Finished消息,并根据所述Finished消息进行Mac值验证,并向客户端发送Finished消息。需要指出的是,在具体实施时,Mac值验证单元224在接收到客户端、服务器发送的Finished消息时,还会收到客户端、服务器发送的Change Cipher Spec消息。同样的,Mac值验证单元224会向客户端发送Change Cipher Spec消息,以通知客户端后续报文将采用协商好的通讯秘钥、加密套件进行加密。以及,Mac值验证单元224会向服务器发送Change Cipher Spec消息,以通知服务器后续报文将采用协商好的通讯秘钥、加密套件进行加密。
在本发明的另一个实施例中,考虑到某些情况下服务器需要对客户端的身份进行验证,中间人模块除了包括图5所示的结构以外,还包括:被动身份验证单元、主动身份验证单元。另外,在该实施例中,证书生成模块在接收到服务器的原始证书之后,除了根据原始证书生成自签名伪证书之后,还要将原始证书保存在内存中,以便在服务器需要验证中间人模块的身份时,将保存的原始证书发送给服务器进行验证。
被动身份验证单元,用于被服务器进行身份验证,具体为:被动身份验证单元接收服务器发送的Certificate Request消息,并向服务器发送Certificate消息和Certificate Verify消息。其中,向服务器发送的Certificate消息包括:服务器的原始证书;向服务器发送的Certificate Verify消息包括:用所述原始证书的公钥加密后的哈希值。
主动身份验证单元,用于对客户端进行身份验证,具体为:主动身份验证单元向客户端发送Certificate Request消息;接收客户端发送的Certificate消息和CertificateVerify消息,并根据Certificate消息和Certificate Verify消息对客户端的身份进行验证。其中,客户端发送的Certificate消息包括:中间人模块的自签名伪证书;客户端发送的Certificate Verify消息包括:用所述自签名伪证书的公钥加密后的哈希值。
在本发明中,通过重定向模块、中间人模块、数据提取模块构成的数据还原装置,能够对SSL协议加密的数据进行还原,便于网络监管部门更好、更全面的监控网络,保障网络安全。进一步的,本发明通过在报文交互过程中生成一张与服务器的原始证书相似的自签名证书,极大提高了证书被客户端接受的概率,为中间人模块的大规模使用提供了可行性的支撑。进一步的,通过将服务器的原始证书保存在内存中,可以在服务器需要验证“客户端”身份的情况下,将原始证书发送给服务器进行验证,从而提高了该数据还原方法的适用性。
虽然参照示例性实施方式对本发明进行了描述,但是应当理解,本发明并不局限于文中详细描述和示出的具体实施方式,在不偏离权利要求书所限定的范围的情况下,本领域技术人员可以对所述示例性实施方式做出各种改变。
Claims (10)
1.一种基于SSL协议的数据还原方法,其特征在于,所述方法包括:
S1、将SSL协议端口数据重定向至中间人模块;
S2、中间人模块与所述SSL协议端口数据对应的客户端、服务器分别建立SSL连接,并在建立SSL连接后根据获取的通信秘钥对SSL加密数据进行解密;
S3、对解密后的数据进行内容提取;
其中,在建立SSL连接过程中,中间人模块根据服务器的原始证书生成自签名伪证书、并将所述自签名伪证书发送至客户端。
2.如权利要求1所述的方法,其特征在于,中间人模块与客户端、服务器建立SSL连接,包括:
S21、与客户端、服务器分别进行SSL会话协商;其中,所述SSL会话协商的内容包括:会话采用的SSL版本与加密套件;
S22、根据接收的服务器的原始证书生成自签名伪证书,并将所述自签名伪证书发送至客户端;
S23、若所述自签名伪证书通过客户端验证,与客户端、服务器分别进行通信秘钥交互;
S24、与客户端、服务器分别进行MAC值验证。
3.如权利要求2所述的方法,其特征在于,步骤S21包括:
接收客户端发送的Client Hello消息,并将向服务器发送Client Hello消息;其中,所述Client Hello消息包括:客户端支持的SSL版本与加密套件;
接收服务器发送的Server Hello消息,从所述Server Hello消息中解析出会话采用的SSL版本与加密套件,并向客户端发送Server Hello消息。
4.如权利要求2所述的方法,其特征在于,步骤S22包括:
接收服务器发送的Certificate消息;从服务器发送的Certificate消息中解析出服务器的原始证书,并根据所述原始证书生成自签名伪证书;将所述自签名伪证书通过Certificate消息发送至客户端。
5.如权利要求2所述的方法,其特征在于,步骤S23包括:
若所述自签名伪证书通过客户端验证,接收客户端发送的Client Key Exchange消息;其中,所述客户端发送的Client Key Exchange消息包括:利用伪证书的公钥加密的预主秘钥;
利用与伪证书的公钥匹配的私钥从客户端发送的Client Key Exchange消息中解析出预主秘钥,并根据预主秘钥生成通讯秘钥;
利用原始证书的公钥对所述预主秘钥加密,并将加密后的预主秘钥通过Client KeyExchange消息发送至服务器。
6.一种基于SSL协议的数据还原装置,其特征在于,所述装置包括:
重定向模块,用于将SSL协议端口数据重定向至中间人模块;
中间人模块,用于与所述SSL协议端口数据对应的客户端、服务器分别建立SSL连接,并在建立SSL连接后根据获取的通信秘钥对SSL加密数据进行解密;其中,在建立SSL连接过程中,中间人模块根据服务器的原始证书生成自签名伪证书、并将所述自签名伪证书发送至客户端;
数据提取模块,用于对解密后的数据进行内容提取。
7.如权利要求6所述的装置,其特征在于,中间人模块包括:
会话协商单元,用于与客户端、服务器进行SSL会话协商;其中,所述SSL会话协商的内容包括:会话采用的SSL版本与加密套件;
证书生成单元,用于根据接收的服务器的原始证书生成自签名伪证书,并将所述自签名伪证书发送至客户端;
秘钥交互单元,用于在所述自签名伪证书通过客户端验证时,与客户端、服务器进行通信秘钥交互;
Mac值验证单元,用于与客户端、服务器进行MAC值验证。
8.如权利要求7所述的装置,其特征在于,所述会话协商单元与客户端、服务器进行SSL会话协商,具体包括:
接收客户端发送的Client Hello消息,并向服务器发送Client Hello消息;其中,所述Client Hello消息包括:客户端支持的SSL版本与加密套件;
从服务器发送的Server Hello消息中解析出会话采用的SSL版本与加密套件,并向客户端发送Server Hello消息。
9.如权利要求7所述的装置,其特征在于,所述证书生成单元生成自签名伪证书,并将所述自签名伪证书发送至客户端,具体包括:
接收服务器发送的Certificate消息;从服务器发送的Certificate消息中解析出服务器的原始证书,并根据所述原始证书生成自签名伪证书;将所述自签名伪证书通过Certificate消息发送至客户端;
接收服务器发送的Server Hello Done消息,并向客户端发送Server Hello Done消息。
10.如权利要求7所述的装置,其特征在于,所述秘钥交互单元与客户端、服务器进行通信秘钥交互,具体包括:
接收客户端发送的Client Key Exchange消息;其中,所述客户端发送的Client KeyExchange消息包括:利用伪证书的公钥加密的预主秘钥;
利用与伪证书的公钥匹配的私钥从客户端发送的Client Key Exchange消息中解析出预主秘钥,并根据预主秘钥生成通讯秘钥;
利用原始证书的公钥对所述预主秘钥加密,并将加密后的预主秘钥通过Client KeyExchange消息发送至服务器。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710026015.9A CN106685983A (zh) | 2017-01-13 | 2017-01-13 | 一种基于ssl协议的数据还原方法与装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710026015.9A CN106685983A (zh) | 2017-01-13 | 2017-01-13 | 一种基于ssl协议的数据还原方法与装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN106685983A true CN106685983A (zh) | 2017-05-17 |
Family
ID=58860639
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710026015.9A Pending CN106685983A (zh) | 2017-01-13 | 2017-01-13 | 一种基于ssl协议的数据还原方法与装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106685983A (zh) |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107592315A (zh) * | 2017-09-19 | 2018-01-16 | 北京知道创宇信息技术有限公司 | 用于加密传输数据的客户端、服务器、网络系统及方法 |
CN109218364A (zh) * | 2017-07-04 | 2019-01-15 | 武汉安天信息技术有限责任公司 | 加密流量数据的监控方法、代理服务器端、待监控客户端和监控系统 |
CN109831311A (zh) * | 2019-03-21 | 2019-05-31 | 深圳市网心科技有限公司 | 一种服务器验证方法、系统、用户终端及可读存储介质 |
CN110768940A (zh) * | 2018-07-27 | 2020-02-07 | 深信服科技股份有限公司 | 基于https协议密文数据管控方法、系统及相关装置 |
CN111131215A (zh) * | 2019-12-18 | 2020-05-08 | 深圳市任子行科技开发有限公司 | 一种无感知审计部署方法及装置 |
CN111600777A (zh) * | 2020-05-20 | 2020-08-28 | 国网浙江省电力有限公司电力科学研究院 | 一种基于vpn的网络流量收集方法及系统 |
CN113810396A (zh) * | 2021-09-07 | 2021-12-17 | 北京明朝万达科技股份有限公司 | 一种数据管控方法、装置、电子设备及存储介质 |
CN114139192A (zh) * | 2022-02-07 | 2022-03-04 | 奇安信科技集团股份有限公司 | 加密流量处理方法、装置、电子设备、介质及程序 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060143442A1 (en) * | 2004-12-24 | 2006-06-29 | Smith Sander A | Automated issuance of SSL certificates |
CN104811421A (zh) * | 2014-01-24 | 2015-07-29 | 中辉世纪传媒发展有限公司 | 基于数字版权管理的安全通信方法及装置 |
-
2017
- 2017-01-13 CN CN201710026015.9A patent/CN106685983A/zh active Pending
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060143442A1 (en) * | 2004-12-24 | 2006-06-29 | Smith Sander A | Automated issuance of SSL certificates |
CN104811421A (zh) * | 2014-01-24 | 2015-07-29 | 中辉世纪传媒发展有限公司 | 基于数字版权管理的安全通信方法及装置 |
Non-Patent Citations (1)
Title |
---|
好好学习_天天向上: "SSL中间人监测关键技术 - - - SSL会话劫持", 《HTTPS://BLOG.CSDN.NET/CHENG_FANGFANG/ARTICLE/DETAILS/50739935》 * |
Cited By (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109218364A (zh) * | 2017-07-04 | 2019-01-15 | 武汉安天信息技术有限责任公司 | 加密流量数据的监控方法、代理服务器端、待监控客户端和监控系统 |
CN107592315A (zh) * | 2017-09-19 | 2018-01-16 | 北京知道创宇信息技术有限公司 | 用于加密传输数据的客户端、服务器、网络系统及方法 |
CN107592315B (zh) * | 2017-09-19 | 2019-11-12 | 北京知道创宇信息技术股份有限公司 | 用于加密传输数据的客户端、服务器、网络系统及方法 |
CN110768940A (zh) * | 2018-07-27 | 2020-02-07 | 深信服科技股份有限公司 | 基于https协议密文数据管控方法、系统及相关装置 |
CN110768940B (zh) * | 2018-07-27 | 2022-03-22 | 深信服科技股份有限公司 | 基于https协议密文数据管控方法、系统、代理服务器及存储介质 |
CN109831311A (zh) * | 2019-03-21 | 2019-05-31 | 深圳市网心科技有限公司 | 一种服务器验证方法、系统、用户终端及可读存储介质 |
CN109831311B (zh) * | 2019-03-21 | 2022-04-01 | 深圳市网心科技有限公司 | 一种服务器验证方法、系统、用户终端及可读存储介质 |
CN111131215A (zh) * | 2019-12-18 | 2020-05-08 | 深圳市任子行科技开发有限公司 | 一种无感知审计部署方法及装置 |
CN111600777A (zh) * | 2020-05-20 | 2020-08-28 | 国网浙江省电力有限公司电力科学研究院 | 一种基于vpn的网络流量收集方法及系统 |
CN113810396A (zh) * | 2021-09-07 | 2021-12-17 | 北京明朝万达科技股份有限公司 | 一种数据管控方法、装置、电子设备及存储介质 |
CN114139192A (zh) * | 2022-02-07 | 2022-03-04 | 奇安信科技集团股份有限公司 | 加密流量处理方法、装置、电子设备、介质及程序 |
CN114139192B (zh) * | 2022-02-07 | 2022-07-05 | 奇安信科技集团股份有限公司 | 加密流量处理方法、装置、电子设备、介质及程序 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111083131B (zh) | 一种用于电力物联网感知终端轻量级身份认证的方法 | |
CN110708170B (zh) | 一种数据处理方法、装置以及计算机可读存储介质 | |
CN106685983A (zh) | 一种基于ssl协议的数据还原方法与装置 | |
CN103338215B (zh) | 基于国密算法建立tls通道的方法 | |
CN109347809B (zh) | 一种面向自主可控环境下的应用虚拟化安全通信方法 | |
CN104702611B (zh) | 一种保护安全套接层会话密钥的设备及方法 | |
CN103118027B (zh) | 基于国密算法建立tls通道的方法 | |
CN103763356B (zh) | 一种安全套接层连接的建立方法、装置及系统 | |
CN108111301A (zh) | 基于后量子密钥交换实现ssh协议的方法及其系统 | |
CN104735058B (zh) | 一种基于安全协议ssl的加密方法及系统 | |
CN107105060A (zh) | 一种实现电动汽车信息安全的方法 | |
JP2016082597A (ja) | セキュアセッションの確立と暗号化データ交換のためのコンピュータ利用システム及びコンピュータ利用方法 | |
CN103905384B (zh) | 基于安全数字证书的嵌入式终端间会话握手的实现方法 | |
CN108400867A (zh) | 一种基于公钥加密体制的认证方法 | |
CN107040513A (zh) | 一种可信访问认证处理方法、用户终端和服务端 | |
CN104468126B (zh) | 一种安全通信系统及方法 | |
CN103684798B (zh) | 一种用于分布式用户服务间认证方法 | |
CN108494811A (zh) | 数据传输安全认证方法及装置 | |
CN106453431B (zh) | 基于pki实现互联网系统间认证的方法 | |
CN107508847A (zh) | 一种连接建立方法、装置和设备 | |
CN102811224A (zh) | 一种ssl/tls连接的实现方法、装置及系统 | |
CN112637136A (zh) | 加密通信方法及系统 | |
CN102811225B (zh) | 一种ssl中间代理访问web资源的方法及交换机 | |
TW201537937A (zh) | 統一身份認證平臺及認證方法 | |
CN102868531A (zh) | 一种网络交易认证系统和网络交易认证方法 |
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 | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20170517 |