728x90
728x90
사용 이유 : jwt를 암호화하여 비밀을 제공 할 수도 있지만, 핵심은 서명된 토큰이 중점이다.
구조:
header.payload.signature
(xxxxxx.yyyyyy.zzzzzz)
값은 base64 인코딩되어있음
ex) header -> { "alg" : HS256, "typ": "JWT"} 와 같은 데이터가 base64 인코딩
header는 서명 알고리즘이 들어감
payload는 등록된 클래임, 개인 클래임 등의 값으로 이루어짐
등록된 클래임(필수는 아님) : iss(발행자), exp(만료 시간), sub(주제), aud(청중) 등 기타
개인클래임 : 당사자간에 정보를 공유하기 위한 데이터 (유저네임 등)
signature 는 위에 header, payload와 내 secret key를 암호화 알고리즘으로 암호환 값
HS256은 HMAC 방식으로 SHA256(해시) 암호화 한 것
HAMC 방식은 어떠한 시크릿 값을 포함한 암호화 방식
-> header + payload + secretkey로 sha256 해쉬하여 signauter를 만듬
검증은 서버에서 header + payload + secretkey로 sha256 해쉬하여 signauter값과 비교
RSA 방식은
-> header + payload 를 서버 개인키로 서명 하여 signature를 만듬
검증은 서버에서 signauter를 공개키로 풀어봄
'개발 관련 부가 지식 > 기타' 카테고리의 다른 글
자료구조 기초 정리 (0) | 2023.01.18 |
---|---|
데이터베이스 기초 용어 정리 (0) | 2023.01.18 |
인코딩, Charset, base64, 아스키 용어 정리 (0) | 2023.01.13 |
도커, 간단한 명령어 정리 중 (0) | 2023.01.06 |
git 명령어 정리중 (0) | 2022.12.16 |