Giải mã Captcha: Cuộc đua không hồi kết giữa Machine Learning và dịch vụ trực tuyến
Machine Learning
19
bypass
5
White

Alex viết ngày 09/01/2020

Machine Learning (Học máy) đã tiến xa như thế nào trong lĩnh vực giải mã Captcha?

Trong thời gian gần đây, Machine Learning là một trong những cụm từ không còn xa lạ với nhiều người. Không chỉ trong lĩnh vực trí tuệ nhân tạo, Machine Learning còn đang tham gia vào rất nhiều lĩnh vực khác. Việc phải đối mặt với một vài vấn đề liên quan đến thuật toán Convolutional Neural Network (Mạng nơ-ron tích chập - là một trong những mô hình Deep Learning tiên tiến), chúng tôi nhận ra rằng có rất nhiều điều cần cải tiến trong lĩnh vực này. Trong khi đó, các mức độ chính xác thì chưa được người dùng chấp nhận.

Captcha là gì?

Captcha là viết tắt của “Completely Automated Public Turing test to tell Computers and Humans Apart" (Hệ thống Tự động Phân biệt Con người và Máy tính). Nói cách khác, chúng ta có thể định nghĩa Captcha là một chương trình máy tính được phát triển để phân biệt giữa người và ro-bot, dùng để để ngăn chặn mọi loại hoạt động bất hợp pháp trên nhiều trang web. Giả định đóng vai trò nền tảng của Captcha là chỉ con người mới có thể vượt qua bài kiểm tra, trong khi ro-bot sẽ thất bại.

Tại sao cần giải mã Captcha?

Rất nhiều dịch vụ giải mã Captcha tự động đã được sinh ra để đáp ứng nhu cầu của con người. Một số người sử dụng dịch vụ này vào mục đích không tốt trong khi những người khác thì sử dụng vào mục đích hợp pháp.

Kẻ gửi thư rác sử dụng giải mã Captcha để trích xuất địa chỉ email của người dùng để có thể tạo ra càng nhiều thư rác càng tốt. Ví dụ hợp pháp là các tình huống mà khách hàng hoặc đối tác kinh doanh cần quyền truy cập vào API mà API này không sẵn sàng chia sẻ do vấn đề bảo mật.

Có nhiều loại Captcha khác nhau như: Captcha văn bản, Captcha hình ảnh, reCAPTCHA và CAPTCHA toán học. Việc giải quyết vấn đề đôi khi có thể gặp khó khăn vì công nghệ được sử dụng trong Captcha và reCAPTCHA đang ngày càng thông minh hơn.

Các phương pháp phổ biến để giải mã CAPTCHA

Dưới đây là các phương pháp phổ biến dùng để giải mã Captcha và reCaptcha:

OCR (Nhận dạng ký tự quang học) - là công nghệ cho phép chuyển đổi tài liệu dạng ảnh thành tài liệu có thể biên tập được. Độ chính xác của OCR phụ thuộc vào chất lượng của tài liệu gốc. Các công cụ như Ocrad, Tesseract có khả năng giải mã Captcha nhưng độ chính xác thì không cao.

Machine learning (Học máy) - Sử dụng thị giác máy tính (Computer Vision), mạng nơ-ron tích chập (Convolutional Neural Network - CNNs), framework và library của Python như Keras, Tenorflow. Và với khả năng nhận dạng hình ảnh của máy móc được luyện tập thông qua Deep learning, việc giải mã các chữ cái và chữ số trong Captcha dạng ảnh sẽ trở nên dễ dàng hơn.

Dịch vụ giải mã Captcha trực tuyến - Dịch vụ dựa trên nhân tố chủ yếu là con người. Khi bạn gửi yêu cầu giải mã Captcha, dịch vụ sẽ chuyển tiếp tới đội ngũ "gõ-Captcha" và trả lại các đáp số với tỷ lệ chính xác khá cao.

Phân tích hiệu suất của giải pháp dựa trên OCR

Dưới đây là một vài thống kê và số liệu về hiệu suất của các công cụ dựa trên ORC:

OCR là một giải pháp hiệu quả về chi phí khi với khả năng giải mã số lượng lớn các Captcha thông thường, nhưng kết quả trả về lại có độ chính xác không cao. Các giải pháp dựa trên OCR càng trở nên hiếm hơn sau khi Google phát hành ReCaptcha V3. Và OCR không được xây dựng để giải mã các Captcha được sử dụng bởi những "người khổng lồ" như Google, Facebook hoặc Twitter.

Các giải pháp dựa trên OCR giải mã đúng 1/3 Captcha có độ khó thấp.

Phân tích hiệu suất của phương pháp dựa trên Machine Learning

Hãy cùng xem xét cách các giải pháp dựa này hoạt động:

Một giải pháp dựa trên Machine Learning sử dụng OpenCV để tìm các contour (“tập các điểm-liên-tục tạo thành một đường cong và không có khoảng hở trong đường cong đó) trong ảnh, giúp phát hiện và nhận dạng đối tượng. Các hình ảnh được xử lý trước bằng kỹ thuật đặt ngưỡng (thresholding). Tất cả các hình ảnh được nhị phân hóa sang màu đen và trắng. Chúng sẽ giải mã Captcha thành các chữ cái khác nhau sử dụng hàm OpenCV findContour (). Các hình ảnh được x

Độ chính xác của giải pháp này cao hơn so với giải pháp OCR cho tất cả các CAPTCHA dựa trên văn bản. Tuy nhiên, giải pháp dựa trên Machine Learing cũng có nhiều nhược điểm, đó là chỉ giải quyết được một loại cụ thể trong khi Google vẫn đang tiếp tục cập nhật thuật toán reCAPTCHA mới. Bản cập nhật cuối cùng của ReCaptcha đã làm ảnh hưởng đến dịch vụ giải mã Captcha dựa trên Machine Learning: người dùng thông thường không bao giờ cảm thấy điều gì trong khi các giải pháp thì ngừng hoạt động hoàn toàn hoặc bắt đầu hoạt động chậm dần.
Mô hình được đào tạo với 104 lần lặp lại với các mẫu chính xác, ngẫu nhiên và 1⁰⁵ hình ảnh thử nghiệm và đây là cách nó được thực hiện với độ chính xác trung bình xấp xỉ 60%
ử lý bây giờ chỉ là các chữ cái và chữ số riêng lẻ. Điều này sau đó được đưa đến mô hình CNN để luyện tập. Và CNN qua quá trình đào tạo sẽ sẵn sàng giải mã captcha thực sự.

Training Data

Độ chính xác của giải pháp này cao hơn so với giải pháp OCR cho tất cả các CAPTCHA dựa trên văn bản. Tuy nhiên, giải pháp dựa trên Machine Learing cũng có nhiều nhược điểm, đó là chỉ giải quyết được một loại cụ thể trong khi Google vẫn đang tiếp tục cập nhật thuật toán reCAPTCHA mới. Bản cập nhật cuối cùng của ReCaptcha đã làm ảnh hưởng đến dịch vụ giải mã Captcha dựa trên Machine Learning: người dùng thông thường không bao giờ cảm thấy điều gì trong khi các giải pháp thì ngừng hoạt động hoàn toàn hoặc bắt đầu hoạt động chậm dần.

Mô hình được đào tạo với 104 lần lặp lại với các mẫu chính xác, ngẫu nhiên và 1⁰⁵ hình ảnh thử nghiệm và đây là cách nó được thực hiện với độ chính xác trung bình xấp xỉ 60%

Schedule

Độ chính xác với 104 lần lặp lại

  1. Thêm mẫu chính xác và mẫu chưa kiểm định
  2. Thêm tất các các mẫu chính xác
  3. Thêm ngẫu nhiên các mẫu chính xác
  4. Thêm mẫu chính xác và mẫu đã kiểm định

Schedule

Độ chính xác với 104 lần lặp lại

  1. Sử dụng mẫu chính xác và mẫu chưa kiểm định
  2. Sử dụng ngẫu nhiên các mẫu chính xác
  3. Sử dụng mẫu chính xác và mẫu đã kiểm định

*https://www.researchgate.net/publication/301620459_CAPTCHA_Recognition_with_Active_Deep_Learning

Vì vậy, trong trường hợp loại Captcha có mức độ phức tạp không cao, bạn hoàn toàn có thể sử dụng mô hình Machine Learning. Một giải pháp giải mã captcha tốt hơn OCR nhưng vẫn cần bao quát nhiều nền tảng để đảm bảo tính chính xác hơn nữa.

Dịch vụ giải mã trực tuyến

Cho đến nay, các dịch vụ giải mã Captcha trực tuyến đang là giải pháp hiệu quả nhất. Theo kịp tất cả các bản cập nhật của reCAPTCHA bởi Google, dịch vụ này cung cấp độ chính xác lên tới 99%.

Tại sao các dịch vụ giải mã captcha trực tuyến tốt hơn các phương pháp khác?

Dựa trên thực tế hoạt động, chúng ta có thể nhìn ra nhiều nhược của các giải pháp dựa trên OCR và Machine Learning. Những phương pháp này chỉ có thể giải quyết các CAPTCHA thông thường với độ chính xác không cao. Dưới đây là một vài điểm cần cân nhắc trước khi lựa chọn:

Tỷ lệ giải mã Captcha chính xác của các giải pháp (mã Captcha càng phức tạp thì tỷ lệ sai lệch khi sử dụng các phương pháp ORC càng cao).

Quá trình giải mã liên tục mà không có bất kỳ gián đoạn, cùng với đó là sự thích ứng nhanh chóng với các mã Captcha mới được cập nhật.

Chi phí hiệu quả phù hợp với các yêu cầu bắt buộc về nguồn lực và chi phí bảo trì thấp vì không có vấn đề về phần mềm hoặc phần cứng; tất cả những gì bạn cần là kết nối internet để gửi các yêu cầu giải mã thông qua API đến dịch vụ giải mã Captcha.

"Tay chơi đích thực" trong các dịch vụ giải mã trực tuyến

Trên thị trường có rất nhiều dịch vụ giải mã Captcha, vậy làm thế nào để chọn được dịch vụ tốt nhất? Một số dịch vụ cung cấp độ chính xác cao, hỗ trợ API với tính năng tự động hóa và phản hồi nhanh chóng cho các yêu cầu của khách hàng. Một số dịch vụ nổi bật như 2captcha, Imagetyperz, CaptchaSniper,...

Vì sao 2captcha chiếm "thế thượng phong" trong số những "tay chơi" cùng thời?

• Giải pháp tốc độ cao với 17 giây cho hình ảnh đồ họa, văn bản và khoảng 23 giây cho ReCaptcha;
• Hỗ trợ tất cả các ngôn ngữ lập trình phổ biến với tài liệu toàn diện có sẵn trong các thư viện;
• Độ chính xác cao (lên tới 99% dựa trên loại Captcha);
• Hoàn tiền cho các câu trả lời không chính xác;
• Khả năng giải quyết khối lượng lớn captcha (hơn 10.000 Captcha mỗi phút).

Mạng nơ-ron tích chập (CNN) đã học cách vượt qua các loại captcha đơn giản nhất cho đến các loại Captcha phức tạp hơn. Tất nhiên, ANN (Artificial Neural Network - Mạng neural nhân tạo) sẽ cố gắng phù hợp với những thay đổi này trong khi captcha sẽ trở nên phức tạp hơn - và đây sẽ là cuộc đua không có hồi kết. Đó là lý do tại sao các dịch vụ giải mã captcha trực tuyến dựa vào con người sẽ vẫn là sự lựa chọn tốt nhất trong thời điểm hiện tại.

2captcha 09-01-2020

Bình luận


White
{{ comment.user.name }}
Bỏ hay Hay
{{comment.like_count}}
Male avatar
{{ comment_error }}
Hủy
   

Hiển thị thử

Chỉnh sửa

White

Alex

6 bài viết.
0 người follow
Kipalog
{{userFollowed ? 'Following' : 'Follow'}}
Cùng một tác giả
White
4 0
Sử dụng 2Captcha và Puppeteer giúp tự động hóa "vượt tường" CAPTCHA Trong khoảng hơn một thập kỷ trở lại đây, Captcha đã trở nên quen thuộc ở khắp...
Alex viết 1 tháng trước
4 0
White
3 0
Một câu chuyện rất đỗi quen thuộc và thường diễn ra như sau: Sam cần phải điền vào các biểu mẫu tự động. Nó có thể dành cho các mục đích khác nhau...
Alex viết 1 tháng trước
3 0
White
1 0
Đúng như tên gọi của mình, Captcha (Completely Automated Public Turing test to tell Computers and Humans Apart) được sử dụng để phân biệt Con người...
Alex viết 7 ngày trước
1 0
Bài viết liên quan
White
13 1
Yeah, cuối cùng đã tới bài cuối này rồi :'( Các bạn có thể đọc các bài còn lại trong series ở đây: + Phần 1: https://kipalog.com/posts/TaobotchoiT...
Tulip4attoo viết hơn 1 năm trước
13 1
White
39 14
Phần I.2 Tensorflow và bài toán Hồi quy đơn giản đầu tiên TL;DR Qua bài viết trước, chúng ta đã biết được đến sự tồn tại của một vài khái niệm cơ ...
Trần Đức Tâm viết hơn 2 năm trước
39 14
White
7 1
Thư viện pandas python là gì? Nó có thể giúp bạn những gì và làm sao để sử dụng thư viện pandas này trong lập trình python. Hãy cùng tôi đi tìm câu...
Nguyễn Văn Hiếu viết hơn 1 năm trước
7 1
{{like_count}}

kipalog

{{ comment_count }}

bình luận

{{liked ? "Đã kipalog" : "Kipalog"}}


White
{{userFollowed ? 'Following' : 'Follow'}}
6 bài viết.
0 người follow

 Đầu mục bài viết

Vẫn còn nữa! x

Kipalog vẫn còn rất nhiều bài viết hay và chủ đề thú vị chờ bạn khám phá!