4.6 KiB
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 또는 최소한 서비스 완전 분리 강력 권장
최종 원칙
- 가입은 쉽게, 세션은 안전하게, 민감 작업은 다시 확인한다.
- 속도보다 침해 반경 축소를 우선한다.
- 실사용 사용자를 받는 순간 취미 서버가 아니라 운영 시스템으로 취급한다.