JWT RS256→HS256 키 컨퓨전:
서버가 RS256 (RSA 공개키)을 사용하지만, 클라이언트가 보낸 alg 헤더를 신뢰하면,
공격자가 RS256을 HS256으로 변경하고 공개키를 secret으로 사용하여 유효한 서명을 생성할 수 있습니다.
공개키는 공개되어 있으므로 누구나 이 공격을 수행할 수 있습니다.
Header: {"alg":"RS256","typ":"JWT"}Payload: {"user_id":1,"role":"user"}Signature: RSA-sign(header.payload, private_key)Header: {"alg":"HS256","typ":"JWT"} ← alg 변경Payload: {"user_id":999,"role":"admin"} ← role 변경Signature: HMAC-SHA256(header.payload, public_key) ← 공개키로 서명alg: HS256을 보고 HMAC 검증 수행