https://jwt.io/

 

[JWT]

Json Web Token 의 약자로 토큰값 자체에 데이터를 가지고 있는 인증 토큰.

.으로 구분되는 3개 영역, Header.Payload.Signature 으로 나뉘어 진다. 

모든 영역은 Base64로 인코딩 되어 있다.

* Base64란? Binary Data를 Text로 바꾸는 Encoding 방법 중 하나로 Binary Data를 Character set 에 영향을 받지 않는 공통 ASCII 영역의 문자로만 이루어진 문자열로 바꾸는 Encoding.

 

[Header.Payload.Signature]

1. Header : 토큰에 사용된 알고리즘(SHA256, HS512 등)과 MIME 타입(보통 "typ" : "JWT" 사용)

2. Payload : 토큰의 바디로써 Claim(User Id 와 같은 Entity 정보) 정보를 담고 있음.

  암호화 되어있지 않고 단순 Base64 인코딩이 되어있으므로 패스워드와 같이 중요한 데이터를 담지 않도록 주의

3. Signature : Header 와 Payload 가 위변조 되었는지 검증하기 위한 부분으로써 Header와 Payload 를 base64 encoding 해서 만든 두 값을 . 로 이어 붙이고 Header 에서 지정한 알고리즘(alg)로 인코딩하여 Signature 를 만듬.

 

https://blog.outsider.ne.kr/1160

반응형

'back > SECURITY' 카테고리의 다른 글

[SECURITY] Authentication vs Authorization  (0) 2022.08.16

+ Recent posts