Перейти до вмісту

Шифрування сховища

Усі листи, контакти й нотатки лежать у локальній базі даних на твоєму комп’ютері. Шифрування сховища робить так, що без ключа цей файл не можна прочитати: хто вийме диск чи скопіює файл, той тримає в руках лише беззмістовні дані.

Типово воно увімкнене. Рішення про це приймається один раз, у майстрі налаштування, і пізніше його вже не змінити. У Linux для цього потрібна зв’язка ключів, як-от GNOME Keyring або KWallet. Якщо її немає, база даних залишається незашифрованою, а сторінка налаштувань повідомляє Шифрування недоступне в цій системі.

Базу даних шифрують випадково згенерованим 64-символьним ключем (SQLCipher, AES-256). Цей ключ YouniqMail зберігає запечатаним у своєму файлі налаштувань config.json. Печатку тримає операційна система: Keychain у macOS, інтерфейс захисту даних Windows (прив’язаний до твого облікового запису користувача), зв’язка ключів стільничного середовища в Linux.

У повсякденній роботі ти цього не помічаєш: під час запуску YouniqMail розпечатує ключ за допомогою твого входу в систему. Жодного додаткового пароля, жодного зайвого кроку.

Та сама печатка захищає також паролі твоїх поштових облікових записів і входи в підключені сервіси, тобто токени, паролі CalDAV та адреси Webhook. Вони запечатані окремо, навіть коли шифрування сховища вимкнено. Лише в Linux без зв’язки ключів вони лишаються незашифрованими.

У цьому ланцюжку є два слабкі місця: зв’язка ключів і файл config.json. Якщо операційну систему перевстановити, обліковий запис користувача скинути або config.json видалити, запечатаний ключ уже не відкрити, а з ним зникає й доступ до бази даних.

Саме для цього існує ключ відновлення: ті самі 64 символи, які одного разу показують під час налаштування, щоб ти їх зберіг. Якщо під час запуску ключа немає, YouniqMail показує діалог Відсутній ключ бази даних. Через Ввести ключ… ти знову відкриваєш базу даних ключем відновлення, нічого не завантажуючи заново.

Не зберіг? Поки застосунок працює нормально, нічого не втрачено: у Налаштування → Безпека → Шифрування сховища кнопка Показати ключ відновлення будь-коли покаже його ще раз, а Зберегти як PDF збереже його. На Mac із Touch ID ти підтверджуєш це відбитком пальця, на інших комп’ютерах ключ з’являється без додаткового запиту. Тож блокуй комп’ютер, коли відходиш від нього.

Відкрити локальні папки без застосунку

Section titled “Відкрити локальні папки без застосунку”

Листи в локальних папках існують лише на твоєму пристрої, по одному файлу на лист у папці local_mail твого профілю. Вони захищені так само, як і база даних:

  • Шифрування сховища вимкнене: це звичайні файли .eml, які будь-яка поштова програма відкриває подвійним клацанням.
  • Шифрування сховища увімкнене: файли мають розширення .ymraw і зашифровані ключем бази даних. Без нього їх так само не прочитати, як і саму базу даних.

У повсякденній роботі ці файли тобі напряму ніколи не потрібні. Через Файл → Експорт ти зберігаєш локальні папки як mbox або як окремі файли .eml, а повна резервна копія бере їх із собою.

Якщо YouniqMail більше не запускається, листи повернуть ключ відновлення та невелика аварійна програма:

  1. Встанови Node.js версії 18 або новішої.

  2. Завантаж аварійну програму: youniqmail-local-mail-decrypt.mjs.

  3. Відкрий термінал (у Windows це Командний рядок) і запусти програму з папкою local_mail та цільовою папкою:

    node youniqmail-local-mail-decrypt.mjs <папка local_mail> <цільова папка>
  4. Введи ключ відновлення, коли програма його запитає. Те, що ти вводиш, залишається невидимим.

Після цього кожен лист лежить у цільовій папці як файл .eml, названий за датою й темою. Про пошкоджений файл програма повідомляє і пропускає його, а під час повторного запуску нічого не перезаписує. Їй не потрібне з’єднання з інтернетом, і вона нікуди нічого не надсилає. Будову файлів описано звичайним текстом на самому початку програми.

Папка local_mail лежить у твоєму профілі:

Операційна система:
~/Library/Application Support/YouniqMail/local_mail/
%APPDATA%\YouniqMail\local_mail\
~/.config/YouniqMail/local_mail/

Якщо хочеш скинути локальні дані, врятуй локальні папки заздалегідь аварійною програмою: після скидання YouniqMail через три дні прибирає непотрібні вже файли в local_mail.

Що лежить поза базою даних

Section titled “Що лежить поза базою даних”

Деякі файли YouniqMail зберігає поруч із базою даних, і вони не зашифровані:

  • Кешовані вкладення, які ти відкривав або переглядав (тека attachment_cache, щонайбільше 500 МБ),
  • вкладення чернеток і листів у Вихідних (теки draft_attachments і outbox_attachments),
  • листи, які саме надсилаються, доки їхня копія не потрапить до папки надісланих (тека sent_pending),
  • журнал (тека logs), з якого відфільтровуються адреси та вміст,
  • налаштування в config.json, серед них підказка до майстер-пароля.

Усі вони лежать у тій самій теці профілю, що й local_mail. Хто хоче захистити комп’ютер від стороннього доступу до диска, вмикає ще й системне шифрування диска (FileVault, BitLocker, LUKS).

Що воно захищає, а що ні

Section titled “Що воно захищає, а що ні”

Шифрування сховища захищає файл на диску: від крадіжки комп’ютера, від копіювання бази даних, від чужих поглядів на резервний диск.

Воно не захищає від того, хто сидить за твоїм розблокованим комп’ютером, там база даних читається саме так, як і задумано. Для цього є майстер-пароль. І воно не шифрує передавання іншій стороні, це роблять PGP та S/MIME.