Skip to content

Security: snaart/phantom_core

SECURITY.md

Политика Безопасности Phantom

Введение

Безопасность является фундаментальным аспектом проекта Phantom. Наша главная цель — обеспечить конфиденциальность, целостность и аутентичность коммуникаций пользователей. Мы серьезно относимся к безопасности нашего кода и ценим вклад независимых исследователей безопасности.

Эта политика описывает процесс ответственного раскрытия информации об уязвимостях (Responsible Disclosure), а также предоставляет обзор архитектуры безопасности проекта.

Поддерживаемые Версии

Мы предоставляем обновления безопасности только для последней стабильной версии, выпущенной в main ветке. Мы настоятельно рекомендуем всем пользователям использовать самую последнюю версию Phantom.

Версия Поддержка безопасности
Последний main commit ✅ Да
Все предыдущие версии ❌ Нет

Как сообщить об уязвимости

Мы призываем всех, кто обнаружил потенциальную уязвимость в безопасности Phantom, немедленно и ответственно сообщить нам об этом.

Пожалуйста, НЕ создавайте публичные GitHub Issues для сообщения об уязвимостях.

Вместо этого, пожалуйста, отправьте нам электронное письмо на адрес security@snaart.com.

Что включить в ваше сообщение:

Чтобы помочь нам быстрее понять и устранить проблему, пожалуйста, включите в ваше сообщение следующую информацию:

  1. Тип уязвимости: Например, "Удаленное выполнение кода (RCE)", "Межсайтовый скриптинг (XSS)", "Обход аутентификации", "Слабость в криптографическом протоколе" и т.д.
  2. Подробное описание: Четкое описание уязвимости, включая шаги для ее воспроизведения (Proof-of-Concept).
  3. Затронутые компоненты: Укажите, какая часть проекта затронута (например, phantomcore, cmd/daemon, P2P-протокол).
  4. Потенциальное воздействие: Ваша оценка того, как эта уязвимость может быть использована злоумышленником.
  5. Конфигурация: Любая информация о среде, в которой была обнаружена уязвимость (ОС, версия Go, зависимости).

Наш процесс обработки

  1. Подтверждение: Мы стремимся подтвердить получение вашего отчета в течение 48 часов.
  2. Анализ: Наша команда проанализирует уязвимость, определит ее серьезность (используя CVSS) и разработает план по ее устранению. Мы можем связаться с вами для получения дополнительной информации.
  3. Исправление: Мы разработаем патч для устранения уязвимости.
  4. Раскрытие: После того как исправление будет готово и протестировано, мы выпустим новую версию. Мы скоординируем с вами дату публичного раскрытия информации об уязвимости. Мы будем рады упомянуть вас в списке благодарностей (security acknowledgments), если вы этого хотите.

Мы просим вас соблюдать эмбарго и не разглашать информацию об уязвимости до нашего совместного публичного объявления.

Обзор Архитектуры Безопасности

Phantom построен на нескольких ключевых принципах безопасности:

1. Криптография

  • Протокол: Мы используем протокол Double Ratchet, вдохновленный Signal Protocol, для обеспечения совершенной прямой секретности (Perfect Forward Secrecy) и пост-разрывной секретности (Post-Compromise Security).
  • Гибридная криптография: Мы сочетаем классическую криптографию на эллиптических кривых (X25519) с постквантовыми алгоритмами (Kyber-1024 для KEM и Dilithium5 для подписей), чтобы обеспечить защиту от атак как со стороны классических, так и квантовых компьютеров.
  • Аутентификация: Все сообщения аутентифицируются с помощью AEAD (AES-GCM), что предотвращает их подделку.

2. Хранение Ключей (KeyStore)

  • Шифрование на диске: Все приватные ключи и конфиденциальные данные шифруются на диске с использованием ChaCha20-Poly1305.
  • Вывод ключа: Ключ для шифрования базы данных генерируется из PIN-кода пользователя с помощью Argon2id, что обеспечивает защиту от брутфорс-атак.
  • Защита от Timing Attacks: При проверке PIN-кода используется функция subtle.ConstantTimeCompare для предотвращения атак по времени.
  • Очистка памяти (Zeroize): Все приватные ключи удаляются из оперативной памяти, как только они больше не нужны, чтобы минимизировать их время жизни.

3. P2P Сеть

  • Идентификация узлов: Каждый узел в сети идентифицируется по криптографическому ключу.
  • Защита от Replay-атак: Протокол включает в себя временные метки и одноразовые номера (nonce) для предотвращения повторной отправки перехваченных сообщений.

Вне области действия (Out of Scope)

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

  • Уязвимости, связанные с физическим доступом к разблокированному устройству.
  • Атаки типа "отказ в обслуживании" (DoS), не приводящие к компрометации данных.
  • Социальная инженерия и фишинг.
  • Уязвимости в сторонних зависимостях (пожалуйста, сообщайте о них напрямую разработчикам соответствующих библиотек, но мы будем благодарны, если вы уведомите и нас).

Спасибо за ваш вклад в безопасность Phantom!

There aren’t any published security advisories