0

내 nodej 프로젝트에 JWT 토큰을 구현했지만 토큰 취소 요구가 토큰 수명을 완전히 제어 할 수 있도록 참조 베어러 토큰으로 전환하게했습니다. 내 프로젝트 요구 사항에 따라 :참조 토큰 생성 모범 사례

  1. 토큰은 자기 설명 적 JWT 토큰보다 합리적으로 짧아야합니다.
  2. 토큰이 서버에서 발행되도록하려면 (JWT의 hs256 확인과 같은) 몇 가지 방법이 있어야하지만 참조 토큰에 페이로드 섹션이 없으므로 상황이 더욱 복잡해집니다.

안전하고 추측 할 수없는 참조 토큰을 구현하는 모범 사례는 무엇입니까?

답변

0

불투명 한 토큰은 서버에서 인증 된 사용자 이름으로 매핑되는 램덤 문자열입니다. https://security.stackexchange.com/questions/19676/token-based-authentication-securing-the-token

이러한 토큰을 살펴보십시오 충분히 좋은 보안을 위해 한 공격자가 무시할 수없는 가능성의 데이터베이스에있는 "유효한 토큰"인 "토큰을 가진 유효한 토큰을 생성 할 수 방출 된 토큰 ". 이 토큰 값은 길이 최소 16 바이트를 가지고 있고, 토큰은 사용자 이름과 발행 날짜를 포함 할 수있는 서버 스토리지 요구 사항을 줄이기 위해 강력한 암호 PRNG

으로 생산 및 암호화 충분하다 HMAC 개인 키를 사용하여 서버가 신뢰성을 확인할 수 있도록합니다.

마지막 해결 방법은 JWT와 매우 비슷합니다. JWT를 사용하면 블랙리스트을 사용하여 유효하지 않은 토큰을 표시하고 만료일까지 저장할 수 있으며 요청할 때마다 확인하십시오. (블랙리스트는 국가 유지가 필요하므로 JWT 무국적자를 무효로합니다)