产品分析 | 各种验证码的形式及简要分析

一、总述

验证码存在的意义在于区分当前访问者是“人”还是所谓的“机器”。这在计算机领域称为“图灵测试”,通过图灵测试的机器可以被称作具有人工智能的特点。而验证码的存在则能够避免大多数机器通过测试,进而避免机器对系统进行大规模的恶意访问和测试。

验证码的基本设计原理即通过人类主体的感官去通过验证码,而这样的感官是机器所不具备的。此外,提高通过验证码的潜在成本也是一种方法。由上述两种原理,总结出的**三类验证码 **

  • 用户输入图形中显示的内容
  • 通过人体的交互、动作完成验证
  • 短信、邮箱等多平台验证

前两种属于通过主体感官去通过验证码,第三种属于主动增加通过验证码的成本(包括开通多个手机号等需要一定成本的情况)。为了防止恶意通过短信平台或邮箱平台发送过多验证消息以增大服务器负担,通常第三种验证方式会与前两种方式结合。下面将对每种验证方式进行详细说明。

二、细分

2.1. 图形验证码

图形验证码是相对早期出现的验证码形式,总体来说现在的网站使用此形式验证码的比例是最高的。然而由于科技发展,图像识别技术的提高,图形验证码被破解的概率也越来越高。因此现今对安全要求较高的网站或流量较大的网站均已改用交互式的验证方式。

知乎采用的图形验证码

随着图像识别技术的提高,图形验证码也经历了两种不同方向的改进——一种是在图形上添加了各种各样的条纹等干扰信息,此方法随着图像识别技术的发展,条纹数量也越来越多,条纹的样式也让用户眼花缭乱,进而影响了用户正常识读验证码,降低了用户体验。

另一种方法是在图形中“出计算题”让用户计算并输入结果,让用户主观去进行一些机器阅读文字但无法处理的运算。然而随着搜索引擎的优化,将机器识别出的文字直接放入搜索引擎中即可得到准确结果,例如下图所示。同时,部分网站的“计算型”验证码采用了多项式的计算,计算过程繁琐,也降低了用户体验。

在搜索引擎中用文字代替符号也可计算得出结果

此类验证码在实际使用中给用户的交互体验是怎样的呢?以豆瓣的找回密码功能为例。

豆瓣找回密码初始界面

在“输入上图中的单词”框中输入验证码后,若输入正确,点击“重设密码”则可以跳转至下一页面;若输入错误,则显示文字,提示验证码错误。输入了的账号不消失并生成新的验证码。

验证码错误

豆瓣在此处的交互设计得不够人性化,通常来说,错误提示设计在验证码输入框隔壁即可,且点击“重设密码”后整页面刷新也是一种影响用户体验的表现。

个人认为,此类图形验证码的错误提示交互最佳表现应当为:用户点击“下一步”后,系统检测验证码输入,如果错误则在输入框附近直接使用轻度提示显示错误字样,验证码刷新且对于的输入框清空。至于账号或密码是否清空则视情况而定:如果用户输入信息种类繁多、内容冗长,则倾向于为其保留内容(当然密码最好清除);若内容相对简单,则可以直接清除,以增大破解成本。

2.2. 交互型验证

交互型验证码可以说是验证码2.0的版本。通过人工完成一些机器无法自动完成的交互,同时系统反向检测用户的一系列动作是人工还是机器完成,双向验证,降低被破解的几率。

现今出现频率较高的交互型验证为“滑动验证”,即向右拖动滑块完成拼图。简书的登录界面便是这样的设计。

拖动滑块-简书

该操作的基本流程如下:用户输入完账号、密码后将鼠标轻放在滑块上或按住滑块,拼图出现;用户向右滑动,出现一块小拼图及待放的位置。若用户成功放置拼图,则大拼图闭合,右侧小锁变为绿色勾,反之,放置失败变为红色叉。通过较为轻度的提示暗示用户验证成功与否。

同时,该模块会告诉用户用了多长时间完成此项动作,在完成验证的同时增加了趣味性。可以说在考虑到验证安全的前提下兼顾了用户体验(简单、有趣)。

除此之外,还有一种交互式的验证码,我们称之为“点击验证码”:用户点击插件后,系统会让用户按顺序选择图像中的若干个文字,选择完成后需手动点击“验证”才能获知是否验证成功。

点击验证-腾讯

此方法同样利用了人和系统互相的验证来确保操作是人而非机器。同样的,此验证方式兼顾了验证安全及用户体验。此外,点击验证后才返回是否验证成功的状态也增加了破解的难度(验证错误后图片和文字会变更)

上述两种验证码具有如下优点:

  • 用户体验好:大多数用户无需进行复杂的思考即可通过,同时减少了对整个业务流程的打断
  • 风险控制能力强:基于人类的固有行为特征以及操作的环境信息综合进行风控决策,攻击者难以批量模拟出与正常人类行为相似的操作
  • 能够拦截风险:由于1.0时代的验证码还需考虑人类的实际用户体验,因此无法将风险降到最低。而2.0时代的验证码自身已考虑到了用户体验,对风险进行拦截的可操作空间便更大
    注:以上优点总结参考知乎某匿名用户

在我们的生活中,众所周知地,还存在一个具有神奇验证码的网站——12306。12306的验证码是通过让用户选择文字提示对应的物品,通常数量为2-3个,全部选择正确后可跳转下一页。

12306的验证码

按照12306的初衷,使用此类验证码的原理是通过机器无法主观识别的物品去区分用户和机器。但在实际使用过程中,由于图片分辨率过低(为了保证图片大小较小能使用户在网络较差的环境下也能刷新出来),部分用户无法在第一次选择时就正确跳转。同时,当这一新型验证码刚刚出现时,也有人发表过相关的破解文,但从实际效果来看,2016年春运期间,许多抢票软件均无法跳过验证码,需要用户自行选择验证码。

从上述结果来看,12306的验证码的基本需求达到了——避免了机器自动识别,提高了用户手动抢票成功的几率。只可惜为了完成这样的需求,牺牲了用户体验,部分用户也因为错误地选择了验证码而无法抢到车票。如果12306能够尝试使用前文所说的滑动/选字验证,效果是否会更好?由于涉及到上亿的交易量,相信铁路部分不会轻易进行此类尝试。

2.3. 多平台验证

多平台验证是一种不能完全避免“机器”,但能够在一定程度上增大破解成本的验证形式。此类验证通常需要和前两种验证方式进行结合(若不进行前两种验证,则使短信或邮箱服务器瘫痪的攻击成为了可能)。

多平台验证的目的除了防机器注册外,还有确认用户的手机号或邮箱是否正确的作用,可以防止后期用户找回密码时出现不必要的麻烦,同时避免发送推广消息到未注册用户的手机或邮箱内引起反感。

现今的多平台验证通常为单向验证,同时也存在部分双向验证的网站。单向验证易于理解,注册完成后由网站服务器向邮箱或手机发送验证邮件或验证码,用户点击验证邮件内的链接或输入验证码即宣告完成验证。

双向验证网站通常需要用户通过手机向指定号码发送指定数字,随后用户将收到一个新的验证码,将此验证码填入网站完成验证。此验证方式曾出现于12306的手机核验功能中。此举的目的①在于确认用户的手机号是正确的;②防止使用短信服务器的票贩子通过服务器回复验证码而非通过真实的手机。

12306手机核验

三、总结

通过分析现今存在的各种不同的验证码形式,了解它们的基本原理、用户体验、交互和基本流程以及存在的不足,对注册流程有了更深一层的认识。虽然有人认为“注册流程在整个产品中是微不足道的”,但只有对产品的每个细节都精益求精才能做出好产品。希望自己将来如果能够有机会设计某某产品的注册流程时,能够以本文作为其中的一部分理论基础。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,362评论 5 477
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,330评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,247评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,560评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,580评论 5 365
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,569评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,929评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,587评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,840评论 1 297
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,596评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,678评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,366评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,945评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,929评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,165评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 43,271评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,403评论 2 342

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 171,392评论 25 707
  • 最近在做关于验证码的项目的时候,从交互的角度梳理了产品各个平台验证码的应用场景。在一个产品中,会有多个设计师分工协...
    点融黑帮阅读 910评论 0 2
  • 0x00 简介验证码作为一种辅助安全手段在Web安全中有着特殊的地位,验证码安全和web应用中的众多漏洞相比似乎微...
    windgod阅读 2,262评论 0 19
  • (三峽情) 文/菊 青峰弥影帽成冠, 锦绣河山雾锁天; 峽谷艳姿云彩下, 苍崖野岭浪白帘。 【新韵】八寒. (乙未...
    斌之志阅读 546评论 6 20
  • 正式起稿开始了~这样每天画一点可能三个月册子就完整喽~~~ balabala 以前总觉得时间过得好慢~活得时间太漫...
    猫薄荷不爱猫阅读 303评论 2 2