Новости · Безопасность в Blackbear

Что мы не можем прочитать

15 августа 2026 г. Xavi Group Часть 1 из 3
Иллюстрация: чёрный медведь за деревянным столом ставит сургучную печать на конверт, рядом стопка уже запечатанных конвертов

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

Когда вы включаете облачную синхронизацию, наши серверы начинают переносить ваши данные между вашими устройствами и вашими людьми. Эта серия объясняет, что это значит для вашей приватности. Часть 1 посвящена шифрованию: что покидает ваше устройство и почему мы не можем это прочитать. Часть 2 — честный перечень метаданных, которые наши серверы всё-таки хранят. Часть 3 — о совместном доступе и совместной работе.

Всё, что ниже, описывает уже выпущенный код, а не намерения. Если мы называем алгоритм или число, именно они сегодня работают в продакшене.

Шифрование происходит на вашем устройстве

Каждое синхронизируемое изменение шифруется до того, как попадёт в сеть. Заметки, документы, задачи, события, записи дневника, таблицы, холсты, аудио, история версий. Каждое запечатывается алгоритмом XChaCha20-Poly1305 — шифром с аутентификацией — ключом, который никогда не покидает ваше устройство незащищённым. Наши серверы получают шифртекст и хранят шифртекст.

С изображениями и аудиофайлами то же самое: они шифруются на вашем устройстве и загружаются непрозрачными блобами.

Всё это делает единая реализация на Rust, построенная на экосистеме RustCrypto и скомпилированная в WebAssembly. Приложение и Blackbear CLI используют её байт в байт, а мы проверяем её на общих для разных языков тестовых данных, чтобы никакая вторая реализация не разошлась с ней незаметно.

От чего это защищает, а от чего нет

Шифрование — конкретный инструмент, а не силовое поле. Прежде чем переходить к подробностям, обозначим границы.

Эта схема защищает вас от:

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

Она не защищает вас от:

  • Взломанного, украденного или разблокированного устройства. На устройстве хранятся ваши ключи; его безопасность — фундамент, на котором стоит всё остальное.
  • Того, у кого есть ваша парольная фраза или двенадцать слов для восстановления.
  • Того, что делают с полученным те, с кем вы им поделились. Совместный доступ — это доверие к людям, а не только математика.
  • Метаданных трафика: кто, когда, сколько. Этому целиком посвящена часть 2.
  • Самого приложения. В браузере приложение загружается с наших серверов при каждом открытии, на компьютере — через подписанные выпуски. Ни одна схема шифрования не устоит перед вредоносным приложением, кто бы его ни выпустил.
  • Тех моментов, когда вы сами решаете отправить данные в открытом виде: просите Pax воспользоваться облачной моделью, подключаете внешний календарь, экспортируете файлы, отправляете приглашение по почте. Такие данные намеренно уходят тому, кого вы выбрали, и подчиняются его правилам, а не нашему шифрованию.

Иерархия ключей

Ваша парольная фраза никогда не покидает устройство. Из неё вырастает всё остальное:

Ваша парольная фраза
12 слов для восстановления
↓ Argon2id
↓ HKDF
Ключ аккаунта
Ключ восстановления
каждый защищает ↓
Ключ хранилища · случайный, 256 бит, никогда не покидает устройство без защиты
↓ шифрует
заметки · документы · задачи · события · таблицы · медиа · история

Сервер хранит только защищённые копии: шифртекст, защищающий шифртекст.

Зачем такие сложности? Так можно сменить парольную фразу, не перешифровывая всю свою жизнь, а восстановление становится возможным, не ослабляя парадную дверь.

Предупреждение, которое стоит написать прямо: Argon2id делает подбор дорогим, но не может сделать слабую парольную фразу сильной. Защищённый ключ хранилища ровно настолько надёжен, насколько надёжна фраза, которая его защищает. Выбирайте длинную.

Восстановление — это двенадцать слов

Когда вы настраиваете синхронизацию, Blackbear даёт вам фразу для восстановления: двенадцать слов (BIP39), кодирующих 128 бит энтропии. Из них выводится независимый ключ, который ещё раз защищает ваш ключ хранилища.

Забыли парольную фразу? Двенадцать слов вернут вам доступ. Потеряли и то и другое? Синхронизированные данные потеряны. Мы не можем их сбросить, и никакое обращение в поддержку нас не уговорит, потому что сбрасывать на нашей стороне нечего. Это не пробел в поддержке. Это схема делает свою работу.

Новое устройство

На новом устройстве вы вводите парольную фразу. Из неё локально выводится ключ аккаунта, который снимает защиту с копии ключа хранилища, лежащей на нашем сервере. Сервер не видит ни парольную фразу, ни результат.

Уже разблокированное устройство также может передать ключ напрямую. Оно запечатывает ключ хранилища для открытого ключа X25519 нового устройства и кладёт его в ячейку передачи, которая самоуничтожается через пять минут, воспользовались ею или нет. Одна честная оговорка: ваше старое устройство узнаёт открытый ключ нового через ваш аккаунт, поэтому в этом способе вы доверяете нашему серверу передать правильный ключ для выбранного вами устройства. Вход по парольной фразе такого доверия не требует.

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

Сообщения

Для сообщений используются отдельные ключи, не связанные с синхронизацией. У каждого аккаунта есть идентификатор для сообщений на X25519, а для каждого сообщения выводится уникальный ключ из свежей соли с помощью HKDF-SHA256. Сообщения путешествуют в запечатанных конвертах. Сервер их пересылает, но открыть не может. О том, что раскрывает внешняя сторона конверта, рассказывает часть 2.

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

История без отпечатков содержимого

История версий синхронизируется в виде зашифрованных снимков с ID, привязанными к вашему хранилищу. Если вы и какой-нибудь незнакомец сохраните одинаковый файл, сервер увидит два несвязанных ID: одинаковое содержимое нельзя сопоставить между аккаунтами. Размер и время, как и для всего трафика синхронизации, остаются видны. Это метаданные, и им посвящена часть 2.

Доказать, ничего не раскрывая

Для необратимых операций с аккаунтом нужно доказательство владения хранилищем: подпись ключом Ed25519, выведенным из ключа хранилища. Вы доказываете, что хранилище у вас, а само хранилище никуда не передаётся. А когда ключи сделали своё дело в памяти, они зануляются.

Ничего экзотического тут нет. XChaCha20-Poly1305, Argon2id, X25519, Ed25519, HKDF-SHA256 — стандартные, скучные, тщательно проверенные примитивы. Интересно другое: дисциплина, с которой они применяются везде, и готовность вслух сказать, чего они не покрывают. Именно об этой дисциплине и рассказывает остальная часть серии.

Что почитать

Безопасность в Blackbear

  1. 1. Что мы не можем прочитать (вы здесь)
  2. 2. Что видят наши серверы
  3. 3. Как совместный доступ остаётся запечатанным

Попробуйте Blackbear

Бесплатно. Банковская карта не нужна.

Открыть Blackbear