AI captcha 솔버의 작동 원리: 모델, 토큰, 한계
AI captcha 솔버는 머신러닝 모델을 사용해 사용자를 대신해 captcha에 답하는 소프트웨어입니다. 답이 콘텐츠 자체에서 읽힐 수 있는 챌린지, 예를 들어 왜곡된 글자나 이미지 격자에서 가장 잘 작동합니다. 토큰 기반 위젯의 경우 모델의 역할은 사이트 서버가 받아들이는 응답을 만드는 것이며, 이는 전혀 다른 문제입니다. 이 가이드는 두 경우를 모두 설명하고, 한계가 어디인지, 그리고 솔버 서비스에서 실제로 무엇을 받게 되는지 정리합니다.
이 가이드는 일반적인 기법을 설명합니다. 특정 서비스의 내부 구조를 설명하지는 않습니다. 개발자에게 중요한 것은 계약입니다. captcha의 정보를 보내면 토큰을 돌려받습니다.
captcha의 세 가지 유형
대부분의 captcha는 세 가지 유형 중 하나에 속하며, AI는 각 유형을 다르게 다룹니다.
콘텐츠 챌린지. 방문자가 무언가를 읽거나 식별합니다. 왜곡된 문자, 일련의 번지수, 격자 속 신호등, 회전된 물체 등입니다. 정답은 이미지나 오디오 자체에 있습니다. 머신러닝이 가장 강한 영역입니다.
행동 점수화. 눈에 보이는 챌린지가 전혀 없을 수도 있습니다. 사이트는 브라우저가 어떻게 행동하는지 관찰하고, 요청 기록을 살펴보고, 방문자에게 점수를 매깁니다. reCAPTCHA v3가 이런 방식이며, 퍼즐이 아니라 숫자를 돌려줍니다. 여기서는 모델이 답을 단순히 "읽을" 수 없습니다. 읽을 답이 없기 때문입니다. 문제는 신호가 충분히 사람처럼 보이는지입니다.
토큰 기반 위젯. 위젯이 페이지에서 실행되어 검사를 수행하고, 숨겨진 폼 필드에 토큰을 기록합니다. 그러면 사이트의 백엔드가 제공자에게 토큰을 확인합니다. PopularCaptcha가 이 방식으로 동작하며, reCAPTCHA v2와 Cloudflare Turnstile도 마찬가지입니다.
모델이 콘텐츠 챌린지를 처리하는 방식
왜곡된 텍스트의 표준 접근법은 광학 문자 인식(OCR) 모델입니다. 합성곱 신경망이나 트랜스포머 기반 비전 모델이 이미지를 읽고 문자열을 출력합니다. 학습에는 정답이 알려진 대량의 생성된 captcha가 사용되므로, 모델은 흔한 왜곡인 뒤틀림, 노이즈 선, 겹치는 글리프, 배경 질감을 학습합니다.
이미지 격자의 경우 과제는 분류입니다. 모델은 각 타일을 살펴보고 챌린지가 요구하는 물체가 들어 있는지 판단합니다. 어려운 경우는 부분적으로 가려진 물체, 타일 가장자리에 걸친 물체, 또는 애매한 물체입니다. 예를 들어 프레임 밖으로 대부분 빠져나간 버스 같은 경우입니다. 이런 경우의 정확도는 낮아지며, 좋은 솔버는 추측할 때와 다른 라운드를 요청할 때를 판단해야 합니다.
오디오 챌린지는 음성 인식을 사용합니다. 모델이 클립을 받아쓰고, 그 받아쓴 내용이 답이 됩니다. 배경 소음과 의도적인 왜곡이 주요 난관입니다.
이미지를 회전시키거나 조각을 제자리에 밀어 넣는 퍼즐 챌린지에는 다른 종류의 모델이 필요합니다. 모델은 이미지에서 각도나 위치를 추정한 뒤, 그에 맞는 드래그나 클릭 동작을 만들어 냅니다.
모델이 점수화와 토큰을 처리하는 방식
행동 점수화와 토큰 위젯은 페이지를 읽는 방식으로 풀기가 더 어렵습니다. 제공자의 자체 검사는 방문자의 브라우저에서 실행되며, 그 결과는 브라우저 환경, 입력 이벤트의 타이밍, 세션 기록 같은 신호에 따라 달라집니다. 솔버는 바깥에서 점수나 신호를 유용할 만큼 자세히 볼 수 없습니다.
이런 경우에 효과적인 접근법은 제공자가 기대하는 응답을 돌려주는 솔버이며, 유효한 토큰을 만들도록 설계된 파이프라인을 사용합니다. 여러분 입장에서 중요한 속성은 단순합니다. 토큰 또는 오류를 받고, 토큰은 사이트가 검사합니다.
Scarnox API가 지금의 형태인 이유도 그 때문입니다. 작업 유형, sitekey, 페이지 URL을 보내면, solution 필드에서 토큰을 받습니다.
{"errorId": 0, "solution": {"token": "..."}, "cost": ...}
토큰은 사이트가 기대하는 폼 필드에 넣으며, 약 2분 후에 만료됩니다. 전체 요청 방법은 captcha 솔버 API 가이드에서 다룹니다.
AI가 도움이 되는 곳과 멈추는 곳
AI 솔버가 잘하는 것은 다음과 같습니다.
- 특정 captcha 유형에 맞게 튜닝된 뒤로는 왜곡된 텍스트를 일관되게 읽는 것.
- 명확한 예시에서 이미지 격자를 높은 정확도로 분류하는 것.
- 동기 요청에 쓸 만큼 빠르게 응답하는 것.
- 실패 시 비용이 들지 않도록, 실패한 solve에 과금하지 않는 솔버를 쓰면 실패해도 비용이 없는 것.
반면 약한 부분은 다음과 같습니다.
- 디자인이 자주 바뀌는 퍼즐. 지난달 버전으로 학습된 모델이 새 버전에 적용되지 않을 수 있습니다.
- 결과가 답보다 실행 환경에 더 많이 좌우되는 행동 검사.
- 의미나 문맥에 관한 질문처럼, 콘텐츠에 대해 실제 사람의 판단이 필요한 챌린지.
어떤 모델로도 없앨 수 없는 실질적인 한계도 있습니다. captcha는 의도된 장벽이며, 제공자들은 챌린지를 계속 업데이트합니다. 오늘 작동하는 솔버도 다음 달에는 실패할 수 있으므로, 솔버의 출력은 계속 작동할 것이라고 가정하지 말고 모니터링해야 할 대상으로 다루세요.
솔버 선택하기
어떤 솔버 서비스든 평가할 때 다음 네 가지 질문이 도움이 됩니다.
- 로드맵에 있는 것이 아니라, 지금 실제로 지원하는 captcha 유형은 무엇인가?
- 실패한 solve에 얼마를 내야 하는가? 실패에 과금하는 솔버는 재시도를 비싸게 만듭니다.
- 타임아웃이나 응답 지연 시 어떻게 동작하는가? 여러분의 코드가 대응할 수 있도록 명확한 오류가 필요합니다.
- captcha가 바뀌었을 때 코드에서 무엇을 바꿔야 하는가? 적게 바꿀수록 좋습니다.
Scarnox는 현재 PopularCaptcha를 proxyless 방식으로 실시간 지원합니다. 다른 유형은 곧 지원 예정이며, captcha 유형 가이드에서 각 유형의 현재 상태를 확인할 수 있습니다.