CN113676452A - 基于一次性密钥的重放攻击抵御方法及系统 - Google Patents

基于一次性密钥的重放攻击抵御方法及系统 Download PDF

Info

Publication number
CN113676452A
CN113676452A CN202110801617.3A CN202110801617A CN113676452A CN 113676452 A CN113676452 A CN 113676452A CN 202110801617 A CN202110801617 A CN 202110801617A CN 113676452 A CN113676452 A CN 113676452A
Authority
CN
China
Prior art keywords
information
server
client
token
service request
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.)
Granted
Application number
CN202110801617.3A
Other languages
English (en)
Other versions
CN113676452B (zh
Inventor
罗新华
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Si Tech Information Technology Co Ltd
Original Assignee
Beijing Si Tech Information Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Beijing Si Tech Information Technology Co Ltd filed Critical Beijing Si Tech Information Technology Co Ltd
Priority to CN202110801617.3A priority Critical patent/CN113676452B/zh
Publication of CN113676452A publication Critical patent/CN113676452A/zh
Application granted granted Critical
Publication of CN113676452B publication Critical patent/CN113676452B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/1441Countermeasures against malicious traffic
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/0807Network architectures or network communication protocols for network security for authentication of entities using tickets, e.g. Kerberos
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/083Network architectures or network communication protocols for network security for authentication of entities using passwords
    • H04L63/0838Network architectures or network communication protocols for network security for authentication of entities using passwords using one-time-passwords

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer And Data Communications (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明公开了一种基于一次性密钥的重放攻击抵御方法及系统,应用于数据安全领域,方法包括:客户端初始化生成唯一终端标识,向服务端发送注册认证请求,得到初始化参数;客户端计算得到客户端Token信息,向服务端发送认证请求,服务端计算得到服务端Token信息,通过Token信息比较进行认证;客户端计算业务请求的Token信息,服务端进行二次计算得到NewToken信息,并与所存储Token信息进行对比判断业务请求是否合法。通过本发明的技术方案,降低了接入成本,减少了版本信息下发的繁琐过程,只需一次认证,提高了信息的不可猜测性,保证了网关的最小计算量。

Description

基于一次性密钥的重放攻击抵御方法及系统
技术领域
本发明涉及数据安全技术领域,尤其涉及一种基于一次性密钥的重放攻击抵御方法以及一种基于一次性密钥的重放攻击抵御系统。
背景技术
目前,信息技术的发展已经能够很好的保证通信、存储信息的安全,但是依然存在一些威胁信息系统安全的攻击,如篡改攻击、替换攻击、假冒攻击及重放攻击。其中,重放攻击又是危害较为严重的一种,如攻击者窃取了历史年份的充值报文信息,重新发送给账务相关系统完成相关充值,导致系统账务信息出现混乱,给账务核查和企业信誉带来较大损害。
重放攻击(Replay Attacks)又称重播攻击、回放攻击、新鲜因子攻击,是指攻击者发送一个目的主机已接收过的包,来达到欺骗系统的目的,主要用于身份认证过程,破坏认证的正确性。重放攻击按照攻击对象区分,可以分为:
·直接重放(消息原封不动的转发给预定的接受者)
·反射重放(消息被回发给消息发送者)
·转移重放(消息发送给第三方)
无论是哪种攻击方式,本质都是对通信过程的信息的新鲜性的攻击。通讯协议缺乏新鲜性检查机制是导致被重放的主要原因。按照上述分析,重放攻击的主要手段是在协议中增加新鲜的因子,并对请求的新鲜程度进行检查,确保请求的有效合理。结合此次分析,重放攻击的主要防范手段如下:
·增加客户端时间戳校验,通过时间戳的检查,保证请求在合理时间段内
·通过客户端的不同的随机数、序列号、版本号,进行请求差异分析
·通过报文特征信息分析、存储,完成重放攻击校验
除此之外,专利CN201610835562.7提出了“一种防重放攻击的方法及分布式系统”设计思路,专利中倡导通过网关服务、网关服务器之后的工作服务器配合完成重放攻击的抵御。基本过程是客户端向服务器端发起认证请求、选择工作服务器集群主机之一的服务器下发验证码、客户端获取到验证码之后发起正式请求,之后网关和工作服务器完成验证码校验,从而实现防范重放攻击。
而在企业的重放攻击的相关过滤/拦截处理中,最适合完成相关工作的是各类接入网关、安全网关产品,而上述网关产品有其自身的核心业务支撑要求,需要在防御重放攻击过程中尽可能保证网关的可靠性、可用性,并降低因为防御重放攻击来带的资源消耗,以保证其自身的核心业务服务质量。
在上述技术方案中,能够在某些背景下解决重放攻击的问题,但同时也存在响应的不足:
1.通过以“时间戳”作为新鲜因子,会存在因为客户端与服务端时钟差异,导致请求被误判为重放攻击的情况发生。
2.通过客户端的随机数、序列号、版本号,进行请求差异分析,会存在一个问题,客户端与服务端之间每次请求前需要完成一次认证交付,获取相关的验证码,增加了交互的频次。而且这种方式会存在对于客户端设计实现要求过高,实用性过低的问题。其中专利CN201610835562.7所描述的验证码就属于随机数的一种变化,同样存在交互频次增多、系统效率降低的问题。
3.通过报文特征信息分析、存储,这种方式存在的弊端主要是需要大量的存储空间,去保留历史请求的宝文特征信息,造成落地成本较高。
发明内容
针对上述问题,本发明提供了一种基于一次性密钥的重放攻击抵御方法及系统,通过客户端的注册过程,通过唯一终端标识的方式进行自我标示,降低接入成本,同时减少版本信息下发的繁琐过程,通过客户端与服务端相互认证的过程,完成参数信息同步,且通过一次认证,即可保证在此后过程中不需要进行参数同步,通过摘要次数的变化来校验重放攻击,从而提高了信息的不可猜测性,同时将主要的加密计算过程由客户端完成,服务端每次请求只需要进行递减步伐次数的运算即可完成重放攻击校验,保证了网关的最小计算量,保证了网关核心业务的稳定性。
为实现上述目的,本发明提供了一种基于一次性密钥的重放攻击抵御方法,包括:
客户端初始化生成唯一终端标识,并根据所述唯一终端标识向服务端发送注册认证请求,得到所述服务端返回的种子信息和初始化计算次数;
所述客户端根据所述唯一终端标识、所述种子信息和所述初始化计算次数,计算得到客户端Token信息,同时对所述初始化计算次数进行递减操作;
所述客户端将所述唯一终端标识和所述客户端Token信息发送至所述服务端,所述服务端依据所述种子信息和所述初始化计算次数计算得到服务端Token信息,将所述客户端Token信息与所述服务端Token信息进行比较,若一致,则认证成功,否则认证失败;
所述客户端在向所述服务端发送业务请求前,以递减后的计算次数计算当前业务请求的Token信息,同时再次进行计算次数的递减操作;
所述服务端接收到所述业务请求后,按照递减步伐对当前业务请求的Token信息进行二次计算得到NewToken信息;
对比所述NewToken信息与所述服务端Token信息是否一致,若一致,则当前业务请求合法,否则为非法请求。
在上述技术方案中,优选地,基于一次性密钥的重放攻击抵御方法还包括:
所述客户端在所述初始化计算次数递减至只足以进行一次递减时,以当前计算次数计算当前业务请求的Token信息,以当前种子信息与所述递减步伐的和值、所述唯一终端标识和当前最新时间戳,计算得到AuthticateToken信息;
在以最后一次计算次数进行业务请求时,将当前业务请求的Token信息、所述AuthticateToken信息和当前最新时间戳发送至所述服务端;
所述服务端在判定当前业务请求合法后,以所存储的种子信息与所述递减步伐的和值、所述唯一终端标识和当前最新时间戳计算得到AuthticateToken_server信息;
若所述AuthticateToken信息和所述AuthticateToken_server信息一致,则二次认证通过,重置所述初始化运算次数;
将服务端中上一次业务请求的Token信息更新为所述AuthticateToken信息。
在上述技术方案中,优选地,所述客户端根据所述唯一终端标识、所述种子信息和所述初始化计算次数,计算得到客户端Token信息的具体过程包括:
客户端Token=Func(UUID,当前时间戳,seed)
=Hash(UUID+当前时间戳+seed)N
其中,UUID为所述唯一终端标识,seed为所述种子信息,N为所述初始化计算次数,Hash()为不可逆的摘要算法函数。
在上述技术方案中,优选地,所述服务端依据所述种子信息和所述初始化计算次数计算得到服务端Token信息的具体过程包括:
服务端Token=Hash(UUID,时间戳,seed)N
其中,该时间戳为所述客户端向所述服务端发送注册认证请求时对应的时间戳,seed为注册过程中所述服务端向所述客户端返回的种子信息;
所述服务端对所述客户端认证成功后,所述服务端存储所述服务端Token信息为初始Token,并执行所述初始化计算次数的递减操作N-=递减步伐。
在上述技术方案中,优选地,所述客户端在向所述服务端发送业务请求前,以递减后的计算次数计算当前业务请求的Token信息,同时再次进行计算次数的递减操作,具体过程包括:
在所述客户端需要发送业务请求时,以注册认证过程中执行递减操作后的计算次数,计算得到当前业务请求的Token信息,计算过程为:
Token=Hash(UUID+当前时间戳+seed)N
其中,N为注册认证过程中执行递减操作后的计算次数;
计算完成后,再次对当前计算次数执行递减操作N-=递减步伐。
在上述技术方案中,优选地,所述服务端接收到所述业务请求后,按照递减步伐对当前业务请求的Token信息进行二次计算得到NewToken信息的具体过程包括:
所述服务端根据接收到的业务请求,解析得到当前业务请求的Token信息和所述唯一终端标识;
所述服务端对当前业务请求的Token信息进行二次计算得到NewToken,计算过程为:
NewToken=Hash(Token)递减步伐
其中,针对客户端接收到当前业务请求的Token信息执行Hash()运算的次数为递减操作的递减步伐。
本发明还提出一种基于一次性密钥的重放攻击抵御系统,应用如上述技术方案中任一项提出的基于一次性密钥的重放攻击抵御方法,客户端包括客户端初始化模块、客户端Token计算模块和请求模块,服务端包括注册认证模块和攻击校验模块;
所述客户端初始化模块用于初始化生成唯一终端标识,所述请求模块用于根据所述唯一终端标识向所述注册认证模块发送注册认证请求,并接收所述注册认证模块返回的种子信息和初始化计算次数;
所述客户端Token计算模块用于根据所述唯一终端标识、所述种子信息和所述初始化计算次数,计算得到客户端Token信息,同时对所述初始化计算次数进行递减操作;
所述请求模块用于将所述唯一终端标识和所述客户端Token信息发送至所述服务端,所述注册认证模块用于依据所述种子信息和所述初始化计算次数计算得到服务端Token信息,将所述客户端Token信息与所述服务端Token信息进行比较,若一致,则认证成功,否则认证失败;
在所述客户端的请求模块向所述服务端发送业务请求前,所述客户端Token计算模块用于以递减后的计算次数计算当前业务请求的Token信息,同时再次进行计算次数的递减操作;
在所述服务端接收到所述业务请求后,所述攻击校验模块用于按照递减步伐对当前业务请求的Token信息进行二次计算得到NewToken信息;
所述攻击校验模块还用于对比所述NewToken信息与所述服务端Token信息是否一致,若一致,则当前业务请求合法,否则为非法请求。
在上述技术方案中,优选地,所述服务端还包括服务端参数更新模块;
在所述初始化计算次数递减至只足以进行一次递减时,所述客户端Token计算模块用于以当前计算次数计算当前业务请求的Token信息,以当前种子信息与所述递减步伐的和值、所述唯一终端标识和当前最新时间戳,计算得到AuthticateToken信息;
在所述请求模块以最后一次计算次数进行业务请求时,将当前业务请求的Token信息、所述AuthticateToken信息和当前最新时间戳发送至所述服务端;
在所述攻击校验模块判定当前业务请求合法后,所述服务端参数更新模块用于以所存储的种子信息与所述递减步伐的和值、所述唯一终端标识和当前最新时间戳计算得到AuthticateToken_server信息;
还用于将所述AuthticateToken信息和所述AuthticateToken_server信息进行对比,若一致,则二次认证通过,重置所述初始化运算次数,并将服务端中上一次业务请求的Token信息更新为所述AuthticateToken信息。
在上述技术方案中,优选地,所述客户端Token计算模块在注册认证过程中,计算得到客户端Token信息的具体方法为:
客户端Token=Func(UUID,当前时间戳,seed)
=Hash(UUID+当前时间戳+seed)N
其中,UUID为所述唯一终端标识,seed为所述种子信息,N为所述初始化计算次数,Hash()为不可逆的摘要算法函数;
在业务请求过程中,计算当前业务请求的Token信息的具体方法为:
Token=Hash(UUID+当前时间戳+seed)N
其中,N为执行递减操作后的计算次数。
在上述技术方案中,优选地,所述攻击校验模块按照递减步伐对当前业务请求的Token信息进行二次计算得到NewToken信息的具体过程为:
NewToken=Hash(Token)递减步伐
其中,针对客户端接收到当前业务请求的Token信息执行Hash()运算的次数为递减操作的递减步伐。
与现有技术相比,本发明的有益效果为:通过客户端的注册过程,通过唯一终端标识的方式进行自我标示,降低接入成本,同时减少版本信息下发的繁琐过程,通过客户端与服务端相互认证的过程,完成参数信息同步,且通过一次认证,即可保证在此后过程中不需要进行参数同步,通过摘要次数的变化来校验重放攻击,从而提高了信息的不可猜测性,同时将主要的加密计算过程由客户端完成,服务端每次请求只需要进行递减步伐次数的运算即可完成重放攻击校验,保证了网关的最小计算量,保证了网关核心业务的稳定性。
附图说明
图1为本发明一种实施例公开的基于一次性密钥的重放攻击抵御方法的流程示意图;
图2为本发明一种实施例公开的客户端与服务端相互认证的流程示意图;
图3为本发明一种实施例公开的业务请求中校验重放攻击的流程示意图;
图4为本发明一种实施例公开的基于一次性密钥的重放攻击抵御系统的模块示意图;
图5为本发明一种实施例公开的基于一次性密钥的重放攻击抵御系统的应用架构示意图。
图中,各组件与附图标记之间的对应关系为:
11.客户端初始化模块,12.客户端Token计算模块,13.请求模块,21.注册认证模块,22.攻击校验模块,23.服务端参数更新模块。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明的一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
下面结合附图对本发明做进一步的详细描述:
如图1和图2所示,根据本发明提供的一种基于一次性密钥的重放攻击抵御方法,包括:
客户端初始化生成唯一终端标识,并根据唯一终端标识向服务端发送注册认证请求,得到服务端返回的种子信息和初始化计算次数;
客户端根据唯一终端标识、种子信息和初始化计算次数,计算得到客户端Token信息,同时对初始化计算次数进行递减操作;
客户端将唯一终端标识和客户端Token信息发送至服务端,服务端依据种子信息和初始化计算次数计算得到服务端Token信息,将客户端Token信息与服务端Token信息进行比较,若一致,则认证成功,否则认证失败;
客户端在向服务端发送业务请求前,以递减后的计算次数计算当前业务请求的Token信息,同时再次进行计算次数的递减操作;
服务端接收到业务请求后,按照递减步伐对当前业务请求的Token信息进行二次计算得到NewToken信息;
对比NewToken信息与服务端Token信息是否一致,若一致,则当前业务请求合法,否则为非法请求。
在该实施例中,通过客户端的注册过程,通过唯一终端标识的方式进行自我标示,降低接入成本,同时减少版本信息下发的繁琐过程,通过客户端与服务端相互认证的过程,完成参数信息同步,且通过一次认证,即可保证在此后过程中不需要进行参数同步,通过摘要次数的变化来校验重放攻击,从而提高了信息的不可猜测性,同时将主要的加密计算过程由客户端完成,服务端每次请求只需要进行递减步伐次数的运算即可完成重放攻击校验,保证了网关的最小计算量,保证了网关核心业务的稳定性。
具体地,在该重放攻击抵御方法中,分为三个阶段:初始化准备阶段、使用阶段和更新阶段。
其中,初始化准备阶段包括:
1.客户端初始化;
2.认证参数初始化;
3.信息校验。
使用阶段(发挥抵御重放攻击阶段):
认证及初始化成功之后,后续使用阶段步骤包括两部分:
客户端的token计算以及服务端校验。
更新参数阶段(使用一次性密钥的N次Hash,所以需要对N进行重置):
认证并更新Seed,为新的抵御重放攻击做准备。
由于抵御重放攻击的请求可能来自于WEB请求、第三方应用的服务端请求,现以WEB端请求为例,描述说明上述基于一次性密钥的重放攻击抵御方法的整个交互过程。
1.WEB初始化过程。由于WEB终端环境和应用程序版本差异较大,为了简化WEB端应用接入过程,WEB端的应用在系统初始化(eg:首页加载过程中),生成自定义的唯一终端标识。此处的唯一终端标识可以约定的随机方式,通过JS生成的UUID,也可以使用终端名称、MAC地址、IP地址等信息。
入口页面在生成当前终端的唯一标识后(如果一个终端打开多个浏览器,可能会生成多个唯一终端标识),存储在浏览器的LocalStorage或者Cookie中,用于后续认证、请求使用
UUID生成示意代码(不限于此)如下:
Figure BDA0003164796880000091
2.认证及参数初始化过程(重放攻击认证模块主要职责)。
认证的第一步:同步参数信息
生成终端唯一标识之后,通过网关提供的认证接口完成认证请求。具体的出入参数如下:
Figure BDA0003164796880000092
认证过程中,服务端进行时间戳的合理范围进行判断,如果时间段范围合理,则记录如下信息:客户端唯一标识UUID、当前时间戳、下发的种子信息、初始化运算次数,并持久化到数据库中。
认证的第二步:初始化Token信息,并执行针对初始化运算次数执行递减操作
在该过程中,客户端根据唯一终端标识、种子信息和初始化计算次数,计算得到客户端Token信息的具体过程包括:
客户端Token=Func(UUID,当前时间戳,seed)
=Hash(UUID+当前时间戳+seed)N
其中,UUID为唯一终端标识,seed为种子信息,N为初始化过程中服务端下发至客户端进行初始化计算次数Hash计算的次数,Hash()为不可逆的摘要算法函数,如Md5、Md3、Sha1等。同时,对N进行递减操作,其中,采用的递减步伐为1,则,递减规则如下:
N-=1
对于生成的UUID、种子信息Seed、剩余计算次数N进行客户端存储,如Localstorage、Cookie中。
认证的第三步:信息校验
客户端发送UUID、Token信息到服务端,服务端使用之前注册的信息,从存储的注册信息中,计算服务端对应的Token,并比较客户端Token与计算结果,如果一致则认证结束,否则认证失败,需要重新进行注册。其中,服务端依据种子信息和初始化计算次数计算得到服务端Token信息的具体过程包括:
服务端Token=Hash(UUID,时间戳,seed)N
其中,该时间戳为客户端向服务端发送注册认证请求时对应的时间戳,seed为注册过程中服务端向客户端返回的种子信息;
服务端对客户端认证成功后,服务端存储服务端Token信息为初始Token,并执行初始化计算次数的递减操作N-=递减步伐(即剩余次数的递减)。此时服务端记录的信息如下:
Figure BDA0003164796880000101
上述信息考虑效率的差异需求,可能直接持久化在数据中,也可以存储在缓存中。其中Key为UUID,Value为序列化的Object对象。
在上述实施例中,WEB终端请求使用过程分为两部分,客户端请求过程和服务端计算过程。
其中,客户端在向服务端发送业务请求前,以注册认证过程中执行递减操作后的计算次数,计算当前业务请求的Token信息,同时再次进行计算次数的递减操作,具体过程包括:
Token=Hash(UUID+当前时间戳+seed)N
其中,N为注册认证过程中执行递减操作后的计算次数;
计算完成后,再次对当前计算次数执行递减操作N-=递减步伐。
然后,将相关结果设置到请求的Http Header、或者设置Cookie中,例如:
Http_AntiReplay=Token
UUID=UUID
其中,服务端接收到业务请求后,按照递减步伐对当前业务请求的Token信息进行二次计算得到NewToken信息的具体过程包括:
服务端根据接收到的业务请求报文中的Header或者Cookie信息,解析Token、UUID。如果解析到相关信息,则进入下一步,否则直接返回Http 4XX错误。
对客户端传递的当前业务请求的Token进行二次计算,计算过程如下:
NewToken=Hash(Token)递减步伐
对比NewToken与服务端存储的对应UUID记录的“上一次请求Token值”,如果一致,则认为请求合法,否则请求为非法请求。
如果请求合法,则正常进行后续服务治理处理,同时完成服务端的“剩余次数”的递减处理,并等待下次请求。
在上述实施例中,优选地,基于一次性密钥的重放攻击抵御方法还包括参数更新过程。之所以需要WEB终端更新过程,主要原因是计算次数会逐步递减,直至递减到小于或等于递减步伐时,下次请求会出现无法计算Token值的现象。因此当客户端N值递减到只足以进行一次递减时,需要客户端随此轮最后一次请求,完成二次认证。
客户端在初始化计算次数递减至只足以进行一次递减时,以当前计算次数计算当前业务请求的Token信息,以当前种子信息与递减步伐的和值、唯一终端标识和当前最新时间戳,计算得到AuthticateToken信息;具体过程为:
Token=Hash(UUID+当前时间戳+seed)1
AuthticateToken=Hash(UUID+当前时间戳(new)+newseed)N
其中“当前时间戳(new)”取当前最新时间戳、“newseed”为当前seed递增,计算过程为:
Newseed=seed+递减步伐
在以最后一次计算次数进行业务请求时,将当前业务请求的Token信息、AuthticateToken信息和当前最新时间戳同时发送至服务端,其中,
Token信息用于最后一次请求的重放攻击的校验,AuthticateToken信息用于服务端对比相关信息,当前时间戳(new)用于服务端对比AuthticateToken的合法性。
服务端在判定当前业务请求合法后,以所存储的种子信息与递减步伐的和值、唯一终端标识和当前最新时间戳计算得到AuthticateToken_server信息,计算过程为:
AuthticateToken_server=Hash(UUID+当前时间戳(new)+seed_server)N
其中seed_server是服务端存储的Seed通过递增计算得到,即:服务端存储seed+递减步伐
最后,服务端完成AuthticateToken_server信息和AuthticateToken信息的对比,若AuthticateToken信息和AuthticateToken_server信息一致,则二次认证通过,重置初始化运算次数;
将服务端中上一次业务请求的Token信息更新为AuthticateToken信息,用于下次请求对比。
在上述实施例中,以WEB端页面为例对该方法进行了具体说明,如果是第三方应用,则UUID、Seed的下发可以与WEB雷同,也可以按需由管理员提前在网关(服务端进行维护),然后线下维护和配置到第三方应用的服务端中。
在该方法中,通过一次性口令/令牌的方式,完成了通信过程中请求的新鲜性的保证,实现了抵御重放攻击的目标。具体效果如下:
1.同时结合递减的Hash或非对称加密完成了信息的不可猜测性完善,提高了系统安全性
2.通过同时提供浏览器、应用服务端两种接入方式,提高了网关在重放攻击抵御场景的实用性
3.通过递减的Hash或非对称加密方式,减少了为保持客户端、网关之间信息同步的交互频次,同时也降低了客户端、网关所需要持久化的数据量,提高了在重放攻击背景下整体系统的交互效率、降低了通信损耗,更适于落地与交易密集型系统中。
本发明还提出一种基于一次性密钥的重放攻击抵御系统,应用如上述实施例中任一项提出的基于一次性密钥的重放攻击抵御方法,客户端包括客户端初始化模块11、客户端Token计算模块12和请求模块13,服务端包括注册认证模块21和攻击校验模块22;
客户端初始化模块11用于初始化生成唯一终端标识,请求模块13用于根据唯一终端标识向注册认证模块21发送注册认证请求,并接收注册认证模块21返回的种子信息和初始化计算次数;
客户端Token计算模块12用于根据唯一终端标识、种子信息和初始化计算次数,计算得到客户端Token信息,同时对初始化计算次数进行递减操作;
请求模块13用于将唯一终端标识和客户端Token信息发送至服务端,注册认证模块21用于依据种子信息和初始化计算次数计算得到服务端Token信息,将客户端Token信息与服务端Token信息进行比较,若一致,则认证成功,否则认证失败;
在客户端的请求模块13向服务端发送业务请求前,客户端Token计算模块12用于以递减后的计算次数计算当前业务请求的Token信息,同时再次进行计算次数的递减操作;
在服务端接收到业务请求后,攻击校验模块22用于按照递减步伐对当前业务请求的Token信息进行二次计算得到NewToken信息;
攻击校验模块22还用于对比NewToken信息与服务端Token信息是否一致,若一致,则当前业务请求合法,否则为非法请求。
在上述实施例中,优选地,服务端还包括服务端参数更新模块23;
在初始化计算次数递减至只足以进行一次递减时,客户端Token计算模块12用于以当前计算次数计算当前业务请求的Token信息,以当前种子信息与递减步伐的和值、唯一终端标识和当前最新时间戳,计算得到AuthticateToken信息;
在请求模块13以最后一次计算次数进行业务请求时,将当前业务请求的Token信息、AuthticateToken信息和当前最新时间戳发送至服务端;
在攻击校验模块22判定当前业务请求合法后,服务端参数更新模块23用于以所存储的种子信息与递减步伐的和值、唯一终端标识和当前最新时间戳计算得到AuthticateToken_server信息;
还用于将AuthticateToken信息和AuthticateToken_server信息进行对比,若一致,则二次认证通过,重置初始化运算次数,并将服务端中上一次业务请求的Token信息更新为AuthticateToken信息。
在上述实施例中,优选地,客户端Token计算模块12在注册认证过程中,计算得到客户端Token信息的具体方法为:
客户端Token=Func(UUID,当前时间戳,seed)
=Hash(UUID+当前时间戳+seed)N
其中,UUID为唯一终端标识,seed为种子信息,N为初始化计算次数,Hash()为不可逆的摘要算法函数;
在业务请求过程中,计算当前业务请求的Token信息的具体方法为:
Token=Hash(UUID+当前时间戳+seed)N
其中,N为执行递减操作后的计算次数。
在上述实施例中,优选地,攻击校验模块22按照递减步伐对当前业务请求的Token信息进行二次计算得到NewToken信息的具体过程为:
NewToken=Hash(Token)递减步伐
其中,针对客户端接收到当前业务请求的Token信息执行Hash()运算的次数为递减操作的递减步伐。
在该系统中,各模块功能的实现,与上述实施例中的重放攻击抵御方法中的各步骤相对应,在此不再赘述。
以上仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (10)

1.一种基于一次性密钥的重放攻击抵御方法,其特征在于,包括:
客户端初始化生成唯一终端标识,并根据所述唯一终端标识向服务端发送注册认证请求,得到所述服务端返回的种子信息和初始化计算次数;
所述客户端根据所述唯一终端标识、所述种子信息和所述初始化计算次数,计算得到客户端Token信息,同时对所述初始化计算次数进行递减操作;
所述客户端将所述唯一终端标识和所述客户端Token信息发送至所述服务端,所述服务端依据所述种子信息和所述初始化计算次数计算得到服务端Token信息,将所述客户端Token信息与所述服务端Token信息进行比较,若一致,则认证成功,否则认证失败;
所述客户端在向所述服务端发送业务请求前,以递减后的计算次数计算当前业务请求的Token信息,同时再次进行计算次数的递减操作;
所述服务端接收到所述业务请求后,按照递减步伐对当前业务请求的Token信息进行二次计算得到NewToken信息;
对比所述NewToken信息与所述服务端Token信息是否一致,若一致,则当前业务请求合法,否则为非法请求。
2.根据权利要求1所述的基于一次性密钥的重放攻击抵御方法,其特征在于,还包括:
所述客户端在所述初始化计算次数递减至只足以进行一次递减时,以当前计算次数计算当前业务请求的Token信息,以当前种子信息与所述递减步伐的和值、所述唯一终端标识和当前最新时间戳,计算得到AuthticateToken信息;
在以最后一次计算次数进行业务请求时,将当前业务请求的Token信息、所述AuthticateToken信息和当前最新时间戳发送至所述服务端;
所述服务端在判定当前业务请求合法后,以所存储的种子信息与所述递减步伐的和值、所述唯一终端标识和当前最新时间戳计算得到AuthticateToken_server信息;
若所述AuthticateToken信息和所述AuthticateToken_server信息一致,则二次认证通过,重置所述初始化运算次数;
将服务端中上一次业务请求的Token信息更新为所述AuthticateToken信息。
3.根据权利要求1所述的基于一次性密钥的重放攻击抵御方法,其特征在于,所述客户端根据所述唯一终端标识、所述种子信息和所述初始化计算次数,计算得到客户端Token信息的具体过程包括:
客户端Token=Func(UUID,当前时间戳,seed)
=Hash(UUID+当前时间戳+seed)N
其中,UUID为所述唯一终端标识,seed为所述种子信息,N为所述初始化计算次数,Hash()为不可逆的摘要算法函数。
4.根据权利要求1所述的基于一次性密钥的重放攻击抵御方法,其特征在于,所述服务端依据所述种子信息和所述初始化计算次数计算得到服务端Token信息的具体过程包括:
服务端Token=Hash(UUID,时间戳,seed)N
其中,该时间戳为所述客户端向所述服务端发送注册认证请求时对应的时间戳,seed为注册过程中所述服务端向所述客户端返回的种子信息;
所述服务端对所述客户端认证成功后,所述服务端存储所述服务端Token信息为初始Token,并执行所述初始化计算次数的递减操作N-=递减步伐。
5.根据权利要求1所述的基于一次性密钥的重放攻击抵御方法,其特征在于,所述客户端在向所述服务端发送业务请求前,以递减后的计算次数计算当前业务请求的Token信息,同时再次进行计算次数的递减操作,具体过程包括:
在所述客户端需要发送业务请求时,以注册认证过程中执行递减操作后的计算次数,计算得到当前业务请求的Token信息,计算过程为:
Token=Hash(UUID+当前时间戳+seed)N
其中,N为注册认证过程中执行递减操作后的计算次数;
计算完成后,再次对当前计算次数执行递减操作N-=递减步伐。
6.根据权利要求1所述的基于一次性密钥的重放攻击抵御方法,其特征在于,所述服务端接收到所述业务请求后,按照递减步伐对当前业务请求的Token信息进行二次计算得到NewToken信息的具体过程包括:
所述服务端根据接收到的业务请求,解析得到当前业务请求的Token信息和所述唯一终端标识;
所述服务端对当前业务请求的Token信息进行二次计算得到NewToken,计算过程为:
NewToken=Hash(Token)递减步伐
其中,针对客户端接收到当前业务请求的Token信息执行Hash()运算的次数为递减操作的递减步伐。
7.一种基于一次性密钥的重放攻击抵御系统,应用如权利要求1至6中任一项所述的基于一次性密钥的重放攻击抵御方法,其特征在于,客户端包括客户端初始化模块、客户端Token计算模块和请求模块,服务端包括注册认证模块和攻击校验模块;
所述客户端初始化模块用于初始化生成唯一终端标识,所述请求模块用于根据所述唯一终端标识向所述注册认证模块发送注册认证请求,并接收所述注册认证模块返回的种子信息和初始化计算次数;
所述客户端Token计算模块用于根据所述唯一终端标识、所述种子信息和所述初始化计算次数,计算得到客户端Token信息,同时对所述初始化计算次数进行递减操作;
所述请求模块用于将所述唯一终端标识和所述客户端Token信息发送至所述服务端,所述注册认证模块用于依据所述种子信息和所述初始化计算次数计算得到服务端Token信息,将所述客户端Token信息与所述服务端Token信息进行比较,若一致,则认证成功,否则认证失败;
在所述客户端的请求模块向所述服务端发送业务请求前,所述客户端Token计算模块用于以递减后的计算次数计算当前业务请求的Token信息,同时再次进行计算次数的递减操作;
在所述服务端接收到所述业务请求后,所述攻击校验模块用于按照递减步伐对当前业务请求的Token信息进行二次计算得到NewToken信息;
所述攻击校验模块还用于对比所述NewToken信息与所述服务端Token信息是否一致,若一致,则当前业务请求合法,否则为非法请求。
8.根据权利要求7所述的基于一次性密钥的重放攻击抵御系统,其特征在于,所述服务端还包括服务端参数更新模块;
在所述初始化计算次数递减至只足以进行一次递减时,所述客户端Token计算模块用于以当前计算次数计算当前业务请求的Token信息,以当前种子信息与所述递减步伐的和值、所述唯一终端标识和当前最新时间戳,计算得到AuthticateToken信息;
在所述请求模块以最后一次计算次数进行业务请求时,将当前业务请求的Token信息、所述AuthticateToken信息和当前最新时间戳发送至所述服务端;
在所述攻击校验模块判定当前业务请求合法后,所述服务端参数更新模块用于以所存储的种子信息与所述递减步伐的和值、所述唯一终端标识和当前最新时间戳计算得到AuthticateToken_server信息;
还用于将所述AuthticateToken信息和所述AuthticateToken_server信息进行对比,若一致,则二次认证通过,重置所述初始化运算次数,并将服务端中上一次业务请求的Token信息更新为所述AuthticateToken信息。
9.根据权利要求7所述的基于一次性密钥的重放攻击抵御系统,其特征在于,所述客户端Token计算模块在注册认证过程中,计算得到客户端Token信息的具体方法为:
客户端Token=Func(UUID,当前时间戳,seed)
=Hash(UUID+当前时间戳+seed)N
其中,UUID为所述唯一终端标识,seed为所述种子信息,N为所述初始化计算次数,Hash()为不可逆的摘要算法函数;
在业务请求过程中,计算当前业务请求的Token信息的具体方法为:
Token=Hash(UUID+当前时间戳+seed)N
其中,N为执行递减操作后的计算次数。
10.根据权利要求7所述的基于一次性密钥的重放攻击抵御系统,其特征在于,所述攻击校验模块按照递减步伐对当前业务请求的Token信息进行二次计算得到NewToken信息的具体过程为:
NewToken=Hash(Token)递减步伐
其中,针对客户端接收到当前业务请求的Token信息执行Hash()运算的次数为递减操作的递减步伐。
CN202110801617.3A 2021-07-15 2021-07-15 基于一次性密钥的重放攻击抵御方法及系统 Active CN113676452B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110801617.3A CN113676452B (zh) 2021-07-15 2021-07-15 基于一次性密钥的重放攻击抵御方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110801617.3A CN113676452B (zh) 2021-07-15 2021-07-15 基于一次性密钥的重放攻击抵御方法及系统

Publications (2)

Publication Number Publication Date
CN113676452A true CN113676452A (zh) 2021-11-19
CN113676452B CN113676452B (zh) 2024-01-09

Family

ID=78539186

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110801617.3A Active CN113676452B (zh) 2021-07-15 2021-07-15 基于一次性密钥的重放攻击抵御方法及系统

Country Status (1)

Country Link
CN (1) CN113676452B (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114584328A (zh) * 2022-05-09 2022-06-03 武汉四通信息服务有限公司 Api接口的访问方法、计算机设备及计算机存储介质
CN116418503A (zh) * 2023-04-27 2023-07-11 广东保伦电子股份有限公司 一种音频版权保护方法、系统及介质
WO2023236925A1 (zh) * 2022-06-08 2023-12-14 华为技术有限公司 一种认证方法和通信装置

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101197667A (zh) * 2007-12-26 2008-06-11 北京飞天诚信科技有限公司 一种动态口令认证的方法
CN102843236A (zh) * 2012-09-12 2012-12-26 飞天诚信科技股份有限公司 一种动态口令的生成及认证方法与系统
US20130047247A1 (en) * 2011-08-19 2013-02-21 Canon Kabushiki Kaisha Access management system, access management method, access management server, cooperation server, and computer-readable medium
WO2014060265A1 (de) * 2012-10-17 2014-04-24 Bundesdruckerei Gmbh Verfahren zur authentifizierung mit einem token
CN107534655A (zh) * 2015-05-11 2018-01-02 华为技术有限公司 控制器生成的网际控制报文协议回声请求的防火墙认证
CN110866754A (zh) * 2019-11-01 2020-03-06 北京印刷学院 一种基于动态口令的纯软件dpva身份认证方法

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101197667A (zh) * 2007-12-26 2008-06-11 北京飞天诚信科技有限公司 一种动态口令认证的方法
US20130047247A1 (en) * 2011-08-19 2013-02-21 Canon Kabushiki Kaisha Access management system, access management method, access management server, cooperation server, and computer-readable medium
CN102843236A (zh) * 2012-09-12 2012-12-26 飞天诚信科技股份有限公司 一种动态口令的生成及认证方法与系统
WO2014060265A1 (de) * 2012-10-17 2014-04-24 Bundesdruckerei Gmbh Verfahren zur authentifizierung mit einem token
CN107534655A (zh) * 2015-05-11 2018-01-02 华为技术有限公司 控制器生成的网际控制报文协议回声请求的防火墙认证
CN110866754A (zh) * 2019-11-01 2020-03-06 北京印刷学院 一种基于动态口令的纯软件dpva身份认证方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
张瀚文;张玉军;田野;肖文曙;李忠诚;: "移动IPv6网络层次化接入认证方法", 计算机研究与发展, no. 01 *

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114584328A (zh) * 2022-05-09 2022-06-03 武汉四通信息服务有限公司 Api接口的访问方法、计算机设备及计算机存储介质
CN114584328B (zh) * 2022-05-09 2022-08-02 武汉四通信息服务有限公司 Api接口的访问方法、计算机设备及计算机存储介质
WO2023236925A1 (zh) * 2022-06-08 2023-12-14 华为技术有限公司 一种认证方法和通信装置
CN116418503A (zh) * 2023-04-27 2023-07-11 广东保伦电子股份有限公司 一种音频版权保护方法、系统及介质
CN116418503B (zh) * 2023-04-27 2024-07-02 广东保伦电子股份有限公司 一种音频版权保护方法、系统及介质

Also Published As

Publication number Publication date
CN113676452B (zh) 2024-01-09

Similar Documents

Publication Publication Date Title
US7698736B2 (en) Secure delegation using public key authentication
US8478998B2 (en) Authenticated communication using a shared unpredictable secret
CN111294352B (zh) 云端与边缘节点之间的数据安全认证方法
CN113676452A (zh) 基于一次性密钥的重放攻击抵御方法及系统
CN109522726A (zh) 小程序的鉴权方法、服务器及计算机可读存储介质
CN101699820B (zh) 动态口令的认证方法和装置
CN100512201C (zh) 用于处理分组业务的接入-请求消息的方法
CN109714370B (zh) 一种基于http协议端云安全通信的实现方法
US11171964B1 (en) Authentication using device and user identity
EP3796613B1 (en) Techniques for repeat authentication
CN112968910B (zh) 一种防重放攻击方法和装置
CN111371725A (zh) 一种提升会话机制安全性的方法、终端设备和存储介质
KR102372503B1 (ko) 탈중앙화 아이디 앱을 이용하여 인증 서비스를 제공하는 방법 및 이를 이용한 탈중앙화 아이디 인증 서버
CN112600831B (zh) 一种网络客户端身份认证系统和方法
US8875244B1 (en) Method and apparatus for authenticating a user using dynamic client-side storage values
WO2022042198A1 (zh) 身份验证方法、装置、计算机设备和存储介质
JP5186648B2 (ja) 安全なオンライン取引を容易にするシステム及び方法
WO2021142338A1 (en) Systems and methods for provably fair atomic swaps of private digital assets
CN116388998A (zh) 一种基于白名单的审计处理方法和装置
CN110572371B (zh) 基于html5本地存储机制的身份唯一性校验控制方法
EP1307802B1 (en) Method and apparatus for centralized authentication
CN114070573A (zh) 一种网络访问的认证方法、装置与系统
Xi An improved OTP authentication system and its application in mobile commerce
CN117335978A (zh) 一种jwt签名生成方法、装置、设备及可读存储介质
CN116502198A (zh) 一种请求识别方法、装置、计算机设备及可读存储介质

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
GR01 Patent grant
GR01 Patent grant