CN102088465B - 一种基于前置网关的HTTPCookie保护方法 - Google Patents

一种基于前置网关的HTTPCookie保护方法 Download PDF

Info

Publication number
CN102088465B
CN102088465B CN201110063818.4A CN201110063818A CN102088465B CN 102088465 B CN102088465 B CN 102088465B CN 201110063818 A CN201110063818 A CN 201110063818A CN 102088465 B CN102088465 B CN 102088465B
Authority
CN
China
Prior art keywords
cookie
server
gateway
value
http
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.)
Expired - Fee Related
Application number
CN201110063818.4A
Other languages
English (en)
Other versions
CN102088465A (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.)
Institute of Software of CAS
Original Assignee
Institute of Software of CAS
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 Institute of Software of CAS filed Critical Institute of Software of CAS
Priority to CN201110063818.4A priority Critical patent/CN102088465B/zh
Publication of CN102088465A publication Critical patent/CN102088465A/zh
Application granted granted Critical
Publication of CN102088465B publication Critical patent/CN102088465B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)
  • Computer And Data Communications (AREA)

Abstract

本发明公开了一种基于前置网关的HTTP Cookie保护方法,属于Web安全领域。所述方法包括:1-1)所述前置网关收到服务器发往客户端的HTTP应答时,对其中的cookie名值对进行签署;1-2)所述前置网关收到客户端发往服务器的HTTP请求时,对其中的cookie名值对进行验证,验证通过则放行所述HTTP请求。本发明可用于Web服务器。

Description

一种基于前置网关的HTTPCookie保护方法
技术领域
本发明涉及Web安全领域。更为具体的,本发明涉及一种基于前置代理网关保护Web应用中使用的Cookie的方法,保护Web应用免受Cookie篡改和泄漏的威胁。 
背景技术
由于HTTP协议的无状态特性,Web服务器通常使用cookie实现跨HTTP会话的数据传递。Cookie值都是由服务器生成,并发送到客户端以便它们在下一个会话中被客户端提交回来供服务器使用。通过这种方式,Web服务可以获取以前会话产生的重要数据,保持多个会话之间的状态,以便维持与客户端的交互过程的平滑性。从整个Web会话的角度,客户端的可信性是难以保证的,Cookie值可能在客户端被恶意用户篡改以实现对Web服务器的业务欺诈。Cookie中包含的敏感信息也容易在客户端和传输过程中被泄露。 
上述问题的根源在于HTTP协议的无状态特性以及安全机制的缺乏。Web服务器通常采用HTTPS来加强Web交互的安全性,这种安全协议保证数据在传输过程中机密性和完整性,但无法解决Cookie在客户端被篡改问题。Web应用也可以在其实现代码中对cookie的值进行加密和认证,保证其客户端的不可见和不可篡改,但这种方法需要对大量已有的Web应用的实现代码进行修改,容易造成对应用的干扰,也不具有可扩展性。 
发明内容
针对在现有web应用代码中cookie进行安全加固所面临的对应用的干扰和扩展性缺乏问题,本发明提供了一种基于前置代理网关的Web安全加固方法,基于前置HTTP代理网关透明介入到客户端和Web服务器的会话过程中,实现对Web服务器发往客户端的cookie的签署以及对从客户端向服务器发送的上述协议字段的验证,保证客户端不能实现对cookie的篡改。在提高Web会话安全性的同时,本发明能够同时实现对多个Web网站的安全加固,并避免对Web应用代码的修改。 
本发明解决其技术问题所采用的技术方案是:前置网关部署在受保护的Web服务器之前,解析服务器发往客户端的HTTP应答,基于网关自身的秘密对HTTP应答中Set-Cookie的值 进行签署/加密;当网关接收到用户发往服务器的请求时,验证其中的cookie的值。前置网关可以以桥或者反向代理模式部署,在桥模式中,可通过目标地址转换(DNAT)使得协议数据能够被网关接收;在反向代理模式中,协议数据可直接发送给网关。如果cookie的值是敏感的而不宜对外泄露,则网关可以首先对cookie的值进行加密。在签署时,网关使用自己的秘密,这个秘密可以是一对非对称算法密钥或者一个对称算法密钥,如果是一对非对称算法密钥,则使用私钥对要保护的值进行签名,使用公钥进行验证;如果是一个对称算法密钥,则在签署时使用密钥和要保护的值计算哈希消息认证码(HMAC),并在验证时重新计算认证码并进行比对。 
具体来说,本发明采用如下技术方案。 
一种基于前置网关的HTTP Cookie保护方法,所述前置网关位于服务器和客户端之间,其特征在于,所述方法包括: 
1-1).所述前置网关收到服务器发往客户端的HTTP应答时,对其中的cookie名值对进行签署; 
1-2).所述前置网关收到客户端发往服务器的HTTP请求时,对其中的cookie名值对进行验证,验证通过则放行所述HTTP请求。 
所述方法还可包括: 
2-1).所述前置网关收到服务器发往客户端的HTTP应答时,对其中的cookie名值对进行加密; 
2-2).所述前置网关收到客户端发往服务器的HTTP请求时,对其中的cookie名值对进行解密并放行所述HTTP请求。 
在本发明方法中,所述前置网关以桥模式或者以反向代理模式分别和所述服务器和客户端数据连接。 
优选地,在步骤1-1)中,可通过HMAC码或签名算法对所述HTTP应答中的cookie名值对进行签署。 
和现有技术相比,本发明的有益效果是,基于前置网关对cookie和隐藏按钮的值进行透明安全保护,无需更改Web应用的是实现代码,又可以同时保护多台Web服务器,具有良好的可扩展性。 
附图说明
附图是本发明方法的示意图。 
具体实施方式
下面通过具体实施例结合附图对本发明作进一步描述。 
如附图所示,前置代理网关位于受保护的Web服务器之前,在服务器之前接收来自客户端的HTTP请求,然后进行解析验证,再转发给服务器;在客户端之前接收到来自服务器的HTTP应答,解析并进行处理,然后转发给客户端。整个方法的具体执行流程如下: 
1)用户配置前置网关的执行参数,包括加密、签名、HASH算法的参数等。 
2)前置网关接收到来自服务器的HTTP应答,搜索其中的Set-Cookie字段,根据服务器的机密敏感性配置,对其中的每一个cookie名称值对进行签署、加密处理。
3)前置网关接收到来自客户端的HTTP请求,搜索其中的Cookie字段,根据服务器的机密敏感性配置,对每一个cookie名称值对进行验证、解密处理。
前置代理网关可以以桥或反向代理两种模式为一台或者多台Web服务器提供安全加固。在桥模式下,客户端发往服务器的请求数据包中的目标地址是真实的服务器,这时为了让网关能够接收和处理这些数据,通过目标地址转换(DNAT)方式将数据包的目标地址和端口转换本机的地址和服务端口,当数据被网关处理完成之后,再转发给服务器。在反向代理模式中,前置网关对外提供多个服务地址或者端口,并在这些地址或端口和真实的服务器之间进行对应,客户端将请求发往网关自身的服务地址与端口,网关解析并处理后转发给Web服务器。 
由于在HTTP应答的Set-Cookie头字段和HTTP请求的Cookie字段中,都可以包含多个名-值对,而且其在HTTP请求中的包含顺序是不确定的,在这里需要对每个单独的名-值对进行签署。对于HTTP应答中的Set-Cookie字段含有的多个名-值对,设为n1=v1;n2=v2;...ni=vi...。 
为了描述方便,如果网关使用签名保护cookie,则设网关非对称密钥对的公钥为PKg,私钥为VKg。如果网关使用HMAC码保护cookie,则设网关用于签署的对称密钥为SK。此外,设网关用于加密的对称密钥为EK。 
如果仅仅需要对cookie的值进行签署,而不需要加密。则对于ni=vi,如果网关使用HMAC码,则构造vi’=vi+H(vi,SK)(其中“+”代表连接,H为使用的HASH算法),并且替换ni=vi为ni=vi’。如果网关使用签名保护cookie的值,则构造vi’=Sig(H(vi),VKg)(其中Sig为使用的签名算法,H为使用的HASH算法),并且替换ni=vi为ni=vi’。 
如果cookie的值是敏感的,则首先需要进行加密。对于ni=vi,则首先构造EV=ENC(vi,EK)(其中ENC为加密算法)。然后如果网关使用HMAC码,则构造vi’=vi+H(vi,SK),并且替换ni=vi为ni=EV+vi’。如果网关使用签名保护cookie的值,则构造vi’=Sig(H(vi),VKg),并 且替换ni=vi为ni=EV+vi’。 
是否对cookie的值进行加密保护,取决于设置cookie的Web服务器业务的机密敏感性,如果某个Web服务器的业务被认为是机密的,则对该服务器产生的cookie的值统一进行加密,否则统一不予加密。使用签名算法还是HMAC保护cookie取决于前置网关的设置。 
在进行验证时,对于HTTP请求中Cookie字段中的给定的ni=Val,首先根据指定的数据长度(取决于采用签名长度或者HMAC码的长度),将Val拆分成Val=Ori+S(其中S为签名长度或者HMAC码的长度),如果该请求发往的Web服务器是机密敏感的,则首先进行解密V=ENC(ori,EK),否则令V=Ori。 
如果网关采用签名算法保护cookie,则计算L=Sig(S,PKg),比较H(V)是否与L相等,如果相等,则说明该cookie的值未经篡改,否则说明已经被篡改。 
如果网关采用的是HMAC,则计算L=H(V,SK),比较L是否与S相等,如果相等则说明未被篡改,此时可以放行该请求;否则说明已经被篡改,可以阻断该请求。 
如果未经篡改,验证后,网关将HTTP请求中的ni=Val置换成ni=V。 

Claims (1)

1.一种基于前置网关的HTTP Cookie保护方法,所述前置网关位于服务器和客户端之间,其特征在于,所述前置网关以桥模式或反向代理模式分别和所述服务器和客户端数据连接,用户配置前置网关的执行参数,包括加密、签名、HASH算法的参数,在HTTP应答的Set-Cookie头字段和HTTP请求的Cookie字段中,包含多个名值对,所述方法包括:
1)前置网关接收到来自服务器的HTTP应答,搜索其中的Set-Cookie字段,根据服务器的机密敏感性配置,对其中的每一个cookie的值进行签署和/或加密处理;
若cookie的值不是敏感的,按照如下步骤进行:
1-1).所述前置网关收到服务器发往客户端的HTTP应答时,对其中的cookie的值直接进行签署;
若cookie的值是敏感的,则按照如下步骤进行:
1-2).所述前置网关收到服务器发往客户端的HTTP应答时,首先对其中的cookie的值进行加密;再对cookie值进行签署;
2)前置网关接收到来自客户端的HTTP请求,搜索其中的Cookie字段,根据服务器的机密敏感性配置,对每一个cookie的值对进行验证、解密处理;
若cookie的值不是敏感的,按照如下步骤进行:
2-1).所述前置网关收到客户端发往服务器的HTTP请求时,对其中的cookie的值进行验证,验证通过则放行所述HTTP请求;
若cookie的值是敏感的,则按照如下步骤进行:
2-2).所述前置网关收到客户端发往服务器的HTTP请求时,首先对其中的cookie名值对进行解密,然后进行验证,验证通过则放行所述HTTP请求;
若所述步骤1-1)或1-2)中使用HMAC码对cookie进行签署保护;则在步骤2-1)或2-2)中重新计算所述HMAC码,若相同则放行所述HTTP请求;
若所述步骤1-1)或1-2)中使用私钥对cookie进行签署保护;则在步骤2-1)或2-2)中,使用公钥进行验证,验证通过则放行所述HTTP请求;
所述前置网关在桥模式下,客户端发往服务器的请求数据包中的目标地址是真实的服务器,通过DNAT目标地址转换方式将数据包的目标地址和端口转换本机的地址和服务端口,当数据被网关处理完成之后,再转发给服务器;
所述前置网关在反向代理模式下,前置网关对外提供多个服务地址或者端口,并在这些地址或端口和真实的服务器之间进行对应,客户端将请求发往网关自身的服务地址与端口,网关解析并处理后转发给Web服务器。
CN201110063818.4A 2011-03-16 2011-03-16 一种基于前置网关的HTTPCookie保护方法 Expired - Fee Related CN102088465B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201110063818.4A CN102088465B (zh) 2011-03-16 2011-03-16 一种基于前置网关的HTTPCookie保护方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201110063818.4A CN102088465B (zh) 2011-03-16 2011-03-16 一种基于前置网关的HTTPCookie保护方法

Publications (2)

Publication Number Publication Date
CN102088465A CN102088465A (zh) 2011-06-08
CN102088465B true CN102088465B (zh) 2014-04-16

Family

ID=44100078

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201110063818.4A Expired - Fee Related CN102088465B (zh) 2011-03-16 2011-03-16 一种基于前置网关的HTTPCookie保护方法

Country Status (1)

Country Link
CN (1) CN102088465B (zh)

Families Citing this family (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102882897A (zh) * 2012-10-31 2013-01-16 杭州迪普科技有限公司 一种cookie保护的方法和装置
US8996855B2 (en) * 2012-11-14 2015-03-31 Blackberry Limited HTTP layer countermeasures against blockwise chosen boundary attack
CN103078876B (zh) * 2013-01-31 2015-07-15 北京集奥聚合科技有限公司 Http报文隐私保护方法和装置
CN104038914B (zh) * 2013-03-08 2018-04-24 中兴通讯股份有限公司 一种Cookie纠错的方法及装置
CN103179134A (zh) * 2013-04-19 2013-06-26 中国建设银行股份有限公司 基于Cookie的单点登录方法、系统及其应用服务器
CN104348816B (zh) * 2013-08-07 2018-04-20 华为数字技术(苏州)有限公司 保护Cookie信息的方法及Web服务器前置网关
CN103581182A (zh) * 2013-10-30 2014-02-12 汉柏科技有限公司 一种Web信息发布方法及设备
CN103618754B (zh) * 2013-12-20 2017-02-08 山东中创软件商用中间件股份有限公司 一种Cookie防篡改方法及装置
CN104079629A (zh) * 2014-06-06 2014-10-01 汉柏科技有限公司 一种基于cookie信息的HTTP请求报文的监控方法及网关
CN104113528A (zh) * 2014-06-23 2014-10-22 汉柏科技有限公司 一种基于前置网关的防止敏感信息泄露的方法和系统
CN105450698B (zh) * 2014-08-25 2019-03-12 苏宁易购集团股份有限公司 一种曝光日志采集系统和方法
CN104378363B (zh) * 2014-10-30 2017-09-15 中国科学院信息工程研究所 一种动态应用地址转换方法及其网关系统
CN105049428B (zh) * 2015-06-30 2019-08-20 深信服科技股份有限公司 数据安全传输的方法和装置
CN105100084B (zh) * 2015-07-07 2018-03-30 中国科学院计算技术研究所 一种防止跨站请求伪造攻击的方法及系统
CN108243148B (zh) * 2016-12-23 2022-11-01 上海诺基亚贝尔股份有限公司 用于进行认证的方法和装置
CN107241339B (zh) * 2017-06-29 2020-03-03 北京小米移动软件有限公司 身份验证方法、装置和存储介质
CN109347879B (zh) * 2018-11-30 2021-05-25 四川长虹电器股份有限公司 基于加密技术的Cookie安全防护方法及服务器
CN112104703A (zh) * 2020-08-18 2020-12-18 厦门网宿有限公司 cookie管理方法、中间节点及webvpn系统
CN114172677A (zh) * 2020-09-11 2022-03-11 北京金山云网络技术有限公司 针对秒拨ip的识别方法及装置、系统
CN113381976B (zh) * 2021-05-11 2022-06-24 北京丁牛科技有限公司 一种走私攻击测试方法、装置、电子设备及存储介质
CN115001840B (zh) * 2022-06-21 2023-03-24 北京翼辉信息技术有限公司 一种基于代理的鉴权方法、系统及计算机储存介质

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101572700A (zh) * 2009-02-10 2009-11-04 中科正阳信息安全技术有限公司 一种HTTP Flood分布式拒绝服务攻击防御方法

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101572700A (zh) * 2009-02-10 2009-11-04 中科正阳信息安全技术有限公司 一种HTTP Flood分布式拒绝服务攻击防御方法

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
SSL VPN中安全身份认证的研究;黄华健;《西安电子科技大学硕士学位论文》;20090625;第23页第6行到第35页第5行 *
基于反向代理的Web应用安全解决方案的设计与实现;毛武;《西南交通大学硕士学位论文》;20100728;第28页第29行到第37页第9行 *
毛武.基于反向代理的Web应用安全解决方案的设计与实现.《西南交通大学硕士学位论文》.2010,28-37.
黄华健.SSL VPN中安全身份认证的研究.《西安电子科技大学硕士学位论文》.2009,20-32.

Also Published As

Publication number Publication date
CN102088465A (zh) 2011-06-08

Similar Documents

Publication Publication Date Title
CN102088465B (zh) 一种基于前置网关的HTTPCookie保护方法
US8281127B2 (en) Method for digital identity authentication
KR20210134655A (ko) 보안 시스템 및 관련 방법
US20060005239A1 (en) Inspected secure communication protocol
US20120072717A1 (en) Dynamic identity authentication system
KR20090098542A (ko) 프록시를 이용한 암호화 데이터 통신시스템 및 암호화데이터 통신방법
Du et al. A study of man-in-the-middle attack based on SSL certificate interaction
CN111801924A (zh) 用于使用消息级安全性进行消息传递的设备、方法和制造产品
Alizai et al. Key-based cookie-less session management framework for application layer security
CN102469067B (zh) 一种基于前置网关的http隐藏按钮保护方法
Büttner et al. Real-world evaluation of an anonymous authenticated key agreement protocol for vehicular ad-hoc networks
CN105791285A (zh) 一种支持iec62351加密mms报文在线分析方法
JP2016220062A (ja) 通信装置、サーバ、署名検証委託システム及び署名検証委託方法
CN101888383B (zh) 一种可扩展的可信ssh的实现方法
Singh et al. Analysis of cryptographically replay attacks and its mitigation mechanism
Diaz et al. On securing online registration protocols: Formal verification of a new proposal
Bagaria et al. Detecting malignant tls servers using machine learning techniques
Thungon et al. A lightweight certificate-based authentication scheme for 6LoWPAN-based internet of things
Shi et al. Verification of LINE encryption version 1.0 using ProVerif
Ahn et al. mdTLS: How to Make middlebox-aware TLS more efficient?
Fraile et al. Design and performance evaluation of an embedded EDHOC module
Kammueller et al. Engineering security protocols with model checking-Radius-SHA256 and secured simple protocol
WO2023130970A1 (zh) 集成可信度量的通信方法和装置
Bozkurt et al. Exploring the Vulnerabilities and Countermeasures of SSL/TLS Protocols in Secure Data Transmission Over Computer Networks
Dodd Cryptocraft Ltd. matthew@ cryptocraft. co. uk

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20140416