一种检测包含Cookie信息的消息的方法及相关装置的制作方法

文档序号:7551188阅读:241来源:国知局
专利名称:一种检测包含Cookie信息的消息的方法及相关装置的制作方法
技术领域
本发明涉及网络技术领域,尤指一种检测包含Cookie信息的消息的方法及相关
>J-U ρ α装直。
背景技术
Web应用是指采用浏览器(Browser, B) /服务器(Server, S)架构、通过超文本传输协议(Hyper Text Transfer Protocol, HTTP)或者安全超文本传输协议(SecureHypertext Transfer Protocol, HTTPS)提供服务的统称。随着互联网的广泛使用,Web应用已经融入到用户的日常生活中,例如:网上购物、网上银行应用、证券股票交易、政府行政审批、高校门户网站、运营商增值服务等等,由于Web应用种类增多,而HTTP安全机制不完善,就会导致Web应用程序中存在漏洞,基于Web的网络攻击也日益增多,如服务器嵌入(Server Side Include, SSI)、木马防护、目录遍历等,网络应用防火墙(WebApplicationFirewall, WAF)技术就是在这种情况下产生的。与传统防火墙不同,WAF工作在应用层,基于内置的网络攻击特征对流经的HTTP请求消息和HTTP响应消息进行检测,若检测出消息中存在网络攻击,可以采用拦截、放弃、断开连接等多种处理方式。HTTP是一种无状态协议,基于Web的应用程序需要借助额外的手段来维护服务器与客户端之间的交互状态,以保证服务器与客户端之间交互的平滑性。例如,在HTTP1.0版本中,一个传输控制协议(Transmission Control Protocol, TCP)连接上仅能进行一次HTTP会话,客户端发送HTTP请求消息,服务器应答一个HTTP响应消息,此次HTTP会话结束,TCP连接拆除;在!111 1.1中,多个HTTP会话可以复用一个TCP连接,但是每个HTTP会话在客户端发送一个HTTP请求消息并且服务器应答一个HTTP响应消息之后就结束了,连续的HTTP会话之间在协议层次上缺乏内在联系。而一般在基于Web的应用程序中,客户端和服务器之间往往要执行多个HTTP会话才能完成一次应用交互,例如在网上购物过程中,用户往往要一次性挑选多个商品,统一结帐,在这个过程中,基于Web的应用程序必须能够记录用户已经购买的商品和消费金额,也就是要记录当前交互状态。目前基于Web的应用程序通常米用Cookie、会话(Session)机制来记录当前交互状态。Session机制在服务器记录交互状态,提高数据的可靠性,但服务器要区分多个同时进行的Session,仍然需要客户端维护一个Session标识(Identif ication, ID),而SessionID往往记录在Cookie信息中,因而本质上可以归类为Cookie机制。采用Cookie信息记录当前交互状态,可能会发生篡改Cookie信息这类网络攻击。篡改Cookie信息是指客户端接收到服务器发送的携带Cookie信息的HTTP响应消息后,再次向服务器发送携带Cookie信息的HTTP请求消息前,对Cookie信息进行了篡改。例如,在网上购物应用中,Cookie信息中可能记录了用户已经购买的商品总额,对Cookie信息进行篡改可以实现对商家的欺诈。客户端对Cookie信息的篡改并不能在HTTP请求消息或HTTP响应消息中留下明显特征,而传统意义上的WAF只能对HTTP请求消息和HTTP响应消息进行网络攻击特征检测,不能检 测此类网络攻击。因此,需要专门对Cookie信息篡改这类网络攻击进行检测。一般,在HTTP响应消息和HTTP请求消息中都包含Cookie信息,分别存在于Set-Cookie字段和Cookie字段中,Cookie信息会包含多个Cookie名/值对,而这些Cookie名/值对在每个HTTP请求消息和HTTP响应消息中的顺序是不确定的,因此,需要对每个Cookie名/值对进行单独保护,假设,HTTP响应消息的Set-Cookie字段中包括三个Cookie名 / 值对:phpsessionid=id_xxxx、phpbot=bot-yyyy 和 other-name=n_zzzz,那么,需要对这三个Cookie名/值对分别进行保护。具体过程为,当WAF接收到服务器发送的包含Cookie信息的HTTP响应消息时,对于该HTTP响应消息Cookie信息中的每个原始Cookie名/值对,都需要计算签名值,用计算出来的签名值替换原始Cookie名/值对中的值,形成新的Cookie名/值对后发送给客户端;当WAF接收到客户端发送的含有Cookie信息的HTTP请求消息时,根据Cookie信息中Cookie名/值对的值计算出原始Cookie名/值对的值,根据计算出的原始Cookie名/值对中的值再次计算签名值,并比较再次计算出的签名值与接收到的该客户端发送的Cookie名/值对中的值是否相同,若不同,则确定客户端发送的HTTP请求消息中的Cookie信息已经篡改,该HTTP请求消息为非法请求消息,并对该HTTP请求消息进行相应处理。上述检测包含Cookie信息的消息的方法,由于WAF需要对HTTP响应消息中的每个原始Cookie名/值对重新计算签名值,并且对HTTP请求消息中的每个Cookie名/值对进行校验,消息检测效率低;由于原始Cookie名/值对中的值已经被改变,新的Cookie名/值对有可能导致错误的操作或者无法识别,因而导致Cookie信息在使用上有一定的风险。

发明内容
本发明实施例提供一种检测包含Cookie信息的消息的方法及相关装置,用以解决现有的包含Cookie信息的消息检测方法中存在的消息检测效率低以及Cookie信息使用上存在风险的问题。一种检测包含Cookie信息的消息的方法,包括: 接收服务器发送给客户端的包含第一 Cookie信息的超文本传输协议HTTP响应消息,所述第一 Cookie信息包含至少一个Cookie名/值对;在所述第一 Cookie信息中获取预先选定的至少一个Cookie名对应的值,根据获取的值计算签名值,将签名和计算出的签名值作为附加Cookie名/值对添加在所述第一Cookie信息后,将添加了所述附加Cookie名/值对的HTTP响应消息发送给所述客户端;接收所述客户端发送给所述服务器的包含第二 Cookie信息的HTTP请求消息,所述第二 Cookie信息中包含所述附加Cookie名/值对;在所述第二 Cookie信息中获取所述预先选定的至少一个Cookie名对应的值,根据获取的值重新计算签名值,将重新计算的签名值与所述第二 Cookie信息中包含的所述附加Cookie名/值对中的值进行比较;根据比较结果,检测所述HTTP请求消息是否为合法消息。一种检测包含Cookie信息的消息的装置,包括:第一接收单元,用于接收服务器发送给客户端的包含第一 Cookie信息的超文本传输协议HTTP响应消息,所述第一 Cookie信息包含至少一个Cookie名/值对;
第一计算单元,用于在所述第一 Cookie信息中获取预先选定的至少一个Cookie名对应的值,根据获取的值计算签名值,将签名和计算出的签名值作为附加Cookie名/值对添加在所述第一 Cookie信息后,将添加了所述附加Cookie名/值对的HTTP响应消息发送给所述客户端;第二接收单元,用于接收所述客户端发送给所述服务器的包含第二 Cookie信息的HTTP请求消息,所述第二 Cookie信息中包含所述附加Cookie名/值对;第二计算单元,用于在所述第二 Cookie信息中获取所述预先选定的至少一个Cookie名对应的值,根据获取的值重新计算签名值,将重新计算的签名值与所述第二Cookie信息中包含的所述附加Cookie名/值对中的值进行比较;根据比较结果,检测所述HTTP请求消息是否为合法消息。一种网络设备,包括上述检测包含Cookie信息的消息的装置。本发明有益效果如下:本发明实施例提供的检测包含Cookie信息的消息的方法及装置,通过接收服务器发送给客户端的包含第一 Cookie信息的超文本传输协议HTTP响应消息,所述第一Cookie信息包含至少一个Cookie名/值对;在所述第一 Cookie信息中获取预先选定的至少一个Cookie名对应的值,根据获取的值计算签名值,将签名和计算出的签名值作为附加Cookie名/值对添加在所述第一 Cookie信息后,将添加了所述附加Cookie名/值对的HTTP响应消息发送给所述客户端;接收所述客户端发送给所述服务器的包含第二 Cookie信息的HTTP请求消息,所述第二 Cookie信息中包含所述附加Cookie名/值对;在所述第二 Cookie信息中获取所述预先选定的至少一个Cookie名对应的值,根据获取的值重新计算签名值,将重新计算的签名值与所述第二 Cookie信息中包含的所述附加Cookie名/值对中的值进行比较;根据比较结果,检测所述HTTP请求消息是否为合法消息。该方案是对Cookie信息中包含预先选定的至少一个Cookie名的Cookie名/值对统一进行签名,不是对每个Cookie名/值对进行单独签名,在检测消息时,也是对Cookie信息中包含预先选定的至少一个Cookie名的Cookie名/值对进行一次检验,这样就可以提高消息检测效率;并且,对Cookie信息中包含预先选定的至少一个Cookie名的Cookie名/值对进行签名时,不改变原有的Cookie信息,这样就可以保证后续正常识别和操作。


图1为本发明实施例中检测包含Cookie信息的消息的方法的流程图;图2为本发明实施例中生成辅助字符串的流程图;图3为本发明实施例中检测包含Cookie信息的消息的装置的结构示意图;图4为本发明实施例中优选的检测包含Cookie信息的消息的装置的结构示意图。
具体实施例方式针对现有的包含Cookie信息的消息检测方法中存在的消息检测效率低以及Cookie信息使用上存在风险的问题,本发明实施例提供一种检测包含Cookie信息的消息的方法,该方法的流程如图1所示,执行步骤如下:SlO:接收服务器发送给客户端的包含第一 Cookie信息的HTTP响应消息,第一Cookie信息包含至少一个Cookie名/值对。当用户需要访问某个域名www.XXX.com时,需要通过客户端向服务器发送HTTP请求消息,这时的HTTP请求消息中不携带Cookie信息,服务器接收到该HTTP请求消息时,会作出相应处理,生成需要发送给客户端的HTTP响应消息,该HTTP响应消息中包含第一Cookie信息,第一 Cookie信息中包含至少一个Cookie名/值对,例如,第一 Cookie信息可以为 set_Cookie2:phpsessionid=id_xxxx ;phpbot=bot-yyyy ;other-name=n_zzzz0 该第一 Cookie信息中包含三个Cookie名/值对,即:hpsessionid= id-χχχχΛphpbot=bot-yyyy和 other-name=n_zzzz0Sll:在第一 Cookie信息中获取预先选定的至少一个Cookie名对应的值,根据获取的值计算签名值,将签名和计算出的签名值作为附加Cookie名/值对添加在第一 Cookie信息后,将添加了附加Cookie名/值对的HTTP响应消息发送给客户端。第一 Cookie信息中可能包含多个Cookie名/值对,可以预先选定部分Cookie名,当然也可以预先选定所有Cookie名,然后根据这些Cookie名对应的值计算签名值,然后将签名和计算出来的签名值作为附加Cookie名/值对添加在第一 Cookie信息后,然后将添加了附加Cookie名/值对的HTTP相应消息发送给客户端。可以将预先选定的Cookie名添加在Cookie名列表中,具体可以使用命令cookie-name string,该命令用于将预先选定的Cookie名加入Cookie名列表。例如,若要根据phpsessionid和phpbot这两个Cookie名计算签名值,就可以通过命令将其加入Cookie 名列表,具体用户命令如下:cookie-namephpsessionid、cookie_name phpbot,这样就只根据部分Cookie名对应的值计算签名值,没有根据全部Cookie名对应的值计算签名值。具体签名的过程为如下,获取phpsessionid和phpbot对应的值id-xxxx I bot-yyyy,然后根据id_xxxx | bot-yyyy采用消息摘要算法第五版(MessageDigest Algorithm,MD5)计算签名值,将签名和计算出的签名值作为附加Cookie名/值对,签名可以为cookie-signature,即Cookie名,签名值为ibxy,即Cookie名对应的值,这样附加Cookie名/值对为cookie_signature=ibxy,然后添加在第一 Cookie信息后,即可以得到 Set_Cookie2: phpsessionid=id_xxxx; phpbot=bot-yyyy; other-name=n_zzzz ; cookie-signature=ibxy0S12:接收客户端发送给服务器的包含第二 Cookie信息的HTTP请求消息,第二Cookie信息中包含附加Cookie名/值对。当客户端接收到包含附加Cookie名/值对的HTTP响应消息后,客户端再次向服务器发送携带第二 Cookie信息的HTTP请求消息,第二 Cookie信息中包含附加Cookie名/值对,如果在客户端不存在Cookie信息篡改这类网络攻击,那么第二 Cookie信息就是第一Cookie信息和附加Cookie名/值对,如果在客户端存在Cookie信息篡改这类网络攻击,那么这时的第二 Cookie信息不是第一 Cookie信息和附加Cookie名/值对了,但是其中附加Cookie名/值对是不变的。S13:在第二 Cookie信息中获取预先选定的至少一个Cookie名对应的值,根据获取的值重新计算签名值,将重新计算的签名值与第二 Cookie信息中包含的附加Cookie名/值对中的值进行比较。
这里预先选定的至少一个Cookie名与Sll中预先选定的至少一个Cookie名是相同的,如果没有发生Cookie信息篡改,重新计算出来的签名值与附加Cookie名/值对中的值是相同的,因为依据的Cookie名对应的值是一样的,如果发生了 Cookie信息篡改,重新计算出来的签名值与附加Cookie名/值对中的值就不同,因为依据的Cookie名对应的值不同。S14:根据比较结果,检测HTTP请求消息是否为合法消息。该方案是对Cookie信息中包含预先选定的至少一个Cookie名的Cookie名/值对统一进行签名,不是对每个Cookie名/值对进行单独签名,在检测消息时,也是对Cookie信息中包含预先选定的至少一个Cookie名的Cookie名/值对进行一次检验,这样就可以提高消息检测效率;并且,对Cookie信息中包含预先选定的至少一个Cookie名的Cookie名/值对进行签名时,不改变原有的Cookie信息,这样就可以保证后续正常识别和操作。较佳的,上述检测包含Cookie信息的消息的方法,还包括:以设定周期生成设定长度的辅助字符串。上述Sll中的在第一 Cookie信息中获取预先选定的至少一个Cookie名对应的值,根据获取的值计算签名值,具体包括:在第一 Cookie信息中获取预先选定的至少一个Cookie名对应的值,根据获取的值和生成的辅助字符串计算签名值。上述S13中的在第二 Cookie信息中获取预先选定的至少一个Cookie名对应的值,根据获取的值重新计算签名值,具体包括:在第二 Cookie信息中获取预先选定的至少一个Cookie名对应的值,根据获取的值和生成的辅助字符串重新计算签名值。由于需要将签名值下发给客户端,因此攻击者可能通过爆破措施对计算签名值的算法进行暴力猜解,为了避免这种状况的发生,增强安全性,在计算签名值时,可以在预先选定Cookie名的基础上,增加一个辅助字符串M,增加爆破难度,只要M足够长,攻击者就无法通过爆破方式猜解得到计算签名值的算法和M。相应地,在重新计算签名值时,也需要在预先选定Cookie名的基础上,考虑M。设定周期可以依据实际需要进行设定,例如I个月、2个月等等。具体的,如图2所示,上述以设定周期生成设定长度的辅助字符串,具体包括:S20:以辅助字符串中所有字符的取值范围形成数组。S21:选取辅助字符串的第一位。S22:生成一个随机数,将随机数与数组的长度进行取模运算。S23:在数组中获取取模运算的结果对应的取值。S24:判断是否选取了辅助字符串的最后一位,若是,执行S26 ;否则,执行S25。S25:选取辅助字符串的下一位后,执行S22。S26:将得到的所有取值按照获取的先后顺序排列,得到辅助字符串。辅助字符串M的生成方式很多,下面以一示例来说明具体过程:出于安全考虑,该辅助字符串M长度至少为128个字符,可以由大小英文字母、阿拉伯数字等等组成,当然还有很多其他方式,例如可以考虑希腊字母、拉丁字母等等。将辅助字符串中每个字符的取值范围形成一个数组,也就是形成{A……Z,a……ζ,Ο......9}的数组。针对辅助字符串的第一位,首先生成一个随机数R,然后将R与数组的长度m进行取模运算,也就是进行mod运算,以mod运算结果的值为数组下标取出一个字符,该字符就是辅助字符串第一位上的取值。类似地,经过至少128次取值后,就可以得到一个辅助字符串M。具体的,上述Sll中的在第一 Cookie信息中获取预先选定的至少一个Cookie名对应的值,根据获取的值计算签名值,具体包括:在第一 Cookie信息中获取预先选定的至少一个Cookie名对应的值,根据获取的值、辅助字符串和客户端的互联网协议(InternetProtocol, IP)地址计算签名值。上述S13中的在第二 Cookie信息中获取预先选定的至少一个Cookie名对应的值,根据获取的值重新计算签名值,具体包括:在第二 Cookie信息中获取预先选定的至少一个Cookie名对应的值,根据获取的值、辅助字符串和客户端的IP地址,重新计算签名值。一种具体的方式,在计算签名值时,可以在预先选定Cookie名和M的基础上,考虑客户端的IP地址,相应地,在重新计算签名值,可以在预先选定Cookie名和M的基础上,考虑客户端的IP地址,这样可以有效防止不同客户端访问服务器带来的安全隐患。具体的,上述Sll中的在第一 Cookie信息中获取预先选定的至少一个Cookie名对应的值,根据获取的值计算签名值,具体包括:在第一 Cookie信息中获取预先选定的至少一个Cookie名对应的值,根据获取的值和客户端的IP地址计算签名值。上述S13中的在第二 Cookie信息中获取预先选定的至少一个Cookie名对应的值,根据获取的值重新计算签名值,具体包括:在第二 Cookie信息中获取预先选定的至少一个Cookie名对应的值,根据获取的值和客户端的IP地址,重新计算签名值。—种具体的方式,在计算签名值时,可以在预先选定Cookie名的基础上,考虑客户端的IP地址,相应地,在重新计算签名值,可以在预先选定Cookie名的基础上,考虑客户端的IP地址,这样可以有效防止不同客户端访问服务器带来的安全隐患。较佳的,上述S14中的根据比较结果,检测HTTP请求消息是否为合法消息,具体包括:若比较结果为相同,则确定第二 Cookie信息未被篡改,HTTP请求消息为合法消息;若比较结果为不同,则确定第二 Cookie信息已被篡改,HTTP请求消息为非法消息。上述S14中的在检测HTTP请求消息是否为合法消息后,还包括:当HTTP请求消息为合法消息时,删除第二 Cookie信息中的附加Cookie名/值对,将删除附加Cookie名/值对的HTTP请求消息发送给服务器;当HTTP请求消息为非法消息时,删除第二 Cookie信息,将删除第二 Cookie信息的HTTP请求消息发送给服务器。删除HTTP请求消息中的第二 Cookie信息后,相当于该客户端是第一次向该服务器发送HTTP请求消息,服务器就可以重新给该客户端分配Cookie信息,从而有效防护Cookie信息篡改这类网络攻击。基于同一发明构思,本发明实施例提供一种检测包含Cookie信息的消息的装置,该装置可以设置在网络设备中,网络设备可以WAF设备、交换机等等,该装置的结构如图3所示,包括:第一接收单元30,用于接收服务器发送给客户端的包含第一 Cookie信息的HTTP响应消息,第一 Cookie信息包含至少一个Cookie名/值对。第一计算单元31,用于在第一 Cookie信息中获取预先选定的至少一个Cookie名对应的值,根据获取的值计算签名值,将签名和计算出的签名值作为附加Cookie名/值对添加在第一 Cookie信息后,将添加了附加Cookie名/值对的HTTP响应消息发送给客户端。第二接收单元32,用于接收客户端发送给服务器的包含第二 Cookie信息的HTTP请求消息,第二 Cookie信息中包含附加Cookie名/值对。第二计算单元33,用于在第二 Cookie信息中获取预先选定的至少一个Cookie名对应的值,根据获取的值重新计算签名值,将重新计算的签名值与第二 Cookie信息中包含的附加Cookie名/值对中的值进行比较;根据比较结果,检测HTTP请求消息是否为合法消
肩、O较佳的,如图4所示,检测包含Cookie信息的消息的装置还包括生成单元34,用于以设定周期生成设定长度的辅助字符串。第一计算单元31,具体用于在第一 Cookie信息中获取预先选定的至少一个Cookie名对应的值,根据获取的值和生成的辅助字符串计算签名值。第二计算单元33,具体用于在第二 Cookie信息中获取预先选定的至少一个Cookie名对应的值,根据获取的值和生成的辅助字符串重新计算签名值。具体的,上述生成单元34,具体用于:A、以辅助字符串中所有字符的取值范围形成数组;B、选取辅助字符串的第一位;C、生成一个随机数,将随机数与数组的长度进行取模运算;D、在数组中获取取模运算的结果对应的取值;E、判断是否选取了辅助字符串的最后一位,若是,执行F ;否则,选取辅助字符串的下一位后,执行C ;F、将得到的所有取值按照获取的先后顺序排列,得到辅助字符串。较佳的,上述第一计算单元31,具体用于在第一 Cookie信息中获取预先选定的至少一个Cookie名对应的值,根据获取的值、辅助字符串和客户端的互联网协议IP地址计算签名值。上述第二计算单元33,具体用于在接收到客户端发送给服务器的包含第二Cookie信息的HTTP请求消息后,在第二 Cookie信息中获取预先选定的至少一个Cookie名对应的值,根据获取的值、辅助字符串和客户端的IP地址,重新计算签名值。具体的,上述述第一计算单元31,具体用于:在第一 Cookie信息中获取预先选定的至少一个Cookie名对应的值,根据获取的值和客户端的IP地址计算签名值.
上述第二计算单元33,具体用于:在第二 Cookie信息中获取预先选定的至少一个Cookie名对应的值,根据获取的值和客户端的IP地址,重新计算签名值。较佳的,上述第二计算单元33,用于根据比较结果,检测HTTP请求消息是否为合法消息,具体用于:若比较结果为相同,则确定第二 Cookie信息未被篡改,HTTP请求消息为合法消息;若比较结果为不同,则确定第二 Cookie信息已被篡改,HTTP请求消息为非法消肩、O 上述第二计算单元33,还用于在检测HTTP请求消息是否为合法消息后,当HTTP请求消息为合法消息时,删除第二 Cookie信息中的附加Cookie名/值对,将删除附加Cookie名/值对的HTTP请求消息发送给服务器;当HTTP请求消息为非法消息时,删除第二 Cookie信息,将删除第二 Cookie信息的HTTP请求消息发送给服务器。 显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
权利要求
1.一种检测包含Cookie信息的消息的方法,其特征在于,包括: 接收服务器发送给客户端的包含第一 Cookie信息的超文本传输协议HTTP响应消息,所述第一 Cookie信息包含至少一个Cookie名/值对; 在所述第一 Cookie信息中获取预先选定的至少一个Cookie名对应的值,根据获取的值计算签名值,将签名和计算出的签名值作为附加Cookie名/值对添加在所述第一 Cookie信息后,将添加了所述附加Cookie名/值对的HTTP响应消息发送给所述客户端; 接收所述客户端发送给所述服务器的包含第二 Cookie信息的HTTP请求消息,所述第二 Cookie信息中包含所述附加Cookie名/值对; 在所述第二 Cookie信息中获取所述预先选定的至少一个Cookie名对应的值,根据获取的值重新计算签名值,将重新计算的签名值与所述第二 Cookie信息中包含的所述附加Cookie名/值对中的值进行比较; 根据比较结果,检测所述HTTP请求消息是否为合法消息。
2.如权利要求1所述的方法,其特征在于,还包括: 以设定周期生成设定长度的辅助字符串; 在所述第一 Cookie信息中获取预先选定的至少一个Cookie名对应的值,根据获取的值计算签名值,具体包括:在所述第一 Cookie信息中获取所述预先选定的至少一个Cookie名对应的值,根据获取的值和生成的辅助字符串计算签名值; 在所述第二 Cookie信息中获取所述预先选定的至少一个Cookie名对应的值,根据获取的值重新计算签名值,具体包括:在所述第二 Cookie信息中获取所述预先选定的至少一个Cookie名对应的值,根据获取的值和生成的辅助字符串重新计算签名值。
3.如权利要求2所述的方法,其特征在于,以设定周期生成设定长度的辅助字符串,具体包括: A、以所述辅助字符串中所有字符的取值范围形成数组; B、选取所述辅助字符串的第一位; C、生成一个随机数,将所述随机数与所述数组的长度进行取模运算; D、在所述数组中获取取模运算的结果对应的取值; E、判断是否选取了所述辅助字符串的最后一位,若是,执行F;否则,选取所述辅助字符串的下一位后,执行C ; F、将得到的所有取值按照获取的先后顺序排列,得到所述辅助字符串。
4.如权利要求2所述的方法,其特征在于,在所述第一Cookie信息中获取预先选定的至少一个Cookie名对应的值,根据获取的值计算签名值,具体包括:在所述第一 Cookie信息中获取所述预先选定的至少一个Cookie名对应的值,根据获取的值、所述辅助字符串和所述客户端的互联网协议IP地址计算签名值; 在所述第二 Cookie信息中获取所述预先选定的至少一个Cookie名对应的值,根据获取的值重新计算签名值,具体包括:在所述第二 Cookie信息中获取所述预先选定的至少一个Cookie名对应的值,根据获取的值、所述辅助字符串和所述客户端的IP地址,重新计算签名值。
5.如权利要求1所述的方法,其特征在于,在所述第一Cookie信息中获取预先选定的至少一个Cookie名对应的值,根据获取的值计算签名值,具体包括:在所述第一 Cookie信息中获取所述预先选定的至少一个Cookie名对应的值,根据获取的值和所述客户端的IP地址计算签名值; 在所述第二 Cookie信息中获取所述预先选定的至少一个Cookie名对应的值,根据获取的值重新计算签名值,具体包括:在所述第二 Cookie信息中获取所述预先选定的至少一个Cookie名对应的值,根据获取的值和所述客户端的IP地址,重新计算签名值。
6.如权利要求1至5任一所述的方法,其特征在于,根据比较结果,检测所述HTTP请求消息是否为合法消息,具体包括: 若比较结果为相同,则确定所述第二 Cookie信息未被篡改,所述HTTP请求消息为合法消息; 若比较结果为不同,则确定所述第二 Cookie信息已被篡改,所述HTTP请求消息为非法消息; 在检测所述HTTP请求消息是否为合法消息后,还包括: 当所述HTTP请求消息为合法消息时,删除所述第二 Cookie信息中的所述附加Cookie名/值对,将删除所述附加Cookie名/值对的HTTP请求消息发送给所述服务器; 当所述HTTP请求消息为非法消息时,删除所述第二 Cookie信息,将删除所述第二Cookie信息的HTTP请求消息发送给所述服务器。
7.—种检测包含Cookie信息的消息的装置,其特征在于,包括: 第一接收单元,用于接收服务器发送给客户端的包含第一 Cookie信息的超文本传输协议HTTP响应消息,所述第一 Cookie信息包含至少一个Cookie名/值对; 第一计算单元,用于在所述第一 Cookie信息中获取预先选定的至少一个Cookie名对应的值,根据获取的值计算签名值,将签名和计算出的签名值作为附加Cookie名/值对添加在所述第一 Cookie信息后,将添加了所述附加Cookie名/值对的HTTP响应消息发送给所述客户端; 第二接收单元,用于接收所述客户端发送给所述服务器的包含第二 Cookie信息的HTTP请求消息,所述第二 Cookie信息中包含所述附加Cookie名/值对; 第二计算单元,用于在所述第二 Cookie信息中获取所述预先选定的至少一个Cookie名对应的值,根据获取的值重新计算签名值,将重新计算的签名值与所述第二 Cookie信息中包含的所述附加Cookie名/值对中的值进行比较;根据比较结果,检测所述HTTP请求消息是否为合法消息。
8.如权利要求7所述的装置,其特征在于,还包括生成单元,用于以设定周期生成设定长度的辅助字符串; 所述第一计算单元,具体用于在所述第一 Cookie信息中获取所述预先选定的至少一个Cookie名对应的值,根据获取的值和生成的辅助字符串计算签名值; 所述第二计算单元,具体用于在所述第二 Cookie信息中获取所述预先选定的至少一个Cookie名对应的值,根据获取的值和生成的辅助字符串重新计算签名值。
9.如权利要求8所述的装置,其特征在于,所述生成单元,具体用于: A、以所述辅助字符串中所有字符的取值范围形成数组; B、选取所述辅助字符串的第一位; C、生成一个随机数,将所述随机数与所述数组的长度进行取模运算;D、在所述数组中获取取模运算的结果对应的取值; E、判断是否选取了所述辅助字符串的最后一位,若是,执行F;否则,选取所述辅助字符串的下一位后,执行C ; F、将得到的所有取值按照获取的先后顺序排列,得到所述辅助字符串。
10.如权利要求8所述的装置,其特征在于,所述第一计算单元,具体用于在所述第一Cookie信息中获取所述预先选定的至少一个Cookie名对应的值,根据获取的值、所述辅助字符串和所述客户端的互联网协议IP地址计算签名值; 所述第二计算单元,具体用于在所述第二 Cookie信息中获取所述预先选定的至少一个Cookie名对应的值,根据获取的值、所述辅助字符串和所述客户端的IP地址,重新计算签名值。
11.如权利要求8所述的装置,其特征在于,所述第一计算单元,具体用于:在所述第一Cookie信息中获取所述预先选定的至少一个Cookie名对应的值,根据获取的值和所述客户端的IP地址计算签名值; 所述第二计算单元,具体 用于:在所述第二 Cookie信息中获取所述预先选定的至少一个Cookie名对应的值,根据获取的值和所述客户端的IP地址,重新计算签名值。
12.如权利要求7-11任一所述的装置,其特征在于,所述第二计算单元,用于根据比较结果,检测所述HTTP请求消息是否为合法消息,具体用于: 若比较结果为相同,则确定所述第二 Cookie信息未被篡改,所述HTTP请求消息为合法消息; 若比较结果为不同,则确定所述第二 Cookie信息已被篡改,所述HTTP请求消息为非法消息; 所述第二计算单元,还用于在检测所述HTTP请求消息是否为合法消息后,当所述HTTP请求消息为合法消息时,删除所述第二 Cookie信息中的所述附加Cookie名/值对,将删除所述附加Cookie名/值对的HTTP请求消息发送给所述服务器;当所述HTTP请求消息为非法消息时,删除所述第二 Cookie信息,将删除所述第二 Cookie信息的HTTP请求消息发送给所述服务器。
13.一种网络设备,其特征在于,包括如权利要求7-12任一所述的检测包含Cookie信息的消息的装置。
全文摘要
本发明公开了一种检测包含Cookie信息的消息的方法及相关装置,该方法包括接收服务器发送的包含第一Cookie信息的HTTP响应消息;在第一Cookie信息中获取预先选定的Cookie名对应的值,根据获取的值计算签名值,将添加了附加Cookie名/值对的HTTP响应消息发送给客户端;接收客户端发送的包含第二Cookie信息的HTTP请求消息;在第二Cookie信息中获取预先选定的Cookie名对应的值,根据获取的值重新计算签名值,将重新计算的签名值与第二Cookie信息中包含的附加Cookie名/值对中的值进行比较;根据比较结果进行检测。该方案可以提高消息检测效率,可以保证后续正常识别和操作。
文档编号H04L9/32GK103117897SQ201310030118
公开日2013年5月22日 申请日期2013年1月25日 优先权日2013年1月25日
发明者顾军 申请人:北京星网锐捷网络技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1