CAPTCHA baru menggunakan kalimat?

8

Saya hanya berpikir tentang bagaimana recaptcha semakin sulit ketika saya memikirkan solusi lain yang mungkin. Gambar tidak akan bertahan selamanya sehingga kita akan membutuhkan sesuatu yang lain suatu hari nanti - seperti logika atau emosi manusia. Google dan lainnya sedang mencoba mengelompokkan gambar berdasarkan kategori (menemukan gambar yang bukan milik) tetapi itu membutuhkan sejumlah besar gambar dan tidak berfungsi untuk orang buta.

Bagaimanapun, bagaimana jika kumpulan besar teks dikumpulkan (buku-buku domain publik dari setiap bahasa) dan sebuah kalimat ditunjukkan kepada pengguna dengan 1 (atau 2) kata yang merupakan kotak pilihan pilihan? Hanya komputer yang tahu tata bahasa Inggris / Spanyol / Jerman yang benar yang dapat menentukan kata mana yang termasuk dalam kalimat.

Apakah akan ada masalah dengan pendekatan ini? Saya akan berasumsi bahwa itu akan cukup mudah bagi siapa saja yang tahu bahasa tempat sentense ditampilkan untuk mengetahui jawabannya dengan lebih mudah daripada mencoba membaca teks reCAPTCHA. Ditambah lagi, menyimpan sejumlah kalimat yang gila hanya akan memakan waktu beberapa gigabita ruang dan tidak akan memakan waktu dekat waktu CPU untuk membuat gambar / audio. Dengan kata lain, siapa pun dapat meng-host sistem captcha mereka sendiri dengan dampak minimal pada kinerja sistem.

Apakah ada masalah dengan pendekatan ini? Lebih khusus lagi saya mencari masalah utama dengan pendekatan ini.

bermigrasi dari stackoverflow

Xeoncross
sumber
4
Saya mencoba melakukan salah satu yang mendengarkan hari lalu ketika saya sedang berjuang dengan yang visual pada beberapa pandangan. Suara itu benar-benar tidak bisa dipahami. Semua jadi agak konyol, bukan.
Armand
2
Atau Anda bisa mencoba mengelola tes Voight-Kampff sebagai captcha. Tampaknya bekerja pada replika ...
FrustratedWithFormsDesigner
4
Ini terdengar seperti komik xkcd .... xkcd.com/810
Tyanna
1
Yah, pertama, tidak semua orang bisa tahu bahasa dengan sempurna, dan banyak pengguna mungkin bukan penutur asli (misalnya saya). Tapi, yang paling penting, saya tidak akan terlalu mengandalkan asumsi bahwa semua manusia memiliki logika . Pengalaman mengajari saya bahwa dalam kasus-kasus tertentu logika manusia hanyalah mitos .. Jadi, kemungkinan Anda akhirnya akan menyaring manusia dan membiarkan bot masuk ..
Lucius
2
Saya tidak tahu, tapi saya serius mempertimbangkan untuk membeli perangkat lunak captcha-breaking hanya untuk masuk secara sah ke beberapa situs. :)
davidhaskins

Jawaban:

7

Pertama, saya beri Anda IBM Watson . Saya pikir komputasi telah jauh melampaui pengisian sederhana pada masalah bahasa yang kosong .

Selanjutnya, saya memberi Anda semua checker Spelling / Grammar diimplementasikan dalam perangkat lunak. Menentukan apakah suatu kata secara tata bahasa benar dalam suatu kalimat dipecahkan dalam> 90% kasus. Saya bahkan akan mencengkeram dan mengatakan bahwa mereka lebih bisa membaca dan menulis daripada kebanyakan manusia yang saya kenal.

Saya tidak berpikir ide CAPTCHA Anda akan berfungsi sebaik yang Anda harapkan ...

Dan McGrath
sumber
Ejaan dan tata bahasa mematuhi aturan, yang meskipun tidak jelas, berhasil. Di sisi lain, itu pasti akan mendorong penelitian ke arah itu juga ...
Matthieu M.
Dengan asumsi tingginya tingkat penggunaan yang benar oleh banyak pemeriksa ejaan, dan kemungkinan menebak kata-kata yang tersisa seperti yang disebutkan Jeff, saya percaya ini akan sangat mengurangi efektivitas CAPTCHA. Saya pikir itu akan bekerja dengan baik untuk banyak situs yang lebih kecil - tetapi tidak satu yang spammer akan keberatan menghabiskan sedikit waktu mencoba untuk istirahat. Komputer sudah berbicara bahasa yang lebih baik daripada manusia - pemeriksa ejaan membuktikannya.
Xeoncross
6

Mari kita lihat, berapa lama untuk selalu memilih pilihan pertama dan akhirnya menyelesaikannya dengan benar?

JeffO
sumber
3
Ha, kasus dasar untuk tanggapan berlebihan saya sendiri. Tapi, ya, inilah sebabnya CAPTCHA pilihan ganda konyol.
Meredith L. Patterson
Tentunya masalah yang perlu ditangani. Namun, untuk saat ini, situs saya menggunakan pembatasan tingkat IP dan kegagalan logging. Kecuali jika spammer memiliki jaringan besar yang tidak terkait (sama seperti DoS yang didistribusikan) saya akan menangkapnya.
Xeoncross
Anda bahkan tidak akan memberi seseorang 3 peluang?
JeffO
3? Saya berpikir lebih seperti 40 hit dalam 30 menit sebelum saya melarangnya.
Xeoncross
2
Misalkan jawaban yang salah memberi Anda penalti 10 menit dan jawaban yang baik mengurangi penalti 5 menit. Jika penalti Anda lebih besar dari nol, Anda memasuki mode penalti. Mode penalti berarti aplikasi mengharuskan Anda untuk melewati captcha sebelum Anda mencapai fungsi apa pun. Bot brute force akan mencapai beberapa tahun hukuman dalam waktu singkat, sementara manusia dapat (diberi instruksi yang jelas) pulih dari kesalahan awal dalam dua langkah.
Jacek Prucia
4

Jika Anda menarik kalimat dari buku domain publik, bot tidak perlu tahu apa pun tentang tata bahasa. Itu hanya perlu mengindeks kalimat-kalimat yang sama dan melakukan pencarian untuk menemukan kata mana dari kalimat yang sebenarnya digunakan. Dan itu mengasumsikan bahwa Anda cukup memecahkan masalah yang disarankan Jeff O di mana Anda dapat menghindari masalah dengan menebak opsi pertama setiap kali.

Plus, banyak kalimat di jagat buku domain publik tidak pantas untuk upaya semacam ini. Banyak yang akan ambigu tanpa konteks. Banyak yang akan berisi konten yang tidak pantas (bayangkan menyajikan kalimat acak dari Huckleberry Finn). Jadi, Anda harus menginvestasikan sejumlah upaya yang layak untuk mendapatkan serangkaian kalimat yang tidak akan menyinggung dan tidak akan ambigu. Jika Anda menerima bahwa beberapa kalimat akan ambigu, Anda kehilangan banyak kemampuan untuk menghukum bot karena tebakan yang salah.

Gua Justin
sumber
3

Masalah yang lebih menantang bagi bot adalah menghapus satu kata dari sebuah kalimat, lalu menyajikan pilihan di antara empat kata yang berbeda dari bagian pidato yang sama. (Misalnya, menghapus kata benda; mana dari empat kata benda ini yang paling cocok di sini?)

Algoritma penandaan dan penguraian tidak sempurna, tetapi pendekatan berbasis korpus telah sampai pada titik di mana Anda dapat melatih parser dengan cukup baik untuk membantu Anda mengalahkan peluang pada CAPTCHA dengan perangkat lunak komoditas atau sumber terbuka. (Ketika Anda melakukan spamming dalam volume, tidak apa-apa jika beberapa pesan tidak dapat melewatinya, asalkan cukup untuk meningkatkan tingkat keberhasilan Anda secara keseluruhan.)

Komputer belum sebagus semantik.

Meredith L. Patterson
sumber
Ya, saya sedang memikirkan kata menjadi bagian tertentu dari pembicaraan dengan penggantian PoS yang cocok karena saya telah bekerja dalam penguraian teks otomatis dan dapat melihat perhitungan mengalahkan sistem ini jika pilihan kata yang tepat sudah jelas. Kemudian lagi, semakin tidak jelas - semakin sulit untuk dijawab oleh penutur non-[bahasa].
Xeoncross
Tentu saja, ada kalanya orang tidak begitu hebat dengan semantik ...
FrustratedWithFormsDesigner
3

Sebagian besar spam yang saya dapatkan hari ini sebenarnya tidak dihasilkan oleh bot. Saya mendapatkan banyak spam yang berasal dari negara-negara dunia ketiga di mana orang disewa selama beberapa sen per jam untuk mengirim pesan di forum dan blog dan semacamnya.

Tidak ada sistem yang membedakan antara manusia dan komputer yang akan menghentikan ini.

Untuk alasan itu, saya benar-benar menghapus CAPTCHA di situs saya. Sebagai gantinya, saya memiliki solusi berbasis javascript yang cukup sederhana (pada dasarnya, Javascript berjalan pada klien mengatur ulang bidang sehingga jika Anda memposting dengan Javascript dimatikan, gagal). Ini menghentikan 95% dari spam bot, tetapi jelas tidak berpengaruh pada spam manusia - tetapi kemudian, CAPTCHA juga tidak.

Dean Harding
sumber
Saya mulai melihat semakin banyak situs yang hanya memerlukan kotak centang dengan id acak diklik atau posting tidak ditambahkan, atau teks yang dicetak di suatu tempat pada halaman untuk dimasukkan ke dalam bidang input yang disebut secara acak. Bekerja jauh lebih baik daripada captcha, dan lebih ramah pengguna.
jwenting
2

Hanya komputer yang tahu tata bahasa Inggris / Spanyol / Jerman yang benar yang dapat menentukan kata mana yang termasuk dalam kalimat.

Jawabannya bisa menjadi subyektif (sebenarnya bukan subyektif tetapi kurangnya konsep bahasa mencakup semua masyarakat) dan sulit bagi mereka yang tidak berbicara bahasa secara asli.

Jika ada daftar aturan tata bahasa yang terbatas (yang dimiliki setiap bahasa) yang disajikan maka itu hanya menjadi sebuah algoritma; didekati sekarang oleh mesin apa pun yang mau menerapkan algoritma.

Aaron McIver
sumber
Dan bagaimana dengan orang-orang yang tidak sepenuhnya memahami bahasa tempat kalimat itu berada? Apakah mereka tidak akan dapat melewati captcha?
FrustratedWithFormsDesigner
1
Poin bagus, tapi itu jawaban yang sama dengan Bagaimana dengan orang yang tidak sepenuhnya memahami teks pada gambar reCAPTCHA?
Xeoncross
2
@ Xeoncross Ada perbedaan. Teks dalam CAPTCHA khas diabstraksikan. Bukannya pengguna tidak tahu bahwa A == A; itu presentasinya. Masalahnya ada pada kenyataan bahwa abstraksi sayangnya menghilangkan keterbacaan dengan harapan menciptakan celah antara apa yang bisa dipahami manusia versus mesin. Itu sifat dasar. Sebuah A akan selalu sama dengan A. Ketika Anda membawa tata bahasa ke dalam campuran Anda mengubah pendekatan. Anda sekarang mengasumsikan masing-masing dan setiap individu berada pada tingkat pemahaman tingkat tertentu sehubungan dengan bahasa yang digunakan.
Aaron McIver
1
Saya harus mengakui bahwa saya agak senang dengan analisis Anda. Tidak hanya menghentikan bot spam - tetapi Anda harus semi-melek huruf untuk memberikan komentar! Itu akan sangat luar biasa! ; P
Xeoncross
1
@Frustrated: Sebagian dari kita akan menganggap itu sebagai fitur, bukan bug. ;)
Mason Wheeler
2
  1. Semua captcha rentan terhadap pertanian captcha.
  2. Pilihan ganda terlalu mudah untuk diselesaikan dengan mencoba secara acak. (Seperti yang ditunjukkan oleh orang lain.)

Tetapi mengabaikan gotcha yang serius ini, ada masalah bahasa.

Bahasa aglutinating seperti Hongaria atau Finlandia cocok untuk captcha jenis ini, karena kata-kata dapat memiliki banyak sufiks dan masing-masing memiliki tujuan yang berbeda dalam kalimat (misalnya kata benda yang sama memiliki sufiks yang berbeda ketika digunakan sebagai objek atau subjek) aturannya hanya rumit untuk manusia, sebuah mesin akan menemukan yang benar dalam beberapa percobaan.

Mengisolasi bahasa (Bahasa Inggris sebagai contoh perkiraan, bahasa Mandarin Cina jauh lebih bersih) bahkan lebih buruk, karena tata bahasa sebagian besar ditentukan oleh posisi dalam kalimat dan bukan bentuk kata.

Bahasa fusi seperti Rusia atau Yunani mungkin menimbulkan serangkaian masalah dan sebagainya.

Singkatnya, teka-teki linguistik yang menerjemahkan dengan baik dan sulit ditebak secara acak sangat sulit ditemukan. Mungkin lebih mudah untuk berkonsentrasi pada semantik, daripada sintaksis. Misalnya, "Lanjutkan urutan berikut: Kamis, Rabu, Selasa ..." atau "panggang, goreng, panggang ..." dan seterusnya.

biziclop
sumber
1

Gagasan yang biasa di balik captcha adalah bahwa ia harus menghentikan bot hampir setiap saat. Pilihan ganda antara jawaban N menghentikan bot saja (N - 1) / N pada saat itu, dan bot akan melewati rata-rata percobaan N.

Anda dapat menerapkan batas waktu untuk jawaban captcha yang salah, tetapi Anda tidak bisa terlalu ketat tentang hal ini tanpa orang-orang yang tidak bisa berbahasa Inggris (atau apa pun) yang berbicara dengan baik atau memiliki masalah dengan kotak pilih (tangan yang goyah, tikus yang buruk, yang lain cacat). Terlebih lagi, time-out tidak akan menghentikan botnet, karena tebakannya dapat berasal dari IP yang berbeda.

Selain itu, bagaimana Anda memastikan hanya ada satu jawaban yang sah? Kalimat yang dipilih secara acak dari Project Gutenberg mungkin masuk akal dengan beberapa kata benda yang dipilih secara acak, tetapi hanya satu yang merupakan jawaban yang tepat.

David Thornley
sumber
0

Semua yang Anda lakukan adalah mempersulit manusia untuk menggunakan situs Anda, sementara untuk bot Anda tidak menambahkan hambatan sama sekali.

Yang harus Anda fokuskan adalah menciptakan mekanisme yang secara otomatis mendeteksi apakah sesuatu yang diposkan adalah spam, dan memblokir kiriman jika memang demikian (misalnya, menunda ke moderasi manusia, dan memberi poster pesan pada tingkat itu).

CAPTCHA telah sampai pada titik di mana mereka sangat menjengkelkan. Saya cenderung semakin menghindari situs yang menggunakannya, dan banyak yang menggunakan saya. Ini terutama karena mereka secara luas diketahui tidak berpengaruh pada robot spam apa pun.

jwenting
sumber