“당신의 데이터는 암호화되어 있습니다”는 개인정보 보호를 내세우는 제품이 하는 가장 흔한 주장 중 하나이며, 그 자체로는 가장 쓸모없는 말 중 하나입니다. 암호화는 읽을 수 있는 데이터를 키를 사용해 읽을 수 없는 데이터로 바꾸는 메커니즘을 설명할 뿐입니다. 암호화 후 그 키를 누가 보유하는지에 대해서는 아무것도 말해주지 않으며, 바로 그 세부 사항이 실제로 누가 차단되는지에 대한 거의 모든 것을 결정합니다. zero-knowledge는 그 세부 사항을 제대로 구현하는 것을 의미하는 용어입니다.

핵심 아이디어

zero-knowledge 암호화는 서비스를 운영하는 회사가 사용자의 데이터를 복호화하는 데 필요한 키에 절대 접근할 수 없음을 의미합니다. “보지 않기로 선택하는 것”이 아니라, 구조적으로 불가능합니다. 왜냐하면 키가 기기를 떠나지 않으며 애초에 그들의 서버로 전송된 적이 없기 때문입니다. 이는 대개 비밀번호, PIN 또는 패턴처럼 오직 사용자만 아는 정보에서 로컬로 키 파생 과정을 거쳐 도출되며, 오직 그 결과물인 암호문만이 사용자의 통제권을 벗어납니다.

이것이 중요한 이유는 “우리는 당신의 데이터를 암호화합니다”와 “우리는 당신의 데이터를 읽을 수 없습니다”가 매우 다른 두 가지 주장이며, 대부분의 제품은 첫 번째 주장만 하기 때문입니다. 회사는 서버에서 AES-256과 같은 강력한 알고리즘으로 파일을 암호화하면서도 스스로 복호화 키를 보유할 수 있습니다. 이는 암호화가 외부 공격자의 접근을 막아주지만 회사, 그 회사의 데이터 유출, 또는 그 회사에 송달된 법적 명령을 막는 데는 아무런 역할을 하지 못함을 의미합니다. zero-knowledge는 구체적으로 그 틈을 메워줍니다.

zero-knowledge 대 종단간 암호화

이 두 용어는 혼용되어 사용되기도 하지만, 완전히 동일한 보장은 아닙니다. 종단간 암호화는 일반적으로 데이터가 이동하는 동안 암호화되어 데이터를 중계하는 서버가 전송 중인 데이터를 읽을 수 없음을 의미합니다. 그것은 실질적인 보호지만, 데이터가 도착한 후 일어나는 일에 대해서는 아무것도 말해주지 않습니다. 많은 종단간 암호화 시스템은 여전히 도착 시 복호화하여 평문으로 저장하거나 서버 측에 에스크로된 키의 사본을 저장합니다.

zero-knowledge는 더 강력하고 더 완전한 버전입니다. 데이터가 이동 중이든 정지 상태이든 제공자는 절대 키를 보유하지 않습니다. 진정한 zero-knowledge 시스템은 저장된 데이터도 암호화하므로, 저장소에 있는 파일은 업로드하는 동안만이 아니라 무기한 제공자가 읽을 수 없는 상태로 유지됩니다.

무엇으로부터 보호하는가

zero-knowledge 설계의 가치는 단순히 암호화만 된 시스템이 실패하는 다음과 같은 상황에서 구체적으로 드러납니다.

  • 서버 데이터 유출. 공격자가 회사의 서버에 침투하고 회사가 사용자 키를 보유하고 있다면, 공격자는 사용자 데이터를 복호화할 경로도 확보하게 될 가능성이 높습니다. 회사가 절대 키를 보유하지 않았다면 데이터 유출을 통해 얻을 수 있는 것은 읽을 수 없는 암호문뿐입니다.
  • 법적 요청. 소환장이나 법원의 명령은 회사가 실제로 가지고 있는 것만 넘겨주도록 강제할 수 있습니다. zero-knowledge 제공자는 암호화된 파일을 넘기면서 자신들도 열 수 없다고 진실하게 말할 수 있습니다. 왜냐하면 실제로 열 수 없기 때문입니다.
  • 내부자. zero-knowledge가 아닌 시스템에서 서버 접근 권한이 있는 직원은 사용자 데이터에 직접 도달할 수 있을지도 모릅니다. zero-knowledge 시스템에서는 서버 측에 도달할 수 있는 것이 아무것도 없습니다.

이 중 어느 것도 회사의 의도를 신뢰할 필요가 없습니다. 이는 아키텍처의 속성이며, 바로 그것이 개인정보 처리방침의 약속보다 더 가치 있는 이유입니다.

주장이 사실인지 확인하는 방법

대부분의 마케팅 용어를 꿰뚫어 볼 수 있는 실용적인 테스트가 있습니다. 암호화된 데이터에 대한 접근 권한을 복원하는 ‘비밀번호 찾기’나 계정 복구 흐름이 있는지 찾아보는 것입니다. 회사가 비밀번호를 재설정하고 파일을 다시 볼 수 있게 해줄 수 있다면, 그들이 제품을 zero-knowledge라고 부르든 말든 키의 일부를 보유하고 있는 것입니다. 진정으로 zero-knowledge인 제품은 이를 할 수 없습니다. 비밀번호나 PIN을 분실했고 기기에 따로 생성하여 보관한 복구 방법이 없다면, 다른 모든 사람을 차단하는 것과 동일한 속성에 의해 데이터 또한 설계상 영영 사라집니다.

이것이 zero-knowledge 제품들이 비밀번호 재설정 이메일 대신 기기에서 로컬로 생성되는 복구 구문 같은 것에 의존하는 이유이기도 합니다. 복구 구문 역시 서버에 닿지 않으며, 오직 사용자만 보유하는 키 파생 재료의 오프라인 두 번째 사본일 뿐입니다.

Vaultine은 이를 어떻게 적용하는가

Vaultine의 보관함 암호화 키는 서버로 절대 전송되지 않고 사용자의 기기에서 전적으로 파생되고 사용되는 고유한 PIN이나 패턴에서 나옵니다 (이 방식이 애초에 계정이 필요한 이유를 어떻게 제거하는지 보려면 계정 없는 보관함 앱이 실제로 더 안전한 이유를 참조하세요). 모든 파일은 저장되기 전에 각자의 AES-256 키로 암호화되며, 선택 사항인 Dropbox 백업은 먼저 기기에서 파일을 암호화하므로 Dropbox의 자체 암호화가 훌륭하든 아니든 Dropbox에 도달하는 것은 이미 암호문입니다 (그 별개의 질문에 대해서는 민감한 파일에 Dropbox 암호화만으로 충분할까?를 참조하세요).

저장해 둔 복구 구문 없이 PIN을 잃어버리면 Vaultine은 파일을 대신 복구해 줄 수 없습니다. 이것은 지원이 부족한 것이 아니라 데이터 유출, 소환장 또는 직원이 파일에 도달하지 못하도록 막는 동일한 설계의 직접적이고 불가피한 결과입니다.

요약

“암호화됨”은 자물쇠가 존재한다는 것을 말해줍니다. “zero-knowledge”는 누가 키를 가지고 있지 않은지를 말해줍니다. 두 주장은 비슷하게 들리고 마케팅 문구에서 거의 혼용되어 사용되지만, 회사 자체가 사용자의 데이터에서 차단되는지 여부를 실제로 결정하는 것은 오직 후자뿐입니다. 둘 중 하나를 믿기 전에 비밀번호 재설정 흐름이 있는지 확인하세요.

Vaultine의 암호화 키는 절대 기기를 떠나지 않습니다. vaultine.app에서 10개 파일 무료로 시작해 보세요.