피드로 돌아가기
Building Scync: Why I made a Zero-Knowledge Secrets Manager for us, Developers.
Dev.toDev.to
Security

PBKDF2와 Web Crypto API 기반 Zero-Knowledge Secrets Manager 설계

Building Scync: Why I made a Zero-Knowledge Secrets Manager for us, Developers.

Hariharen S.S2026년 5월 5일8advanced

Context

기존 Password Manager의 개발자 특화 메타데이터 부재와 Enterprise 솔루션의 과도한 복잡성 사이의 간극 존재. Notion 등 편의성 중심 도구의 Encryption at Rest 부재로 인한 보안 취약점 해결 필요.

Technical Solution

  • Turborepo 기반 Monorepo 구조를 통한 UI 및 Cryptographic Logic의 엄격한 분리와 React 로직 100% 공유 설계
  • Zustand 상태 저장소 내 Plaintext 배제 및 Encrypted AES-GCM Blob 형태의 데이터 유지로 메모리 덤프 공격 방어
  • Web Crypto API를 활용한 On-demand Decryption 구현으로 사용자 인터랙션 시점에만 메모리 내 복호화 수행
  • Firebase Auth를 통한 Identity 계층과 PBKDF2 기반 Encryption 계층의 완전 분리로 서버 측 Zero-knowledge 실현
  • PBKDF2 SHA-256 해시 310,000회 반복 및 Firebase uid 결합을 통한 Rainbow Table 공격 방어 및 Key Derivation 강화
  • Verifier Pattern 도입을 통해 서버에 비밀번호 전송 없이 클라이언트 사이드에서 비밀번호 정합성 검증 수행

- 민감 데이터 처리 시 Global State에 Plaintext 저장을 지양하고 On-demand 복호화 패턴 검토 - 서버의 신뢰도와 무관하게 보안을 유지하는 Zero-knowledge 아키텍처를 위한 Identity와 Encryption 계층 분리 적용 - 암호화 키 생성 시 OWASP 권장 사항에 따른 PBKDF2 반복 횟수(310,000회 이상) 및 Salt 적용 여부 확인 - Third-party 라이브러리 의존성을 줄이기 위해 브라우저 네이티브 Web Crypto API 우선 검토

원문 읽기