// FAQ

Частые вопросы

Шифрование, коды восстановления, резервные копии, перенос — ответы на волнующие вопросы здесь.

Шифрование и безопасность данных

Мои данные действительно зашифрованы? Нет аккаунта — где ключи?

Да, действительно. CosmosBox построен на нулевом аккаунте: данные по умолчанию живут только на вашем устройстве, обрабатываются сильнейшими признанными алгоритмами — ваш пароль проходит через Argon2id (128 МБ памяти; перебор на GPU практически невозможен) для вывода мастер-ключа, а каждый файл затем шифруется собственным независимым случайным ключом AES-256-GCM. Ключ (мастер-ключ) существует лишь в памяти во время разблокировки и стирается при блокировке; ключи данных хранит аппаратный чип безопасности системы (Android Keystore / iOS Keychain).

Нет аккаунта — значит, нет звена «сервер хранит ваш пароль» — поверхность утечки пароля равна нулю. Обратная сторона: если вы забудете пароль, вернуть данные сможет только код восстановления.

Что делать, если я забыл пароль безопасности?

Для этого существует «восстановление пароля» (система кода восстановления). После включения приложение генерирует код восстановления (делится на 5 частей; любые 3 восстанавливают доступ): 1-2 части храните сами, остальные отдайте доверенным людям. При забытом пароле ввод кода сбрасывает его и восстанавливает все данные — без какого-либо участия сервера.

Если вы забыли пароль, никогда не включали восстановление и не имеете резервной копии — данные восстановить невозможно. Это физическая граница шифрования без аккаунтов, поэтому настоятельно рекомендуем: включите восстановление пароля сразу после его установки.

Почему код восстановления «математически не взламываем»?

Код восстановления = 32-байтовое истинно случайное число (32 × 8 = 256 бит энтропии), генерируется безопасным случайным источником системы (Random.secure()) — каждый бит есть результат независимого подбрасывания монеты. Взломать его значит найти правильный среди 2²⁵⁶ вариантов.

Насколько велико 2²⁵⁶? Несколько наглядных сравнений:

  • 2²⁵⁶ ≈ 1,16 × 10⁷⁷, тогда как в наблюдаемой Вселенной около 10⁸⁰ атомов — пространство перебора того же порядка, что число атомов во Вселенной.
  • Предположим, вы превратили каждый атом Вселенной в компьютер, делающий 10¹² попыток в секунду с Большого взрыва (13,8 млрд лет) до наших дней, — вы покрыли бы лишь 10⁻²⁶ пространства.
  • Ещё нагляднее: минимальная энергия для полного перебора 256-битного ключа превышает суммарную энергию, которую Солнце выделяет за всю свою жизнь (принцип Ландауэра: каждый переворот бита стоит минимум 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 — это уже ключ с полной энтропией.

Честная граница: «математически не взламываем» защищает только сам ключ. Что на самом деле побеждает код восстановления — никогда не перебор, а человеческое звено: сфотографированная бумажка, заметка на рутованном устройстве, отправленный себе скриншот в облако. Ключ, каким бы сильным он ни был, ничего не стоит после утечки. Железные правила: запишите на бумаге и спрячьте под замок / храните в менеджере паролей (тоже с сильным мастер-паролем) — никаких фото, никакого облака, никому не отправлять. Доли друзей — это фрагменты схемы Шамира; одна часть бесполезна, поэтому раздавать её безопасно.

Уровни шифрования

Открытый текст / шифрование / портативный / соль отдельно — в чём разница?

Уровни шифрования хранения (зашифрованная камера, зашифрованные заметки и подобные инструменты), от слабого к сильному:

Уровень Файл Безопасность Новое устройство
Открытый текст без шифрования кто получил — тот прочитал просто скопировать
Портативный зашифрован, соль в файле требуется пароль ввести пароль
Соль отдельно (шифрование) зашифрован, соль на устройстве требуется пароль + соль устройства требуется код восстановления
Обмен солью (самый сильный экспорт) зашифрован, соль обменивается офлайн пароль + соль, два фактора требуется соль второй стороны

Простое правило: открытый текст → портативный → соль отдельно, безопасность растёт, и хлопоты тоже. По умолчанию «следовать глобальному» подходит почти для всего; чем чувствительнее файл, тем выше выбираемый уровень.

Как перенести данные при смене телефона?

Стандартный процесс: резервная копия на старом телефоне (локальная или облако WebDAV) → восстановление на новом → ввод пароля резервной копии.

Восстановление старых ключей на новом устройстве: резервная копия автоматически несёт конфигурацию восстановления — после восстановления введите код восстановления, мастер-ключ старого устройства восстанавливается, и все зашифрованные данные сразу читаемы.

Передача одного файла: такие инструменты, как карточки персонажей, поддерживают экспорт — портативный формат требует лишь пароль экспорта на новом устройстве; формат «офлайн-обмен солью» требует сначала обменяться солью (безопаснее, для чувствительных файлов).

Резервное копирование

Данные уже зашифрованы — зачем резервной копии собственный пароль?

Потому что резервная копия — не просто копия шифротекста. Копия должна позволить вам восстановить всё на новом устройстве, поэтому пакет содержит не только шифротекст, но и открытые структурные данные (некоторые данные инструментов) и ключевой материал (соль, контрольные суммы, конфигурацию восстановления) — всё это нужно снова заблокировать целиком собственным паролем резервной копии. Шифрование на устройстве защищает от «утечек файлов»; пароль резервной копии — от «утечек файлов копии»; два независимых слоя. Забыли пароль копии? Потребуется код восстановления, чтобы восстановить мастер-ключ и сделать копию заново.

Что такое WebDAV-резервирование? Безопасно ли оно?

Зашифрованные копии автоматически загружаются в ваше собственное облако / приватное облако (Jianguoyun, NextCloud, Synology или любой WebDAV-сервер) — без посредников. Файлы копий зашифрованы (.encbak), пароль живёт в Keystore, передача идёт по HTTPS. Ежедневные/еженедельные автоматические копии выполняются при запуске — даже потерянное устройство восстанавливается из облака.

Что делать, если соль копии с раздельной солью потеряна / утекла?

Соль потеряна: копия с раздельной солью (файл не несёт соли) больше не может быть расшифрована — даже вами. Поэтому при включении приложение неоднократно напоминает: экспортируйте соль резервной копии и храните офлайн (флешка / распечатка / менеджер паролей).

Соль утекла: все копии с раздельной солью, созданные до утечки, скомпрометированы (необратимо — рассмотрите удаление старых копий из облака); после перегенерации соли новые копии автоматически используют новую соль и снова безопасны. Старые копии остаются восстанавливаемыми, пока старая соль лежит в библиотеке солей.

Если не хотите нести бремя хранения соли, подойдёт «портативная» копия по умолчанию — она несёт соль, восстанавливается на новом устройстве одним паролем и уже очень безопасна.

Частые вопросы

Открытие файла копии/импорта из WeChat — перезапишет ли он мои данные?

Нет. В ранней версии был серьёзный дефект: импорт внешних файлов перезаписывал существующие данные; исправлено в последующих версиях: когда на устройстве уже есть данные, внешнее открытие копии проходит через импорт слиянием после разблокировки (существующие + новые, дедупликация по id); только полностью пустое устройство (первое использование) делает импорт в один шаг. Пожалуйста, используйте последнюю версию.

После импорта копии фото пропали / не открываются?

Если это копия, экспортированная старой версией: фото внутри всё ещё зашифрованы ключами исходного устройства, которые целевое устройство расшифровать не может — вместо этого переэкспортируйте новой версией (новые экспорты перешифровывают фото паролем экспорта; на новом устройстве достаточно ввести пароль).

Если это новый экспорт: убедитесь, что введён пароль экспорта; формат «офлайн-обмен солью» дополнительно требует сначала импортировать соль отправителя.

После публикации экспорта остаётся на экране WeChat / приложение падает?

Обе исторические проблемы исправлены: ① цель публикации раньше вливалась в стек задач этого приложения, вызывая «застревание на экране WeChat» — теперь публикация открывается в отдельной задаче, и возврат ведёт прямо в приложение; ② падения FileProvider на устройствах Huawei (из-за обфускации R8) роняли экспорт — исправлено сохранением org.xmlpull.v1. Если проблема остаётся, сообщите модель устройства и версию системы через обратную связь.

Есть ли требования к паролю экспорта?

Зашифрованные экспорты требуют сильный пароль: не менее 8 символов, буквы и цифры, не только цифровой и не только буквенный — слабые пароли не подтверждаются. Поскольку в портативном формате соль едет с файлом, пароль — единственный ключ к файлу — чем сильнее пароль, тем безопаснее файл; в сочетании с экспортом «офлайн-обмен солью» даже утёкшие пароль + файл ничего не откроют.

Не нашли свой вопрос? Загляните в обратную связь и спросите — ваш вопрос поможет следующему человеку с тем же недоумением.
МАТРИЦА: ВКЛ — повторите ввод или ESC для выхода