Skip to main content

JWT 배경지식

·198 words·1 min· loading
Table of Contents

JWT 이해에 필요한 배경지식들 정리

기존 세션 방식의 문제점
#

로드 밸런싱 (여러대의 서버가 나누어 운영)에서, 세션 처리를 어떻게 해야될지 난감
#

EX)

  1. A,B,C라는 서버 3대가 요청을 처리중
  1. 사용자가 A서버에 로그인을 처리해서 세션쿠키 발급받음
  2. 갑자기 A서버에 트래픽이 몰려서, B서버에서 다음 작업을 수행
  3. B서버는 사용자에 대한 세션이 없음

또한, 서버의 메모리를 소모하므로, 사용자가 많아지면 ….

** 이래서 in-memory DB (redis등) 에서 세션을 저장하고. 모든 서버가 이에 접근하게 함 **


CIA
#

미국 중앙정보국 Confidentiality(기밀성), Integrity(무결성), Availability(가용성)

  • Confidentiality(기밀성) : 정보는 인가된 사용자만 접근할 수 있어야 함
  • Integrity(무결성) : 정보가 전송 중 변경되지 않았다는 것을 보장
  • Availability(가용성) : 정보가 필요할 때, 항상 접근가능해야함

RSA
#

공개 키 암호화 알고리즘 public key, private key

A==>B

  1. A는 B의 공개키로 암호화하여 데이터 전송
  2. B는 B의 개인키로 복호화
  • 공개키로 잠그면, 개인키로 열 수 있음 (암호화)
  • 개인키로 잠그면, 공개키로 열 수 있음 (전자서명)

디지털 서명
#

위의 송신과정에 더해

  • A는 메시지의 해시값을 자신의 개인키로 암호화해서 디지털 서명을 생성하고, 이것을 메시지와 함께 전송
  • B는 A의 공개키를 사용해서 디지털 서명을 복호화하고, 이렇게 얻은 해시값을 메시지의 해시값과 비교
  • 일치한다면, B는 송신자가 A이고, 중간에 변경되지 않았음을 확신

RFC
#

Request For Comments

인터넷과 관련된 표준과 프로토콜을 설명하고 정의하는 공식 문서 집합 JWT는 RFC 7519에 정의되어 있음


다음 (진짜 JWT에 대해서)