新的Google reCAPTCHA如何工作?

最近Google推出了一个简化的“validation码”validation系统( video ),使用户只需点击即可通过“validation码”。

但是,如何通过点击来区分bot和bot呢?

根据这个答案 ,(假设类似的实现),首先“recaptcha”产生一个隐藏的键并将其附加到一个隐藏的input元素,也懒惰地呈现一个checkbox(不是一个实际的checkboxinput但一个div )当被点击时,向Google后端服务器发送asynchronous请求(XHR),以将其标记为有效的validation密钥(即,在提交表单时必须validation的密钥)。

但为什么不能自动化点击(至less,基于浏览器的机器人)?

这可能如何工作?

这是猜测,但基于Google引用他们使用的“风险分析引擎”( http://googleonlinesecurity.blogspot.com/2014/12/are-you-robot-introducing-no-captcha.html

我会假设它看着你点击之前的行为,你的光标如何移动到检查(有机path/加速度),checkbox的哪一部分被点击(随机的地方,或每次死在中心),浏览器指纹,谷歌cookies和内容,点击与指纹或账户绑定的位置logging,如果它检测到一个等。

伪造“有机”行为是相当困难的,以至于会愚弄一个不断学习的模式检测引擎。 在不确定的情况下,它仍然会提示你匹配一个实际的CAPTCHAstring。

一个新的论文已经发布了几个针对reCAPTCHA的testing:

docs/asia-16/materials/asia-16-Sivakorn-Im-Not-a-Human-Breaking-the-Google-reCAPTCHA-wp.pdf

一些亮点:

  • 通过使cookie保持活跃状态​​9天(通过使用Google资源浏览网站),您只需单击checkbox即可传递reCAPTCHA;
  • 根据每个IP的请求没有限制;
  • 浏览器的用户代理必须是真实的,Google会针对您的环境运行testing以确保它与用户代理相匹配;
  • Googletesting浏览器是否可以渲染Canvas;
  • 屏幕分辨率和鼠标事件不会影响结果;

Google已经修复了这个漏洞,可能会限制一些基于IP的行为。

另一个有趣的发现是,Google在JavaScript中运行一个虚拟机,混淆了许多reCAPTCHA代码和行为。 这个VM被称为botguard,用于保护除了reCAPTCHA以外的其他服务:

https://github.com/neuroradiology/InsideReCaptcha

更新2017年

最近的一篇论文(从八月份)发表在WOOT 2017上,在解决noCAPTCHA reCAPTCHAaudio挑战方面达到了85%的准确率:

papers/uncaptcha_woot17.pdf

我的机器人对ReCaptcha运行良好。

这里我的解决scheme

让你的机器人做这个步骤:

首先编写一个人类鼠标移动function,像B样条一样移动鼠标(向我索要源代码)。 这是最重要的一点。

也可以使用更好的结果像https://www.purevpn.com一样的VPN

对于每个Recpatcha,请执行以下步骤:

  1. 如果您先使用VPN交换机IP

  2. 清除所有浏览器Cookie

  3. 清除所有浏览器caching

  4. 通过随机设置这些Useragents中的一个:

    一个。 Mozilla / 5.0(兼容; MSIE 9.0; Windows NT 6.1; Trident / 5.0)

    湾 Mozilla / 5.0(Windows NT 6.1; WOW64; rv:44.0)Gecko / 20100101 Firefox / 44.0

5用鼠标移动你的鼠标从RandomPoint移动function到我不是一个机器人图像每次不同10×10 Randomrange

  1. 然后点击之间的随机延迟

    WM_LBUTTONDOWN

    WM_LBUTTONUP

  2. 从图片validation码截图

  3. 将截图发送到

    http://www.deathbycaptcha.com

    要么

    https://2captcha.com

让他们解决。

  1. 在从validation码解算器接收到同步点击之后,使用鼠标移动function移动并单击回收图像

  2. 使用您的人类鼠标移动function移动并单击回收validationbutton

在75%的所有trys Recaptcha将解决

Chears Google

汤姆

我怀疑这是浏览器的历史。 我会说这是鼠标移动,滚动,时间间隔,击键和类似的东西。 机器人在模仿你的行为方面依然很不好。

虽然确切的技术不会只是交给公众 – 这将是愚蠢的 – 有迹象表明,它依赖于跟踪用户的行为之前和之后的正确答案(是的,这是一口)挑战。

http://codesupport.info/new-google-recaptcha-free-anti-abuse-service-say-im-robot-just-click/

我可以提出我的猜测,因为这不是一个开放的技术。

谷歌说,它是关于从之前,之中,之后来区分人与机器人的信息。 但是我对最后点击checkbox更感兴趣。

说,POST数据(解决了CAPTCHA)有一个字段叫指纹,一个string从用户行为计算。 我想可能有关于该checkbox位置的字段。 我猜这个checkbox是在谷歌后端随机生成的坐标系中,并且由我的网站的公钥encryption。 所以,一个机器人可能会“猜测/计算”一个关于这个盒子的位置,但是当网站所有者用私钥对GET查询进行validation时,Google将会解密坐标系并且说出用户是否在正确的位置点击。 因此,只有一个可能的右键点击(有一些偏移,这是一个方形框)位置在这个随机的坐标系统只有谷歌和网站所有者拥有。