短信验证码的工作原理(安全设计记短信验证功能的安全性)

短信验证是一种比较便捷的认证方式主要应用场景有:,下面我们就来说一说关于短信验证码的工作原理?我们一起去了解并探讨一下这个问题吧!

短信验证码的工作原理(安全设计记短信验证功能的安全性)

短信验证码的工作原理

短信验证是一种比较便捷的认证方式。主要应用场景有:

1、主要应用在业务系统的交易界面中用户手工输入手机号,并获取短信验证码进行验证。

2、手机号由系统自动关联且不能修改 该场景是业务系统中已识别到用户身份,并需要使用用户绑定的手机号进行短信验证,从操作上用户无需手工再次输入手机号,并且手机号是不能在交易过程中修改。

不同业务场景下的攻击手段也有不同。主要有两大类:

(一) 短信轰炸攻击

1. 用户输入手机号的场景下攻击手法为两种:

(1)通过模拟通信请求,用同一手机号进行无限次地请求短信验证码;对同一用户造成短信轰炸,同时消耗短信的资源。

(2)修改请求报文中的手机号,每次请求短信号码的都是不同的手机号。对不同用户造成短信轰炸,同时消耗短信的资源。

2. 手机号由系统自动关联且不能修改 在该场景下不能修改手机号,因此是直接用同一手机号进行无限次地请求短信验证码,对同一用户造成短信轰炸,同时消耗短信的资源。

(二) 短信验证绕过攻击

短信验证码绕过主要是指短信验证码在表单提交时被绕过,该问题主要是页面端表单提交处理事件将短信验证码验证与当前界面的提交分开成不同的请求与后端服务器通信。 这种设计下攻击者可以通过模拟短信验证成功的标识状态值,从而绕过短信验证码校验而直接进行表单提交。

针对以上的攻击手法,提出相关的安全设计要求,在系统安全设计上就必须做出相应的策略,进行有效的防范以对应攻击。以下为必须做到的安全设计点:

1、必须要有防止重放攻击的设计 对于短信验证码的请求增加检查,每次请求都必须是合法的,可以防止重放攻击即可。如增加图形验证码,发送一次短信,就需要填一次,图形验证码的产生必须是服务器端,且只能一次有效。

2、必须在时间段内对请求次数进行限制。限制同一手机号同一时间申请短信验证码的次数,建议值为1分钟内不超过10次即认为是符合安全要求。

3、请求验证码时必须对用户进行核身 在请求发送验证码时,必须对当前请求的用户进行权限检查,检查接收短信的手机号与当前用户是否匹配,以防止攻击者已替换了用户信息而发起请求。

4、 为避免出现短信验证绕过漏洞,必须将短信验证码的验证是与表单的提交合并到同一个请求中,由后端服务端进行逻辑处理,先验证短信验证码,验证通过后再处理表单请求避免发生绕过验证的漏洞。

希望以上对大家有帮助。

,

免责声明:本文仅代表文章作者的个人观点,与本站无关。其原创性、真实性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容文字的真实性、完整性和原创性本站不作任何保证或承诺,请读者仅作参考,并自行核实相关内容。文章投诉邮箱:anhduc.ph@yahoo.com

    分享
    投诉
    首页