광고 영역 (상단 디스플레이)

JWT RS256·ES256 공개키 검증기

RS256·RS384·RS512·ES256·ES384·PS256 비대칭 서명 JWT를 PEM 공개키 또는 JWK로 검증합니다. 검증은 모두 브라우저 내 Web Crypto API로 처리되므로 토큰·키가 외부로 전송되지 않습니다.

1. JWT 토큰

2. 공개키 입력 방식

3. 디코딩된 토큰

(검증 후 표시)
(검증 후 표시)
광고 영역 (결과 하단)

JWT 비대칭 서명 검증 개요

JWT(JSON Web Token)는 인증·인가에 널리 쓰이는 토큰 형식입니다. HMAC-SHA256(HS256)은 같은 비밀키로 서명·검증하지만, RS256·RS384·RS512·PS256·ES256·ES384 같은 비대칭 알고리즘은 개인키로 서명하고 공개키로 검증합니다. OAuth 2.0·OpenID Connect의 ID 토큰은 거의 비대칭 서명을 사용하며, 공개키는 /.well-known/jwks.json에 JWKS 형태로 노출됩니다.

검증 단계

알고리즘별 차이

RS 계열은 RSASSA-PKCS1-v1_5, PS는 RSA-PSS, ES는 ECDSA입니다. 같은 RSA 키여도 서명 방식이 다르므로 토큰의 alg와 키의 사용 알고리즘이 정확히 매칭되어야 합니다. ECDSA의 경우 JOSE 표준은 R||S 단순 연결 형식이므로 ASN.1 DER 형식이 아님을 주의하세요. 본 도구는 Web Crypto API가 요구하는 형식 그대로(JOSE 형식)을 전달합니다.

보안 주의

JWT 검증 라이브러리들이 과거 가장 많이 당한 취약점은 토큰의 alg를 그대로 신뢰해 "none" 또는 HS256으로 처리해 버린 것입니다. 운영 코드에서는 반드시 서버가 기대하는 알고리즘을 명시적으로 지정해 검증하고, 토큰이 임의로 alg를 바꿔 보내는 것을 거부해야 합니다.

자주 묻는 질문 (FAQ)

Q. 키는 외부 서버로 전송되나요?

A. 아니요. 검증은 전적으로 브라우저의 Web Crypto API로 처리되며 네트워크 통신이 발생하지 않습니다. 새로고침 시 입력 내용도 자동 저장되지 않습니다(localStorage 미사용).

Q. HS256 토큰도 검증되나요?

A. 이 도구는 비대칭 서명 전용입니다. HS256은 비밀키를 노출해야 하므로 별도 도구를 사용하세요.

Q. JWKS URL을 입력하면 안 되나요?

A. CORS 문제로 임의 URL을 가져올 수 없습니다. 발급처 사이트(예: https://accounts.google.com/.well-known/openid-configuration)에서 JWKS JSON을 복사해 직접 붙여넣어 주세요.