真问真答:为什么验证码越来越复杂|大象公会
2016/12/15 23:11:53吴松磊 大象公会

    

     在互联网产品越来越便捷的今天,登录或注册时的验证码却越来越复杂。连错几次验证码的糟糕体验常让人抱怨其意义何在,但这些不满的声音可能低估了验证码的重要性。

    

     春运到了,人们又一次想起了被 12306 支配的恐惧

     验证码的意义在于识别正在操作的是真实用户还是一段代码。这种只有真人才能通过的操作,将帮助站方避免自动脚本的恶意注册或攻击。

     验证码的雏形诞生于 1997 年,互联网安全公司 Sanctum 员工 Eran Reshef 等人提交的一项专利申请中,验证问题被用于区分人类和计算机行为而首次出现。

    

     在 1997 年提交的专利申请文件中,设计的验证码方案在今天也依然常见

     而验证码之所以不断进化,衍生出各式各样的形式,则是迫于识别机器识别的压力。

    

     某国产破解软件可轻松识别许多常见验证码

     识别图像中文本的算法被称为 OCR(光学字符识别技术)。这项早期用于帮助盲人阅读的的技术发展至今,对于常见的书写系统已经实现高于 99%的准确识别率。在商业文件录入、图书扫描、车牌识别等领域都有广泛的应用。

    

     某国产车牌识别系统界面

     OCR 算法的核心环节如下,对于验证码设计者来说,每一个环节都可以增加识别难度。

    

     添加曲线、网格和混乱的颜色可以提高图像预处理难度,重叠粘连的字符提高了分割难度,而翻转和扭曲则降低了单字符识别成功率。

     但关键在于,尽管字符型验证码可以不断复杂化以对抗算法,但也会不断降低人的识别率。而随着深度学习算法的成熟,字符型验证码的正确率终将高于人类。

     2013 年末,曾在某安全平台表示坚持简单验证码并大骂自动抢票应用的 12306 站方也许不会想到,一年半后的自己将采用堪称灾难的图片验证码方案。

    

     尽管 12306 的验证码方案不算成功,但在新形式下,交互任务型的验证码方案可能是抵抗机器识别的唯一出路。为此,各大厂商也开始尝试各种新验证码方案。

    

     滑块验证码、倒立文字验证码、拼图验证码

     当然,也有糟糕的案例:

    

     而 Google 验证码团队 reCAPTCHA 给出了现阶段的最佳方案:

    

     reCAPTCHA 仅通过用户的一次点击动作以及对浏览器环境的分析,就足够确定绝大多数真实用户。而对于可疑用户,才需要回答验证问题:

    

     reCAPTCHA 的验证问题其实和 12306 非常相似

     验证码究竟带来了多少价值?

     破解验证码的巨大利益,催生了人工识别验证码平台。大量的码工在电脑一遍又一遍的辨认字符,以换取每识别 100 个验证码 1 元的酬劳。

    

     某打码软件界面

     在验证码作用失效,仅用手机号就能批量注册的众多产品中,几千万僵尸账号得以创造惊人的数据泡沫,虚假的转发评论,以及掳走应属于用户的厂商补贴。

     但为了这个验证码失效的环境,一个互联网黑产从业者需要投入近百万买下上万张手机卡和维护设备,才能开始他的事业。

    

     一个正在销售手机卡和猫池(手机卡必须插在猫池中才能批量操作)的电商网站

    

    

    

     ▼ 点击阅读原文,向大象公会提问。

    http://weixin.100md.com
返回 大象公会 返回首页 返回百拇医药