Redis저장소를 이용한 토큰 보안성 증가

승환·2025년 2월 25일

Reids?

redis는 인메모리 저장소로 NO-SQL방식의 저장소이다.
접근 속도가 빠르고 key-value로 이뤄진 Map형태를 가지고 있기 때문에 탐색이 용이하여 데이터 관리가 편하다는 장점이 있다.


Redis를 이용한 보안관리

기존에 LocalStroge에서 JWT토큰을 관리하게 되면 로그인을 한 사용자 스토리지를 확인하면
JWT를 그대로 알 수 있다는 보안상 문제가 존재한다.

Access토큰은 외부로 유출되어도 유지시간이 짧기 때문에 보안상 크게 문제가 되지 않지만, 문제는 Refresh 토큰이다.

리프레시 토큰이 탈취당하게 되면 Access토큰을 무한으로 생성할 수 있기 때문에 보안상의 큰 위협이 된다.

이런 형태로 작동하는데 중간에서 탈취당하게 되면 보안상 막을 수 없어진다.

따라서 Accesstoken은 그대로 사용하되 Refresh 토큰은 Redis를 이용한 토큰 저장소에 저장하고 id를 외부로 노출시키는 방법을 사용하면 외부로의 토큰 유출을 막을 수 있다.

이런 인증 절차를 거치게 해서 보안을 강화할 수 있다.


Redis 저장소와 로그아웃

Redis를 사용하면 로그아웃 기능도 구현할 수 있게 된다.

기본적으로 서버에서 로그아웃을 하면 스토리지에 있는 토큰 정보는 지워지게 된다.
하지만 Refresh Token이 탈취된 상태로 지워지게 되면 헤더에 토큰 정보를 담아 로그인 시도를 할 수 있게 된다.

그래서 ID를 저장한 Redis저장소의 토큰을 기한 만료 시키거나 삭제해준다면 Refresh토큰을 이용한 로그인 시도를 방지할 수 있다.

profile
왕초보 학부생

0개의 댓글