reCAPTCHA: Can’t robot tick a box? What happens?

4 min read

CAPTCHA và reCAPTCHA

CAPTCHA là gì?

CAPTCHA (Completely Automated Public Turing test to tell Computers and Humans Apart) hay ““Bài kiểm tra turing công khai tự động để phân biệt máy tính và con người”. Đây là thuật ngữ do Manuel Blum, Luis von Ahn, Nicholas J. Hopper (trường Đại học Carnegie Mellon) cùng John Langford (IBM) nghiên cứu & giới thiệu vào năm 2000.

Thực chất, CAPTCHA là một mã kiểm tra yêu cầu người dùng internet phải vượt qua trước khi tiếp cận một trang web hay nền tảng nào đó, nhằm xác định người dùng là người thật hay máy tính spam.

Lúc đầu, CAPTCHA truyền thống hoạt động thông qua việc yêu cầu người dùng nhập đoạn kí tự ngẫu nhiên được làm méo mó khiến các chương trình tự động khó dịch được. Sau này, nhằm đối phó với sự phát triển nhanh chóng của Bots, các CAPTCHA được nâng cấp thành các reCAPTCHA.

reCAPTCHA là gì?

Như đã nói ở trên, reCAPTCHA là phiên bải CAPTCHA cải tiến của Google.

Chẳng hạn, khi truy cập một trang web, bạn có thể được yêu cầu tìm ra các hình vuông chứa hình ảnh xe máy, ô tô,… Hay một loại reCAPTCHA phổ biến hơn là checkbox “Tôi không phải là người máy”.

reCAPTCHA

Các loại reCAPTCHA

Từ năm 2009,Google đã ra mắt nhiều phiên bản reCAPTCHA khác nhau:

1. ReCAPTCHA v1

Phiên bản reCAPTCHA đầu tiên của Google không thay đổi quá nhiều so với CAPTCHA truyển thống. Người dùng được yêu cầu giải mã các văn bản bị bóp méo thông qua hình ảnh từ các cuốn sách cũ hay bài báo,… trước khi được chuyển đến trang web tiếp theo.

Tuy nhiên, các bài kiểm tra này không làm khó được các bots đã được cải tiến nhưng lại làm khó nhiều người dùng thật sự, do đó, Google đã ngừng sử dụng phiên bản này từ 3/2018.

2. ReCAPTCHA v2

ReCAPTCHA v2 được ra mắt sau đó, với hi vọng cung cấp các bài kiểm tra phức tạp hơn để ngăn chặn bot nhưng không làm khó con người. V2 xác nhận người dùng thông qua hai cách:

No CAPTCHA reCAPTCHA: Người dùng được yêu cầu click chuột tick vào hộp thoại “Tôi không phải người máy” . Sau đó, các thuật toán phân tích rủi ro sau đó sẽ đánh giá mức độ tin cậy của nó. Nếu kết quả đề xuất là của một con người, trang web sẽ tiếp tục xử lý yêu cầu của người dùng. Ngược lại, nếu có dấu hiệu của hoạt động gian lận hoặc bot, reCAPTCHA có thể yêu cầu thêm các bước xác thực hoặc từ chối yêu cầu.

    Invisible reCAPTCHA hay reCAPTCHA ẩn : Một công ty có thể ẩn đi hộp thoại “Tôi không phải người máy” bằng cách tích hợp nó với một nút bấm trên website. Sau đó, khi người dùng click vào nút bấm đó, quá trình xác thực của hộp thoại “Tôi không phải người máy” sẽ tự động hoạt động ngầm mà không yêu cầu người dùng làm gì cả.

    3. ReCAPTCHA v3

    ReCAPTCHA v3 là phiên bản mới nhất, tránh làm gián đoạn trải nghiệm người dùng. Phiên bản này giới hạn sự tương tác của người thông qua JavaScript API tính điểm theo hành vi và lịch sử của người dùng hiện tại, và sẽ yêu cầu các bài kiểm tra xác thực khác nếu mức điểm về 0.

    Nhưng tại sao bot lại không vượt qua được các reCAPTCHA, liệu có phải do các bots không biết tick vào hộp thoại hay nhận biết được các hình ảnh đèn giao thông?

    Cách reCAPTCHA thực sự hoạt động

    ReCAPTCHA không thực sự hoạt động thông qua kiểm tra các câu trả lời của người dùng. Thay vào đó, các bài kiểm tra đó còn phân tích hành vi và các dữ liệu được thu thập qua trình duyệt, sử dụng các thuật toán để xác định người dùng có phải người thật hay không và quản lí truy cập của trang web.

    Theo Justin Petitt, giám đốc của Cybersecurity Center of Excellence at Edgewater Federal Solutions, hệ thống có thể đọc được hành vi sử dụng của người dùng thông qua nhiều cách khác nhau để xác thực người dùng.

    Một cách mà các hệ thống thường sử dụng là theo dõi cách người dùng di chuyển, điều khiển chuột máy tính và bàn phím trên màn hình. Cụ thể, hệ thống sẽ kiểm tra liệu người dùng có đang di chuyển chuột quá nhanh hay ổn định một cách tuyệt đối, không có tình trạng rung lệch như cách chúng ta dùng tay điều khiển chuột hay trackpads.

    Các bots có thể di chuyển chuột máy tính theo các đường thẳng với tốc độ ổn định tuyệt đối, trong khi đó con người thì di chuyển một cách cảm tính hơn nhiều. Do đó, đây cũng là cách mà các hệ thống xác thực liệu người dùng có phải con người hay không, bởi con người không thể di chuyển theo những đường thẳng chính xác như cách mà các hệ thống máy tính làm được.

    Avatar photo

    Clean Code: Nguyên tắc viết hàm trong lập trình…

    Trong quá trình phát triển phần mềm, việc viết mã nguồn dễ đọc, dễ hiểu là yếu tố then chốt để đảm bảo code...
    Avatar photo Dat Tran Thanh
    3 min read

    Leave a Reply

    Your email address will not be published. Required fields are marked *