의미없는 블로그

Access Token 이랑 Refresh Token 본문

# 나/pentest

Access Token 이랑 Refresh Token

SaltLee 2026. 4. 6. 11:58

 

지금 인증쿠키는 최초 발급되고 나면 7일간 유지되게 되어 있음 (=Access Token 7일)

 

근데 매수/매도 해야하는 중요한 시점에

갑자기 7일 만료 되어가지고 다시 로그인 해야하면 열받지

 

그래서 Refresh Token 을 도입하고자 함


원래 로그인할때 Set-Cookie클라이언트단에 인증쿠키 생성되는게 Access Token

Refresh Token서버단에서 Access Token 만료되면 다시 발급 요청할때 사용되는거

 

그래서 Access Token 1일, Refresh Token 7일 이라고 하면

1일 열쇠 + 7일 교환권 이 있는거임

 

1) 로그인 후 1일 뒤 → 아무 동작 없으면 AT 만료

2) 7일 내 돌아오면 → 7일 교환권이 있으니까 AT 다시 생성 → 로그인 유지 (그 때부터 다시 7일간)

3) 7일 지나서 돌아오면 → 7일 교환권 만료 → 다시 로그인 해야 함

보통 XSS 로 탈취되는 인증쿠키가 Access Token 인거잖아

탈취 되더라도 1일만 유효하니까 공격자가 1일만 쓸 수 있는거지

(1일 지나서 사용자가 다시 접속하면 RT 로 인해 새로운 AT 발급되는거고,

 사용자가 다시 접속 안하면 걍 기존 정책대로 1일만에 AT 만료 되는거고)

 

그래서 적용할 수 있는 보안 정책은

1) AT 에 HttpOnly 적용 (XSS 방지)

2) AT 에 Secure 적용 (XSS 방지)

3) AT 에 SameSite=Lax 적용 (CSRF 방지)

4) 새로 AT 발급될 때 기존 AT 는 폐기

5) 가능하다면 AT 를 30분 내외로 만료시간 설정 (어차피 RT 가 7일이니까)


새로운 AT 발급할 때 기존 AT 폐기 시키려면

AT 마다 고유 식별자를 가지고 있어야 어떤건지 구분할 수가 있자나

 

그게 jti (JWT ID) 라고 고유 식별자가 있음

요게 토큰에 포함되어 있기 때문에 토큰을 식별할 수 있는거임

 

 

'# 나 > pentest' 카테고리의 다른 글

H2 DB  (0) 2026.09.08
braze 라는 마케팅 도구  (0) 2026.05.13
S3 에서의 파일 업로드 / 다운로드 취약점  (0) 2026.03.05
PACU - AWS bruteforcing  (0) 2026.02.26
Chisel 로 C2 서버 터널링 수행 (거점 확보)  (0) 2026.02.26
Comments