CN107360132B - 一种防止会话重演的方法及系统 - Google Patents
一种防止会话重演的方法及系统 Download PDFInfo
- Publication number
- CN107360132B CN107360132B CN201710406994.0A CN201710406994A CN107360132B CN 107360132 B CN107360132 B CN 107360132B CN 201710406994 A CN201710406994 A CN 201710406994A CN 107360132 B CN107360132 B CN 107360132B
- Authority
- CN
- China
- Prior art keywords
- voucher
- user
- credit
- verification
- information
- 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.)
- Active
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/08—Network architectures or network communication protocols for network security for authentication of entities
- H04L63/0807—Network architectures or network communication protocols for network security for authentication of entities using tickets, e.g. Kerberos
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/08—Network architectures or network communication protocols for network security for authentication of entities
- H04L63/0815—Network architectures or network communication protocols for network security for authentication of entities providing single-sign-on or federations
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/321—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving a third party or a trusted authority
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/321—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving a third party or a trusted authority
- H04L9/3213—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving a third party or a trusted authority using tickets or tokens, e.g. Kerberos
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Storage Device Security (AREA)
- Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
Abstract
本发明属于通信技术领域,涉及一种防止会话重演的方法及系统。如果第三方攻击企图截取并重用授信凭证,在30分钟内发起请求,服务器的重演性验证将会发现授信凭证已经被提交过了。因为第三方截取的用户请求和授信凭证一定是真实的合法用户的,这真正合法的用户请求会继续穿到服务器。而第三方攻击截取授信凭证,伪造IP,组织请求内容,需要一定时间。这样第一次提交的一定是真实的合法用户,以后的提交必定为攻击者。如果第三方在30分钟后发起请求,授信凭证本身有30分钟的时效期的限制,攻击者的重演企图也不能实现。
Description
技术领域
本发明属于通信技术领域,涉及一种防止会话重演的方法及系统。
背景技术
现在貌似大多数网站用户认证主要包括两种方式:
一.基于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)合并为第一合并 信息,并对该第一合并信息进行摘要运算以获得第一信息摘要。作为优选,本 实施例中的摘要运算采用消息摘要算法(例如,Message Digest Algorithm MD5,消息摘要算法第五版)以获得固定长度的第一信息摘要,同时还具有容 易计算、抗修改性和强抗碰撞的优点。授信凭证生成模块将由第一信息摘要生 成单元得到的第一信息摘要(作为客户端信息)连同用户的用户名(作为服务 器信息)和用户的请求时间(即该授信凭证的形成时间,将其作为时效信息) 一起作为授信凭证。客户端将由授信凭证生成模块得到的授信凭证连同用户的 本次请求的请求内容一起作为用户请求发送给服务器。
服务器包括服务器存储模块、缓存模块、验证模块。服务器存储模块中 存储有注册成功的用户信息,该用户信息包括:用户名、用户密码以及为该用 户客户端分配的身份认证信息(即SESSION或者TOKEN)。缓存模块用于缓存 该服务器上已通过授信验证的授信凭证,该缓存模块中的授信凭证的缓存时间 为授信凭证的时效期(本实施例中为30分钟)。即对于缓存在其中的授信凭证, 如果其缓存时间超过时效期30分钟,缓存模块会将其删除。验证模块用户验 证用户请求的授信凭证。验证模块进一步包括合法性验证单元、时效性验证单 元和重演性验证单元。其中,合法性验证单元用于检验用户请求的授信凭证是否合法。进一步包括由检索子单元、第二信息摘要生成子单元、匹配子单元。 检索子单元根据用户的用户名在服务器存储模块中查找出服务器为该用户端 分配的身份认证信息(即SESSION或者TOKEN)。第二信息摘要生成子单元将 由检索子单元检索到的身份认证信息(即SESSION或者TOKEN)和服务器接收 到的来自客户端的用户请求中的请求内容合并为第二合并信息,并对该第二合 并信息进行摘要运算,此处的摘要运算算法应该与客户端的第一信息摘要生成 单元所采用的算法保持一致。例如本实施例中的第二信息摘要生成子单元应采 用与第一信息摘要生成单元一致的消息摘要算法第五版。匹配子单元则比较第 二信息摘要生成子单元获得的第二信息摘要和附在用户请求的授信凭证中的 第一信息摘要是否相同,第一信息摘要和第二信息摘要相同则表示授信凭证合 法;如果第一信息摘要和第二信息摘要不同则表示授信凭证不合法,服务器不 应响应客户端的用户请求。对于通过了合法性验证的授信凭证,时效性验证单 元将比较附在该授信凭证中的用户的请求时间和服务器接收到该用户请求的 接收时间之间的时间差是否大于授信凭证的时效期30分钟:如果是,则表示 该授信凭证已失效;如果不是,则表示该授信凭证仍有效。对于通过时效性验 证的授信凭证,重演性验证单元在服务器的缓存模块中检索该授信凭证是否已 经存在,如果存在则表示该用户请求为非真实用户的重演行为,服务器不应响 应该用户请求;如果不存在则表示该用户请求为真实的用户请求,服务器应响 应该用户请求,授信验证通过,并将该授信凭证缓存起来。
本实施例中,基于上述系统的防止会话重演的方法如下,包括:
步骤S0,客户端发送身份认证请求至服务器,服务器为通过身份认证请 求的客户端分配身份认证信息。客户端的形式有多种,例如浏览器或者APP 应用,用户通过客户端浏览器或者客户端APP应用进行用户登录,发送用户名 和用户密码至服务器。服务器端存储有注册成功的用户的信息,该用户信息包 括用户名和用户密码的对应关系。服务器端对用户的登陆请求进行验证身份验 证,并为通过身份验证的客户端分配一个唯一的SESSION或者TOKEN,客户端 将该唯一的SESSION(身份会话)或者TOKEN(身份令牌)作为用户的身份认证信息保存起来。
步骤S1,客户端发送用户请求至服务器,用户请求包括请求内容和授信 凭证,授信凭证包括根据请求内容和身份认证信息(即SESSION或者TOKEN) 生成的第一信息摘要。该授信凭证具有时效期,时效期为30分钟。具体包括:
步骤S1-1,客户端将存储的客户端存储模块中的身份认证信息(即 SESSION或者TOKEN)和用户本次请求的请求内容合并为第一合并信息;
步骤S1-2,由客户端的第一信息摘要生成单元对由步骤S1-2中得到的第 一合并信息进行摘要运算(本实施例中为MD5运算,即消息摘要算法第五版) 生成第一信息摘要;
步骤S1-3,客户端的授信凭证生成模块将步骤S1-2中得到的第一信息摘 要和用户的用户名以及用户的请求时间一起作为授信凭证;
步骤S1-4,客户端发送用户请求至服务器,该用户请求包括了用户本次 请求的请求内容和由步骤S1-3得到的授信凭证。
步骤S2,服务器接收来自客户端的用户请求并验证附在用户请求中的授 信凭证,验证通过则缓存所述授信凭证并且响应所述用户请求,验证不通过则 拒绝所述用户请求。授信凭证的验证包括:
步骤S2-1,合法性验证,服务器的验证模块的合法性验证单元根据用户 请求的授信凭证中的客户端信息和服务器信息验证授信凭证是否合法。合法性 验证通过则继续步骤S2-2,合法性验证不通过则所述授信验证不通过并且不 响应所述用户请求。具体包括:
步骤S2-1-1,合法性验证单元的检索子单元根据用户的用户名在服务器 的服务器存储模块中查找与该用户名对应的身份认证信息(即SESSION或者 TOKEN)。
步骤S2-1-2,合法性验证单元通过第二信息摘要生成子单元根据用户请 求中的请求内容和由步骤S2-1-1得到的身份认证信息(即SESSION或者 TOKEN)生成第二信息摘要。步骤S2-1-2进一步包括:
步骤S2-1-3,合法性验证单元将由步骤S2-1-2得到的身份认证信息和用 户请求中的请求内容合并为第二合并信息;
步骤S2-1-4,合法性验证单元通过其第二信息摘要生成子单元对第二合 并信息进行摘要运算(本实施例中为MD5运算,即消息摘要算法第五版)得到 第二信息摘要。
步骤S2-1-5,合法性单元通过其匹配子单元比较用户请求的授信凭证中 的第一信息摘要与步骤S2-1-2中得到的第二信息摘要是否相同。如果两者相 同则表示第一信息摘要与第二信息摘要匹配,合法性验证通过;如果两者不相 同则表示第一信息摘要与第二信息摘要不匹配,合法性验证不通过。
步骤S2-2,时效性验证,验证模块的时效性验证单元根据时效信息验证 授信凭证是否在时效期内,如果授信凭证在时效期内则时效性验证通过,如果 授信凭证不在时效期内则时效性验证不通过。时效性验证通过则继续步骤 S2-3,合法性验证不通过则授信验证不通过并且不响应用户请求。具体包括:
步骤S2-2-1,提取附在授信凭证中的用户的请求时间作为时效信息;
步骤S2-2-2,比较在步骤S2-2-1中得到的请求时间和所述用户请求(即 授信凭证)的接收时间之间的时间差是否大于授信凭证的时效期30分钟:如 果是,则表示该授信凭证已失效,时效性验证不通过;如果不是,则表示该授 信凭证仍有效,时效性验证通过。
步骤S2-3,重演性验证,验证服务器的缓存模块中是否存在相同的授信 凭证。重演性验证通过则授信验证通过,重演性验证不通过则授信验证不通过 并且不响应用户请求。
步骤S2-4,缓存通过授信凭证验证的授信凭证。只有上述三步验证均通 过,服务器才会响应用户的用户请求,并且将授信凭证缓存起来。
如果第三方攻击企图截取并重用授信凭证,在30分钟内发起请求,服务 器的重演性验证将会发现授信凭证已经被提交过了。因为第三方截取的用户请 求和授信凭证一定是真实的合法用户的,这真正合法的用户请求会继续穿到服 务器。而第三方攻击截取授信凭证,伪造IP,组织请求内容,需要一定时间。 这样第一次提交的一定是真实的合法用户,以后的提交必定为攻击者。如果第 三方在30分钟后发起请求,授信凭证本身有30分钟的时效期的限制,攻击者 的重演企图也不能实现。
实施例二
如图1所示,一种防止会话重演的系统,包括客户端和服务器。
客户端发送附有授信凭证的用户请求至服务器以请求服务器提供服务; 服务器对通过授信凭证验证的客户端提供服务。
客户端的形式有多种,例如浏览器或者APP应用,用户通过客户端浏览 器或者客户端APP应用进行用户登录,发送用户名和用户密码至服务器。客户 端同时将用户输入的用户名和密码保存起来,客户端并不需要向服务器请求身 份认证。服务器端存储有注册成功的用户的信息,该用户信息包括用户名和用 户密码的对应关系。
具体的,客户端包括客户端存储模块和授信凭证生成模块。客户端存储 模块中存储有用户信息,具体包括:用户名以及用户名对应的用户密码。授信 凭证生成模块基于用户的请求内容生成包括根据用户的请求内容和请求时间 加密的密文的授信凭证。
授信凭证生成模块包括第一信息摘要生成单元、加密单元,第一信息摘 要生成单元将用户的请求内容进行摘要运算以获得第一信息摘要。作为优选, 本实施例中的摘要运算采用消息摘要算法(例如,Message Digest Algorithm MD5,消息摘要算法第五版)以获得固定长度的第一信息摘要,同时还具有容 易计算、抗修改性和强抗碰撞的优点。加密单元将用户的用户密码作为key 对由第一信息摘要生成单元得到的第一信息摘要和用户的请求时间进行加密 得到密文。授信凭证生成模块将由加密单元生成的密文连同用户的用户名一起 作为授信凭证。客户端将由授信凭证生成模块得到的授信凭证连同用户的本次请求的请求内容一起作为用户请求发送给服务器。
服务器包括服务器存储模块、缓存模块、验证模块。服务器存储模块中 存储有注册成功的用户信息,该用户信息包括:用户名、以及该用户名对应的 用户密码。缓存模块用于缓存该服务器上已通过授信验证的授信凭证,该缓存 模块中的授信凭证的缓存时间为授信凭证的时效期(本实施例中为30分钟)。 即对于缓存在其中的授信凭证,如果其缓存时间超过时效期30分钟,缓存模 块会将其删除。验证模块用户验证用户请求的授信凭证。验证模块进一步包括 合法性验证单元、时效性验证单元和重演性验证单元。其中,合法性验证单元 用于验证用户请求的授信凭证是否合法。进一步包括解密子单元、第二信息摘 要生成子单元、匹配子单元、以及时效性验证子单元。解密子单元根据用户的 用户名在服务器存储模块中查找出用户的用户密码,利用该用户密码对负载授 信凭证中的密文进行解密得到第一信息摘要。第二信息摘要生成子单元将服务 器接收到的来自客户端的用户请求中的请求内容进行摘要运算,此处的摘要运 算算法应该与客户端的第一信息摘要生成单元所采用的算法保持一致。例如本 实施例中的第二信息摘要生成子单元应采用与第一信息摘要生成单元一致的 消息摘要算法第五版。匹配子单元则比较第二信息摘要生成单元获得的第二信 息摘要和由解密子单元对附在用户请求的授信凭证中的密文进行解密得到的 第一信息摘要是否相同,如果第一信息摘要和第二信息摘要相同则表示授信凭 证合法;如果第一信息摘要和第二信息摘要不同则表示授信凭证不合法,服务 器不应响应客户端的用户请求。对于通过了合法性验证的授信凭证,时效性验 证单元将比较由解密子单元解密得到的请求时间与服务器接受到该用户请求 的接收时间之间的时间差是否大于授信凭证的时效期30分钟:如果是,则表 示该授信凭证已失效;如果不是,则表示该授信凭证仍有效。对于通过时效性 验证的授信凭证,重演性验证单元在服务器的缓存模块中检索该授信凭证是否 已经存在,如果存在则表示该用户请求为非真实用户的重演行为,服务器不应响应该用户请求;如果不存在则表示该用户请求为真实的用户请求,服务器应 响应该用户请求,授信验证通过,并将该授信凭证缓存起来。
本实施例中,基于上述系统的防止会话重演的方法如下,包括:
步骤S1,客户端发送用户请求至服务器,用户请求包括请求内容和授信 凭证,授信凭证包括根据请求内容和用户的请求时间进行加密的密文。具体包 括:
步骤S1-1,由客户端的第一信息摘要生成单元对用户的请求内容进行进 行摘要运算(本实施例中为MD5运算,即消息摘要算法第五版)生成第一信息 摘要;
步骤S1-2,客户端的授信凭证生成模块的加密单元将用户的用户密码作 为key对步骤S1-1中得到的第一信息摘要和用户的请求时间进行加密得到与 第一信息摘要对应的密文;
步骤S1-3,客户端的授信凭证生成模块将加密单元在步骤S1-2中得到的 密文和用户的用户名一起作为授信凭证。
步骤S1-4,客户端发送用户请求至服务器,该用户请求包括了用户本次 请求的请求内容和由步骤S1-3得到的授信凭证。
步骤S2,服务器接收来自客户端的用户请求并验证附在用户请求中的授 信凭证,验证通过则缓存所述授信凭证并且响应所述用户请求,验证不通过则 拒绝所述用户请求。授信凭证的验证包括:
步骤S2-1,合法性验证,服务器的验证模块的合法性验证单元根据用户 请求的授信凭证中的客户端信息和服务器信息验证授信凭证是否合法。合法性 验证通过则继续步骤S2-2,合法性验证不通过则所述授信验证不通过并且不 响应所述用户请求。具体包括:
步骤S2-1-1,合法性验证单元的解密单子元根据用户的用户名在服务器 的服务器存储模块中查找与该用户名对应的用户密码。
步骤S2-1-2,合法性验证单元通过解密子单元利用步骤S2-1-1中得到的 用户密码对用户请求的授信凭证中的密文进行解密得到第一信息摘要;合法性 验证单元通过第二信息摘要生成子单元根据用户请求中的请求内容进行摘要 运算(本实施例中为MD5运算,即消息摘要算法第五版)得到第二信息摘要。
步骤S2-1-3,合法性验证单元的匹配子单元比较步骤S-1-2中得到的第 一信息摘要和第二信息摘要是否相同。如果两者相同则表示合法性验证通过; 如果两者不相同则表示合法性验证不通过。
步骤S2-2,时效性验证,验证模块的时效性验证单元根据时效信息验证 授信凭证是否在时效期内,如果授信凭证在时效期内则时效性验证通过,如果 授信凭证不在时效期内则时效性验证不通过。时效性验证通过则继续步骤 S2-3,合法性验证不通过则授信验证不通过并且不响应用户请求。具体包括:
步骤S2-2-1,提取解密单元对授信凭证进行解密以后得到的用户的请求 时间(即时效信息);
步骤S2-2-2,时效性验证单元将比较在步骤2-2-1中得到的请求时间和 服务器接收到该用户请求的接收时间之间的时间差是否大于授信凭证的时效 期30分钟:如果是,则表示该授信凭证已失效,时效性验证不通过;如果不 是,则表示该授信凭证仍有效,时效性验证通过。
步骤S2-3,重演性验证,验证服务器的缓存模块中是否存在相同的授信 凭证。重演性验证通过则授信验证通过,重演性验证不通过则授信验证不通过 并且不响应用户请求。
步骤S2-4,缓存通过授信凭证验证的授信凭证。只有上述三步验证均通 过,服务器才会响应用户的用户请求,并且将授信凭证缓存起来。
如果第三方攻击企图截取并重用授信凭证,在30分钟内发起请求,服务 器的重演性验证将会发现授信凭证已经被提交过了。因为第三方截取的用户请 求和授信凭证一定是真实的合法用户的,这真正合法的用户请求会继续穿到服 务器。而第三方攻击截取授信凭证,伪造IP,组织请求内容,需要一定时间。 这样第一次提交的一定是真实的合法用户,以后的提交必定为攻击者。如果第 三方在30分钟后发起请求,授信凭证本身有30分钟的时效期的限制,攻击者 的重演企图也不能实现。
本文中所描述的具体实施例仅仅是对本发明精神作举例说明。本发明所 属技术领域的技术人员可以对所描述的具体实施例做各种各样的修改或补充 或采用类似的方式替代,但并不会偏离本发明的精神或者超越所附权利要求书 所定义的范围。
Claims (6)
1.一种防止会话重演的方法,其特征在于,包括步骤:
步骤S1,接收用户请求,所述用户请求附带授信凭证;
步骤S2,验证所述授信凭证,验证通过则缓存所述授信凭证并且响应所述用户请求,验证不通过则拒绝所述用户请求;验证所述授信凭证包括授信凭证的重演性验证;
其中,所述重演性验证是指检查缓存中是否存在所述授信凭证,如果存在则所述重演性验证失败,如果不存在则所述重演性验证通过;
所述步骤S1具体为:
客户端发送用户请求至服务器,用户请求包括请求内容和授信凭证,所述授信凭证具有时效期;
步骤S1-1,客户端将存储的身份认证信息和用户本次请求的请求内容合并为第一合并信息;
步骤S1-2,由客户端对得到的第一合并信息进行摘要运算生成第一信息摘要;
步骤S1-3,客户端将得到的第一信息摘要和用户的用户名以及用户的请求时间作为授信凭证;
步骤S1-4,客户端发送用户请求至服务器,其中用户请求包括用户请求的请求内容和得到的授信凭证;
所述步骤S2中,验证所述授信凭证包括授信凭证的时效性验证;所述时效性验证是根据所述时效信息验证所述授信凭证是否在时效期内,如果所述授信凭证在所述时效期内则所述时效性验证通过,如果所述授信凭证不在所述时效期内则所述时效性验证不通过;
所述步骤S2包括:
步骤S2-1,授信凭证的合法性验证,所述合法性验证通过则继续步骤S2-2,所述合法性验证不通过则所述授信验证不通过并且不响应所述用户请求;
步骤S2-2,授信凭证的时效性验证,所述时效性验证通过则继续步骤S2-3,所述合法性验证不通过则所述授信验证不通过并且不响应所述用户请求;
步骤S2-3,授信凭证的重演性验证,所述重演性验证通过则所述授信验证通过,所述重演性验证不通过则所述授信验证不通过并且不响应所述用户请求;步骤S2-4,缓存所述授信凭证;
步骤S2-2-1,提取所述授信凭证中的时效信息;
步骤S2-2-2,比较所述授信凭证的接收时间和所述形成时间之间的时间差是否超过所述时效期;如果所述时间差超过所述时效期则所述时效性验证通过,进入步骤S2-3;如果所述时间差不超过所述时效期则所述时效性验证不通过;
所述缓存中的授信凭证在缓存时间超过所述时效期后被清除。
2.根据权利要求1所述的一种防止会话重演的方法,其特征在于,所述步骤S1之前还包括:
步骤S0,接收用户端验证请求,为通过用户端验证的用户端分配所述授信凭证;
其中,所述授信凭证包括用户端信息。
3.根据权利要求1所述的一种防止会话重演的方法,其特征在于:所述授信凭证由所述客户端生成。
4.一种防止会话重演的系统,包括客户端和服务器,所述客户端发送附有授信凭证的用户请求至所述服务器以请求所述服务器提供服务;所述服务器对通过授信凭证验证的所述客户端提供服务;其特征在于:
所述授信凭证包括客户端信息、服务器信息、时效信息;
所述服务器包括缓存所述授信凭证的缓存模块和验证所述授信凭证的验证模块;所述缓存模块删除缓存时间超过其时效期的授信凭证;
所述验证模块包括合法性验证单元、时效性验证单元、重演性验证单元,所述合法性验证单元根据所述客户端信息和所述服务器信息验证所述授信凭证是否合法,所述时效性验证单元根据所述时效信息验证所述授信凭证是否有效,所述重演性验证单元在所述缓存模块中检索所述授信凭证是否存在;
所述客户端包括客户端存储模块和授信凭证生成模块;
客户端存储模块中存储有用户信息,所述用户信息包括用户名、用户密码、以及服务器分配给用户的身份认证信息;
授信凭证生成模块包括第一信息摘要生成单元,第一信息摘要生成单元将用户的请求内容和身份认证信息合并为第一合并信息,并对该第一合并信息进行摘要运算以获得第一信息摘要;授信凭证生成模块将由第一信息摘要生成单元得到的第一信息摘要与用户的用户名和用户的请求时间作为授信凭,客户端将由授信凭证生成模块得到的授信凭证连同用户的本次请求的请求内容作为用户请求发送给服务器。
5.根据权利要求4所述的一种防止会话重演的系统,其特征在于:所述缓存模块缓存通过所述合法性验证的所述授信凭证。
6.根据权利要求5所述的一种防止会话重演的系统,其特征在于:所述时效期为20-40分钟。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710406994.0A CN107360132B (zh) | 2017-06-02 | 2017-06-02 | 一种防止会话重演的方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710406994.0A CN107360132B (zh) | 2017-06-02 | 2017-06-02 | 一种防止会话重演的方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107360132A CN107360132A (zh) | 2017-11-17 |
CN107360132B true CN107360132B (zh) | 2021-03-09 |
Family
ID=60271452
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710406994.0A Active CN107360132B (zh) | 2017-06-02 | 2017-06-02 | 一种防止会话重演的方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107360132B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108809991A (zh) * | 2018-06-15 | 2018-11-13 | 北京云枢网络科技有限公司 | 一种基于sdk动态水印的客户端合法性校验的方法 |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8688524B1 (en) * | 2011-06-28 | 2014-04-01 | Amazon Technologies, Inc. | Tracking online impressions to offline purchases |
CN102546179A (zh) * | 2011-12-31 | 2012-07-04 | 珠海市君天电子科技有限公司 | 一种服务器端和客户端之间的身份验证方法 |
CN103428171B (zh) * | 2012-05-17 | 2016-08-24 | 阿里巴巴集团控股有限公司 | 一种session的处理方法、应用服务器及系统 |
US9432821B2 (en) * | 2013-03-16 | 2016-08-30 | Wellpepper, Inc. | Adaptive notification system for mobile devices |
CN104519018B (zh) * | 2013-09-29 | 2018-09-18 | 阿里巴巴集团控股有限公司 | 一种防止针对服务器的恶意请求的方法、装置和系统 |
CN103841111B (zh) * | 2014-03-17 | 2017-11-14 | 北京京东尚科信息技术有限公司 | 一种防止数据重复提交的方法和服务器 |
CN106341372A (zh) * | 2015-07-08 | 2017-01-18 | 阿里巴巴集团控股有限公司 | 终端的认证处理、认证方法及装置、系统 |
CN105095462B (zh) * | 2015-07-30 | 2018-09-28 | 北京京东尚科信息技术有限公司 | 处理网页重复请求的方法和系统 |
-
2017
- 2017-06-02 CN CN201710406994.0A patent/CN107360132B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN107360132A (zh) | 2017-11-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108471432B (zh) | 防止网络应用程序接口被恶意攻击的方法 | |
CN108964919B (zh) | 基于车联网的具有隐私保护的轻量级匿名认证方法 | |
US7231526B2 (en) | System and method for validating a network session | |
US11336641B2 (en) | Security enhanced technique of authentication protocol based on trusted execution environment | |
KR101132148B1 (ko) | 키 관리 프로토콜에 권한부여의 클라이언트 승인을 제공하기 위한 시스템 및 방법 | |
CN104767731B (zh) | 一种Restful移动交易系统身份认证防护方法 | |
JP2017521934A (ja) | クライアントとサーバとの間の相互検証の方法 | |
CN107733933B (zh) | 一种基于生物识别技术的双因子身份认证的方法及系统 | |
JP2011515961A (ja) | クライアント側証明書認証情報の認証保存方法と認証保存システム | |
US20110179478A1 (en) | Method for secure transmission of sensitive data utilizing network communications and for one time passcode and multi-factor authentication | |
CN103856468A (zh) | 身份验证系统及方法 | |
CN105743638A (zh) | 基于b/s架构系统客户端授权认证的方法 | |
Dua et al. | Replay attack prevention in Kerberos authentication protocol using triple password | |
CN109525565B (zh) | 一种针对短信拦截攻击的防御方法及系统 | |
EP2414983B1 (en) | Secure Data System | |
CN103701787A (zh) | 一种基于公开密钥算法实现的用户名口令认证方法 | |
Sood et al. | Inverse Cookie-based Virtual Password Authentication Protocol. | |
CN110035035B (zh) | 一种单点登录的二次认证方法及系统 | |
CN110572392A (zh) | 一种基于Hyperledger网络的身份认证方法 | |
CN107360132B (zh) | 一种防止会话重演的方法及系统 | |
CN104506518A (zh) | Mips平台网络系统访问控制的身份认证方法 | |
CN111682941B (zh) | 基于密码学的集中式身份管理、分布式认证与授权的方法 | |
CN114039748A (zh) | 身份验证方法、系统、计算机设备和存储介质 | |
CN105871788B (zh) | 一种登录服务器的密码生成方法及装置 | |
Jia et al. | A Critique of a Lightweight Identity Authentication Protocol for Vehicular Networks. |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
TA01 | Transfer of patent application right |
Effective date of registration: 20201030 Address after: No. 2-3167, zone a, Nonggang City, No. 2388, Donghuan Avenue, Hongjia street, Jiaojiang District, Taizhou City, Zhejiang Province Applicant after: Taizhou Jiji Intellectual Property Operation Co.,Ltd. Address before: 201616 Shanghai city Songjiang District Sixian Road No. 3666 Applicant before: Phicomm (Shanghai) Co.,Ltd. |
|
TA01 | Transfer of patent application right | ||
GR01 | Patent grant | ||
GR01 | Patent grant |