首页> 中国专利> 防御会话劫持攻击的方法和防火墙

防御会话劫持攻击的方法和防火墙

摘要

本发明公开了一种防御会话劫持攻击的方法和防火墙,其方法包括:接收合法客户端发送的第一访问请求,并将所述第一访问请求发送至服务器;接收所述服务器返回的第一响应,所述第一响应中包括第一认证令牌;根据所述合法客户端的网络地址和所述合法客户端的标识码生成第一序列值,将所述第一认证令牌和第一序列值重组为第二认证令牌;将所述第一响应中的第一认证令牌替换为所述第二认证令牌,并将包含所述第二认证令牌的所述第一响应发送至所述合法客户端。本发明采用了客户端身份验证机制,避免非法客户端假冒合法客户端访问服务器,有效防御各种会话劫持攻击,即使更换了令牌,也不会产生误报或漏报,防御性更加全面、可靠。

著录项

  • 公开/公告号CN103067385A

    专利类型发明专利

  • 公开/公告日2013-04-24

    原文格式PDF

  • 申请/专利权人 深圳市深信服电子科技有限公司;

    申请/专利号CN201210579537.9

  • 发明设计人 王朋涛;

    申请日2012-12-27

  • 分类号H04L29/06(20060101);

  • 代理机构44287 深圳市世纪恒程知识产权代理事务所;

  • 代理人胡海国

  • 地址 518052 广东省深圳市南山区麒麟路1号科技创业服务中心410-413室

  • 入库时间 2024-02-19 19:28:57

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2022-11-08

    专利权的转移 IPC(主分类):H04L29/06 专利号:ZL2012105795379 登记生效日:20221026 变更事项:专利权人 变更前权利人:深信服科技股份有限公司 变更后权利人:深圳市深信服信息安全有限公司 变更事项:地址 变更前权利人:518000 广东省深圳市南山区学苑大道1001号南山智园A1栋一层 变更后权利人:518000 广东省深圳市南山区学苑大道1001号南山智园A1栋三层

    专利申请权、专利权的转移

  • 2017-05-31

    专利权人的姓名或者名称、地址的变更 IPC(主分类):H04L29/06 变更前: 变更后: 申请日:20121227

    专利权人的姓名或者名称、地址的变更

  • 2015-09-09

    授权

    授权

  • 2013-05-29

    实质审查的生效 IPC(主分类):H04L29/06 申请日:20121227

    实质审查的生效

  • 2013-04-24

    公开

    公开

说明书

技术领域

本发明涉及到网络通信技术领域,特别涉及到防御会话劫持攻击的方 法和防火墙。

背景技术

HTTP协议是无状态的,其本身没有将用户提出的各种请求/响应联系起 来的机制,每一对请求/响应都是独立的事务。实现有状态的HTTP,W EB应用程序需要与用户动态交互,维护与合法客户端的交互状态数据 ,这种动态交互过程就是会话。首先把这些状态数据传送到合法客户 端存储,然后随合法客户端提交的请求返回进行验证。这种状态保存 机制前提需要合法客户端是可信的,能够保证传送的状态数据的完整 性和机密性。但在实际的应用中,攻击者可以利用会话劫持漏洞窃取 状态信息,达到冒充其他可信用户的非法访问。当用户在登录认证过 程中,输入用户名与密码通过验证后,应用程序向合法客户端返回一 状态信息,该状态信息随用户的下次请求返回,应用程序根据这段信 息来验证用户身份并返回正确的响应页面,如果这段信息被攻击者通 过某种方式劫持,攻击者就可以绕过授权,冒充其他用户进行非法访 问,劫持这段信息的过程就是会话劫持。会话劫持攻击有10多种方法 ,常见有XSS(又称为CSS,Cross Site Script,跨站脚本攻击)会 话劫持、CSRF(Cross-site request forgery,跨站请求伪造)、 固定会话攻击、会话令牌猜解、会话令牌蛮力、日志泄露令牌等等, 目前应用层防火墙的实现主要是针对其中某一种方法进行防御,如XS S基于特征、CSRF基于令牌,但是,基于特征进行防御属于被动防御, 无法做到事前防御,且容易出现误报和漏报;基于令牌的防御存在单 一性和时间依赖性缺陷。此外,只防御其中某种攻击,通过其他攻击 还是可以劫持会话,如果发现新的会话攻击也无法防御。

发明内容

本发明的主要目的为提供一种全面、有效的防御会话劫持攻击的方法 和防火墙。

本发明提出一种防御会话劫持攻击的方法,包括步骤:

接收合法客户端发送的第一访问请求,并将所述第一访问请求发送至 服务器;

接收所述服务器返回的第一响应,所述第一响应中包括第一认证令牌 ;

根据所述合法客户端的网络地址和所述合法客户端的标识码生成第一 序列值,将所述第一认证令牌和第一序列值重组为第二认证令牌;

将所述第一响应中的第一认证令牌替换为所述第二认证令牌,并将包 含所述第二认证令牌的所述第一响应发送至所述合法客户端。

优选地,所述将包含所述第二认证令牌的所述第一响应发送至所述合 法客户端的步骤之后还包括:

接收当前客户端发送的第二访问请求,所述第二访问请求中包括第二 认证令牌;

从所述第二认证令牌中分离出所述第一认证令牌和第一序列值;

根据当前客户端的网络地址和当前客户端的标识码,生成第二序列值 ;

当所述第二序列值与所述第一序列值相同时,确定当前客户端为所述 合法客户端;

将所述第二访问请求中的第二认证令牌替换为所述第一认证令牌;

将包含所述第一认证令牌的所述第二访问请求发送至所述服务器,供 所述服务器验证所述第一认证令牌和响应所述第二访问请求。

优选地,所述根据合法客户端的网络地址和所述合法客户端的标识码 ,生成第一序列值的步骤具体包括:

采用随机串和散列算法,将所述合法客户端的网络地址和所述合法客 户端的标识码生成第一序列值。

优选地,所述根据当前客户端的网络地址和当前客户端的标识码,生 成第二序列值的步骤具体包括:

采用与生成第一序列值时相同的随机串和散列算法,将当前客户端的 网络地址和当前客户端的标识码生成第二序列值,作为第二序列值。

优选地,所述接收合法客户端发送的第一访问请求的步骤之前还包括 :

在所述服务器中查找一个依赖令牌访问的页面;

在预设时间内获取多个访问请求中的Cookie数据和多个响应中的Set- Cookie数据;

获取各个所述Cookie数据和Set-Cookie数据的键值对;

根据各个所述键值对及其组合,分别生成对应的第三访问请求;

分别采用各个所述第三访问请求,访问所述页面;

接收所述页面返回的对应于各个所述第三访问请求的第三响应;

当所述第三响应有效时,有效的所述第三响应对应的键值对为所述第 一认证令牌存放的位置。

本发明还提出一种防御会话劫持攻击的防火墙,包括:

收发模块,用于接收合法客户端发送的第一访问请求,并将所述第一 访问请求发送至服务器;接收所述服务器返回的第一响应,所述第一 响应中包括第一认证令牌;

重组模块,用于根据所述合法客户端的网络地址和所述合法客户端的 标识码生成第一序列值,将所述第一认证令牌和第一序列值重组为第 二认证令牌;

替换模块,用于将所述第一响应中的第一认证令牌替换为所述第二认 证令牌;

所述收发模块还用于,将包含所述第二认证令牌的所述第一响应发送 至所述合法客户端。

优选地,所述防御会话劫持攻击的防火墙,还包括判断模块;

所述收发模块还用于,接收当前客户端发送的第二访问请求,所述第 二访问请求中包括第二认证令牌;

所述重组模块还用于,从所述第二认证令牌中分离出所述第一认证令 牌和第一序列值;根据当前客户端的网络地址和当前客户端的标识码 ,生成第二序列值;

所述判断模块用于,当所述第二序列值与所述第一序列值相同时,确 定当前客户端为所述合法客户端;

所述替换模块还用于,将所述第二访问请求中的第二认证令牌替换为 所述第一认证令牌;

所述收发模块还用于,将包含所述第一认证令牌的所述第二访问请求 发送至所述服务器,供所述服务器验证所述第一认证令牌和响应所述 第二访问请求。

优选地,所述重组模块具体用于:

采用随机串和散列算法,将所述合法客户端的网络地址和所述合法客 户端的标识码生成第一序列值。

优选地,所述重组模块具体还用于:

采用与生成第一序列值时相同的随机串和散列算法,将当前客户端的 网络地址和当前客户端的标识码生成第二序列值,作为第二序列值。

优选地,所述防御会话劫持攻击的防火墙,还包括查找模块;

所述查找模块用于,在所述服务器中查找一个依赖令牌访问的页面;

所述重组模块具体还用于,在预设时间内获取多个访问请求中的Cook ie数据和多个响应中的Set-Cookie数据;获取各个所述Cookie数据和 Set-Cookie数据的键值对;根据各个所述键值对及其组合,分别生成 对应的第三访问请求;

所述收发模块还用于,分别采用各个所述第三访问请求,访问所述页 面;接收所述页面返回的对应于各个所述第三访问请求的第三响应;

所述判断模块用于,当所述第三响应有效时,有效的所述第三响应对 应的键值对为所述第一认证令牌存放的位置。

本发明采用了客户端身份验证机制,避免非法客户端假冒合法客户端 访问服务器,有效防御各种会话劫持攻击,即使更换了令牌,也不会 产生误报或漏报,防御性更加全面、可靠。

附图说明

图1为本发明防御会话劫持攻击的方法的第一实施例的流程图;

图2为本发明防御会话劫持攻击的方法的第二实施例的流程图;

图3为本发明防御会话劫持攻击的方法的第三实施例的流程图;

图4为本发明防御会话劫持攻击的防火墙的第一实施例的结构示意图;

图5为本发明防御会话劫持攻击的防火墙的第二实施例的结构示意图;

图6为本发明防御会话劫持攻击的防火墙的第三实施例的结构示意图。

本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一 步说明。

具体实施方式

应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于 限定本发明。

如图1所示,图1为本发明防御会话劫持攻击的方法的第一实施例的流 程图。本实施例提到的防御会话劫持攻击的方法,包括步骤:

步骤S10,接收合法客户端发送的第一访问请求,并将第一访问请求发 送至服务器;

在合法客户端首次访问服务器时,合法客户端发送的访问请求(即步 骤S10中的第一访问请求)中并未包含令牌,此时,防火墙直接对该访 问请求放行。

步骤S20,接收服务器返回的第一响应,第一响应中包括第一认证令牌 ;

服务器在接收到访问请求后,对访问请求应答,返回包含认证令牌的 响应(即步骤S20中的包括第一认证令牌的第一响应)。

步骤S30,根据合法客户端的网络地址和合法客户端的标识码生成第一 序列值,将第一认证令牌和第一序列值重组为第二认证令牌;

本步骤为对认证令牌重组的步骤,其中,合法客户端的标识码可以是 合法客户端的物理地址或其他可以收集的合法客户端信息。可采用随 机串和散列算法,将合法客户端的网络地址和合法客户端的标识码生 成第一序列值。

步骤S40,将第一响应中的第一认证令牌替换为第二认证令牌,并将包 含第二认证令牌的第一响应发送至合法客户端。

防火墙将替换后的响应发送至合法客户端,合法客户端将响应中的第 二认证令牌存储起来,以便在再次访问服务器时提供给服务器验证。 由于此时第二认证令牌中包含有合法客户端的信息。因此,当有客户 端发起访问服务器的请求时,只需将第二认证令牌中包含的合法客户 端的信息与当前发起访问请求的客户端的信息进行比较,如果匹配, 则说明当前发起访问请求的客 户端是步骤S40中合法获得第二认证令牌的合法客户端;否则,当前发 起访问请求的客户端为非法客户端,防火墙拒绝放行。

本实施例采用了客户端身份验证机制,避免非法客户端假冒合法客户 端访问服务器,有效防御各种会话劫持攻击,即使更换了令牌,也不 会产生误报或漏报,防御性更加全面、可靠。

如图2所示,图2为本发明防御会话劫持攻击的方法的第二实施例的流 程图。本实施例以图1所示实施例为基础,在步骤S40之后还包括:

步骤S50,接收当前客户端发送的第二访问请求;

发送第二访问请求的客户端可能是再次发起访问请求的合法客户端, 也可能是盗取令牌后的非法客户端,因此,在第二访问请求中包括有 第二认证令牌。

步骤S60,从第二认证令牌中分离出第一认证令牌和第一序列值;

将第二认证令牌分离为两部分,一部分与第一认证令牌相同,另一部 分与第一序列值相同,作为验证客户端身份的标识。

步骤S70,根据当前客户端的网络地址和当前客户端的标识码,生成第 二序列值;

防火墙获取当前客户端的信息,生成第二序列值,用于验证当前客户 端是否合法。第二序列值的生成方式与第一序列值生成方式相同。可 采用与生成第一序列值时相同的随机串和散列算法,将当前客户端的 网络地址和当前客户端的标识码生成第二序列值,作为第二序列值。

步骤S80,当第二序列值与第一序列值相同时,确定当前客户端为合法 客户端;

如果当前客户端是再次发起访问请求的合法客户端,则当前客户端的 信息与合法客户端的信息相同,生成的第二序列值也应与第一序列值 相同。如果当前客户端是盗取令牌后的非法客户端,则非法客户端的 信息与合法客户端的信息显然不同,此时生成的第二序列值也与第一 序列值不同。通过该步骤即可判断出当前客户端是否为合法客户端。

步骤S90,将第二访问请求中的第二认证令牌替换为第一认证令牌;

防火墙在判定当前客户端为合法客户端后,将第二认证令牌还原为第 一 认证令牌,再发送至服务器进行验证。

步骤S100,将包含第一认证令牌的第二访问请求发送至服务器,供服 务器验证第一认证令牌和响应第二访问请求。

本实施例由于采用了客户端信息进行身份验证,在当前客户端信息与 合法客户端信息一致时,防火墙对当前客户端放行,避免了非法客户 端假冒合法客户端访问服务器,有效防御各种会话劫持攻击,即使更 换了令牌,也不会产生误报或漏报,防御性更加全面、可靠。

如图3所示,图3为本发明防御会话劫持攻击的方法的第三实施例的流 程图。本实施例以图2所示实施例为基础,增加了查找令牌位置的步骤 ,在步骤S10之前还包括:

步骤S101,在服务器中查找一个依赖令牌访问的页面;

查找一个依赖令牌访问的页面即查找一个需要通过登录认证后才可以 访问的页面。确定依赖令牌访问的页面可以通过提供一个给管理员的 配置接口来确定,或者在防火墙部署前通过防火墙自带的扫描功能来 确定,还可以通过实时检测登录的请求和响应来确定。本实施例采用 实时检测登录的请求和响应的方法来确定。

步骤S102,在预设时间内获取多个访问请求中的Cookie数据和多个响 应中的Set-Cookie数据;

防火墙刚刚部署后,在足够长的设定时间内,检测所有接收到的请求 或响应报文,获取尽可能多的样本,例如,从请求报头Cookie或响应 报头Set-Cookie中获取样本。

步骤S103,获取各个Cookie数据和Set-Cookie数据的键值对;

步骤S104,根据各个键值对及其组合,分别生成对应的第三访问请求 ;

获取的Cookie数据和Set-Cookie数据的部分或者全部键值对,并在生 成第三访问请求报文时,把第三访问请求报文的Cookie消息报头修改 为某一个键值对或其组合,即自定义的访问请求,直到遍历完所有键 值对的组合。

步骤S105,分别采用各个第三访问请求,访问页面;

步骤S106,接收页面返回的对应于各个第三访问请求的第三响应;

步骤S107,当第三响应有效时,有效的第三响应对应的键值对为第一 认 证令牌存放的位置;

防火墙根据服务器的响应来判断发送的第三访问请求的Cookie中是否 含有令牌,判定的标准可以是报文长度、关键字等可以区分的指标, 如果报文长度与正确响应页面的长度相等,说明第三访问请求中的Co okie键值对或其组合含有令牌,并记录该键值对或其组合。当有效的 位置为多个时,为了确定最精简的存放会话令牌的位置,可检索最简 的一个。本实施例通过防火墙自学习功能确定令牌存放位置,可准确 在访问请求中获得认证令牌,可避免令牌获取错误的情况发生。

如图4所示,图4为本发明防御会话劫持攻击的防火墙的第一实施例的 结构示意图。本实施例提到的防御会话劫持攻击的防火墙,包括:

收发模块10,用于接收合法客户端发送的第一访问请求,并将第一访 问请求发送至服务器;接收服务器返回的第一响应,第一响应中包括 第一认证令牌;

重组模块20,用于根据合法客户端的网络地址和合法客户端的标识码 生成第一序列值,将第一认证令牌和第一序列值重组为第二认证令牌 ;

替换模块30,用于将第一响应中的第一认证令牌替换为第二认证令牌 ;

收发模块10还用于,将包含第二认证令牌的第一响应发送至合法客户 端。

重组模块20具体用于,采用随机串和散列算法,将合法客户端的网络 地址和合法客户端的标识码生成第一序列值。

本实施例中,在合法客户端首次访问服务器时,合法客户端发送的访 问请求中并未包含令牌,此时,防火墙直接对该访问请求放行。服务 器在接收到访问请求后,对访问请求应答,返回包含认证令牌的响应 。合法客户端的标识码可以是合法客户端的物理地址或其他可以收集 的合法客户端信息。可采用随机串和散列算法,将合法客户端的网络 地址和合法客户端的标识码生成第一序列值。防火墙将替换后的响应 发送至合法客户端,合法客户端将响应中的第二认证令牌存储起来, 以便在再次访问服务器时提供给服务器验证。由于此时第二认证令牌 中包含有合法客户端的信息。因此,当有客户端发起访问服务器的请 求时,只需将第二认证令牌中包含的合法客户端的信息与当前发起访 问请求的客户端的信息进行比较,如果匹配,则说明当前发起访问 请求的客户端是合法获得第二认证令牌的合法客户端;否则,当前发 起访问请求的客户端为非法客户端,防火墙拒绝放行。本实施例采用 了客户端身份验证机制,避免非法客户端假冒合法客户端访问服务器 ,有效防御各种会话劫持攻击,即使更换了令牌,也不会产生误报或 漏报,防御性更加全面、可靠。

如图5所示,图5为本发明防御会话劫持攻击的防火墙的第二实施例的 结构示意图。本实施例以图4所示实施例为基础,增加了判断模块40。 其中:

收发模块10还用于,接收当前客户端发送的第二访问请求,第二访问 请求中包括第二认证令牌;

重组模块20还用于,从第二认证令牌中分离出第一认证令牌和第一序 列值;根据当前客户端的网络地址和当前客户端的标识码,生成第二 序列值;

判断模块40用于,当第二序列值与第一序列值相同时,确定当前客户 端为合法客户端;

替换模块30还用于,将第二访问请求中的第二认证令牌替换为第一认 证令牌;

收发模块10还用于,将包含第一认证令牌的第二访问请求发送至服务 器,供服务器验证第一认证令牌和响应第二访问请求。

重组模块20具体还用于,采用与生成第一序列值时相同的随机串和散 列算法,将当前客户端的网络地址和当前客户端的标识码生成第二序 列值,作为第二序列值。

本实施例中,发送第二访问请求的客户端可能是再次发起访问请求的 合法客户端,也可能是盗取令牌后的非法客户端,因此,在第二访问 请求中包括有第二认证令牌。将第二认证令牌分离为两部分,一部分 与第一认证令牌相同,另一部分与第一序列值相同,作为验证客户端 身份的标识。防火墙获取当前客户端的信息,生成第二序列值,用于 验证当前客户端是否合法。第二序列值的生成方式与第一序列值生成 方式相同。可采用与生成第一序列值时相同的随机串和散列算法,将 当前客户端的网络地址和当前客户端的标识码生成第二序列值,作为 第二序列值。如果当前客户端是再次发起访问请求的合法客户端,则 当前客户端的信息与合法客户端的信息相同,生成的第二 序列值也应与第一序列值相同。如果当前客户端是盗取令牌后的非法 客户端,则非法客户端的信息与合法客户端的信息显然不同,此时生 成的第二序列值也与第一序列值不同。通过该步骤即可判断出当前客 户端是否为合法客户端。防火墙在判定当前客户端为合法客户端后, 将第二认证令牌还原为第一认证令牌,再发送至服务器进行验证。本 实施例由于采用了客户端信息进行身份验证,在当前客户端信息与合 法客户端信息一致时,防火墙对当前客户端放行,避免了非法客户端 假冒合法客户端访问服务器,有效防御各种会话劫持攻击,即使更换 了令牌,也不会产生误报或漏报,防御性更加全面、可靠。

如图6所示,图6为本发明防御会话劫持攻击的防火墙的第三实施例的 结构示意图。本实施例以图5所示实施例为基础,增加了查找模块50。 其中:

查找模块50用于,在服务器中查找一个依赖令牌访问的页面;

重组模块20具体还用于,在预设时间内获取多个访问请求中的Cookie 数据和多个响应中的Set-Cookie数据;获取各个Cookie数据和Set-Co okie数据的键值对;根据各个键值对及其组合,分别生成对应的第三 访问请求;

收发模块10还用于,分别采用各个第三访问请求,访问页面;接收页 面返回的对应于各个第三访问请求的第三响应;

判断模块40用于,当第三响应有效时,有效的第三响应对应的键值对 为第一认证令牌存放的位置。

本实施例中,查找一个依赖令牌访问的页面即查找一个需要通过登录 认证后才可以访问的页面。确定依赖令牌访问的页面可以通过提供一 个给管理员的配置接口来确定,或者在防火墙部署前通过防火墙自带 的扫描功能来确定,还可以通过实时检测登录的请求和响应来确定。 本实施例采用实时检测登录的请求和响应的方法来确定。防火墙刚刚 部署后,在足够长的设定时间内,检测所有接收到的请求或响应报文 ,获取尽可能多的样本,例如,从请求报头Cookie或响应报头Set-Co okie中获取样本。获取的Cookie数据和Set-Cookie数据的部分或者全 部键值对,并在生成第三访问请求报文时,把第三访问请求报文的Co okie消息报头修改为某一个键值对或其组合,即自定义的访问请求, 直到遍历完所有键值对的组合。防火墙根据服务器的响应来判断发送 的第三访问请求的Cookie中是否含有令牌,判定的标准可以是报文长 度、关键字等可以区分的指标,如果报文长度与正确响应页面的长度 相等,说明第三访问请求中的Cookie键值对或其组合含有令牌,并记 录该键值对或其组合。当有效的位置为多个时,为了确定最精简的存 放会话令牌的位置,可检索最简的一个。本实施例通过防火墙自学习 功能确定令牌存放位置,可准确在访问请求中获得认证令牌,可避免 令牌获取错误的情况发生。

以上所述仅为本发明的优选实施例,并非因此限制本发明的专利范围 ,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换 ,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的 专利保护范围内。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号