왜 나는 인간이 아닌 AI 에이전트를 검증하는 Reverse-CAPTCHA를 만들었는가
Source: Dev.to
번역을 진행하려면 번역하고자 하는 전체 텍스트(본문)를 제공해 주시겠어요?
본문을 주시면 요청하신 대로 한국어로 번역해 드리겠습니다.
문제
에이전트‑대면 API를 구축하고 있었는데, 클라이언트가 실제 AI 에이전트인지 확인할 표준적인 방법이 없다는 것을 깨달았습니다. API 키는 신원을 증명하지만, 능력을 증명하지는 못합니다. 기존 CAPTCHA는 인간임을 증명하는 것이며—제가 필요로 하는 것과는 정반대였습니다. 무단 스크래퍼들이 합법적인 에이전트인 척 제 엔드포인트를 공격하고 있었습니다.
실제 LLM에게는 아주 간단하지만 인간이 수동으로 해결하기에는 비현실적인 무언가가 필요했습니다.
imrobot 작동 방식
imrobot은 조합 가능한 문자열 연산—base64, rot13, hex 인코딩, reverse 등—을 사용하여 결정론적인 챌린지 파이프라인을 생성합니다. 이러한 연산들이 연결되어 파이프라인을 만듭니다:
seed: "a7f3b2c1d4e5f609"
1. reverse()
2. base64_encode()
3. rot13()LLM은 지시를 파싱하고 각 단계를 순차적으로 실행하여 결과를 반환합니다 (≈ 0.3 s). 인간은 디코더 도구를 사용해 각 변환을 수동으로 진행해야 하는데—기술적으로는 가능하지만 비현실적입니다.
난이도는 선형적으로 증가합니다: 체인에 연산이 많을수록 = 더 어려운 챌린지. 검증은 완전히 무상태이며 결정론적입니다—파이프라인을 다시 실행하고 결과를 비교하면 됩니다.
What Makes It Different
- 모든 환경에서 동작합니다. imrobot은 React, Vue, Svelte, Web Component 통합을 제공하며, 모든 JavaScript 환경을 위한 헤드리스 API도 포함합니다.
- 의존성 제로. 전체 라이브러리는 외부 의존성이 없으며, 공급망 위험을 없애고 패키지 크기를 약 15 KB 수준으로 유지합니다.
- 셀프‑호스팅 가능한 REST API. 내장 서버는 Node.js의
http모듈만 사용합니다(Express/Fastify 사용 안 함). CORS 처리와 JSON 파싱을 포함한 다섯 개 엔드포인트(challenge, solve, verify, health, info)를 단일 경량 파일에서 제공합니다. - DOM‑임베디드 챌린지. 브라우저 기반 AI 에이전트를 위해 imrobot은 챌린지를 Web Component 형태로 직접 DOM에 삽입할 수 있습니다. 에이전트는 페이지에서 챌린지를 읽고 해결한 뒤 제출합니다—별도의 API 호출이 필요 없습니다.
- 결정론적 검증. 모든 챌린지는 정확히 하나의 정답만을 가집니다. 확률적 점수, 시간 윈도우, 모호성 등이 없습니다.
빠른 시작
시작하는 데 약 30 초 정도 걸립니다:
npm install imrobotimport { generateChallenge, solveChallenge, verifyAnswer } from 'imrobot';
// Generate a challenge pipeline
const challenge = generateChallenge({ difficulty: 'medium' });
// An AI agent solves it
const answer = solveChallenge(challenge);
// Verify the answer
const isVerified = verifyAnswer(challenge, answer);
console.log(isVerified); // true또는 REST API를 사용하세요:
# Start the server
npx imrobot-server
# Generate a challenge
curl http://localhost:3000/api/challenge
# Verify an answer
curl -X POST http://localhost:3000/api/verify \
-H "Content-Type: application/json" \
-d '{"challengeId": "...", "answer": "..."}'사용 사례
- Agent‑facing APIs — 엔드포인트에 접근하는 클라이언트가 실제 AI 모델인지, 스크래퍼나 허가되지 않은 봇이 아닌지 확인합니다.
- Multi‑agent platforms — 여러 에이전트가 상호 작용하는 시스템에서 각 에이전트는 접근 권한을 부여받기 전에 자신의 역량을 증명할 수 있습니다.
- AI‑only services — AI 에이전트 전용으로 설계된 플랫폼은 전통적인 CAPTCHA가 인간 전용 서비스를 보호하듯이 imrobot을 게이트키퍼로 사용할 수 있습니다.
- Browser automation verification — DOM에 삽입된 챌린지를 통해 별도의 API 통합 없이 브라우저 기반 에이전트를 검증할 수 있습니다.
다음 단계
imrobot은 v0.1.0이며 활발히 유지 관리되고 있습니다. 로드맵 항목에는 다음이 포함됩니다:
- REST 서버에 대한 속도 제한 및 API 키 인증
- 한 번에 여러 챌린지를 생성/검증하는 배치 엔드포인트
- 프로덕션 배포를 위한 서버 측 세션 스토어(Redis/SQLite)
- 비 JavaScript 에이전트를 위한 Python 및 Go SDK
- 즉시 배포를 위한 Docker 이미지
- 자동 생성 문서를 위한 OpenAPI/Swagger 사양
이 프로젝트는 MIT 라이선스로, 버그 보고, 기능 요청 또는 PR 등 기여를 환영합니다.
GitHub:
npm: