피드로 돌아가기
I built a zero-knowledge encrypted secrets manager as a solo developer — launching next week
Dev.toDev.to
Security

개발자가 영지식 아키텍처 기반 암호화 시크릿 관리자를 단독 개발해 서버가 평문 데이터에 접근할 수 없는 구조 구현

I built a zero-knowledge encrypted secrets manager as a solo developer — launching next week

CryptVault2026년 3월 29일3intermediate

Context

LastPass 등 주요 비밀번호 관리자들의 데이터 유출 사건이 발생했다. 기존 상용 솔루션은 '우리를 믿으세요'라는 신뢰 모델에 의존하거나 저렴한 옵션은 암호화가 미흡했다. 사용자가 암호화된 데이터의 저장 위치를 제어할 수 없다는 한계도 있었다.

Technical Solution

  • RSA-4096과 AES-256-GCM 조합: 각 사용자가 고유한 RSA 키페어를 갖고 실제 시크릿은 AES-256-GCM으로 암호화
  • Argon2id 기반 마스터 암호 도출: GPU/ASIC 공격에 저항하는 키 도출 함수로 마스터 암호를 처리
  • 이중 인증 계층: 계정 로그인(이메일+비밀번호→JWT)과 보관소 잠금해제(마스터 암호→RSA 개인키 복호화) 분리
  • BIP-39 니모닉 복구 키: 마스터 암호를 잊어도 계정 복구 가능하도록 13단어 복구 키 방식 도입
  • Bring-Your-Own-Storage(BYOS): Google Drive에 암호화된 백업을 저장하는 선택지 제공
  • 기술 스택: React 19 + Vite 7 + Tailwind CSS(프론트엔드), Express 5 + Prisma 7 + PostgreSQL(백엔드), Docker + Cloudflare

Key Takeaway

영지식 아키텍처에서 비용이 큰 트레이드오프는 '비밀번호 찾기' 같은 서버 기반 복구 메커니즘을 포기해야 한다는 점이다. BIP-39 니모닉 같은 클라이언트 기반 복구 솔루션은 사용자 책임을 증가시키지만 시스템의 암호화 보증을 손상시키지 않는 설계 방식이다.


민감한 사용자 데이터를 다루는 서비스에서 영지식 아키텍처를 도입할 때는 마스터 암호 도출에 Argon2id 같은 GPU 저항 함수를 사용하고, RSA와 AES 조합으로 키 래핑과 데이터 암호화를 분리하면 서버 침해 시에도 평문 데이터 노출을 원천 차단할 수 있다.

원문 읽기