inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

스프링부트 시큐리티 & JWT 강의

스프링부트 시큐리티 17강 - JWT 구조 이해

HS256 과 RS256 의 차이에 대해

1838

전병준

작성한 질문수 10

0

인터넷을 아무리 뒤져봐도 명확한 답이 없어 또 질문을 드리게됐습니다,, ㅠㅠ

  1. HS256 암호화 방식은 JWT 생성 시 서명 부분에 서버만 알고있는 키를 포함해 암호화하는 방식이라고 설명을 해주셨는데, 찾아보니 HS256 은 대칭 키 암호화 방식이라고들 하더라구요. 대칭키는 송/수신자가 같은 키를 공유하는 것으로 알고있는데 이렇게 되면 서버만 알고있는 키가 아니지 않나..? 라는 생각을 했는데 맞는지 잘 모르겠습니다.

 

  1. RS256 암호화 방식은 JWT 생성 시 서명 부분에 키를 포함하지 않고, 헤더와 페이로드를 서버가 가지고있는 키로 암호화를 한다 ~ 라고 설명해주셨는데, 자바 켜서 확인을 해보니 인자 값에 시크릿 키를 넣어줘야하기도 하고 jwt.io 에서 RS256 으로 바꿔보니 begin secret ~ end secret 이라고 시크릿 키를 넣는 칸이 있더라구요. 이것도 어느게 맞는지 잘모르겠네요 🥲 정말정말 헷갈립니다 ㅠㅠ

jwt spring Spring Security

답변 1

1

최주호

HS256은 대칭키가 맞습니다.

제가 설명을 잘못했나 봅니다. !!

HS256은 클라이언트와 서버 둘다 키를 동일하게 가지고 있어야 됩니다.

대칭키는 결국 키 교환에 문제가 있기 때문에, 안전하게 키를 교환할 수 있는 메커니즘이 필요하고

A서버와 B서버가 통신할 때 둘다 내가 만든 서버이면 HS256을 사용해도 무방하다고 생각합니다.

0

전병준

그럼 클라이언트(웹 브라우저) 와 서버간 키 교환이 아니라 클라이언트(서버) 와 서버간 키 교환이 필요하다는게 맞을까요?

0

최주호

그것도 맞구요!!

 

우리가 JWT토큰을 스프링서버에서 만들자나요. 이때 HS256으로 만들어요.

그 토큰은 클라이언트(브라우저, 혹은 앱)이런 애들에게 header로 전달해주면

클라이언트는 그걸 그냥 가지고만 있다가,

인증이 필요한 자원 요청시에 header에 토큰을 담아서 요청하면

스프링서버는 HS256으로 검증하면 되니까

 

토큰의 생성과 검증을 스프링서버에서만 하면 되기 때문에 대칭키를 사용해도 되는거에요

0

전병준

아하 인증 주체는 서버기 때문에 그렇군요 답변 감사합니다!!

JWT를 구현한 다음 이 API를 호출해서 사용하는 것은 프론트엔드 쪽에서 하는 역할인가요?

0

118

1

Jwt쓰면 스프링시큐리티는 필수적으로 사용해야하나요?

0

428

1

13:23 system.out 출력문이 다르게 나옵니다.

0

137

1

수료증 문의

0

254

2

9분대에 질문이 있습니다 !

0

131

1

password 비교를 하지 않았는데 어떻게 인증이 통과된 건가요?

0

328

1

이전 강의 참고하라는 말씀

0

258

1

강의 실습하다가 막히는 분들 참고(2024년8월 기준)

2

1131

2

구글 소셜 로그인 302

0

209

1

오류 문의 _ org.springframework.orm.jpa.JpaSystemException: could not deserialize

1

594

1

[자바] 시큐리티 Config 참고

13

962

1

이론강의

0

286

1

SpringSecurity JWT 로그인 URL 2개 설정하는 방법

0

502

1

2024.06기준) 최근 SecurityConfig 설정 문의

0

943

3

구글 로그인시 authentication이 null 값이라고 에러가 발생합니다.

0

697

2

특정 url필터 거는 방법 이슈

0

434

1

강사님께서 말씀하시는 시큐리티세션이 SecurityContext인가요?

0

282

1

25강 마지막 테스트에서 오류

1

1053

2

jwt를 저장하는 위치에 궁금한 점이 있습니다.

0

307

1

mustache를 사용하지 않고 thymeleaf를 사용하려고 하는데

0

705

1

세션 인증방식이 REST 원칙에 위배되는 건가요?

0

346

1

jwt와 실제데이터의 관계

1

251

1

jwt 와 세션ID의 관계

1

318

1

SecurityConfig에서 세션 설정, 인가 설정

0

427

1