피드로 돌아가기
Dev.toSecurity
원문 읽기
검증된 Primitives 조합을 통한 Zero-knowledge E2E 암호화 설계
How we built zero-knowledge end-to-end encryption for a mobile AI coding agent companion
AI 요약
Context
모바일 AI 코딩 에이전트 환경에서 소스코드 및 API Token 등 고감도 데이터의 노출 위험 존재. 단순 TLS나 At-rest 암호화는 서버 관리자나 외부 침입자에 의한 데이터 유출 가능성을 완전히 제거하지 못하는 한계 보유.
Technical Solution
- AES-256-GCM 기반의 Authenticated Symmetric Encryption을 적용하여 데이터 무결성 보장 및 하드웨어 가속 활용
- ECDH P-256와 HKDF-SHA256를 조합한 Key Agreement 체계로 서버를 거치지 않는 기기 간 대칭키 도출
- Per-device session key wrapping 구조를 설계하여 백엔드의 Plaintext 키 보유 없이 다중 기기 독립 복호화 구현
- TLS 전송 계층 위에 Application-layer 암호화를 추가한 Double-wrapped 구조로 MITM 공격 원천 차단
- 복구 경로(Recovery path)를 의도적으로 제거하여 서버 운영자가 기술적으로 복호화가 불가능한 Zero-knowledge 속성 유지
- 로그 파이프라인 내 Content scrubbing을 적용하여 Event ID와 메타데이터만 기록하는 무결성 환경 구축
실천 포인트
1. E2E 설계 시 복구 메커니즘이 Zero-knowledge 원칙을 훼손하는지 검토
2. 표준 암호화 라이브러리(CryptoKit, javax.crypto 등)의 하드웨어 가속 지원 여부 확인
3. Threat Model 정의 시 보호 가능 범위와 불가능한 범위(Device Compromise 등)를 명확히 구분하여 명시