본문 바로가기
CS

refreshToken 왜 사용하나요?

by 갈잃자 2024. 7. 5.

개요: 우리 회사 api 솔루션을 고객사에게 보내줄때 같이 주는 명세서를 보다가, refreshToken으로 accessToken 새롭게 발급받는 restAPI 요청이 있었음. 그냥 회사 key로 계속 accessToken을 받으면 되는데 의문이 생겨서 질문함


우선 refreshToken이 뭔지 설명하자면,

  • 보안 강화로 인해, accessToken에 만료기간이 있음(회사마다 다르지만, 우리회사 만료기간은 1시간임)
  • 이 accessToken을 새롭게 발급받고, 만료기간을 늘리기 위한 용도로 refreshToken이 존재

 

싸피 프로젝트나, 개인적인 라이브러리(공공데이터 등)에서 이용시에 사용하는 accessToken은 만료기간이 없거나, 매우 길었는데(약 1개월에서 1년사이) 타 b2b 사업은 모르겠지만 우리회사껀 만료기간도 짧고 refreshToken 존재한다는게 의아했음.

 

그래서 물어봄

 

왜 refreshToken을 사용하나요?

  • b2b 사업상, 회사별로 secretKey를 부여하는데, secretKey를 개발 또는 여러 부서에서 함께 사용하게 된다면, 보안 상 문제가 생긴다. => (맞는말. 보험 플랫폼이기 때문에, key를 이용해서 보험정보, 보험가입정보가 누설될 수 있음)
  • refreshToken을 이용하게 된다면, secretKey로 계속 accessToken 을 받기 위한 api 요청을 보내지 않아도 되고, secretKey를 이용한 api 요청이 줄어들면, 그만큼 그만큼 보안이 강화된다

 

추가적으로 왜 accessToken 기간이 1시간인가?

  • 만약 A회사에서 우리회사 api를 호출건 당 100원으로 이용을 하고 있다고 가정해보자. (또한 accessToken 만료기한이 없다고 가정)
  • A회사 직원이 B회사로 이직을 하게 되면서, A회사에서 제작하던 제품을 똑같이 만들게 되고, A회사의 accessToken을 이용한다면?
  • A회사 + B회사의 api 호출금액을 A회사에서 전부 지불하게 되고, 정보보호에 좋지 않을 뿐만 아니라 경제적인 측면에서도 좋지 않다는 결론에 도달할 수 있다.
  • 하지만 accessToken이 1시간이라면? => 고객정보보호 강화에 도움이 되고, 타 회사 산업스파이가 accessToken을 알아내더라도 1시간 내에 이용할 수 없게 되어버리기 때문에 기술 보안에도 큰 도움이 된다!

 

개발빼고 다 재밌음

'CS' 카테고리의 다른 글

Singleton 이란  (0) 2024.07.08
pending 이란?  (0) 2024.07.08
TLS  (0) 2024.05.22
OAuth 2.0 프레임워크  (0) 2024.05.22
Bearer 인증  (1) 2024.05.22

댓글