วันอังคารที่ 26 พฤษภาคม พ.ศ. 2552

captcha (แคปช่า) คืออะไร

แคปช่า (captcha) เป็นเทคนิคที่ใช้ในการทดสอบผู้ใช้บริการว่าเป็นมนุษย์จริงๆ ไม่ใช่โปรแกรมอัตโนมัติ (bot) วิธีการง่ายๆที่พบคือนำตัวอักษรมาแปลงให้เป็นรูปภาพ แล้วถามผู้ใช้ว่าตัวอักษรในรูปภาพนั้นคืออะไร เพราะปกติมนุษย์จะอ่านตัวอักษรจากรูปภาพได้โดยไม่รู้สึกว่าต่างอะไรกับข้อมูลตัวอักษร (text) ทั่วๆไป แต่สำหรับคอมพิวเตอร์มันจะรู้แค่ว่านี่เป็นไฟล์ภาพเท่านั้น แต่ไม่รู่ว่าเป็นภาพอะไร อย่างตอนที่เราล็อกอินเข้าระบบ share.psu.ac.th ก็มีอักษรภาพแสดงให้เรากรอก นั่นแหละคือแคปช่า



ทำไมต้องมีแคปช่า ตอบง่ายๆว่าก็เพื่อป้องกันผู้ใช้ที่เป็น bot นั่นเอง เช่น เว็บเมล์ของ google มีผู้ใช้งานมาก และบางคนก็อาศัยฟรีเมล์นี้เป็นแหล่งกระจาย spam mail โดยทั่วไป google จะทำการแบน account เหล่านี้ แต่แบนเสร็จพวกนี้ก็สมัครใหม่ และวิธีที่จะไม่ให้เหนื่อย คือ ใช้ bot หรือโปรแกรมอัตโนมัติช่วยสมัครให้

อ้าวแล้วที่ว่าคอมพิวเตอร์แยกความแตกต่างของรูปภาพไม่ออกละทำไมถึงยังสมัครได้? ก็เพราะมีคนพัฒนาโปรแกรมประเภท OCR เพื่อช่วยแปลงอักษรในภาพมาเป็นข้อมูลที่เป็นตัวอักษร (text) ซึ่งจริงๆเค้าตั้งใจใช้ประโยชน์อย่างอื่น เช่น มีหนังสือที่เป็นกระดาษก็เอามาผ่านโปรแกรม OCR เพื่อจะได้ข้อมูลที่เป็นตัวอักษร (text) ซึ่งสามารถนำไปใช้ในโปรแกรมประมวลผลคำ (word processor) ได้ อย่างถ้าเป็นนักศึกษาก็ scan หนังสือเป็นไฟล์ภาพแล้วนำมาผ่านโปรแกรม OCR ทำเป็นรายงานในเวิร์ดฯได้เลย (ตัวอย่างการใช้งานผิดๆนะครับ อิอิ)


ดังนั้นจึงมีการพยายามป้องกันโปรแกรม OCR ให้ทำงานยากขึ้น เช่น ทำให้ตัวอักษรบิดเบี้ยว หรือใส่สิ่งรบกวนลงไปเช่น เส้น จุด หรือรูปต่างๆ ซึ่งทาง spamer ก็หาทางแก้ไขโดยพยายามพัฒนา OCR ที่ฉลาดขึ้น แยกแยะสิ่งรบกวนได้มากขึ้น หากมองในแง่ดีคือ กระตุ้นให้มีการพัฒนาโปรแกรม OCR ที่ฉลาดขึ้น

ตามข่าวที่ว่าแคปช่าของ google ถูกเจาะได้ในอัตรา 20% นั้น ไม่ต่างอะไรกับถูกเจาะได้ 100% เพราะปกติพวก spamer ใช้ bot ทำงาน ดังนั้นไม่ต้องเหนื่อยทำเอง แค่เขียนโค้ดสั่งโปรแกรมทำงานได้ก็พอ

ส่วนใครสงสัยว่าตั้งแคปช่าแบบไหน ยากหรือง่ายในการเจาะ ลองไปดูตัวอย่างที่ hacker ของจีนวิเคราะห์ความยากง่ายของแคปช่าหลายบริษัทดังๆไว้ที่ http://www.lafdc.com/captcha/

ไม่มีความคิดเห็น:

แสดงความคิดเห็น