Google 的“No Captcha reCaptcha”是如何工作的?

信息安全 验证码 机器人
2021-08-22 05:16:34

谷歌发布了一种新形式的机器人验证码,要求用户点击一个复选框。它仅在必要时使用基于图像的验证。

有人可以向我解释一下这样的程序如何区分人类和机器人吗?

这里有一个程序可以在您的计算机上执行鼠标点击。无法访问您的程序文件的基于 Web 的程序无法检测到它。应该可以编写一个无法检测到的可以勾选复选框的 Windows 可执行文件。也可以随机化程序的响应时间。

几次(成功)尝试后,验证码将要求进行图像验证。也许这可以通过使用谷歌图像搜索(按图像)搜索图像的人工智能来解决,并根据“视觉相似”图像的文件名进行猜测。如果使用的图像不是来自网络,那么它们的数量将受到限制,并且可以创建它们的数据库。

有人可以澄清这些方法是否真的有效吗?

4个回答

这对于 stackexchange 来说并不是一个很好的问题,因为谷歌对其算法保密,所以我们真正能做的就是猜测它是如何工作的,但我的理解是,新系统将分析你在谷歌所有服务中的活动(以及可能是 Google 可以控制的其他网站,例如有 Google 广告的网站)。

因此,检查很可能不仅限于上面有复选框的页面。例如,如果他们检测到您使用的计算机/IP 地址过去也被用于做普通人会做的事情 - 例如检查 Gmail、在 Google 搜索中搜索、将文件上传到云端硬盘、共享照片、浏览网络等 - 那么它可能可以合理地确定您是一个人并允许您跳过图像验证。另一方面,如果它无法将您的计算机与任何以前的类似人类的活动相关联,那么它会更加可疑并为您提供图像验证。尽管单击复选框时的鼠标行为可能是它分析的一个因素,但几乎可以肯定还有更多因素。

同样,我们不确定它是如何工作的。这只是我根据小谷歌所说的最好的猜测:

虽然新的 reCAPTCHA API 可能听起来很简单,但在这个不起眼的复选框背后却有着高度的复杂性。验证码长期以来一直依赖于机器人无法解决扭曲的文本。然而,我们最近的研究表明,当今的人工智能技术甚至可以以 99.8% 的准确率解决最困难的扭曲文本变体。因此,扭曲的文本本身不再是一个可靠的测试。

为了解决这个问题,去年我们为 reCAPTCHA 开发了一个高级风险分析后端,它积极考虑用户与 CAPTCHA 的整个互动——之前、期间和之后——以确定该用户是否是人类。这使我们能够减少对输入扭曲文本的依赖,进而为用户提供更好的体验。我们在今年早些时候的情人节帖子中谈到了这一点。

对我来说,关于“使用前、使用中和使用后”的观点强烈暗示他们分析了以前的浏览行为,但我的解释可能是错误的。

以下是《连线》杂志的一段话:

Google 的“reCaptcha”不依赖于传统的扭曲词测试,而是检查每个用户不经意间提供的线索:IP 地址和 cookie 提供了证据,证明用户与 Google 在网络上其他地方记忆中的友好人相同。Shet 说,即使是用户鼠标在悬停并接近复选框时做出的微小动作,也有助于揭示自动机器人。

stackoverflow 上还有另一个线程也在讨论这个问题:https ://stackoverflow.com/questions/27286232/how-does-new-google-recaptcha-work

至于图像验证,您将无法通过反向图像搜索找到这些图像,或者编译它们的数据库。它们通常是谷歌街景汽车捕获的随机街道标志或门牌号,或者是为谷歌图书项目扫描的图书中的文字。这背后有一个很好的目的——谷歌实际上利用人们在 reCaptcha 中输入的内容来改进他们自己的数据库并训练 OCR 算法。reCaptcha 将相同的图像提供给许多用户,如果他们都同意它所说的内容,那么该图像将成为谷歌人工智能的训练数据。

来自维基百科:

reCAPTCHA 服务为订阅网站提供光学字符识别 (OCR) 软件无法读取的单词图像。作为正常验证程序的一部分,订阅网站(其目的通常与图书数字化项目无关)呈现这些图像供人类解读为验证码字。然后他们将结果返回给 reCAPTCHA 服务,该服务将结果发送给数字化项目。

reCAPTCHA 致力于将《纽约时报》的档案和 Google 图书中的书籍数字化。[3] 截至2012年,《纽约时报》已数字化三十年,该项目计划于2013年底完成剩余年限。现已完成的《纽约时报》档案可从纽约时报文章档案中搜索,从 1851 年至今,总共有超过 1300 万篇文章被存档。

我也曾经对这件事感到惊讶。所以,我做了什么,在 Chrome 中打开隐身模式,然后浏览一个有新的谷歌验证码的网站并勾选框。好吧,它没有让我通过,而是显示了一系列图像并要求我选择与一个图像相关的图像。

这表明谷歌一直在跟踪我们的行为,以确定我们是否是人类。

隐身模式

当你点击我不是机器人时,它会通过 HTTP 请求向谷歌发送一大堆有用的信息,比如

  • 您的 IP 地址
  • 你的国家
  • 时间戳

来自浏览器的信息,例如在输入复选框之前移动光标的方式。单击之前如何滚动页面。不同浏览器事件之间的时间间隔和谷歌保密的许多其他变量。

然后,所有这些标准都由谷歌的机器学习风险分析处理,大多数情况下,这些信息可以区分人类和机器人,但如果风险分析引擎仍然不确定,那么一小部分用户通常会完成额外的挑战.

这就是图像识别 CAPTCHA的用武之地。如果您以这种方式证明自己是人类,那么 Google 的引擎很可能会记住,并且下次单击该复选框后,您将能够直接通过这些。

据我所知,逻辑是这样的:

  • 如果用户没有登录Google 帐户(在浏览器中),那么他/她会得到一个可见的验证码。
  • 如果用户已登录,则根据您以前(可能通过 google)的活动历史记录(在该页面上或在您导航到那里之前),有两种可能的情况:
    1. 你不会得到任何验证码
    2. 您将获得更容易的验证码(即 1 个迷宫而不是 4 个迷宫)

我不能很好地理解,checkbox当算法已经检测到您是人类时,验证码的用途是什么。