피드로 돌아가기
Dev.toSecurity
원문 읽기
Rust 기반 Zero-knowledge Auth 서버로 RAM 사용량 20MB 미만 달성
Your auth server shouldn't cost more RAM than your entire app. So I wrote my own in Rust.
AI 요약
Context
Keycloak, Authentik 등 기존 Java/Go 기반 Auth 서버의 과도한 Memory Overhead로 인한 소규모 프로젝트의 인프라 비용 부담 발생. SaaS 대안의 경우 월정액 비용 지불 및 사용자 데이터 제어권 상실이라는 Trade-off 존재.
Technical Solution
- Garbage Collector 부재 및 Ownership 모델 기반의 Rust 언어 채택을 통한 메모리 예측 가능성 확보 및 Runtime Overhead 제거
- AES-256-GCM 및 Double-envelope key 모델 기반의 Zero-knowledge encryption 설계로 서버 내 평문 자격 증명 처리 원천 차단
- PostgreSQL RLS(Row Level Security)를 활용한 DB 레벨의 Multi-tenancy 구현으로 애플리케이션 계층의 논리적 오류로 인한 데이터 유출 방지
- Authorization Code flow 내 PKCE 강제 적용을 통한 Token interception attack 방어 체계 구축
- Web UI를 배제하고 TUI(Terminal User Interface) 기반의 관리 도구를 설계하여 런타임 리소스 최소화 및 개발자 경험 최적화
실천 포인트
1. 리소스 제한적 환경에서 Java/Go 대신 Rust/C++ 등 System Language 검토
2. Multi-tenancy 구현 시 App Layer가 아닌 DB Layer(RLS 등)에서의 격리 수준 검토
3. 보안 민감 데이터 처리 시 Zero-knowledge encryption 모델 적용 여부 확인
4. OAuth2 구현 시 PKCE 필수 적용을 통한 보안 강화