2016-11-02 10 views
0

어리석은 질문에 대해 유감이지만 토큰 사용에 초보자이며 어쩌면 뭔가를 이해하지 못할 수도 있습니다.JWT 헤더 매개 변수의 용도는 무엇입니까?

나는 JWT에 대해 읽기 시작했고 구조에 대해 혼란 스럽다. 문서는 세 부분으로 구성되어 있다고 말한다 :

header 
payload 
signature 

내가 페이로드에 우리가 정보를 유지하고 서명 부분에 우리가 페이로드 검사에 대한 서명을 유지하는 것이 이해합니다. 그러나 헤더 부분의 목적은 무엇입니까? 일반적으로 HMW SHA256 또는 RSA와 같이 JWT의 토큰 유형과 해시 알고리즘의 두 부분으로 구성됩니다.

  1. 서버가 토큰에 서명 한 경우 사용하는 방법을 알고 있습니다. 따라서이 정보는 서버에 유용한 정보가 아닙니다. 이 정보는 전혀 사용하지 않습니다.
  2. 해커가 아닌가요? 그들은 당신의 서버가 사용하는 방법을 알 것이다. 보안을 강화하는 것이 좋은 방법인지 확신 할 수 없습니다.

이것이 바보 같은 질문 인 경우 사과드립니다. 실제로 일부 용도로는 서명 방법에 대한 정보를 보관해야하지만 설명이 필요한 정보를 찾지 못한 이유는 무엇입니까?

답변

1

JWT 생산자는이를 보호하기 위해 여러 가지 다른 방법을 사용할 수 있습니다. 특정 알고리즘 또는 키 길이를 갖는 대칭 또는 비대칭 키를 사용할 수 있으며 각 조합마다 다른 키를 가질 수 있습니다. 이러한 정보는 헤더에 포함되어 수신기가 JWT를 확인 및/또는 해독하는 데 사용할 키와 알고리즘을 알 수 있습니다.

수신자와 발신자가 동일한 당사자에 의해 제어되지 않을 수 있으므로 송신자가 사용할 수있는 여러 가지 방법이있는 경우 수신자가 토큰을 확인/암호 해독하는 방법을 알고 있으므로 확실히 유용한 정보입니다. 그러나 동일한 당사자가 관리하는 경우에도 암호화 알고리즘, 키 또는 키 길이를 원활하게 업그레이드 할 수 있습니다.

서버가 생성하여 소비하는 JWT에 서명하기 위해 새 키 쌍으로 롤오버된다고 상상해보십시오. 그런 다음 기존 키로 서명 된 기존 토큰을 잠시 동안 확인할 수 있습니다. 이 경우 JWT를받을 때 어떤 키가 JWT에 서명했는지 알 필요가 있습니다.

+0

도움 주셔서 감사합니다. 나는 그것에 대해 생각하지 않았다. 그것은 정말로 의미가 있습니다. – Alexandr