理论教育 安全协议验证码概述-安全协议

安全协议验证码概述-安全协议

时间:2023-10-28 理论教育 版权反馈
【摘要】:目前抵御在线口令猜测的主要方式是使用验证码。图灵测试中的裁判是人,而验证码需要机器裁判,人们称CAPTCHA是一种逆向图灵测试。图4.64图形化的文本验证码验证码由服务器完成生成、分发、校验、后处理。例如,一般网页规定验证码的有效时间为5分钟。一个典型的CAPTCHA必须具备下列属性:服务器能够高效生成并校验验证码。使用问卷调查、人工检验的方式,通过统计各类验证码的用户响应时间及准确性,完成评价。

安全协议验证码概述-安全协议

当前,有许多专门的破解工具可以在线暴力破解口令,对口令认证造成了极大的安全威胁。在线口令猜测主要的威胁是来自机器人的自动程序猜测攻击。目前抵御在线口令猜测的主要方式是使用验证码。最早的验证码是在1997年由Alta Vista网络推出的。验证码是国内学者对全自动区分计算机和人类的图灵测试CAPTCHA(Completely Automated Public Turing test to tell Computers and Humans Apart)的译义,是一种区分用户是计算机还是人的全自动程序。CAPTCHA这个词最早是在2002年由卡内基梅隆大学的Luis von Ahn、Manuel Blum、Nicholas J.Hopper以及IBM的John Langford提出的。在CAPTCHA测试中,作为服务器的计算机会自动生成一个问题由用户来解答。这个问题由计算机生成并评判,但只有人类才能解答。这个测试是由计算机来考人类,而不是标准图灵测试中那样由人类来考计算机。图灵测试由图灵提出,如果一台计算机能和人类对话而不被识别出是机器即被认为通过图灵测试。图灵测试的目的是判断计算机是否具有人工智能。图灵测试中的裁判是人,而验证码需要机器裁判,人们称CAPTCHA是一种逆向图灵测试(Reverse Turing Test,RTT)。逆向图灵测试是一个区分人与机器的方法,因为RTT很容易被人识别,但是对于自动程序来说很难识别,因为它是基于人工智能难题设计的。

一个典型的RTT就是图形化的文本验证码,如图4.64所示。因此,目前在使用用户名和口令进行注册和登录之前,网络服务提供者要求用户通过RTT,即在页面上要求填写附加码的表单才能正常进入账号,这样可以有效地抵御在线猜测攻击。由于每次页面访问的验证码都不相同,同时安全程度较高的验证码使得程序化的信息提取变得不可能,而必须由用户进行识别输入。人工因素的引入使得原本单位时间内高密度的攻击骤减,由基于机器计算能力的高频攻击转化为基于人工输入的低频攻击,针对简单口令的穷举攻击和字典攻击都将会耗费大量的时间和人力,从而导致口令遍历猜测的攻击方式失效。

图4.64 图形化的文本验证码

验证码由服务器完成生成、分发、校验、后处理。首先,用户打开某个页面,发起获取验证码的请求,服务器接收到请求后,根据验证码生成规则,生成验证码,然后将生成的验证码分发到客户端,用户输入获取到的验证码,服务器检查收到的用户提交的验证码是否正确,如果正确则通过验证,如果不正确则需要进行后处理,如重新生成验证码。验证码只是为防止程序猜测等目的而生成的无意义的随机字符串,不需要用户记忆。验证码只对当前服务有效,并具备时效性,只在一定时间内有效。例如,一般网页规定验证码的有效时间为5分钟。

根据Ahn等人给出的定义,CAPTCHA的硬性基本假设是基于人工智能(Artificial Intelligence,AI)问题的。基本上,CAPTCHA利用一个具体的难以解决的AI问题来探索人与计算机能力可能存在的差异。一个典型的CAPTCHA必须具备下列属性:

(1)服务器能够高效生成并校验验证码。

(2)对于人类用户,应该是快而容易识别的。即可用性(Usability)要求,人类可以轻松通过验证码挑战。

(3)对于人类用户,应该具有普遍的适用性,如色盲者难以识别图像中的某些颜色。(www.daowen.com)

(4)对于计算机,应该是难以识别的。即健壮性(Robustness)要求,验证码能够抵御计算机的攻击。

(5)对于计算机,即使知道算法及数据,也应该是难以识别的。

根据验证码应该具有的属性,给出验证码评价指标:

(1)产生验证码的效率。通常可以采用统计生成若干个(如100个)合乎要求的验证码所花费的时间和资源来进行评价。

(2)计算机识别的难度。采用计算机识别工具对验证码识别的正确率进行评价,如光学字符识别(Optical Character Recognition,OCR)、视觉识别、非视觉识别等。

(3)人类识别的难度。使用问卷调查、人工检验的方式,通过统计各类验证码的用户响应时间及准确性,完成评价。

为避免CAPTCHA过难而使网站损失用户,通常要求人类用户通过测试的时间小于30秒,用户通过率大于90%。CAPTCHA的设计和破解研究呈现出“设计-识别-再设计-再识别”的互相攀升现象,促使CAPTCHA研究不断向前发展,从而带来CAPTCHA机制的稳健性和可用性的不断提升。

CAPTCHA主要应用于网络账号的注册、登录、口令找回、评论发帖、投票、抢票、抢购商品等场合,用来防止撞库(暴力破解尝试登录)、批量注册、批量发帖、刷票、恶意爬虫对网站数据爬取、资源批量获取、批量发布垃圾信息等非正常的网络行为。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈