网易乐得技术团队

网御安全防护——验证码服务

1.验证码的历史与进化

验证码的划代标准

  • 第一代:标准验证码
  • 第二代:创新验证码
  • 第三代:无知识性验证码

1.1 第一代:标准验证码

这一代验证码是即是我们常见的图形验证码、语音验证码,基于机器难以处理复杂的计算机视觉及语音识别问题,而人类却可以轻松的识别来区分人类及机器。这一代验证码初步利用了人类知识容易解答,而计算机难以解答的机制进行人机判断。

早期的验证码,使用扭曲的字母和背景颜色梯度。

一种更现代的CAPTCHA,其不使用扭曲的背景及字母,而是增加一条曲线来使得图像分区更困难。

另一种增加图像分区难度的方法为将符号彼此拥挤在一起,但其也使得真人用户比较难以识别。

1.2 第二代:创新验证码

第二代验证码是基于第一代验证码的核心思想(通过人类知识可以解答,而计算机难以解答的问题进行人机判断)而产生的创新的交互优化型验证码。第二代验证码基于第一代验证码的核心原理--“人机之间知识的差异”,拓展出大量创新型验证码。

如下面的加减乘除数学算式型的验证码是对于传统验证码的一种创新:

类似这种知识问答验证码也是对于传统验证码的一种创新:

如上面这种类型的验证码不再是枯燥的数字或算式,这种类型的验证码也是对于传统验证码的一种创新:

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

1.3 第三代:无知识性验证码

第三代验证码最大的特点是不再基于知识进行人机判断,而是基于人类固有的生物特征以及操作的环境信息综合决策,来判断是人类还是机器。无知识型验证码最大特点即无需人类思考,从而不会打断用户操作,进而提供更好的用户体验。

如Google的新版ReCaptcha:

无知识性验证码的原理

在Web前端周期性的对Javascript代码进行混淆和并更新加密算法,将不可信的Web前端打造成可信的客户端。在用户进行滑动操作时,基于可信的客户端采集用户操作的行为信息以及环境信息,将其加密后提交给后端的风控引擎;

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

无知识性验证码的优点

用户体验:无知识型验证码针对大多数的用户能够无需思考,直接通过。不存在业务和流程的打断,体验流畅,对用户体验的提升毋庸质疑。

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

风险拦截:普通的验证码基于知识对机器发起挑战,无法做到对机器进行阻断。因为知识的挑战还需要兼顾人类的体验,机器通过的概率只能做到无限的降低而无法消除。而无知识型验证码基于后端的风控决策,可以对不同风险的操作提出更高难度的验证码乃至阻断,有更大空间对风险进行消除和拦截。

2.网御安全防护系统简介

滑动拼图验证码是第一道防线,文字点选验证码是第二道防线

滑动拼图验证码

文字点选验证码

Demo 演示

验证码服务开发指引

3.网御安全防护系统技术架构

使用 NOS 文件存储服务,存储验证码图片,并生成图片临时访问地址,避免暴露验证码图片的真实地址

4.将来的开发计划

  • 验证码产品丰富
  • 建立大数据风控模型
  • 无知识性的验证码