[Normaltic's 취업반 과제] jwt

2024. 5. 3. 14:28정보보안 및 해킹/Normaltic's 취업반 과제

JWT

JSON Web Token

정의

전자서명 된 URL-safe(URL에 그대로 사용하면 안되는 문자를 인코딩 등을 통해 변조)의 JSON

속성 정보(Claim)을 JSON구조로 표현한 토큰

구성

Source : Cookies vs. Tokens: The Definitive Guide – https://dzone.com/articles/cookies-vs-tokens-the-definitive-guide

header / payload / signature

header

토큰의 타입과 알고리즘으로 구성

JWT + [HMAC / SHA256 / RSA ...]

payload

토큰에 담을 속성 정보(Claim)으로 구성. 복수의 Claim 가능

등록된 Claim(Registered), 공개 Claim(Public), 비공개 Claim(Private)

name / value

signature

비밀 키를 포함하여 암호화

방식

서버와 클라이언트 간 데이터를 주고 받을 시 Http 리퀘스트 헤더에 JSON토큰을 넣은 후 서버의 인증 과정 없이 해당 토큰을 통해 인증. URL-safe하도록 URL에 포함할 수 있는 문자만으로 구성

장점

인증에 필요한 모든 정보를 갖고 있기 때문에 별도의 인증이 필요하지 않음

단점

거의 모든 요청에서 사용되기 때문에 데이터 트래픽에 영향을 끼칠 수 있음

MAC 알고리즘 (Message Authentivation Code)

원본 메시지와 전달된 메시지를 비교하여 해당 메시지가 변조되었는지 확인하는 방식

HMAC 알고리즘

해싱과 공유키를 사용, 해시값이 변하면 원문이 변조되었다고 판단할 수 있음

RSA 사용

공개 키 알고리즘

서버와 클라이언트가 서로 동일한 키(비밀 키)를 가지고 있고, 클라이언트에서 서버로 혹은 서버에서 클라이언트로 메시지를 전달할 때 누구에게나 공개된 공개 키를 가지고 암호화를 한다.

하지만 복호화 하는 것은 클라이언트와 서버만이 가진 비밀 키를 통해서만 가능하여, 공개키로 암호화 하더라도 공개키로 복호화 하는 것은 불가능하다.

JWS

JSON Web Signiture

JSON 데이커 구조를 사용하는 서명 표준

JWE

JSON Web Encryption

JSON 데이터 구조를 사용하는 암호화 방법

 

 

ref.

http://www.opennaru.com/opennaru-blog/jwt-json-web-token/

 

JWT (JSON Web Token) 이해하기와 활용 방안 - Opennaru, Inc.

JWT 는 JSON Web Token의 약자로 전자 서명 된 URL-safe (URL로 이용할 수있는 문자 만 구성된)의 JSON입니다.JWT는 속성 정보 (Claim)를 JSON 데이터 구조로 표현한 토큰으로 RFC7519 표준 입니다.

www.opennaru.com

https://domdom.tistory.com/155

 

[인코딩] base64 와 base64 url-safe 차이점

위 이미지는 일반적인 base64 인코딩이 가지는 문자열들입니다. base64 url-safe 와의 큰 차이점은 62, 63, 그리고 pad 부분입니다. URL에서 +, /, = 는 특수하게 예약된 제어문자입니다. URL 에서 + 는 띄어쓰

domdom.tistory.com

https://m.blog.naver.com/techtrip/221723355441

 

해싱(Hashing)을 활용한 HMAC(Hash based Message Authentication Code)

이 글을 읽기 전에 해싱에 대한 기본 지식은 아래 포스트를 통해 습득하시기 바랍니다. 송수신자 간의 메시...

blog.naver.com

https://www.veritas.com/ko/kr/information-center/rsa-encryption