CLICK HERE FOR THOUSANDS OF FREE BLOGGER TEMPLATES »

Senin, 29 Oktober 2007

reCAPTCHA implementationCyberheb


reCAPTCHA implementationCyberheb

reCAPTCHA merupakan metode implementasi terbaru untuk CAPTCHA (Completely Automated Public Turing test to Computers and Human Aparts). CAPTCHA merupakan metode challange yang banyak dimanfaatkan pada berbagai aplikasi web di internet sebagai metode untuk membedakan antara manusia dengan mesin. Kalian pasti sering melihat di form sign-up email, forum, ataupun untuk memasukan comment pada blog terdapat semacam gambar acak yang terlihat buram, kita harus menuliskan teks kata tersebut pada suatu form sebelum melakukan aksi yang sebenar nya (sign-up email atau forum misal nya), nah…itu lah CAPTCHA.

Terdapat banyak implementasi CAPTCHA pada aplikasi-aplikasi web yang populer seperti phpBB, wordpress, phpNuke, dsb. Dan umum nya memastikan bahwa yang berinteraksi dengan sistem saat ini adalah manusia, bukan mesin (seperti bot). Banyak sekali terdapat bot yang disebar pada internet memasukan comment yang sifat nya iklan ataupun mengganggu ke dalam media blog ataupun forum, dan bot ini umum nya dibuat dengan suatu script program. Dengan adanya CAPTCHA maka bot-bot tersebut dapat dicegah sehingga tidak dapat melakukan registrasi, post comment, dsb.

reCAPTCHA menggunakan metode baru dalam melakukan CAPTCHA, yaitu memanfaatkan 2 hal: Kata-kata yang tidak dapat dibaca dengan OCR (Optical Computer Recognition), dan manusia. Manusia?!Yups, kita bisa baca selengkapnya dari situs resmi nya di sini.

OCR (Optical Computer Recognition) dapat digunakan untuk mengubah hasil scan suatu buku (dalam bentuk gambar) kedalam suatu bentuk dokumen teks. Kita semua tentu tahu mengenai e-book. Pengubahan bentuk scan yang awalnya berupa gambar kedalam bentuk dokument teks dibutuhkan untuk berbagai tujuan, salah satu nya adalah agar mudah di-search oleh search engine. Namun adakalanya OCR tidak mampu membaca karakter hasil scan tersebut sehingga menghasilkan tulisan yang salah, misal nya seperti ini:

Kita bisa katakan reCAPTCHA adalah suatu project mutualisme dengan beberapa tujuan, yaitu: Meningkatkan kualitas CAPTCHA pada suatu sistem terhadap serangan bots, dan membantu proses book digitizing (pembuatan buku digital) dalam mengenali kata-kata yang tidak bisa dibaca oleh OCR. Ini adalah suatu project yang menarik :).

Bagaimana hal ini bisa terjadi?!silahkan baca statement berikut ini dari situs recaptcha:

About 60 million CAPTCHAs are solved by humans around the world every day. In each case, roughly ten seconds of human time are being spent. Individually, that’s not a lot of time, but in aggregate these little puzzles consume more than 150,000 hours of work each day. What if we could make positive use of this human effort? reCAPTCHA does exactly that by channeling the effort spent solving CAPTCHAs online into “reading” books.

Pengguna internet di dunia semakin banyak, dan semakin banyak orang yang setiap hari nya harus memecahkan challange dari CAPTCHA (dalam arti, membaca image CAPTCHA dan menuliskan hasil nya untuk autentifikasi) seperti posting comment di blog. Dan peran manusia dalam memecahkan challange CAPTCHA tersebut digambarkan oleh quote diatas, yang berarti ada sekitar 60 juta CAPTCHA yang di baca oleh manusia diseluruh dunia perhari nya. Jumlah inilah yang dimanfaatkan oleh reCAPTCHA.

Berikut langkah mudah nya:

1. reCAPTCHA akan memberikan 2 kata dalam bentuk image ke user sebagai CAPTCHA, 1 dari 2 kata tersebut merupakan image yang diambil dari hasil kegagalan OCR dalam membaca image untuk di konversi ke teks, dalam arti ‘jawaban’ dalam bentuk teks untuk image tersebut belum dapat dibaca oleh komputer dimanapun sehingga tidak mungkin bots dapat membaca nya, hanya manusia yang dapat membaca nya. 1 kata lagi merupakan image yang sudah dapat dibaca oleh komputer namun tetap sulit bagi bot.
2. Kita tidak tahu mana kata yang bisa dibaca ataupun tidak bisa dibaca oleh komputer, namun pada proses verifikasi sistem akan menerima kedua nya dan apabila jawaban pada jenis kata yang sudah diketahui ‘bentuk teks’ nya memang benar maka diasumsikan kata kedua yang belum diketahui jawaban nya juga benar, dan diasumsikan user adalah manusia. Namun kata yang belum diketahui jawaban nya tersebut tidak langsung digunakan sebagai ‘known words’, namun masih digunakan untuk authentifikasi terhadap beberapa user lain dengan status ‘unknown words’, hal ini digunakan sebagai uji coba agar kata yang gagal dikenali oleh OCR tersebut mendapatkan jawaban yang akurat. Hasil nya nanti digunakan pada proses OCR selanjut nya saat membaca image dengan bentuk seperti itu, dan OCR sudah tahu bentuk image seperti itu akan di konversi kedalam bentuk teks seperti apa. Nah, inilah yang dimaksud memanfaatkan manusia untuk membantu OCR dalam mengenali bentuk image yang hanya bisa dibaca oleh manusia.

Dan saat ini project reCAPTCHA membantu proses book digitizing dari Internet Archive.

Terlepas dari ‘digunakan’ oleh sistem untuk membantu proses kerja OCR, kita dapat menerapkan reCAPTCHA pada aplikasi web yang kita miliki, untuk saat ini reCAPTCHA sudah di implementasikan dalam bentuk plugin untuk wordpress dan mediawiki. Namun jika kita ingin membuat plugin sendiri untuk diimplementasikan pada aplikasi web milik pribadi, maka dapat membaca API yang terdapat pada website resmi reCAPTCHA. Blog kecoak elektronik juga saat ini sudah meng-implementasikan reCAPTCHA untuk posting comment, dan tentu selain untuk meningkatkan security terhadap b0t juga dengan tujuan agar dapat membantu proses book digtizing, sehingga akan lebih banyak lagi informasi dari buku-buku dapat dipindahkan kedalam bentuk digital dan dapat dibaca oleh orang-orang di seluruh dunia ;).

0 komentar: