一种维护问答式验证码安全的系统
技术领域
本发明属于验证码安全保护领域,具体地说,涉及一种维护问答式验证码安全的系统。
背景技术
验证码一般是防止有人利用机器人自动批量注册、对特定的注册用户用特定程序暴力破解方式进行不断的登陆、灌水。但是随着图像识别技术的发展,那些把文字或者其它符号放入图片中,让人们从图片中去识别的验证码技术方案,已经越来越跟不上不断进步的图像识别技术和图像处理技术的步伐,不断有机器人成功识别这种验证码的事件发生,而且成功率也在不断提高,为了防止机器人成功识别这种验证码,就得在图片中增加更多干扰项,但是人眼识别这种验证码也非常困难,极大降低了用户的体验,同时随着技术的不断进步,即使这种人眼难以辨认的验证码,机器人也有较高的识别率,这种验证码不能很好地阻止机器人的行为。
于是,另外一种验证码产生了,那就是问答式验证码,随机提出一个问题,然后让用户回答,回答的方式有两种,一种是输入答案,一种是选择答案,无论哪种,只要答案正确,就通过验证码的验证,这个答案就是验证码。例如专利申请号为200510034062.5的发明专利和专利申请号为200610138512.X的已经授权的发明专利,都是典型的问答式验证码,其中专利申请号为200610138512.X的发明专利,专利权人为阿里巴巴公司,这些问答式验证码,有一个明显的优点是:给出的问题千差万别,人们多数都能够回答,但是对于机器人,由于要进行智能语义识别和判断,一个很简单的问题,机器人都不能正确回答,我曾经做过这样的实验,提出一个简单的问题:让网上著名的微软小冰机器人回答,她只能回答一些段子,无法给出正确的答案,因为一般的人工智能对媒体信息实际意义的识别较为困难,因此,设计一个好的问答式验证码,机器人是难以选择或者输入验证码的,但是,目前,这些问答式验证码很少用于实战,就连大名鼎鼎的阿里巴巴公司自己的验证码专利技术申请号为200610138512.X,已经授权也没有用在自己的产品上,说明这种验证码有明显的缺陷,因为这种验证码是从数据库中提取的,而且数据库中这种验证码记录并不多,即使10多万条不同的验证码记录,需要人工逐一构思加入,要耗费很大的工作量,而验证码识别企业通过暴力刷新验证码,用不到半天的时间就可以把绝大部分的验证码记录攫取出来,然后为每条不同的验证码记录设置对应的正确验证码信息,从而轻松破解这种验证码。
发明内容
如何发挥问答式验证码的优势,弥补它的不足,让问答式验证码真正发挥作用,本发明提供一种维护问答式验证码安全的系统,包括验证码识别机构1和验证码服务机构2,其特征在于:验证码识别机构1和验证码服务机构2,二者双向连接,所述验证码服务机构2内有验证码题目信息提示设置器2a、验证码答案选项设置器2b、正确验证码设置器2c和验证码记录n次重复器2d,验证码题目信息提示设置器2a用于设置一条验证码记录的信息提示内容部分,验证码答案选项设置器2b用于设置该验证码记录的多个答案选项内容部分,正确验证码设置器2c用于设置该验证码记录的正确答案内容部分,验证码记录n次重复器2d用于添加n+1条该验证码记录,即添加n条该验证码记录的重复记录;所述验证码识别机构1内有验证码m次刷新器1a、验证码题目信息提示器1b、验证码选择器1c和验证码刷新计数器1d,验证码m次刷新器1a判断当前操作者验证码刷新的次数在有效期内是否达到m次或者m+1次,判断结果分两种情形处理:
(a)如果当前操作者验证码刷新的次数在有效期内达到m次或者m+1次,则不显示验证码提示信息,当前操作者进一步操作的流程无法进行下去;
(b)如果当前操作者验证码刷新的次数在有效期内没有达到m次,则验证码服务机构2随机提取一条验证码记录给在验证码识别机构1中进行操作的当前操作者,并在验证码题目信息提示器1b中显示该验证码记录的提示信息,把验证码答案选项放入验证码选择器1c中,让当前操作者选择验证码,对于这个自动显示验证码记录的行为,视为当前操作者请求刷新验证码的行为,验证码刷新计数器1d将当前操作者请求刷新验证码的次数累加1次;如果当前操作者能正确选择验证码,则当前操作者进一步操作的流程能够进行下去,如果当前操作者不能正确选择验证码,则可以向验证码服务机构2请求刷新验证码,验证码刷新计数器1d将当前操作者请求刷新验证码的次数累加1次,验证码m次刷新器1a判断当前操作者请求刷新验证码的次数在有效期内是否超过m次,
(b1)如果超过m次,则不再向验证码服务机构2请求新的随机验证码,当前操作者进一步操作的流程无法进行下去;
(b2)如果不超过m次,则验证码服务机构2再次随机提取一条验证码记录给当前操作者,如果当前操作者不能选择正确的验证码,则可以向验证码服务机构2请求刷新验证码,每次请求刷新验证码,验证码刷新计数器1d都将当前操作者请求刷新验证码的次数累加1次,验证码m次刷新器1a都判断当前操作者请求刷新验证码的次数在有效期内是否超过m次,如果不超过m次,而且当前操作者某次选择了正确的验证码,则当前操作者进一步操作的流程能够进行下去。
本发明的显著效果在于:(1)让目前成为“鸡肋”的问答式验证码技术方案起死回生。(2)使得设计人类容易回答,而机器人难以回答,同时验证码难以被暴力破解的新型验证码技术方案成为可能。(3)往验证码记录集中添加重复记录,极大降低了工作量,又增加了验证码被暴力破解的难度。(4)通过限制验证码的刷新次数,一方面防止验证码被暴力破解,另一方面,极大减少了用户对服务器的访问次数,缓解了服务的负载压力,提升了服务器的性能。
附图说明
图1为本发明中维护问答式验证码安全的系统结构原理图。
具体实施方式
下面结合附图和具体实施方式对本发明作进一步的说明。
实施例1,如图1所示:一种维护问答式验证码安全的系统,包括验证码识别机构1和验证码服务机构2,其特征在于:验证码识别机构1和验证码服务机构2,二者双向连接,所述验证码服务机构2内有验证码题目信息提示设置器2a、验证码答案选项设置器2b、正确验证码设置器2c和验证码记录n次重复器2d,验证码题目信息提示设置器2a用于设置一条验证码记录的信息提示内容部分,验证码答案选项设置器2b用于设置该验证码记录的多个答案选项内容部分,正确验证码设置器2c用于设置该验证码记录的正确答案内容部分,验证码记录n次重复器2d用于添加n+1条该验证码记录,即添加n条该验证码记录的重复记录;所述验证码识别机构1内有验证码m次刷新器1a、验证码题目信息提示器1b、验证码选择器1c和验证码刷新计数器1d,验证码m次刷新器1a判断当前操作者验证码刷新的次数在有效期内是否达到m次或者m+1次,判断结果分两种情形处理:
(a)如果当前操作者验证码刷新的次数在有效期内达到m次或者m+1次,则不显示验证码提示信息,当前操作者进一步操作的流程无法进行下去;
(b)如果当前操作者验证码刷新的次数在有效期内没有达到m次,则验证码服务机构2随机提取一条验证码记录给在验证码识别机构1中进行操作的当前操作者,并在验证码题目信息提示器1b中显示该验证码记录的提示信息,把验证码答案选项放入验证码选择器1c中,让当前操作者选择验证码,对于这个自动显示验证码记录的行为,视为当前操作者请求刷新验证码的行为,验证码刷新计数器1d将当前操作者请求刷新验证码的次数累加1次;如果当前操作者能正确选择验证码,则当前操作者进一步操作的流程能够进行下去,如果当前操作者不能正确选择验证码,则可以向验证码服务机构2请求刷新验证码,验证码刷新计数器1d将当前操作者请求刷新验证码的次数累加1次,验证码m次刷新器1a判断当前操作者请求刷新验证码的次数在有效期内是否超过m次,
(b1)如果超过m次,则不再向验证码服务机构2请求新的随机验证码,当前操作者进一步操作的流程无法进行下去;
(b2)如果不超过m次,则验证码服务机构2再次随机提取一条验证码记录给当前操作者,如果当前操作者不能选择正确的验证码,则可以向验证码服务机构2请求刷新验证码,每次请求刷新验证码,验证码刷新计数器1d都将当前操作者请求刷新验证码的次数累加1次,验证码m次刷新器1a都判断当前操作者请求刷新验证码的次数在有效期内是否超过m次,如果不超过m次,而且当前操作者某次选择了正确的验证码,则当前操作者进一步操作的流程能够进行下去。
在本实施例中涉及到的问答式验证码的应用场合,主要用于用户注册、用户登录场合以及不需要注册和登录的网络投票场合等。验证码m次刷新器1a如何判断并且统计当前操作者刷新了几次验证码?即解决当前操作者的身份认证问题。一般说来,对于用户注册,可以把输入的用户名加密存入cookie中,如果当前操作者用cookie中记录的用户名注册,每次刷新验证码,验证码刷新计数器1d都将当前操作者请求刷新验证码的次数累加1次;对于用户登录,则可以在服务器数据库中根据登录的用户名找到该用户,查看当天刷新验证码的次数,如果没有超过指定的m次,验证码刷新计数器1d都将当前操作者请求刷新验证码的次数累加1次;对于网络投票,用户没有注册和登录,可以根据当前操作者所使用电脑的IP地址进行判定,如果当天在该电脑上投票时,刷新验证码的次数如果没有超过指定的m次,验证码刷新计数器1d都将当前操作者请求刷新验证码的次数累加1次。当然获取当前操作者的身份,还可以有其他方法。
对于验证码刷新的有效期,可以设置为一天,即当天,在当天刷新验证码的次数超过指定的m次,则不能刷新,这样,验证码破解者就需要用很长时间来提取数据库中存储的不同验证码记录,从而知难而退。
本发明中所述“对于这个自动显示验证码记录的行为,视为当前操作者请求刷新验证码的行为,验证码刷新计数器1d将当前操作者请求刷新验证码的次数累加1次”,是为了防止机器人在不同的电脑不断重复登录,从而瘫痪服务器或者攫取服务器(验证码服务机构2)中更多的验证码记录。
下面举一个更加形象化的例子来进一步描述本发明所述技术方案。
设想验证码服务机构2中有一个验证码记录表,通过验证码题目信息提示设置器2a、验证码答案选项设置器2b、正确验证码设置器2c和验证码记录n次重复器的相关操作,如果一条记录的重复记录是100条,添加2万条不同记录,添加的重复记录就有200万条,当前操作者验证码刷新的次数在有效期设置为1天,验证码刷新次数为5次,设想验证码暴力破解机构每天用100台电脑注册,那么每天可以获取500个验证码,但是大部分是重复的验证码,平均每天至多获取不重复验证码的个数为5个,要想获取所有不同的验证码,验证码暴力破解机构至少需要花费11年,而且还要针对每个验证码设置对应的应答答案,不仅花费时间长,而且工作量很大,最终使得验证码暴力破解机构放弃破解操作。
当然,本发明还可有其他多种实施例,在不背离本发明精神及其实质的情况下,熟悉本领域的技术人员可根据本发明作出各种相应的改变和变形,但这些相应的改变和变形都应属于本发明所附的权利要求的保护范围。