Проверьте за 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. Ты можешь поверить нам на слово, или подождать, пока мы опубликуем исходный код криптографического слоя, чтобы любой мог его проверить. Мы работаем над этим.
Что мы делаем, чтобы ты мог доверять больше
Публикация хешей SHA-256 файлов .wasm
Мы опубликуем криптографический хеш каждого WASM-файла в продакшене. Так любой аудитор сможет убедиться, что бинарный файл, выполняемый в твоём браузере, точно соответствует тому, который мы скомпилировали.
Открыть криптографический слой как open source
Опубликовать исходный код криптографического слоя (Zig) как публичный репозиторий. Та же модель, что у Signal: открытый криптографический протокол, остальной код закрыт. Любой сможет скомпилировать исходный код и сравнить хеш результирующего .wasm с тем, что используется в продакшене.
Безопасность не зависит от скрытности
Наша модель безопасности спроектирована так, чтобы работать, даже если исходный код станет публичным. Если бы безопасность зависела от того, что никто не может прочитать код, это была бы не безопасность, а надежда.
5 задокументированных уровней безопасности
Пароль (доступ к серверу), 24 слова (настоящий мастер-ключ), секрет устройства (защита локальных данных) и ротация Double Ratchet. Каждый уровень независим и проверяем в нашем Манифесте прозрачности.