
간편 로그인 보안 강화 사례
두줄요약
병원 전자문진 시스템의 링크 로그인에서 정식 회원 정보가 노출되는 취약점을 발견하고 보완했습니다. 로그인 방식을 토큰 claim으로 구분해 링크 세션을 게스트처럼 제한하도록 개선했습니다.
문제 상황
- 병원 전자문진 시스템의 링크 로그인에서 전화번호 뒤 4자리만으로 정식 회원의 회원 화면과 의료 관련 정보까지 접근 가능했던 보안 취약점
- 화면과 API가 로그인 방식을 구분하지 않아 링크 세션이 게스트 수준으로 격하되지 않은 상태
원인 분석
- 링크 로그인 시 발급된 정식 회원 토큰과 일반 로그인 토큰을 동일 세션처럼 취급한 설계
- 로그인 방식 자체를 인증 정보로 저장하지 않아 프론트엔드와 백엔드에서 판별 불가
해결 방법
- Keycloak User Session Note와 protocol mapper로
login_method=linkclaim을 토큰에 포함 - 프론트엔드에서 공용 판별 유틸로 링크 세션을 식별해 제한 세션 범위를 통합 관리
- 게스트 API는 회원 세션까지 허용하되, 본인 확인과 Redis 플래그로 재검증하는 방어 구조 유지
