注册、好友邀请等),在使用动态短信业务前系统并不能建立业务关联。因此,在未建立业务关联的情况下,需要进一步严格限制保证业务使用的安全性。
针对短信炸弹问题,建议综合采用:增加图片验证码、单IP请求次数限制、限制发送时长限制3个措施,防护“动态短信获取”功能与业务接口。 措施编号 1 措施描述 使用安全图片验证码 针对性解决的问题 防止通过自动化工具进行攻击请求。 防止攻击者对服务器进行大量无效请求(在图片验证2 单IP的请求次数限定 码未破解的情况下,自动化工具形成错误请求),增加服务器负担。 单用户动态短信请求间隔时长限3 制 防止对单个用户形成手工攻击; 防止图片验证码失效后对用户形成大量攻击。 措施一:使用安全的图片验证码
究其原因是攻击者可以自动对接口进行大量调用。恶意攻击者采用自动化工具,调用“动态短信获取”接口进行动态短信发送。
采用图片验证码可有效防止工具自动化调用,即当用户进行“获取动态短信” 操作前,弹出图片验证码,要求用户输入验证码后,服务器端再发送动态短信到用户手机上,该方法可有效解决被利用实施炸弹攻击的问题。
安全的图片验证码必须满足:
生成过程安全:图片验证码必须在服务器端进行产生与校验; 使用过程安全:单次有效,且以用户的验证请求为准;
验证码自身安全:不易被识别工具识别,能有效防止暴力破解。 安全图片验证码的设计方案详见第5章。
6
措施二:单IP的请求次数限定
使用了图片验证码后,能防止攻击者有效进行“动态短信”功能的自动化调用;但若攻击者忽略图片验证码验证错误的情况,大量执行请求会给服务器带来额外负担,影响业务使用。建议在服务器端限制单个IP在单位时间内的请求次数,一旦用户请求次数(包括失败请求次数)超出设定的阈值,则暂停对该IP一段时间的请求;若情节特别严重,可以将IP加入黑名单,禁止该IP的访问请求。该措施能限制一个IP地址的大量请求,避免攻击者通过同一个IP对大量用户进行攻击,增加了攻击难度,保障了业务的正常开展。
该阈值设定可依据业务的不同执行设定,一般情况下建议不超过200个/分钟。
措施三:单用户动态短信请求间隔时长限制
为进一步优化业务正常使用,建议采用限制重复发送动态短信的间隔时长,即当单个用户请求发送一次动态短信之后,服务器端锁定如:30秒后,才能进行第二次动态短信请求。该功能可进一步保障用户体验,并避免包含手工攻击恶意发送垃圾验证短信。
5.图片验证码安全要求
5.1图形验证码实现机制 (1)典型验证系统架构图
典型的系统主要由前端WEB服务器、后端验证服务器群组成。WEB前端服务器负责通过Internet与用户进行交互,提供认证业务(包含用户手机号输入、动态验证短信输入);后端验证服务器群由验证码服务器和动态短信验证服务器组成,验证码服务器负责产生、校验验证码,短信验证服务器负责向用户手机发
7
送动态短信验证码信息,并对用户输入进行校验。 典型业务流程如图3所示:
图3典型业务流程图
当业务服务为客户端模式时,与图3所示的web方式基本相同,其中客户端相当于web前端服务器的功能。 (2)验证码安全使用流程
对图3中图片验证码的使用流程(步骤2~步骤6)进行描述如下。 步骤2:用户访问验证码请求页面,输入手机号后,前端应用服务器向图片验证码服务器发送请求,请求获得图片验证码的URL格式示例如下:http://192.168.1.1/getImage?sessionId=xxxx&busid=xxx。
- 192.168.1.1代表前端应用服务器的域名或者IP地址;
- sessionId代表前端应用服务器与验证码服务器建立的会话ID号,由双方协商获得;
- busid代表前端应用服务器的业务 ID号,由双方协商获得;该 ID的设置使一台验证码服务器支持为多个业务提供图片验证码。
步骤3:验证码服务器产生验证码,并将引用图片验证码的URL传送回前端
8
应用服务器;前端应用服务器通过URL获取图片验证码,并通过浏览器向用户展示。
步骤4:用户输入手机号与图片验证码,并单击发送按钮,请求验证码服务器对图片验证码的有效性认证。
步骤5:请求对图片验证码进行有效性验证的URL格式示例如下: http://
192.168.1.1/checkCode?sessionId=xxxx&busid=xxx&code=xxxx。
- sessionId,busid同上,code为用户输入的图片验证码的值。
步骤6:服务器端收到请求后与原始数据进行核对,并立即将原验证码进行失效处理。若用户提交数据与服务器数据一致,则服务器返回认证成功,并产生、发送短信验证码至手机;若用户提交数据与服务器数据不匹配,则web服务器返回认证失败,需告知向图片验证码服务器认证失败并向图片验证码服务器请求新的验证码(步骤6)。
5.2图片验证码的安全设计要求
对于图片验证码的设计既要考虑到安全性、易用性也要考虑用户的操作体验。对于验证码的设计不能简单的单纯使用字母、数字或4位以内的短验证码等,这样易被验证码识别器破解;同样验证码的设计也不易使用过多的干扰线条、过大的字符变形或复杂的逻辑判断等,会严重影响用户的使用体验,尤其是对年长者更加难以识别。
对于验证码的安全设计主要有以下4种方式: (1)字母数字类
字母数字类验证码主要由阿拉伯数字0~9以及26个英文字母(包括大小写)
9
组成。其基本样式如图2所示:
图4字母数字类验证码
对“英文字符+数字”类的图片验证码,提出设计与实现要求如表1所示,其中“可选项”一栏中“M”表示必选,“O”表示可选。 表1英文字符+数字”类图片验证码设计要求: 编号 1 2 3 4 5 设计要求说明 验证码的长度不少于4位,不多于8位; 字符应在图片中完全显示; 验证码字符库库中必须包含字母(A~Z或a~z)与数字(0~9); 每个验证码中的每个字符必须随机从字符库中随机挑选; 字符的位置需要满足以下3条中的一条或多条: 5-1:字符间距随机调整,在图片中非均匀分布; 5-2:字符间存在粘连且较紧凑; 5-3:每个字符在图片中的坐标应随机动态变化。 可选项 M M M M M 6 同一个字符应具备不少于5种形态,包括通过旋转、字体变化、扭曲等方式实现,但不应影响字符识别; M 7 字符间存在贯通、粘连或交叠,且要求如下: 7-1:字符间应存在贯通,贯通线应与字符比划的粗细接近; 7-2:如采用字符交叠的方式,交叠部分不应超过字符宽度的1/10; 7-3:如采用粘连方式,粘连部分不应产生交叠。 10
M
百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库中国移动动态短信验证码安全防护方案分析(2)在线全文阅读。
相关推荐: