Herkos

Політика безпеки

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

Як повідомити про вразливість

Будь ласка, не відкривайте публічний issue щодо проблем безпеки.

Повідомте приватно електронною поштою на security@herkos.email.

Корисно вказати: у чому полягає проблема, як її відтворити, на якій платформі й версії ви тестували і чого може досягти зловмисник. Доказ концепції (proof of concept) дуже допомагає.

Ніколи не додавайте до повідомлення свій nsec, приватний ключ чи секрет bunker.

Ми намагаємося підтверджувати отримання повідомлень протягом кількох днів. Оскільки Herkos — невеликий проєкт, будь ласка, дайте нам розумний час на виправлення, перш ніж розголошувати проблему публічно. Ми з радістю згадаємо вас у бюлетені безпеки, якщо ви не захочете інакше.

Що входить у сферу дії

Сам застосунок Herkos: обробка та зберігання ключів, шифрування й розшифрування повідомлень (зокрема перевірки відправника NIP-59 та ізоляція Bcc у local_packages/nostr_mail), блокування застосунку, зв'язок із релеями й мостами, обробка вкладень, а також конвеєр збирання й випуску. Для Herkos Drive — також його пакет протоколу (packages/herkos_drive_protocol) і сторінка, що відкриває його посилання (herkos.app/f/); див. його власний розділ нижче.

Що не входить у сферу дії

Відомі обмеження, сказані прямо

Це компроміси дизайну, а не вразливості. Ми воліємо записати їх, ніж щоб хтось дізнався про них на власному гіркому досвіді:

Herkos Local Relay: що він захищає, а що ні

Herkos Local Relay зберігає на вашому пристрої події ваших застосунків, зокрема приватні (чернетки, приватні списки, конверти, які ви отримуєте). Ось що їх захищає і де проходить межа — для кожної платформи окремо. Про проблеми безпеки релея повідомляйте так само, як про будь-які інші (див. вище).

Уся база даних зашифрована, разом із журналом транзакцій (SQLite3 Multiple Ciphers, AEGIS-256). Ключ — це 32 випадкові байти, створені на пристрої та збережені в захищеному сховищі системи: Keystore в Android, DPAPI у Windows, зв'язка ключів (libsecret) у Linux. Вашого пароля в нього немає, бо релей має запускатися сам. Без ключа релей не запускається і повідомляє про це: він ніколи не відкриває й не створює незашифровану базу і ніколи не видаляє ту, яку не може відкрити.

Якщо… Android Windows Linux
хтось копіює файл бази (резервна копія, синхронізована папка, образ диска) Захищено Захищено Захищено
викрадено вимкнений пристрій або диск Захищено: ключ у Keystore Захищено, якщо не знають пароля вашого облікового запису Windows: DPAPI захищає ним ключ Захищено, якщо не знають пароля вашої зв'язки ключів (майже завжди це пароль вашого сеансу)
інший обліковий запис користувача на тому самому пристрої Захищено Захищено: DPAPI працює окремо для кожного користувача Захищено: у кожного користувача своя зв'язка ключів
інший застосунок чи програма, що працює від імені вашого користувача Захищено: Android ізолює кожен застосунок, а Keystore віддає ключ лише релею Ні: DPAPI шифрує для користувача, а не для застосунку; програма, що працює від вашого імені, може запросити ключ так само, як релей Ні: зв'язка ключів вашого сеансу не відокремлює застосунки один від одного
телефон із root-доступом або інструмент, що виконує код від імені застосунку Ні — —
хтось тримає в руках розблокований пристрій Лише PIN або відбиток пальця релея, якщо ви їх задали Так само Так само
хтось читає пам'ять релея під час його роботи Ні Ні Ні

На комп'ютері межа DPAPI і зв'язки ключів така сама, як у будь-якої програми: вони захищають від інших користувачів і від того, хто забере диск, але не від шкідливої програми, що вже працює від вашого імені. Якщо вас турбує цей випадок, захищає шифрування системного диска (BitLocker, LUKS) і відмова від запуску програм, яким ви не довіряєте. У Linux без зв'язки ключів (без Secret Service) релей не запускається і пояснює чому: він ніколи не зберігає ключ у відкритому вигляді.

Хто входить — на самому пристрої. Релей слухає лише на 127.0.0.1, а до цієї адреси може дістатися будь-який застосунок на пристрої або вебсторінка в браузері. Тому:

Чого він тут не захищає:

Локальна мережа, якщо ви її ввімкнете (типово вона вимкнена):

Чого він тут не захищає: будь-хто в тій самій мережі бачить, що пристрій має відкритий порт і скільки трафіку через нього проходить, хоча й не що саме; а якщо пристрій має публічну адресу (без роутера посередині), цей порт видно з інтернету, хоча він і далі вимагає ключ із вашого списку.

Копії. Зашифрована копія має пароль (scrypt і XChaCha20-Poly1305): без нього її ніхто не відкриє, зокрема й ми. Експорт у JSONL не зашифрований і містить ваші приватні події у відкритому вигляді; застосунок про це попереджає.

Блокування (PIN, а також відбиток пальця або Windows Hello) запитується під час відкриття застосунку, після 30 секунд поза ним і для схвалення спряження. Це бар'єр зручності, як у Mail: воно нічого не шифрує. В Android із заданим PIN-кодом немає знімків екрана й мініатюри серед нещодавніх застосунків, а починаючи з Android 12 вікно жодного іншого застосунку не може опинитися поверх вікна релея, поки ви ним користуєтеся.

Herkos Drive: що він захищає, а що ні

Herkos Drive зберігає ваші файли на серверах Blossom, а список ваших файлів і папок — на релеях Nostr, і те, і те зашифрованим на вашому пристрої. Ось що їх захищає і де пролягають межі. Усі подробиці — у spec-drive.md і в моделі загроз amenazas-drive.md, у packages/herkos_drive_protocol/; що бачить кожен релей і кожен сервер — у політиці конфіденційності. Повідомляйте про проблеми безпеки Drive так само, як про будь-які інші (див. вище).

Чого релеї та сервери зробити не можуть:

Чого він не захищає:

Як це перевіряється. Дві внутрішні перевірки за моделлю загроз (2 листопада 2026 року) і виправлення за їхніми підсумками; тести того, що показує кожна подія й кожен блок; фазинг кожного обробника того, що надходить ззовні (події, печатки, маніфести, посилання, резервні копії). Зовнішнього аудиту поки немає: його заплановано до публічної бети, і його звіт буде опубліковано повністю. Drive ще перебуває в розробці.

Підтримувані версії

Виправлення безпеки застосовуються до останньої випущеної версії. З огляду на розмір проєкту старіші версії не підтримуються — будь ласка, оновіться, перш ніж повідомляти.