Перейти к содержимому

Позиция по безопасности

Что мы обещаем и что это значит для тебя.

Твои ключи никогда не покидают твоё устройство.

Ключи генерируются в твоём браузере с помощью libsodium. Шифруются паролем, который ты выбираешь (Argon2id + XSalsa20-Poly1305), перед сохранением. Никакой сервер Morphit их никогда не видит.

Никакого отслеживания.

Никаких куки. Никакой аналитики. Никаких сторонних скриптов. Никакой телеметрии. Ваш IP-адрес доходит до сервера, которым вы пользуетесь, как у любого сайта; код Morphit держит его только в памяти для ограничения частоты запросов и никогда не пишет его на диск или в журнал. Откройте вкладку «Сеть» в браузере.

Узел может работать полностью без clearnet.

Оператор может запустить узел Morphit, который вообще не касается обычного интернета (clearnet). Чтение блокчейна и обновления идут через Tor и I2P; проверки комиссий в BTC/XMR и цены берутся из onion-сервисов (обозреватели блоков, ценовые серверы Haveno и Bisq) и от других узлов Morphit; обновление устанавливается, только если совпадает с хешем, подписанным @morphit в блокчейне. Даже сама система сервера не выходит в clearnet: обновления пакетов идут через Tor, а часы сверяются с onion-сервисами. Программа отказывается от clearnet, а файрвол выпускает наружу только Tor и I2P; если Tor заблокирован, узел сам переходит на мосты. Узел заявляет о нуле clearnet, только когда проходят его собственные проверки, а другие узлы показывают это как собственное заявление этого инстанса: проверить его они не могут. (Тот, кто наблюдает за линией сервера, всё же может увидеть, что на нём работает I2P.)

Чат шифруется end-to-end.

Каждое сообщение шифруется в вашем браузере ещё до отправки (обмен ключами на эллиптических кривых на основе ваших posting-ключей Blurt и ChaCha20-Poly1305) новым одноразовым ключом, объединённым с ключами вас обоих: прочитать его можете только вы и ваш собеседник, и собеседник знает, что оно действительно от вас. Ни у одного сервера нет ключа, который его откроет. Ключ собеседника закрепляется: если он когда-нибудь изменится, Vigilante Trading остановится и сначала спросит вас, а 60-значный код безопасности позволяет сверить друг друга вне Vigilante Trading. Публичным остаётся конверт: сообщения хранятся в блокчейне Blurt, поэтому видно, кто кому, когда и по какому ордеру пишет и какой длины каждое сообщение, а прямой секретности (forward secrecy) нет. Полное описание — в docs/adr/0015-chat-crypto.md.

Подписанные релизы с отпечатками.

Каждый релиз собирается из подписанного GPG git-тега в main, и @morphit закрепляет его в блокчейне Blurt: SHA-256 архива исходников и офлайн-пакета, а также хеши файлов, которые запускают сайт (оболочка страницы, service worker, входной код). Ваш браузер читает эту подписанную запись напрямую с публичного узла Blurt, а не с этого сайта, сверяет с ней файлы, которые отдал этот сайт, и называет отличающиеся в красном предупреждении; узел устанавливает обновление, только если оно совпадает. Это ловит файл, изменённый случайно или частично скомпрометированным сервером; от враждебного оператора, который отдаёт и сам проверяющий код, это не защитит. У скриптов нет Subresource Integrity, а сборки пока не воспроизводимы побайтно, поэтому скачанный файл проверяют по хешу и подписи (docs/VERIFY-YOUR-DOWNLOAD.md), а не пересборкой.

Open-source, открытая модель угроз.

Полная модель угроз в docs/SECURITY.md репозитория. Мы явно говорим о том, от чего защищаем и от чего нет — притворяться было бы хуже честности.

Программа баг-баунти

Мы работаем по дискреционной программе признания безопасности. Каждая действенная находка проверяется реальным инженером, получает ответ и — если она существенно улучшает безопасность Morphit — вознаграждается в BLURT (выплачивается с @morphit-fees) или BTC, масштабируясь в зависимости от серьёзности и качества отчёта. Нет фиксированной таблицы уровней; рассмотрение в индивидуальном порядке. Доступно упоминание в зале славы даже без выплаты. Полный объём, руководство по серьёзности, поток оплаты и то, чего мы не будем делать (без NDA, без эксклюзивного раскрытия) задокументированы в docs/SECURITY.md.

Прочитать полный объём и правила

Канарейка ордера

Мы публикуем еженедельную канарейку, подписанную PGP-ключом оператора. Канарейка явно декларирует, что не было получено никаких требований NSL / FISA / приказов о неразглашении / требований бэкдора. Доказательства свежести включают актуальный заголовок цепи Blurt, актуальный заголовок цепи Bitcoin и актуальный заголовок новостей (доказывает, что канарейка не может быть сгенерирована заранее). Если канарейка перестала обновляться более 14 дней, считайте её молчащей: оператор может находиться под принуждением, и вам следует переключиться на другого федеративного оператора.

Посмотреть текущую канарейку этого оператора · PGP-ключи оператора

Нашли проблему безопасности? Отправьте её только личным сообщением в Matrix на @agorise:matrix.org. Никогда не публикуйте подробности: ни в issue на Forgejo (там они публичны), ни в чат-комнате, ни в блокчейне (сообщение для morphit остаётся там публичным навсегда).