首页 文章

新的Google reCAPTCHA如何运作?

提问于
浏览
286

最近,Google推出了一个简化的"captcha"验证系统(video),使用户只需单击即可传递"captcha" .

但是,如何通过点击将机器人与人区分开来呢?

根据this answer,(假设一个类似的实现),首先"recaptcha"生成一个隐藏的密钥并将其附加到一个隐藏的输入元素,并且懒惰地呈现一个复选框(不是一个实际的复选框 input ,而是一个 div ),具有相同的密钥,当单击,向Google后端服务器发送异步请求(XHR),将其标记为有效的验证密钥(即在提交表单时必须验证的密钥) .

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

这怎么可行?

4 回答

  • 3

    这是猜测,但基于谷歌对他们使用的"risk analysis engine"的引用(http://googleonlinesecurity.blogspot.com/2014/12/are-you-robot-introducing-no-captcha.html

    我会假设它会查看您在点击之前的表现,光标在检查过程中的移动方式(有机路径/加速度),复选框的哪一部分被点击(随机位置,或每次都死在中心位置),浏览器指纹,Google Cookie和内容,如果检测到指纹或帐户,请点击与您的指纹或帐户绑定的位置记录等 .

    伪造“有机”行为是相当困难的,因为它会欺骗一个持续学习模式检测引擎 . 在不确定的情况下,它仍然会提示您匹配实际的CAPTCHA字符串 .

  • 65

    已经发布了一篇新文章,针对reCAPTCHA进行了多次测试:

    https://www.blackhat.com/docs/asia-16/materials/asia-16-Sivakorn-Im-Not-a-Human-Breaking-the-Google-reCAPTCHA-wp.pdf

    一些亮点:

    • 通过将Cookie保持活动9天(通过使用Google资源浏览网站),您只需点击复选框即可传递reCAPTCHA;

    • 基于每个IP的请求没有限制;

    • 浏览器的用户代理必须是真实的,Google会针对您的环境运行测试,以确保它与用户代理匹配;

    • Google测试浏览器是否可以渲染Canvas;

    • 屏幕分辨率和鼠标事件不会影响结果;

    谷歌已经修复了cookie漏洞,可能会限制一些基于IP的行为 .

    另一个interesting finding是谷歌在JavaScript中运行一个虚拟机,它会混淆reCAPTCHA代码和行为的大部分内容 . 此VM称为botguard,用于保护除reCAPTCHA之外的其他服务:

    https://github.com/neuroradiology/InsideReCaptcha

    UPDATE 2017

    最近的一篇论文(从8月开始)在WOOT 2017上发表,在解决noCAPTCHA reCAPTCHA音频挑战方面达到了85%的准确率:

    http://uncaptcha.cs.umd.edu/papers/uncaptcha_woot17.pdf

    UPDATE 2018

    谷歌正在推出reCAPTCHA v3,它看起来像是一个根据网站校准的“人类得分预测引擎” . 它可以安装到网站的不同页面(像Google Analytics脚本一样工作),以帮助reCAPTCHA和网站所有者在填写reCAPTCHA之前了解人类与机器人的行为 .

    https://www.google.com/recaptcha/intro/v3beta.html

  • 18

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

    我的解决方案 .

    让你的Bot做这个步骤:

    首先编写一个人体鼠标移动功能,将鼠标像B样条一样移动(向我索取源代码) . 这是最重要的一点 .

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

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

    • 如果您首先使用VPN交换机IP

    • 清除所有浏览器Cookie

    • 清除所有浏览器缓存

    • 通过随机设置其中一个Useragent:

    一个 . 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每次使用不同的10x10随机范围时,使用人类鼠标将移动鼠标从RandomPoint移动到我不是机器人图像

    • 然后点击之间随机延迟

    WM_LBUTTONDOWN

    WM_LBUTTONUP

    • 从Image Captcha获取截图

    • 发送屏幕截图

    http://www.deathbycaptcha.com

    要么

    https://2captcha.com

    让他们解决

    • 从captcha求解器接收到点击cooridinates后,使用你的Human Mouse移动Funktion移动并点击Recaptcha Images

    • 使用Human Mouse Move Funktion移动并单击Recaptcha Verify按钮

    在75%的所有trys Recaptcha将解决

    Chears谷歌

    汤姆

  • 189

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

    谷歌表示,这是为了将人与机器人区分开来之前,期间,之后的信息 . 但我对复选框上的最终点击更感兴趣 .

    比方说,POST数据(解决CAPTCHA)有一个名为fingerprint的字段,一个根据用户行为计算的字符串 . 我认为可能存在关于该复选框位置的字段 . 我想这个复选框位于由Google后端随机生成的坐标系中,并由我网站的公钥加密 . 因此,机器人可以“猜测/计算”此框的位置,但当网站所有者使用私钥进行GET查询以验证用户身份时,Google将解密坐标系并说明用户是否点击了正确的位置 . 因此,只有一个可能的右键单击(有一些偏移,它是一个方框)这个位置随机坐标系统仅由Google和网站所有者拥有 .

相关问题