看完《验证码的前世此生(前世篇)》也许第一感受就是Winter is coming,互联网的人机对抗到了最黑暗的时刻。柳暗花明又一村,最黑暗的时刻也是光明即未来临的时刻——在传统验证码的末日新的反向图灵测试机制浴火重生。前端
##0×1 验证码的划代标准算法
在介绍新的反向图灵测试机制前,首先咱们对验证码进行划代对比。经过验证码的划代对比咱们能更清楚新型验证码的特性。后端
验证码划代的标准是人机识别过程当中基于对人类知识的应用。安全
###第一代:标准验证码前端工程师
这一代验证码是便是咱们常见的图形验证码、语音验证码,基于机器难以处理复杂的计算机视觉及语音识别问题,而人类却能够轻松的识别来区分人类及机器。这一代验证码初步利用了人类知识容易解答,而计算机难以解答的机制进行人机判断。并发
###第二代:创新验证码机器学习
第二代验证码是基于第一代验证码的核心思想(经过人类知识能够解答,而计算机难以解答的问题进行人机判断)而产生的创新的交互优化型验证码。第二代验证码基于第一代验证码的核心原理--“人机之间知识的差别”,拓展出大量创新型验证码。函数
如12306的验证码也是对于传统验证码的一种创新:性能
###第三代:无知识型验证码学习
第三代验证码最大的特色是再也不基于知识进行人机判断,而是基于人类固有的生物特征以及操做的环境信息综合决策,来判断是人类仍是机器。无知识型验证码最大特色即无需人类思考,从而不会打断用户操做,进而提供更好的用户体验。
如Google的新版ReCaptcha:
阿里巴巴的滑动验证:
##0×2 无知识型验证码的原理
**Step 1:**在Web前端周期性的对Javascript代码进行混淆和并更新加密算法,将不可信的Web前端打形成可信的客户端。在用户进行滑动操做时,基于可信的客户端采集用户操做的行为信息以及环境信息,将其加密后提交给后端的风控引擎;
Web前端由于代码都是明文形式的脚本语言,服务端想要从客户端获取可信的数据一直面临“源码面前,了无秘密”的困扰。给一个前端工程师充足的时间,彷佛Web前端真的是了无秘密,以下图:
而随着攻防对抗的持续,安全的补锅匠们总能找到猥琐的方法来进行防护。Web前端虽然没有客户端防止逆向和调试的安全强度,可是却具有客户端所不具备的hotpatch能力。
参考Map-Reduce的原理,单台机器性能不行,把任务分派到多台机器并发执行。若是单份Javascript混淆的强度不可行,那么周期性的对Javascript代码自动混淆。即使攻击者可以短期的对Web前端进行逆向,但逆向出来的功能短时间以后就会在服务端失效,那么也能极大的消耗攻击者的成本。
更可怕的是丧心病狂的Google基于Javascript彻底的实现一套虚拟机,核心代码使用字节码实现。周期性的对字节码格式更新逆向的成本成几何级数递增。
若是代码逻辑不更新,仅仅重复的混淆原有逻辑,那么仍然没有意义。而对于一个Web的验证码应用,核心功能只有两部分:
一、事件采集模块,采集用户的行为信息,此部分逻辑简单,也没法自动化更新代码逻辑; 二、行为数据加密模块,该部分的核心是加密算法,彷佛代码逻辑自动化更新变化有足够空间。
为了保障前端的可信,须要对加密算法进行自动化更新,必需要有一个巨大的对称加密算法可选集合才能保证代码的自动化更新。而全部对称加密算法都基于Feistel分组密码结构,基于Feistel分组密码结构能够派生出无数的对称加密算法,从而能够派生出无数的的对称加密算法。
以下图,Festel分组结构的可逆性不要求加密的核心函数F可逆,故能够自动的生成任意的F函数进而派生出无数对称加密算法。
基于自动化的代码更新及混淆机制从而保障整个Web代码对抗逆向分析和调试的强度,进而将不可信的Web前端打形成可信的端。
Step 2:后续风控引擎会基于用户操做的行为特征、用户环境信息、用户对应的设备指纹及其设备信誉综合进行决策,判断是否须要对该次操做进行二次判断或者是直接阻断。
##0×3 无知识型验证码的优势
无知识型验证码有三大核心优势,分别是用户体验,风险识别,风险拦截。
用户体验:
无知识型验证码针对大多数的用户可以无需思考,直接经过。不存在业务和流程的打断,体验流畅,对用户体验的提高毋庸质疑。
风险识别:
由于随着机器学习的发展让机器掌握人类具备的知识也再也不是难点,无知识型验证码再也不基于知识来挑战机器,而是基于人类的固有行为特征以及操做的环境信息综合进行风控决策,攻击者难以批量的模拟出能够欺骗风控引擎的正常人类的的操做。
风险拦截:
普通的验证码基于知识对机器发起挑战,没法作到对机器进行阻断。由于知识的挑战还须要兼顾人类的体验,机器经过的几率只能作到无限的下降而没法消除。而无知识型验证码基于后端的风控决策,能够对不一样风险的操做提出更高难度的验证码乃至阻断,有更大空间对风险进行消除和拦截。
##0×4 总结
目前阿里聚安全提供的滑动验证产品,目前对外提供免费试用,欢迎申请免费试用
最后,但愿新型的验证码可以建设更简单和安全的互联网: )
####做者:南浔@阿里安全,更多安全类知识及资讯,请访问**阿里聚安全博客**