Zecrypt: 제로 지식 암호화, 오픈 소스 기반의 혁신적인 비밀번호 관리자 개발기

🤖 AI 추천

보안에 대한 깊은 고민을 바탕으로 새로운 솔루션을 구축하고자 하는 개발자, 제로 지식 증명 및 클라이언트 측 암호화 기술에 관심 있는 백엔드/프론트엔드 개발자, 오픈 소스 프로젝트에 기여하고 싶은 개발자에게 추천합니다.

🔖 주요 키워드

Zecrypt: 제로 지식 암호화, 오픈 소스 기반의 혁신적인 비밀번호 관리자 개발기

핵심 기술

이 글은 개발 중 발생한 실질적인 문제에서 출발하여 제로 지식 아키텍처와 클라이언트 측 암호화를 기반으로 하는 오픈 소스 비밀번호 관리자 'Zecrypt'를 구축한 경험을 공유합니다.

기술적 세부사항

  • 프로젝트 동기: 팀원의 비밀번호 분실 사건을 계기로, 보안성이 낮거나 블랙박스처럼 느껴지는 기존 비밀번호 관리자의 대안 필요성을 인지.
  • 주요 기술 스택:
    • 백엔드: FastAPI (Python)
    • 프론트엔드: Next.js (React)
    • 데이터 저장소: MongoDB
    • 암호화: AES-GCM (클라이언트 측)
  • 핵심 설계 원칙:
    • 클라이언트 측 암호화 기본 적용
    • 제로 지식 아키텍처 (서비스 제공자도 사용자 데이터 복호화 불가)
    • 오픈 소스를 통한 투명성 확보
  • 작동 방식:
    • 사용자 비밀번호는 클라이언트를 떠나지 않음.
    • 암호화 키는 클라이언트에서 PBKDF2 또는 Argon2를 통해 파생.
    • 각 비밀번호 항목은 고유한 nonce를 가진 AES-GCM으로 암호화됨.
    • 암호화된 데이터는 MongoDB에 저장되며, 복호화 또한 클라이언트에서만 이루어짐.
  • 차별점:
    • 모든 암호화 및 복호화 작업은 브라우저/앱에서 수행.
    • MongoDB는 암호화된 데이터(ciphertext)만 저장.
    • FastAPI를 사용하여 빠르고 가벼우며 감사하기 쉬운 백엔드 구축.
    • Next.js를 통해 사용자 친화적인 프론트엔드 경험 제공.
    • 소스 코드 전체 공개.

개발 임팩트

제로 지식 원칙을 철저히 준수하여 사용자 데이터의 최고 수준 보안을 보장하며, 오픈 소스를 통해 개발자 커뮤니티의 신뢰와 참여를 유도합니다. 이를 통해 비밀번호 관리에 대한 새로운 표준 제시 및 보안 솔루션 발전에 기여할 수 있습니다.

커뮤니티 반응

GitHub 저장소를 공개하고 사용자 피드백을 적극적으로 수렴하며, 향후 Mac 애플리케이션, 모바일 지원, 팀을 위한 셀프 호스팅 버전 등 확장을 계획하고 있습니다.

📚 관련 자료