보안 개요
FRP Auto Deploy는 FRP tunnel authentication과 management-plane trust를 분리합니다. 문제 해결이나 보안 검토에서 두 자격 증명을 혼동하지 않는 것이 중요합니다.
한눈에 보는 보안 모델
FRP token은 Enrollment Code, Bootstrap Ticket, management API credential과 같은 것이 아닙니다.
최초 신뢰 수립
Enrollment와 signed client management는 verified HTTPS를 사용하며 production plain-HTTP fallback은 지원하지 않습니다.
FRP tunnel plane
- Direct: FRP native TLS control
- Enterprise single-443: FRP control over WSS
- FRP token: tunnel authentication
- Published service traffic: proxy 등록 후 FRP를 통해 전달
Persistent management identity
Enrollment 후 Client는 persistent ECDSA P-256 management identity를 유지하고 private key는 Client에 남습니다.
Signed management request는 freshness/replay protection을 위해 timestamp/nonce 등의 검증과 결합됩니다.
Zero-Touch credential 특성
Bootstrap Ticket은 다음 특성을 목표로 합니다.
- high entropy
- short-lived
- first-machine bound
- successful enrollment 후 single-use
- server에서 hashed-at-rest
- 사용/만료/revoke 전까지 민감 정보
Generated bootstrap command를 public issue, public chat, analytics, long-lived log에 남기지 마세요.
보호해야 할 Secret
보안 경계
Server나 Client의 local root가 완전히 침해된 상황은 제품 보호 경계 밖입니다.
Fail closed
Unknown identity, invalid signature, CA mismatch, registry inconsistency, ambiguous client selector 같은 상태에서는 추측해서 계속 진행하지 않고 실패하는 것이 원칙입니다.
Trust 문제를 curl -k, TLS verification disable, plain HTTP enrollment, Client 간 secret 복사로 해결하지 마세요.
관련 문서