CN109802928A - 一种ssl/tls代理方法、装置、设备及存储介质 - Google Patents

一种ssl/tls代理方法、装置、设备及存储介质 Download PDF

Info

Publication number
CN109802928A
CN109802928A CN201711145579.0A CN201711145579A CN109802928A CN 109802928 A CN109802928 A CN 109802928A CN 201711145579 A CN201711145579 A CN 201711145579A CN 109802928 A CN109802928 A CN 109802928A
Authority
CN
China
Prior art keywords
rule
ssl
server
tls
proxy
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.)
Granted
Application number
CN201711145579.0A
Other languages
English (en)
Other versions
CN109802928B (zh
Inventor
宋科
李华光
刘西亮
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
ZTE Corp
Original Assignee
ZTE Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by ZTE Corp filed Critical ZTE Corp
Priority to CN201711145579.0A priority Critical patent/CN109802928B/zh
Publication of CN109802928A publication Critical patent/CN109802928A/zh
Application granted granted Critical
Publication of CN109802928B publication Critical patent/CN109802928B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明公开了一种SSL/TLS代理方法、装置、设备及存储介质。该方法包括:识别数据是否满足降级容错规则库中的规则;当数据满足所述降级容错规则库中的任一规则时,将SSL/TLS连接代理模式降级为透传模式/TCP代理模式,并基于透传模式/TCP代理模式将数据进行传输。本发明对于匹配降级容错特征库的数据流量做降级处理,通过透传模式/TCP模式自动旁路SSL/TLS代理,从而避免移动终端的应用因SSL/TLS代理劫持失败而导致无法访问互联网的问题,提高SSL/TLS代理连接的成功率,也提高SSL/TLS代理的整体处理性能。

Description

一种SSL/TLS代理方法、装置、设备及存储介质
技术领域
本发明涉及移动通信技术领域,特别是涉及一种SSL/TLS代理方法、装置、设备及存储介质。
背景技术
近年来,在分组域移动通讯网络中,基于SSL(Secure Socket Layer,安全套接层)/TLS(Transport Layer Security,传输层安全)协议的流量占比越来越大。电信运营商在互联网网关设备上部署SSL/TLS代理,对SSL/TLS数据进行劫持解密。SSL/TLS代理需要通过伪造服务器证书进而实现劫持解密的目的。但是,对于客户端,尤其是移动终端的应用程序,通常采用证书钉扎(Pinning)验证技术对服务器证书进行签名验证,从而对抗SSL/TLS代理的劫持行为。因此,SSL/TLS代理无法对采用此类技术的数据进行劫持解密,致使移动终端应用程序无法正常访问互联网。
发明内容
本发明提供一种SSL/TLS代理方法、装置、设备及存储介质,用以解决现有技术中SSL/TLS代理无法对应用程序的数据进行劫持解密的问题。
为实现上述发明目的,本发明采用下述的技术方案:
依据本发明的一个方面,提供一种SSL/TLS代理方法,包括:
识别数据是否满足降级容错规则库中的规则;
当所述数据满足所述降级容错规则库中的规则时,将SSL/TLS连接代理模式降级为透传模式/TCP代理模式,并基于透传模式/TCP代理模式将所述数据流进行传输。
可选的,所述降级容错规则库包括:动态规则库和/或预置静态规则库。
可选的,在识别数据是否满足降级容错规则库中的规则时,根据预设的规则识别优先级依序对所述数据进行识别。
可选的,所述降级容错规则库中的规则至少包括以下任一种信息:服务器IP地址、服务器IP地址与端口的组合或者服务器DNS域名。
可选的,所述将SSL/TLS连接代理模式降级为透传模式/TCP代理模式,包括:
当所述规则中包括服务器IP地址、或者服务器IP地址与端口组合时,将SSL/TLS连接代理模式降级为透传模式;或者,
当所述规则中包括服务器DNS域名时,将SSL/TLS连接代理模式降级为TCP代理模式;或者,
当所述规则中包括服务器DNS域名,获取DNS域名与服务器IP地址的映射关系;当所述服务器IP地址包含在某一种规则中时,将SSL/TLS连接代理模式降级为透传模式。
可选的,所述方法还包括:
当所述数据不满足所述降级容错规则库中的规则时,与客户端进行SSL/TLS协商;
当与客户端协商失败,根据失败告警异常信息生成降级容错规则,对所述动态规则库进行更新。
可选的,所述失败告警异常信息至少包括以下任一种:SSL警报级别、SSL警报描述、SSL/TLS/TCP协议失败消息、SSL/TLS/TCP异常信息、TCP连接统计信息。
可选的,对所述动态规则库进行更新,包括:
若某条降级容错规则的作用域为系统级,则当检测所述规则出现次数达到预设阈值后,将该条规则更新至所述动态规则库中;
若某条降级容错规则的作用域为用户级,直接将该条规则更新至所述动态规则库中。
可选的,所述方法还包括:
根据预置的生存期调整规则对所述降级容错规则库中规则的生存期进行调整。
依据本发明的一个方面,提供一种SSL/TLS代理装置,包括动态降级模块,用于:
识别数据是否满足降级容错规则库中的规则;当所述数据满足所述降级容错规则库中的任一规则时,将SSL/TLS连接代理模式降级为透传模式/TCP代理模式,并基于透传模式/TCP代理模式将所述数据流进行传输。
可选的,所述降级容错规则库包括:动态规则库和/或预置静态规则库。
可选的,所述动态降级模块,具体用于:
在识别数据是否满足降级容错规则库中的规则时,根据预设的规则识别优先级依序对所述数据进行识别。
可选的,所述降级容错规则库中的规则至少包括以下任一种信息:服务器IP地址、服务器IP地址与端口的组合或者服务器DNS域名。
可选的,所述动态降级模块,具体用于:
当所述规则中包括服务器IP地址、或者服务器IP地址与端口组合时,将SSL/TLS连接代理模式降级为透传模式;或者,
当所述规则中包括服务器DNS域名时,将SSL/TLS连接代理模式降级为TCP代理模式;或者,
当所述规则中包括服务器DNS域名,获取DNS域名与服务器IP地址的映射关系;当所述服务器IP地址包含在某一种规则中时,将SSL/TLS连接代理模式降级为透传模式。
可选的,所述装置还包括:
代理服务端模块,用于当所述数据不满足所述降级容错规则库中的任一规则时,与客户端进行SSL/TLS协商;
代理客户端模块,用于与服务端进行SSL/TLS协商;
动态检测模块,用于当代理服务端模块与客户端协商失败或者代理客户端模块与服务端协商失败,从失败告警异常信息检测不可劫持代理的服务器信息,以根据所述服务器信息生成降级容错规则,对所述动态规则库进行更新。
可选的,所述失败告警异常信息至少包括以下任一种:SSL警报子协议的警报信息、SSL/TLS/TCP协议的失败、异常信息。
可选的,所述动态检测模块,具体用于:
若某条降级容错规则的作用域为系统级,则当检测所述规则出现次数达到预设阈值后,将该条规则更新至所述动态规则库中;
若某条降级容错规则的作用域为用户级,直接将该条规则更新至所述动态规则库中。
可选的,所述动态降级模块还用于:
通过根据预置的生存期调整规则对所述降级容错规则库中规则的生存期进行调整。
依据本发明的一个方面,提供一种SSL/TLS代理设备,包括:处理器和存储器;所述存储器用于存储计算机指令,所述处理器用于运行所述存储器存储的计算机指令,以实现上述所述的SSL/TLS代理方法。
依据本发明的一个方面,提供一种计算机可读存储介质,所述计算机可读存储介质存储有一个或者多个程序,所述一个或者多个程序可被一个或者多个处理器执行,以实现上述所述的SSL/TLS代理方法。
本发明有益效果如下:
本发明所提供的SSL/TLS代理方法、装置、设备及存储介质,对于匹配降级容错特征库的数据流量做降级处理,通过透传模式/TCP模式自动旁路SSL/TLS代理,从而提高SSL/TLS代理连接的成功率,避免移动终端的应用因SSL/TLS代理劫持后,导致无法访问互联网的问题,提高SSL/TLS代理的整体处理性能。
上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。
附图说明
为了更清楚地说明本发明实施例或现有中的方案,下面将对实施例或现有描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明一实施例中SSL/TLS代理方法的流程图;
图2为本发明一实施例中SSL/TLS代理装置的原理框图;
图3为本发明一实施例中SSL/TLS代理设备的原理框图。
具体实施方式
以下结合附图以及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。
本发明实施例所提供的一种SSL/TLS代理方法,如图1所示,具体包括:
S101,识别数据是否满足降级容错规则库中的规则;
S102,当数据满足所述降级容错规则库中的任一规则时,将SSL/TLS连接代理模式降级为透传模式/TCP代理模式,并基于透传模式/TCP代理模式将数据进行传输。
在本发明中,当采用SSL/TLS代理时,对于匹配降级容错特征库的数据流量做降级处理,通过透传模式/TCP模式自动旁路SSL/TLS代理,从而提高SSL/TLS代理连接的成功率,避免移动终端的应用因SSL/TLS代理劫持后,导致无法访问互联网的问题,提高SSL/TLS代理的整体处理性能。
可选地,所述降级容错规则库包括:动态规则库和/或预置静态规则库。其中,动态规则库的形成在后文中进行说明,这里不做具体的介绍。而静态规则库则是通过配置或者导入的。这里,对规则按优先级划分不同的类别,例如,可以按优先级从低到高的三类,低优先级静态规则,动态规则、高优先级静态规则。而静态规则则可以分为永久规则或者临时规则等。因此,在识别数据是否满足降级容错规则库中的规则时,根据预设的规则识别优先级依序对数据进行识别。当数据满足一规则后,即可进行降级处理。
可选地,降级容错规则库也可从作用域上分为系统级和用户级两大类。而大类可以按不同的作用域进一步细分为不同的小类,如系统级可以根据实现方式,进一步分为网元级、CPU(Central Processing Unit,中央处理器)级、线程级等。其中,系统级动态降级是指多个用户共享相同的降级规则,用户级动态降级是指每个用户独享自己的降级规则。从可能的实现角度上来说,系统级方式比用户级方式的优点是更加节省存储空间(如:内存)的使用,但缺点却是多个用户之间的降级规则可能互相影响,造成误识别问题;反过来说,用户级方式优点是不会出现用户间互相影响造成误识别的问题,但每个用户却需要占用独立的存储空间,存储空间可能较前者浪费。
可选地,降级容错规则库中的规则也可从系统级和用户级的作用域,以及动态规则和静态规则,进行组合运用。例如,动态规则可以按用户级作用域实现,静态规则可以按系统级作用域实现。
本发明一可选实施例中,降级容错规则库存储的若干规则条目,每个规则条目都可具备生存期,因此可以根据预设的生存期调整规则对降级容错规则库中规则进行调整,将老化的规则条目进行老化释放。对于新的TCP连接,如果与某规则条目匹配成功,根据不同的实现情况,则该TCP连接可能直接降级为透传模式,或者降级为TCP代理模式。
这里,动态规则的有效数量门限属性,与生存期属性,可以组合应用。典型地,一种可能的实现是,对于系统级或用户级作用域范围情况,在单位时间内,如果某个规则出现的次数越多,则可以认为该规则的有效性越强,从而可以动态延长其生存期。每个规则可以具备自己的生存期,也可以多个动态规则按一定的原则分组令每组具备相同的生存期;相应地,老化机制可以分别作用于每个单独的动态规则,也可以分别作用于每个动态规则分组。
其中,在步骤102中,透传模式通常是指在SSL/TLS代理设备中,不建立任何TCP连接上下文,直接通过IP路由机制转发。而TCP代理模式通常是指SSL/TLS代理设备中,建立TCP服务端连接上下文、TCP客户端连接上下文,分别与客户端和服务器进行终结和连接,实现TCP级桥接代理。
本发明一可选实施例中,降级容错规则库中的规则至少包括以下任一种信息:服务器IP地址、服务器IP地址与端口的组合或者服务器DNS域名;
可选地,本发明一可选实施例中,将SSL/TLS连接代理模式降级为透传模式/TCP代理模式,包括:
当所述规则中包括服务器IP地址、或者服务器IP地址与端口组合时,将SSL/TLS连接代理模式降级为透传模式;或者,当所述规则中包括服务器DNS域名时,将SSL/TLS连接代理模式降级为TCP代理模式;或者,当所述规则中包括服务器DNS域名,获取DNS域名与服务器IP地址的映射关系;当所述服务器IP地址包含在某一种规则中时,将SSL/TLS连接代理模式降级为透传模式。
具体而言,以服务器IP地址或服务器IP地址与服务器端口组合的类似降级规则,更倾向于采用透明模式,避免经TCP代理处理,避免建立TCP连接上下文,避免处理TCP协议栈,从而提高整体性能。然而,降级规则还可能是其它形式,可能需要TCP代理模式支持。例如,降级规则为DNS(Domain Name System,域名系统)域名形式,该类规则可能需要匹配SSL/TLS ClientHello消息的SNI(Service Name Indication)扩展字段,从实现上可能需要首先建立TCP代理,才能接收并处理ClientHello消息,从而判断是否经过SSL/TLS代理。
具体地,因为TCP代理模式对性能的消耗和资源的占用相对较大,实现上也可以采用DNS缓存机制,记录服务器的DNS域名与IP地址等的映射关系,从而间接地对DNS域名应用透明模式降级,从而提高性能并节省资源;但是,因为客户端DNS缓存的存在,所以SSL/TLS代理并不一定能够建立完整的DNS缓存,因此可能无法完全取代TCP代理模式。
进一步的,本发明一可选实施例中,对动态规则库的生成过程进行了限定,具体包括:
当所述数据不满足所述降级容错规则库中的规则时,与客户端进行SSL/TLS协商;
当与客户端协商失败,根据失败告警异常信息生成降级容错规则,对所述动态规则库进行更新。
也就是说,当不满足降级容错规则,则与客户端进行SSL/TLS协商。当协商失败后,此次SSL/TLS连接未能建立,则根据失败告警异常信息生成提取降级容错规则所需的信息字段,并生成一条降级容错规则。
学习不可劫持代理的服务端地址,或地址与端口的组合等作为检测结果,供动态降级模块作为依据。进入并经过本步骤,表示当前SSL/TLS连接已经无法正常上网,当前连接的后续流量不经过后续步骤。
本发明一可选实施例中,所述失败告警异常信息至少包括以下任一种:SSL警报级别、SSL警报描述、SSL/TLS/TCP协议失败消息、SSL/TLS/TCP异常信息、TCP连接统计信息。
其中,根据SSL警报子协议(Alert)所提供的AlertLevel(警报级别)、AlertDescription(警报描述)、警报级别与警报描述的组合进行识别判断,从而学习不可劫持代理的服务器IP地址,或服务器IP地址与端口的组合,或服务器DNS域名等信息,将学习的信息生成降级容错规则。
例如,AlertLevel分为warning(告警)和fatal(致命)两种警报级别。一种可能的实现方式,可以将fatal警报级别的Alert都认为是不可劫持代理,将该SSL/TLS连接的服务器IP地址,或服务器IP地址与端口的组合,或服务器DNS域名等信息提取出来生成降级容错规则。
再例如,按照典型SSL/TLS协议,AlertDescription分为close_notify、unexpected_message、bad_record_mac、decryption_failed_RESERVED、record_overflow、decompression_failure、handshake_failure、no_certificate_RESERVED、bad_certificate、unsupported_certificate、certificate_revoked、certificate_expired、certificate_unknown、illegal_parameter、unknown_ca、access_denied、decode_error、decrypt_error、export_restriction_RESERVED、protocol_version、insufficient_security、internal_error、user_canceled、no_renegotiation、unsupported_extension等多种警报描述。一种可能的实现方式是,可以将某个(如:unknown_ca)或某些(如:unknown_ca、bad_certificate等)警报描述认为是不可劫持代理,将该SSL/TLS连接的服务器IP地址,或服务器IP地址与端口的组合,或服务器DNS域名等信息提取出来作为降级容错规则。
又例如,按照适当的AlertLevel和AlertDescription的组合,将警报级别与警报描述的组合的一种或多种的情况,认为是不可劫持代理,将该SSL/TLS连接的服务器IP地址,或服务器IP地址与端口的组合,或服务器DNS域名等信息提取出来提取出来生成降级容错规则。
其中,根据SSL/TLS协议的其它失败、异常、特定消息等信息进行判断,从而学习不可劫持代理的服务器IP地址,或服务器IP地址与端口的组合,或服务器DNS域名等信息生成降级容错规则。例如,SSL/TLS代理通常无法支持服务器下发的Certificate Request相关协商过程,那么如果发现存在相关消息时,则可以认为是不可劫持代理。
其中,根据TCP协议失败、异常等信息学习不可劫持代理的服务器IP地址,或服务器IP地址与端口的组合,或服务器DNS域名等信息,生成降级容错规则。
具体地,与上述SSL/TLS协议的情况类似,动态检测模块可以根据TCP协议的其它失败、异常等信息进行判断,从而学习不可劫持代理的服务器IP地址,或服务器IP地址与端口的组合,或服务器DNS域名等信息,作为降级容错规则。
可选地,这类失败、异常信息至少包括以下任一种信息:TCP协议失败、TCP协议异常信息、TCP连接统计信息。
TCP协议失败、异常等信息包括TCP FIN和/或TCP RST。例如,可能存在某些不可劫持代理的情况,无法通过SSL/TLS协议本身识别判断,则可以通过TCP协议的失败场景识别判断,如TCP FIN和/或TCP RST。如某个SSL/TLS连接,在进行劫持代理之后,客户端不回复SSL Alert,直接通过TCP RST中断连接,则可以认为是不可劫持代理。
其中,由于可能存在某些不可劫持代理的情况,无法通过TCP FIN和/或TCP RST等明确的消息识别判断,则可以通过TCP连接的流量统计等信息识别判断,如连接的上行TCP报文数、连接的下行TCP报文数、连接的上下行TCP报文总数、连接的有载荷的上行TCP报文数、连接的有载荷的下行TCP报文数、连接的有载荷的上下行TCP报文总数,等等。例如,如某个SSL/TLS连接,在进行劫持代理之后,客户端不回复SSL Alert,也没有TCP RST或TCPFIN,不存在或只存在极少量含有载荷的上行或下行TCP报文,则可以认为是不可劫持代理。
本发明一可选实施例中,在对所述动态规则库进行更新时,具体包括:
若某条降级容错规则的作用域为系统级,则当检测所述规则出现次数达到预设阈值后,将该条规则更新至所述动态规则库中;若某条降级容错规则的作用域为用户级,直接将该条规则更新至所述动态规则库中。
具体地,在生成降级容错规则后,对规则的有效数量门限。例如,对于系统级作用域范围情况,在单位时间内,某个规则条目出现了N次以上,则才认为该规则条目是有效的;对于用户级作用域范围情况,N可以取值为1,即用户级作用域情况不受有效数量门限限制。
进一步地,当数据不满足所述降级容错规则库中的规则时,与客户端进行SSL/TLS协商,建立SSL/TLS连接。
具体地,与客户端进行SSL/TLS协商,建立SSL/TLS连接,包括:
SSL/TLS协商阶段的ClientHello消息中提取SNI(Service Name Indication,服务器名字指示)扩展字段,以供与服务端进行SSL/TLS协商;与服务端协商成功后,获取与服务器协商得到的服务器证书/证书链,并根据服务器证书/证书链的信息,构造出伪服务器证书/证书链;将这个伪服务器证书/证书链下发给客户端,继而完成与客户端的SSL/TLS协商。
其中,在与服务端进行协商时,根据SSL/TLS代理服务端模块提供的SNI等信息,构造自己的ClientHello消息,以供与服务器进行SSL/TLS协商。具体地,从与服务器的协商过程中,获取服务器证书/证书链,以供与客户端协商时构造伪服务器证书/证书链。
与客户端完成SSL/TLS协商后,就可以与客户端进行通信。具体地,对于客户端的上行数据,将其解密并转发;同时对于发送的下行数据的明文信息进行加密后转发至客户端。与服务端进行协商完成后,与服务端进行通信,对服务端下行数据解密并转发,对上行数据的明文数据进行加密后转给服务端。
进一步的,获取上行数据的明文数据和下行数据的明文数据,对明文数据做日志审计、分析、缓存等处理。
通过对明文数据做日志审计、分析、缓存等处理,可以通过并行或串行的方式,转交给第三方模块、组件、系统、设备做日志审计、分析、缓存等处理。例如,明文数据可以再由存储、日志审计、DPI(Deep Packet Inspection,深度报文检测)、IDS(IntrusionDetection System,入侵检测系统)、病毒检测等处理,以确定数据是否存在安全威胁。
相应的,本发明实施例还提供了一种SSL/TLS代理装置,如图2所示,以实现上述的方法,包括动态降级模块21,动态检测模块24、代理服务端模块23、代理客户端模块22以及桥接管理模块25。
其中,动态降级模块21,用于识别数据是否满足降级容错规则库中的规则;当所述数据满足所述降级容错规则库中的任一规则时,将SSL/TLS连接代理模式降级为透传模式/TCP代理模式,并基于透传模式/TCP代理模式将所述数据流进行传输。
具体地,所述降级容错规则库包括:动态规则库和/或预置静态规则库。其中,所述动态降级模块21预先设置规则识别优先级,在识别数据是否满足降级容错规则库中的规则时,根据预设的规则识别优先级依序对所述数据进行识别。
可选地,降级容错规则库也可从作用域上分为系统级和用户级两大类。这里,动态降级模块21根据系统级或用户级动态检测结果,判断是否将SSL/TLS连接代理模式降级为透传模式,或降级为TCP代理模式。如果符合条件的SSL/TLS流量实施降级,则该流量将不再经过后续处理,从而解决某些移动终端APP经过SSL/TLS代理劫持后无法无法上网问题。
这里,降级容错规则库中的规则至少包括以下任一种信息:服务器IP地址、服务器IP地址与端口的组合或者服务器DNS域名。
可选地,所述动态降级模块21,具体用于当所述规则中包括服务器IP地址、或者服务器IP地址与端口组合时,将SSL/TLS连接代理模式降级为透传模式;或者,当所述规则中包括服务器DNS域名时,将SSL/TLS连接代理模式降级为TCP代理模式;或者,当所述规则中包括服务器DNS域名,获取DNS域名与服务器IP地址的映射关系;当所述服务器IP地址包含在某一种规则中时,将SSL/TLS连接代理模式降级为透传模式。
可选地,所述动态降级模块21,还用于通过根据预置的生存期调整规则对所述降级容错规则库中规则的生存期进行调整。
可选地,代理服务端模块23,用于当所述数据不满足所述降级容错规则库中的任一规则时,与客户端进行SSL/TLS协商;代理客户端模块22,用于与服务端进行SSL/TLS协商;动态检测模块24,用于当代理服务端模块23与客户端协商失败或者代理客户端模块22与服务端协商失败,从失败告警异常信息检测不可劫持代理的服务器信息,以根据所述服务器信息生成降级容错规则,对所述动态规则库进行更新。
动态检测模块24根据代理服务端模块23和代理客户端模块22的错误或异常情况,学习不可劫持代理的服务端地址,或地址与端口的组合等作为检测结果,供动态降级模块21作为依据。
可选地,所述失败告警异常信息至少包括以下任一种:SSL警报级别、SSL警报描述、SSL/TLS/TCP协议失败消息、SL/TLS/TCP异常信息、TCP连接统计信息。
可选地,动态检测模块24,具体用于若某条降级容错规则的作用域为系统级,则当检测所述规则出现次数达到预设阈值后,将该条规则更新至所述动态规则库中;若某条降级容错规则的作用域为用户级,直接将该条规则更新至所述动态规则库中。
其中,代理服务端模块23与客户端进行SSL/TLS协商,具体包括:从SSL/TLS协商阶段的ClientHello消息中提取SNI(Service Name Indication,服务器名字指示)扩展字段,以代理客户端模块22供与服务端进行SSL/TLS协商;在代理客户端模块22与服务端协商成功后,从代理客户端模块22获取与服务器协商得到的服务器证书/证书链,并根据服务器证书/证书链的信息,构造出伪服务器证书/证书链;将这个伪服务器证书/证书链下发给客户端,继而完成与客户端的SSL/TLS协商。
代理服务端模块23与客户端完成SSL/TLS协商后,对于客户端的上行数据,本模块将其解密并转给桥接管理模块25。对于桥接管理模块25转发的下行明文数据,则将其加密并转给客户端。
其中,代理服务端模块23与客户端进行SSL/TLS协商,具体包括:根据SSL/TLS代理服务端模块23提供的SNI等信息,构造自己的ClientHello消息,将消息发送至服务器;获取服务器发送的服务器证书/证书链,以供与客户端协商时构造伪服务器证书/证书链。
代理客户端模块22与服务端完成SSL/TLS协商后,对于服务端的下行数据,本模块将其解密并转给桥接管理模块25。对于桥接管理模块25转发的上行明文数据,则将其加密并转给服务端。
其中,桥接管理模块25责承上启下于SSL/TLS代理服务端模块23和SSL/TLS代理客户端模块22,期间对获取的明文数据做做日志审计、分析、缓存等处理。
这里,对于客户端与服务器的一个SSL/TLS连接,被SSL/TLS代理劫持分割为客户端与SSL/TLS代理服务端模块23、SSL/TLS代理客户端模块22与服务器的两个SSL/TLS连接,桥接管理模块25将这两个SSL/TLS连接关联起来。
具体而言,基于SSL/TLS连接的关联关系,对于SSL/TLS代理服务端模块23转交的上行数据,桥接管理模块25将其转给SSL/TLS代理客户端模块22;对于SSL/TLS代理客户端模块22转交的下行数据,桥接管理模块25将其转给SSL/TLS代理服务端模块23。
具体地,桥接管理模块25可能会控制两个关联的SSL/TLS连接的地址和端口信息。通常地,客户端与SSL/TLS代理服务端模块23的连接信息为CA1:CP1->SA:SP;SSL/TLS代理客户端模块22与服务器的连接信息为CA2:CP2->SA:SP。(其中CA表示Client Address即源地址,CP表示Client Port即源端口,SA表示Server Address即目的地址,SP表示ServerPort即目的端口)。一种可能的实现是,为了达到透明的目的,桥接管理模块25将确保CA2=CA1且CP2=CP1;另一种可能的实现是,桥接管理模块25不保证CA2与CA1相同,不保证CP2与CP1相同。
其中,桥接管理模块25分别从SSL/TLS代理服务端模块23以及SSL/TLS代理客户端模块22获取解密后的上行及下行明文数据,可以自己对明文数据做日志审计、分析、缓存等处理,或者以并行或串行的方式,转交给第三方模块、组件、系统、设备做日志审计、分析、缓存等处理。例如,明文数据可以再由存储、日志审计、DPI(Deep Packet Inspection,深度报文检测)、IDS(Intrusion Detection System,入侵检测系统)、病毒检测等处理。第三方模块、组件、系统、设备对SSL/TLS解密后的明文的分析处理后,指示桥接管理模块25的下一步动作。例如,对于串行转交方式,如果IDS判断出SSL/TLS解密后的明文流量中存在安全威胁,则可以将分析结果回馈给桥接管理模块25,继而桥接管理模块25可能会记录信息并中断相关SSL/TLS连接。
这里需要说明的是,对于各个模块的实现过程这里仅做了简单的说明,具体详细的实现过程可以参见方法中的详细描述,这里不再进行赘述。
相应的,如图3所示,本发明的实施例还提供一种SSL/TLS代理设备,包括:处理器31和存储器32;存储器32用于存储计算机指令,处理器31用于运行存储器32存储的计算机指令,以实现前述实施例提供的任一种SSL/TLS代理方法,因此也能实现相应的有益技术效果,前文已经进行了详细的说明,此处不再赘述。
相应的,本发明的实施例还提供一种计算机可读存储介质,所述计算机可读存储介质存储有一个或者多个程序,所述一个或者多个程序可被一个或者多个处理器执行,以实现前述实施例提供的任一种SSL/TLS代理方法,因此也能实现相应的有益技术效果,前文已经进行了详细的说明,此处不再赘述。
基于上述可知,采用本发明实施例中所提供的SSL/TLS代理方法、装置、设备及计算机可读存储介质,采用动态降级容错的SSL/TLS代理技术,与现有技术相比,将提高SSL/TLS代理连接成功率,一定程度上避免某些移动终端APP经过SSL/TLS代理劫持后可能无法上网的问题,同时也会提高SSL/TLS代理的整体处理性能。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,程序可存储于计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。
虽然通过实施例描述了本申请,本领域的技术人员知道,本申请有许多变形和变化而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。

Claims (20)

1.一种SSL/TLS代理方法,其特征在于,包括:
识别数据是否满足降级容错规则库中的规则;
当所述数据满足所述降级容错规则库中的规则时,将SSL/TLS连接代理模式降级为透传模式/TCP代理模式,并基于透传模式/TCP代理模式将所述数据流进行传输。
2.根据权利要求1所述的方法,其特征在于,所述降级容错规则库包括:动态规则库和/或预置静态规则库。
3.根据权利要求2所述的方法,其特征在于,在识别数据是否满足降级容错规则库中的规则时,根据预设的规则识别优先级依序对所述数据进行识别。
4.根据权利要求2所述的方法,其特征在于,所述降级容错规则库中的规则至少包括以下任一种信息:服务器IP地址、服务器IP地址与端口的组合或者服务器DNS域名。
5.根据权利要求2所述的方法,其特征在于,所述将SSL/TLS连接代理模式降级为透传模式/TCP代理模式,包括:
当所述规则中包括服务器IP地址、或者服务器IP地址与端口组合时,将SSL/TLS连接代理模式降级为透传模式;或者,
当所述规则中包括服务器DNS域名时,将SSL/TLS连接代理模式降级为TCP代理模式;或者,
当所述规则中包括服务器DNS域名,获取DNS域名与服务器IP地址的映射关系;当所述服务器IP地址包含在某一种规则中时,将SSL/TLS连接代理模式降级为透传模式。
6.根据权利要求2所述的方法,其特征在于,所述方法还包括:
当所述数据不满足所述降级容错规则库中的规则时,与客户端进行SSL/TLS协商;
当与客户端协商失败,根据失败告警异常信息生成降级容错规则,对所述动态规则库进行更新。
7.根据权利要求3所述的方法,其特征在于,所述失败告警异常信息至少包括以下任一种:SSL警报级别、SSL警报描述、SSL/TLS/TCP协议失败消息、SSL/TLS/TCP异常信息、TCP连接统计信息。
8.根据权利要求3所述的方法,其特征在于,对所述动态规则库进行更新,包括:
若某条降级容错规则的作用域为系统级,则当检测所述规则出现次数达到预设阈值后,将该条规则更新至所述动态规则库中;
若某条降级容错规则的作用域为用户级,直接将该条规则更新至所述动态规则库中。
9.根据权利要求1所述的方法,其特征在于,所述方法还包括:
根据预置的生存期调整规则对所述降级容错规则库中规则的生存期进行调整。
10.一种SSL/TLS代理装置,其特征在于,包括动态降级模块,用于:
识别数据是否满足降级容错规则库中的规则;当所述数据满足所述降级容错规则库中的任一规则时,将SSL/TLS连接代理模式降级为透传模式/TCP代理模式,并基于透传模式/TCP代理模式将所述数据流进行传输。
11.根据权利要求10所述的装置,其特征在于,所述降级容错规则库包括:动态规则库和/或预置静态规则库。
12.根据权利要求11所述的装置,其特征在于,所述动态降级模块,具体用于:
在识别数据是否满足降级容错规则库中的规则时,根据预设的规则识别优先级依序对所述数据进行识别。
13.根据权利要求10所述的装置,所述降级容错规则库中的规则至少包括以下任一种信息:服务器IP地址、服务器IP地址与端口的组合或者服务器DNS域名。
14.根据权利要求13所述的装置,其特征在于,所述动态降级模块,具体用于:
当所述规则中包括服务器IP地址、或者服务器IP地址与端口组合时,将SSL/TLS连接代理模式降级为透传模式;或者,
当所述规则中包括服务器DNS域名时,将SSL/TLS连接代理模式降级为TCP代理模式;或者,
当所述规则中包括服务器DNS域名,获取DNS域名与服务器IP地址的映射关系;当所述服务器IP地址包含在某一种规则中时,将SSL/TLS连接代理模式降级为透传模式。
15.根据权利要求11所述的装置,其特征在于,所述装置还包括:
代理服务端模块,用于当所述数据不满足所述降级容错规则库中的任一规则时,与客户端进行SSL/TLS协商;
代理客户端模块,用于与服务端进行SSL/TLS协商;
动态检测模块,用于当代理服务端模块与客户端协商失败或者代理客户端模块与服务端协商失败,从失败告警异常信息检测不可劫持代理的服务器信息,以根据所述服务器信息生成降级容错规则,对所述动态规则库进行更新。
16.根据权利要求15所述的装置,其特征在于,所述失败告警异常信息至少包括以下任一种:SSL警报子协议的警报信息、SSL/TLS/TCP协议的失败、异常信息。
17.根据权利要求15所述的装置,其特征在于,所述动态检测模块,具体用于:
若某条降级容错规则的作用域为系统级,则当检测所述规则出现次数达到预设阈值后,将该条规则更新至所述动态规则库中;
若某条降级容错规则的作用域为用户级,直接将该条规则更新至所述动态规则库中。
18.根据权利要求10所述的装置,其特征在于,所述动态降级模块还用于:
通过根据预置的生存期调整规则对所述降级容错规则库中规则的生存期进行调整。
19.一种SSL/TLS代理设备,其特征在于,包括:处理器和存储器;所述存储器用于存储计算机指令,所述处理器用于运行所述存储器存储的计算机指令,以实现权利要求1~9任一项所述的SSL/TLS代理方法。
20.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有一个或者多个程序,所述一个或者多个程序可被一个或者多个处理器执行,以实现权利要求1~9任一项所述的SSL/TLS代理方法。
CN201711145579.0A 2017-11-17 2017-11-17 一种ssl/tls代理方法、装置、设备及存储介质 Active CN109802928B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201711145579.0A CN109802928B (zh) 2017-11-17 2017-11-17 一种ssl/tls代理方法、装置、设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201711145579.0A CN109802928B (zh) 2017-11-17 2017-11-17 一种ssl/tls代理方法、装置、设备及存储介质

Publications (2)

Publication Number Publication Date
CN109802928A true CN109802928A (zh) 2019-05-24
CN109802928B CN109802928B (zh) 2021-09-17

Family

ID=66555973

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201711145579.0A Active CN109802928B (zh) 2017-11-17 2017-11-17 一种ssl/tls代理方法、装置、设备及存储介质

Country Status (1)

Country Link
CN (1) CN109802928B (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111314288A (zh) * 2019-12-23 2020-06-19 深信服科技股份有限公司 中继处理方法、装置、服务器和存储介质
CN111628976A (zh) * 2020-05-15 2020-09-04 绿盟科技集团股份有限公司 一种报文处理方法、装置、设备及介质
CN113014454A (zh) * 2021-03-05 2021-06-22 中电积至(海南)信息技术有限公司 一种基于ssltls协议的用户代理标识及数量检测方法
CN114595283A (zh) * 2021-12-17 2022-06-07 平安养老保险股份有限公司 基于医疗服务端的单点容错降级方法、装置、设备及介质

Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070097963A1 (en) * 2005-11-02 2007-05-03 Panayiotis Thermos System and Method for Detecting Vulnerabilities in Voice Over IP Networks
CN102118292A (zh) * 2011-02-28 2011-07-06 成都市华为赛门铁克科技有限公司 互联网协议多媒体子系统网络、数据传输方法和装置
CN102263826A (zh) * 2011-08-11 2011-11-30 华为技术有限公司 一种传输层建立连接的方法和装置
CN102316093A (zh) * 2010-06-30 2012-01-11 丛林网络公司 用于移动设备的双模式多服务vpn网络客户端
CN103870353A (zh) * 2014-03-18 2014-06-18 北京控制工程研究所 一种面向多核的可重构容错系统及方法
CN104994061A (zh) * 2015-05-19 2015-10-21 中国南方电网有限责任公司 智能变电站过程层交换机mms安全通信的装置及方法
WO2016011413A1 (en) * 2014-07-17 2016-01-21 Texas Instruments Incorporated Transmission control protocol (tcp) acknowledgement (ack) packet suppression
CN105610799A (zh) * 2015-12-19 2016-05-25 浙江宇视科技有限公司 Onvif应用系统中的安全防护方法及防火墙设备
US20170163607A1 (en) * 2015-12-03 2017-06-08 Microsoft Technology Licensing, Llc Establishing a Communication Event Using Secure Signalling
CN107070998A (zh) * 2017-03-20 2017-08-18 广东工业大学 一种安全的物联网通讯协议及方法

Patent Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070097963A1 (en) * 2005-11-02 2007-05-03 Panayiotis Thermos System and Method for Detecting Vulnerabilities in Voice Over IP Networks
CN102316093A (zh) * 2010-06-30 2012-01-11 丛林网络公司 用于移动设备的双模式多服务vpn网络客户端
CN102118292A (zh) * 2011-02-28 2011-07-06 成都市华为赛门铁克科技有限公司 互联网协议多媒体子系统网络、数据传输方法和装置
CN102263826A (zh) * 2011-08-11 2011-11-30 华为技术有限公司 一种传输层建立连接的方法和装置
CN103870353A (zh) * 2014-03-18 2014-06-18 北京控制工程研究所 一种面向多核的可重构容错系统及方法
WO2016011413A1 (en) * 2014-07-17 2016-01-21 Texas Instruments Incorporated Transmission control protocol (tcp) acknowledgement (ack) packet suppression
CN104994061A (zh) * 2015-05-19 2015-10-21 中国南方电网有限责任公司 智能变电站过程层交换机mms安全通信的装置及方法
US20170163607A1 (en) * 2015-12-03 2017-06-08 Microsoft Technology Licensing, Llc Establishing a Communication Event Using Secure Signalling
CN105610799A (zh) * 2015-12-19 2016-05-25 浙江宇视科技有限公司 Onvif应用系统中的安全防护方法及防火墙设备
CN107070998A (zh) * 2017-03-20 2017-08-18 广东工业大学 一种安全的物联网通讯协议及方法

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
ADH: "SSL 3.0 Fallback protection SSL 3.0 降级保护策略", 《HTTPS://WWW.JIANSHU.COM》 *
JIANHUA CHEN; FANG MIAO; QUANHAI WANG: "SSL/TLS-based Secure Tunnel Gateway System Design and Implementation", 《 2007 INTERNATIONAL WORKSHOP ON ANTI-COUNTERFEITING, SECURITY AND IDENTIFICATION (ASID)》 *
SIEMENS: "Difficulties in using one TLS tunnel to access different servers behind an authentication proxy", 《3GPP TSG SA WG3 SECURITY#30 S3-030553》 *
董海韬,田静,杨军,叶晓舟,宋磊: "适用于网络内容审计的SSL/TLS保密数据高效明文采集方法", 《计算机应用》 *

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111314288A (zh) * 2019-12-23 2020-06-19 深信服科技股份有限公司 中继处理方法、装置、服务器和存储介质
CN111314288B (zh) * 2019-12-23 2022-08-05 深信服科技股份有限公司 中继处理方法、装置、服务器和存储介质
CN111628976A (zh) * 2020-05-15 2020-09-04 绿盟科技集团股份有限公司 一种报文处理方法、装置、设备及介质
CN111628976B (zh) * 2020-05-15 2022-06-07 绿盟科技集团股份有限公司 一种报文处理方法、装置、设备及介质
CN113014454A (zh) * 2021-03-05 2021-06-22 中电积至(海南)信息技术有限公司 一种基于ssltls协议的用户代理标识及数量检测方法
CN113014454B (zh) * 2021-03-05 2022-06-14 中电积至(海南)信息技术有限公司 一种基于ssl、tls协议的用户代理标识及数量检测方法
CN114595283A (zh) * 2021-12-17 2022-06-07 平安养老保险股份有限公司 基于医疗服务端的单点容错降级方法、装置、设备及介质

Also Published As

Publication number Publication date
CN109802928B (zh) 2021-09-17

Similar Documents

Publication Publication Date Title
US11050786B2 (en) Coordinated detection and differentiation of denial of service attacks
US10003616B2 (en) Destination domain extraction for secure protocols
CN109802928B (zh) 一种ssl/tls代理方法、装置、设备及存储介质
US9843593B2 (en) Detecting encrypted tunneling traffic
US11483339B1 (en) Detecting attacks and quarantining malware infected devices
EP2850770B1 (en) Transport layer security traffic control using service name identification
US10594725B2 (en) Generating and analyzing network profile data
US11909606B2 (en) Systems and methods for determining flow and path analytics of an application of a network using sampled packet inspection
US10263975B2 (en) Information processing device, method, and medium
US20220329442A1 (en) Cloud-based man-in-the-middle inspection of encrypted traffic using cloud-based multi-tenant HSM infrastructure
CN114402567A (zh) 算法生成的域的在线检测
US11784993B2 (en) Cross site request forgery (CSRF) protection for web browsers
CN113612800A (zh) 网络攻击处理方法、装置、系统、设备、介质和程序产品
WO2021147305A1 (zh) 一种用于组成dmz区域的系统及方法
CN113810380A (zh) 代理层次切换方法、系统、可读存储介质及计算机设备
US10079857B2 (en) Method of slowing down a communication in a network
US8995271B2 (en) Communications flow analysis
US20240073235A1 (en) System and method for chaos testing in an edge network
US20230262033A1 (en) Apparatus, Device, Method, and Computer Program for a Network Element
US11811855B1 (en) Policy based agentless file transfer in zero trust private networks
CN117938728B (zh) 服务器集群中边缘节点的路由方法、装置、设备及介质
US20240356918A1 (en) Reauthentication for zero trust WebSocket connections
EP4293962A1 (en) Cloud-based man-in-the-middle inspection of encrypted traffic using cloud-based multi-tenant hsm infrastructure
US20230171280A1 (en) Risk based session resumption
US20240028494A1 (en) Dynamic Applicative Session Grouping

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
GR01 Patent grant
GR01 Patent grant