CN103139185A - 一种实现安全反向代理服务的方法 - Google Patents
一种实现安全反向代理服务的方法 Download PDFInfo
- Publication number
- CN103139185A CN103139185A CN2011103949170A CN201110394917A CN103139185A CN 103139185 A CN103139185 A CN 103139185A CN 2011103949170 A CN2011103949170 A CN 2011103949170A CN 201110394917 A CN201110394917 A CN 201110394917A CN 103139185 A CN103139185 A CN 103139185A
- Authority
- CN
- China
- Prior art keywords
- gateway
- http
- client
- reverse proxy
- server
- 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
Images
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
- Computer And Data Communications (AREA)
Abstract
本发明公开了一种安全的反向代理的方法。即在网关设备上部署安全反向代理服务器,安全网关设备位于客户端与应用服务器之间,客户端与网关之间进行SSL连接,构建安全信道,使客户端与网关之间的数据为加密数据,避免数据被窃听。在反向代理服务器上支持简单的URI域名识别,减少组网环境下的域名设置。
Description
一、技术领域
本发明涉及安全反向代理服务器领域,更具体的是在内外部网络之间架设安全网关,在网关上设置安全反向代理服务器,保护内部应用服务器免于遭到破坏,增强内部应用服务器的安全性的方法和装置。
二、背景技术
目前国内外大中型企业均在企业内部设置多台应用服务器,为企业内部资源使用的便利性提供帮助,包括:企业内部邮件服务、协同办公系统、财务管理系统等等。当企业用户使用外部网络通过代理服务器访问各应用系统时,一般将此代理服务器成为反向代理服务器。对于此反向代理服务器来说,服务器上没有保存任何网页的真实数据,所有的静态网页及WEB程序,都依然保存在企业内部的应用服务器上。对反向代理服务器的攻击并不会使得企业内部的应用服务器遭到破坏,这样就增强了企业内部应用服务器的安全性。
目前反向代理服务器均是支持HTTP的代理,但随着日益提高的安全等级,普通的HTTP反向代理已经不能满足大中型企业网络安全性的需要,其迫切的需要更加完善的安全机制来满足更高的安全需要,本方法提供一种在反向代理服务上增加认证及加解密的机制来增强外部访问的安全性,同时提供一种减少企业内部域名的方法。
三、发明内容
本发明提供了一种安全的反向代理的方法。附图1描述了其部属环境,即在网关设备上部署安全反向代理服务器,安全网关设备位于客户端与应用服务器之间,客户端与应用服务器的地址为不同网段地址,网关设备上设置两个网段的地址,同时在DNS服务器上指定网关的域名www.gateway.com和域名指向的地址,地址为网关设备与客户端交互的地址。
网关设备启动反向代理服务器前,针对代理服务器和代理的应用服务器进行配置,配置主要内容如下:
错误消息页面:由网关自行定义的简单HTML页面;(必选)
服务端证书:由第三方信任机构签发的证书;(必选)
公钥:与证书相匹配的公钥;(必选)
/XXX:应用服务器的简称;(必选)
Proxy_IP_PORT:应用服务器的实际IP地址及端口号;(必选)
设置头部信息:X-REAL-IP、X-Forwarded-For。(可选)
上述配置除证书外可根据不同的应用服务器配置多个应用服务器的反向代理,同时网关配置防火墙开启443端口的访问授权。配置完成后启动反向代理服务器,反向代理服务器利用Socket技术监听443端口的TCP连接,等待客户端发起的安全连接请求。客户端在浏览器上键入https://www.gateway.com/XXX,发起目的端口为443的TCP连接。www.gateway.com为网关的域名,/XXX为访问应用服务期的简称,服务端应同时配置/XXX所指向应用服务期的地址与需要返回客户端的URL进行指定。客户端与服务端的TCP协商为正常的TCP三次握手,握手成功后在TCP的基础上开始SSL协商。
SSL协商采用单向协商,附图2描述了其协商步骤,具体内容如下:
1、客户端通过SSL Hello消息将它支持的加密算法、密钥交换算法、MAC算法等信息发送给服务器。
2、网关将报文分为三部分,第一部分确定本次通信采用的加密套件,通过Hello消息通知给客户端;第二部分将自己公钥信息的数字证书通过Certificate消息通知给客户端,此证书为第三方信任机构签发的证书;第三部分网关通知客户端版本和加密套件协商结束,开始进行密钥交换。
3、客户端验证网关的证书合法性,利用证书中的公钥加密客户端随机生成的前置安全数,并通过消息发送给服务端。客户端发送Change Cipher Spec消息,通知服务端后续报文将采用协商好的密钥和加密套件进行加密和MAC计算。客户端计算已交互的握手消息(除Change Cipher Spec消息外所有已交互的消息)的Hash值,利用协商好的密钥和加密套件处理Hash值(计算并添加MAC值、加密等),并通过Finished消息发送给服务端。
4、服务端利用同样的方法计算已交互的握手消息的Hash值,并与Finished消息的解密结果比较,如果二者相同,且MAC值验证成功,则证明密钥和加密套件协商成功。同样地,服务端发送Change CipherSpec消息,通知客户端后续报文将采用协商好的密钥和加密套件进行加密和MAC计算。服务端计算已交互的握手消息的Hash值,利用协商好的密钥和加密套件处理Hash值(计算并添加MAC值、加密等),并通过Finished消息发送给客户端。客户端利用同样的方法计算已交互的握手消息的Hash值,并与Finished消息的解密结果比较,如果二者相同,且MAC值验证成功,则证明密钥和加密套件协商成功。
至此,SSL协商完成,加密信道建立。客户端发送SSL协商的密钥对HTTP报文进行加密,将加密后的数据发送到网关,网关反向代理模块调用SSL解密函数进行解密,解密后再进行HTTP报文的解析,加密信道的建立可保证客户端访问到网关这一阶段的数据为加密数据,如报文被拦截或泄露也不会对用户和企业产生影响。
反向代理模块并不对整个HTTP报文进行解析,其仅解析HTTP报文的请求行、消息报头,而不对HTTP请求正文进行解析。
对HTTP请求行的通用资源标识符(即HTTP URI)进行解析,确定URI为“/XXX”;查找是否有/XXX应用服务器代理的配置选项,如果没有,则返回HTTP 502错误,此处返回的是自定义页面,避免客户端通过错误页面可以了解应用服务器的目录构造;如果有代理,则取出/XXX的相关配置,在对HTTP头进行解析。
解析HTTP消息报头,提取HTTP消息报头的所有选项,包括:″Accept、Accept-Language、User-Agent、Accept-Encoding、Host、Connection、Cookie等所有选项,并将选项及选项内容保存;
创建一个新的BUF,重新构造HTTP请求行与消息报头:
重新构造HTTP选项Host,此选项内容为反向代理服务器配置域名;
如配置了protocolHeader选项,则创建HTTP选项protocolHeader,此选项内容为https://,此选项仅为标识,一般表示反向代理服务器接收了HTTPS的协商,并对数据进行了解密,应用服务器一般不对其进行处理;
如配置了X-Forwarded-For选项,则创建HTTP选项X-Forwarded-For,此选项内容为真实客户端IP地址,此处是否选择添加此选项应根据应用服务器来判断,如部署为以IP地址为限制的投票系统时,必须设置该选项,将HTTP的请求客户端端的真实IP发送到应用服务器,避免应用服务器以IP头的源地址进行统计而使统计数据不准确;
如配置了X-REAL-IP选项,则创建HTTP选项X-REAL-IP,此选项为实际直接访问地址;
重新构造HTTP选项Connection,此选项内容为close。
其他HTTP选项不予修改,完成HTTP报文头的封装后,根据/XXX指定的应用服务器地址和端口号将报文发送到应用服务期,应用服务期解析后将报文返回给网关,网关将数据透传给客户端,对于数据来说,应用服务器回传的数据,网关是不做更改的,因此网关对用户来讲是透明的。但如果应用服务器返回错误消息,代理服务器会先行截取该消息并更改标头中列出的任何URL,然后再将消息发送给客户机。防止外部客户机获取内部内容服务器的重定向URL。
由于在反向代理服务器中/XXX,可以解释为应用服务器的地址,因此,在实际的组网环境下可以在DNS服务器上删除此域名,避免域名被占用。
网关的实现基于定制的硬件和操作系统,采用专为网关设计的工控机和裁减的Liunx操作系统,上述算法的实现基于我公司自有的实现,其主要实现为二个模块:
1.数据处理子模块
数据处理子模块是安全网关与外界交互的唯一出入口,其采用多进程并发处理模型,同时启动1个主进程和8个子进程进行工作,主进程负责控制反向代理引擎模块的基础配置信息,子进程并发接收数据和发送数据。
数据处理子模块利用Socket技术实现对端口的监控,当收到客户端发起的请求后,调用中间层子模块对协商报文进行处理(协商处理过程由中间层子模块协商负责处理)。数据的收发均采用流式Socket(面向连接的Socket)来完成。当数据处理子模块接收数据后,根据报文目的IP地址,进行判断,当目的IP地址满足系统ipTables中某一条规则时,将报文根据规则指向的接口进行转发。
2.中间层子模块
中间层子模块负责SSL协议的协商,协商通过后数据处理子模块调用open ssl的解密接口SSL_read完成数据的解密操作。
四、附图说明
【图1】:安全网关部署环境
【图2】:单向SSL协商过程
Claims (8)
1.一种网关作为安全反向代理服务器的方法,所述的网关设置在用户与服务器之间网络上,所述方法包括步骤:
(1)客户端连接反向代理服务器在网关上开放的443端口,三次握手后建立TCP连接,在TCP连接基础上建立SSL安全信道;
(2)安全信道建立后,网关接收客户端向应用服务器发送的被加密的HTTP请求,网关对此请求进行解密处理;
(3)解密后网关对HTTP报文进行解析,根据解析的URI,判定反向代理指定的应用服务器;
(4)继续解析HTTP头信息,对HTTP头进行改造,增加部分头信息后将报文发送到应永服务器。
2.如权利要求1所述的方法,其特征在于网关可接收443端口的TCP连接。
3.如权利要求1所述的方法,其特征在于TCP连接建立后,客户端与网关进行SSL协商。
4.如权利要求1所述的方法,其特征在于SSL协商完成后,客户端发送的HTTP数据为加密数据,网关对数据解密后才可以进行解析。
5.如权利要求1所述的方法,其特征在于网关包括识别HTTP请求,并对请求头部进行解析的装置。
6.如权利要求1所述的方法,其特征在于网关可构造部分头信息,并根据应用服务器的实际需要构造不同的头部信息。
7.如权利要求1所述的方法,其特征在于网关包括代替Web服务器对客户端HTTP请求进行应答的装置。
8.如权利要求1所述的方法,其特征在于网关包括对数据包进行端口转发的装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2011103949170A CN103139185A (zh) | 2011-12-02 | 2011-12-02 | 一种实现安全反向代理服务的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2011103949170A CN103139185A (zh) | 2011-12-02 | 2011-12-02 | 一种实现安全反向代理服务的方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN103139185A true CN103139185A (zh) | 2013-06-05 |
Family
ID=48498495
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2011103949170A Pending CN103139185A (zh) | 2011-12-02 | 2011-12-02 | 一种实现安全反向代理服务的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103139185A (zh) |
Cited By (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104270379A (zh) * | 2014-10-14 | 2015-01-07 | 北京蓝汛通信技术有限责任公司 | 基于传输控制协议的https 代理转发方法及装置 |
CN104767742A (zh) * | 2015-03-25 | 2015-07-08 | 中兴通讯股份有限公司 | 一种安全通信方法、网关、网络侧服务器及系统 |
CN104980456A (zh) * | 2014-04-03 | 2015-10-14 | 华为技术有限公司 | 传输业务的方法、中间节点、终端和服务器 |
CN105407068A (zh) * | 2014-06-30 | 2016-03-16 | 优视科技有限公司 | 网络数据获取方法、装置和系统 |
CN105763566A (zh) * | 2016-04-19 | 2016-07-13 | 成都知道创宇信息技术有限公司 | 一种客户端与服务器之间的通信方法 |
CN105871646A (zh) * | 2016-06-17 | 2016-08-17 | 心动网络股份有限公司 | 网关设备及网关配置方法 |
CN106161617A (zh) * | 2016-07-04 | 2016-11-23 | 微梦创科网络科技(中国)有限公司 | 基于nodejs的反向代理方法、反向代理服务器及系统 |
CN106302507A (zh) * | 2016-08-31 | 2017-01-04 | 北京盛世光明软件股份有限公司 | 一种基于ssl网络数据解析技术的方法 |
CN106549955A (zh) * | 2016-11-01 | 2017-03-29 | 大唐软件技术股份有限公司 | 一种实现数据通讯的方法及系统 |
WO2017124837A1 (zh) * | 2016-01-19 | 2017-07-27 | 深圳前海达闼云端智能科技有限公司 | 一种sslvpn的代理方法、服务器以及客户端及其处理方法 |
CN107770189A (zh) * | 2017-10-30 | 2018-03-06 | 湖北三新文化传媒有限公司 | 反向代理方法、系统、代理服务器及存储介质 |
CN109327431A (zh) * | 2017-08-01 | 2019-02-12 | 黑莓有限公司 | 处理移动设备上的资源请求 |
CN109802936A (zh) * | 2018-11-22 | 2019-05-24 | 北京奇艺世纪科技有限公司 | 一种网络数据访问方法、装置及电子设备 |
CN109962913A (zh) * | 2019-03-11 | 2019-07-02 | 北京信安世纪科技股份有限公司 | 基于安全套接层协议的代理服务器及代理方法 |
CN112054994A (zh) * | 2020-08-04 | 2020-12-08 | 上海人云科技有限公司 | 机器人访问地址加密方法、机器人访问方法和装置 |
CN112637346A (zh) * | 2020-12-24 | 2021-04-09 | 北京知道创宇信息技术股份有限公司 | 代理方法、装置、代理服务器及存储介质 |
CN113507479A (zh) * | 2021-07-23 | 2021-10-15 | 上海颜硕信息科技有限公司 | 一种针对web代码和数据的网关型加解密透明sdk技术 |
WO2021217869A1 (zh) * | 2020-04-29 | 2021-11-04 | 平安科技(深圳)有限公司 | 一种传递客户端真实ip地址的方法及系统 |
CN115086034A (zh) * | 2022-06-15 | 2022-09-20 | 北京鼎普科技股份有限公司 | 一种基于代理与反向代理实现国密算法通信的方法及系统 |
CN118018604A (zh) * | 2024-04-09 | 2024-05-10 | 创意信息技术股份有限公司 | 一种云边一体化的反向代理方法及装置 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101981888A (zh) * | 2008-01-26 | 2011-02-23 | 思杰系统有限公司 | 用于ssl vpn免客户机访问的策略驱动的细粒度url编码机制 |
CN101984778A (zh) * | 2008-01-26 | 2011-03-09 | 思杰系统有限公司 | 用于细粒度策略驱动的cookie代理的系统和方法 |
-
2011
- 2011-12-02 CN CN2011103949170A patent/CN103139185A/zh active Pending
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101981888A (zh) * | 2008-01-26 | 2011-02-23 | 思杰系统有限公司 | 用于ssl vpn免客户机访问的策略驱动的细粒度url编码机制 |
CN101984778A (zh) * | 2008-01-26 | 2011-03-09 | 思杰系统有限公司 | 用于细粒度策略驱动的cookie代理的系统和方法 |
Non-Patent Citations (1)
Title |
---|
张学杰等: "SSL技术在构建VPN中的应用", 《计算机应用》 * |
Cited By (28)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104980456B (zh) * | 2014-04-03 | 2018-09-21 | 华为技术有限公司 | 传输业务的方法、中间节点、终端和服务器 |
CN104980456A (zh) * | 2014-04-03 | 2015-10-14 | 华为技术有限公司 | 传输业务的方法、中间节点、终端和服务器 |
CN105407068A (zh) * | 2014-06-30 | 2016-03-16 | 优视科技有限公司 | 网络数据获取方法、装置和系统 |
CN105407068B (zh) * | 2014-06-30 | 2019-02-15 | 优视科技有限公司 | 网络数据获取方法、装置和系统 |
CN104270379A (zh) * | 2014-10-14 | 2015-01-07 | 北京蓝汛通信技术有限责任公司 | 基于传输控制协议的https 代理转发方法及装置 |
CN104270379B (zh) * | 2014-10-14 | 2017-11-10 | 北京蓝汛通信技术有限责任公司 | 基于传输控制协议的https 代理转发方法及装置 |
CN104767742A (zh) * | 2015-03-25 | 2015-07-08 | 中兴通讯股份有限公司 | 一种安全通信方法、网关、网络侧服务器及系统 |
WO2016150169A1 (zh) * | 2015-03-25 | 2016-09-29 | 中兴通讯股份有限公司 | 一种安全通信方法、网关、网络侧服务器及系统 |
WO2017124837A1 (zh) * | 2016-01-19 | 2017-07-27 | 深圳前海达闼云端智能科技有限公司 | 一种sslvpn的代理方法、服务器以及客户端及其处理方法 |
CN105763566A (zh) * | 2016-04-19 | 2016-07-13 | 成都知道创宇信息技术有限公司 | 一种客户端与服务器之间的通信方法 |
CN105763566B (zh) * | 2016-04-19 | 2018-11-30 | 成都知道创宇信息技术有限公司 | 一种客户端与服务器之间的通信方法 |
CN105871646A (zh) * | 2016-06-17 | 2016-08-17 | 心动网络股份有限公司 | 网关设备及网关配置方法 |
CN106161617A (zh) * | 2016-07-04 | 2016-11-23 | 微梦创科网络科技(中国)有限公司 | 基于nodejs的反向代理方法、反向代理服务器及系统 |
CN106302507A (zh) * | 2016-08-31 | 2017-01-04 | 北京盛世光明软件股份有限公司 | 一种基于ssl网络数据解析技术的方法 |
CN106549955A (zh) * | 2016-11-01 | 2017-03-29 | 大唐软件技术股份有限公司 | 一种实现数据通讯的方法及系统 |
CN109327431A (zh) * | 2017-08-01 | 2019-02-12 | 黑莓有限公司 | 处理移动设备上的资源请求 |
CN109327431B (zh) * | 2017-08-01 | 2022-07-26 | 黑莓有限公司 | 处理移动设备上的资源请求 |
CN107770189A (zh) * | 2017-10-30 | 2018-03-06 | 湖北三新文化传媒有限公司 | 反向代理方法、系统、代理服务器及存储介质 |
CN109802936A (zh) * | 2018-11-22 | 2019-05-24 | 北京奇艺世纪科技有限公司 | 一种网络数据访问方法、装置及电子设备 |
CN109802936B (zh) * | 2018-11-22 | 2022-04-22 | 北京奇艺世纪科技有限公司 | 一种网络数据访问方法、装置及电子设备 |
CN109962913A (zh) * | 2019-03-11 | 2019-07-02 | 北京信安世纪科技股份有限公司 | 基于安全套接层协议的代理服务器及代理方法 |
WO2021217869A1 (zh) * | 2020-04-29 | 2021-11-04 | 平安科技(深圳)有限公司 | 一种传递客户端真实ip地址的方法及系统 |
CN112054994A (zh) * | 2020-08-04 | 2020-12-08 | 上海人云科技有限公司 | 机器人访问地址加密方法、机器人访问方法和装置 |
CN112637346A (zh) * | 2020-12-24 | 2021-04-09 | 北京知道创宇信息技术股份有限公司 | 代理方法、装置、代理服务器及存储介质 |
CN112637346B (zh) * | 2020-12-24 | 2023-12-01 | 北京知道创宇信息技术股份有限公司 | 代理方法、装置、代理服务器及存储介质 |
CN113507479A (zh) * | 2021-07-23 | 2021-10-15 | 上海颜硕信息科技有限公司 | 一种针对web代码和数据的网关型加解密透明sdk技术 |
CN115086034A (zh) * | 2022-06-15 | 2022-09-20 | 北京鼎普科技股份有限公司 | 一种基于代理与反向代理实现国密算法通信的方法及系统 |
CN118018604A (zh) * | 2024-04-09 | 2024-05-10 | 创意信息技术股份有限公司 | 一种云边一体化的反向代理方法及装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103139185A (zh) | 一种实现安全反向代理服务的方法 | |
US9887975B1 (en) | Systems and methods for delegated cryptography | |
US11038854B2 (en) | Terminating SSL connections without locally-accessible private keys | |
JP5346107B2 (ja) | インターネットのための対称鍵配信フレームワーク | |
US20080222714A1 (en) | System and method for authentication upon network attachment | |
Park et al. | Lightweight secure communication for CoAP-enabled internet of things using delegated DTLS handshake | |
US20170317836A1 (en) | Service Processing Method and Apparatus | |
CN102811225A (zh) | 一种ssl中间代理访问web资源的方法及交换机 | |
Ranjan et al. | Security analysis of TLS authentication | |
CN103716280B (zh) | 数据传输方法、服务器及系统 | |
Fotiou et al. | Securing information-centric networking without negating middleboxes | |
CN107493294A (zh) | 一种基于非对称加密算法的ocf设备的安全接入与管理控制方法 | |
Sukumara et al. | Cyber security—Securing the protection and control relay communication in substation | |
Manzoor | Securing device connectivity in the industrial internet of things (IoT) | |
Fan et al. | Security analysis of the kerberos protocol using BAN logic | |
US10931662B1 (en) | Methods for ephemeral authentication screening and devices thereof | |
EP2330789B1 (en) | System and method for accessing private digital content | |
CN105516161A (zh) | 安全获取http请求的方法及系统 | |
CN113273235B (zh) | 建立安全通信会话的方法和系统 | |
Huang et al. | The Research of VPN on WLAN | |
CN114553414B (zh) | 基于https服务的内网穿透方法及系统 | |
Cheong et al. | A new secure token for enhancing Web Service Security | |
Alhumrani et al. | Cryptographic protocols for secure cloud computing | |
CN114186213A (zh) | 基于联邦学习的数据传输方法及装置、设备和介质 | |
CN106464684B (zh) | 业务处理方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C02 | Deemed withdrawal of patent application after publication (patent law 2001) | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20130605 |