Провери за 2 минути
Натисни F12 в браузъра си. Без да инсталираш нищо. Без да знаеш програмиране.
| Твърдение | Как да провериш | Таб |
|---|---|---|
| Няма бисквитки от никакъв вид | Application → Cookies → празно. Solo2 не инсталира никакви бисквитки. Сесията ти се поддържа в localStorage, не в бисквитки. Без _ga |
Application |
| Няма услуги на трети страни в приложението | Network → филтрирай по домейн → само заявки към solo2.net |
Network |
| Аналитика само на landing страницата, не в приложението | 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 е без бисквитки | Application → Cookies → няма бисквитки от stats.menzuri.com |
Application |
| Главният ти ключ се генерира случайно | Application → при регистрация Solo2 генерира 24 уникални думи. Те не се извличат от паролата ти — те са независим ключ с 256 бита реална ентропия | Application |
Ако знаеш да използваш DevTools
Проверки, изискващи технически познания. Ако разбираш HTTP, WebRTC и основна криптография, можеш да потвърдиш тези твърдения.
| Твърдение | Как да провериш |
|---|---|
| E2E криптирани съобщения | Network → заявки към /cmd |
| E2E криптирани WebRTC сигнали | Network → сигналните съобщения пътуват като криптирани бинарни блобове. Не са четим JSON с offer |
| Главен ключ, независим от паролата | Network → при влизане сървърът връща криптиран wrapped_master_key |
| Еднакъв padding на огледалния сървър | Network → WebSocket/DataChannel пакетите са с фиксиран размер при използване на огледалото (TURN). Провери размерите в таба Network |
| Паролата е защитена (не пътува в открит текст) | Network → влизането изпраща hash, не открит текст. Не можеш да провериш какъв алгоритъм използва сървърът (Argon2id), но можеш да провериш, че оригиналната ти парола никога не напуска браузъра |
| Заявките за свързване изтичат след 3 дни | Създай заявка, не отговаряй на нея, провери след 3 дни, че е изчезнала. Изисква търпение и два акаунта |
| Push известия криптирани | Network → push заявките към Service Worker пристигат криптирани (стандарт Web Push). Криптираното съдържание е видимо в таба 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 файлове
Ще публикуваме криптографския hash на всеки WASM файл в продукция. Така всеки одитор може да провери, че бинарният файл в браузъра ти точно съответства на този, който сме компилирали.
Отваряне на криптографския слой като open source
Публикуване на изходния код на криптографския слой (Zig) като публично хранилище. Същият модел като Signal: отворен криптографски протокол, останалата част от кода затворен. Всеки ще може да компилира изходния код и да сравни хеша на получения .wasm с този в продукция.
Сигурността не зависи от секретност
Нашият модел на сигурност е проектиран да работи дори ако изходният код е публичен. Ако сигурността зависеше от това никой да не може да чете кода, това нямаше да е сигурност — щеше да е надежда.
5 документирани слоя на сигурност
Парола (достъп до сървъра), 24 думи (истински главен ключ), тайна на устройството (защита на локалните данни) и ротация Double Ratchet. Всеки слой е независим и проверим в нашия Манифест за прозрачност.