비대칭키를 적용한 JWT 인증/인가

Bright Hyeon·2022년 4월 23일
0
post-thumbnail

🍎 JWT에 비대칭키 적용

  • JWT 임시글 참고오세연~!!!
  • 앞서 했던 "JWT의 동작방식"은 특정 알고리즘과 secret이란 비밀 키를 통해서 암호화하였다.
  • 또한 특별히 복호화의 과정을 거치지않았다. 단지 signature를 검증해서 유효한 토큰인지 확인했을뿐.
  • 하지만 이럴 경우, 비밀 키를 모르는 제3의 서비스는 이 JWT가 유효한지 그렇지않은지 판단할 수 없다. (비밀키를 모르니까~!)‼️
  • 여기에 비대칭 키를 적용해보자.
  • 우선 기존의 비밀 키는 서버만 가지고 있고, 절대‼️ 공개하지않는다. 이것이 비대칭키 System에서의 개인 키가 된다.
  • 반면, 공개키는 공개되어 있어서, 누구든 쉽게 이 키를 구할 수 있다.

🍊참고 URL: https://velog.io/@curiosity806/JWT-Json-Web-Token

요약하자면‼️

  • 인증 서버에서 제3의 서비스에 공개키를 전달한다.
  • 제3의 서비스는 공개키를 이용하여 사용자에게서 전달받은 Token의 Signature를 복호화할 수 있게되고, 이를 이용하여 JWT안의 header, payload의 값과 Sign을 복호화한 값이 일치하는지 확인할 수 있게된다.

이 공개키는 유출되도 되는거야?!

  • 아직 확실친 않지만⁉️, 앞서 설명한 적이 있는 HTTPS에서의 비대칭키 공유 임시글 파트에 설명되어있는 방식으로 공개키를 전달하는 것이라면, 이 공개키가 유출될 일이 없을 것이다.
  • 만약, 처음 handshake단계에서의 인증서도 훔치고, CA에게 인증받고, 그러다보면 공유키를 훔칠 수도 있을 것!! 그래서 HTTPS역시 완전히 보안적으로 안전하다고 할 순 없다고 하지만, 그래도 이정도라도 해야 보안적으로 괜찮다고함~!!‼️
profile
i'm Obsessed with Swift. iOS

0개의 댓글