보안 모델
Tactic Remote의 보안 경계가 기기, 네트워크, 런타임 전반에서 동작하는 방식.
Tactic Remote는 두 가지 신뢰 영역을 연결합니다 -- 코드가 실행되는 호스트 머신 (Mac/Windows)과 이를 제어하는 모바일 클라이언트 (iPhone). 이 경계를 이해하면 올바른 판단을 내릴 수 있습니다.
아키텍처
iPhone은 Claude API와 직접 통신하지 않습니다. Mac 서버로 명령을 보내고, 서버가 로컬에서 Claude Code 프로세스를 관리합니다.
신뢰 영역
호스트 머신 (Mac/Windows)
Claude Code가 실행되고, 파일을 읽고, 명령을 실행하는 곳입니다. 가장 높은 민감도를 가진 구성 요소입니다.
사용자 책임:
- OS와 Claude Code를 최신 상태로 유지합니다.
- 서버를 사용자 계정으로 실행합니다 (root 아님).
- 자리를 비울 때 머신을 잠급니다.
모바일 클라이언트 (iPhone)
iPhone은 원격 제어 장치입니다. 텍스트 프롬프트를 보내고 터미널 출력을 수신합니다. 파일 시스템에 직접 접근하지 않습니다.
사용자 책임:
- 기기 잠금 / 생체 인증을 사용합니다.
- 앱을 최신 상태로 유지합니다.
- 활성 세션 경로를 확인하지 않고 파괴적 명령을 보내지 않습니다.
전송 (네트워크)
- 로컬 모드: LAN의 비암호화 WebSocket (
ws://). 신뢰할 수 있는 네트워크에 적합. - 터널 모드: Cloudflare를 통한 암호화 WebSocket (
wss://). 공개 네트워크에 적합.
자격 증명
다음을 시크릿으로 취급하세요:
- 서버 API 키
- Cloudflare Tunnel 자격 증명
- Anthropic API 키 (Claude Code에서 관리)
서버가 방어하는 위협
| 위협 | 대응 |
|---|---|
| 무단 연결 | API 키 인증 |
| 세션 이름을 통한 명령 주입 | 입력 검증 (영숫자만 허용) |
| 경로 탐색 | 경로 제한 + 민감 디렉토리 차단 |
| 요청 폭주 | 속도 제한 (30/min) |
| 연결 해제 후 잔존 세션 | tmux 정리 + 하트비트 모니터링 |
서버가 방어하지 않는 것
- 침해된 Mac (누군가 Mac에 셸 접근이 있으면, 서버는 추가 보호를 제공하지 않음).
- Claude Code에 해로운 작업을 지시하는 프롬프트 (Claude Code 자체 안전 메커니즘이 있지만, 요청 내용을 항상 검토해야 함).
- 유출된 API 키 (노출 시 즉시 교체).
권장 사항
- 기본은 로컬 모드. 정말로 원격 접근이 필요할 때만 터널을 사용하세요.
- 터널 연결 시 항상 API 키를 설정하세요.
- 허용 경로를 프로젝트 디렉토리로 축소하세요.
- 고영향 작업 시작 전 활성 세션 경로를 확인하세요.
- 팀원 이탈 또는 노출 의심 시 키를 교체하세요.