inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

스프링부트 JUnit 테스트 - 시큐리티를 활용한 Bank 애플리케이션

Jwt 토큰 생성을 위한 세팅

RSA 비대칭키 질문

523

구코딩

작성한 질문수 12

0

HS256 암호화 방식은 클라이언트로부터 JWT(헤더+페이로드+서버의 비밀키로만든 signature)를 받으면, 서버가 "비밀키"를 가지고 있어서, 서버가 만든 JWT랑 비교해서 같은지 검증하는 방식이잖아요?

RSA 암호화 방식은 마찬가지로 클라이언트로부터 JWT(헤더+페이로드+서버의 비밀키로만든 signature) 받으면, 서버는 JWT의 signature를 "공개키"로 검증한다고 이해했습니다. 그래야만 "비대칭키" 방식이기 때문입니다.

여기서 질문입니다.

1. 서버는 비밀키도 있으면서 왜 굳이 공개키로 검증하는지 (비밀키만 있으면 HS256 방식을 사용하면 돼서)

2. 공개키로 검증하는게 맞다면 어떤 방식으로 검증하는지 (signature를 공개키로 복호화 하면 비밀키가 나오는 방식일까요?)

긴 글 읽어주셔서 감사합니다.

spring-boot junit

답변 1

0

최주호

이건 이렇게 이해하는게 좋아요!!

 

예를 들어 버스회사가 있어요. 버스 회사가 버스 토큰을 발행해요!!

손님은 토큰을 사요!!

손님이 버스를 탈 때, 토큰을 내겠죠?

그럼 버스회사는 토큰을 검증하죠?

 

토큰 발행과 검증을 버스회사에서만 하니까, 대칭키로 가능해요!!

 

하지만, 이런경우도 있어요!

국가가 버스 토큰을 발행해요!

손님은 버스 토큰을 구매해요.

손님은 버스를 탈 때, 토큰을 내요!

버스회사는 토큰을 검증못해요!! 대칭키여서!!

그래서 버스회사는 토큰이 정상적인지를 국가에 물어봐야 해요!!

국가는 토큰이 정상적이라고 알려줘요!! 이러면 서비스 하기 힘들겠죠?

 

이런 경우는 토큰 발행과 검증 주체가 달라요!

이럴경우에는 비대칭키(공개키기반) 방식을 사용하는게 편리해요!!

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