Cloud Backup의 작동 방식
최종 검토일: 2026년 8월 1일파일은 휴대폰을 떠나기 전에 휴대폰에서 암호화됩니다. 서버는 해독할 수 없는 바이트와, 읽을 수 있는 메타데이터를 저장합니다. 파일을 읽을 수 있는 것은 결코 전송되지 않습니다.
Cloud Backup이란
Cloud Backup은 내려받은 파일의 암호화된 사본을 보관합니다. 앱에서 완료된 다운로드로 시작하고, 나중에 같은 휴대폰이나 복구 코드를 가진 다른 기기에서 복원합니다. 요청하기 전에는 아무것도 업로드되지 않고, 사용한 저장 공간만큼만 지불하며, 개인 금고의 파일은 절대 포함되지 않습니다.
01 서버가 침해되었다고 가정합니다
서버가 해킹당했거나, 압수되었거나, 법원의 제출 요구를 받았거나, 우리가 잘못 설정했다고 가정하세요. 네 경우 모두 파일은 읽을 수 없는 상태로 남습니다. 서버는 파일을 해독할 수 있는 것을 결코 갖고 있지 않기 때문입니다.
02 복구 코드가 열쇠의 전부입니다
계정도, 이메일도, 비밀번호도 없습니다. 휴대폰이 복구 코드를 생성하고 모든 키를 기기 안에서 그로부터 유도합니다.
백업할 때도, 복원할 때도, 브라우저를 페어링할 때도, 코드는 결코 전송되지 않습니다. 우리는 사본을 갖고 있지 않으며 만들 수도 없습니다.
03 파일을 백업하면 일어나는 일
- 그 파일만을 위한 새 키가 생성됩니다. 단 하나의 키로 전체 백업이 열리는 일은 없습니다.
- 파일은 휴대폰에서 조각으로 암호화됩니다. 각 조각은 그 파일 안의 위치에 결속되어, 조각을 바꾸거나 재배열하거나 파일 간에 옮길 수 없습니다.
- 조각은 저장소 제공자에게 곧바로 업로드됩니다. 우리 서버는 읽을 수 있는 것을 결코 보지 못합니다.
- 그 키는 복구 코드에서 유도한 키로 잠겨 파일 옆에 저장됩니다. 코드 없이는 쓸모가 없습니다.
- 색인(이름, 종류, 날짜, 미리보기)은 하나의 블록으로 암호화됩니다. 우리는 보관하고 돌려줄 뿐, 열 수는 없습니다.
복원은 이 과정을 기기에서 거꾸로 수행합니다. 키는 휴대폰 외의 어디에도 존재하지 않습니다.
- 이름
- 종류
- 크기
- 428.6 MB (여전히 보임)
- 저장일
- 2026년 8월 2일 (여전히 보임)
휴대폰을 떠나는 것은 이 상태입니다. 이름과 종류는 암호화된 색인 안에 있습니다. 크기와 타임스탬프는 그렇지 않습니다.
04 우리가 볼 수 있는 것과 없는 것
암호화는 내용을 숨기지, 존재를 숨기지 않습니다.
볼 수 있는 것
- 각 파일의 크기
- 파일이 몇 개인지
- 언제 백업하거나 복원했는지
- 접속한 IP 주소
- 보유한 저장 크레딧
볼 수 없는 것
- 파일 이름
- 파일 내용
- 썸네일이나 미리보기
- 파일의 종류
- 다운로드가 어느 사이트에서 왔는지
- 백업하지 않은 모든 것
| 객체 | 크기 | 저장 시각 |
|---|---|---|
| a3f9c2…7e10 | 8,388,642 bytes | 2026-07-14 09:12 |
| b71d04…9fa3 | 8,388,642 bytes | 2026-07-14 09:12 |
| c0e5aa…12b8 | 2,104,331 bytes | 2026-07-14 09:13 |
이것이 레코드의 전부입니다. 이름도, 종류도 없습니다. 크기와 시각은 실재하는 신호이며, 암호화가 이를 없애 주지는 않습니다.
05 신원을 밝히지 않고 결제하기
저장소 결제는 보통 사람과 계정을 잇는 기록을 만듭니다. 여기서는 만들지 않습니다.
크레딧은 은닉 서명을 통해 익명 토큰으로 발행됩니다. 결제 시스템은 무엇에 서명하는지 보지 못한 채 서명합니다. 결제가 진짜인지는 검증할 수 있지만 그것을 사용하는 계정과는 연결할 수 없습니다. 요구받아도 그 연결 고리를 내놓을 수 없습니다. 애초에 만들어지지 않기 때문입니다.
카드 정보는 결제 제공자의 페이지로 가며 우리에게 결코 도달하지 않습니다. Lightning에는 카드 처리업체가 없습니다.
06 브라우저에서 백업 열기
앱으로 코드를 스캔하면 컴퓨터에서 백업을 열 수 있습니다. 전송되는 것은 그 브라우저 세션 전용으로 암호화된 저장소 키 자체입니다. 아무것도 해독하지 못하는 로그인 토큰이 아닙니다.
복구 코드는 결코 이동하지 않습니다. 페어링된 브라우저는 백업된 파일에만 접근합니다. 코드를 다시 유도할 수 없으며, 로그아웃하거나 탭을 닫으면 키는 지워집니다.
키가 넘어가기 전에 두 화면이 같은 여섯 자리를 보여 줍니다. 다르면 일치하지 않음을 선택하세요.
07 이것이 지켜 주지 못하는 것
- 침해된 휴대폰. 암호화는 기기에서 이루어지므로, 침해된 기기에서는 파일이 평문으로 존재합니다. 서버 쪽에서는 아무것도 해결할 수 없습니다.
- 잃어버린 복구 코드. 누구도 복구할 수 없습니다.
- 메타데이터. 위 왼쪽 열은 숨겨져 있지 않으며, 근본적으로 훨씬 비싼 설계 없이는 숨길 수 없습니다.
- 백업하지 않은 파일. 이 페이지는 클라우드 백업만 다룹니다. 안전 폴더는 기기에 남으며 백업에서 제외됩니다.
08 직접 확인하세요
암호화, 키 유도, 페어링 핸드셰이크는 모두 서버가 아닌 앱에서 실행됩니다. 이 페이지의 모든 주장은 클라이언트만으로 검증할 수 있습니다.
| 파일 | 역할 |
|---|---|
| sync/crypto/SyncIdentity.java | 코드에서 모든 키를 유도 |
| sync/crypto/VaultCrypto.java | 파일별 암호화 |
| sync/crypto/BookmarkBlob.java | 암호화된 색인 |
| sync/crypto/Canonical.java | 요청 서명 |
| sync/crypto/PairSeal.java | 브라우저 페어링 |
| sync/crypto/BlindSignature.java | 익명 결제 토큰 |
보안 문제는 비공개로 알려 주세요: 앱 저장소의 SECURITY.md 파일을 참고하거나 [email protected]로 메일을 보내세요.
이 문서는 참고용 번역입니다. 차이가 있는 경우 이 페이지의 영어 버전이 우선합니다.