2016-08-15 3 views
0

제가 알고 있듯이 : 비대칭 공개/개인 키 암호화 알고리즘을 사용하여 만든 JWT의 유효성을 확인하려면 JWT 헤더, 주장 (일명 페이로드) 및 서명. JWT 헤더와 클레임은 자유롭게 해독 될 수 있지만 공개 키없이 서명을 유효화하지 않고는 확인할 수 없습니다 (헤더 & 소유권 주장을 기반으로하며 개인 키로 생성됨).편리 성을 위해 JWT 페이로드에 공개 키가없는 이유는 무엇입니까?

제 질문은 토큰의 클레임 페이로드에 공개 키를 번들로 묶는 것입니다. 그런 식으로 누구나 데이터베이스 나 파일 저장소에서 공개 키를 찾아 낼 필요없이 토큰의 유효성을 확인할 수 있습니다.

+1

이러한 종류의 (프로그래밍되지 않은) 질문은 security.stackexchange.com에서 더 유리합니다. Artjom의 대답은 물론 정확합니다. 그런 의미에서별로 중요하지 않지만 다음 번에 거기에 물어보십시오. –

답변

6

JWT와 함께 제공된 공개 키가 확실하다는 것을 어떻게 알 수 있습니까? 아시다시피 공격자가 키 쌍을 생성하고 개인 키로 페이로드에 서명 한 다음 데이터, 서명 및 공개 키를 JWT에 포함 시켰을 수 있습니다. 당신이 지금 가지고있는이 "물건"은 아무것도 증명하지 못합니다.

+0

그건 완벽하게 이해가됩니다. 도대체 어떻게 그걸 보지 못했습니까, 전에는 바보 같았습니다. 건배. – alexkb

+1

JWT 토큰은 작고 작기 때문에 공개 키를 추가하면 상당히 커집니다. 어떤 구현은 여러 개의 키를 사용하여 어떤 키가 사용되었는지 정의한 다음, 찾아서 적용 할 수있는 클레임을 추가한다고 생각합니다. – Alex