본문 바로가기

Spring Boot/Security 쿠키,세션 기반 인증,인가

Remember-me : 인증 개념과 필요성

 - Remember-Me의 기본 개념

 - 자동 로그인 기능이 사용자 경험에 어떤 영향을 주는다

 - 보안과 편의성 사이에서 발생하는 균형 문제

 - Remember-Me 기능이 어떤 원리로 동작하는가

 - 실제 서비스에서 Remember-Me 기능이 왜 필요한가


Remember-Me 인증의 개념, 필요성

1. Remember-Me?

id, password 기억하기

 

  • Remember-Me 인증은 사용자가 로그인할 때 "자동 로그인" 옵션을 선택하면,이후 브라우저를 닫았다가 다시 열어도 로그인 상태를 유지하게 해주는 기능임
  • 주로 쿠키(cookie)를 활용하여 사용자 인증 정보를 저장하고, 서버에서 이를 확인하여 다시 인증 과정을 거치지 않고 바로 접근할 수 있도록 함

즉, 사용자가 매번 아이디와 비밀번호를 입력하지 않아도 되는 편의성을 제공함

 

 

2. 자동 로그인의 사용자 경험

  • 긍정적 측면
    • 매번 로그인할 필요가 없어서 사용성이 향상됨
    • 자주 방문하는 웹 서비스(이멜, 쇼핑몰, SNS) 에서 편리하게 접근할 수 있다
  • 부정적 측면
    • 자동 로그인 상태에서 기기를 분실하면 계정 탈취 위험이 있음
    • 공용 PC에서 Remember-Me를 사용할 경우 보안 사고로 이어질 수 있다

 

 

3. 보안과 편의성의 균형

Remember-Me 기능은 본질적으로 보안과 편의성 사이의 트레이드 오프를 다루는 주제임

구분 편의성 중심 보안 중심
장점 빠르고 간편한 로그인 계정 탈취 위험 최소화
단점 계정 탈취 위험 증가 매번 로그인 필요, 불편함

 

따라서 Remember-Me 는 무조건 활성화하기보단 사용자의 환경과 서비스 성격에 맞게 신중히 적용해야함

 

 

 

4. Remember-Me 기능의 작동 원리

  1. 사용자가 로그인 시 "Remember-Me" 체크박스를 선택함
  2. 서버는 인증 성공시 쿠키를 생성하여 클라이언트(브라우저)에 전달한다
  3. 브라우저는 이후 요청마다 해당 쿠키를 서버에 전송한다
  4. 서버는 쿠키 값을 검증하여 사용자 인증을 처리한다

Remember-Me, 서버가 브라우저에게 쿠키를 생성하여 전달하고, 이후 요청마다 브라우저가 쿠키를 서버에 전송해줌

 

Remember-Me 는 쿠키를 이용한 인증 유지 메커니즘

 

 

5. 실제 서비스 적용 사례

  • 쇼핑몰 : 장바구니, 최근 본 상품 등을 유지하기 위해 Remember-Me 가 자주 사용된다
  • SNS : 로그인 유지로 사용자가 앱을 켤때마다 바로 피드를 볼 수 있다
  • 업무 시스템 : 보안상 Remember-Me 를 제한하거나, VPN 환경에서만 허용하기도 한다

  • Remember-Me 는 편리하지만, 보안상의 위험을 항상 내포하고 있다
  • 따라서 반드시 보안 조치가 함께 사용되어야 함
    • HTTPS 통신 강제하기 : 쿠키가 평문으로 노출되지 않아야 한다
    • Secure, HttpOnly 옵션 설정하기 : 브라우저에서만 쿠키가 전달되도록 제한하기
    • 민감한 인증 재인증하기 : 비밀번호 변경, 결제 등 중요한 기능은 다시 로그인하도록 강제해야함

항목 내용
Remember-Me 로그인 상태를 브라우저 쿠키로 유지하는 기능
필요성 사용자 경험(UX) 향상, 반복 로그인 감소
위험성 기기 분실, 공용 PC 사용시 계정 탈취 위험
동작 원리 로그인시 쿠키 생성 - > 브라우저에 저장 - > 요청시 쿠키 전송
- > 서버 검증
실무 적용하기 HTTPS, Secure 쿠키, HttpOnly, 민감 기능 재인증 필수