一种防止会话重演的方法及系统技术方案

技术编号:16589747 阅读:31 留言:0更新日期:2017-11-18 18:02
本发明专利技术属于通信技术领域,涉及一种防止会话重演的方法及系统。如果第三方攻击企图截取并重用授信凭证,在30分钟内发起请求,服务器的重演性验证将会发现授信凭证已经被提交过了。因为第三方截取的用户请求和授信凭证一定是真实的合法用户的,这真正合法的用户请求会继续穿到服务器。而第三方攻击截取授信凭证,伪造IP,组织请求内容,需要一定时间。这样第一次提交的一定是真实的合法用户,以后的提交必定为攻击者。如果第三方在30分钟后发起请求,授信凭证本身有30分钟的时效期的限制,攻击者的重演企图也不能实现。

Method and system for preventing conversation from happening again

The invention belongs to the field of communication technology, and relates to a method and system for preventing conversation from happening again. If the third party attack attempts to intercept and reuse the credit certificate, the request will be initiated within 30 minutes, and the server's replay verification will find that the credit voucher has been submitted. Because the third party intercepts the user request and the credit certificate must be the real legitimate user, this really legitimate user request will continue to wear to the server. And the third party attack intercept credit certificate, forge IP, organize the request content, need a certain time. So the first submission must be the real legitimate user, and the future commit must be an attacker. If the third party initiates a claim after 30 minutes, the credit voucher itself has a limitation period of 30 minutes, and the attempt of an attacker can not be achieved.

【技术实现步骤摘要】
一种防止会话重演的方法及系统
本专利技术属于通信
,涉及一种防止会话重演的方法及系统。
技术介绍
现在貌似大多数网站用户认证主要包括两种方式:一.基于SESSION的用户认证用户通过服务器的身份验证后,在服务器端生成用户相关的SESSION数据,而将发给客户端SESSION_ID存放到COOKIE中。当客户端需要向服务器请求服务时,在发送至服务器的用户请求中带上SESSION_ID。服务器就可以根据SESSION_ID验证服务器端是否存在对应的SESSION数据,以此完成用户认证。二.基于TOKEN的用户认证基于TOKEN的用户认证是一种服务器端无状态的认证方式,服务器端不用存放TOKEN数据。用户通过服务器的身份验证后,由服务器生成一个TOKEN(Hash或Encrypt,即哈希或加密)发给客户端。客户端可以放到COOKIE或LOCALSTORAGE中,客户端在发送给服务器的每个用户请求中附上TOKEN作为授信凭证,服务端在收到TOKEN以后进行授信凭证验证,通过验证后即可确认用户的身份。上述两种认证方式,主要靠唯一的授信凭证发给客户端,客户端的每次用户请求都附带上SESSION或TOKEN来保持、识别授信凭证。虽然每一个客户端上的SESSION或TOKEN是唯一的,但是SESSION或TOKEN在一定时间内也是固定不变的。在开放网络上,SESSION或TOKEN很可能被恶意第三方截取盗用,并且附在自己的恶意请求上,使得恶意第三方可以冒充真正的用户向服务器发送恶意请求,服务器难以识别,威胁网络完全。于是现有技术中,服务器每次先给客户端分配一个随机数,由客户端根据这个随机数加密或变换SESSION或TOKEN信息,来使得客户端每次用户请求的授信凭证不一样。但是,这种技术方案的实现方式中,首先需要服务器产生并保持这个随机数并且将该随机数传送给客户端。因此,如果用于传送这个随机数的传送通道不安全,那么这个随机数仍然有可能被恶意的第三方截取盗用。并且如果第三方用的授信凭证正好就是当时那次的请求内容,服务器端就可能接受请求。这种使用盗用当时的授信凭证及请求,再次发给服务器的重演行为仍无法避免。
技术实现思路
本专利技术为了解决上述技术问题,提出一种防止会话重演的方法,其特征在于,包括步骤:步骤S1,接收用户请求,所述用户请求附带授信凭证;步骤S2,验证所述授信凭证,验证通过则缓存所述授信凭证并且响应所述用户请求,验证不通过则拒绝所述用户请求;验证所述授信凭证包括授信凭证的重演性验证;其中,所述重演性验证是指检查缓存中是否存在所述授信凭证,如果存在则所述重演性验证失败,如果不存在则所述重演性验证通过。作为优选,所述授信凭证包括时效信息;所述步骤S2中,验证所述授信凭证包括授信凭证的时效性验证;所述时效性验证是根据所述时效信息验证所述授信凭证是否在时效期内,如果所述授信凭证在所述时效期内则所述时效性验证通过,如果所述授信凭证不在所述时效期内则所述时效性验证不通过。作为优选,所述步骤S2包括:步骤S2-1,授信凭证的合法性验证,所述合法性验证通过则继续步骤S2-2,所述合法性验证不通过则所述授信验证不通过并且不响应所述用户请求;步骤S2-2,授信凭证的时效性验证,所述时效性验证通过则继续步骤S2-3,所述合法性验证不通过则所述授信验证不通过并且不响应所述用户请求;步骤S2-3,授信凭证的重演性验证,所述重演性验证通过则所述授信验证通过,所述合法性验证不通过则所述授信验证不通过并且不响应所述用户请求;步骤S2-4,缓存所述授信凭证。作为优选,所述时效信息包括所述授信凭证的形成时间;步骤S2-2包括:步骤S2-2-1,提取所述授信凭证中的时效信息;步骤S2-2-2,比较所述授信凭证的接收时间和所述形成时间之间的时间差是否超过所述时效期;如果所述时间差超过所述时效期则所述时效性验证通过,进入步骤S2-2-3;如果所述时间差不超过所述时效期则所述时效性验证不通过。作为优选,缓存中的授信凭证在缓存时间超过所述时效期后被清除。作为优选,所述步骤S1之前还包括:步骤S0,接收用户端验证请求,为通过用户端验证的用户端分配所述授信凭证;其中,所述授信凭证包括用户端信息。作为优选,所述授信凭证由所述客户端生成。本专利技术还提供了一种防止会话重演的系统,包括客户端和服务器,所述客户端发送附有授信凭证的用户请求至所述服务器以请求所述服务器提供服务;所述服务器对通过授信凭证验证的所述客户端提供服务;其特征在于:所述授信凭证包括客户端信息、服务器信息、时效信息;所述服务器包括缓存所述授信凭证的缓存模块和验证所述授信凭证的验证模块;所述缓存模块删除缓存时间超过其时效期的授信凭证;所述验证模块包括合法性验证单元、时效性验证单元、重演性验证单元,所述合法性验证单元根据所述客户端信息和所述服务器信息验证所述授信凭证是否合法,所述时效性验证单元根据所述时效信息验证所述授信凭证是否有效,所述重演性验证单元在所述缓存模块中检索所述授信凭证是否存在。作为优选,所述缓存模块缓存通过所述合法性验证的所述授信凭证。作为优选,所述时效期为20-40分钟。附图说明图1是本专利技术的授信过程示意图。具体实施方式以下具体实施例仅仅是对本专利技术的解释,其并不是对本专利技术的限制,本领域技术人员在阅读完本说明书后可以根据需要对本实施例做出没有创造性贡献的修改,但只要在本专利技术的权利要求范围内都受到专利法的保护。实施例一如图1所示,一种防止会话重演的系统。客户端发送附有授信凭证的用户请求至服务器以请求服务器提供服务;服务器对通过授信凭证验证的客户端提供服务。该授信凭证为具有时效期的一次性的授信凭证,包括客户端信息、服务器信息和时效信息客户端的形式有多种,例如浏览器或者APP应用,用户通过客户端浏览器或者客户端APP应用进行用户登录,发送用户名和用户密码至服务器。服务器端存储有注册成功的用户的信息,该用户信息包括用户名和用户密码的对应关系。服务器端对用户的登陆请求进行验证身份验证,并为通过身份验证的客户端分配一个唯一的SESSION或者TOKEN,客户端将该唯一的SESSION(身份会话)或者TOKEN(身份令牌)作为用户的身份认证信息保存起来,但是客户端并不采用该身份认证信息作为授信凭证。具体的,客户端包括客户端存储模块和授信凭证生成模块。客户端存储模块中存储有用户信息,具体包括:用户名、用户密码、以及服务器分配给该用户的身份认证信息(即SESSION或者TOKEN)。授信凭证生成模块基于SESSION或者TOEKN生成与客户端的请求内容相关的一次性的授信凭证,该授信凭证的时效期为30分钟。授信凭证生成模块包括第一信息摘要生成单元,第一信息摘要生成单元将用户的请求内容和身份认证信息(即SESSION或者TOKEN)合并为第一合并信息,并对该第一合并信息进行摘要运算以获得第一信息摘要。作为优选,本实施例中的摘要运算采用消息摘要算法(例如,MessageDigestAlgorithmMD5,消息摘要算法第五版)以获得固定长度的第一信息摘要,同时还具有容易计算、抗修改性和强抗碰撞的优点。授信凭证生成模块将由第一信息摘要生成单元得到的第一信息摘要(作为客户端信息)连同用户的用户名(作为服务器信本文档来自技高网
...
一种防止会话重演的方法及系统

【技术保护点】
一种防止会话重演的方法,其特征在于,包括步骤:步骤S1,接收用户请求,所述用户请求附带授信凭证;步骤S2,验证所述授信凭证,验证通过则缓存所述授信凭证并且响应所述用户请求,验证不通过则拒绝所述用户请求;验证所述授信凭证包括授信凭证的重演性验证;其中,所述重演性验证是指检查缓存中是否存在所述授信凭证,如果存在则所述重演性验证失败,如果不存在则所述重演性验证通过。

【技术特征摘要】
1.一种防止会话重演的方法,其特征在于,包括步骤:步骤S1,接收用户请求,所述用户请求附带授信凭证;步骤S2,验证所述授信凭证,验证通过则缓存所述授信凭证并且响应所述用户请求,验证不通过则拒绝所述用户请求;验证所述授信凭证包括授信凭证的重演性验证;其中,所述重演性验证是指检查缓存中是否存在所述授信凭证,如果存在则所述重演性验证失败,如果不存在则所述重演性验证通过。2.根据权利要求1所述的一种防止会话重演的方法,其特征在于:所述授信凭证包括时效信息;所述步骤S2中,验证所述授信凭证包括授信凭证的时效性验证;所述时效性验证是根据所述时效信息验证所述授信凭证是否在时效期内,如果所述授信凭证在所述时效期内则所述时效性验证通过,如果所述授信凭证不在所述时效期内则所述时效性验证不通过。3.根据权利要求2所述的一种防止会话重演的方法,其特征在于,所述步骤S2包括:步骤S2-1,授信凭证的合法性验证,所述合法性验证通过则继续步骤S2-2,所述合法性验证不通过则所述授信验证不通过并且不响应所述用户请求;步骤S2-2,授信凭证的时效性验证,所述时效性验证通过则继续步骤S2-3,所述合法性验证不通过则所述授信验证不通过并且不响应所述用户请求;步骤S2-3,授信凭证的重演性验证,所述重演性验证通过则所述授信验证通过,所述重演性验证不通过则所述授信验证不通过并且不响应所述用户请求;步骤S2-4,缓存所述授信凭证。4.根据权利要求3所述的一种防止会话重演的方法,其特征在于,所述时效信息包括所述授信凭证的形成时间;步骤S2-2包括:步骤S2-2-1,提取所述授信凭证中的时效信息;步骤S2-2-2,比较所述授信凭证的接...

【专利技术属性】
技术研发人员:仇亚东
申请(专利权)人:上海斐讯数据通信技术有限公司
类型:发明
国别省市:上海,31

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1