AgentAuth 심층 분석: 자가 인증 UUID 이해하기
AI 에이전트에게 로그인 화면을 보여주는 것은 아무런 의미가 없습니다.
에이전트는 브라우저 앞에 앉아 있지 않습니다. 새벽 3시에 도구 호출(tool calls)을 실행하며, 병렬로 작동합니다. OAuth나 세션 쿠키와 같은 전통적인 방식은 사람이 동의 버튼을 클릭할 것이라고 가정하기 때문에 에이전트 환경에서는 작동하지 않습니다.
AgentAuth는 단 한 가지, UUID를 사용하여 이 문제를 해결합니다.
세션이나 추가 인프라를 사용하지 않습니다. 공개키 암호화(public-key cryptography)를 사용하여 신원(identity)과 인증(authentication)을 하나의 값으로 통합합니다.
작동 방식은 다음과 같습니다:
• 토큰(Token): 개인키(secp256k1). 이는 사용자의 기기에 비밀로 유지됩니다. • 주소(Address): 토큰에서 파생된 공개 값입니다. • ID: 주소를 기반으로 생성된 안정적인 UUID입니다.
흐름은 단방향입니다. 토큰에서 ID로 갈 수는 있지만, ID에서 토큰으로 되돌아갈 수는 없습니다. 이 덕분에 ID는 안정적인 신원이 됩니다.
사칭을 어떻게 방지할까요?
ID가 공개되어 있더라도 공격자는 이를 사용할 수 없습니다. 모든 요청에는 디지털 서명이 포함되기 때문입니다.
- 클라이언트가 개인 토큰으로 요청 페이로드(payload)에 서명합니다.
- 서버는 서명과 주장된 주소(claimed Address)를 받습니다.
- 서버는 서명을 사용하여 주소를 복구(recover)합니다.
- 복구된 주소가 주장된 주소와 일치하면 요청은 유효합니다.
이 프로세스는 상태를 유지하지 않는(stateless) 방식입니다. 서버는 사용자를 검증하기 위해 활성 세션 데이터베이스를 가질 필요가 없습니다. 오직 수학적 계산만 있으면 됩니다.
재전송 공격(replay attacks)을 방지하기 위해 AgentAuth는 60초의 타임스탬프 윈도우를 사용합니다. 공격자가 서명된 요청을 탈취하더라도, 서명이 무효화되기 전까지 사용할 수 있는 시간은 단 1분뿐입니다.
중요한 차이점: AgentAuth는 인증(Authentication, 당신은 누구인가?)을 위한 것입니다. 권한 부여(Authorization, 당신은 무엇을 할 수 있는가?)를 위한 것이 아닙니다.
이를 공식 MCP OAuth 2.1 사양과 혼동하지 마십시오.
- 양쪽 끝(both ends)을 모두 제어할 수 있고, 사용량 추적이나 티어 제한(tier gating)을 위해 안정적인 ID가 필요한 경우 AgentAuth를 사용하십시오.
- 사람을 대신하여 제3자 API에 권한을 위임해야 하는 경우 MCP OAuth 2.1을 사용하십시오.
두 방식은 함께 작동할 수 있습니다. AgentAuth로 에이전트를 식별하고, OAuth로 외부 데이터에 대한 에이전트의 액세스 권한을 관리하십시오.
AgentAuth는 단 하나의 로그인 화면도 없이 개인키를 검증 가능하고 안정적인 신원으로 변환합니다.
Optional learning community: https://t.me/GyaanSetuAi
