제로 지식 암호화: “우리는 당신의 데이터를 볼 수 없습니다”가 실제 의미하는 바
Source: Dev.to
소개
대부분의 앱은 암호화를 사용한다고 주장합니다. 기업이 “우리는 당신의 데이터를 볼 수 없습니다”라고 말할 때, 기술적으로 무슨 뜻일까요? 제로‑지식 암호화가 실제로 무엇인지, 그리고 실제 프라이버시에서 왜 중요한지 살펴보겠습니다.
제로‑지식 암호화 작동 방식
- 데이터는 서버에 도달하기 전에 브라우저에서 암호화됩니다.
- 비밀번호는 절대 기기를 떠나지 않습니다.
- 암호화 키는 로컬에서 생성됩니다.
- 모든 콘텐츠는 전송 전에 암호화됩니다.
데이터가 우리 서버에 도착할 때는 이미 암호문(ciphertext)이며, 우리는 문자 그대로 읽을 수 없습니다.
우리가 저장하는 것
- 암호화된 데이터(암호문)
- 솔트 값
- 초기화 벡터(IV)
- 키 파생 파라미터
우리가 저장하지 않는 것
- 당신의 비밀번호
- 비밀번호 해시(any password hash)
- 암호화 키
만약 우리의 데이터베이스가 침해된다면, 공격자는 암호화된 블롭만 볼 수 있습니다. 비밀번호가 없으면 데이터는 쓸모가 없습니다. 암호화 키는 브라우저 내부에서 파생되며 우리에게 전송되지 않습니다.
신뢰 모델
이 설계는 맹목적인 신뢰를 없앱니다. 당신은 우리가 당신의 노트를 읽지 않을 것이라고 믿을 필요가 없으며, 오직 다음만 믿으면 됩니다:
- 업계 표준 암호화(Web Crypto API, AES‑256‑GCM, PBKDF2)
- 클라이언트‑사이드 암호화가 올바르게 구현되었다는 점
키가 기기를 떠나지 않기 때문에, 우리조차도 당신의 데이터를 복호화할 수 없습니다.
제한 사항
- ❌ 비밀번호 복구 불가
- ❌ “관리자 접근” 불가
비밀번호를 잃어버리면 데이터는 영구적으로 접근할 수 없게 됩니다. 이것이 진정한 프라이버시의 대가입니다.
아키텍처 관점
프라이버시는 기능이 아니라 아키텍처적 결정이어야 합니다. 제로‑지식 암호화는 당신의 데이터가 당신에게만 머물도록 보장합니다 — 우리에게는 아닙니다.
원본 게시물
Zero‑Knowledge Encryption: What “We Can’t See Your Data” Actually Means