작성
·
1.8K
0
인터넷을 아무리 뒤져봐도 명확한 답이 없어 또 질문을 드리게됐습니다,, ㅠㅠ
HS256 암호화 방식은 JWT 생성 시 서명 부분에 서버만 알고있는 키를 포함해 암호화하는 방식이라고 설명을 해주셨는데, 찾아보니 HS256 은 대칭 키 암호화 방식이라고들 하더라구요. 대칭키는 송/수신자가 같은 키를 공유하는 것으로 알고있는데 이렇게 되면 서버만 알고있는 키가 아니지 않나..? 라는 생각을 했는데 맞는지 잘 모르겠습니다.
RS256 암호화 방식은 JWT 생성 시 서명 부분에 키를 포함하지 않고, 헤더와 페이로드를 서버가 가지고있는 키로 암호화를 한다 ~ 라고 설명해주셨는데, 자바 켜서 확인을 해보니 인자 값에 시크릿 키를 넣어줘야하기도 하고 jwt.io 에서 RS256 으로 바꿔보니 begin secret ~ end secret 이라고 시크릿 키를 넣는 칸이 있더라구요. 이것도 어느게 맞는지 잘모르겠네요 🥲 정말정말 헷갈립니다 ㅠㅠ
답변 1
1
HS256은 대칭키가 맞습니다.
제가 설명을 잘못했나 봅니다. !!
HS256은 클라이언트와 서버 둘다 키를 동일하게 가지고 있어야 됩니다.
대칭키는 결국 키 교환에 문제가 있기 때문에, 안전하게 키를 교환할 수 있는 메커니즘이 필요하고
A서버와 B서버가 통신할 때 둘다 내가 만든 서버이면 HS256을 사용해도 무방하다고 생각합니다.
그럼 클라이언트(웹 브라우저) 와 서버간 키 교환이 아니라 클라이언트(서버) 와 서버간 키 교환이 필요하다는게 맞을까요?