一种基于Cookie加密的安全防御方法和系统与流程

文档序号:17147627发布日期:2019-03-19 23:07阅读:238来源:国知局
一种基于Cookie加密的安全防御方法和系统与流程

本发明涉及网络安全技术,特别涉及一种基于cookie加密的安全防御方法和系统。



背景技术:

随着互联网的高速发展,web应用的安全问题已经成为当今社会的热点。web站点通常是由应用程序组成,它们能提供各式各样的服务,功能非常强大。然而,web网站向用户提供的服务或展示的内容是动态形成的,而且能够满足用户的个性化需求,这个个性化的需求同时也给web网站带来了安全隐患,比如sql注入攻击、跨站脚本攻击等。同时,ajax技术的流行,使得xss攻击威胁变得日趋严重。xss攻击在owasp组织分布的owasptop2018中位列第三,可见xss攻击所造成的威胁之大。

xss攻击是一种间接攻击,攻击者通过web服务器来攻击其他用户。攻击者向服务器提交一段恶意代码,而在服务器端并没有对用户的输入做足够的安全处理,就将用户输入写入数据库。当其他用户向服务器再次请求含有恶意代码的网页时,服务器就会把包含恶意代码的网页返回,浏览器收到返回信息后进行相应的渲染、解码工作,此时恶意代码被触发执行,用户的机密信息将被窃取,甚至可以控制用户的系统。

web应用防护设备防御xss攻击的传统方式是采用特征匹配方式,首先建立一套完善的规则库,规则库中对各种xss攻击的特征进行了详细的定义,然后对所有提交的信息与规则库进行匹配检查。一旦发现提交信息中包含或匹配于规则库,就认定为xss攻击,随即进行相应的阻断或告警。

传统的xss防御方法的缺陷是显而易见的。xss攻击和sql注入攻击一样,都是利用了web页面的编写不完善,所以每一种攻击所利用和针对的弱点都不尽相同。而且xss攻击的特征码灵活多变,这就给xss漏洞防御带来了困难,因为不可能以单一特征来概括所有xss攻击。为了提高web应用防护设备的xss防御能力,这就使得维护规则集的特征库变得复杂,同时成本提高。用户提交信息的过程中,web应用防护设备需要不停地匹配大量规则,这时候对设备的性能和稳定性也是一种考验。

基于上述传统xss防御方法的缺陷,本发明提供了一种基于cookie加密的方法进行xss攻击和sql注入攻击等防御。



技术实现要素:

本发明要解决的技术问题是,克服现有技术中的不足,提供一种基于cookie加密的安全防御方法和系统。

为解决上述技术问题,本发明采用的解决方案是:

提供一种基于cookie加密的安全防御系统,该安全防御系统包括加密解密装置和安全引擎两部分,部署在客户端与服务器端之间的web应用防护设备上;其中:

所述加密解密装置用于对服务器端向客户端发送的响应进行cookie加密,以及对客户端向服务器端发送的请求进行cookie解密;

所述安全引擎作为客户端与服务器端之间的所有数据传输中介,用于保证客户端正常访问,并针对未能通过cookie解密的请求执行丢弃、拦截或告警的操作。

本发明中,所述web应用防护设备是指web应用防火墙设备(waf)、入侵防御系统(ips)或云waf软件所在的设备。

本发明进一步提供了利用前述系统的基于cookie加密的安全防御方法,包括以下步骤:

(1)客户端向服务器端发送不包含cookie的首次请求,安全引擎接收该请求并向服务器端转发;

(2)安全引擎从web应用防护设备的后台配置文件中读取aes初始密钥key;

(3)安全引擎接收来自服务器端的发送给客户端的响应包,该响应包中包含set-cookie信息;

(4)加密解密装置利用步骤(2)中aes初始密钥,对响应包中的set-cookie信息进行aes加密;

(5)经过aes加密的响应包由安全引擎返回至客户端,客户端的浏览器提取经aes加密的cookie并保存;

(6)安全引擎再次接收到来自同一个客户端的请求时,该请求已带有经aes加密的cookie;

(7)由加密解密装置对步骤(6)中的cookie信息进行aes解密;如果解密失败,则确定本次请求为非法请求,安全引擎根据预先设定的处理方式进行处理;如果解密成功,则安全引擎将该请求转发给服务器端,从而完成整个请求转发过程。

本发明中,所述步骤(3)中,所述set-cookie信息存放在响应包的响应头中,set-cookie参数包括:名称(name)、值(value)、cookie有效时间(expire)、url路径(path)、cookie送达的主机名(domain)、是否通过安全通道传输(secure)、cookie失效前经过的秒数(max-age)。

本发明中,该方法还包括通过web应用防护设备的前台设置aes加密的配置项,用来指定是否开启客户端ip绑定;如果选择绑定,则在执行步骤(4)时,根据步骤(2)中获取的aes初始密码key及配置项值clientip,重新生成为key+client的新的密钥,用于对set-cookie信息加密;如果选择不绑定,则直接以aes初始密钥key的格式对set-cookie信息加密。

本发明中,所述步骤(6)中,经aes加密的cookie信息存放在请求头中。

本发明中,所述步骤(7)中,预先设定的处理方式是指:告警、丢弃或阻断。

发明原理描述:

当前网络安全领域的防护设备在防xss攻击和其它注入攻击时,通常采用预先定义一套复杂的防护规则,当外部用户行为触发防护规则时进行流量阻断,从而达到对xss跨站脚本攻击和其它注入攻击的防御。然而,这个过程中防护规则集的维护及防护设备的处理性能将受到挑战。基于cookie加密的安全防御方法和系统可以忽略cookie方面的规则防护,同时基于防护设备的性能和风险考虑,在减少xss攻击的防护规则或者甚至取消xss的防护规则,通过在防护设备端对用户行为的cookie进行加密和解密的方法来达到对xss攻击及其它注入攻击的防御。

与现有技术相比,本发明的有益效果是:

1、本发明的核心意义在于,数据的加密和解密都在防护设备端进行,无需在客户端存储密钥;即在没有密钥的情况下,可以认为密文是无法破解的。并且在全站层面能有效防止跨站脚本攻击盗取用户cookie的情况,攻击者即使能得到用户session的密文或者输入基于cookie的sql注入、命令注入等攻击行为也会因防护设备无法解密而失效。在传统防护设备复杂而高成本的规则集维护及性能瓶颈弊端尽显的情况下,本发明可以作为一种轻量级低成本的解决方案供广泛应用。

2、本发明能够对数据cookie在防护设备端进行加密和解密,在全站层面有效防止跨站脚本攻击盗取用户cookie的情况,攻击者即使能得到用户session的密文或者输入基于cookie的sql注入、命令注入等攻击行为也会因防护设备无法解密而失效。可以作为轻量级低成本的解决方案。

附图说明

图1为本发明实现流程图;

图2为cookie加密防御装置结构框图。

具体实施方式

首先需要说明的是本发明是计算机技术在信息安全技术领域的一种应用。在本发明的实现过程中,会涉及到多个软件功能模块的应用。申请人认为,如在仔细阅读申请文件、准确理解本发明的实现原理和发明目的以后,在结合现有公知技术的情况下,本领域技术人员完全可以运用其掌握的软件编程技能实现本发明。前述软件功能模块包括但不限于:防护设备、安全引擎及cookie加密装置。凡本发明申请文件提及的均属此范畴。

为了能够在保证防护设备性能及稳定性的前提下对当前网络中的跨站脚本攻击及sql注入攻击进行有效防御,本发明提供一种cookie加密的安全防御方法,用于对向受保护的web站点发来的请求的set-cookie进行加密,从而对跨站脚本攻击和sql注入攻击等进行有效防御。

本发明的安全防御系统作为软件功能模块部署在web应用防护设备上。web应用防护设备可以是web应用防火墙设备(waf)、入侵防御系统(ips)或云waf等软件所在的设备(以下统一简称为防护设备)。安全防御系统由安全引擎和加密解密装置两部分组成。其中安全引擎作为客户端与服务器端之间的所有数据传输中介,保证客户端正常访问,并可对xss、sql注入、命令注入等攻击进行丢弃、拦截、告警等操作。加密解密装置用于对服务器向客户端发送的响应进行cookie加密,对客户端向服务器发送的请求进行cookie解密。

cookie就是由服务器发给客户端的特殊信息,而这些信息以文本文件的方式存放在客户端,然后客户端每次向服务器发送请求的时候都会带上这些特殊的信息,当防护设备接收到来自服务器端的响应时,对服务器端包含set-cookie的头部信息进行加密,当防护设备接收到来自客户端的请求时,对客户端包含cookie的头部信息进行解密。

下面结合附图,对本发明的具体实施方式进行详细描述。

安全防御系统部署在客户端与服务器端之间的web应用防护设备上,其结构如图2所示,包括加密解密装置和安全引擎两部分。其中:加密解密装置用于对服务器端向客户端发送的响应进行cookie加密,以及对客户端向服务器端发送的请求进行cookie解密;安全引擎作为客户端与服务器端之间的所有数据传输中介,用于保证客户端正常访问,并针对未能通过cookie解密的请求执行丢弃、拦截或告警的操作。

基于cookie加密的安全防御方法,具体包括下述步骤:

步骤s01:安全引擎接收来自客户端向服务器端发送的首次请求,首次请求不包含cookie。安全引擎接收该请求并向服务器端转发。

步骤s02:安全引擎从web应用防护设备的后台配置文件中读取aes初始密钥key。aes初始密钥key是由数字和字母组成的16位随机数,并可在web应用防护设备的前台点击刷新按钮进行随机更新。

步骤s03:安全引擎接收来自服务器端向客户端发送的响应包。

响应包中应包含set-cookie信息,通常这些信息会存放在响应头中,set-cookie参数包括名称(name)、值(value)、cookie有效时间(expire)、url路径(path)、cookie送达的主机名(domain)、是否通过安全通道传输(secure)、cookie失效前经过的秒数(max-age)。

步骤s04:加密解密装置对服务器向客户端发送的响应包包含的set-cookie进行aes加密。本步骤所述aes加密属现有技术,是一种高级加密标准,也称之为对称加密。防护设备可设置配置项,用来指定是否开启客户端ip绑定,根据步骤s02中获取主的aes初始密码key及配置项值clientip,重新生成为key+client或key的密钥。

配置项的内容包括客户端ip绑定,分为是和否两个选项,绑定客户端ip时,新的密钥以key+client的格式生成,否则以key的格式生成。

步骤s05:安全引擎将加密cookie后的响应包返回客户端。客户端浏览器保存的cookie即为aes加密后的cookie。

步骤s06:安全引擎再次接收到来自同个客户端的请求。此时的请求已带有aes加密cookie,cookie的信息通常存放在请求头。

步骤s07:加密解密装置对客户端发送给服务器端的包含有加密cookie的信息进行aes解密。

本步骤所述aes解密属现有技术,是一种高级解密标准,也称之为对称解密。防护设备管理软件前台可设置配置项,用来指定是否开启客户端ip绑定。解密装置根据步骤s02中获取的aes初始密码key及配置项值clientip,使用key+client或key的秘钥进行aes解密。

步骤s08:若解密失败,则确定本次请求为非法请求,安全引擎根据预先设定的处理方式进行处理,如告警、丢弃或阻断。若是解密成功,安全引擎将该请求发送给服务器端。至此完成整个请求转发过程。

最后,需要注意的是,以上列举的仅是本发明的具体实施例。显然,本发明不限于以上实施例,还可以有很多变形。本领域的普通技术人员能从本发明公开的内容中直接导出或联想到的所有变形,均应认为是本发明的保护范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1