본문으로 건너뛰기

DeviceId 관련 보안 정책

개요

이 문서는 DeviceId 관리와 관련된 보안 정책을 정의합니다. DeviceId는 사용자 식별 및 인증에 중요한 역할을 하므로, 적절한 보안 조치가 필요합니다.

단일 기기 정책

1. 기본 원칙

  • 한 사용자는 한 번에 하나의 기기에서만 로그인 가능
  • 새 기기에서 로그인 시 이전 기기의 세션 자동 종료
  • 동시 접속 시도 감지 및 차단

2. 토큰 관리

  • 새 기기 로그인 시 이전 기기의 토큰 즉시 무효화
  • 토큰 무효화 후 이전 기기에서의 API 호출 시 401 오류 반환
  • 토큰 갱신(refresh) 요청 시 기기 정보 검증

3. 세션 종료 처리

  • 이전 기기의 세션 종료 시 서버에서 세션 정보 삭제
  • 세션 종료 시 사용자에게 알림 제공 (이메일 또는 푸시 알림)
  • 세션 종료 이력 기록 및 관리

기기 변경 감지 및 대응

1. 기기 변경 감지

  • DeviceId, 기기 모델, OS 버전 등을 기반으로 기기 변경 감지
  • 비정상적인 기기 변경 패턴 모니터링 (짧은 시간 내 여러 기기 변경 등)
  • 지리적 위치 기반 이상 접속 감지 (선택적)

2. 의심스러운 기기 변경 대응

  • 의심스러운 패턴 감지 시 추가 인증 요구 (이메일 인증, SMS 인증 등)
  • 보안 위험 수준에 따른 단계적 대응:
    • 낮음: 사용자에게 알림만 제공
    • 중간: 추가 인증 요구
    • 높음: 계정 일시 잠금 및 관리자 확인 필요

3. 사용자 알림

  • 새 기기 로그인 시 사용자에게 즉시 알림 제공
  • 알림 내용: 기기 정보, 로그인 시간, 위치 정보(가능한 경우)
  • 의심스러운 접속 시 즉시 조치 방법 안내 (비밀번호 변경, 계정 잠금 등)

중요 작업 시 추가 보안

1. 중요 작업 정의

  • 결제 및 금융 정보 변경
  • 개인정보 변경 (이메일, 전화번호 등)
  • 비밀번호 변경
  • 계정 삭제 또는 비활성화

2. 추가 인증 요구사항

  • 중요 작업 수행 시 추가 인증 필수
  • 최근 기기 변경 후 일정 기간(예: 24시간) 내 중요 작업 시 더 강화된 인증 요구
  • 인증 방법: 이메일 인증 코드, SMS 인증 코드, 생체 인증 등

3. 작업 이력 관리

  • 모든 중요 작업 이력 기록
  • 작업 수행 기기, 시간, IP 주소 등 상세 정보 저장
  • 사용자가 확인 가능한 활동 이력 제공

DeviceId 생성 및 관리

1. DeviceId 생성 원칙

  • 예측 불가능한 UUID v4 형식 사용
  • 기기 고유 정보와 결합하여 생성 (가능한 경우)
  • 앱 설치 시 최초 1회 생성 후 안전하게 저장

2. 저장 방식

  • iOS: 키체인(Keychain)에 저장하여 앱 삭제 후에도 유지
  • Android: 키스토어(Keystore)에 저장하여 보안 강화
  • 암호화된 형태로 저장하여 추출 어렵게 함

3. 재설치 및 복구

  • 앱 재설치 시 가능한 경우 이전 DeviceId 복구
  • 복구 불가능한 경우 새 DeviceId 생성 및 서버에 재설치 정보 전달
  • 로그인 시 계정 정보와 DeviceId 연결하여 사용자 식별
  • 재설치 감지 메커니즘:
    • 앱 설치 후 첫 실행 시 DeviceId 존재 여부 확인
    • DeviceId가 없으면 재설치로 간주하고 서버에 알림
    • 헤더에 X-Is-New-Install: true 포함하여 재설치 정보 전달
  • DeviceId 복구 프로세스:
    • 플랫폼별 안전한 저장소에서 DeviceId 복구 시도
    • 복구 성공 시 기존 DeviceId 계속 사용
    • 복구 실패 시 새 DeviceId 생성 및 이전 사용자 데이터 연결 시도
  • 이전 DeviceId 연결:
    • 이전 DeviceId를 알고 있는 경우 X-Previous-Device-Id 헤더로 전달
    • 서버는 이전 DeviceId와 새 DeviceId 간 연결 관계 설정
    • 사용자 계정 로그인 시 DeviceId 이력 확인 및 통합
  • 비정상적인 재설치 패턴 감지:
    • 짧은 시간 내 여러 번의 재설치 시도 모니터링
    • 의심스러운 패턴 감지 시 추가 인증 요구
    • 재설치 이력 분석을 통한 잠재적 보안 위협 식별
  • 재설치 후 보안 강화:
    • 재설치 후 첫 로그인 시 추가 인증 요구 고려
    • 재설치 후 일정 기간 동안 중요 작업 수행 시 보안 강화
    • 재설치 정보를 사용자에게 알림(이메일 또는 푸시 알림)

로깅 및 모니터링

1. 보안 로깅

  • 모든 기기 변경 및 로그인 시도 로깅
  • 토큰 무효화 및 세션 종료 이벤트 기록
  • 의심스러운 활동 패턴 로깅

2. 모니터링 시스템

  • 실시간 보안 이벤트 모니터링
  • 비정상 패턴 감지 시 알림 발생
  • 정기적인 보안 감사 및 리포트 생성

3. 대응 체계

  • 보안 이벤트 심각도에 따른 대응 프로세스 정의
  • 자동화된 대응 조치 구현 (계정 잠금, 추가 인증 요구 등)
  • 보안 사고 발생 시 사용자 및 관리자 알림 체계

개인정보 보호

1. 데이터 최소화

  • DeviceId 외 필요한 최소한의 기기 정보만 수집
  • 사용자 추적 목적이 아닌 보안 및 사용자 경험 개선 목적으로만 사용
  • 불필요한 정보는 수집하지 않음

2. 데이터 보존 기간

  • 활성 기기 정보: 계정 활성 상태 동안 유지
  • 이전 기기 이력: 보안 목적으로 최대 6개월 보관
  • 보존 기간 경과 후 자동 삭제 또는 익명화

3. 사용자 통제권

  • 사용자가 기기 접속 이력 확인 가능
  • 의심스러운 접속 발견 시 즉시 조치 가능 (원격 로그아웃, 비밀번호 변경 등)
  • 개인정보 처리 방침에 DeviceId 관련 내용 명시