피드로 돌아가기
How I built a zero-knowledge secret sharing tool
Dev.toDev.to
Security

RFC 3986 기반 Zero-Knowledge 설계를 통한 완전한 비밀번호 은닉 구현

How I built a zero-knowledge secret sharing tool

Mark2026년 5월 25일5intermediate

Context

서버 측 암호화 방식의 근본적 한계인 운영자의 데이터 접근 가능성 해결 필요. 단순 정책적 신뢰가 아닌 암호학적 구조를 통한 Zero-Knowledge 아키텍처 설계 요구.

Technical Solution

  • Web Crypto API를 활용한 AES-256-GCM 기반 Client-side Encryption 수행
  • RFC 3986 및 RFC 7230 표준을 적용하여 암호화 키를 URL Fragment(#)에 배치함으로써 서버 전송을 원천 차단
  • Client-side와 Server-side의 이중 암호화 계층을 설계하여 DB 유출 및 URL 유출 상황에 대한 개별 방어 체계 구축
  • 비밀번호 보호 기능 구현 시 Key 자체를 사용자 비밀번호로 암호화하여 Fragment에 저장하는 2중 잠금 구조 채택
  • 100,000회 반복 프로세싱을 통한 Salt 적용으로 무차별 대입 공격(Brute-force) 비용 증대
  • 14일의 유효 기간을 보장하기 위해 매주 일요일 02:00 UTC에 Server-side Key를 순환시키는 Key Rotation 전략 운용

1. 민감 데이터 처리 시 서버 전송 전 Client-side Encryption 적용 검토

2. URL Fragment의 서버 미전송 특성을 활용한 일시적 키 전달 메커니즘 고려

3. Key Rotation 도입 시 데이터 생존 주기(TTL)를 고려한 Key 버전 중첩 기간 설정

4. 암호화 로직의 투명성 확보를 위한 핵심 모듈의 Open Source 공개 및 감사 가능 구조 설계

원문 읽기