kotalk/문서/05-security-privacy-and-risk.md
2026-04-16 09:24:26 +09:00

4.6 KiB

05. Security, Privacy, And Risk

가장 중요한 결론

현재 VPS의 root + 비밀번호 SSH 상태에서는 메신저 실사용 데이터를 절대 받지 않는다.

가입과 편의성에 대한 보안 합의

  • Alpha 즉시 실행형은 이름 + 초대코드로 시작할 수 있다.
  • 하지만 초대코드는 입장권이지 본인확인 수단이 아니다.
  • Beta 기본형은 이메일 기반 1회 확인 + 신뢰 기기 세션 유지 + 민감 작업 재인증이 기준선이다.
  • 자동 로그인은 허용하지만, 반드시 서버 추적 가능한 기기 세션원격 로그아웃이 있어야 한다.
  • 장기적으로는 Windows Hello Passkey를 강한 옵션으로 추가한다.

P0: 시작 전에 반드시 할 것

  • root 원격 로그인 비활성화
  • SSH 비밀번호 로그인 비활성화
  • 관리자 공개키 인증만 허용
  • 메신저 전용 비루트 운영 계정 생성
  • 현재 루트 비밀번호와 운영 비밀값 전면 교체
  • DB/Redis/MinIO 외부 공개 금지
  • Fail2ban 또는 동급 차단 도구 활성화
  • 메신저용 비밀정보 파일과 기존 서비스 비밀정보 분리
  • OS 보안 패치 적용

P1: Private Alpha 전에 할 것

  • 관리자 콘솔 2단계 인증
  • invite-only 운영
  • 초대코드 만료/회수/단일 사용 정책
  • refresh token 회전
  • 디바이스별 세션 조회/로그아웃
  • 첨부파일 MIME 검증과 크기 제한
  • 백업 암호화
  • 개인정보 처리방침/이용약관 초안

P2: Beta 이후 고도화

  • 이메일 1회 확인 도입
  • 이메일 링크/코드 1회용 정책
  • Windows Hello Passkey 옵션 검토
  • 서비스용 VPS 분리 권장
  • 이상 행위 탐지
  • 비밀정보 자동 회전
  • 감사 로그 강화

인증 정책

  • Alpha: 이름 + 초대코드 + 기기 세션
  • Beta: 이메일 1회 확인 + 이름 + 기기 세션
  • 관리자: 별도 도메인/별도 접근 정책 + 2FA
  • 세션은 device_id 단위로 관리
  • refresh token은 서버에서 추적 가능해야 함
  • 민감 작업은 재인증 필요

토큰과 클라이언트 비밀정보

  • 액세스/리프레시 토큰 평문 파일 저장 금지
  • DPAPI/PasswordVault에 저장
  • 로그, 크래시 리포트, 분석 이벤트에 토큰/메시지 본문 금지
  • 로컬 캐시는 최근 데이터 최소 범위만 유지
  • 공용 PC에서는 자동 로그인 비권장 문구를 명시

데이터 보호

전송 구간

  • 전 구간 TLS
  • 관리자 콘솔, API, 파일 다운로드 모두 HTTPS 강제

저장 구간

  • 비밀번호를 쓰는 경우 단방향 해시
  • 토큰 계열은 평문 저장 금지
  • 파일은 서명 URL 중심 접근
  • 백업은 암호화 보관

초대코드, 매직링크, 이메일 검증의 안전선

  • 초대코드 brute force 방지 rate limit
  • 초대코드는 만료 시간과 사용 횟수 제한 필요
  • 매직링크와 코드는 1회용이며 짧게 만료
  • 오픈 리다이렉트 금지
  • 이메일/계정 존재 여부 노출 금지
  • 메일을 다른 기기에서 열었을 때를 대비해 링크 + 코드 병행 고려

첨부파일/악용 방지

  • 확장자와 MIME 모두 검증
  • 이중 확장자 경고
  • 너무 큰 파일, 악성 유형, 과도한 업로드 속도 제한
  • 신고/차단/계정 정지 최소 운영 도구 필수

로그 정책

  • 메시지 본문 로그 금지
  • 민감정보 마스킹
  • 보안 이벤트 로그와 앱 오류 로그 분리
  • 로그인 실패 급증, 가입 시도 폭주, 업로드 폭주, 5xx 급증 경보

백업 정책

  • DB 백업과 파일 백업 모두 원본과 동일 수준으로 민감
  • 운영 서버와 다른 자격 증명으로 접근
  • 보관 기간은 짧고 명확하게
  • 실제 복구 테스트를 통과한 백업만 인정

법적/브랜드 리스크

  • 카카오 관련 상표, UI 자산, 카피, 시그니처 컬러 혼동 금지
  • 종단간 암호화를 구현하지 않았으면 절대 그렇게 홍보하지 않음
  • 삭제 요청, 신고 접수, 운영자 연락 채널 문서화

단계별 보안 게이트

로컬 프로토타입

  • 실사용 데이터 금지

Alpha

  • invite-only
  • 하드닝 완료
  • 기기 세션과 원격 로그아웃 제공

Closed Beta

  • 이메일 1회 확인
  • 백업 암호화
  • 모니터링/경보 활성화
  • 세션/토큰 정책 확정

Public Beta 이상

  • 별도 VPS 또는 최소한 서비스 완전 분리 강력 권장

최종 원칙

  • 가입은 쉽게, 세션은 안전하게, 민감 작업은 다시 확인한다.
  • 속도보다 침해 반경 축소를 우선한다.
  • 실사용 사용자를 받는 순간 취미 서버가 아니라 운영 시스템으로 취급한다.