모든 글

백업이 정말 작동해야 하는 날: Senvra가 개인 데이터를 되찾는 방법

Senvra 비공개 공간 백업이 원본 Space Access Key로 보호되는 방식, 공개 공간과의 차이, 저장 후 검증과 복원 과정을 설명합니다.

백업암호화복구개인정보 보호iOS

백업이 정말 필요한 날은 대개 좋은 날이 아닙니다.

iPhone을 잃어버렸거나, 앱을 실수로 삭제했거나, 기기가 더 이상 켜지지 않을 수 있습니다. 그때 중요한 것은 설정 화면에서 예전에 체크 표시를 보았는지가 아닙니다. 저장한 파일을 지금도 검증할 수 있는지, 그리고 그 파일을 여는 자격 증명을 여전히 가지고 있는지가 중요합니다.

현재 Senvra의 백업 설계는 백업마다 새로운 비밀을 관리하게 하지 않으면서 이 두 질문에 답합니다.

빠른 시작: 생성, 확인, 복원

백업을 생성하고 저장하기

  1. 보호할 공간을 연 다음 기본 메뉴에서 백업을 선택합니다.
  2. 백업을 탭하고, 비공개 공간에서는 암호화 백업 생성, 공개 공간에서는 백업 생성을 선택합니다.
  3. 파일이 준비되면 필요에 따라 이름을 바꾸고 저장을 탭한 뒤 파일 앱에서 위치를 선택합니다. 백업을 저장하고 확인했습니다라는 메시지가 표시될 때까지 Senvra를 열어 두세요.
  4. 비공개 공간에서는 백업을 만들 때 사용 중이던 Space Access Key를 보관합니다. Key와 .senvrabackup 파일은 서로 분리하고, 가능하면 같은 iPhone 이외의 위치에도 보관하세요.

가져오지 않고 백업 확인하기

  1. 백업과 같은 유형의 공간으로 돌아가 백업을 열고 복원을 탭합니다.
  2. .senvrabackup 파일을 선택합니다. 현재 형식의 비공개 공간 백업에는 원본 Space Access Key가 필요하며, 공개 공간 백업에는 Key가 필요하지 않습니다.
  3. 확인을 탭합니다. Senvra는 콘텐츠를 가져오지 않고 전체 아카이브를 읽고 인증합니다. 복구 훈련이 성공하면 해당 파일과 자격 증명을 함께 사용할 수 있음을 확인한 것입니다.

콘텐츠 복원하기

  1. 백업과 같은 유형의 대상 공간을 열고 백업 → 복원에서 파일을 선택합니다.
  2. 감지된 보호 방식을 확인하고 필요한 경우 요청된 Key를 입력한 다음 가져오기를 탭합니다.
  3. Senvra는 누락된 항목만 추가하고 일치하는 기존 항목은 그대로 둡니다. 대상 공간의 이름, 암호, Access Key, 생체 인증 설정, 제스처 또는 스킨도 교체하지 않습니다.

백업마다 새 Key를 만들지 않고 Space Access Key를 사용합니다

비공개 공간을 복원하려면 다음 두 가지가 필요합니다.

  1. Senvra 외부에 저장한 .senvrabackup 파일
  2. 해당 백업을 만들 당시 원본 비공개 공간에서 사용하던 Space Access Key

현재 형식에는 별도의 Backup Password가 없으며, 사용자가 따로 보관해야 하는 Backup Key도 새로 만들지 않습니다.

이는 의도적인 사용성 결정입니다. 백업마다 독립된 비밀을 만드는 방식은 암호학적으로 강할 수 있지만, 파일 수와 시간이 늘어날수록 사용자는 수많은 “파일과 Key” 조합을 수년간 정확히 관리해야 합니다. 하나라도 잘못 연결하거나 잃어버리면 유일하게 남은 백업을 사용할 수 없게 됩니다.

Space Access Key는 원래 비공개 공간의 복구 자료입니다. 같은 자격 증명으로 그 공간의 백업까지 보호하면 절차가 명확해집니다. Space Access Key를 안전하게 보관하고, 백업 파일을 신뢰할 수 있는 위치에 저장하며, 가능하면 둘을 서로 분리해 둡니다.

비공개 공간 백업을 보호하는 방식

Space Access Key가 백업 안의 사진, 동영상, 메모와 문서를 하나씩 직접 암호화하는 것은 아닙니다.

각 비공개 공간에는 무작위로 생성된 256비트 마스터 키가 있습니다. 백업에는 인증된 Access Key 엔벌로프가 포함되며, 일치하는 Space Access Key만 원본 공간의 마스터 키를 복구할 수 있습니다. Senvra는 그 마스터 키와 백업마다 새로 만든 무작위 컨텍스트로 래핑 키를 파생해 새 Archive Key를 보호합니다. 실제 백업 레코드를 암호화하고 인증하는 것은 Archive Key입니다.

흐름도 다이어그램 준비 중

좌우로 밀어 전체 다이어그램 보기

다이어그램 원본 보기
flowchart LR
    K[원본 공간의 Space Access Key] --> E[인증된 Access Key 엔벌로프 열기]
    E --> M[원본 공간 마스터 키 복구]
    M --> W[새 무작위 솔트와 결합해<br/>백업 래핑 키 파생]
    W --> A[무작위 Archive Key 열기]
    A --> F[백업 프레임 인증 및 복호화]

이 계층은 역할을 분리합니다.

  • Space Access Key는 원본 비공개 공간에 대한 복구 권한을 증명합니다.
  • 공간 마스터 키는 해당 공간의 암호학적 정체성을 고정합니다.
  • 백업마다 새로 생성되는 Archive Key는 하나의 백업 파일 내용을 보호합니다.
  • 인증 암호화는 내용을 숨기는 동시에 변경 여부를 감지합니다.

백업 파일에는 Space Access Key 자체가 저장되지 않습니다. 파일만 가지고는 비공개 공간 백업을 열 수 없습니다.

공개 공간 백업의 경계는 다릅니다

Everyday 공개 공간은 비공개 보관함이 아닙니다. 따라서 공개 공간 백업을 기밀성이 있는 암호화 백업이라고 표현하지 않습니다.

공개 공간 백업은 Key 없이 복원할 수 있습니다. 해당 파일을 얻고 호환되는 도구를 사용할 수 있는 사람은 내용을 읽거나 복원할 수 있습니다. Senvra는 공개 공간에 없는 보호 기능을 암시하지 않고, 생성과 복원 전에 이 경계를 명확히 안내합니다.

백업된 내용도 비공개로 유지해야 한다면 먼저 비공개 공간에 보관해야 합니다.

파일이 Senvra 밖으로 나가기 전과 후에 검증합니다

파일이 만들어졌다는 사실과 신뢰할 수 있는 백업이 완성됐다는 사실은 다릅니다.

Senvra는 구조화된 컨테이너로 백업을 기록하고, 저장 단계로 넘기기 전에 인증 레코드, 항목 관계, 바이트 수, 다이제스트와 종료 마커를 검사합니다. 완료되지 않은 작업은 pending 상태에 남으며 완성된 백업으로 표시되지 않습니다.

다음 경계는 복사 과정입니다. 파일 앱, iCloud Drive, 외부 저장소 또는 다른 서비스로 저장하는 도중에도 중단이나 변경이 발생할 수 있습니다. Save를 사용하면 Senvra가 대상 파일을 다시 읽고 Header, 바이트 수와 전체 파일 다이제스트를 앱 내부의 검증된 원본과 비교합니다. 일치하는 외부 사본만 현재 백업으로 기록합니다.

Share로 보낸 사본도 사용할 수 있지만, 다른 앱이 선택한 모든 저장 위치를 Senvra가 다시 읽을 수 있는 것은 아닙니다. 따라서 공유 사본은 외부 검증 완료 상태로 기록되지 않습니다.

복구 훈련은 백업 전체를 읽습니다

복구 훈련은 아무 항목도 가져오지 않습니다. 파일과 일치하는 자격 증명을 손상 없이 검사하는 과정입니다.

현재 형식의 비공개 공간 백업에서는 파일을 만들 때 사용하던 Space Access Key를 입력합니다. Senvra는 키 엔벌로프를 열고, Header를 인증하고, 모든 프레임을 읽고, 항목 및 아카이브 다이제스트와 종료 마커를 검증하며, 끝에 예상하지 않은 데이터가 있으면 거부합니다.

이를 통해 다음 두 상태를 구분할 수 있습니다.

  • 암호학적으로 온전하고 여전히 복원 가능한 이전 백업
  • 온전하면서 원본 공간의 현재 내용과도 일치하는 백업

둘 다 유용할 수 있지만 두 번째 상태만 최신 보호 상태를 나타냅니다.

복원은 현재 공간을 교체하지 않고 내용을 추가합니다

복원은 추가 방식입니다. 현재 열린 공간에 누락된 항목을 추가하고 일치하는 기존 항목은 그대로 둡니다.

비공개 백업은 비공개 공간 경로에서만, 공개 백업은 공개 공간 경로에서만 복원할 수 있습니다. Senvra는 데이터를 받아들이기 전에 백업 전체를 검증합니다. 각 항목은 보호된 pending 위치에 먼저 기록되고, 검증을 통과한 뒤 원자적으로 게시됩니다.

백업에는 원본 공간의 콘텐츠와 컬렉션, 태그 같은 정리 정보가 포함됩니다. 하지만 대상 공간의 정체성, 이름, 비밀번호, Space Access Key, Face ID, 제스처 설정이나 스킨은 교체하지 않습니다.

가져오기가 중단돼도 기존 내용은 그대로 유지됩니다. 같은 백업을 다시 선택하면 일치하는 항목을 건너뛰며 중복 사본을 몰래 만들지 않습니다.

Access Key 교체는 이전 백업에 영향을 줍니다

현재 설계에서 가장 중요한 운영상 주의점입니다.

비공개 백업은 생성 당시 활성화되어 있던 Space Access Key에 연결됩니다. 나중에 공간의 Access Key를 교체해도 외부에 저장된 이전 파일은 다시 작성되지 않습니다. 새 Key로는 이전 백업을 열 수 없습니다.

Access Key를 교체한 뒤에는 다음 순서를 따르세요.

  1. 계속 보관할 이전 백업을 위해 기존 Access Key를 유지합니다.
  2. 새 Access Key로 새 백업을 만들어 외부에 저장합니다.
  3. 저장한 새 파일에 대해 복구 훈련을 실행합니다.
  4. 이전 백업이 더 이상 필요 없다고 판단한 뒤에만 기존 Key와 파일을 정리합니다.

이 동작은 나중의 Key 변경이 이미 저장된 불변 백업 파일을 조용히 바꾸는 일을 막습니다. 대신 Key 교체도 백업 관리의 일부로 다뤄야 합니다.

이전 백업은 Backup Key를 요구할 수 있습니다

파일을 선택하면 Senvra는 그 안에 기록된 자격 증명 방식을 식별합니다. 출시 전의 이전 설계로 만든 파일은 당시의 Backup Key를 요구할 수 있습니다.

파일 선택 후 화면에 표시되는 이름을 따르세요.

  • Source Space Access Key는 현재 비공개 공간 형식을 뜻합니다.
  • Backup Key for older backup은 해당 이전 파일과 함께 저장한 전용 Key를 뜻합니다.
  • 현재 공개 공간 백업은 Key가 필요 없습니다.

Senvra는 서로 다른 자격 증명을 조용히 대체하지 않습니다.

실제로 지속할 수 있는 백업 습관

  1. 각 비공개 공간의 Access Key를 Senvra 밖에 보관하고, 같은 iPhone에만 두지 않습니다.
  2. 중요한 콘텐츠 변경 후 새 백업을 만듭니다.
  3. .senvrabackup 파일을 자신이 관리하는 위치에 저장합니다.
  4. 가능하면 Save를 사용해 Senvra가 대상 사본을 다시 읽고 검증하게 합니다.
  5. 새 백업의 복구 훈련이 통과하기 전에는 마지막으로 정상임을 확인한 백업을 삭제하지 않습니다.
  6. Access Key를 교체한 뒤에는 이전 복구 자료를 폐기하기 전에 새 백업을 만들고 검증합니다.

Senvra는 백업을 자체 호스팅 보관함으로 업로드하지 않습니다. 파일 앱에서 선택한 위치가 iCloud나 다른 서비스로 동기화되는지는 해당 저장소의 정책에 따릅니다.

마지막으로, 솔직한 경계

비공개 공간에서는 백업 파일이 있어도 일치하는 Space Access Key가 없으면 Senvra가 복원할 수 없습니다. Access Key만 있고 백업 파일이 없으면 보관된 데이터도 없습니다. 둘을 모두 잃으면 서버 측 재설정이나 호스팅된 사본은 존재하지 않습니다. 둘이 함께 노출되면 백업의 기밀성도 사라집니다.

공개 공간은 백업 자체가 기밀성을 제공하지 않으므로 파일을 가지고 있는 것만으로 복원할 수 있습니다.

현재 설계가 없앤 것은 관리하기 어려운 “백업마다 새 Key”입니다. 사용자의 보관 책임을 없앤 것은 아닙니다. 목표는 실제로 끝까지 수행할 수 있는 복구 경로입니다. 비공개 공간마다 이미 존재하는 Access Key 하나, 백업마다 휴대 가능한 파일 하나, 명시적인 검증, 그리고 분명한 한계입니다.

전체 제품 변화는 Senvra 1.3 새로운 기능과 Senvra가 iPhone의 비공개 데이터를 보호하는 방식에서 확인할 수 있습니다.

참고 자료

MonoWare에서

Senvra에는 이 노트의 더 많은 맥락이 있습니다.

제품 사이트를 열거나 Senvra로 필터된 노트를 계속 읽으세요.

뉴스레터

개인정보와 제품 엔지니어링 노트를 가끔 보내드립니다.