본문 바로가기
Spring/Spring Security

[Spring Security] JWT를 위한 배경지식

by seoyamin 2023. 2. 10.

1. Session

세션은 사용자 요청이 들어오면 처음에 그 사용자의 정보를 서버에 있는 세션에 저장해두고, 다음 요청부터는 그 세션과 사용자가 요청과 함께 보낸 세션 ID를 이용해서 해당 사용자에 대한 데이터를 세션에서 꺼내다준다.

즉, 사용자가 한번 접속한 순간부터 그 접속을 마치는 순간까지 사용자의 데이터를 세션이라는 서버 위치에 저장해두고 빨리빨리 가져다준다는 개념이다.

  

 

2. CIA (보안의 3요소)

Confidentiality  Integrity Availability
기밀성 무결성 가용성
허락된 사용자만이
정보를 이용할 수 있음
완전한 상태로 정보를 보존함 신뢰할 수 있는 정보를
접근 / 사용 가능함

 

 

3. RSA 암호화 (공개 암호 시스템)

RSA 암호화를 위해 사용되는 key에는 공개키와 개인키가 있다.

공개키는 누구에게나 '공개'되어있는 키이며, 개인키는 '본인만' 가지고 있는 키이다.

공개키로 암호화된 정보는 개인키로 풀 수 있으며, 개인키로 암호화된 정보는 공개키로 풀 수 있다.

 

3-1.  공개키로 암호화

암호화가 더 중요한 경우, 발신자의 공개키로 내용을 포장해서 전송한다.

 

3-2.  개인키로 암호화

수신자 확인이 더 중요한 경우, 수신자의 개인키로 내용을 포장해서 전송한다. (= 전자 서명)

 

3-3.  공개키 & 개인키로 암호화 (= RSA 암호화)

따라서, 발신자의 공개키와 수신자의 개인키로 암호화를 하면 '인증' + '암호화' 두마리 토끼를 잡을 수 있다.