Google reCAPTCHA v2 hoạt động như thế nào sau hậu trường?


303

Bài đăng này đề cập đến Google ReCaptcha v2 (không phải phiên bản mới nhất)

Gần đây, Google đã giới thiệu một hệ thống xác minh "captcha" đơn giản hóa ( video ) cho phép người dùng vượt qua "captcha" chỉ bằng cách nhấp vào nó.

Nhưng làm thế nào nó có thể phân biệt bot với một người chỉ bằng một cú nhấp chuột?

Theo câu trả lời này , (giả sử thực hiện tương tự), lúc đầu "recaptcha" sẽ tạo một khóa ẩn và gắn nó vào một phần tử đầu vào bị ẩn và cũng hiển thị một hộp kiểm (không phải là hộp kiểm thực tế inputmà là một div) với cùng một khóa khi được nhấp, sẽ gửi một yêu cầu không đồng bộ (XHR) đến các máy chủ phụ trợ của Google để đánh dấu nó là khóa xác minh hợp lệ (nghĩa là một khóa phải được xác thực khi biểu mẫu được gửi).

Nhưng tại sao các bot không thể tự động hóa nhấp chuột đó (ít nhất là các bot dựa trên trình duyệt)?

Làm thế nào điều này có thể làm việc?


1
Có lẽ tương tự như cách họ gửi captcha đơn giản cho con người và captcha cứng cho bot
mukunda

1
Theo cách tôi hiểu - vẫn còn một hình ảnh xác thực, nhưng trừ khi bạn đưa ra yêu cầu đáng ngờ - bạn sẽ không bao giờ phải giải quyết nó.
Kelm

@Louie "Bị đánh cắp" là gì? Có người hỏi cùng một câu hỏi và liên kết cùng một bài (và duy nhất) bài viết nhưng nó được diễn đạt hơi khác một chút và không có câu trả lời nào giống nhau. Hơn nữa, câu hỏi Quora ban đầu đã được đăng vào ngày 3 tháng 12, một ngày trước câu hỏi này. Hình như có vấn đề gì thì phải?
wchargein

10
@CiroSantilli 事件 cái quái gì vậy? liên kết không còn nữa
TechLife

14
@TechLife đúng! Có vẻ như đã chuyển sang github.com/neuroradiology/InsideReCaptcha ? Nhắc nhở bản thân: luôn luôn ngã ba thứ.
Ciro Santilli 郝海东 冠状 病 事件

Câu trả lời:


200

Đây là suy đoán, nhưng dựa trên tài liệu tham khảo của Google về "công cụ phân tích rủi ro" mà họ sử dụng ( http://googleonlinesecurity.blogspot.com/2014/12/are-you-robot-int sinhing-no-captcha.html )

Tôi sẽ cho rằng nó nhìn vào cách bạn hành xử trước khi nhấp, cách con trỏ di chuyển trên đường đến kiểm tra (đường dẫn / gia tốc hữu cơ), phần nào của hộp kiểm được nhấp (vị trí ngẫu nhiên hoặc chết ở giữa mỗi lần), trình duyệt vân tay, cookie và nội dung của Google, nhấp vào lịch sử vị trí được gắn với dấu vân tay hoặc tài khoản của bạn nếu phát hiện dấu vân tay, v.v.

Thật khó để giả mạo hành vi "hữu cơ" theo cách nó sẽ đánh lừa một công cụ phát hiện mô hình học tập liên tục. Trong trường hợp không chắc chắn, nó vẫn nhắc bạn khớp chuỗi CAPTCHA thực sự.


73
Điều đó có vẻ đúng và nên giải thích lý do tại sao tôi luôn phải gõ một chuỗi trên PSVita của mình bằng gậy. Nó không di chuyển như một con chuột bình thường.
Domino

3
Tôi đang tự hỏi làm thế nào Google sẽ phản ứng với một lượng hành vi hữu cơ được ghi lại đủ lớn.
Markus Malkusch

16
Chuyển động chuột chắc chắn không góp phần vào điều này. Đặt con trỏ ngay tại vị trí mà hộp kiểm sẽ xuất hiện. Điều hướng đến trang web mà không di chuyển con trỏ của bạn. Nhấp vào hộp kiểm và nó sẽ vượt qua.
Derek 朕 會

3
@Derek, tôi không nghĩ đó là bằng chứng của bất cứ điều gì. Cookies, IP và nhiều yếu tố khác có thể góp phần cho phép bạn vượt qua trước khi chúng quay trở lại chuyển động của chuột. Tôi không muốn thử nghiệm nó, nhưng nếu bạn kích hoạt một máy tính mới từ một IP mới và hoàn toàn không sử dụng chuột, tôi sẵn sàng đặt cược rằng nó sẽ thất bại.
Caample

13
Lưu ý rằng bạn cũng có thể tab qua nó và nhấn phím cách.
JSideris

74

Một bài báo mới đã được phát hành với một số thử nghiệm chống lại reCAPTCHA:

https://www.blackhat.com/docs/asia-16/m vật liệu / ara-16

Một số điểm nổi bật:

  • Bằng cách giữ cookie hoạt động trong hơn 9 ngày (bằng cách duyệt các trang web có tài nguyên Google), sau đó bạn có thể vượt qua reCAPTCHA chỉ bằng cách nhấp vào hộp kiểm;
  • Không có hạn chế dựa trên yêu cầu cho mỗi IP;
  • Tác nhân người dùng của trình duyệt phải là thật và Google chạy thử nghiệm đối với môi trường của bạn để đảm bảo nó phù hợp với tác nhân người dùng;
  • Google kiểm tra nếu trình duyệt có thể hiển thị Canvas;
  • Độ phân giải màn hình và các sự kiện chuột không ảnh hưởng đến kết quả;

Google đã sửa lỗ hổng cookie và có thể hạn chế một số hành vi dựa trên IP.

Một phát hiện thú vị khác là Google chạy VM trong JavaScript làm xáo trộn phần lớn mã và hành vi của reCAPTCHA. VM này được gọi là botguard và được sử dụng để bảo vệ các dịch vụ khác ngoài reCAPTCHA:

https://github.com/neuroradiology/InsideReCaptcha

CẬP NHẬT 2017

Một bài báo gần đây (từ tháng 8) đã được xuất bản trên WOOT 2017 đạt được độ chính xác 85% trong việc giải quyết các thách thức âm thanh noCAPTCHA reCAPTCHA:

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

CẬP NHẬT 2018

Google đang giới thiệu reCAPTCHA v3, trông giống như một "công cụ dự đoán điểm số của con người" được hiệu chỉnh trên mỗi trang web. Nó có thể được cài đặt vào các trang khác nhau của trang web (hoạt động như tập lệnh Google Analytics) để giúp reCAPTCHA và chủ sở hữu trang web hiểu hành vi của con người so với bot trước khi điền reCAPTCHA.

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


4
mouse events don't affect the resultsĐiều đó thật thú vị, vì tôi (và tôi tin rằng nhiều người khác) đã nghĩ rằng đó là điều chính ảnh hưởng đến kết quả. Tôi nghĩ trên điện thoại di động thay vì hộp kiểm, người dùng được yêu cầu chọn tất cả các hình ảnh giống nhau, vì không có chuyển động chuột trên màn hình cảm ứng. Tuy nhiên, nhìn vào bài viết giới thiệu một lần nữa, có vẻ như đó không phải là trường hợp. Có lẽ việc chọn hình ảnh là thay vì gõ văn bản bị bóp méo chứ không phải thay vì chọn hộp. Bạn (hoặc bất cứ ai) có biết liệu reCAPTCHA có bao giờ cho phép kiểm tra một hộp trên thiết bị di động không?
Nateowami

Sự kiện chuột làm ảnh hưởng đến kết quả. Nếu bạn nhấn TabEnterđể chọn hộp kiểm, nó sẽ hiển thị hình ảnh captcha để bạn chọn chúng dựa trên một tiêu chí.
mbomb007

1
@ mbomb007 Các sự kiện chuột có thể ảnh hưởng đến kết quả nhưng nhấn TabEntersẽ không hiển thị hình ảnh xác thực mọi lúc. Hầu hết thời gian bức xúc TabEnterđược chấp nhận
Manish Ojha

24

Bots của tôi đang chạy tốt chống lại ReCaptcha.

Đây là giải pháp của tôi.

Hãy để Bot của bạn thực hiện các bước này:

Đầu tiên hãy viết Hàm di chuyển chuột của con người để di chuyển Chuột của bạn như B-Spline (Hỏi tôi về mã nguồn). Đây là điểm quan trọng nhất.

Đồng thời sử dụng để có kết quả tốt hơn VPN như https://www.purevpn.com

Đối với mỗi Recpatcha, hãy thực hiện các bước sau:

  1. Nếu bạn sử dụng VPN chuyển đổi IP trước

  2. Xóa tất cả Cookies trình duyệt

  3. Xóa tất cả Cache của trình duyệt

  4. Đặt một trong những Useragents này một cách ngẫu nhiên:

    a. Mozilla / 5.0 (tương thích; MSIE 9.0; Windows NT 6.1; Trident / 5.0)

    b. Mozilla / 5.0 (Windows NT 6.1; WOW64; rv: 44.0) Tắc kè / 20100101 Firefox / 44.0

5 Di chuyển chuột của bạn bằng Chuột người Di chuyển Funktion từ Randompoint vào Tôi không phải là Hình ảnh Robot mỗi lần với các ngẫu nhiên 10x10 khác nhau

  1. Sau đó nhấp bao giờ với độ trễ ngẫu nhiên giữa

    WM_LBUTTONDOWN

    WM_LBUTTONUP

  2. Chụp ảnh màn hình từ Image Captcha

  3. Gửi ảnh chụp màn hình tới

    http://www.deathbycaptcha.com

    hoặc là

    https://2captcha.com

và để họ giải quyết.

  1. Sau khi nhận được các lần nhấp kết hợp từ trình giải captcha, hãy sử dụng Funktion di chuyển bằng chuột của bạn để di chuyển và nhấp vào Recaptcha Images

  2. Sử dụng Funktion di chuyển chuột của con người để di chuyển và nhấp vào nút Xác minh Recaptcha

Trong 75% tất cả các trys Recaptcha sẽ giải quyết

Chiếm Google

Tom


2
Tại sao bạn cần "Chức năng di chuyển chuột của con người"? Có vẻ không cần thiết để thực hiện mục tiêu của bạn.
barbolo

9
Chức năng 'Di chuyển chuột của con người' là điểm quan trọng nhất. Google phát hiện bên trong captcha Mousepeed, MouseWay, MouseButton xuống và lên Sự kiện, Clickposeitions, Mouse Entrypoint vào captcha, ... và gửi thông tin này qua Javascript đến Cơ sở dữ liệu Google với hàng triệu Theo dõi Mousemove thực sự của con người. Sau khi giải thích tất cả các Thông tin đã nắm bắt này, Captcha sẽ đánh dấu als đã giải quyết, chỉ khi thuật toán google cho biết đó là con người.
Ingo

3
@ barbolo: Vui lòng kiểm tra Google Blog bảo mật chính thức này.googleblog.com / 2014/12 /> - Google nói "Để chống lại điều này, năm ngoái chúng tôi đã phát triển một phụ trợ Phân tích rủi ro nâng cao cho reCAPTCHA, chủ động xem xét toàn bộ sự tham gia của người dùng với CAPTCHA Trước đó, trong và sau khi xác định xem người dùng đó có phải là con người hay không. "
Ingo

6
Bước 8 sử dụng API bên ngoài nơi con người giải mã xác thực cho bạn. Bot không giải quyết được gì.
Andrea Lazzarotto

14
Có phải chỉ mình tôi hay nó vừa gây phiền nhiễu vừa hấp dẫn với bất kỳ ai khác mà các nhà văn bot đang sử dụng Stack Overflow để giúp giải quyết (và tranh luận về!) ReCAPTCHA?
Ogre Psalm33

3

Tôi có thể trình bày dự đoán của mình, vì đây không phải là một công nghệ mở.

Google cho biết đó là về việc kết hợp thông tin từ trước, trong, sau để phân biệt con người với robot. Nhưng tôi quan tâm nhiều hơn về lần nhấp cuối cùng vào hộp kiểm.

Giả sử, dữ liệu POST (CAPTCHA đã giải quyết) có một trường được gọi là dấu vân tay, một chuỗi được tính từ hành vi của người dùng. Tôi nghĩ rằng có thể có một lĩnh vực về vị trí hộp kiểm đó. Tôi đoán hộp kiểm này nằm trong một hệ thống tọa độ được tạo ngẫu nhiên bởi back-end của Google và được mã hóa bằng khóa chung của trang web của tôi. Vì vậy, robot có thể "đoán / tính toán" vị trí về hộp này, nhưng khi chủ sở hữu trang web thực hiện truy vấn GET bằng khóa riêng để xác minh danh tính người dùng, Google sẽ giải mã hệ thống tọa độ và cho biết nếu người dùng nhấp vào đúng địa điểm. Vì vậy, chỉ có một lần nhấp chuột phải có thể (với một số giá trị bù, đó là một ô vuông) vị trí trong hệ thống tọa độ ngẫu nhiên này chỉ thuộc sở hữu của Google và chủ sở hữu trang web.


Nếu trình duyệt đủ tốt để thực sự hiển thị hộp và phát hiện các nhấp chuột, thì tại sao một robot hack không thể làm điều tương tự? Tuy nhiên, tôi có thể đặt vị trí của hộp kiểm thành vị trí rất chính xác (tính bằng số thập phân) để nếu phát hiện một nhấp chuột có cùng số thập phân, điều đó có nghĩa là robot không bận tâm thêm số thập phân ngẫu nhiên vào vị trí nhấp. Nhưng một lần nữa, đó không phải là hoàn hảo.
Domino

Google được cho là đang sử dụng thuật toán 'học tập' để nếu một số khách hàng có cùng đặc điểm dường như đi theo cùng một đường dẫn chung và thời gian chung để đến đó và điều đó đã xảy ra 100.000 lần một ngày, có lẽ họ không hợp pháp.
Còi báo

1
Nó sẽ tương đối dễ dàng để mô phỏng nhấp chuột trong khu vực hình vuông. Không quan trọng làm thế nào google mã hóa dữ liệu trước khi gửi.
Eugene C

0

Xin nhớ rằng Google cũng sử dụng reCaptcha cùng với

Canvas fingerprinting 

để nhận biết duy nhất Người dùng / Trình duyệt mà không cần cookie!

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.