BE/Spring

[Spring Security] JWT - 1. JWT를 공부하기 전에

멍목 2022. 6. 9. 19:06
반응형

이 포스팅은 아래의 강의를 참고하였으니 여기에서 공부하시는 것을 추천드립니다.

https://inf.run/tcLk

 

[무료] 스프링부트 시큐리티 & JWT 강의 - 인프런 | 강의

스프링부트 시큐리티에 대한 개념이 잡힙니다., - 강의 소개 | 인프런...

www.inflearn.com


JWT를 공부하기 전에 아래의 기초 배경 지식들을 이해하고 들어가자.

 

1. 세션 및 쿠키의 기본 흐름

  1. 사용자가 특정 웹사이트에 최초 요청을 함.
  2. 서버에서 세션 정보 그리고 이 세션 정보를 대표하는 세션ID를 생성하고 header에 세션ID를 담아서 보내줌 웹 브라우저에 보내줌
  3. 그럼 사용자의 웹 브라우저는 이 세션 ID를 쿠키라는 웹브라우저의 저장소에다가 저장
  4. 이후에 요청할 때는 세션 ID를 담아서 요청함
  5. 서버에서 해당 세션ID를 검증, 확인

 

세션이 삭제되는 경우

  • 서버에서 세션을 삭제
  • 세션이 특정 시간동안 접근되지 않을 때 삭제

 

로드밸런싱

  • 서버의 부하를 분산시키는 방법
    • ex) 하나의 웹사이트가 2대의 서버로 운영되고 있을 때, A서버에 사용자가 몰릴 경우 B서버에 요청하는 방식
  • 로드밸런싱 시, 발생할 수 있는 현상
    • A서버에 세션을 생성했는데 B서버로 접근 시, 세션정보가 없어 다시 생성해야하는 현상
    • 각 서버에 저장하는 것이 아닌 메모리 공유 서버에 세션 정보를 저장하게 하는 것도 해결 방법이 될 수 있음

 

2. OSI 7 계층 / TCP vs UDP

JWT에 대해서 이해하기 전에 OSI 7 계층과 TCP, UDP 전송 방식에 대한 배경지식이 필요하다.

 

OSI 7 Layer와 TCP/IP Model

이번 포스팅에서는 컴퓨터 통신을 여러 단계로 나눈 OSI 7 Layer에 대해 다뤄보려고 합니다. 또한, OSI 7 Layer 를 점유율에서 이겨 실질적으로 사용하고 있는 모델인 TCP/IP 모델에서도 다뤄보겠습니다

ajdahrdl.tistory.com

 

TCP : 연결 지향형 프로토콜, 가상 회선을 만들어 신뢰성을 보장하도록(흐름 제어, 혼잡 제어, 오류 제어) 하는 프로토콜, UDP에 비해 속도가 느린편, 신뢰성이 중요한 서비스에 사용

 

UDP : 데이터를 데이터그램단위로 전송하는 프로토콜, 스트리밍처럼 연속성이 중요한 서비스에 사용. UDP도 신뢰성을 UDP자체에서 보장하지 않는 것 뿐이지, 개발자가 직접 신뢰성을 보장하도록 할 수 있음

 

JWT, 인증 등과 같이 보안과 관련된 기능은 신뢰성을 보장하는 TCP 통신 방식을 이용한다.

 

3. 보안

1) 보안의 3요소(CIA)

- 기밀성(Confidentiality) : 오직 인가된 사용자 / 프로세스 / 시스템 만 접근할 수 있는 특징

- 가용성(Availcbility) : 사용자가 필요로 하는 시점에 접근 가능해야 한다는 특징

- 무결성(Integrity) : 데이터 / 시스템 등이 변조로부터 보호되어야 한다는 특징

 

 

2) RSA

  • 공개키 암호화 알고리즘 중 하나이며, 세계적으로 많이 사용되는 알고리즘
  • 대표적으로 전자서명에서 사용된다.
  • 두 개의 키를 이용한다. 
    • 공개키(Public Key) : 공개해도 되는 키
    • 개인키(Private Key) : 공개하면 안 되는 키
  • 위의 두 키를 이용해서 암호화와 복호화가 가능하다.
  • RSA 알고리즘 방식
    1. 철수가 영미한테 비밀 정보를 보내려고 한다.
    2. 영미는 자신의 공개키와 비밀키를 만든 후, 철수에게 영미의 공개키를 보낸다. (영미의 개인키는 영미 본인만 가지고 있음)
    3. 철수는 영미한테 받은 영미의 공개키를 이용해서 비밀 정보를 암호화한다.
    4. 철수가 3번에서 암호화한 정보를 영미에게 보낸다.
    5. 영미는 철수에게 받은 암호화된 정보를 영미 개인키를 이용해서 복호화를 진행하여 원본 정보를 볼 수 있다.

 

 

반응형