Cara kerja solver captcha AI: model, token, dan batasannya
Solver captcha AI adalah perangkat lunak yang menggunakan model machine learning untuk menjawab captcha atas nama Anda. Solver ini bekerja paling baik pada tantangan yang jawabannya bisa dibaca dari kontennya, seperti teks yang terdistorsi atau kisi gambar. Untuk widget berbasis token, tugas model adalah menghasilkan respons yang diterima oleh server situs, dan itu adalah masalah yang berbeda. Panduan ini menjelaskan kedua kasus tersebut, di mana batasannya, dan apa yang sebenarnya Anda terima dari layanan solver.
Panduan ini membahas teknik umum. Panduan ini tidak menjelaskan detail internal layanan tertentu. Yang penting bagi Anda sebagai developer adalah kontraknya: Anda mengirimkan detail captcha, dan Anda mendapatkan kembali sebuah token.
Tiga keluarga captcha
Sebagian besar captcha termasuk dalam salah satu dari tiga keluarga, dan AI memperlakukan masing-masing secara berbeda.
Tantangan konten. Pengunjung membaca atau mengidentifikasi sesuatu: karakter yang terdistorsi, sekumpulan nomor jalan, lampu lalu lintas dalam sebuah kisi, objek yang diputar. Jawaban yang benar ada di dalam gambar atau audionya sendiri. Ini adalah area di mana machine learning paling kuat.
Penilaian perilaku. Mungkin tidak ada tantangan yang terlihat sama sekali. Situs mengamati bagaimana browser berperilaku, memeriksa riwayat request, dan memberi skor pada pengunjung. reCAPTCHA v3 bekerja seperti ini, dan ia mengembalikan angka, bukan teka-teki. Model tidak bisa begitu saja "membaca" jawabannya di sini, karena tidak ada jawaban yang bisa dibaca. Pertanyaannya adalah apakah sinyalnya terlihat cukup seperti manusia.
Widget berbasis token. Widget berjalan di halaman, melakukan pemeriksaannya, lalu menuliskan token ke dalam field form tersembunyi. Backend situs kemudian memverifikasi token tersebut ke penyedia. PopularCaptcha bekerja dengan cara ini, begitu pula reCAPTCHA v2 dan Cloudflare Turnstile.
Cara model menangani tantangan konten
Untuk teks yang terdistorsi, pendekatan standarnya adalah model pengenalan karakter optik (OCR). Jaringan konvolusional, atau model visi berbasis transformer, membaca gambar dan menghasilkan urutan karakter. Pelatihannya menggunakan kumpulan besar captcha yang dibuat secara otomatis dengan jawaban yang sudah diketahui, sehingga model mempelajari distorsi yang umum: lengkungan, garis noise, huruf yang saling tumpang tindih, dan tekstur latar.
Untuk kisi gambar, tugasnya adalah klasifikasi. Model melihat setiap ubin dan memutuskan apakah ubin itu berisi objek yang diminta oleh tantangan. Kasus yang sulit adalah objek yang sebagian tertutup, berada di tepi ubin, atau ambigu, seperti bus yang sebagian besar berada di luar bingkai. Akurasinya lebih rendah pada kasus tersebut, dan solver yang baik harus memutuskan kapan menebak dan kapan meminta putaran lain.
Tantangan audio menggunakan pengenalan ucapan. Model mentranskripsikan klip, dan jawabannya adalah hasil transkripsi itu. Noise latar dan distorsi yang disengaja adalah kesulitan utamanya.
Tantangan puzzle, seperti memutar gambar atau menggeser potongan ke posisinya, memerlukan jenis model yang berbeda. Model memperkirakan sudut atau posisi dari gambar, lalu menghasilkan drag atau klik yang sesuai dengan perkiraan tersebut.
Cara model menangani skoring dan token
Penilaian perilaku dan widget token lebih sulit dipecahkan dengan membaca halaman. Pemeriksaan penyedia berjalan di browser pengunjung, dan hasilnya bergantung pada sinyal seperti lingkungan browser, waktu input event, dan riwayat sesi. Solver tidak bisa melihat skor atau sinyalnya dengan detail yang berguna dari luar.
Untuk kasus ini, pendekatan yang berhasil adalah solver yang mengembalikan respons yang diharapkan penyedia, menggunakan pipeline yang dibangun untuk menghasilkan token yang valid. Dari sisi Anda, properti pentingnya sederhana: Anda mendapatkan token atau error, dan token itu diperiksa oleh situs.
Itu sebabnya API Scarnox dibentuk seperti sekarang. Anda mengirimkan jenis tugas, sitekey, dan URL halaman, lalu menerima token di field solution:
{"errorId": 0, "solution": {"token": "..."}, "cost": ...}
Token dimasukkan ke field form yang diharapkan situs, dan token itu kedaluwarsa setelah sekitar dua menit. Panduan API solver captcha membahas seluruh request.
Di mana AI membantu dan di mana berhenti
Solver AI bagus dalam:
- membaca teks yang terdistorsi secara konsisten, setelah disesuaikan untuk keluarga captcha tertentu;
- mengklasifikasikan kisi gambar dengan akurasi tinggi pada contoh yang jelas;
- memberikan hasil cukup cepat untuk request sinkron;
- gagal dengan cara yang tidak merugikan Anda, jika solver dibangun dengan prinsip solve yang gagal tidak ditagih.
Solver AI lebih lemah dalam:
- puzzle yang sering berubah desain, karena model yang dilatih pada versi bulan lalu mungkin tidak berlaku untuk versi baru;
- pemeriksaan perilaku, di mana hasilnya bergantung pada lingkungan tempat Anda berjalan sama besarnya dengan jawabannya;
- tantangan apa pun yang membutuhkan penilaian manusia tentang konten, seperti pertanyaan tentang makna atau konteks.
Ada juga batasan praktis yang tidak bisa dihapus oleh model mana pun. Captcha adalah penghalang yang sengaja dibuat, dan vendor memperbarui tantangannya. Solver yang berfungsi hari ini bisa gagal bulan depan, jadi perlakukan output solver sebagai sesuatu yang perlu dipantau, bukan sesuatu yang diasumsikan akan terus berfungsi.
Memilih solver
Empat pertanyaan membantu Anda mengevaluasi layanan solver mana pun:
- Jenis captcha apa yang didukung saat ini, bukan yang masih dalam rencana?
- Berapa biaya solve yang gagal bagi Anda? Solver yang menagih kegagalan membuat retry menjadi mahal.
- Bagaimana perilakunya saat timeout atau respons lambat? Kode Anda membutuhkan error yang jelas untuk ditindaklanjuti.
- Apa yang perlu Anda ubah di kode saat captcha berubah? Semakin sedikit, semakin baik.
Scarnox saat ini mendukung PopularCaptcha, proxyless, sudah aktif. Jenis lain akan segera hadir, dan panduan jenis captcha menjelaskan status masing-masing.