Scarnox · Blog

How an AI captcha solver works: โมเดล, token และข้อจำกัด

AI captcha solver คือซอฟต์แวร์ที่ใช้โมเดล machine learning เพื่อตอบ captcha แทนคุณ มันทำงานได้ดีที่สุดกับความท้าทายที่คำตอบอ่านได้จากเนื้อหา เช่น ตัวอักษรที่บิดเบี้ยว หรือตารางรูปภาพ สำหรับ token widget หน้าที่ของโมเดลคือสร้างคำตอบที่เซิร์ฟเวอร์ของเว็บไซต์ยอมรับ ซึ่งเป็นปัญหาอีกแบบหนึ่ง คู่มือนี้อธิบายทั้งสองกรณี ข้อจำกัดของแต่ละกรณี และสิ่งที่คุณได้รับจากบริการ solver จริง ๆ

คู่มือนี้พูดถึงเทคนิคทั่วไป ไม่ได้อธิบายโครงสร้างภายในของบริการใดบริการหนึ่ง สิ่งที่สำคัญต่อคุณในฐานะนักพัฒนาคือสัญญาการใช้งาน: คุณส่งรายละเอียดของ captcha ไป และได้ token กลับมา

captcha สามกลุ่มหลัก

captcha ส่วนใหญ่อยู่ใน 3 กลุ่ม และ AI จัดการแต่ละกลุ่มต่างกัน

Content challenge ผู้เข้าชมต้องอ่านหรือระบุบางสิ่ง เช่น ตัวอักษรที่บิดเบี้ยว ป้ายบอกเลขที่อยู่ สัญญาณไฟจราจรในตาราง หรือวัตถุที่หมุนอยู่ คำตอบที่ถูกต้องอยู่ในภาพหรือเสียงเอง นี่คือพื้นที่ที่ machine learning แข็งแรงที่สุด

Behavioural scoring อาจไม่มีความท้าทายที่มองเห็นเลย เว็บไซต์ดูว่าเบราว์เซอร์ทำงานอย่างไร ดูประวัติ request และให้คะแนนผู้เข้าชม reCAPTCHA v3 ทำงานแบบนี้ และคืนค่าเป็นตัวเลขแทนที่จะเป็นปริศนา โมเดลไม่สามารถ "อ่าน" คำตอบได้โดยตรง เพราะไม่มีคำตอบให้อ่าน คำถามคือสัญญาณดูเหมือนมนุษย์พอหรือไม่

Token-based widget widget ทำงานในหน้าเว็บ ตรวจสอบบางอย่าง แล้วเขียน token ลงในฟิลด์ฟอร์มที่ซ่อนอยู่ จากนั้น backend ของเว็บไซต์จะตรวจ token กับผู้ให้บริการ PopularCaptcha ทำงานแบบนี้ และ reCAPTCHA v2 กับ Cloudflare Turnstile ก็เช่นกัน

โมเดลจัดการ content challenge อย่างไร

สำหรับตัวอักษรที่บิดเบี้ยว วิธีมาตรฐานคือโมเดล optical character recognition โครงข่ายประสาทแบบ convolutional หรือโมเดลวิชันแบบ transformer จะอ่านภาพและให้ผลลัพธ์เป็นลำดับตัวอักษร การฝึกใช้ชุด captcha ที่สร้างขึ้นซึ่งรู้คำตอบอยู่แล้วจำนวนมาก ทำให้โมเดลเรียนรู้การบิดเบี้ยวที่พบบ่อย เช่น การโค้ง เส้นรบกวน ตัวอักษรที่ซ้อนทับกัน และพื้นหลังที่มีลวดลาย

สำหรับตารางรูปภาพ งานคือการจัดประเภท โมเดลดูแต่ละช่องและตัดสินว่ามีวัตถุที่โจทย์ถามหรือไม่ กรณียากคือวัตถุที่ถูกบังบางส่วน อยู่ที่ขอบของช่อง หรือคลุมเครือ เช่น รถบัสที่อยู่นอกกรอบเกือบทั้งคัน ความแม่นยำในกรณีเหล่านี้ต่ำกว่า และ solver ที่ดีต้องตัดสินใจว่าควรเดาเมื่อไรและควรขอรอบใหม่เมื่อไร

Audio challenge ใช้ speech recognition โมเดลถอดเสียงคลิป และคำตอบคือข้อความที่ถอดได้ เสียงรบกวนพื้นหลังและการบิดเบือนที่ตั้งใจทำให้เป็นความยากหลัก

Puzzle challenge เช่นการหมุนภาพหรือการเลื่อนชิ้นส่วนให้เข้าที่ ต้องใช้โมเดลอีกประเภทหนึ่ง โมเดลประมาณมุมหรือตำแหน่งจากภาพ แล้วสร้างการลากหรือการคลิกที่ตรงกัน

โมเดลจัดการ scoring และ token อย่างไร

Behavioural scoring และ token widget แก้ได้ยากกว่าการอ่านหน้าเว็บ การตรวจสอบของผู้ให้บริการทำงานในเบราว์เซอร์ของผู้เข้าชม และผลลัพธ์ขึ้นกับสัญญาณต่าง ๆ เช่น สภาพแวดล้อมของเบราว์เซอร์ จังหวะของ input event และประวัติของ session solver ไม่สามารถเห็นคะแนนหรือสัญญาณเหล่านั้นได้อย่างละเอียดจากภายนอก

สำหรับกรณีเหล่านี้ วิธีที่ใช้ได้คือ solver ที่คืนค่าการตอบสนองที่ผู้ให้บริการคาดหวัง โดยใช้ pipeline ที่สร้าง token ที่ใช้ได้ สิ่งสำคัญที่คุณต้องรู้จากฝั่งคุณคือ เรียบง่าย: คุณได้ token หรือ error และ token จะถูกตรวจโดยเว็บไซต์

นั่นคือเหตุผลที่ Scarnox API ถูกออกแบบแบบนี้ คุณส่งประเภท task, sitekey และ URL ของหน้า แล้วได้ token ในฟิลด์ solution:

{"errorId": 0, "solution": {"token": "..."}, "cost": ...}

token จะถูกใส่ลงในฟอร์มฟิลด์ที่เว็บไซต์คาดหวัง และหมดอายุภายในประมาณสองนาที คู่มือ API ของ captcha solver อธิบาย request ทั้งหมด

AI ช่วยได้ตรงไหนและหยุดตรงไหน

AI solver ทำงานได้ดีกับ:

ทำงานได้แย่กว่ากับ:

ยังมีข้อจำกัดในทางปฏิบัติที่โมเดลใดก็ลบออกไม่ได้ captcha คืออุปสรรคที่ตั้งใจสร้างขึ้น และผู้ให้บริการอัปเดตความท้าทายของตนอยู่เสมอ solver ที่ใช้งานได้วันนี้อาจล้มเหลวในเดือนหน้า ดังนั้นควรติดตามผลลัพธ์ของ solver อย่าสมมติว่ามันจะใช้ได้ต่อไปเรื่อย ๆ

การเลือก solver

คำถามสี่ข้อช่วยประเมินบริการ solver ใด ๆ ได้:

  1. รองรับ captcha ประเภทใดในวันนี้ ตรงข้ามกับที่อยู่ในแผนงาน
  2. การ solve ที่ล้มเหลวทำให้คุณเสียค่าใช้จ่ายเท่าไร solver ที่คิดเงินเมื่อล้มเหลวทำให้การ retry มีค่าใช้จ่ายสูง
  3. มันทำงานอย่างไรเมื่อ timeout หรือการตอบสนองช้า โค้ดของคุณต้องการ error ที่ชัดเจนเพื่อใช้ตัดสินใจ
  4. คุณต้องเปลี่ยนโค้ดมากแค่ไหนเมื่อ captcha เปลี่ยน ยิ่งเปลี่ยนน้อยยิ่งดี

Scarnox รองรับ PopularCaptcha ในขณะนี้ทั้งแบบ proxyless และใช้งานได้จริง ประเภทอื่นกำลังจะมาเร็ว ๆ นี้ และ คู่มือประเภทของ captcha อธิบายสถานะของแต่ละประเภท

ขั้นตอนถัดไป