언어 선택

Web Bot Auth 키 생성기: Ed25519 JWK 및 PEM 생성

브라우저에서 Web Crypto를 사용해 Ed25519 키 쌍을 생성하고, RFC 9421 HTTP Message Signatures를 위한 키 디렉터리 JSON과 서명된 예제 요청을 제공합니다.

Web Bot Auth 키 생성기사용 방법 ↓
키 디렉터리를 제공할 HTTPS 오리진입니다. Signature-Agent 헤더 값이 됩니다.
아래 서명된 예시 요청에만 사용됨
디렉터리 항목에 nbf 및 exp 기록

키 쌍은 브라우저의 Web Crypto API에 의해 생성되며 이 페이지를 벗어나지 않습니다. 새로고침 시 삭제되므로 이동하기 전에 개인 키를 다운로드하세요.

Mehmet Demiray 게시일 수정일
공유

Web Bot Auth의 필요성과 작동 원리

전통적인 웹 크롤러와 AI 에이전트는 User-Agent 문자열이나 IP 화이트리스트를 통해 신원을 증명해 왔습니다. 하지만 이러한 방식은 위조가 매우 쉽고 유지보수가 어렵다는 치명적인 단점이 있습니다. 공격자가 합법적인 봇의 User-Agent를 도용하거나 IP 대역을 임의로 변경하면 서버는 이를 구별할 수 없습니다. Web Bot Auth는 이러한 문제를 해결하기 위해 고안된 IETF 인터넷 초안 표준입니다. 이 표준은 HTTP Message Signatures(RFC 9421)를 기반으로 하며, 봇이 각 요청에 암호학적 서명을 추가하도록 요구합니다. 서버는 봇이 사전에 게시한 공개키를 통해 서명을 검증함으로써 요청의 진위 여부를 수학적으로 입증할 수 있습니다. Web Bot Auth 키 생성기를 사용하면 브라우저 환경에서 Ed25519 키 쌍을 안전하게 생성하고, 이 표준을 즉시 적용하기 위한 모든 설정 값을 한 번에 얻을 수 있습니다. 현재 이 기술은 초안 단계이지만, 이미 많은 주요 검색 엔진과 AI 플랫폼이 봇 신원 확인을 위한 차세대 표준으로 채택을 준비하고 있습니다.

Web Bot Auth 키 생성기의 출력 항목 이해하기

Web Bot Auth 키 생성기는 단순한 키 쌍 생성을 넘어, 실제 운영 환경에 필요한 모든 구성 요소를 하나의 초기 설정 키트로 제공합니다. 생성기를 실행하면 여러 개의 출력 카드가 순차적으로 나타납니다. 첫 번째는 키 ID로, RFC 8037과 RFC 7638에 정의된 JWK thumbprint 방식을 사용해 SHA-256 해시를 base64url로 인코딩한 값입니다. 이 값은 모든 서명의 keyid 파라미터로 사용됩니다. 두 번째는 키 디렉터리 JSON으로, 공개키 정보와 선택적 유효 기간을 포함합니다. 세 번째는 디렉터리 응답 헤더로, 24시간 유효한 샘플 서명이 포함되어 있습니다. 네 번째와 다섯 번째는 각각 JWK 및 PKCS#8 PEM 형식의 개인키와 SPKI PEM 형식의 공개키입니다. 마지막으로 서명된 예제 요청과 curl 명령어, 그리고 정확한 Signature Base 텍스트가 제공됩니다. 이 Signature Base는 커스텀 서명 로직을 디버깅할 때 바이트 단위의 정확한 참조점으로 활용됩니다. 모든 데이터는 브라우저의 Web Crypto API를 통해 로컬에서 생성되며, 외부 서버로 전송되지 않습니다.

HTTP Message Signatures 디렉터리 게시와 키 순환

생성된 공개키를 서버에 알리기 위해서는 특정 경로에 키 디렉터리를 게시해야 합니다. 클라이언트는 항상 /.well-known/http-message-signatures-directory 경로에서 키 정보를 조회합니다. 이 엔드포인트는 반드시 올바른 미디어 타입을 반환해야 하며, 응답 자체도 HTTP Message Signatures를 사용해 서명되어야 합니다. 개발 환경에서는 생성기가 제공하는 샘플 헤더를 그대로 사용할 수 있지만, 프로덕션 환경에서는 서버가 응답을 생성할 때마다 매번 새로운 서명을 계산하여 추가해야 합니다. 키 디렉터리 JSON에는 nbf와 exp 클레임을 포함하여 키의 유효 기간을 명시할 수 있습니다. 키 순환은 보안 유지를 위한 핵심 절차입니다. 30일, 90일, 365일 중 적절한 유효 기간을 선택하거나, 만료일을 설정하지 않을 수도 있습니다. 유효 기간을 짧게 설정하면 키가 유출되더라도 피해 범위를 줄일 수 있지만, 디렉터리를 더 자주 업데이트해야 하는 운영 부담이 따릅니다. 반대로 만료일을 설정하지 않으면 관리가 편하지만, 정기적인 키 순환 프로세스를 별도로 구축해야 합니다.

RFC 9421 기반의 HTTP 요청 서명 구조

HTTP 요청에 서명하는 과정은 RFC 9421 규격을 따릅니다. 서명 대상이 되는 컴포넌트와 파라미터는 Signature-Input 헤더에 정의됩니다. 여기에는 서명 생성 시간, 만료 시간, 키 식별자, 알고리즘, 일회용 난수, 그리고 태그가 포함됩니다. Web Bot Auth의 경우 tag 값으로 web-bot-auth를 사용하여 이 서명이 봇 인증 목적임을 명시합니다. 서명 베이스는 이러한 컴포넌트와 헤더 값을 특정 규칙에 따라 줄바꿈 문자로 연결한 평문 텍스트입니다. 개인키는 이 서명 베이스에 대해서만 Ed25519 서명을 수행합니다. 서명 검증이 실패하는 가장 흔한 원인은 클라이언트와 서버가 구성하는 서명 베이스 텍스트가 바이트 단위로 일치하지 않기 때문입니다. 생성기가 제공하는 예제 요청의 @authority와 signature-agent 포함 범위, 그리고 정확한 Signature Base 텍스트를 참고하면 자체 서명 라이브러리를 구현할 때 발생하는 불일치 문제를 쉽게 파악할 수 있습니다. 서명의 기본 유효 기간은 5분으로 설정되어 있어 재생 공격을 방지합니다.

개인키 보안 유지 및 봇 접근 제어 설정

Web Bot Auth 키 생성기의 가장 큰 장점은 개인키가 사용자의 브라우저를 떠나지 않는다는 점입니다. Web Crypto API가 로컬에서 Ed25519 키를 생성하므로, 서버 기반 생성기에 시크릿을 붙여넣을 때 발생할 수 있는 유출 위험이 원천적으로 차단됩니다. 페이지를 새로고침하면 키가 사라지도록 설계되어 있으므로, 생성 직후 JWK 또는 PEM 형식으로 개인키를 다운로드하여 안전한 시크릿 관리 시스템에 저장해야 합니다. JWK 형식에서 개인키 값은 d 파라미터에 저장되므로, 이 값이 절대 공개키 디렉터리나 로그에 노출되지 않도록 각별히 주의해야 합니다. 암호학적 서명은 봇의 신원을 증명하지만, 해당 봇이 어떤 콘텐츠를 읽을 수 있는지를 결정하는 것은 별도의 접근 제어 파일입니다. 봇의 크롤링 범위를 정의하려면 robots.txt 규칙 생성 도구를 활용하고, 설정한 규칙이 의도대로 작동하는지 robots.txt 테스트 도구를 통해 검증하는 것이 좋습니다. 서명을 통한 신원 증명과 접근 제어 파일의 결합은 AI 에이전트와 웹 서버 간의 신뢰할 수 있는 통신 환경을 완성합니다.

가장 많이 받는 질문

Web Bot Auth를 제 봇에 적용하려면 어떻게 해야 하나요?

Web Bot Auth 키 생성기에서 키 쌍을 생성한 후, 공개 키 디렉터리를 호스팅하고 개인 키로 각 요청에 서명하면 됩니다. 먼저 이 도구에서 키를 생성하고 출력된 JSON을 호스팅하세요. 그 다음 봇이 요청을 보낼 때마다 생성된 개인 키를 사용해 HTTP 헤더에 서명을 추가하면 됩니다.

개인 키가 서버로 전송되나요?

아닙니다. Web Bot Auth 키 생성기는 브라우저 내장 Web Crypto API를 사용하여 사용자의 기기 로컬에서 키를 생성합니다. 생성된 개인 키는 외부 서버로 전송되지 않으며, 페이지를 닫거나 새로고침하면 즉시 폐기됩니다. 보안을 위해 개인 키는 반드시 안전한 시크릿 매니저에 직접 저장해야 합니다.

페이지를 새로고침했더니 키가 사라졌는데 왜 그런가요?

이는 보안과 프라이버시를 위한 의도된 설계입니다. Web Bot Auth 키 생성기는 상태를 저장하지 않으므로 페이지를 새로고침하거나 닫으면 생성된 키가 완전히 삭제됩니다. 키를 잃어버린 경우 다시 생성하고 디렉터리를 재배포해야 하므로, 생성 직후 JWK 또는 PEM 형식으로 즉시 다운로드하여 안전하게 보관하시기 바랍니다.

키 ID는 무엇이며 어떻게 계산되나요?

키 ID는 서명된 요청의 keyid 파라미터에 사용되며, 공개 키를 고유하게 식별하는 값입니다. 이 도구는 RFC 8037 및 RFC 7638 규격에 따라 JWK thumbprint를 계산합니다. 구체적으로 공개 키 JWK의 필수 멤버를 사전순으로 정렬한 후 SHA-256 해시를 적용하고, 이를 base64url로 인코딩하여 생성합니다.

Web Bot Auth와 User-Agent 또는 IP 검증의 차이점은 무엇인가요?

User-Agent 문자열과 IP 주소는 위조하기 쉽거나 자주 변경될 수 있어 신뢰성이 낮습니다. 반면 Web Bot Auth는 암호학적 서명을 사용하므로 봇의 신원을 수학적으로 증명합니다. 사이트 운영자는 공개 키를 검증하여 요청이 승인된 봇에서 보낸 것인지 확실하게 확인할 수 있습니다. 접근 규칙 설정 및 robots.txt 테스트와 함께 사용하면 봇 관리에 매우 효과적입니다.

키 유효 기간을 설정해야 하나요, 아니면 만료 없음으로 해야 하나요?

이는 키 로테이션 주기와 유지보수 비용 사이의 절충 문제입니다. 만료 없음으로 설정하면 키를 계속 사용할 수 있지만, 개인 키가 유출되었을 때 위험이 지속됩니다. 30일 또는 90일와 같이 유효 기간을 설정하면 정기적으로 키를 순환해야 하는 번거로움이 있지만, 보안성을 크게 높일 수 있어 프로덕션 환경에서 권장됩니다.

이 도구는 무료이며 회원가입이 필요한가요?

Web Bot Auth 키 생성기는 완전히 무료이며 회원가입이나 로그인이 필요하지 않습니다. 모든 키 생성 및 서명 예제 출력 과정이 브라우저에서 로컬로 처리되므로, 언제든 자유롭게 도구를 사용하여 Ed25519 키 쌍과 HTTP 메시지 서명 예제를 생성할 수 있습니다.