一种基于动态双重哈希签名的短信接口防刷方法及系统与流程

摘要: 本技术涉及数据处理,特别涉及一种基于动态双重哈希签名的短信接口防刷方法及系统。背景技术:1、随着移动互联网应用的普及,短信服务已成为用户注册、登录验证、密码找回...
一种基于动态双重哈希签名的短信接口防刷方法及系统与流程

本技术涉及数据处理,特别涉及一种基于动态双重哈希签名的短信接口防刷方法及系统。

背景技术:

1、随着移动互联网应用的普及,短信服务已成为用户注册、登录验证、密码找回等场景中的关键身份认证手段。然而,短信接口作为面向客户端开放的公共服务端点,长期面临着被恶意程序高频、自动化调用(即刷量)的安全威胁;攻击者利用“短信轰炸器”等自动化工具对短信接口进行批量请求,不仅造成平台直接的经济损失,还严重占用信道资源并影响正常用户的服务体验。

2、目前,业界针对短信接口的防护手段主要包括以下几种:其一,ip频率限制,即对来自同一ip地址的短信请求在单位时间内的请求次数进行上限控制;其二,图形验证码,即在发送短信前要求用户输入图形验证码以区分人机操作;其三,简单静态token验证,即要求客户端在请求中携带预先分配的静态token进行身份合法性校验。上述现有技术方案在实际应用中存在明显缺陷:ip频率限制易被攻击者通过代理ip池进行绕过;图形验证码影响用户体验,且可能被先进的ocr技术破解;简单静态token缺乏动态性,一旦token被窃取或泄露,整个防护接口将完全暴露,安全性极低。此外,大多数现有方案缺乏对请求时效性的有效校验,导致合法请求被网络拦截后可被恶意重复使用,形成重放攻击,同时各类防护逻辑分散部署,难以形成一套标准化、可复用的高强度安全验证流程。

技术实现思路

1、基于此,本技术实施例提供了一种基于动态双重哈希签名的短信接口防刷方法及系统,能够有效防止高频恶意调用,杜绝了重放攻击且具备标准化验证流程。

2、第一方面,提供了一种基于动态双重哈希签名的短信接口防刷方法,该方法包括:

3、接收客户端发起的http请求,提取所述http请求中的签名参数、客户端标识、过期时间和随机串,分别对所述签名参数进行格式存在性校验、对所述客户端标识进行授权合法性校验、对所述过期时间进行时效性校验,以完成请求参数的初步合法性筛选;

4、对通过初步校验的请求,按照预定义格式将服务端盐值、所述客户端标识、所述过期时间、所述随机串以及服务端动态令牌进行有序拼接,生成预签名字符串,对所述预签名字符串进行双重md5哈希运算并将运算结果截取前n位,得到服务端校验签名,将所述服务端校验签名与所述签名参数进行一致性比对,以完成动态签名的核心验证;

5、根据一致性比对结果执行差异化流程控制;其中,若比对一致则返回成功状态码并触发后续短信发送业务逻辑,若比对不一致或在所述初步校验阶段校验失败则立即中断流程并返回相应错误信息。

6、可选地,对所述签名参数进行格式存在性校验、对所述客户端标识进行授权合法性校验、对所述过期时间进行时效性校验,包括:

7、检查所述签名参数是否存在且其长度严格为12位,若不存在或长度不符则返回签名缺失错误并拒绝请求;

8、验证所述客户端标识是否存在于服务端预置的授权列表中,若不存在则返回客户端标识不合法错误并拒绝请求;

9、检查所述过期时间是否存在且为有效数字,将其转换为长整型时间戳后与服务器当前系统时间进行比对,若所述过期时间小于当前时间则判定请求已过期并立即拒绝。

10、可选地,所述按照预定义格式将服务端盐值、所述客户端标识、所述过期时间、所述随机串以及服务端动态令牌进行有序拼接,包括:

11、采用固定拼接模板,将所述服务端盐值作为前缀、所述服务端动态令牌作为后缀,中间依次嵌入所述客户端标识、所述过期时间和所述随机串,形成包含静态安全因子与动态请求参数的预签名字符串。

12、可选地,对所述预签名字符串进行双重md5哈希运算并将运算结果截取前n位,包括:

13、对所述预签名字符串进行第一次md5哈希运算,生成32位中间哈希值;

14、对所述32位中间哈希值进行第二次md5哈希运算,生成最终校验签名;

15、将所述最终校验签名截取前12位,得到定长服务端校验签名,并与客户端提交的所述签名参数进行严格一致性比对。

16、可选地,根据所述核心验证的比对结果执行差异化流程控制,包括:

17、当所述服务端校验签名与所述签名参数比对一致时,返回成功状态码并允许后续短信发送业务逻辑继续执行;

18、当比对不一致或在所述初步校验阶段任一校验项失败时,立即中断处理流程,向客户端返回相应错误码及错误消息,阻止本次非法请求进入短信发送环节。

19、可选地,在所述接收客户端发起的http请求之后,还包括:

20、建立以所述过期时间定义有效时间窗口、以所述随机串确保请求唯一性的协同防重放机制;

21、将所述客户端标识与所述随机串的组合存入防重放记录表,在所述有效时间窗口内校验该组合是否已存在,若已存在则判定该请求为重放请求并立即拒绝;

22、将所述过期时间与服务器当前系统时间进行比对,若所述过期时间早于当前系统时间,则判定该请求已超出所述有效时间窗口并立即拒绝;

23、通过所述有效时间窗口与所述随机串的组合校验,使同一请求在所述有效时间窗口内仅能被提交一次,且在所述有效时间窗口过期后自动失效,实现请求生命周期与请求唯一性的双重防重放保障。

24、可选地,在根据所述核心验证的比对结果执行差异化流程控制之前,还包括:

25、对请求来源ip地址、设备指纹和用户行为序列进行风险评分分析,若风险评分超过预设阈值,则即使所述核心验证通过,也对该请求触发二次挑战验证或直接拦截。

26、第二方面,提供了一种基于动态双重哈希签名的短信接口防刷系统,该系统包括:

27、接收校验模块,用于接收客户端发起的http请求,提取所述http请求中的签名参数、客户端标识、过期时间和随机串,对所述签名参数进行格式存在性校验、对所述客户端标识进行授权合法性校验、对所述过期时间进行时效性校验,以完成请求参数的初步合法性筛选;

28、签名生成与核心验证模块,用于对通过初步校验的请求,按照预定义格式将服务端盐值、所述客户端标识、所述过期时间、所述随机串以及服务端动态令牌进行有序拼接,生成预签名字符串,对所述预签名字符串进行双重md5哈希运算并将运算结果截取前n位,得到服务端校验签名,将所述服务端校验签名与所述签名参数进行一致性比对,以完成动态签名的核心验证;

29、验证与业务执行模块,用于根据一致性比对结果执行差异化流程控制;其中,若比对一致则返回成功状态码并触发后续短信发送业务逻辑,若比对不一致或在所述初步校验阶段校验失败则立即中断流程并返回相应错误信息。

30、第三方面,提供了一种电子设备,包括存储器和处理器,存储器存储有计算机程序,处理器执行计算机程序时实现上述第一方面任一所述的方法。

31、第四方面,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现上述第一方面任一所述的方法。

32、本技术实施例提供的技术方案带来的有益效果至少包括:

33、高强度防刷:通过客户端鉴权、时效控制、随机串和动态签名等多重关卡,能有效识别并阻断机器脚本发起的恶意请求,从源头防止短信轰炸和资源滥用。

34、有效防御重放攻击:基于expires和nonce的机制确保了每个请求的唯一性和时效性,被拦截的合法请求无法在过期后或被重复使用。

35、显著提升安全性:“盐值+动态参数+双重哈希+截断校验”的签名方案,使得签名极难被伪造或碰撞,安全性远高于静态token或简单签名。

36、标准化与自动化:将复杂的安全逻辑封装成标准化流程,实现了审核过程的自动化,无需人工介入,处理速度在毫秒级,极大提升效率。

37、降低成本:有效减少因恶意刷量导致的短信费用损失,并节省了传统人工或简单规则运维所需的人力成本。