模仿黑产破解12306验证码,验证码产品的未来是?

导读:12306验证码,长时间高居反人类产品排行榜第一名(据某网站调查),普通人一次通过率仅8%,人也识别不清的图片就能成功阻挡自动机了吗?谷歌街景验证码完全取自自然环境确保图片的不重复不被爆破,但是面对黑产的巨额利润,又能坚持多久?本文由安全平台部的shisi撰写,试图通过模仿黑产的破解手法去重新思考验证码产品的发展方向。

验证码,人类与机器不平等的对抗

在AI的新时代背景下,破解一款验证码的成本正变的越来越低。

很多时候,看似复杂的谷歌街景、12306验证码、让人望而却步的百万图库,实际并不复杂:

  • 12306验证码有多少种问题呢?——其实只有100种。
  • 他的数百万图库需要多少样本可以训练识别?——只需要5万张。
  • 需要花费多少标记成本呢?——只需要500块。
  • 破解花费了多少时间?——作者一周的零碎时间。
  • 模型需要多少计算力?——GTX1070上训练20分钟。
  • 识别速度呢?——接口虽然慢其实只是部署在2核2G的云机器上而已。

言而总之,现在的人机识别的对抗已经不再是人力对抗人力,图像的识别也已经不再像传统验证码识别一样,需要人工去耐心地分析每一种特征然后做切割和字库。如今端到端的CNN模型完美的解决了纯图像分类问题。字符型验证码,也不再需要二值预处理分割等复杂操作,一个4层的仿alexnet的网络模型就可以轻松达到90+的准确率。

目前的验证码行业,业界多数还围绕在谁更难看,更复杂的发展方向上。有的渐渐步入“反人类深渊”,比如苹果app商店的。

也有的取自自然场景防止爆破,比如谷歌的街景路牌:

然而,黑产的破解方案只考虑结果,经过作者的简单统计,谷歌验证码出现街景问题的概率高达40%,出现汽车或者道路的概率为30%。坏人只需要做出一个路牌定位器,然后通过无限刷新验证码,就可以只验证路牌类的问题,从而无视其余复杂的自然场景。那么,研发一个路牌定位器需要多少资源?笔者采用fast-rcnn算法,仅需要500张粗糙标注的样本,30分钟训练便有了上图的定位效果。

12306验证码是如何破解的呢?

回到12306验证码,要解决这款验证码,本质上是一个 分类问题。

文本的分类:

将下图中的问题部分200*30的区域截取处理,利用某开放的OCR接口去识别,会有80%的识别准确率。这个成功率并不乐观,因此我们自己做了一个问题识别器。假如将全部OCR结果直接投入Alex-net中,会存在大量的错误数据,得到的分类器成功率将低于10%,效果很差。但是依据概率清洗,统计完OCR识别结果的图片,把出现频率高的认为是一个标签,就会发现在5万张图片中,平均每个问题的出现率为1%。去除出现频率特别低的样本数据后(比如口哨偶尔会识别成口肖,出现频率低则去除该样本),重新训练识别成功率则高达99%,扭曲的问题文本形同虚设。

12306验证码基础版本会出现的问题如下:

['日历', '薯条', '口哨', '蜥蜴', '蒸笼', '护腕', '印章', '蜜蜂', '文具盒', '绿豆', '菠萝', '铃铛', '剪纸', '耳塞', '手掌印', '锣', '仪表盘', '红枣', '金字塔', '电线', '老虎', '', '辣椒酱', '挂钟', '双面胶', '啤酒', '蜡烛', '雨靴', '毛线', '茶几', '茶盅', '档案袋', '盘子', '狮子', '订书机', '篮球', '国结', '开瓶器', '打字机', '热水袋', '海鸥', '电子秤', '排风机', '风铃', '棉棒', '鞭炮', '龙舟', '电饭煲', '锅铲', '珊瑚', '蚂蚁', '红豆', '海苔', '钟表', '卷尺', '冰箱', '苍蝇拍', '烛台', '药片', '调色板', '创可贴', '沙包', '话梅', '本子', '安全帽', '海报', '刺绣', '牌坊', '网球拍', '路灯', '航母', '高压锅', '黑板', '拖把', '锦旗', '公交卡', '红酒', '跑步机', '樱桃', '沙拉', '漏斗']

图像的分类:

方法仍然是把标记好的图片投入VGG-16层的模型中,初期得到的识别结果较差,因为标记数据并不会完全正确,事实上现在的通用模型已经十分完善,训练的结果非常依赖数据清洗的效果。

然而,有没有得到高精度区分标记正确与否的样本集的办法呢?答案在于网站。

绝大多数网站, 都会在登录页面存在验证码,而用户常识登录时,会首先校验验证码是否正确,其次是账号密码,因此就是自己生产一堆随机账号密码,去撞登录网页,发现验证码校验通过了,但是账号密码错误,就可以有效筛选出正确的标记数据。

同样的思路,如果我用现在已经达到95%的识别模型去重复这个样本标记的行为,将得到的就会是远比现在5W样本集多的多的样本量,可预期将得到的准确率会更高,当然会有同学说,那样你的模型将局限在这类问题下,而不能成功适应他新的图像,一旦更新不就失效了吗?

是的,但是解决实际问题的时候,一些小tips就能解决这样问题,

问:如何应对验证码图片的更新迭代?

答:只识别模型能识别的验证码,在高并发刷新下即使只能识别5%的问题,实际应用也是100%。

问:如何让模型自己学习没遇到过的图像?

答:将非模型可识别的问题和图片标记为 _ 交付人工打码,将打码结果重新训练模型。

问:上面的问题有没有高级点的解决办法?

答:撞验证码库,新出现的问题随机性标注,8个格子随机撞约有2%的成功率,学会一个新物体也只需要500张样本,撞10W次即可。

问:能不能别这么流氓?

答:不能,因为面对实际问题与巨大利润,坏人就是这么流氓。

验证码场景的对抗该何去何从?

在验证码这类场景的人机对抗是十分不平等的,坏人哪怕在识别上做到5%的识别,也能通过撞的手法当成100%,固定类型的验证码图像又能够被低价打码获取到样本,即使是谷歌那样自然背景缺乏更新迭代也难逃黑手,持续的在图像方面纠缠就会走向12306和苹果那样影响用户体验的产品。

面对恶意的抗争,同样要掌握对手的思维,或许实验室中图像识别率达不到90%以上就是失败的模型,但是放在黑产中5%就是一个能赚钱的模型。

或许并不该用破解率去作为唯一指标,面对新时代的黑产,更应该用黑产的角度来反思现在的方向,从对抗的角度除了识别率,更多去牵制黑产需要动用的资源成本,破解率,识别速度,打码成本,训练成本,更新迭代的速度,后台策略更新的速度,来综合衡量一个验证码产品。

体系化以成本为评估的验证系统

例如谷歌的验证码,时不时会弹出4*4个格子的汽车道路识别,意味着坏人要做16次的CNN分类,然而在校验的过程中,他会充满互动,识别出若干后还会随机弹出若干要求继续识别,这样即使最终能被破解,坏人所需要的计算力成本时间交互成本就远远大于普通验证码。并且后台还有更多浏览器行为,设备指纹,IP等普通用户看不到的属性在综合形成人机识别的体系。

就像我们的VTT验证码新物体新逻辑问题快速迭代半小时快速上线,而即使坏人要采用fastrcnn等算法进行目标定位破解,则需要数十倍的标注成本以及多倍人力不断跟随迭代,而不再是传统字符验证码几分几厘的标注成本,自动化破解无需人力调参。而坏人在破解过程中用到的ip资源设备指纹等,又有其他策略进行对抗,因此验证码将不再只是一张验证码图片而是一套人机验证系统,一套的围绕着影响坏人成本的人机识别体系。

在这种体系下我们看到的验证码将会是最可爱可亲的情切的图片,一键的点击,通过无数只有真人具备的特征才能通过这道验证。

也会看到利用机器学习在理解人类逻辑的薄弱点而推出的

基于逻辑语义的VTT(Visual Turing Test)验证码

VTT验证码需要用户根据题目,选出图中一个或者多个答案物体,通过点击、拖动、连接等方式选中区域提交给后台判断。在保证体验依旧简单无需输入的基础上,实现了良好的对抗效果。VTT的图片由后台3D渲染随机产生,保证图片不会重复,语义也可以根据题目中的图片中的物件属性组合产生,多种多样的变化可以有效阻挡恶意。

或许要不了多久,坏人依旧诱惑于高额利润最终突破我们的验证码,而我们也将不断从红蓝对抗中,越战越强。

原文发布于微信公众号 - 腾讯技术工程官方号(Tencent_TEG)

原文发表时间:2018-04-27

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏AI科技评论

学界 | 谷歌联手斯坦福等高校研究电子病历,深度学习准确预测病人病程

AI 科技评论消息,谷歌在 ArXiv 上公开了一篇论文,也很可能是谷歌使用深度学习模型在电子病历建模分析方面的首篇文章。这篇论文由「编译器从不警告Jeff,J...

5089
来自专栏AI2ML人工智能to机器学习

机器学习模型常见对比

在“R语言和表数据分析”, 我们对常见的数据预处理流程给出一个大致的解决方案, 在这个基础上, 才能很好的谈数据质量data quality, 否则只是Garb...

1032
来自专栏AI科技大本营的专栏

人工智能在医疗领域的实践精选

导读:随着机器学习的不断发展,医疗领域也在发生巨大的变革,下面我们将对人工智能在医疗领域的实践做一个简单的介绍。 “数据挖掘即为深入分析数据直到得出满意结果的过...

2914
来自专栏数据派THU

独家 | 全解用Python建立能源市场算法交易的机器学习框架(附链接)

人工智能的新突破每天都成为头条新闻。在金融领域,机器学习的广泛运用和强大的应用,客户们并不了解。事实上,很少有像金融行业那样具有深厚历史、清楚明了和结构化数据的...

2273
来自专栏AI研习社

AI Challenger 2018 即将进入决赛,八大数据集抢先看

雷锋网(公众号:雷锋网) AI 研习社消息,由创新工场、搜狗、美团点评、美图联合主办的 AI Challenger 2018 即将进入第二阶段比赛。今年的大赛主...

1154
来自专栏大数据文摘

新一季《权力的游戏》谁又要挂掉?算法神预测龙妈要去领盒饭了!

1974
来自专栏新智元

运用谷歌 BigQuery 与 TensorFlow 做公共大数据预测

【新智元导读】谷歌BigQuery的公共大数据集可提供训练数据和测试数据,TensorFlow开源软件库可提供机器学习模型。运用这两大谷歌开放资源,可以建立针对...

6876
来自专栏大数据文摘

为什么说GANs是一个绝妙的艺术创作工具?

我是一个艺术家,同时也是一位开发者。艺术和软件在我的生活中曾经是两个平行的轨道,直到我发现了GANs(Generative Adversarial Networ...

1132
来自专栏专知

张翼英:一点论文写作心得

【导读】论文是硕士博士必修之关。我们转载一篇来自张翼英老师的论文心得文章! 本文来自张翼英科学网博客。 链接地址:http://blog.sciencenet....

3767
来自专栏量子位

GitHub深度学习开源项目Top200正式公布 | 资源帖

最近,来自埃及的Mahmoud Badry,做了一张GitHub深度学习项目Top 200天梯榜,月更。

931

扫码关注云+社区

领取腾讯云代金券