Проверьте сами

Не доверяйте никому. Проверьте сами.

Solo2 — это веб-приложение. Это означает, что твой браузер уже содержит все инструменты, необходимые для аудита того, что мы делаем. Нажми F12, открой DevTools и проверь сам каждое утверждение из нашего Манифеста. Здесь мы расскажем, как именно.

Проверьте за 2 минуты

Нажми F12 в браузере. Без установки чего-либо. Без навыков программирования.

Утверждение Как проверить Вкладка
Никаких cookie никакого вида Application → Cookies → пусто. Solo2 не устанавливает никаких cookie. Сессия поддерживается в localStorage, а не в cookie. Без _ga Application
Нет сторонних сервисов в приложении Network → фильтр по домену → только запросы к solo2.net Network
Аналитика только на лендинге, не в приложении Network → в /* Network
Твоя история хранится в браузере Application → IndexedDB → solo2-vault-{userId}. Все твои сообщения и файлы там. У сервера ничего нет. Application
Список контактов только локально Application → IndexedDB → store pares. Твои контакты существуют только в твоём браузере. Application
Без внешних CDN Network → все JS/CSS загружаются с того же домена. Нет cdn.jsdelivr.net Network
Сессии максимум 24 часа Application → localStorage → solo2_session. Check the expiry timestamp. It's never more than 24h from creation. Application
Ты видишь тип используемого соединения В списке контактов: рядом с каждым контактом, P2P (зелёный) или Зеркало (оранжевый) UI
Umami без cookie Application → Cookies → отсутствуют cookie от stats.menzuri.com Application
Твой мастер-ключ генерируется случайным образом Application → при регистрации Solo2 генерирует 24 уникальных слова. Они не выводятся из твоего пароля — это независимый ключ с 256 битами реальной энтропии Application

Если ты умеешь работать с DevTools

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

Утверждение Как проверить
Сообщения зашифрованы E2E Network → запросы к /cmd
Сигналы WebRTC зашифрованы E2E Network → signal-сообщения передаются как зашифрованные бинарные блобы. Это не читаемый JSON с offer
Мастер-ключ независим от пароля Network → при входе клиент получает зашифрованный wrapped_master_key
Равномерное дополнение в зеркальном сервере Network → пакеты WebSocket/DataChannel имеют фиксированный размер при использовании зеркала (TURN). Проверьте размеры во вкладке Network
Пароль защищён (не передаётся в открытом виде) Network → при входе отправляется хеш, а не открытый текст. Ты не можешь проверить, какой алгоритм использует сервер (Argon2id), но можешь убедиться, что твой оригинальный пароль никогда не покидает браузер
Запросы на привязку истекают через 3 дня Создайте запрос, не отвечайте на него, проверьте через 3 дня, что он исчез. Требуются терпение и два аккаунта
Push-уведомления зашифрованы Network → push-запросы к Service Worker приходят зашифрованными (стандарт Web Push). Зашифрованный payload виден во вкладке Network
Прямое P2P-соединение vs зеркало (TURN) chrome://webrtc-internals/ → shows ICE candidates and the active connection type. If both peers are on the same network, you should see host candidates (direct, no relay).

Это проверить невозможно

Было бы лицемерием утверждать, что всё можно проверить. Эти утверждения требуют доверия к нам — или ожидания публикации исходного кода.

Утверждение Почему это нельзя проверить
Double Ratchet с ротацией ключей Криптографические операции выполняются внутри бинарного файла WASM. Пользователь видит, что он загружается, но не может прочитать, какой алгоритм используется
Мастер-ключ генерируется с реальной энтропией (256 бит) Генерация использует crypto.getRandomValues в браузере. Ты можешь увидеть, что генерируются 24 слова, но невозможно проверить через F12 качество энтропии или безопасность CSPRNG
X25519 + Ed25519 + ChaCha20-Poly1305 Та же проблема: криптографический стек находится внутри WASM. Невозможно подтвердить кривые или алгоритмы из браузера
Сервер не может прочитать содержимое твоих сообщений Ты можешь убедиться, что клиент не отправляет читаемые данные. Что сервер делает с метаданными соединения (IP, временные метки) — требует доверия или аудита сервера
Сервер не хранит связи после привязки Требуется доступ к исходному коду и базе данных сервера
IP-адреса не регистрируются Невозможно проверить, что именно сервер записывает в свои журналы
Ключи меняются с каждым сообщением Происходит внутри WASM. Ты видишь, что сообщения отправляются, но не можешь наблюдать ротацию ключей
Удалённые данные действительно исчезают Ты можешь удалить данные из локальной IndexedDB, но не можешь проверить, что сервер не хранит копии (хотя Манифест утверждает, что они никогда не поступали)

Почему WASM является реальным барьером

Криптографический слой Solo2 скомпилирован в WebAssembly — бинарный формат, который твой браузер выполняет, но который невозможно прочитать как текст. Это значит, что ты не можешь проверить через F12, какой алгоритм мы используем.

Минифицированный JavaScript (который мы используем для интерфейса) обратим: браузер может его переформатировать, и структура кода читаема. Это практическое препятствие, а не реальный барьер. Но WASM, скомпилированный из Zig, принципиально отличается

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

Что мы делаем, чтобы ты мог доверять больше

1

Публикация хешей SHA-256 файлов .wasm

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

2

Открыть криптографический слой как open source

Опубликовать исходный код криптографического слоя (Zig) как публичный репозиторий. Та же модель, что у Signal: открытый криптографический протокол, остальной код закрыт. Любой сможет скомпилировать исходный код и сравнить хеш результирующего .wasm с тем, что используется в продакшене.

3

Безопасность не зависит от скрытности

Наша модель безопасности спроектирована так, чтобы работать, даже если исходный код станет публичным. Если бы безопасность зависела от того, что никто не может прочитать код, это была бы не безопасность, а надежда.

4

5 задокументированных уровней безопасности

Пароль (доступ к серверу), 24 слова (настоящий мастер-ключ), секрет устройства (защита локальных данных) и ротация Double Ratchet. Каждый уровень независим и проверяем в нашем Манифесте прозрачности.

Solo2 — Твой разговор принадлежит только тебе.