CN111567014A - Https事务中的中间人检测 - Google Patents
Https事务中的中间人检测 Download PDFInfo
- Publication number
- CN111567014A CN111567014A CN201980008033.1A CN201980008033A CN111567014A CN 111567014 A CN111567014 A CN 111567014A CN 201980008033 A CN201980008033 A CN 201980008033A CN 111567014 A CN111567014 A CN 111567014A
- Authority
- CN
- China
- Prior art keywords
- domain name
- address
- message
- tls
- tcp
- 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
Links
Images
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/14—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
- H04L63/1441—Countermeasures against malicious traffic
- H04L63/1466—Active attacks involving interception, injection, modification, spoofing of data unit addresses, e.g. hijacking, packet injection or TCP sequence number attacks
-
- 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/14—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
- H04L63/1408—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic by monitoring network traffic
- H04L63/1416—Event detection, e.g. attack signature detection
-
- 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/14—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
- H04L63/1441—Countermeasures against malicious traffic
- H04L63/1491—Countermeasures against malicious traffic using deception as countermeasure, e.g. honeypots, honeynets, decoys or entrapment
-
- 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/166—Implementing security features at a particular protocol layer at the transport layer
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/02—Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/04—Protocols specially adapted for terminals or networks with limited capabilities; specially adapted for terminal portability
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/56—Provisioning of proxy services
- H04L67/564—Enhancement of application control based on intercepted application data
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/16—Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
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)
- Computer And Data Communications (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
公开了用于在HTTPS通信期间检测中间人(MITM)的不同方法,在一些方面,使用不同于所述目标域的IP地址的替代IP地址建立TCP连接以从域名检索网页,其中响应于HTTP GET消息的所述目标网页的接收指示MITM存在,使用域名作为TLS连接中的SNI和HTTP GET消息中的替代域名,其中替代域名的目标网页的接收指示MITM存在,以及使用域生成算法生成替代域名并使用所生成的替代域名作为所述TLS消息中的SNI,其中用于所生成的替代域名的证书的接收指示MITM存在。
Description
背景技术
本公开涉及超文本传输协议安全(HTTPS)通信,并且具体地涉及对可能尝试监控使用HTTPS执行的通信的中间人(MITM)的检测。
随着HTTPS部署的增长,中间设备和防病毒产品越来越多地拦截传输层安全(TLS)连接以保持对网络业务的可见性。当涉及HTTPS时,安全社区朝着冲突的目标工作。一方面,为了提供强的端到端连接安全,安全社区致力于硬化并普遍部署HTTPS。同时,中间件和防病毒产品越来越多地截取(即,终止和重新发起)HTTPS连接,以尝试检测和阻止使用HTTPS协议以避免检查的恶意内容。安装在管理工作站上的服务器名称指示(SNI)和自签名的根证书的出现削弱了传输层的总体安全性并因此削弱了HTTPS。
SNI是TLS计算机网络协议的扩展,其允许客户端指示在握手过程开始时它正尝试连接到哪个主机名。这不同于TLS的原始规范,其中客户端在接收服务器的身份之前不展现任何信息。SNI因此允许服务器在相同的互联网协议(IP)地址和传输控制协议(TCP)端口号上呈现多个证书。这允许服务器使用相同的IP地址服务多个安全的,例如HTTPS、网站(或通过TLS的任何其他服务),而不需要所有站点使用相同的证书。其概念等效于基于HTTP/1.1名称的虚拟主机,但适用于HTTPS。在SNI中,期望的主机名不被加密,这允许窃听者看到正在请求哪个站点。
在密码学和计算机安全性中,自签名证书是由其身份证明的同一实体签名的身份证书。该术语与实际执行签名过程的人或组织的身份无关。在技术术语中,自签名证书是用发送实体的私钥签名的证书。在典型的公共密钥基础设施(PKI)布置中,来自证书机构(CA)的数字签名证明特定公共密钥证书是有效的(即,包含正确的信息)。
域生成算法(DGA)是可用于生成大量域名的算法。通常在恶意软件中使用,DGA可以用于生成集合点,作为用于僵尸网络接收指令的命令和控制服务器。大量潜在生成的集合点使得其他参与者(例如,执法者)难以有效地跟踪或关闭僵尸网络,因为受感染的计算机将会尝试每天联系这些生成的域名的不同集合以接收更新或命令。这些域名的生成可基于各种算法和基于一个或多个种子。DGA通常生成具有高熵水平(例如,明显随机的数字和字母集合)的域名。然而,这些域名可根据可由多于一个计算装置重复的预定义标准产生,以允许每个计算装置访问用于命令和控制指令的相同域名。示例DGA可基于例如基于时间的参数(诸如年、月和日)来生成域名。例如,DGA可实施输入年、月和日的算法,且对年、月和日中的每一者执行数学运算以修改值,例如乘法、加法、逐位运算或其他数学运算。在一些方面,年、月和日中的一个或多个的数学运算的输出可被转换成另一形式(例如,十六进制),并且可被组合以生成域名。在一些方面中,甚至组合值可通过进一步数学运算来调整。然后,可以将输出附加到适当的域标识符,例如.com,.net。等等。形成域名。然后,生成的域名可从DGA输出并使用。
发明内容
本文所述的系统、方法和计算机程序产品可用于识别正在拦截浏览器与web服务器之间的HTTPS通信的中间人的存在。
在本公开的一方面,公开了一种在HTTPS通信期间检测中间人(MITM)的方法。该方法包括向DNS传输对域名的IP地址的查询,从DNS接收来自域名的IP地址,生成不同于所述域名的IP地址的替代IP地址,向所述替代IP地址传输TCP消息,从所述替代IP地址接收TCP确认消息,响应于所接收的TCP确认,与所述替代IP地址建立TCP连接,使用所述TCP连接传输TLS消息,TLS消息的SNI包括域名,接收包括用于所述域名的证书的TLS回复消息,验证所接收的证书,响应于验证所接收的证书而建立TLS连接,以及使用所述TLS连接来发送HTTPGET消息。HTTP GET消息的URL包括域名和与域名相关联的目标网页。该方法进一步包括接收包括目标网页的HTTP OK消息并且基于目标网页的接收确定中间人正在拦截HTTPS通信。
在本公开的另一方面,公开了一种在HTTPS通信期间检测中间人(MITM)的方法。该方法包括:建立到域名的IP地址的TCP连接;使用所述TCP连接来传送TLS消息,TLS消息的SNI包括域名;接收包括用于域名的证书的TLS回复消息;验证所接收的证书;响应于验证所接收的证书而建立TLS连接;以及使用所述TLS连接来传送HTTP GET消息。HTTP GET消息的URL包括替代域名和与替代域名相关联的目标网页,其中替代域名不同于域名。该方法进一步包括接收包括目标网页的HTTP OK消息并且基于目标网页的接收确定中间人正在拦截HTTPS通信。
在本公开的另一方面,公开了一种在HTTPS通信期间检测中间人(MITM)的方法。该方法包括:建立到域名的IP地址的TCP连接;使用域生成算法生成替代域名;使用所述TCP连接传输TLS消息,所述TLS消息的SNI包括生成的替代域名;接收包括所述生成的替代域名的证书的TLS回复消息;以及基于所述证书的接收确定中间人正在拦截HTTPS通信。
在本公开的各方面,还提供了根据以上方面的系统和计算机程序产品。在不脱离本发明的范围的情况下,以上方面中的任一者可组合。
附图说明
通过参考附图,可以理解关于其结构和操作两者的本公开的细节,在附图中相同的附图标记和标记指代相同的元件。
图1是示出根据本公开的一些方面的用于在HTTPS协议通信中检测MITM的存在的系统的系统图。
图2是示出根据本公开的第一方法的浏览器、服务器和潜在MITM之间的通信的流程图。
图3是示出根据本公开的第二方法的浏览器、服务器和潜在MITM之间的通信的流程图。
图4是示出根据本公开的第四方法的浏览器、服务器和潜在MITM之间的通信的流程图。
图5是其中可以实现在此描述的系统、方法和计算机程序产品中涉及的过程的计算机系统的示范性框图。
具体实施方式
由于TCP/IP协议组的堆叠性质,有可能使用TCP和TLS端点处的不匹配设置来制作传输流,这些不匹配设置可以用于检测中间人。本文公开的是使用HTTPS协议进行通信的特定方法,其涉及以将在计算设备的浏览器和服务器之间的单个TCP流中暴露未看见的MITM动作者的方式来操纵TCP、TLS和HTTP设置。在一些方面中,这可通过操纵来自域名系统(DNS)的结果以从多个可用条件创建测试来完成,所述多个可用条件利用不相交的TCP、TLS和HTTP指令来揭示通信链中可指示MITM事务应以非预期方式完成的检查点。
现在参考图1,示出了用于在计算设备110和服务器150之间进行HTTPS通信的系统100。在一些方面,系统100包括计算设备110和服务器150。在一些方面中,系统100还可包含正尝试拦截计算装置110与服务器150之间的传输的中间人170。
计算设备110包括至少一个处理器112、存储器114、至少一个网络接口116、显示器118、输入设备120,并且可包括在计算设备中常见的任何其他特征。在一些方面中,计算装置110可以是例如与用户相关联的计算装置,其经配置以通过HTTPS连接从服务器150发射和接收数据。在一些方面中,计算装置110可包含(例如)个人计算机、膝上型计算机、平板计算机、智能装置、智能电话、智能手表或可由用户使用的任何其他类似计算装置。
处理器112可包含例如微控制器、场可编程门阵列(FPGA)或经配置以执行不同操作的任何其他处理器。处理器112可经配置以执行如下文所描述的指令。这些指令可存储在例如存储器114中。
存储器114可以包括例如采用易失性存储器形式的计算机可读介质或计算机可读存储介质,诸如随机存取存储器(RAM)和/或高速缓冲存储器或其他。存储器114可以包括例如其他可移动/不可移动、易失性/非易失性存储介质。仅以非限制性实例的方式,存储器114可以包括便携式计算机磁盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、便携式紧凑磁盘只读存储器(CD-ROM)、光学存储设备、磁存储设备、或者上述的任意合适的组合。
网络接口116被配置成经由有线或无线连接将数据或信息传输到服务器150或任何其他计算设备和从服务器150或任何其他计算设备接收数据。例如,网络接口116可以利用无线技术和通信协议,如WIFI(例如,802.11a/b/g/n)、蜂窝网络(例如,CDMA、GSM、M2M、和3G/4G/4G LTE)、近场通信系统、卫星通信、经由局域网(LAN)、经由广域网(WAN)、或允许计算设备110将信息传输至服务器150或从服务器150接收信息的任何其他形式的通信。
显示器118可包含经配置以将信息显示给计算装置110的用户的任何显示装置。例如,在一些方面中,显示器118可包含计算机监视器、电视机、智能电视机或其他类似显示器。在一些方面中,显示器118可集成到计算装置110中或与计算装置110相关联,例如,作为膝上型计算机、智能电话、智能手表或其他智能可穿戴装置的显示器,作为与计算装置110相关联的虚拟现实头戴式耳机或用于向用户显示信息的任何其他机构。在一些方面,显示器118可包括例如液晶显示器(LCD)、电子纸/电子墨水显示器、有机LED(OLED)显示器或其他类似的显示技术。在一些方面中,显示器118可为触敏的,且还可充当输入装置120。
输入设备120可包括例如键盘、鼠标、触敏显示器118、小键盘、话筒、或其他类似的输入设备或可单独或一起用于向用户提供与计算设备110交互的能力的任何其他输入设备。
服务器150可以包括具有与处理器112、存储器114和网络接口116类似的功能的处理器、存储器和网络接口。在一些方面中,服务器150可例如为经配置以与计算装置110交互或将数据提供到计算装置110的任何计算装置、服务器或类似系统。例如,服务器150可以是配置成传送和接收来自计算设备110的与网页有关的数据的web服务器。
中间人170可以是尝试拦截计算设备110和服务器150之间的通信的任何计算设备,并且可以包括具有与处理器112、存储器114和网络接口116类似的功能的处理器、存储器和网络接口。
中间人检测方法1:
现在参考图2,其公开了一种用于在使用HTTPS协议的通信中检测中间人(MITM)的第一方法。
在高层级上,如202部分中所说明,计算装置110的浏览器204与网络服务器206(例如www.service.com)之间的HTTPS通信可包含浏览器204将HTTPS GET请求208发射到网络服务器206的在设置2010中所指定的IP地址处。例如,设置可以包括用于网络服务器206的TCP IP地址“192.168.1.1”、“www.service.com”的TLS和“www.service.com”的HTTP。HTTPSGET请求208包括统一资源定位符(URL)“www.service.com/index.html”,其标识所请求的html网页,例如,“index.html”。
响应于HTTPS GET请求,具有IP地址“192.168.1.1”的网络服务器206(例如,“www.service.com”)将向浏览器204返回包括“index.html”网页的HTTPS OK传输212。浏览器然后可以例如经由显示器118将网页“index.html”呈现给用户。
在使用以上通信协议的正常条件下,浏览器204的用户将不知道MITM是否正在监视浏览器204与web服务器206之间的通信或MITM是否已拦截其与web服务器206的通信。
在214部分中,示出了方法1中所涉及的通信协议的详细流程,其涉及使用特定的设置集合216用于浏览器204和web服务器206之间的通信。设置216被配置成允许浏览器204的用户通过欺骗MITM显露其自身来确定MITM是否正在截取浏览器204和web服务器206之间的通信。例如,在方法1中,用户通过在设置216中提供虚假和正确信息的组合来欺骗MITM揭示其自身,这将引发在没有MITM存在的情况下浏览器204将不会另外从web服务器206接收的响应。
在该协议中,DNS Q消息218被传输至域名服务器(DNS)220,该域名服务器包括目标网络服务器206的网络地址,例如,“www.service.com”。
响应于DNSQ消息218,DNS220返回包括web服务器206的IP地址(例如192.168.1.1)的DNS A消息222。
然后,在224,浏览器204将所接收的IP地址加扰为不同的数字,在这种情况下,例如,192.1.68.11,作为网页服务器206的伪造IP地址。有待用于与网络服务器206通信的TCPIP地址因此是伪造IP地址“192.1.68.11”,而不是如从DNS 220返回的正确IP地址“192.168.1.11”。HTTPS协议的剩余设置216(例如,“www.service.com”的TLS域名设置和“www.service.com”的HTTP域名设置)对于网络服务器206是正确的。
浏览器204通过将TCP SYN DEST消息226传输至伪装IP地址“192.1.68.11”来发起TCP 3路握手,该伪装IP地址在228由冒充为伪装IP地址“192.1.68.11”的MITM代理230拦截。
响应于TCP SYN DEST消息226,TCP SYNACK消息232由浏览器204从MITM代理230接收,就好像它是从伪造IP地址“192.1.68.11”接收的。例如,在所接收的TCP SYNACK消息232中将不存在该消息实际上是从MITM代理230而不是伪造IP地址“192.1.68.11”接收的指示。
响应于TCP SYNACK消息232,浏览器204将TCP ACK消息234传输至伪造IP地址“192.1.68.11”,从而确认接收到TCP SYNACK消息232。TCP ACK消息234再次被MITM代理230拦截,从而完成不与网络服务器206而是与MITM代理230的3路握手。现在在浏览器204与MITM代理230之间建立TCP连接。重要的是注意,从浏览器204的观点来看,连接是在浏览器204与web服务器206之间。
接下来,浏览器204通过使用包括“www.service.com”的SNI的TCP连接传输TLSHELLO消息236来发起TLS握手。MITM代理230截取TLS HELLO消息236并在238选择具有匹配的SNI值的证书。MITM代理230然后将TLS HELLO消息240传输至浏览器204,该消息包括用于“www.service.com”的证书。
响应于接收到包括“www.serice.com”的证书的TLS HELLO消息240,浏览器204在242处验证证书。TLS握手完成,并且在浏览器204与MITM代理230之间建立TLS连接。重要的是注意,从浏览器204的观点来看,连接是在浏览器204与web服务器206之间。
一旦证书已被验证,浏览器204就使用包括URL“www.service.com/index.html”的TLS连接来传输HTTP GET消息244。
由于TLS连接在浏览器204与MITM代理230之间,而不是在浏览器204与网页服务器206之间,MITM代理230拦截HTTP GET消息244,在246处检查该HTTP请求,并且将DNS Q消息248传输至DNS 220以确定URL的域名(例如,“www.service.com”)的IP地址。MITM代理230从DNS220接收包括域名“www.service.com”的正确IP地址“192.168.1.1”的DNSA消息250。
MITM代理230可以基于所接收的正确的IP地址“192.168.1.1”建立与网络服务器206的TCP连接252并且使用域名“www.service.com”建立与网络服务器206的TLS连接254。
接下来,MITM代理230将包括URL“www.service.com/index.html”的HTTP GET请求256传输至网络服务器206并且接收包括网页“index.html”的HTTP OK消息258。
MITM代理230检查HTTP响应并且向浏览器204传输包括网页“index.html”的相应的HTTP OK消息262。
浏览器204在264处接收网页“index.html”同时在其TCP握手通信中使用伪造IP地址暗示浏览器204与网页服务器206之间的通信已经被拦截。例如,浏览器204的用户在看到网页加载或通过监视网页的接收后现在知道计算设备110的浏览器204与web服务器206之间的通信正被截取。
这是因为虽然MITM代理230拦截了包括伪造IP地址“192.1.68.11”的TCP SYNDEST消息226并且传输了好像它是伪造IP地址处的网络服务器的确认,但是MITM代理230通过查询DNS 220以查找在TLS SNI信息(例如,“192.168.1.1”)中指示的域名“www.service.com”的正确IP地址来独立地确定网络服务器206的正确IP地址。MITM代理230随后在访问网络服务器206时使用正确的IP地址,且将网页返回到浏览器,就好像其已一开始从浏览器204接收到正确的IP地址。在没有MITM代理230的情况下在浏览器204与web服务器206之间的正常通信中,伪造IP地址将被使用并且将在浏览器204尝试与web服务器206通信时引起失败或其他错误。
在一些方面中,浏览器204或计算装置110可例如经由显示器118向用户呈现已基于方法1检测到MITM的指示、图形、颜色或其他指示符。
中间人检测方法2:
现在参考图3,公开了一种用于在使用HTTPS协议的通信中检测中间人(MITM)的第二方法。
在高层级上,如302部分中所展示的,在计算设备110的浏览器304与web服务器306(例如,www.service.com)之间的HTTPS通信可以包括浏览器304在web服务器306的IP地址310(例如,“192.168.1.1”)处将HTTPS GET请求308传输至web服务器306。HTTPS GET请求308包括标识所请求的html网页(例如,“index.html”)的URL“www.service.com/index.html”。
响应于HTTPS GET请求,具有IP地址“192.168.1.1”的网页服务器306(例如,“www.service.com”)将向浏览器306返回包括“index.html”网页的HTTPS OK传输312。浏览器然后可以例如经由显示器118将网页“index.html”呈现给用户。
在使用以上通信协议的正常情况下,浏览器304的用户将不知道MITM是否正在监视浏览器304与web服务器306之间的通信或MITM是否已拦截其与web服务器306的通信。
在314部分中,示出了方法2中涉及的通信协议的详细流程,该流程涉及将在浏览器304和web服务器306之间的HTTPS协议中的通信期间使用的域名切换到替代域名。例如,域名可以从网络服务器306的域名(例如,“www.service.com”)切换到另一个网络服务器316的替代域名(例如,“www.alternate.com”)。在一些方面中,替代域名可以是对应于已知网络服务器的域名,使得可以确认所接收的任何内容与已知网络服务器有关。在一些方面中,替代域名可以是不对应于任何web服务器的域名。
将域名切换到替代域名允许浏览器304的用户通过欺骗MITM揭示其自身来确定MITM是否正在拦截浏览器304与web服务器306之间的通信。例如,在方法2中,用户通过在TCP和TLS通信期间提供第一域名并且在HTTP GET请求期间提供替代域名来欺骗MITM揭示其自身,该替代域名将引出在不存在MITM的情况下浏览器304原本不会从web服务器306接收的响应。
在该协议中,DNS Q消息316被传输至域名服务器(DNS)318,该域名服务器包括目标网络服务器306的网络地址,例如,“www.service.com”。
响应于DNS Q消息316,DNS 318返回DNS A消息320,该DNS A消息包括针对网络服务器206的IP地址,例如,“192.168.1.1”。
浏览器304通过将TCP SYN DEST消息322传输至所接收的IP地址“192.168.1.1”来发起TCP 3路握手,该IP地址在324处被假冒为IP地址“192.168.1.1”的MITM代理326拦截。
响应于TCP SYN DEST消息322,TCP SYNACK消息328由浏览器304从MITM代理326接收,就好像它是从IP地址“192.168.1.1”接收的。例如,在所接收的TCP SYNACK消息324中将不存在该消息实际上是从MITM代理326而不是IP地址“192.168.1.1”接收的指示。
响应于TCP SYNACK消息328,浏览器304将TCP ACK消息330传输至IP地址“192.168.1.1”,从而确认接收到TCP SYNACK消息232。TCPACK消息330再次被MITM代理326拦截,从而完成不与web服务器306的3路握手,而是与MITM代理326的3路握手。现在在浏览器304与MITM代理326之间建立TCP连接。重要的是要注意,从浏览器304的角度来看,连接是在浏览器304和web服务器306之间。
接下来,浏览器304通过使用包括“www.service.com”的SNI的TCP连接传输TLSHELLO消息332来发起TLS握手。MITM代理326截取TLS HELLO消息332并且在334选择具有匹配的SNI值的证书。MITM代理326然后将TLS HELLO消息336传输至浏览器304,该消息包括用于“www.service.com”的证书。
响应于接收到包括“www.serice.com”的证书的TLS HELLO消息336,浏览器304在338处验证证书。TLS握手完成,并且在浏览器304与MITM代理326之间建立TLS连接。重要的是注意,从浏览器304的观点来看,TLS连接是在浏览器304和web服务器306之间。
一旦浏览器304已经验证证书,浏览器304就在340处将要在HTTPS通信中使用的域名从“www.service.com”切换到替代域名,例如“www.alternate.com”。
浏览器304通过使用包括具有替代域名的URL“www.alternate.com/index.html”的TLS连接来传输HTTP GET消息342来继续遵循协议。
由于TLS连接在浏览器304与MITM代理326之间,而不是在浏览器304与web服务器306之间,所以MITM代理326截取HTTP GET消息342,在344检查HTTP请求,并且向DNS318传输DNS Q消息346以确定托管替代域名“www.alternate.com”的web服务器316的IP地址。MITM代理236从DNS218接收包括用于托管替代域名“www.alternate.com”的网络服务器316的IP地址“11.86.12.91”的DNS A消息348。
MITM代理236基于所接收的IP地址“11.86.12.91”建立与网络服务器316的TCP连接350,并且基于域名“www.alternate.com”建立与网络服务器206的TLS连接352。
接下来,MITM代理236将包括URL“www.alternate.com/index.html”的HTTP GET请求354传输至网络服务器316并且接收包括替代域名“www.alternate.com”的网页“index.html”的HTTP OK消息356。
MITM代理236在358处检查HTTP响应并且向浏览器304传输包括替代域名“www.alternate.com”的网页“index.html”的相应HTTP OK消息360。
在切换将由HTTPGET请求342使用的域名之后,浏览器304在362处接收替代域名“www.alternate.com”的网页“index.html”而不是TLS HELLO消息332的SNI中指定的域名的网页“index.html”,意味着浏览器304和web服务器306之间的通信已被拦截。例如,浏览器304的用户在从web服务器316看到替代域名的网页加载或通过监视网页的接收时,现在知道计算设备110的浏览器304与web服务器306之间的通信正被MITM拦截。
这是因为虽然MITM代理316拦截了包括针对网络服务器306的IP地址“192.168.1.1”的TCP SYN DEST消息322并且传输了好像其是在IP地址处的网络服务器306的确认,并且MITM代理316还拦截包括用于域名“www.service.com”的SNI的TLS HELLO消息332,并且传输包括用于域名“www.service.com”的证书的TLS HELLO消息336,MITM代理316独立地确定与HTTP GET请求342中提交的替代域名相关联的IP地址,例如,与域名“www.alternate.com”相关联的网络服务器的IP地址并且返回与替代域名相关联的网页“index.html”。
在接收与替代域名“www.alternate.com”相关联的网页“index.html”时接收匹配原始域名“www.service.com”的SNI值的有效证书向用户指示MITM存在,因为如果浏览器304直接与目标web服务器(例如,web服务器306)通信,则这种不一致将不存在。例如,域“www.service.com”的网络服务器306将不会响应于在URL中包括替代域的HTTP GET消息342而从替代域“www.alternate.com”传输网页“index.html”。
在一些方面中,浏览器304或计算装置110可例如经由显示器118向用户呈现已基于方法2检测到MITM的指示、图形、颜色或其他指示符。
中间人检测方法3:
参考图2和图3,在一些方面,用于在使用HTTPS协议的通信中检测MITM的第三方法可包括如上所述的方法1和方法2的组合。例如,在方法3中,浏览器可以如在方法1中将IP地址加扰为例如“192.1.68.11”,并且还可以如在方法2中将域名例如从“www.service.com”切换到“www.alternative.com”。
在一些方面,方法1和方法2的组合可按顺序执行,其中例如方法1中包括的通信之后可以是方法2中的通信。在一些方面,可替代地,方法2中的通信之后可以是方法1中的通信。
在根据方法1的HTTPS通信期间,如上所述,由浏览器接收包括针对域名“www.service.com”的网页“index.html”的HTTP OK消息262暗示或指示MITM正在拦截通信。
在根据方法2的HTTPS通信期间,如上所述,浏览器接收包括针对域名“www.alternate.com”的网页“index.html”的HTTP OK消息暗示或指示MITM正在拦截通信。
如果方法1和方法2的结果都暗示MITM正在拦截通信,则方法1和方法2的组合提供MITM正在拦截通信的进一步确认。
如果方法1和方法2中的一个的结果不暗示MITM正在拦截通信,例如,接收到错误或接收到在不存在MITM的情况下原本将存在的另一预期结果,但是方法1和方法2中的另一个确实暗示MITM正在拦截通信,则方法1和方法2的组合可以用于检测MITM,该MITM可能仅被这些方法中的一个而不是另一个欺骗揭示其自身。这在知道MITM是否存在和拦截通信方面提供了附加的安全层。
如果方法1和方法2的结果都不暗示MITM正在拦截通信,则可以向用户提供MITM不存在的附加保证。
在一些方面中,方法3可以在同一组通信中基于方法1和2的两种策略,以诱骗MITM揭示自身。例如,方法3可以如在方法1中将IP地址加扰到“198.1.68.11”,并且然后在同一组HTTPS通信期间,如在方法2中,将域名从“www.service.com”切换到“www.alternative.com”。浏览器对包括用于域名“www.alternate.com”或域名“www.service.com”的网页“index.html”的HTTP OK消息的接收暗示或指示MITM正在拦截通信。
在一些方面中,浏览器或计算设备110可以例如经由显示器118向用户呈现基于方法3已经检测到MITM的指示、图形、颜色或其他指示符。
中间人检测方法4:
现在参考图4,公开了在使用HTTPS协议的通信中检测中间人(MITM)的第四方法。
在高层级,如402部分中所说明,计算装置110的浏览器404与例如www.service.com的网络服务器406之间的HTTPS通信可包含浏览器404将HTTPSGET请求408传输到网络服务器406在设置410中所指定的IP地址处。例如,设置可以包括针对web服务器406的TCP IP地址“192.168.1.1”、“www.service.com”的TLS和“www.service.com”的HTTP。HTTPS GET请求408包括标识所请求的html网页(例如,“index.html”)的URL“www.service.com/index.html”。
响应于HTTPS GET请求408,具有IP地址“192.168.1.1”的网络服务器406(例如,“www.service.com”)将向浏览器404返回包括“index.html”网页的HTTPS OK传输412。浏览器然后可以例如经由显示器118将网页“index.html”呈现给用户。
在使用以上通信协议的正常情况下,浏览器404的用户将不知道MITM是否正在监视浏览器404与web服务器406之间的通信或MITM是否已拦截其与web服务器406的通信。
在414部分中,示出了方法4中涉及的通信协议的详细流程,其涉及使用浏览器404和web服务器406之间的通信的特定设置集合416。设置416被配置成允许浏览器404的用户通过欺骗MITM显露其自身来确定MITM是否正在拦截浏览器404和web服务器406之间的通信。例如,在方法4中,用户通过使用替代域名来欺骗MITM揭示其自身,该替代域名通过使用针对TLS SNI的DGA生成。所生成的替代域名将具有大量熵,例如,看起来是数字和字母的随机序列,如“ecff55bf3b6377a6.com”,这样使得由浏览器404接收的与该替代域名匹配的任何TLS证书将立即向计算设备110的浏览器404和用户建议存在MITM并且拦截通信。此外,如以下更详细描述的,可以通过响应于HTTPS GET请求从MITM实际接收用于域名“www.service.com”的网页“index.html”来进一步确认拦截。当使用这样生成的替代域名(其将引起在没有MITM存在的情况下浏览器404将不会另外从web服务器406接收的响应)时,可以确认MITM的存在。
在该协议中,DNS Q消息418被传输至域名服务器(DNS)420,该域名服务器包括目标网络服务器406的网络地址,例如,“www.service.com”。
响应于DNS Q消息418,DNS420返回包括web服务器406的IP地址(例如192.168.1.1)的DNSA消息422。
浏览器404通过将TCP SYN DEST消息424传输至IP地址“192.168.1.1”来发起TCP3路握手,该IP地址在426处被假冒为IP地址“192.168.1.1”的MITM代理428拦截。
响应于TCP SYN DEST消息4224,TCP SYNACK消息430由浏览器404从MITM代理428接收,就好像它是从IP地址“192.168.1.1”接收的一样。例如,在所接收的TCP SYNACK消息430中将不存在该消息实际上是从MITM代理428而不是IP地址“192.168.1.1”接收的指示。
响应于TCP SYNACK消息430,浏览器404将TCP ACK消息432传输至IP地址“192.168.1.1”,从而确认接收到TCP SYNACK消息430。TCP ACK消息432再次被MITM代理428拦截,从而完成不与web服务器406而是与MITM代理428的3路握手。现在在浏览器404与MITM代理428之间建立TCP连接。重要的是注意,从浏览器404的角度来看,连接是在浏览器404与web服务器406之间。
接下来,浏览器404通过使用包括SNI“ecff55bf3b6377a6.com”(由DGA生成的域名)的TCP连接传输TLS HELLO消息434来发起TLS握手。MITM代理428截取TLS HELLO消息434并在436选择具有匹配SNI值的证书。MITM代理428然后将TLS HELLO消息438传输至浏览器404,该消息包括用于“ecff55bf3b6377a6.com”的证书。
由于浏览器404知道域名“ecff55bf3b6377a6.com”是生成的域名,所以接收“ecff55bf3b6377a6.com”的证书指示MITM正在拦截浏览器404与web服务器406之间的通信。因而,证书的验证不是必需的。无论如何,浏览器404认为TLS握手完成,并且在浏览器404与MITM代理428之间建立TLS连接。与先前的方法不同,此时,浏览器404知道MITM代理428正在拦截通信。无论如何,浏览器404继续HTTPS通信,就好像它已经建立与web服务器406的TLS连接一样。
接下来,浏览器404使用包括URL“www.service.com/index.html”的TLS连接来发送HTTP GET消息442。
由于TLS连接在浏览器404与MITM代理428之间,而不是在浏览器404与web服务器406之间,MITM代理428拦截HTTP GET消息442,在444处检查HTTP请求,并且将DNS Q消息446传输至DNS 420以确定URL的域名(例如,“www.service.com”)的IP地址。
响应于DNS Q消息446,MITM代理428从DNS220接收包括域名“www.service.com”的IP地址“192.168.1.1”的DNS A消息448。
MITM代理428然后基于接收到的IP地址“192.168.1.1”建立与web服务器406的TCP连接450,并且基于域名“www.service.com”建立与web服务器406的TLS连接452。
接下来,MITM代理428将包括URL“www.service.com/index.html”的HTTP GET请求454发送到web服务器406,并且接收包括网页“index.html”的HTTP OK消息456。
MITM代理428在458处检查HTTP响应并且将包括网页“index.html”的相应HTTP OK消息460传输至浏览器404。
浏览器404在462处接收网页“index.html”确认浏览器404与网络服务器406之间的通信已经被拦截。例如,浏览器404的用户在看到网页加载或通过监视网页的接收后,现在知道计算设备110的浏览器404与web服务器406之间的通信正被截取。
这是因为虽然MITM代理428拦截了包括DGA生成的域名“ecff55bf3b6377a6.com”的TLS HELLO消息434,并且将生成的域名的证书发送回浏览器404(其自身可以指示拦截),但是MITM代理428通过查询DNS420以查找域名“www.service.com”,而不是在TLS SNI信息中指示的生成的域名“ecff55bf3b6377a6.com”,来进一步确定网络服务器206的IP地址。当访问网络服务器406时,MITM代理428然后使用域名“www.service.com”的IP地址,并且将网页返回到浏览器,就好像它已经首先从浏览器404接收到SNI中的域名“www.service.com”。在没有MITM代理428的情况下在浏览器404与web服务器406之间的正常通信中,所生成的域名将被使用并且将在浏览器404尝试与web服务器406通信以检索网页时造成失败或其他错误。
在一些方面中,浏览器404或计算设备110可以例如经由显示器118向用户呈现基于方法4已经检测到MITM的指示、图形、颜色或其他指示符。
中间人检测方法5:
参考图3和图4,在一些方面中,用于使用HTTPS协议检测通信中的MITM的第五方法可包含来自方法4的DGA与如上所述的方法2的域名切换的组合。例如,在方法5中,浏览器可以向DNS 420传输DNS Q消息418以得到域名,例如“www.service.com”,并且在DNS A消息422中从DNS 420接收相应的IP地址“192.168.1.1”,使用DGA生成域名,例如“ecff55bf3b6377a6.com”,传输包括生成的域名作为SNI值的TLS HELLO消息434,如以上针对方法4所述。浏览器例如在TLS HELLO消息438中接收到匹配所生成的域名的证书可以指示通信正在被MITM拦截。
接下来,浏览器可以在340以与方法2中类似的方式从生成的域名切换到替代域名(例如,“www.alternate.com”),并且传输包括替代域名的HTTP GET消息342。
在HTTP OK消息360中接收替代域名“www.alternate.com”的网页“index.html”进一步确认通信正被MITM拦截,如以上在方法2中所描述的。
在不背离本公开的范围的情况下,如上所述的中间人检测方法1-5中的任一个可在相同的HTTPS通信中或在多个HTTPS通信中组合。
图5示出了可以实现在本公开的一个实施例中在此描述的系统100、计算设备110、服务器150、系统、方法和计算机程序产品的任何部分的示例计算机或处理系统的示意图。计算机系统仅是合适的处理系统的一个示例,并且不旨在对本文所描述的方法的实施例的使用范围或功能提出任何限制。所示的处理系统可以与许多其他通用或专用计算系统环境或配置一起操作。可以适合于与处理系统一起使用的众所周知的计算系统、环境和/或配置的示例可以包括但不限于个人计算机系统、服务器计算机系统、瘦客户机、厚客户机、手持式或膝上型设备、多处理器系统、基于微处理器的系统、机顶盒、可编程消费电子产品、网络PC、小型计算机系统、大型计算机系统和包括任何上述系统或设备的分布式云计算环境等。
计算机系统可以在由计算机系统执行的计算机系统可执行指令(诸如程序模块)的一般上下文中描述。一般而言,程序模块可包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、逻辑、数据结构等。计算机系统可以在分布式云计算环境中实践,其中任务由通过通信网络链接的远程处理设备来执行。在分布式云计算环境中,程序模块可位于包括存储器存储设备的本地和远程计算机系统存储媒质两者中。
计算机系统的组件可包含(但不限于)一个或一个以上处理器或处理单元12、系统存储器16以及将包含系统存储器16的不同系统组件耦合到处理器12的总线14。处理器12可以包括执行本文所描述的方法的软件模块10。模块10可以被编程到处理器12的集成电路中,或者从存储器16、存储设备18或网络24或其组合加载。
总线14可表示若干类型的总线结构中的任一者中的一或多者,包含存储器总线或存储器控制器、外围总线、加速图形端口和使用多种总线架构中的任一者的处理器或局部总线。作为示例而非限制,此类架构包括工业标准架构(ISA)总线、微通道架构(MCA)总线、增强型ISA(EISA)总线、视频电子标准协会(VESA)局部总线和外围组件互连(PCI)总线。
计算机系统可包括各种计算机系统可读媒质。这样的介质可以是可由计算机系统访问的任何可用介质,并且它可以包括易失性和非易失性介质、可移动和不可移动介质两者。
系统存储器16可包括易失性存储器形式的计算机系统可读媒质,诸如随机存取存储器(RAM)和/或高速缓冲存储器或其他。计算机系统还可以包括其他可移动/不可移动、易失性/非易失性计算机系统存储媒质。仅作为示例,存储系统18可被提供用于从不可移动、非易失性磁介质(例如,&配额;硬盘驱动器&配额;以及.尽管未示出,磁盘驱动器用于从可移动非易失性磁盘(例如,&配额;软盘和配额;并且可以提供用于从诸如CD-ROM、DVD-ROM或其他光学介质之类的可移除的非易失性光盘读取或向其写入的光盘驱动器。在这样的实例中,每一个都可以通过一个或多个数据介质接口连接到总线14。
计算机系统还可以与一个或多个外部设备26(诸如键盘、定点设备、显示器28等)通信;使得用户能够与计算机系统交互的一个或多个设备;和/或使计算机系统能够与一个或多个其他计算设备通信的任何设备(例如,网卡、调制解调器等)。这样的通信可以经由输入/输出(I/O)接口20发生。
此外,计算机系统可以经由网络适配器22与诸如局域网(LAN)、通用广域网(WAN)和/或公共网络(例如,互联网)之类的一个或多个网络24通信。如图所示,网络适配器22通过总线14与计算机系统的其他组件通信。应当理解,虽然未示出,但是其他硬件和/或软件组件可以与计算机系统结合使用。示例包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动器阵列、RAID系统、磁带驱动器和数据归档存储系统等。
本发明可以是任何可能的集成技术细节水平的系统、方法和/或计算机程序产品。所述计算机程序产品可包含上面具有计算机可读程序指令的计算机可读存储媒体(或媒体),所述计算机可读程序指令用于致使处理器执行本发明的方面。
计算机可读存储媒质可以是可以保留和存储指令以供指令执行设备使用的有形设备。计算机可读存储媒质可以是例如但不限于电子存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或前述各项的任何合适的组合。计算机可读存储媒质的更具体示例的非穷举列表包括以下:便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或闪存)、静态随机存取存储器(SRAM)、便携式紧凑盘只读存储器(CD-ROM)、数字通用盘(DVD)、记忆棒、软盘、诸如穿孔卡或具有记录在其上的指令的凹槽中的凸起结构的机械编码设备、以及前述的任意合适组合。如本文中所使用的计算机可读存储媒质不应被解释为瞬态信号本身,诸如无线电波或其他自由传播的电磁波、通过波导或其他传输媒质传播的电磁波(例如,通过光纤电缆的光脉冲)、或通过导线传输的电信号。
本文所述的计算机可读程序指令可从计算机可读存储介质下载到相应的计算/处理设备,或经由网络(例如,互联网、局域网、广域网和/或无线网络)下载到外部计算机或外部存储设备。网络可以包括铜传输电缆、光传输光纤、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。每个计算/处理设备中的网络适配器卡或网络接口从网络接收计算机可读程序指令,并转发计算机可读程序指令以存储在相应计算/处理设备内的计算机可读存储媒质中。
用于执行本发明的操作的计算机可读程序指令可以是汇编器指令、指令集架构(ISA)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据、集成电路的配置数据、或以一种或多种编程语言(包括面向对象的编程语言,诸如Smalltalk、C++等)和过程式编程语言(诸如")的任何组合编写的源代码或目标代码;C&配额;编程语言或类似的编程语言。计算机可读程序指令可完全在用户”的计算机上执行、部分在用户”的计算机上执行、作为独立软件包执行、部分在用户”的计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在后一种情形中,远程计算机可以通过任何类型的网络(包括局域网(LAN)或广域网(WAN))连接到用户的计算机,或者可以连接到外部计算机(例如,通过使用互联网服务提供商的互联网)。在一些实施例中,电子电路(包括例如可编程逻辑电路、现场可编程门阵列(FPGA)或可编程逻辑阵列(PLA))可以通过利用计算机可读程序指令的状态信息来执行计算机可读程序指令以使电子电路个性化,以便执行本发明的方面。
本文中参考根据本发明的实施例的方法、设备(系统)和计算机程序产品的流程图说明和/或框图描述本发明的方面。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机可读程序指令来实现。
这些计算机可读程序指令可以被提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器以产生机器,使得经由计算机或其他可编程数据处理装置的处理器执行的指令创建用于实现在流程图和/或框图的一个或多个块中指定的功能/动作的装置。这些计算机可读程序指令还可以存储在计算机可读存储媒质中,所述计算机可读存储媒质可以指引计算机、可编程数据处理装置和/或其他设备以特定方式工作,使得具有存储在其中的指令的计算机可读存储媒质包括制品,所述制品包括实现流程图和/或框图中的一个或多个方框中规定的功能/动作的各方面的指令。
计算机可读程序指令还可以被加载到计算机、其他可编程数据处理装置或其他设备上,以使得一系列操作步骤在计算机、其他可编程装置或其他设备上执行以产生计算机实现的过程,使得在计算机、其他可编程装置或其他设备上执行的指令实现在流程图和/或框图的一个或多个框中指定的功能/动作。
附图中的流程图和框图图示了根据本发明的不同实施例的系统、方法和计算机程序产品的可能实现的架构、功能和操作。对此,流程图或框图中的每个方框可以代表模块、段或指令的一部分,其包括用于实现规定的逻辑功能的一个或多个可执行指令。在一些替代实施例中,框中所标注的功能可以不以图中所标注的次序发生。例如,取决于所涉及的功能,连续示出的两个框实际上可以基本上同时执行,或者这些框有时可以以相反的顺序执行。还将注意的是,框图和/或流程图中的每个框、以及框图和/或流程图中的框的组合可以由基于专用硬件的系统来实现,所述基于专用硬件的系统执行指定的功能或动作或执行专用硬件与计算机指令的组合。
尽管已经描述了本发明的特定实施例,但是本领域的技术人员将理解,存在与所描述的实施例等同的其他实施例。因此,应当理解,本发明不受具体说明的实施例的限制,而仅受所附权利要求书的范围的限制。
Claims (19)
1.一种在HTTPS通信期间检测中间人(MITM)的方法,所述方法由包括硬件的至少一个处理器实现,所述方法包括:
向DNS发送对域名的IP地址的查询;
从所述DNS接收所述域名的所述IP地址;
生成不同于所述域名的所述IP地址的替代IP地址;
向所述替代IP地址传送TCP消息;
从所述替代IP地址接收TCP确认消息;
响应于所接收的TCP确认,与所述替代IP地址建立TCP连接;
使用所述TCP连接传输TLS消息,所述TLS消息的SNI包括所述域名;
接收包括用于所述域名的证书的TLS回复消息;
验证所接收的证书;
响应于验证所接收的证书而建立TLS连接;
使用所述TLS连接来传送HTTP GET消息,所述HTTP GET消息的URL包括所述域名和与所述域名相关联的目标网页;
接收包括所述目标网页的HTTP OK消息;并且
基于对所述目标网页的接收,确定中间人正在拦截所述HTTPS通信。
2.根据权利要求1所述的方法,进一步包括基于所述确定经由显示器向用户呈现中间人正在截取该HTTPS通信的指示。
3.根据权利要求1所述的方法,其中通过对所接收的所述域名的IP地址中的号码进行加扰来生成所述替代IP地址。
4.根据权利要求1所述的方法,进一步包括:
向所述域名的所述IP地址发送第二TCP消息;
从所述域名的所述IP地址接收第二TCP确认消息;
响应于所接收的第二TCP确认而建立第二TCP连接;
使用所述第二TCP连接传输第二TLS消息,所述第二TLS消息的SNI包括所述域名;
接收包括用于所述域名的证书的第二TLS回复消息;
验证与针对所述域名的所述第二TLS回复消息一起接收的所述证书;
响应于与所述第二TLS回复消息一起接收的所述证书的验证,建立第二TLS连接;
使用所述第二TLS连接发送第二HTTP GET消息,所述第二HTTP GET消息的URL包括替代域名和与所述替代域名相关联的第二目标网页,所述替代域名不同于所述域名;并且
接收包括所述第二目标网页的第二HTTP OK消息,
其中,确定中间人正在拦截所述HTTPS通信还基于所述第二目标网页的接收。
5.一种在HTTPS通信期间检测中间人(MITM)的方法,所述方法由包括硬件的至少一个处理器实现,所述方法包括:
建立与域名的IP地址的TCP连接;
使用所述TCP连接传输TLS消息,所述TLS消息的SNI包括所述域名;
接收包括用于所述域名的所述证书的TLS回复消息;
验证所接收的证书;
响应于验证所接收的证书而建立TLS连接;
使用所述TLS连接发送HTTP GET消息,所述HTTP GET消息的URL包括替代域名和与所述替代域名相关联的目标网页,所述替代域名不同于所述域名;
接收包括所述目标网页的HTTP OK消息;并且
基于对所述目标网页的接收,确定中间人正在拦截所述HTTPS通信。
6.根据权利要求5所述的方法,进一步包括基于所述确定经由显示器向用户呈现中间人正在截取该HTTPS通信的指示。
7.根据权利要求5所述的方法,其中建立所述TCP连接包括:
向DNS传输对域名的IP地址的查询;
从所述DNS接收所述域名的所述IP地址;
向所述域名的所述IP地址传输TCP消息;
从所述域名的所述IP地址接收TCP确认消息;并且
响应于所接收的TCP确认而建立TCP连接。
8.根据权利要求5所述的方法,其中建立所述TCP连接包括:
向DNS发送对域名的IP地址的查询;
从所述DNS接收所述域名的所述IP地址;
生成不同于所述域名的所述IP地址的替代IP地址;
向所述替代IP地址传送TCP消息;
从所述替代IP地址接收TCP确认消息;并且
响应于接收所述TCP确认消息,建立与所述替代IP地址的所述TCP连接。
9.根据权利要求5所述的方法,进一步包括:
生成不同于所述域名的所述IP地址的替代IP地址;
建立到所述替代IP地址的第二TCP连接;
使用所述第二TCP连接传输第二TLS消息,所述第二TLS消息的SNI包括所述域名;
接收包括用于所述域名的证书的第二TLS回复消息;
验证与所述第二TLS回复消息一起接收的所述证书;
响应于与所述第二TLS回复消息一起接收的所述证书的验证,建立第二TLS连接;
使用所述第二TLS连接发送第二HTTP GET消息,所述第二HTTP GET消息的URL包括所述域名和与所述域名相关联的第二目标网页;并且
接收包括所述第二目标网页的第二HTTP OK消息,
其中,确定中间人正在拦截所述HTTPS通信还基于所述第二目标网页的接收。
10.根据权利要求9所述的方法,其中通过对所述域名的所述IP地址中的号码进行加扰来生成所述替代IP地址。
11.一种在HTTPS通信期间检测中间人(MITM)的方法,所述方法由包括硬件的至少一个处理器实现,所述方法包括:
建立与域名的IP地址的TCP连接;
使用域生成算法生成替代域名;
使用所述TCP连接传输TLS消息,所述TLS消息的SNI包括所生成的替代域名;
接收包括用于所生成的替代域名的证书的TLS回复消息;并且
基于所述证书的接收确定中间人正在拦截所述HTTPS通信。
12.根据权利要求11所述的方法,还包括基于所述确定经由显示器向用户呈现中间人正在拦截所述HTTPS通信的指示。
13.根据权利要求11所述的方法,其中所生成的替代域名具有高熵级别。
14.根据权利要求11所述的方法,其中建立所述TCP连接包括:
向DNS发送对域名的IP地址的查询;
从所述DNS接收所述域名的所述IP地址;
向所述域名的所述IP地址传输TCP消息;
从所述域名的所述IP地址接收TCP确认消息;并且
响应于所述TCP确认消息的接收而建立与所述IP地址的所述TCP连接。
15.根据权利要求11所述的方法,其中建立该TCP连接包括:
向DNS发送对域名的IP地址的查询;
从所述DNS接收所述域名的所述IP地址;
生成不同于所述域名的所述IP地址的替代IP地址;
向所述替代IP地址传送TCP消息;
从所述替代IP地址接收TCP确认消息;并且
响应于接收所述TCP确认消息,建立与所述替代IP地址的所述TCP连接。
16.根据权利要求11所述的方法,进一步包括:
响应于接收到所述证书,建立TLS连接;
使用所述TLS连接来传送HTTP GET消息,所述HTTP GET消息的URL包括所述域名和与所述域名相关联的目标网页;并且
接收包括所述目标网页的HTTP OK消息,
其中,确定中间人正在拦截所述HTTPS通信还基于对所述目标网页的接收。
17.根据权利要求11所述的方法,进一步包括:
响应于接收到所述证书,建立TLS连接;
使用所述TLS连接发送HTTP GET消息,所述HTTP GET消息的URL包括所述替代域名和与所述替代域名相关联的目标网页,所述替代域名不同于所述域名;并且
接收包括所述目标网页的HTTP OK消息,
其中,确定中间人正在拦截所述HTTPS通信还基于对所述目标网页的接收。
18.一种计算机程序产品,包括:
计算机可读存储介质,所述计算机可读存储介质由一个或多个处理单元可读并且存储指令,所述指令由一个或多个处理器执行以用于执行如在前权利要求中任一项所述的方法。
19.一种系统,包括:
存储器;
与所述存储器通信的至少一个处理器;并且
可由一个或多个处理器经由该存储器执行以便执行如权利要求1至17中任一项所述的方法的程序指令。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US15/872,493 | 2018-01-16 | ||
US15/872,493 US10693893B2 (en) | 2018-01-16 | 2018-01-16 | Detection of man-in-the-middle in HTTPS transactions independent of certificate trust chain |
PCT/IB2019/050126 WO2019142066A1 (en) | 2018-01-16 | 2019-01-08 | Detection of man-in-the-middle in https transactions |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111567014A true CN111567014A (zh) | 2020-08-21 |
CN111567014B CN111567014B (zh) | 2022-03-29 |
Family
ID=67214444
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201980008033.1A Active CN111567014B (zh) | 2018-01-16 | 2019-01-08 | Https事务中的中间人检测 |
Country Status (6)
Country | Link |
---|---|
US (2) | US10693893B2 (zh) |
JP (1) | JP7083460B2 (zh) |
CN (1) | CN111567014B (zh) |
DE (1) | DE112019000427T5 (zh) |
GB (1) | GB2583431B (zh) |
WO (1) | WO2019142066A1 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112954001A (zh) * | 2021-01-18 | 2021-06-11 | 武汉绿色网络信息服务有限责任公司 | 一种http转https双向透明代理的方法和装置 |
Families Citing this family (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10693893B2 (en) * | 2018-01-16 | 2020-06-23 | International Business Machines Corporation | Detection of man-in-the-middle in HTTPS transactions independent of certificate trust chain |
US10574444B2 (en) * | 2018-01-22 | 2020-02-25 | Citrix Systems, Inc. | Systems and methods for secured web application data traffic |
US11843675B2 (en) * | 2018-10-10 | 2023-12-12 | Nec Corporation | Method and system for synchronizing user identities |
KR102617715B1 (ko) * | 2019-02-01 | 2023-12-27 | 삼성전자주식회사 | 전자 장치 및 전자 장치의 제어 방법 |
US11381598B2 (en) * | 2019-12-27 | 2022-07-05 | Paypal, Inc. | Phishing detection using certificates associated with uniform resource locators |
US11470114B2 (en) | 2019-12-27 | 2022-10-11 | Paypal, Inc. | Malware and phishing detection and mediation platform |
US11671448B2 (en) | 2019-12-27 | 2023-06-06 | Paypal, Inc. | Phishing detection using uniform resource locators |
US11356423B2 (en) * | 2020-01-14 | 2022-06-07 | Cisco Technology, Inc. | Managing encrypted server-name-indication (ESNI) at proxy devices |
US10924456B1 (en) * | 2020-07-14 | 2021-02-16 | Centripetal Networks, Inc. | Methods and systems for efficient encrypted SNI filtering for cybersecurity applications |
US11558204B2 (en) * | 2020-08-17 | 2023-01-17 | International Business Machines Corporation | Attesting control over network devices |
IT202000025168A1 (it) * | 2020-10-23 | 2022-04-23 | Cleafy Spa | Metodo per tracciare endpoint malevoli in diretta comunicazione con un back end applicativo utilizzando tecniche di tls fingerprinting |
CN112509002A (zh) * | 2020-11-27 | 2021-03-16 | 山东航天电子技术研究所 | 一种基于连通域标记的目标检测跟踪方法 |
US11314841B1 (en) | 2021-01-07 | 2022-04-26 | Bank Of America Corporation | Web browser communication validation extension |
US11582223B2 (en) | 2021-01-07 | 2023-02-14 | Bank Of America Corporation | Browser extension for validating communications |
CN113852551A (zh) * | 2021-09-13 | 2021-12-28 | 新华三大数据技术有限公司 | 一种报文处理方法及装置 |
US11582208B1 (en) | 2021-10-11 | 2023-02-14 | Cisco Technology, Inc. | Detecting domain fronting through correlated connections |
CN114422200A (zh) * | 2021-12-28 | 2022-04-29 | 中国电信股份有限公司 | 一种域名拦截方法、装置及电子设备 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101594261A (zh) * | 2008-05-28 | 2009-12-02 | 北京百问百答网络技术有限公司 | 一种假冒网站监测方法及其系统 |
CN104486140A (zh) * | 2014-11-28 | 2015-04-01 | 华北电力大学 | 一种检测网页被劫持的装置及其检测方法 |
US20150163236A1 (en) * | 2013-12-09 | 2015-06-11 | F-Secure Corporation | Unauthorised/malicious redirection |
CN105184159A (zh) * | 2015-08-27 | 2015-12-23 | 深圳市深信服电子科技有限公司 | 网页篡改的识别方法和装置 |
US9419942B1 (en) * | 2013-06-05 | 2016-08-16 | Palo Alto Networks, Inc. | Destination domain extraction for secure protocols |
CN107347059A (zh) * | 2016-05-06 | 2017-11-14 | 腾讯科技(深圳)有限公司 | 一种漏洞检测的方法及检测终端 |
Family Cites Families (22)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080104672A1 (en) | 2006-10-25 | 2008-05-01 | Iovation, Inc. | Detecting and preventing man-in-the-middle phishing attacks |
US8533821B2 (en) | 2007-05-25 | 2013-09-10 | International Business Machines Corporation | Detecting and defending against man-in-the-middle attacks |
US20080318548A1 (en) | 2007-06-19 | 2008-12-25 | Jose Bravo | Method of and system for strong authentication and defense against man-in-the-middle attacks |
US20090210712A1 (en) | 2008-02-19 | 2009-08-20 | Nicolas Fort | Method for server-side detection of man-in-the-middle attacks |
US8055587B2 (en) | 2008-06-03 | 2011-11-08 | International Business Machines Corporation | Man in the middle computer technique |
US20100088766A1 (en) | 2008-10-08 | 2010-04-08 | Aladdin Knoweldge Systems Ltd. | Method and system for detecting, blocking and circumventing man-in-the-middle attacks executed via proxy servers |
JP5412816B2 (ja) * | 2008-12-08 | 2014-02-12 | 株式会社リコー | 情報処理装置及びプログラム |
US8756684B2 (en) | 2010-03-01 | 2014-06-17 | Emc Corporation | System and method for network security including detection of attacks through partner websites |
US9015469B2 (en) * | 2011-07-28 | 2015-04-21 | Cloudflare, Inc. | Supporting secure sessions in a cloud-based proxy service |
CN102571770B (zh) | 2011-12-27 | 2015-02-04 | 北京神州绿盟信息安全科技股份有限公司 | 中间人攻击检测方法、装置、服务器及系统 |
US20140298415A1 (en) * | 2013-03-28 | 2014-10-02 | Research In Motion Limited | Method and system for providing connectivity for an ssl/tls server behind a restrictive firewall or nat |
CN103647783A (zh) | 2013-12-23 | 2014-03-19 | 上海交通大学无锡研究院 | 一种基于主动探测的网络中间人攻击定位方法 |
CN104936170B (zh) | 2014-03-21 | 2019-01-18 | 华为技术有限公司 | 检测中间人攻击的方法与装置 |
WO2016088351A1 (ja) * | 2014-12-01 | 2016-06-09 | 日本電気株式会社 | ダミー情報挿入装置、ダミー情報挿入方法および記録媒体 |
US10305871B2 (en) * | 2015-12-09 | 2019-05-28 | Cloudflare, Inc. | Dynamically serving digital certificates based on secure session properties |
US10440053B2 (en) * | 2016-05-31 | 2019-10-08 | Lookout, Inc. | Methods and systems for detecting and preventing network connection compromise |
US10284526B2 (en) * | 2017-07-24 | 2019-05-07 | Centripetal Networks, Inc. | Efficient SSL/TLS proxy |
US11233777B2 (en) * | 2017-07-24 | 2022-01-25 | Centripetal Networks, Inc. | Efficient SSL/TLS proxy |
US20190068556A1 (en) * | 2017-08-31 | 2019-02-28 | Check Point Software Technologies Ltd. | Method to avoid inspection bypass due to dns poisoning or http host header spoofing |
US10693893B2 (en) * | 2018-01-16 | 2020-06-23 | International Business Machines Corporation | Detection of man-in-the-middle in HTTPS transactions independent of certificate trust chain |
CN110557355B (zh) * | 2018-05-31 | 2021-07-27 | 上海连尚网络科技有限公司 | 一种用于通过用户设备检测中间人攻击的方法与设备 |
KR102617715B1 (ko) * | 2019-02-01 | 2023-12-27 | 삼성전자주식회사 | 전자 장치 및 전자 장치의 제어 방법 |
-
2018
- 2018-01-16 US US15/872,493 patent/US10693893B2/en active Active
-
2019
- 2019-01-08 JP JP2020539272A patent/JP7083460B2/ja active Active
- 2019-01-08 GB GB2011925.1A patent/GB2583431B/en active Active
- 2019-01-08 WO PCT/IB2019/050126 patent/WO2019142066A1/en active Application Filing
- 2019-01-08 CN CN201980008033.1A patent/CN111567014B/zh active Active
- 2019-01-08 DE DE112019000427.1T patent/DE112019000427T5/de active Pending
-
2020
- 2020-03-12 US US16/817,091 patent/US11165796B2/en active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101594261A (zh) * | 2008-05-28 | 2009-12-02 | 北京百问百答网络技术有限公司 | 一种假冒网站监测方法及其系统 |
US9419942B1 (en) * | 2013-06-05 | 2016-08-16 | Palo Alto Networks, Inc. | Destination domain extraction for secure protocols |
US20150163236A1 (en) * | 2013-12-09 | 2015-06-11 | F-Secure Corporation | Unauthorised/malicious redirection |
CN104486140A (zh) * | 2014-11-28 | 2015-04-01 | 华北电力大学 | 一种检测网页被劫持的装置及其检测方法 |
CN105184159A (zh) * | 2015-08-27 | 2015-12-23 | 深圳市深信服电子科技有限公司 | 网页篡改的识别方法和装置 |
CN107347059A (zh) * | 2016-05-06 | 2017-11-14 | 腾讯科技(深圳)有限公司 | 一种漏洞检测的方法及检测终端 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112954001A (zh) * | 2021-01-18 | 2021-06-11 | 武汉绿色网络信息服务有限责任公司 | 一种http转https双向透明代理的方法和装置 |
Also Published As
Publication number | Publication date |
---|---|
DE112019000427T5 (de) | 2020-10-01 |
WO2019142066A1 (en) | 2019-07-25 |
US20200213335A1 (en) | 2020-07-02 |
GB202011925D0 (en) | 2020-09-16 |
JP2021510877A (ja) | 2021-04-30 |
US20190222588A1 (en) | 2019-07-18 |
JP7083460B2 (ja) | 2022-06-13 |
CN111567014B (zh) | 2022-03-29 |
GB2583431A (en) | 2020-10-28 |
US11165796B2 (en) | 2021-11-02 |
US10693893B2 (en) | 2020-06-23 |
GB2583431B (en) | 2021-03-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111567014B (zh) | Https事务中的中间人检测 | |
US10284526B2 (en) | Efficient SSL/TLS proxy | |
US9961103B2 (en) | Intercepting, decrypting and inspecting traffic over an encrypted channel | |
US10157280B2 (en) | System and method for identifying security breach attempts of a website | |
CN109413201B (zh) | Ssl通信方法、装置及存储介质 | |
US10257171B2 (en) | Server public key pinning by URL | |
US10333922B1 (en) | Techniques for network site validation | |
US11233777B2 (en) | Efficient SSL/TLS proxy | |
Quach et al. | Investigation of the 2016 linux tcp stack vulnerability at scale | |
Prandini et al. | Splitting the HTTPS stream to attack secure web connections | |
Patni et al. | Man-in-the-middle attack in HTTP/2 | |
EP3242444A1 (en) | Service processing method and device | |
Kyatam et al. | Heartbleed attacks implementation and vulnerability | |
CN114448706A (zh) | 一种单包授权方法、装置、电子设备及存储介质 | |
US11558204B2 (en) | Attesting control over network devices | |
US11102239B1 (en) | Client device identification on a network | |
Duddu et al. | Secure socket layer stripping attack using address resolution protocol spoofing | |
US9800568B1 (en) | Methods for client certificate delegation and devices thereof | |
Lee et al. | Analyzing spatial differences in the TLS security of delegated web services | |
CN114679323B (zh) | 网络连接方法、装置、设备及存储介质 | |
US11757839B2 (en) | Virtual private network application platform | |
US11848964B2 (en) | Zero trust end point network security device | |
Hussain et al. | Enc‐DNS‐HTTP: Utilising DNS Infrastructure to Secure Web Browsing | |
CN106464684B (zh) | 业务处理方法及装置 | |
US11258884B1 (en) | Secure remote access based on inspection and validation of remote access protocol traffic |
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 |