让每一个人品质就业不再难
天眼ERP 全国咨询电话 13362162602

动态中心

DYNAMIC CENTERING

最新干货丨验证码模块是如何实现的?点开就知晓!

发布时间: 2021-10-13 10:11:47

验证码模块

<<<甲骨文ORACLE   天眼创智>>>






 关于验证码 


肯定遇到过这种情况!


当你打开新网页或者新软件,想要去发表自己的言论时,你会发现它需要你登录,当你点进去,它有验证码


验证码在我们日常生活中现在是随处可见,那么关于验证码你了解多少?


它的划分标准是什么?它的原理是什么?这些你都知道吗?


今天我们就来看一看关于验证码的那些事吧~






 验证码的划代标准 


1

第一代


标准验证码


这一代验证码是即是我们常见的图形验证码、语音验证码,基于机器难以处理复杂的计算机视觉及语音识别问题,而人类却可以轻松的识别来区分人类及机器。


它初步利用了人类知识容易解答,而计算机难以解答的机制进行人机判断




2

第二代


创新验证码


它是基于第一代验证码的核心思想(通过人类知识可以解答,而计算机难以解答的问题进行人机判断)而产生的创新的交互优化型验证码。


第二代验证码基于第一代验证码的核心原理:“人机之间知识的差异”,拓展出大量创新型验证码。


如12306的验证码也是对于传统验证码的一种创新:




3

第三代


无知识型验证码


第三代验证码最大的特点是不再基于知识进行人机判断,而是基于人类固有的生物特征以及操作的环境信息综合决策,来判断是人类还是机器。


无知识型验证码最大特点即无需人类思考,从而不会打断用户操作,进而提供更好的用户体验。


Google的新版ReCaptcha:



阿里巴巴的滑动验证







 无知识型验证码的原理 


1

Step 1


在Web前端周期性的对Javascript代码进行混淆和并更新加密算法,将不可信的Web前端打造成可信的客户端。


在用户进行滑动操作时,基于可信的客户端采集用户操作的行为信息以及环境信息,将其加密后提交给后端的风控引擎


Web前端因为代码都是明文形式的脚本语言,服务端想要从客户端获取可信的数据一直面临“源码面前,了无秘密”的困扰。给一个前端工程师充足的时间,似乎Web前端真的是了无秘密,如下图:



Web前端虽然没有客户端防止逆向和调试的安全强度,但是却具备客户端所不具有的hotpatch能力


参考Map-Reduce的原理,单台机器性能不行,把任务分派到多台机器并发执行


即便攻击者能够短时间的对Web前端进行逆向,但逆向出来的功能短期之后就会在服务端失效,能极大的消耗攻击者的成本。


更可怕的是Google基于Javascript完全的实现一套虚拟机,核心代码用字节码实现。周期性的对字节码格式更新逆向的成本成几何级数递增。


如果代码逻辑不更新,仅仅重复的混淆原有逻辑,那么仍然没有意义。而对于一个Web的验证码应用,核心功能只有两部分:


1、事件采集模块,采集用户的行为信息,此部分逻辑简单,也无法自动化更新代码逻辑;
2、行为数据加密模块,该部分的核心是加密算法,似乎代码逻辑自动化更新变化有足够空间。


为了保障前端的可信,需要对加密算法进行自动化更新,必须要有一个巨大的对称加密算法可选集合才能保证代码的自动化更新。


而所有对称加密算法都基于Feistel分组密码结构,基于Feistel分组密码结构可以派生出无数的对称加密算法,从而可以派生出无数的的对称加密算法。


如下图,Festel分组结构的可逆性不要求加密的核心函数F可逆,故可以自动的生成任意的F函数进而派生出无数对称加密算法。



基于自动化的代码更新混淆机制从而保障整个Web代码对抗逆向分析调试的强度,进而将不可信的Web前端打造成可信的端。



Q3

Step 2


后续风控引擎会基于用户操作的行为特征、用户环境信息、用户对应的设备指纹及其设备信誉综合进行决策判断是否需要对该次操作进行二次判断或者是直接阻断。









 无知识型验证码的优点 


无知识型验证码有三大核心优点,分别是用户体验,风险识别,风险拦截。


1


用户体验


无知识型验证码针对大多数的用户能够无需思考,直接通过


不存在业务和流程的打断,体验流畅,对用户体验的提升毋庸质疑。


2


风险识别


随着机器学习的发展让机器掌握人类具有的知识也不再是难点,无知识型验证码不再基于知识来挑战机器,而是基于人类的固有行为特征以及操作的环境信息综合进行风控决策,攻击者难以批量的模拟出可以欺骗风控引擎的正常人类的的操作。



3


风险拦截


普通的验证码基于知识对机器发起挑战,无法做到对机器进行阻断


因为知识的挑战还需要兼顾人类的体验,机器通过的概率只能做到无限的降低而无法消除。


而无知识型验证码基于后端的风控决策,可以对不同风险的操作提出更高难度的验证码乃至阻断,有更大空间对风险进行消除拦截









 了解更多 


如果你不想学习的过程一直“坑”中前行,希望学完后可以快速高薪,建议你了解甲骨文天眼


web前端课程全面升级,甲骨文天眼助你高薪就业


紧跟技术前沿小班化教学、大牛亲自指导,保证每位同学0疑问离开课堂。


服务热线

13362162602

微信服务号