RSA 비대칭키 질문
523
작성한 질문수 12
HS256 암호화 방식은 클라이언트로부터 JWT(헤더+페이로드+서버의 비밀키로만든 signature)를 받으면, 서버가 "비밀키"를 가지고 있어서, 서버가 만든 JWT랑 비교해서 같은지 검증하는 방식이잖아요?
RSA 암호화 방식은 마찬가지로 클라이언트로부터 JWT(헤더+페이로드+서버의 비밀키로만든 signature) 받으면, 서버는 JWT의 signature를 "공개키"로 검증한다고 이해했습니다. 그래야만 "비대칭키" 방식이기 때문입니다.
여기서 질문입니다.
1. 서버는 비밀키도 있으면서 왜 굳이 공개키로 검증하는지 (비밀키만 있으면 HS256 방식을 사용하면 돼서)
2. 공개키로 검증하는게 맞다면 어떤 방식으로 검증하는지 (signature를 공개키로 복호화 하면 비밀키가 나오는 방식일까요?)
긴 글 읽어주셔서 감사합니다.
답변 1
0
이건 이렇게 이해하는게 좋아요!!
예를 들어 버스회사가 있어요. 버스 회사가 버스 토큰을 발행해요!!
손님은 토큰을 사요!!
손님이 버스를 탈 때, 토큰을 내겠죠?
그럼 버스회사는 토큰을 검증하죠?
토큰 발행과 검증을 버스회사에서만 하니까, 대칭키로 가능해요!!
하지만, 이런경우도 있어요!
국가가 버스 토큰을 발행해요!
손님은 버스 토큰을 구매해요.
손님은 버스를 탈 때, 토큰을 내요!
버스회사는 토큰을 검증못해요!! 대칭키여서!!
그래서 버스회사는 토큰이 정상적인지를 국가에 물어봐야 해요!!
국가는 토큰이 정상적이라고 알려줘요!! 이러면 서비스 하기 힘들겠죠?
이런 경우는 토큰 발행과 검증 주체가 달라요!
이럴경우에는 비대칭키(공개키기반) 방식을 사용하는게 편리해요!!
요청/응답 DTO 관련 문의
0
170
2
안녕하세요 인증이 필요한 url을 위하여 /s를 붙이는것에 대해 질문있습니다.
0
161
1
validation aop사용에 대해서 질문있습니다.
0
245
2
Dummy 클래스 위치에 대한 질문
0
293
2
테스트 방식에 관해서 질문이 있어요
0
292
2
스프링 버전업일 경우에는 Pointcut @PostMapping 조건이 달라질까요?
1
434
1
equals와 longValue 관련 질문드립니다
0
328
1
계좌번호를 Long 타입으로 하는 이유가 무엇일까요?!
0
499
2
[정보공유] Hibernate 로그 작동 안하시는 분들!!
3
346
0
UserControllerTest 테스트 실패 문의
0
318
1
스프링 시큐리티 6.2 버전 이후로 apply() 메서드를 이용한 JwtAuthenticationFilter 가 등록이 안됩니다.
2
1106
1
import 오류
0
426
3
spring initializer gradle 에서 3.x.x 대 밖에 없어요. 2.x.x는 보이지 않는데 어떡하져
0
438
2
안녕하세요 로그엔 성공적으로 들어온것같습니다..
0
237
1
JwtAuthorizationfilter test mvc.performget 관련 질문입니다!
0
286
1
JwtAuthorizationfilter test mvc.performget 부
0
226
1
longValue() 질문
0
228
1
jwt 인가필터 규현및 등록
0
334
1
스프링부트 3버전
1
334
1
권한처리를 위한 세션강제주입
0
418
1
JwtVO 를 인터페이스로 만든 이유
0
359
1
계좌 조회 질문드립니다
0
229
1
DummyObject 에 대하여
0
308
2
DTO를 이너클래스로 계속추가하는 이유
0
695
2





