// FAQ

자주 묻는 질문

암호화, 복구 코드, 백업, 기기 변경 — 궁금한 답이 여기에 있습니다.

암호화 및 데이터 보안

데이터가 정말 암호화되나요? 계정이 없는데 키는 어디 있나요?

정말로 암호화됩니다. CosmosBox는 계정 불필요 설계: 데이터는 기본적으로 당신의 기기에만 존재하며, 가장 강력한 알고리즘으로 처리됩니다 — 비밀번호는 Argon2id(128MB 메모리 사용, GPU 무차별 대입 사실상 불가)로 마스터 키를 유도하고, 각 파일은 다시 독립된 AES-256-GCM 랜덤 키로 암호화됩니다. 키(마스터 키)는 잠금 해제 중에만 메모리에 존재하며 잠그면 즉시 삭제됩니다. 데이터 키는 기기 보안 칩(Android Keystore / iOS Keychain)이 보관합니다.

계정이 없다는 것은 “서버가 비밀번호를 보관한다”는 단계가 없다는 뜻 — 비밀번호 유출 면은 제로입니다. 대가로 비밀번호를 잊으면 복구 코드로만 데이터를 되찾을 수 있습니다.

보안 비밀번호를 잊어버리면 어떻게 하나요?

바로 그런 경우를 위한 “비밀번호 복구”(복구 코드 방식)입니다. 활성화하면 시스템이 복구 코드를 생성합니다(5개로 분할 가능, 3개가 모이면 복원): 1-2개는 직접 보관하고 나머지는 믿을 만한 사람에게 나눠줍니다. 비밀번호를 잊으면 복구 코드를 입력하는 것만으로 비밀번호를 재설정하고 모든 데이터를 복원할 수 있습니다 — 서버 개입 전혀 불필요합니다.

비밀번호를 잊었고, 비밀번호 복구도 켜지 않았고, 백업도 없다면 — 데이터는 복원할 수 없습니다. 이것이 계정 없는 암호화의 물리적 한계입니다. 강력히 권장합니다: 비밀번호 설정 후 즉시 비밀번호 복구를 활성화하세요.

복구 코드는 왜 "수학적으로 깰 수 없나요"?

복구 코드 = 32바이트 진성 난수(32 × 8 = 256비트 엔트로피), 시스템의 안전한 난수 소스(Random.secure())로 생성 — 1비트 1비트가 독립적인 동전 던지기의 결과입니다. 깨려면 2²⁵⁶가지 가능성에서 정답을 찾아야 합니다.

2²⁵⁶은 얼마나 큰가? 직관적인 비교:

  • 2²⁵⁶ ≈ 1.16 × 10⁷⁷, 관측 가능한 우주의 원자 수는 약 10⁸⁰ — 탐색 공간은 우주의 원자 수와 동급입니다.
  • 우주의 모든 원자를 컴퓨터로 만들고, 각각이 빅뱅(138억 년)부터 지금까지 초당 10¹²회 시도해도 2²⁵⁶의 10⁻²⁶밖에 못 덮습니다.
  • 더 직접적으로: 256비트 키를 전수 조사하는 데 필요한 최소 에너지는 태양이 평생 방출하는 총 에너지를 초과합니다(랜다우어 원리: 계산 1회의 비트 반전에 최소 kT, 여기에 2²⁵⁶회를 곱함).

즉 “수학적으로 깰 수 없다”의 정확한 의미는: 절대 불가능이 아니라, 물리 법칙이 허용하는 계산 능력 안에서는 불가능 — “어렵다”가 아니라 “물리적으로 불가능”합니다.

양자 컴퓨터도 구원하지 못합니다: 그로버 알고리즘은 대칭 키 탐색을 절반으로 줄입니다: 256비트 → 2¹²⁸회. 하지만 2¹²⁸도 우주의 원자 수를 초과합니다 — 양자 컴퓨터도 마찬가지로 불가능합니다. 복구 코드가 사용하는 AES-256-GCM이 바로 양자 탐색에 저항하는 강도입니다.

왜 인간의 비밀번호는 안 되는가?

인간의 비밀번호 복구 코드
엔트로피 원천 당신의 기억 — 예측 가능(흔한 단어, 생일, 키보드 패턴) 진성 난수 생성기
실제 엔트로피 12자리 랜덤 ≈ 78비트; 흔한 비밀번호는 종종 30비트 미만 256비트
파괴 비용 30비트 ≈ 10⁹회, GPU로 몇 시간 2²⁵⁶회, 물리적으로 불가능

30비트와 256비트의 차이는 8배가 아니라 2²²⁶ ≈ 10⁶⁸배 — 이것이 “강력한 KDF(Argon2id)는 인간의 비밀번호를 지킬 수 있지만, 256비트 랜덤 키에는 금상첨화에 불과하다”는 이유입니다: 복구 코드는 KDF의 감속조차 필요 없습니다 — 그 자체가 완전 엔트로피의 키이기 때문입니다.

정직한 한계: “수학적으로 깰 수 없다”는 키 자체만 보호합니다. 복구 코드를 실제로 무력화하는 것은 절대 전수 조사가 아니라 인간의 부분입니다 — 메모에 적어서 촬영된 것, 루팅된 기기의 메모장에 저장된 것, 자신에게 보낸 스크린샷이 클라우드에 올라간 것. 키는 아무리 강해도 유출되면 끝입니다. 철칙: 종이에 적어 잠금 서랍에 보관 / 비밀번호 관리자에 저장(이것도 강력한 마스터 비밀번호와 함께) — 촬영 금지, 클라우드 금지, 누구에게도 보내지 마세요. 친구 지분은 Shamir 분할의 조각이며, 하나만으로는 무의미하니 안심하고 나눠줄 수 있습니다.

암호화 등급

평문 / 암호화 / 포터블 / 소금 분리 — 뭐가 다른가요?

저장 암호화 등급(암호화 카메라, 암호화 메모 등)은 보안 강도가 낮은 순서로:

등급 파일 보안 기기 변경
평문 암호화 안 함 손에 넣으면 누구나 읽음 그냥 복사
포터블 암호화, 소금은 파일 내 비밀번호 필요 비밀번호 입력
소금 분리(암호화) 암호화, 소금은 기기에 비밀번호 + 기기 소금 필요 복구 코드 필요
소금 교환(최강 내보내기) 암호화, 소금은 오프라인 교환 비밀번호 + 소금, 2요소 상대의 소금 필요

쉽게 기억: 평문 → 포터블 → 소금 분리, 안전도와 번거로움도 함께 올라갑니다. 기본 “전역 설정 따름”으로 충분한 경우가 대부분. 파일이 민감할수록 높은 등급을 선택하세요.

휴대폰을 바꾸면 데이터는 어떻게 옮기나요?

표준 절차: 구 기기에서 백업(로컬 또는 WebDAV 클라우드) → 새 기기에서 복원 → 백업 비밀번호 입력.

새 기기에서 구 키 되찾기: 백업에 복구 설정이 자동으로 포함됩니다 — 복원 후 복구 코드를 입력하면 구 기기의 마스터 키가 복원되고 모든 암호화 데이터를 즉시 읽을 수 있습니다.

단일 파일 공유: 캐릭터 카드 등의 도구는 내보내기를 지원 — 포터블 형식은 새 기기에서 내보내기 비밀번호만 입력하면 됩니다. “오프라인 소금 교환” 형식은 먼저 소금을 오프라인으로 교환해야 합니다(더 안전, 민감 파일용).

백업

데이터가 이미 암호화되어 있는데, 백업에 왜 또 비밀번호가 필요한가요?

백업은 암호문의 단순 복사가 아니기 때문입니다. 백업은 새 기기에서 모든 것을 재구축할 수 있게 해야 하므로, 암호문뿐 아니라 평문 구조 데이터(일부 도구 데이터)와 키 재료(소금, 검증 데이터, 복구 설정)도 포함합니다 — 이 모든 것을 백업 고유의 비밀번호로 통째로 다시 잠가야 합니다. 기기 위의 암호화는 “파일 유출”을 막고, 백업 비밀번호는 “백업 파일 유출”을 막습니다 — 두 개의 독립된 층입니다. 백업 비밀번호를 잊었다면? 복구 코드로 마스터 키를 복원한 뒤 백업을 다시 만들어야 합니다.

WebDAV 백업이란 무엇인가요? 안전한가요?

암호화 백업을 당신 자신의 클라우드/프라이빗 클라우드(견과운, NextCloud, Synology 등 WebDAV 지원 서버)에 자동 업로드 — 제3자를 거치지 않습니다. 백업 파일은 암호화(.encbak)되고, 비밀번호는 Keystore에 보관되며, 전송은 HTTPS입니다. 매일/매주 자동 백업이 시작 시 실행되어 기기를 잃어도 클라우드에서 데이터를 되찾을 수 있습니다.

소금 분리 백업의 소금을 잃어버렸거나 / 유출되었다면?

소금 분실: 소금 분리 백업(파일에 소금이 없음)은 복호화할 수 없게 됩니다 — 당신 자신도 포함해서요. 그래서 활성화 시 앱이 반복적으로 경고합니다: 백업 소금을 내보내서 오프라인으로 보관(USB / 인쇄 / 비밀번호 관리자)하세요.

소금 유출: 유출 이전의 모든 소금 분리 백업이 위험해집니다(되돌릴 수 없음 — 클라우드의 구 백업 삭제 권장). 백업 소금을 재생성하면 새 백업은 자동으로 새 소금을 사용해 더 이상 유출되지 않습니다. 구 소금이 소금 라이브러리에 남아 있는 동안 구 백업도 복원 가능합니다.

소금 보관이 부담스럽다면 기본 ‘포터블’ 백업으로 충분합니다 — 소금이 포함되어 있고, 기기 변경 시 비밀번호 입력만으로 복원되며, 이미 충분히 안전합니다.

자주 묻는 질문

위챗에서 백업/가져오기 파일을 열면 기존 데이터를 덮어쓰나요?

아닙니다. 초기 버전에는 “외부 파일 가져오기가 기존 데이터를 덮어쓰는” 심각한 결함이 있었고 이후 버전에서 수정되었습니다: 기기에 데이터가 있으면 외부에서 백업을 열 때 잠금 해제 후 병합 가져오기(기존 데이터 + 신규, id 기준 중복 제거)가 실행됩니다. 완전히 빈 기기(첫 사용)만 원스텝 가져오기입니다. 반드시 최신 버전으로 업데이트하세요.

백업을 가져왔는데 사진이 안 보이거나 / 안 열려요?

구 버전으로 내보낸 백업이라면: 안의 사진이 아직 원 기기의 키로 암호화되어 있어 대상 기기에서 복호화할 수 없습니다 — 새 버전으로 다시 내보내세요(새 내보내기는 사진을 내보내기 비밀번호로 재암호화하므로, 새 기기에서 비밀번호를 입력하면 볼 수 있습니다).

새 버전 내보내기라면: 입력한 것이 내보내기 비밀번호인지 확인하세요. “오프라인 소금 교환” 형식은 보내는 쪽의 소금을 먼저 가져와야 합니다.

내보내기 공유 후 위챗 화면에 계속 머물러요 / 앱이 꺼져요?

두 가지 과거 문제 모두 수정되었습니다: ① 공유 대상이 이 앱의 태스크 스택에 합쳐져 “위챗 화면에 붙는” 원인이었던 것 — 이제 공유가 독립 태스크로 열려 돌아오면 바로 앱으로 복귀합니다; ② 화웨이 기기의 FileProvider 크래시(R8 난독화 때문)로 내보내기가 꺼지던 것 — org.xmlpull.v1 유지로 수정되었습니다. 그래도 문제가 발생하면 피드백으로 기기 모델과 시스템 버전을 알려주세요.

내보내기 비밀번호에 요구사항이 있나요?

암호화 내보내기는 강력한 비밀번호를 강제합니다: 8자 이상, 문자와 숫자 포함, 숫자만·문자만은 불가 — 약한 비밀번호는 확인할 수 없습니다. 포터블 형식에서는 소금이 파일에 포함되므로 비밀번호가 파일의 유일한 키입니다 — 비밀번호가 강할수록 파일이 안전합니다. “오프라인 소금 교환” 내보내기와 결합하면 비밀번호와 파일이 모두 유출되어도 풀 수 없습니다.

찾는 답이 없나요? 피드백에서 질문해 주세요 — 당신의 질문이 같은 고민의 다음 사람을 돕습니다.
매트릭스 모드: 켜짐 — 다시 입력하거나 ESC로 종료