阿里移动安全

验证码对抗之路及现有验证机制介绍

yahoo邮箱在九几年的时候,业务深受各种邮箱机器人的困扰,存在着大量的垃圾邮件,于是他们找到了当时仍在读大学的路易斯·冯·安(Luis von Ahn),并设计了经典的图形验证码,即通过简单的扭曲图形文字进行机器的识别。

通过这个简单的图形,他们很快的控制住了垃圾邮件的数量,并将大量的机器人据之门外。

但是即使验证码解决了垃圾邮件的问题,我们仍要提出一个问句:

验证码是必要的吗?

阿里有句简单的话:不忘初心,方得始终。

验证码不是一个功能性的需求,他并不能带来业务的提升,也不能带来任何价值。

验证码只是为了解决机器问题才诞生的。在设计和验证码演化的过程中,必须同时考虑安全性和体验。

让我们老考虑验证码的最简化模型,关键点在于:生成的问题能够由人来解答,并且机器难于解答。

于是传统的图形验证码的重点就放在了如何生成让机器难于解答的图片上来。

从上图看来,相应的各种方法已经有了相当成熟的一些对抗办法,更不用说现在已经广泛泛滥的打码平台了。

结合我们安全性和体验两方面来讲,传统验证码在两方面来说都已经不能满足要求了。

树林里分开了两条路

现在随着攻防的升级和对抗的不断加强,验证码的面前针对安全性和体验这两个关键点分出了两条路:

  • 从体验上来:基于人类用户的行为
  • 从安全性上来:基于人类认知问题的答案

基于人类认知问题的答案,我们已经碰见过很多种了,这里简单贴两个:

当然也存在这类:

简要分析,优点明显:机器没有这个认知能力(废话,好多我都做不出来)

存在的问题有:

1.题库维护的难题。如果题库被遍历完成,那么其安全性无法保证。

12306为什么后面把问题变成了图片呢? 因为有攻击者将每次的答案与出现的可选问题进行了多次重复遍历,当这个遍历到达一定次数后,会发现某个答案与某张图常常会关联出现(因为问题必定会有正确答案),通过这个出现概率即可得到答案。于是,12306才把文字变成了现在扭曲的图片。 并且还有研究人发现,12306的图片可能大量来自某百科,通过逆向使用该公司的图像识别服务,可以得到该图片的部分标签。

2.体验差

过年的时候,正常人平均都要答3、4次才能答对答案。而且部分图片因为分辨率不高、再加上缩小图片以后,会更加的看不清了。

基于人类用户的行为,具体点就是用户在进行相应操作时,会产生的操作记录和环境信息(详见设备指纹一文)等。

基于人类用户行为这条路是基于以下基础的:

  • 机器人的环境有别于正常用户
  • 机器人的动作或频率等有别于正常用户
  • 机器人的在相应关键业务点的行为逻辑有别于正常用户

但是这个基础在技术对抗上有个更关键的点,在于如何构建一个安全的信道,将这些数据回传回来。如果这个信道的采集机制、加密机制和传输机制被攻击者所探知,那么以上采集的信息将没有秘密可言。(换句话说,攻击者会伪装成正常用户的行为发送数据)

Logo

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。

更多推荐