CN115315926A - 用于实现基于应用层和基于传输层的安全规则的反向代理服务器 - Google Patents
用于实现基于应用层和基于传输层的安全规则的反向代理服务器 Download PDFInfo
- Publication number
- CN115315926A CN115315926A CN202180023581.9A CN202180023581A CN115315926A CN 115315926 A CN115315926 A CN 115315926A CN 202180023581 A CN202180023581 A CN 202180023581A CN 115315926 A CN115315926 A CN 115315926A
- Authority
- CN
- China
- Prior art keywords
- reverse proxy
- proxy server
- client
- server
- request 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
- 230000004044 response Effects 0.000 claims description 67
- 238000000034 method Methods 0.000 claims description 49
- 230000008520 organization Effects 0.000 claims description 14
- 238000012546 transfer Methods 0.000 claims description 8
- 230000005540 biological transmission Effects 0.000 claims description 6
- 230000003287 optical effect Effects 0.000 description 11
- 238000004590 computer program Methods 0.000 description 10
- 230000006870 function Effects 0.000 description 10
- 235000014510 cooky Nutrition 0.000 description 9
- 238000010586 diagram Methods 0.000 description 7
- 238000004891 communication Methods 0.000 description 6
- 230000000694 effects Effects 0.000 description 5
- 238000012545 processing Methods 0.000 description 4
- 238000012360 testing method Methods 0.000 description 3
- VYZAMTAEIAYCRO-UHFFFAOYSA-N Chromium Chemical compound [Cr] VYZAMTAEIAYCRO-UHFFFAOYSA-N 0.000 description 2
- 230000001627 detrimental effect Effects 0.000 description 2
- 238000012544 monitoring process Methods 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 230000008569 process Effects 0.000 description 2
- 239000004984 smart glass Substances 0.000 description 2
- 240000005020 Acaciella glauca Species 0.000 description 1
- 241001362551 Samba Species 0.000 description 1
- 238000007796 conventional method Methods 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 235000003499 redwood Nutrition 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
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/02—Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
- H04L63/0281—Proxies
-
- 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/083—Network architectures or network communication protocols for network security for authentication of entities using passwords
-
- 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/10—Network architectures or network communication protocols for network security for controlling access to devices or network resources
-
- 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/10—Network architectures or network communication protocols for network security for controlling access to devices or network resources
- H04L63/102—Entity profiles
-
- 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
- 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/20—Network architectures or network communication protocols for network security for managing network security; network security policies in general
-
- 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/2866—Architectures; Arrangements
- H04L67/2895—Intermediate processing functionally located close to the data provider application, e.g. reverse proxies
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)
- Information Transfer Between Computers (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Cosmetics (AREA)
Abstract
描述了经由反向代理服务器链实现基于应用层和基于传输层的安全规则。链中的每个反向代理服务器被配置为针对意在目标服务器的客户端消息执行特定功能和/或将与消息有关的上下文信息传送到链中的后续反向代理服务器。例如,链中的第一反向代理服务器被配置为在消息的传输层中包括特定于客户端的元数据。链中的第二反向代理服务器基于元数据执行基于传输层的策略规则。这使得第二反向代理服务器能够在逐个客户端的基础上管理传输层连接,从而使第二反向代理服务器能够在为授权的客户端维持传输层连接时,阻止未经授权的客户端。链中的第三反向代理服务器执行基于应用层的策略规则。
Description
背景技术
在Web环境中,客户端使用超文本传输协议(HTTP)。Web服务器为用户提供对诸如文本、图形、图像、声音、视频等文件的访问。为了提高安全性,可以使用反向代理服务器来代表外部客户端的安全Web服务器。不允许外部客户端直接访问Web服务器。相反,他们的请求被发送到反向代理服务器,然后将客户端请求转发到Web服务器。反向代理服务器将完成的请求返回给客户端,同时对客户端隐藏Web服务器的身份。这可以防止外部客户端获得对Web服务器的直接、不受监视的访问。
反向代理服务器也可用于强制实施安全规则,以选择性地为客户端提供对Web服务器的访问。然而,此类代理服务器仅限于监控传入请求的HTTP层,因此,此类代理服务器仅限于监控和防止对Web服务器的未经授权的读/写操作,同时仍允许未经授权的客户端连接到Web服务器。
发明内容
提供本发明内容来以简化形式介绍概念的选择,这些概念将在下面的具体实施方式中进一步描述。本发明内容并非旨在标识所要求保护的主题的关键特征或基本特征,也不旨在用于限制所要求保护的主题的范围。
描述了用于实现基于应用层和基于传输层的安全规则的方法、系统、装置和计算机可读存储介质。例如,如本文所述,反向代理服务器以链状方式耦合。链中的每个反向代理服务器被配置为针对从客户端接收到的意在目标服务器的请求消息执行特定功能。链中的反向代理服务器还将与请求消息有关的上下文信息传送到链中通常不知道的后续反向代理服务器。例如,链中的应用层反向代理服务器被配置为在请求消息的传输层中包括特定于客户端的元数据(通常位于请求消息的应用层中)。链中的后续传输层反向代理服务器基于元数据执行基于传输层的策略规则。这使传输层反向代理服务器能够在逐个用户的基础上管理传输层连接,从而使传输层反向代理服务器能够在为授权客户端维持传输层连接的同时,阻止未经授权的客户端访问目标服务器。链中的另一应用层反向代理基于元数据执行基于应用层的策略规则。例如,应用层反向代理确定特定客户端是否被授权对目标服务器提供的资源执行操作(例如,读取或写入操作)。
下面参照附图详细描述实施例的进一步特征和优点,以及各种实施例的结构和操作。注意,方法和系统不限于本文描述的特定实施例。这些实施例在本文中仅出于说明性目的而呈现。基于本文包含的教导,其他实施例对于相关领域的技术人员将是显而易见的。
附图说明
附图说明了本申请的实施例,并与说明书一起构成说明书的一部分,这些附图进一步用于解释实施例的原理,并使相关领域的技术人员能够做出并使用实施例。
图1示出了根据示例实施例的用于经由反向代理服务器链实现安全规则的系统的框图。
图2示出了根据另一示例实施例的用于经由反向代理服务器链实现安全规则的系统的框图。
图3示出了根据示例实施例的用于基于安全规则确定客户端是否被授权访问目标服务器的方法的流程图。
图4示出了根据示例实施例的用于基于安全规则确定客户端是否被授权针对目标服务器执行操作的方法的流程图。
图5示出了根据示例实施例的用于通知客户端用于与目标服务器通信而建立的传输层连接已经终止的方法的流程图。
图6示出了根据示例实施例的用于通知客户端用于与目标服务器通信而建立的传输层连接已经终止的框图。
图7是可用于实现各种实施例的示例基于处理器的计算机系统的框图。
当结合附图时,本文描述的实施例的特征和优点将经由以下阐述的具体实施方式变得更加明显,其中相同的附图标号自始至终标识对应的元件。在附图中,相同的附图标号通常表示相同的、功能相似的和/或结构相似的元件。元件首次出现的附图由相应参考编号中最左边的数字表示。
具体实施方式
一、简介
以下详细描述公开了许多示例实施例。本专利申请的范围不限于公开的实施例,还包括公开的实施例的组合,以及对公开的实施例的修改。
说明书中对“一个实施例”、“实施例”、“一示例实施例”等的引用表明所描述的实施例可以包括特定的特征、结构或特性,但每个实施例不一定都包括特定的特征、结构或特性。此外,这些短语不一定指相同的实施例。此外,当结合实施例描述特定特征、结构或特性时,认为在本领域技术人员的知识范围内实现与其他实施例结合的这种特征、结构或特性,无论是否明确被描述。
在讨论中,除非另有说明,修饰本公开实施例的一个或多个特征的条件或关系特性的形容词(诸如“基本上”和“约”)被理解为意味着条件或特性被定义在公差范围内对于预期应用的实施例的操作是可接受的。
多个示例性实施例被描述如下。注意,本文提供的任何章节/小节标题并非旨在限制。贯穿本文档描述了实施例,并且任何类型的实施例可以包括在任何部分/小节下。此外,任何公开的实施例部分/子部分可以以任何方式与在相同部分/子部分和/或不同部分/子部分中描述的任何其他实施例组合。
二、示例实施例
本文描述的实施例涉及被配置为实现基于应用层和基于传输层的安全规则的反向代理服务器。例如,如本文所述,反向代理服务器以链状方式耦合。链中的每个反向代理服务器被配置为关于从客户端接收到的、意在目标服务器的请求消息执行特定功能。链中的代理服务器还将与请求消息有关的上下文信息传达到链中通常不知道的后续反向代理服务器。例如,链中的第一应用层反向代理服务器被配置为在请求消息的传输层中包括特定于客户端的元数据(其通常位于请求消息的应用层中)。链中的后续传输层反向代理服务器基于元数据执行基于传输层的策略规则。这有利地使传输层反向代理服务器能够在逐个用户的基础上管理传输层连接,从而使传输层反向代理服务器能够在为授权的客户端维持传输层连接时,阻止未经授权的客户端访问目标服务器。链中的另一应用层反向代理服务器基于元数据执行基于应用层的策略规则。例如,应用层反向代理服务器确定特定客户端是否被授权针对目标服务器提供的资源执行操作(例如,读取或写入操作)。
本文描述的技术在应用层和传输层上都提供了鲁棒的特定于客户端的安全措施。传统的传输层反向代理服务器无法访问特定于客户端的元数据,并且有效地将所有客户端视为单个客户端。同样地,这样的传统代理服务器利用反向代理与目标服务器之间的单个连接用于向目标服务器提供请求消息的所有客户端。因此,如果响应于确定单个客户端未被授权访问目标服务器而终止连接,则也阻止使用该连接的所有客户端访问目标服务器。这对于被授权访问目标服务器的有效客户端是有害的。此处描述的技术经由与每个客户端建立各自的连接(而不是针对所有客户端建立单个连接)来有利地避免这个问题,每个客户端可以基于对传输层反向代理可用的特定于客户端的元数据而被单独终止。
此外,在代理服务器链中跨不同反向代理服务器分配功能允许选择性地部署反向代理服务器,其中仅部署执行所需功能的反向代理服务器。这有利地实现了可用于特定场景的功能的定制,并且还在部署的代理服务器之间分配负载,从而减少给定代理服务器的处理开销。
例如,图1示出了根据一个实施例的用于经由反向代理服务器链实现安全规则的系统100的框图。如图1所示,系统100包括多个客户端102A-102N、反向代理服务器链104和目标服务器106。客户端102A-102N中的每个经由第一网络108通信地耦合到反向代理服务器链104。反向代理服务器链104经由第二网络110通信地耦合到目标服务器106。网络108和110中的每个可以包括一个或多个网络,诸如局域网(LAN)、广域网(WAN)、企业网络、互联网等,并且可以包括一个或多个有线和/或无线部分。
客户端102A-102N、反向代理服务器链104和目标服务器106中的每个被配置为实现请求-响应协议,其中请求消息被由此传送并且响应于请求消息的消息被接收。根据实施例,客户端102A-102N、反向代理服务器链104和目标服务器106中的每个被配置为传送超文本传输协议(HTTP)请求并接收HTTP响应。例如,客户端102A-102N中的每个被配置为执行浏览器应用(即,Web浏览器),该浏览器应用被配置为发送和接收这样的请求和响应。浏览器应用使网络信息资源能够被检索、呈现和遍历。信息资源可以由浏览器应用使用网络地址(诸如统一资源标识符(URI))访问。信息资源的示例包括网页、图像、视频和其他形式的内容。浏览器应用的示例包括由Microsoft Corp.of Redmond,Washington发布的Microsoft由Mozilla Corp.of Mountain View,California发布的Mozilla由Apple Inc.of Cupertino,California发布的和由Google Inc.of MountainView,California发布的 Chrome。
根据另一实施例,客户端102A-102N、反向代理服务器链104和目标服务器106中的每个被配置为发送远程桌面协议(RDP)请求并接收RDP响应。例如,客户端102A-102N反向代理服务器链104和目标服务器106中的每个被配置为执行被配置为发送和接收这样的请求和响应的RDP客户端应用。RDP客户端应用的示例包括但不限于由Microsoft Corp发布的Remote Desktop ConnectionTM、由Oracle Corp.of Redwood City,California发布的发布的VirtualBox Remote Display ProtocolTM、开源软件应用、FreeRDP等。
根据进一步的实施例,客户端102A-102N、反向代理服务器链104和目标服务器106中的每个被配置为发送服务器消息块(SMB)请求并接收SMB响应。例如,客户端102A-102N中的每个被配置为执行被配置为发送和接收这样的请求和响应的SMB客户端应用。SMB客户端应用的示例包括但不限于Samba、Netsmb等。
根据又一实施例,客户端102A-102N、反向代理服务器链104和目标服务器106中的每个被配置为发送安全外壳(SSH)请求并接收SSH响应。例如,客户端102A-102N、反向代理服务器链104和目标服务器106中的每个被配置为执行被配置为发送和接收这样的请求和响应的SSH客户端应用。SSH客户端应用的示例包括但不限于AbsoluteTelnetTM、ConnectBotTM、SecureCRT等。
注意,上述请求-响应协议纯粹是示例性的,并且客户端102A-102N、反向代理服务器链104和目标服务器106中的每个可以被配置为实现和执行其他请求-响应协议。
客户端102A-102N中的每个可以是任何类型的固定或移动计算设备,包括移动计算机或移动计算设备(例如, 设备、膝上型计算机、笔记本计算机、平板计算机(诸如Apple iPadTM、上网本等))、可穿戴计算设备(例如,包括智能眼镜(诸如GlassTM等)的头戴式设备)或固定计算设备(诸如台式计算机或PC(个人计算机))。
反向代理服务器链104包括以链状方式通信耦合的多个反向代理服务器。反向代理服务器链104位于目标服务器106的前面,使得反向代理服务器链104可以服务于来自任何客户端(例如,客户端102A-102N)的请求。这样,反向代理服务器链104的反向代理服务器不同于正向代理服务器,正向代理服务器位于一个或多个客户端上的特定组的前面,并充当这些客户端联系任何服务器的中介。换句话说,正向代理服务器代表客户端进行操作,而反向代理服务器代表服务器(例如,目标服务器106)进行操作。
反向代理服务器链104被配置为实现安全策略以保护目标服务器106(以及由此提供的资源)免受未经授权的访问和操作。例如,反向代理服务器链104被配置为管理客户端102A-102N与目标服务器106之间的传输层(例如,传输控制协议(TCP))活动,并确定客户端102A-102N中的特定客户端是否被授权基于客户端提出的请求与目标服务器106通信。响应于确定客户端102A-102N中的一个客户端未被授权与目标服务器106通信,反向代理服务器链104终止客户端与反向代理服务器链104的连接,同时维持授权客户端的连接,从而阻止对目标服务器106的访问只有未经授权的客户。反向代理服务器链104还被配置为管理客户端102A-102N与目标服务器106之间的应用层(例如,HTTP)活动,并确定客户端102A-102N中的特定客户端是否被授权执行关于提供的资源的操作由目标服务器106根据客户端提出的请求。
如将在下面参照图2描述的,反向代理服务器链104的每个反向代理服务器被配置为执行特定功能以实现前述特征。例如,第一反向代理服务器被配置为管理传输层活动,第二反向代理服务器被配置为管理应用层活动。反向代理服务器链104中的其他反向代理服务器可以被配置为执行其他类型的功能。以这种方式分配功能(而不是将所有功能合并到单个反向代理服务器中)允许选择性部署反向代理服务器,其中仅部署执行所需功能的反向代理服务器。这有利地实现了可用于特定场景的功能的定制,并且还在部署的代理服务器之间分配负载,从而减少给定代理服务器的处理开销。
反向代理服务器链104中的一个或多个反向代理服务器可以经由被配置为处理数据的物理计算设备、在物理计算设备上执行的虚拟机和/或包括一个或多个处理器和/或存储器的任何类型的设备被实现。计算设备的示例包括但不限于台式计算机或PC(个人计算机)、服务器、基于云的环境中的计算节点、物联网(IoT)设备、个人数字助理(PDA)、膝上型计算机、笔记本计算机、平板计算机、上网本、智能手机、可穿戴计算设备(例如,包括智能眼镜、虚拟耳机、智能手表等的头戴式设备))和/或类似的。可选地,反向代理服务器链104中的一个或多个反向代理可以被实现为在物理计算设备或虚拟机上执行的软件应用程,或者可以被实现为容器化应用,该容器化应用被配置为经由在物理计算设备上执行的容器引擎执行。容器引擎的示例包括但不限于由公司发布的
目标服务器106(也称为源服务器)被配置为处理和响应源自客户端102A-102N的传入请求消息(例如,HTTP请求、SSH请求、RDP请求、SMB请求等)。目标服务器106提供可由客户端102A-102N经由反向代理服务器链104访问的资源和/或Web应用。Web应用的示例包括但不限于Web电子邮件应用(例如,由Google Inc.发布的)、由Microsoft Corp发布的Outlook.comTM等)、文件共享应用(例如,由Dropbox,Inc.of San Francisco,California发布的等)、生产力应用(例如,由Microsoft Corp发布的由Google,Inc.发布的Google AppsTM等)等。尽管图1将目标服务器106显示为单个服务器,但目标服务器106可以包括任意数量的服务器。
图2示出了根据另一个实施例的用于经由反向代理服务器链来实现安全规则的系统200的框图。如图2所示,系统200包括第一客户端202A、第二客户端202B、反向代理服务器链204和目标服务器206。如上面参照图1分别描述的,第一客户端202A和第二客户端202B是客户端102A-102N的示例,反向代理服务器链204是反向代理服务器链104的示例,并且目标服务器206是目标服务器106的示例。反向代理服务器链204包括多个反向代理服务器。例如,如图2所示,反向代理服务器链204包括第一反向代理服务器208、第二反向代理服务器210、第三反向代理服务器212和第四反向代理服务器214。
客户端202A和202B中的每个都被配置为传输意在目标服务器206的请求消息。例如,如图2所示,第一客户端202A发送请求消息216,并且第二客户端202B发送请求消息218。为了发送请求消息216,在客户端202A上执行的客户端软件(例如,浏览器应用)首先与第一反向代理服务器208建立传输层连接220,并经由连接220将请求消息216传输到第一反向代理服务器208。为了传输请求消息218,在客户端202B上执行的客户端软件(例如,浏览器应用程序)首先与第一反向代理服务器208建立传输层连接222,并经由连接220将请求消息218传输到第一反向代理服务器208。根据实施例,传输层根据传输控制协议(TCP),尽管本文描述的实施例不限于此。根据这样的实施例,客户端202A和202B中的每个与第一反向代理服务器208交换SYN和ACK控制消息以分别建立连接220和222。
根据实施例,请求消息220和222是超文本传输协议(HTTP)消息,其包括应用层(例如,HTTP)信息。这样的信息针对请求消息220在图2中被示出。如图2所示,请求消息220包括GET方法,该方法指定要对资源(“example.txt”)和路径(“/test/”)执行的操作(即,读取操作),资源由目标服务器206存储在该路径。还指定用于传输请求消息220的应用层协议的版本(即,“HTTP/l.l”)。请求消息220还指定主机名(例如,“destinationserver.com”),该主机名标识请求消息220所针对的目标服务器(例如,目标服务器206)和用于连接220的端口号(例如,80)。请求消息220还可以包括包含与客户端202A相关联的元数据(例如,认证信息)的cookie(例如,“cookie=<auth_key>”)。例如,元数据可以包括与客户端202A的用户相关联的用户名、与用户名相关联的密码、个人识别码(PIN)等。请求消息220还可以包括发送请求消息220的应用的标识符(例如,用户代理:Chrome)。在此示例中,应用是浏览器应用程序。
第一反向代理服务器208被配置为分别经由连接220和222接收请求消息216和218。第一反向代理服务器208是应用层反向代理,其被配置为分析和/或解释包括在请求消息216和218中的应用层信息(即,图2中所示的请求消息220的信息)。例如,第一反向代理服务器208是HTTP反向代理。根据实施例,应用层根据HTTP协议,尽管本文描述的实施例不限于此。
第一反向代理服务器208被配置为针对反向代理服务器链204中的后续反向代理服务器提供关于客户端202A和202B的上下文,该反向代理服务器是传输层反向代理服务器。例如,第一反向代理服务器208被配置为针对第三反向代理服务器212提供上下文,第三反向代理服务器212是传输层反向代理。如下面将描述的,第三反向代理服务器212利用上下文信息来确定客户端(例如,客户端202A和202B)是否被授权与目标服务器206通信。根据实施例,第一反向代理服务器208将上下文信息包括在请求消息216的HTTP CONNECT方法表头中,并将修改后的请求消息(显示为请求消息216')提供给链中的下一反向代理(例如,第二反向代理服务器210)。
例如,如图2所示(参考修改后的请求消息216'),第一反向代理服务器208修改请求消息216以包括HTTP CONNECT方法,该方法存储在请求消息216'的传输层中。HTTPCONNECT方法指定反向代理服务器链204(即,第二反向代理服务器210)中的下一反向代理服务器(例如,2ndreverseproxy.com)的主机名。第一反向代理服务器208还在HTTPCONNECT表头中包括发送请求消息220的客户端(即,客户端202A)的标识符。根据实施例,第一反向代理服务器208包括客户端202A的互联网协议(IP)地址(例如,127.0.0.1)和/或目标服务器206的标识符,其可以从请求消息220的IP层获得。第一反向代理服务器208还维护请求消息220的原始应用层信息。为了向第二反向代理服务器210传输请求消息216',第一反向代理服务器208与第二反向代理服务器210建立传输层连接224,并且经由连接224向第二反向代理服务器210传输修改的请求消息216'。如图2所示,第一反向代理服务器208还建立与第二反向代理服务器210的传输层连接226,以向第二反向代理服务器210提供请求消息218'。第一反向代理服务器208修改请求消息218以如上所述的与请求消息216类似的方式生成请求消息218'。为简洁起见,未显示请求消息218'的内容。
第二反向代理服务器210被配置为分别经由连接224和226从第一反向代理服务器208接收请求消息216'和218'经由。第二反向代理服务器210是应用层反向代理,其被配置为分析和/或解释包括在请求消息216'和218'中的应用层信息和传输层信息两者。例如,第二反向代理服务器210可以分析请求消息216'和218'的应用层中包括的cookie以确定其中包括的元数据(例如,客户端202A的用户的用户名、组织的名称(用户是组织的部分)等)。第二反向代理服务器210将确定的元数据存储到请求消息216'的HTTP CONNECT表头中以生成修改的请求消息216”。第二反向代理服务器210还可以从请求消息216'的应用层中删除cookie,因为目标服务器206不需要cookie。第二反向代理服务器210可以进一步修改请求消息216'以将HTTP CONNECT方法更新为指定反向代理服务器链204(即第三个反向代理服务器212)中的下一反向代理服务器(例如,3rdreverseproxy.com)的主机名。修改的请求消息216”经由第二反向代理服务器210所建立的传输层连接228提供给第三反向代理服务器212。如图2所示,第二反向代理服务器210修改请求消息218'以按照如上所述的与请求消息216'类似的方式生成请求消息218”,并经由第二反向代理服务器210所建立的传输层连接230提供请求消息218”。为简洁起见,请求消息218”的内容未示出。
在请求消息216'不包括元数据(例如,经由cookie)的情况下,第二反向代理服务器210不与第三反向代理服务器212建立连接228。相反,第二反向代理服务器210经由第一反向代理服务器208以及连接220和224向第一客户端202A提供响应消息(例如,(HTTP响应消息),该连接将客户端202A重定向到使客户端202A的用户能够使用其用户凭证登录的登录屏幕。例如,在客户端202A上执行的浏览器应用发出请求消息216的实施例中,由第二反向代理服务器210发出的响应消息将使浏览器应用重定向到允许用户提供其用户凭证的网页。在提供有效的用户凭证时,用户被认证并且包括元数据的新请求消息由第一客户端202A传输并提供给第二反向代理服务器210(经由第一反向代理服务器208和连接220和224)。
第三反向代理服务器212被配置为分别经由连接228和230从第二反向代理服务器210接收请求消息216”和218”。第三反向代理服务器212是传输层反向代理,其被配置为分析和/或解释包括在请求消息216”和218”中的应用层信息和传输层信息。
第三反向代理服务器212被配置为充当防火墙并且基于一个或多个安全规则确定客户端(例如,客户端202A和202B)是否被授权访问目标服务器206。例如,安全规则可以指定哪些用户、组织、客户端应用、端口和/或源地址被授权访问目标服务器206。第三反向代理服务器212被配置为分析请求消息216”和218”的传输层以确定与客户端202A和202B相关联的(多个)用户、与(多个)用户相关联的(多个)组织、发出请求消息216”和218”的(多个)客户端应用、将被用于与目标服务器206通信的(多个)端口和/或与客户端202A和220B相关联的(多个)源地址。
如果与特定客户端相关联的元数据符合安全规则,则第三反向代理服务器212确定客户端被授权访问目标服务器206。第三反向代理服务器212可以修改请求消息(例如,请求消息216”)以更新HTTP CONNECT方法以指定反向代理服务器链204(即,第四反向代理服务器214)中的下一反向代理服务器(例如,4threverseproxy.com)的主机名。修改后的请求消息(显示为请求消息216”)经由第三反向代理服务器212所建立的传输层连接232提供给第四反向代理服务器214。
如果与特定客户端相关联的元数据不符合(多个)安全规则,则第三反向代理服务器212终止与该客户端相关联的连接。例如,如果第三反向代理服务器212确定客户端202A未被授权访问确定服务器206,则第三反向代理服务器212终止传输层连接228,从而阻止客户端202A访问目标服务器206。第三反向代理服务器212可以经由向客户端202A发回重置数据包(例如,TCPRESET数据包)来终止传输层连接228。第三反向代理服务器212维持与已被确定被授权访问目标服务器206的其他客户端(例如,客户端202B)相关联的连接。传统技术利用反向代理与目标服务器之间的单个连接用于所有客户端向目标服务器提供请求消息。因此,如果响应于确定单个客户端未被授权访问目标服务器而终止连接,则也阻止使用该连接的所有客户端访问目标服务器。这对于被授权访问目标服务器的有效客户端是有害的。本文描述的技术经由与每个客户端建立相应的连接(而不是针对所有客户端建立单个连接)来有利地避免这个问题。
进一步如图2所示,第三反向代理服务器212分析请求消息218”和/或修改请求消息218”来以如上所述的与请求消息216”'类似的方式生成请求消息218”',并经由第三反向代理服务器212所建立的传输层连接234提供请求消息218”'。为简洁起见,未示出请求消息218”'的内容。
根据实施例,在终止连接之前,第三反向代理服务器212向第二反向代理服务器210提供通知,该通知使第二反向代理服务器210向未授权的客户端提供响应消息。响应消息包括使客户端经由与其耦合的显示设备呈现错误消息的状态码。例如,响应消息可以是包括状态码(例如,HTTP状态码400、401、403等)的HTTP响应消息。HTTP响应消息可以由在客户端上执行的浏览器应用接收,其呈现显示与状态码对应的错误消息的超文本标记语言(HTML)网页。
第四反向代理服务器214被配置为接收请求消息216”'和218”',并基于一个或多个安全规则确定客户端(例如,客户端202A和202B)是否被授权针对由目标服务器206提供的资源执行操作。例如,安全规则可以指定特定用户、组织、客户端应用(例如,浏览器应用,例如)和/或源地址被授权针对由目标服务器206提供的特定资源执行的操作。例如,安全规则可以指定组织的第一用户只能读取由目标服务器206提供的特定资源。另一安全规则可以指定组织的第二用户能够读取和写入由目标服务器206提供的不同资源。第四反向代理服务器214被配置为分析请求消息216”'和218”'的HTTP CONNECT表头信息以确定与客户端202A和202B相关联的(多个)用户、与(多个)用户相关联的(多个)组织、发出请求消息216”'和218”'的(多个)客户端应用)和/或与客户端202A和202B相关联的(多个)源地址。第四反向代理服务器214还被配置为分析请求消息216”'和218”'的应用层信息以确定客户端202A和202B正试图访问的资源以及要针对该资源执行的操作(例如,获取(或读取))。特别地,第四保留代理服务器214分析路径(例如,“/test/”)和资源名称(例如,“example.txt”)以确定试图被访问的资源。
如果与特定客户端相关联的认证符合安全规则,则第四反向代理服务器214确定客户端被授权执行针对由目标服务器216提供的确定的资源的操作。第四反向代理服务器214可以在提供请求消息(显示为请求消息216””)之前修改请求消息(例如,请求消息216”')以去除其中包含的传输层信息(即,HTTPCONNECT方法及其表头信息)到目标服务器206。第四反向代理服务器214经由由第四反向代理服务器214建立的传输层连接236提供请求消息216””。第四反向代理服务器214基于目标服务器标识符(例如,“destinationserver.com”)和包括在请求消息216””的应用层信息中的端口(例如,80)向目标服务器206提供请求消息216””。
如果与特定客户端相关联的元数据不符合安全规则,则第四反向代理服务器214不向目标服务器206提供请求消息。相反,第四反向代理服务器214向客户端提供包括状态码的响应消息(例如,经由反向代理服务器208、210和212),该状态码使客户端经由与其耦合的显示设备呈现错误消息。
进一步如图2所示,第四反向代理服务器214分析请求消息218”'和/或修改请求消息218”'来以如上所述的与请求消息216””类似的方式生成请求消息218””,并经由第四反向代理服务器214所建立的传输层连接238提供请求消息218””。为简洁起见,请求消息218””的内容未示出。
根据实施例,第四反向代理服务器214向路由器(未示出)提供请求消息216””和218””,并且路由器向目标服务器216提供请求消息216””和218””。例如,第四反向代理服务器214可以包括HTTP CONNECT表头以包括路由器的地址并将请求消息216””和218””转发到路由器。路由器可以被配置为去除HTTP CONNET方法及其表头,并基于目标服务器标识符(例如,“destinationserver.com”)和包含在请求消息216””和218””的应用层信息中的端口(例如,80)将请求消息216””和218””转发到目标服务器206。
注意,在特定实施例中,反向代理服务器链204可以包括额外的反向代理服务器或更少的反向代理服务器,这取决于所需的功能。还应注意,上述针对特定反向代理的功能可以与另一反向代理合并或组合。
因此,可以经由反向代理服务器链以多种方式实现安全规则。例如,图3示出了根据示例实施例的用于基于安全规则确定客户端是否被授权访问目标服务器的方法的流程图300。在实施例中,流程图300可以由如图2中所描述的系统200实现。特别地,流程图300可以由经由与第一客户端(例如,如图2所示的客户端202A)相关联的第一连接(例如,连接220、224和228)耦合到应用层反向代理服务器(例如,第二反向代理服务器210)并经由与第二客户端(例如,如图2所示的客户端202B)相关联的第二连接(例如,连接222、226和230)耦合到应用层反向代理服务器的传输层反向代理(例如,如图2所示的第三反向代理服务器212)来实现。因此,将继续参照图2来描述流程图300。基于以下关于流程图300和系统200的讨论,其他结构和操作实施例对于相关领域的技术人员将是显而易见的。
图3的流程图300从步骤302开始。在步骤302,从应用层反向代理服务器接收意在目标服务器的代表第一客户端的请求消息。请求消息是经由第一连接接收的并且包括与第一客户端相关联的应用层元数据。例如,参照图2,第三反向代理服务器212从第二反向代理服务器210接收代表客户端202A的请求消息216”。请求消息216”意在目标服务器206。请求消息216”包括与第一客户端212A相关联的应用层元数据。例如,如图2所示,请求消息216”包括与第一客户端202A相关联的用户名(例如,“user1”),以及与该用户名相关联的组织名称(“microsoft”),该请求消息基于存储在由第三反向代理服务器212接收到的请求消息的应用层中的cookie。
根据一个或多个实施例,传输层反向代理服务器是TCP反向代理服务器。例如,参照图2,第三反向代理服务器212是TCP反向代理服务器。
根据一个或多个实施例,应用层元数据被包括在请求消息的HTTP CONNECT表头中。例如,参照图2,第二反向代理服务器210将应用层元数据存储在提供给第三反向代理服务器212的请求消息216”的HTTPCONNECT表头中。第二反向代理服务器210基于分析存储在由第二反向代理服务器210接收的请求消息216'的应用层中的cookie确定元数据。
根据一个或多个实施例,应用层元数据包括用户名、密码、组织名称、浏览器标识(ID)或互联网协议(IP)地址中的至少一个。例如,参照图2,请求消息216”用户名(“user1”)、组织名称(“microsoft”)和IP地址(127.0.0.1)。
在步骤304,通过将第一安全规则应用于应用层元数据来确定第一客户端是否被授权与目标服务器通信。如果确定第一客户端未被授权与目标服务器通信,则流程继续到步骤306。否则,流程继续到步骤308。例如,参照图2,第三反向代理服务器212通过将第一安全规则应用于存储在请求消息216中的应用层元数据来确定第一客户端202A是否被授权与目标服务器206通信。
在步骤306,在维持第二连接时终止第一连接。例如,参照图2,第三反向代理服务器212在维持传输层连接230时终止传输层连接228。也就是说,如果第一客户端202A未被授权与目标服务器206通信并且第二客户端202B被授权与目标服务器206通信,则第三反向代理服务器212仅终止传输层连接228并且不终止传输层连接230。
在步骤308,创建到与应用层反向代理服务器的第三连接,该应用层反向代理服务器耦合在传输层反向代理服务器与目标服务器之间。例如,参照图2,第三反向代理服务器212创建到与第四反向代理服务器214的连接232,第四反向代理服务器214耦合在第三反向代理服务器212与目标服务器206之间。
在步骤310,经由第三连接将请求消息提供给耦合在传输层反向代理服务器与目标服务器之间的应用层反向代理服务器。例如,参照图2,第三反向代理服务器212经由传输层连接232向第四反向代理服务器214提供请求消息216”'。
根据一个或多个实施例,应用层反向代理服务器是HTTP反向代理服务器。例如,参照图2,第四反向代理服务器214是HTTP反向代理服务器。
图4示出了根据示例实施例的用于基于安全规则确定客户端是否被授权执行针对目标服务器的操作的方法的流程图400。在实施例中,流程图400可以由如图2中描述的系统200实现。特别地,流程图400可以由耦合在传输层反向代理服务器(例如,第三反向代理服务器212)与目标服务器(例如,目标服务器206)之间的应用层反向代理(例如,如图2所示的第四反向代理服务器214)来实现。。因此,将继续参照图2来描述流程图400。基于以下关于流程图400和系统200的讨论,其他结构和操作实施例对于相关领域的技术人员将是显而易见的。
图4的流程图400从步骤402开始。在步骤402,接收请求消息。例如,参照图2,第四反向代理服务器214从第三反向代理服务器212接收请求消息216”'。
在步骤404,通过将第二安全规则应用于应用层元数据来确定第一客户端是否被授权执行关于目标服务器的操作。操作由请求消息指定。如果确定第一客户端被授权执行该操作,则流程继续到步骤406。否则,流程继续到步骤408。例如,参照图2,第四反向代理服务器214通过将第二安全规则应用于请求消息216”'中的HTTP CONNECT方法表头中包括的应用层元数据来确定第一客户端202A是否被授权执行针对目标服务器206的操作。也如图2所示,操作和将被执行操作的资源在请求消息216”'的应用层中被指定(即,“GET/test/example.txt”)。GET操作被配置为读取经由目标服务器206提供的资源。注意,GET操作只是一个示例操作,并且可以执行和分析其他操作。此类操作包括但不限于POST(创建资源)、PUT(更新或替换资源)、DELETE(删除资源)等。
在步骤406,将请求消息提供给目标服务器。例如,参照图图2,第四反向代理服务器214从请求消息216”'中去除HTTP CONNECT方法及其表头信息,并经由传输层连接236将修改后的请求消息(即,请求消息216””)提供给目标服务器。
在步骤408,阻止请求消息被传输到目标服务器。例如,参照图2,第四反向代理服务器214不向目标服务器206传输请求消息请求消息216”'。相反,第四反向代理服务器214可以向第一客户端202A提供(例如,经由反向代理服务器208、210和212)包括状态码(例如,HTTP状态码400、401、403等)的响应消息,其使客户端经由与其耦合的显示设备呈现错误消息。
图5示出了根据示例实施例的用于通知客户端用于与目标服务器通信而建立的传输层连接已经终止的方法的流程图500。在实施例中,流程图500可以由如图6中描述的系统600实现。图6是根据示例实施例的用于通知客户端用于与目标服务器通信而建立的传输层连接已经终止的系统600。如图6所示,系统600包括客户端202A、第一反向代理服务器208、第二反向代理服务器210、第三反向代理服务器212和显示设备606。显示设备606耦合到客户端202A。显示设备606可以与客户端202A集成,或者可以是经由有线或无线连接耦合到客户端202A的外部组件。显示设备606的示例包括但不限于显示屏(例如,LED显示屏、OLED显示屏、LCD显示屏等)、监视器、电视机、投影仪等。为简洁起见,未显示参照图2所示和描述的其他组件。流程图500将参照图6被描述。基于以下关于流程图500和系统600的讨论,其他结构和操作实施例对于相关领域的技术人员将是显而易见的。
图5的流程图500从步骤502开始。在步骤502,响应于确定第一客户端未被授权与目标服务器通信,向应用层反向代理服务器提供通知。例如,参照图6,第三反向代理服务器212(经由传输层连接228)向耦合在第三反向代理服务器212与第一客户端202A之间的第二反向代理服务器210提供通知602。第三反向代理服务器212响应于确定第一客户端202A未被授权与目标服务器(例如,如图2所示的目标服务器206)通信而提供通知602。
在步骤504,响应于接收到通知,向第一客户端提供响应消息,该响应消息包括状态码,该状态码使第一客户端经由耦合到其的显示设备呈现错误消息。例如,参照图6,第二反向代理服务器210经由传输层连接224向第一反向代理服务器208提供响应消息604,并且第一反向代理服务器208经由传输层连接220向第一客户端202A提供响应消息604。响应消息604包括状态码(例如,HTTP状态代码400、401、403等),该状态码使第一客户端202A经由耦合到第一客户端202A的显示设备606呈现错误消息。例如,在第一客户端202A上执行的浏览器应用接收响应消息604的实施例中,浏览器应用可以使与状态代码对应的错误消息显示在显示设备606上呈现的浏览器窗口中。前述技术有利地向用户提供传输层连接(例如,传输层连接228)正在被终止的高级通知。
三、示例计算机系统实现
客户端102A-102N、反向代理服务器链104、目标服务器106、客户端202A和202B、反向代理服务器链204、第一反向代理服务器208、第二反向代理服务器210、第三反向代理服务器212、第四反向代理服务器214、和/或目标服务器206(和/或其中描述的任何组件)、和/或流程图300、400和/或500,可以在硬件或与软件和/或固件之一或两者结合的硬件中被实现。例如,客户端102A-102N、反向代理服务器链104、目标服务器106、客户端202A和202B、反向代理服务器链204、第一反向代理服务器208、第二反向代理服务器210、第三反向代理服务器212、第四反向代理服务器214和/或目标服务器206(和/或其中描述的任何组件)、和/或流程图300、400和/或500可以被实现为被配置为在一个或多个处理器中执行的计算机程序代码/指令并被存储在计算机可读存储介质中。
可选地,客户端102A-102N、反向代理服务器链104、目标服务器106、客户端202A和202B、反向代理服务器链204、第一反向代理服务器208、第二反向代理服务器210、第三反向代理服务器212、第四反向代理服务器图214和/或目标服务器206(和/或其中描述的任何组件)、和/或流程图300、400和/或500可以被实现为硬件逻辑/电路。
例如,在实施例中,一个或多个任意组合的客户端102A-102N、反向代理服务器链104、目标服务器106、客户端202A和202B、反向代理服务器链204、第一反向代理服务器208、第二反向代理服务器210、第三反向代理服务器212、第四反向代理服务器214和/或目标服务器206(和/或其中描述的任何组件)、和/或流程图300、400和/或500可以一起在SoC中被实现。SoC可以包括集成电路芯片,其包括处理器(例如,中央处理器(CPU)、微控制器、微处理器、数字信号处理器(DSP)等)、存储器、一个或多个通信接口、和/或其他电路中的一个或多个,并且可以可选地执行接收到的程序代码和/或包括嵌入式固件以执行功能。
图7描绘了可以实现实施例的计算设备700的示例性实现。例如,客户端102A-102N、反向代理服务器链104、目标服务器106、客户端202A和202B、反向代理服务器链204、第一反向代理服务器208、第二反向代理服务器210、第三反向代理服务器212、第四反向代理服务器214和/或目标服务器206(和/或其中描述的任何组件)和/或流程图300、400和/或500可以在一个或多个与固定或移动计算机实施例中的计算设备700类似的计算设备中被实现,该计算机实施例包括计算设备700的一个或多个特征和/或替代特征。本文提供的计算设备700的描述是出于说明的目的而提供的,而不是旨在限制。如相关领域的技术人员所知,实施例可以在其他类型的计算机系统中被实现。
如图7所示,计算设备700包括一个或多个处理器,称为处理器电路702、系统存储器704和总线706,该总线将包括系统存储器704的各种系统组件耦合到处理器电路702。处理器电路702在一个或多个物理硬件电路器件元件和/或集成电路器件(半导体材料芯片或管芯)中被实现为中央处理器(CPU)、微控制器、微处理器和/或其他物理硬件处理器电路的电子和/或光学电路。处理器电路702可以执行存储在计算机可读介质中的程序代码,诸如操作系统730、应用程序732、其他程序734等的程序代码。总线706表示几种类型的总线结构中的一种或多种,包括使用各种总线架构中的任何一种的存储器总线或存储器控制器、外围总线、加速图形端口、以及处理器或本地总线。系统存储器704包括只读存储器(ROM)708和随机存取存储器(RAM)710。基本输入/输出系统712(BIOS)存储在ROM708中。
计算设备700还具有以下驱动器中的一个或多个:用于读取和写入硬盘的硬盘驱动器714、用于读取或写入可移动磁盘718的磁盘驱动器716、以及用于读取或写入可移动光盘722(诸如CD ROM、DVD ROM或其他光学介质)的光盘驱动器720。硬盘驱动器714、磁盘驱动器716和光盘驱动器720分别通过硬盘驱动器接口724、磁盘驱动器接口726和光盘驱动器接口728连接到总线706。驱动器及其相关联的计算机可读介质为计算机提供计算机可读指令、数据结构、程序模块和其他数据的非易失性存储。尽管描述了硬盘、可移动磁盘和可移动光盘,但也可以使用其他类型的基于硬件的计算机可读存储介质(诸如闪存卡、数字视频磁盘、RAM、ROM和其他硬件存储介质)来存储数据。
在硬盘、磁盘、光盘、ROM或RAM上可以存储多个程序模块。这些程序包括操作系统730、一个或多个应用程序732、其他程序734和程序数据736。应用程序732或其他程序734可以包括例如用于实现以下任何特征的计算机程序逻辑(例如计算机程序代码或指令):客户端102A-102N、反向代理服务器链104、目标服务器106、客户端202A和202B、反向代理服务器链204、第一反向代理服务器208、第二反向代理服务器210、第三反向代理服务器212、第四反向代理服务器214和/或目标服务器206(和/或其中描述的任何组件)、和/或流程图300、400和/或500、和/或本文描述的其他实施例。
用户可以通过输入设备(诸如键盘738和定点设备740)将命令和信息输入到计算设备700中。其他输入设备(未示出)可以包括麦克风、操纵杆、游戏手柄、卫星天线、扫描仪、触摸屏和/或触摸板、接收语音输入的语音识别系统、接收手势输入的手势识别系统等。这些和其他输入设备通常通过耦合到总线706的串行端口接口742连接到处理器电路702,但也可以通过其他接口(诸如并行端口、游戏端口或通用串行总线(USB))连接。
显示屏744还经由接口(诸如视频适配器746)连接到总线706。显示屏744可以在计算设备700的外部或合并在计算设备700中。显示屏744可以显示信息以及作为用户界面用于接收用户命令和/或其他信息(例如,通过触摸、手势、虚拟键盘等)。除了显示屏744之外,计算设备700可以包括其他外围输出设备(未示出),诸如扬声器和打印机。
计算设备700通过用于在网络上建立通信的适配器或网络接口750、调制解调器752或其他装置连接到网络748(例如,互联网)。如图7所示,可以是内部或外部的调制解调器752可以经由串行端口接口742连接到总线706,或者可以使用包括并行接口的另一接口类型连接到总线706。
如本文所用,术语“计算机程序介质”、“计算机可读介质”和“计算机可读存储介质”用于指代物理硬件介质,诸如与硬盘驱动器714相关联的硬盘、可移动磁盘718、可移动光盘722、其他物理硬件介质(诸如RAM、ROM、闪存卡、数字视频磁盘、压缩盘、MEM、基于纳米技术的存储设备,以及其他类型的物理/有形硬件存储介质)。这样的计算机可读存储介质与通信介质不同并且不重叠(不包括通信介质)。通信介质将计算机可读指令、数据结构、程序模块或其他数据包含在调制数据信号(诸如载波)中。术语“调制数据信号”是指具有一个或多个其特性的信号,该特性以这样一种方式被设置或改变,以便在信号中编码信息。作为示例而非限制,通信介质包括无线介质(诸如声学、RF、红外线和其他无线介质)以及有线介质。实施例还针对与针对计算机可读存储介质的实施例分开且不重叠的这种通信介质。
如上所述,计算机程序和模块(包括应用程序732和其他程序734)可以存储在硬盘、磁盘、光盘、ROM、RAM或其他硬件存储介质上。这样的计算机程序也可以经由网络接口750、串行端口接口742或任何其他接口类型被接收。当由应用执行或加载时,此类计算机程序使计算设备700能够实现本文所讨论的实施例的特征。因此,这样的计算机程序代表计算设备700的控制器。
实施例还针对包括存储在任何计算机可读介质上的计算机代码或指令的计算机程序产品。这样的计算机程序产品包括硬盘驱动器、光盘驱动器、存储设备包、便携式记忆棒、存储卡和其他类型的物理存储硬件。
四、进一步的示例实施例
本文描述了一种方法。该方法包括:由传输层反向代理服务器执行(该传输层反向代理服务器经由与第一客户端相关联的第一连接耦合到应用层反向代理服务器,并且经由与第二客户端相关联的第二连接耦合到应用层反向代理服务器):从应用层反向代理服务器接收意在目标服务器的代表第一客户端的请求消息,该请求消息经由第一连接被接收并且包括与第一客户端相关联的应用层元数据;通过将第一安全规则应用于应用层元数据来确定第一客户端是否被授权与目标服务器通信;并且响应于确定第一客户端未被授权与目标服务器通信,在维持第二连接时终止第一连接。
在上述方法的一个实施例中,该方法还包括:传输层反向代理服务器还执行:响应于确定第一客户端被授权与目标服务器进行通信:创建到与应用层反向代理服务器的第三连接,该应用层反向代理服务器耦合在传输层反向代理服务器与目标服务器之间;经由第三连接将请求消息提供给应用层反向代理服务器,该应用层反向代理服务器耦合在传输层反向代理服务器与目标服务器之间。
在上述方法的一个实施例中,该方法还包括:应用层反向代理服务器耦合在传输层反向代理服务器与目标服务器之间,该应用层反向代理服务器执行:接收请求消息;通过将第二安全规则应用于应用层元数据来确定第一客户端是否被授权执行针对目标服务器的操作,该操作由请求消息指定,该操作由请求消息指定;响应于确定第一客户端被授权执行针对目标服务器的操作,将请求消息提供给目标服务器;并且响应于确定第一客户端未被授权执行针对目标服务器的操作,阻止请求消息被传输到目标服务器。
在上述方法的一个实施例中,该方法还包括:传输层反向代理服务器还执行:响应于确定第一客户端未被授权与目标服务器通信,向应用层反向代理服务器提供通知;并且由应用层反向代理服务器执行:响应于接收到通知,向第一客户端提供响应消息,该响应消息包括状态码,该状态码使第一客户端经由与其耦合的显示设备呈现错误消息。
在上述方法的一个实施例中,应用层元数据被包括在请求消息的超文本传输协议(HTTP)连接表头中。
在上述方法的一个实施例中,应用层元数据包括以下至少之一:用户名;密码;组织名称;浏览器标识(ID);或互联网协议(IP)地址。
在上述方法的一个实施例中,传输层反向代理服务器是传输控制协议(TCP)反向代理服务器。
在上述方法的一个实施例中,应用层反向代理服务器是HTTP反向代理服务器。
本文还描述了一种系统。该系统包括:应用层反向代理服务器,耦合到第一客户端和第二客户端;以及传输层反向代理服务器,经由与第一客户端相关联的第一连接耦合到应用层反向代理服务器,并且经由与第二客户端相关联的第二连接耦合到应用层反向代理服务器,传输层反向代理服务器包括:第一处理器电路;以及第一存储器,存储被配置为由第一处理器电路执行的第一程序代码,第一程序代码在由第一处理器电路执行时被配置为:从应用层反向代理服务器接收意在目标服务器的代表第一客户端的请求消息,该请求消息经由第一连接被接收并且包括与第一客户端相关联的应用层元数据;通过将第一安全规则应用于应用层元数据确定第一客户端是否被授权与目标服务器通信;并且响应于确定第一客户端未被授权与目标服务器通信,在维持第二连接时终止第一连接。
在上述系统的一个实施例中,第一程序代码还被配置为,当由第一处理器电路执行时:响应于确定第一客户端被授权与目标服务器通信:创建到与应用层反向代理服务器的第三连接,该应用层反向代理服务器耦合在传输层反向代理服务器与目标服务器之间;经由第三连接将请求消息提供给耦合在传输层反向代理服务器与目标服务器之间的应用层反向代理服务器。
在上述系统的一个实施例中,耦合在传输层反向代理服务器与目标服务器之间的应用层反向代理服务器包括:第二处理器电路;以及第二存储器,其存储被配置为由第二处理器电路执行的第二程序代码,第二程序代码在由第二处理器电路执行时被配置为:接收请求消息;通过将第二安全规则应用于应用层元数据来确定第一客户端是否被授权执行针对目标服务器的操作,该操作由请求消息指定;响应于确定第一客户端被授权执行针对目标服务器的操作,将请求消息提供给目标服务器;并且响应于确定第一客户端未被授权执行针对目标服务器的操作,阻止请求消息被传输到目标服务器。
在上述系统的一个实施例中,第一程序代码在由所述第一处理器电路执行时还被配置为:响应于确定第一客户端未被授权与目标服务器通信,向应用层反向代理服务器提供通知,应用层反向代理服务器包括:第二处理器电路;第二存储器,其存储被配置为由第二处理器电路执行的第二程序代码,第二程序代码在由第二处理器电路执行时被配置为:响应于接收到通知,向第一客户端提供响应消息,响应消息包括状态码,该状态码使第一客户端经由与其耦合的显示设备呈现错误消息。
在上述系统的一个实施例中,应用层元数据包括在请求消息的超文本传输协议(HTTP)连接表头中。
在上述系统的一个实施例中,应用层元数据包括以下至少之一:用户名;密码;组织名称;浏览器标识(ID);或互联网协议(IP)地址。
在上述系统的一个实施例中,传输层反向代理服务器是传输控制协议(TCP)反向代理服务器。
在上述系统的一个实施例中,应用层反向代理服务器是HTTP反向代理服务器。
一种计算机可读存储介质,其上记录有程序指令,当由计算设备的至少一个处理器执行时,(该设备经由与第一客户端相关联的第一连接耦合到应用层反向代理服务器并且经由与第二客户端相关联的第二连接耦合到应用层反向代理服务器)执行一种方法,该方法包括。该方法包括:从应用层反向代理服务器接收意在目标服务器的代表第一客户端的请求消息,该请求消息经由第一连接被接收并且包括与第一客户端相关联的应用层元数据;通过将第一安全规则应用于应用层元数据来确定第一客户端是否被授权与目标服务器通信;并且响应于确定第一客户端未被授权与目标服务器通信,在维持第二连接时终止第一连接。
在前述计算机可读存储介质的一个实施例中,该方法还包括:响应于确定第一客户端被授权与目标服务器通信:创建到与应用层反向代理服务器的第三连接,该应用层反向代理服务器耦合在计算设备与目标服务器之间;以及经由第三连接将请求消息提供给耦合在计算设备与目标服务器之间的应用层反向代理服务器。
在上述计算机可读存储介质的一个实施例中,应用层元数据包括以下至少之一:用户名;密码;组织名称;浏览器标识(ID);或互联网协议(IP)地址。
在上述计算机可读存储介质的一个实施例中,计算设备被配置为传输控制协议(TCP)反向代理服务器。
五、结论
尽管上面已经描述了各种实施例,但应该理解它们仅作为示例而不是限制的方式被呈现。相关领域的技术人员将理解,在不背离如所附权利要求中定义的所描述实施例的精神和范围的情况下,可以在其中对形式和细节进行各种改变。本实施例不应受任何上述示例性实施例的限制,而应仅根据所附权利要求及其等同被定义。
Claims (15)
1.一种方法,包括:
由传输层反向代理服务器如下执行,所述传输层反向代理服务器经由与第一客户端相关联的第一连接耦合到应用层反向代理服务器,并且经由与第二客户端相关联的第二连接耦合到所述应用层反向代理服务器:
从所述应用层反向代理服务器接收代表所述第一客户端的、意在目标服务器的请求消息,所述请求消息经由所述第一连接被接收,并且包括与所述第一客户端相关联的应用层元数据;
通过将第一安全规则应用于所述应用层元数据来确定所述第一客户端是否被授权与所述目标服务器通信;以及
响应于确定所述第一客户端未被授权与所述目标服务器通信,在维持所述第二连接的同时终止所述第一连接。
2.根据权利要求1所述的方法,还包括:
由所述传输层反向代理服务器进一步如下执行:
响应于确定所述第一客户端被授权与所述目标服务器通信:
创建到应用层反向代理服务器的第三连接,所述应用层反向代理服务器耦合在所述传输层反向代理服务器与所述目标服务器之间;以及
经由所述第三连接将所述请求消息提供给耦合在所述传输层反向代理服务器与所述目标服务器之间的所述应用层反向代理服务器。
3.根据权利要求2所述的方法,还包括:
由耦合在所述传输层反向代理服务器与所述目标服务器之间的所述应用层反向代理服务器如下执行:
接收所述请求消息;
通过将第二安全规则应用于所述应用层元数据来确定所述第一客户端是否被授权执行关于所述目标服务器的操作,所述操作由所述请求消息指定;
响应于确定所述第一客户端被授权执行关于所述目标服务器的所述操作,将所述请求消息提供给所述目标服务器;以及
响应于确定所述第一客户端未被授权执行关于所述目标服务器的所述操作,阻止所述请求消息被传输到所述目标服务器。
4.根据权利要求1所述的方法,还包括:
由所述传输层反向代理服务器进一步如下执行:
响应于确定所述第一客户端未被授权与所述目标服务器通信,将通知提供给所述应用层反向代理服务器;以及
由所述应用层反向代理服务器执行:
响应于接收到所述通知,将响应消息提供给所述第一客户端,所述响应消息包括状态码,所述状态码使所述第一客户端经由耦合到所述第一客户端的显示设备呈现错误消息。
5.根据权利要求1所述的方法,其中所述应用层元数据被包括在所述请求消息的超文本传输协议(HTTP)连接头部中。
6.根据权利要求1所述的方法,其中所述应用层元数据包括以下至少一项:
用户名;
密码;
组织名称;
浏览器标识(ID);或
互联网协议(IP)地址。
7.根据权利要求1所述的方法,其中所述传输层反向代理服务器是传输控制协议(TCP)反向代理服务器。
8.根据权利要求1所述的方法,其中所述应用层反向代理服务器是超文本传输协议(HTTP)反向代理服务器。
9.一种系统,包括:
应用层反向代理服务器,耦合到第一客户端和第二客户端;以及
传输层反向代理服务器,经由与所述第一客户端相关联的第一连接耦合到所述应用层反向代理服务器,并且经由与所述第二客户端相关联的第二连接耦合到所述应用层反向代理服务器,所述传输层反向代理服务器包括:
第一处理器电路;以及
第一存储器,存储第一程序代码,所述第一程序代码被配置为由所述第一处理器电路执行,所述第一程序代码在由所述第一处理器电路执行时,被配置为:
从所述应用层反向代理服务器接收代表所述第一客户端的、意在目标服务器的请求消息,所述请求消息经由所述第一连接被接收,并且包括与所述第一客户端相关联的应用层元数据;
通过将第一安全规则应用于所述应用层元数据来确定所述第一客户端是否被授权与所述目标服务器通信;以及
响应于确定所述第一客户端未被授权与所述目标服务器通信,在维持所述第二连接的同时终止所述第一连接。
10.根据权利要求9所述的系统,所述第一程序代码在由所述第一处理器电路执行时,还被配置为:
响应于确定所述第一客户端被授权与所述目标服务器通信:
创建到应用层反向代理服务器的第三连接,所述应用层反向代理服务器耦合在所述传输层反向代理服务器与所述目标服务器之间;以及
经由第三连接将所述请求消息提供给耦合在所述传输层反向代理服务器与所述目标服务器之间的所述应用层反向代理服务器。
11.根据权利要求10所述的系统,其中耦合在所述传输层反向代理服务器与所述目标服务器之间的所述应用层反向代理服务器包括:
第二处理器电路;以及
第二存储器,存储第二程序代码,所述第二程序代码被配置为由所述第二处理器电路执行,所述第二程序代码在由所述第二处理器电路执行时,被配置为:
接收所述请求消息;
通过将第二安全规则应用于所述应用层元数据来确定所述第一客户端是否被授权执行关于所述目标服务器的操作,所述操作由所述请求消息指定;
响应于确定所述第一客户端被授权执行关于所述目标服务器的所述操作,将所述请求消息提供给所述目标服务器;以及
响应于确定所述第一客户端未被授权执行关于所述目标服务器的所述操作,阻止所述请求消息被传输到所述目标服务器。
12.根据权利要求9所述的系统,所述第一程序代码在由所述第一处理器电路执行时,还被配置为:
响应于确定所述第一客户端未被授权与所述目标服务器通信,将通知提供给所述应用层反向代理服务器,
所述应用层反向代理服务器包括:
第二处理器电路;以及
第二存储器,存储第二程序代码,所述第二程序代码被配置为由所述第二处理器电路执行,所述第二程序代码在由所述第二处理器电路执行时,被配置为:
响应于接收到所述通知,将响应消息提供给所述第一客户端,所述响应消息包括状态码,所述状态码使所述第一客户端经由耦合到所述第一客户端的显示设备呈现错误消息。
13.根据权利要求9所述的系统,其中所述应用层元数据被包括在所述请求消息的超文本传输协议(HTTP)连接头部中。
14.根据权利要求9所述的系统,其中所述应用层元数据包括以下至少一项:
用户名;
密码;
组织名称;
浏览器标识(ID);或
互联网协议(IP)地址。
15.一种计算机可读存储介质,其上记录有程序指令,所述程序指令在由计算设备的至少一个处理器执行时,执行根据权利要求1-8中任一项所述的方法,所述计算设备经由与第一客户端相关联的第一连接耦合到应用层反向代理服务器,并且经由与第二客户端相关联的第二连接耦合到所述应用层反向代理服务器。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/828,612 US11831616B2 (en) | 2020-03-24 | 2020-03-24 | Reverse proxy servers for implementing application layer-based and transport layer-based security rules |
US16/828,612 | 2020-03-24 | ||
PCT/US2021/016689 WO2021194645A1 (en) | 2020-03-24 | 2021-02-05 | Reverse proxy servers for implementing application layer-based and transport layer-based security rules |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115315926A true CN115315926A (zh) | 2022-11-08 |
Family
ID=74759569
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202180023581.9A Pending CN115315926A (zh) | 2020-03-24 | 2021-02-05 | 用于实现基于应用层和基于传输层的安全规则的反向代理服务器 |
Country Status (5)
Country | Link |
---|---|
US (2) | US11831616B2 (zh) |
EP (1) | EP4128685A1 (zh) |
CN (1) | CN115315926A (zh) |
IL (1) | IL296652A (zh) |
WO (1) | WO2021194645A1 (zh) |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11425123B2 (en) | 2020-04-16 | 2022-08-23 | Bank Of America Corporation | System for network isolation of affected computing systems using environment hash outputs |
US11481484B2 (en) | 2020-04-16 | 2022-10-25 | Bank Of America Corporation | Virtual environment system for secure execution of program code using cryptographic hashes |
US11423160B2 (en) | 2020-04-16 | 2022-08-23 | Bank Of America Corporation | System for analysis and authorization for use of executable environment data in a computing system using hash outputs |
US11528276B2 (en) * | 2020-04-16 | 2022-12-13 | Bank Of America Corporation | System for prevention of unauthorized access using authorized environment hash outputs |
US11263109B2 (en) | 2020-04-16 | 2022-03-01 | Bank Of America Corporation | Virtual environment system for validating executable data using accelerated time-based process execution |
US11372982B2 (en) | 2020-07-02 | 2022-06-28 | Bank Of America Corporation | Centralized network environment for processing validated executable data based on authorized hash outputs |
US11637812B2 (en) * | 2020-10-13 | 2023-04-25 | Microsoft Technology Licensing, Llc | Dynamic forward proxy chaining |
US20230086281A1 (en) * | 2021-09-21 | 2023-03-23 | Paypal, Inc. | Computing system defenses to rotating ip addresses during computing attacks |
US12063166B1 (en) * | 2022-03-30 | 2024-08-13 | Amazon Technologies, Inc. | Resource management for services |
CN117395307A (zh) * | 2023-11-16 | 2024-01-12 | 北京驭数华创科技有限公司 | 一种数据传输的方法、装置及存储介质 |
Citations (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020156906A1 (en) * | 2001-04-19 | 2002-10-24 | Kadyk Donald J. | Methods and systems for authentication through multiple proxy servers that require different authentication data |
US20030005280A1 (en) * | 2001-06-14 | 2003-01-02 | Microsoft Corporation | Method and system for integrating security mechanisms into session initiation protocol request messages for client-proxy authentication |
US6785705B1 (en) * | 2000-02-08 | 2004-08-31 | Lucent Technologies Inc. | Method and apparatus for proxy chaining |
US20060010442A1 (en) * | 2004-07-06 | 2006-01-12 | Oracle International Corporation | System and method for managing security meta-data in a reverse proxy |
US20060031442A1 (en) * | 2004-05-07 | 2006-02-09 | International Business Machines Corporation | Method and system for externalizing session management using a reverse proxy server |
US7818435B1 (en) * | 2000-12-14 | 2010-10-19 | Fusionone, Inc. | Reverse proxy mechanism for retrieving electronic content associated with a local network |
CN105100263A (zh) * | 2015-08-20 | 2015-11-25 | 百度在线网络技术(北京)有限公司 | 一种反向代理方法及装置 |
CN106790161A (zh) * | 2016-12-29 | 2017-05-31 | 武汉华星光电技术有限公司 | 一种保障服务器安全并减轻防火墙压力的通信系统和方法 |
CN107222561A (zh) * | 2017-07-03 | 2017-09-29 | 杭州泰酷科技有限公司 | 一种传输层反向代理方法 |
CN107483609A (zh) * | 2017-08-31 | 2017-12-15 | 深圳市迅雷网文化有限公司 | 一种网络访问方法、相关设备和系统 |
CN107770138A (zh) * | 2016-08-22 | 2018-03-06 | 阿里巴巴集团控股有限公司 | 指定ip地址的方法及代理服务器、客户端 |
CN109067914A (zh) * | 2018-09-20 | 2018-12-21 | 星环信息科技(上海)有限公司 | Web服务的代理方法、装置、设备及存储介质 |
CN109361784A (zh) * | 2018-12-07 | 2019-02-19 | 成都知道创宇信息技术有限公司 | 一种在四层代理网络环境下获取客户端真实ip的方法 |
CN109547519A (zh) * | 2017-09-22 | 2019-03-29 | 中兴通讯股份有限公司 | 反向代理方法、装置及计算机可读存储介质 |
CN110611724A (zh) * | 2018-06-15 | 2019-12-24 | 上海仪电(集团)有限公司中央研究院 | 一种基于反向代理的物联网网关内网穿透方法 |
US20200092289A1 (en) * | 2018-09-18 | 2020-03-19 | Cyral Inc. | Architecture having a protective layer at the data source |
-
2020
- 2020-03-24 US US16/828,612 patent/US11831616B2/en active Active
-
2021
- 2021-02-05 IL IL296652A patent/IL296652A/en unknown
- 2021-02-05 WO PCT/US2021/016689 patent/WO2021194645A1/en active Application Filing
- 2021-02-05 EP EP21708532.3A patent/EP4128685A1/en active Pending
- 2021-02-05 CN CN202180023581.9A patent/CN115315926A/zh active Pending
-
2023
- 2023-10-17 US US18/488,798 patent/US20240106802A1/en active Pending
Patent Citations (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6785705B1 (en) * | 2000-02-08 | 2004-08-31 | Lucent Technologies Inc. | Method and apparatus for proxy chaining |
US7818435B1 (en) * | 2000-12-14 | 2010-10-19 | Fusionone, Inc. | Reverse proxy mechanism for retrieving electronic content associated with a local network |
US20020156906A1 (en) * | 2001-04-19 | 2002-10-24 | Kadyk Donald J. | Methods and systems for authentication through multiple proxy servers that require different authentication data |
US20030005280A1 (en) * | 2001-06-14 | 2003-01-02 | Microsoft Corporation | Method and system for integrating security mechanisms into session initiation protocol request messages for client-proxy authentication |
US20060031442A1 (en) * | 2004-05-07 | 2006-02-09 | International Business Machines Corporation | Method and system for externalizing session management using a reverse proxy server |
US20060010442A1 (en) * | 2004-07-06 | 2006-01-12 | Oracle International Corporation | System and method for managing security meta-data in a reverse proxy |
CN105100263A (zh) * | 2015-08-20 | 2015-11-25 | 百度在线网络技术(北京)有限公司 | 一种反向代理方法及装置 |
CN107770138A (zh) * | 2016-08-22 | 2018-03-06 | 阿里巴巴集团控股有限公司 | 指定ip地址的方法及代理服务器、客户端 |
CN106790161A (zh) * | 2016-12-29 | 2017-05-31 | 武汉华星光电技术有限公司 | 一种保障服务器安全并减轻防火墙压力的通信系统和方法 |
CN107222561A (zh) * | 2017-07-03 | 2017-09-29 | 杭州泰酷科技有限公司 | 一种传输层反向代理方法 |
CN107483609A (zh) * | 2017-08-31 | 2017-12-15 | 深圳市迅雷网文化有限公司 | 一种网络访问方法、相关设备和系统 |
CN109547519A (zh) * | 2017-09-22 | 2019-03-29 | 中兴通讯股份有限公司 | 反向代理方法、装置及计算机可读存储介质 |
CN110611724A (zh) * | 2018-06-15 | 2019-12-24 | 上海仪电(集团)有限公司中央研究院 | 一种基于反向代理的物联网网关内网穿透方法 |
US20200092289A1 (en) * | 2018-09-18 | 2020-03-19 | Cyral Inc. | Architecture having a protective layer at the data source |
CN109067914A (zh) * | 2018-09-20 | 2018-12-21 | 星环信息科技(上海)有限公司 | Web服务的代理方法、装置、设备及存储介质 |
CN109361784A (zh) * | 2018-12-07 | 2019-02-19 | 成都知道创宇信息技术有限公司 | 一种在四层代理网络环境下获取客户端真实ip的方法 |
Also Published As
Publication number | Publication date |
---|---|
US20240106802A1 (en) | 2024-03-28 |
WO2021194645A1 (en) | 2021-09-30 |
US20210306303A1 (en) | 2021-09-30 |
US11831616B2 (en) | 2023-11-28 |
IL296652A (en) | 2022-11-01 |
EP4128685A1 (en) | 2023-02-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11831616B2 (en) | Reverse proxy servers for implementing application layer-based and transport layer-based security rules | |
US11647005B2 (en) | Systems and methods for application pre-launch | |
CN112154639B (zh) | 在没有用户足迹的情况下的多因素认证 | |
CN107852417B (zh) | 多租户身份和数据安全性管理云服务 | |
EP4097944B1 (en) | Metadata-based detection and prevention of phishing attacks | |
US11777865B2 (en) | Discovery and adjustment of path maximum transmission unit | |
US12034715B2 (en) | System and method for cloud-based analytics | |
US20140270121A1 (en) | Method for apparatus for routing application programming interface (api) calls | |
US12063278B2 (en) | Leveraging web cookies for carrying messages across cloud application communications | |
US11290574B2 (en) | Systems and methods for aggregating skills provided by a plurality of digital assistants | |
US20210360078A1 (en) | Systems and methods for push notification service for saas applications | |
JP2022504499A (ja) | 中間デバイスのシステムオンチップを介したトラフィック最適化のためのシステムおよび方法 | |
US20220116406A1 (en) | Malware detection and mitigation via a forward proxy server | |
US20080320581A1 (en) | Systems, methods, and media for firewall control via process interrogation | |
US10116634B2 (en) | Intercepting secure session upon receipt of untrusted certificate | |
US11595372B1 (en) | Data source driven expected network policy control | |
US10826978B1 (en) | Systems and methods for server load control | |
US12032647B2 (en) | Tenant network for rewriting of code included in a web page | |
CN115118775B (zh) | 浏览器访问请求的处理方法、装置及电子设备 | |
US20230114298A1 (en) | System and method for detecting malicious attempts to discover vulnerabilities in a web application | |
CN116569538A (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 |