Основний принцип
Solo2 створює приватний тунель між двома людьми. Напряму. Без посередників.
Наш сервер робить рівно одну річ: знайомить два кінці тунелю, щоб вони знайшли один одного. Для цього йому потрібен абсолютний мінімум — ідентифікатори двох пар — які він тримає в оперативній пам'яті RAM протягом мілісекунд знайомства. У той момент, коли два пристрої знайшли один одного, ці дані стираються з пам'яті. Вони ніколи, в жодний момент, не записуються на диск.
Після з'єднання сервер зникає. Він не бере участі в розмові. Не бачить її. Не зберігає. Не знає, скільки вона триває, як часто ви спілкуєтесь і про що говорите.
Ми не просимо тебе нам вірити. Ми просимо тебе перевірити самостійно:
Тест 1 — Сервер непотрібний.
Коли прямий тунель встановлено, наш сервер більше не бере участі. Якби він впав у цей момент, ваша розмова продовжилась би без перерви. Поки ваші пристрої увімкнені та підключені до інтернету, тунель — ваш. Нас там більше немає.
Тест 2 — Надішли файл на 10 гігабайт.
Буде не просто швидко — нашому серверу абсолютно байдуже. Спробуй 24 години поспіль безперервно відправляти файли по 10 гігабайт і більше. Наш сервер навіть не помітить, тому що він не бере участі. Спробуй це з будь-яким іншим месенджером.
Тест 3 — Поговори про телескопи.
Проведи вечір, спілкуючись з кимось про телескопи, вудки або будь-що, чого ти ніколи не шукав в інтернеті. Зачекай кілька днів. Реклама телескопів не з'явиться ніде. Твої слова не покидали твій тунель.
Твої дані — твоя відповідальність.
Це наша найбільша перевага і, чесно кажучи, те, до чого тобі буде найважче звикнути. Твої повідомлення, файли та контакти живуть зашифрованими на твоєму пристрої. На жодному сервері немає копії. Вони захищені 24 словами — такий самий рівень безпеки, як у Bitcoin. Але вони знаходяться лише в одному місці, якщо ти не встановиш Solo2 на другий пристрій — обидва пристрої синхронізуються автоматично при одночасному підключенні. Ти також можеш експортувати зашифровану резервну копію — або читабельну копію у стандартних форматах, щоб забрати свої дані куди завгодно. Тут немає хмари, яка врятує тебе, якщо ти втратиш єдиний пристрій. Твої дані — твої, з усіма наслідками.
Детальніше
Сервер Solo2 ніколи не зберігає інформацію про те, з ким ти спілкуєшся. Він не знає, що ти говориш або якими файлами ділишся, і щойно ти приймаєш з'єднання, запис видаляється з сервера: зв'язок існує лише на твоїх пристроях. Навіть технічні сигнали, що встановлюють з'єднання між пристроями, не читаються сервером — вони передаються з наскрізним шифруванням.
Твої повідомлення передаються безпосередньо між пристроями, зашифровані наскрізним шифруванням. Твоя історія розмов зберігається у зашифрованому вигляді у твоєму браузері, ніколи на нашому сервері.
Ключі шифрування автоматично ротуються з кожним повідомленням. Кожне повідомлення шифрується унікальним ключем, який негайно знищується після використання. Технічно це називається Double Ratchet, і це означає, що навіть якщо хтось отримає ключ, він зможе прочитати лише одне повідомлення — не всю розмову. Більше того, безпека автоматично відновлюється після кожного раунду комунікації: скомпрометований ключ стає непотрібним, щойно відбувається обмін наступним повідомленням.
Коли пряме з'єднання між пристроями неможливе (наприклад, через мережеві обмеження), використовується дзеркало Solo2 (технічно, сервер TURN): дані відбиваються від одного пристрою до іншого, але дзеркало не усвідомлює, що відбиває — все передається зашифрованим наскрізним шифруванням, і дзеркало не може це прочитати. Крім того, всі пакети доповнюються до однакового розміру, щоб спостерігач не зміг витягти інформацію, аналізуючи розмір або частоту трафіку.
Ти завжди можеш побачити в застосунку, який тип з'єднання використовуєш — пряме або через дзеркало — і діяти відповідно.
Твій майстер-ключ генерується випадковим чином із 256 бітами реальної ентропії — такий самий рівень, як у Bitcoin. При створенні облікового запису Solo2 генерує унікальний ключ, який представляється у вигляді 24 слів. Твій пароль захищає доступ до сервісу. Твої 24 слова — це ключ до твоїх даних. Це два різних ключі для двох різних дверей.
Навіть якщо наш сервер зникне, твої дані виживуть. За допомогою твоїх 24 слів ти можеш відкрити свої дані без підключення до сервера. Твої дані — твої. Справді.
1. Дані, які ми МАЄМО на сервері
1.1 Твій обліковий запис
Ось усі поля, що існують у твоєму записі. Інших немає.
| Дані | Навіщо | Захист | Термін зберігання |
|---|---|---|---|
| Ім'я користувача | Щоб ти міг увійти в систему | Відкритий текст (є публічним за задумом) | До видалення облікового запису |
| Пароль | Автентифікація | Захищений алгоритмом Argon2id (рекомендованим OWASP, стійким до атак зі спеціалізованим обладнанням). Ми ніколи не зберігаємо твій справжній пароль | До видалення облікового запису |
| Обгорнутий головний ключ | Щоб ти міг відкрити свої дані, увійшовши з паролем, не вводячи 24 слова щоразу. Якщо ти втратиш свої слова, ця обгортка — твоє відновлення | Непрозорий блоб (80 байтів), зашифрований ключем, похідним від твого пароля — сервер не може його відкрити | До видалення облікового запису |
| Відбиток відновлення | Щоб переконатися, що твої 24 слова правильні, коли ти відновлюєш доступ до свого облікового запису — так, щоб сервер їх ніколи не бачив | Незворотний відбиток (SHA-256, 64 символи). Не розкриває нічого ні про твої слова, ні про твій ключ | До видалення облікового запису |
| Публічне ім'я | Щоб твої контакти могли тебе впізнати | Відкритий текст (обираєш ти сам) | До зміни або видалення облікового запису |
| Код прив'язки | Твоя адреса в Solo2 — як номер телефону. Це те, чим ти ділишся з кимось, щоб він міг тебе знайти і надіслати запит на підключення | Відкритий текст, унікальний (~10 символів) | До видалення облікового запису |
| Фінансовий баланс | Гроші, які ти додав на рахунок | Число (у копійках) | До видалення облікового запису |
| Бонусний баланс | Отримані бонуси (акції). Витрачаються раніше грошового балансу | Число (у копійках) | До видалення облікового запису |
| Тип облікового запису | Твій план: стандартний, засновник або платиновий (admin існує лише для адміністративних облікових записів) | 1 байт (ціле число) | До зміни або видалення облікового запису |
| Стан облікового запису | Стан твого облікового запису: активний, на пробному періоді, призупинений тобою або в пільговому періоді. Якщо ти призупиняєш свій обліковий запис, саме це поле це пам’ятає | 1 байт (ціле число) | До зміни або видалення облікового запису |
| Позначка припинення обслуговування | Зберігає, коли обслуговування було припинено: її ставить адміністратор під час призупинення облікового запису або система, коли твій баланс досягає нуля (це початок пільгового періоду). На обліковому записі без заборгованості дорівнює 0 | Числова мітка часу (0 = без припинення) | Поки обліковий запис не буде відновлено — поповненням чи зняттям блокування — або видалено |
| Дата і час реєстрації | Коли ти створив обліковий запис | Повні дата і час (timestamp) | Постійно |
| Внутрішні ідентифікатори | Системі потрібні два внутрішні коди для посилання на тебе без використання імені користувача. Один — твій основний ID, інший — код посилання. Обидва непрозорі — поза системою вони нічого не означають | Два випадкових коди по 24 символи кожен (напр.: u_7kX9mP2...). Вони не містять твого імені, дати чи особистих даних — вони повністю випадкові | До видалення облікового запису |
| Версія безпеки | Яка версія алгоритму захисту пароля була використана | Внутрішній номер | До видалення облікового запису |
| Прапорці стану | Технічні прапорці (чи змінився твій баланс, чи активний режим максимальної безпеки) | 1 байт — еквівалент однієї літери. Більше нічого не вміщується | До видалення облікового запису |
Щоб ти мав уявлення про обсяг: твій повний запис займає близько 400 байтів — менше, ніж цей абзац. Це твої імена (вигадані, якщо хочеш), відбиток твого пароля (фіксований розмір, 128 символів), твій зашифрований головний ключ (непрозорий блоб 80 байтів, який ми не можемо прочитати), відбиток відновлення (64 символи, які нічого не розкривають), два числа для твого балансу, кілька дат і чотири байти конфігурації. Це все, чим ти існуєш на нашому сервері.
1.2 Активні сесії
| Дані | Навіщо | Захист | Термін зберігання |
|---|---|---|---|
| Хеш токена сесії | Підтримка активного входу | Незворотний відбиток (SHA-256). Оригінальний токен ніколи не зберігається на сервері | 24 години — після цього повністю видаляється |
| Дата створення | Щоб система знала, коли вона була створена — корисно для автоматичного очищення | Числова мітка часу (секунди unix) | Видаляється разом із сесією |
| Дата закінчення | Сесія закінчується через 24 години після створення. Вона не поновлюється використанням — має фіксовану дату закінчення | Числова мітка часу (створення + 24 години) | 24 години — після цього повністю видаляється |
При виході з системи або після закінчення терміну рядок повністю видаляється з бази даних. Не залишається жодних слідів існування сесії.
1.3 Запити на прив'язку
| Дані | Навіщо | Захист | Термін зберігання |
|---|---|---|---|
| ID відправника | Щоб знати, хто надіслав запит | Внутрішній код з 24 випадкових символів | 3 дні — потім автоматично видаляється |
| ID отримувача | Щоб знати, кому він адресований | Внутрішній код з 24 випадкових символів | 3 дні — потім автоматично видаляється |
| Статус | Очікує / прийнятий / відхилений | 1 байт (ціле число: 0=очікує, 1=прийнято, 2=відхилено) | Видаляється при вирішенні або при закінченні терміну (3 дні) |
| Дата створення | Знати, коли було створено запит, щоб автоматично видалити його | Числова мітка часу (unix-секунди) — від 4 до 8 байт | 3 дні — потім автоматично видаляється |
Важливе зауваження: Поки запит очікує (максимум 3 дні), сервер знає, що користувач A попросив з'єднатися з користувачем B. Через 3 дні запит автоматично видаляється. Після прийняття зв'язку сервер не зберігає цей зв'язок. Твій список контактів існує лише у твоєму браузері, зашифрований.
1.4 Код зв’язку
| Дані | Навіщо | Захист | Термін зберігання |
|---|---|---|---|
| Код зв’язку (alias) | Короткий ідентифікатор, щоб інший користувач міг тебе знайти та запитати створення тунелю | Випадковий код з 8 символів, отриманий з твого внутрішнього ID | Постійний (це твій публічний ідентифікатор з’єднання) |
1.5 Push-підписки (сповіщення)
| Дані | Навіщо | Захист | Термін зберігання |
|---|---|---|---|
| Адреса сповіщень | Надсилання сповіщень у твій браузер | URL постачальника браузера (Google, Mozilla або Apple) | До вимкнення сповіщень або видалення облікового запису |
| Ключі push-шифрування | Шифрування сповіщення, щоб лише твій браузер міг його прочитати | Стандарт Web Push | Так само, як адреса |
1.6 Зворотний зв'язок (підтримка)
| Дані | Навіщо | Захист | Термін зберігання |
|---|---|---|---|
| Твоє повідомлення | Щоб ми могли тобі допомогти | Відкритий текст | До обробки |
| Твій ID користувача | Щоб знати, хто потребує допомоги | Внутрішній ID | Так само, як повідомлення |
1.7 Сигналізація з'єднання (ефемерна)
Щоб два пристрої могли з'єднатися напряму, їм потрібно обмінятися технічними сигналами встановлення з'єднання (протокол WebRTC). Єдиний момент, коли наш сервер тримає в пам'яті твій код користувача і код твого контакту — це протягом мілісекунд, поки обробляє цей запит на з'єднання. Це триває мить, існує лише в оперативній пам'яті і ніколи не записується на диск. Самі сигнали зашифровані наскрізним шифруванням
| Дані | Навіщо | Захист | Термін зберігання |
|---|---|---|---|
| Сигнали з'єднання | Встановлення прямого з'єднання між пристроями | Зашифровані наскрізним шифруванням публічним ключем отримувача. Сервер не може їх прочитати або змінити | 60 секунд |
1.8 Дзеркало Solo2 (TURN)
Якщо пряме з'єднання неможливе, використовується дзеркало Solo2: дані проходять через нього, як світло через дзеркало — відбиваються з одного боку на інший, але дзеркало не усвідомлює, що відбиває. Всі пакети доповнюються до однакового розміру, щоб спостерігач не зміг відрізнити повідомлення від звичайного пульсу з'єднання.
| Дані | Навіщо | Захист | Термін зберігання |
|---|---|---|---|
| Облікові дані доступу | Автентифікація на дзеркальному сервері | Твоя особистість перетворюється на незворотний відбиток — дзеркало не знає, хто ти | 24 години |
| Лічильник байтів дзеркала | Оцінка навантаження сервісу та застосування ліміту добросовісного використання дзеркала | Одне-єдине число на акаунт і день (UTC): загальний обсяг переданих байтів. Жодних даних про вміст, про те, з ким ти спілкуєшся, або про твій IP; прямі з'єднання не підраховуються за акаунтами; вони лише включаються, без прив'язки до акаунта та IP, в описані нижче анонімні технічні підсумки. Зв'язок між анонімними обліковими даними дзеркала та твоїм акаунтом видаляється через 2 дні після закінчення терміну дії облікових даних | 93 дні |
1.9 Оброблені платежі
Платежі — єдина точка, де існує реальне тертя з анонімністю. Будьмо чесними в цьому питанні.
Коли ти реєструєшся в Solo2, ти обираєш ім'я користувача (може бути вигаданим), пароль і публічне ім'я (також вигадане, якщо хочеш). Жодні дані не пов'язують тебе з реальною особою. Але якщо ти здійснюєш платіж карткою, твоя фінансова установа знає, хто ти.
Те, що ми отримуємо від платіжного шлюзу, — це підтвердження, сума та код авторизації банку. Ми не отримуємо і не зберігаємо ім'я власника, номер картки або номер посвідчення (DNI). За замовчуванням ми видаємо спрощений рахунок без даних покупця, як чек у кіоску; лише якщо ти просиш повний рахунок-фактуру, ми зберігаємо надані податкові дані.
Крім того, платіжний запис навмисно від'єднано від твого облікового запису користувача. Єдиний ідентифікатор, що пов'язує платіж з акаунтом, видаляється тієї самої миті, коли зараховується баланс; після цього жодне поле не пов'язує платіжний чек із конкретним акаунтом.
| Дані | Навіщо | Захист | Термін зберігання |
|---|---|---|---|
| Запис про платіж | Бухгалтерія та податкові зобов'язання | Підтвердження, сума, дата та код авторизації. Податкові дані лише у разі запиту повного рахунка-фактури. Жодного зв'язку з будь-яким обліковим записом після зарахування балансу | Постійно (законодавча вимога) |
Щодо найгіршого можливого сценарію: Навіть за наявності судового ордера ланцюжок відстеження був би таким: твоя картка → твій банк → платіжний шлюз → наш платіжний чек. Проте наш чек не містить жодного ідентифікатора користувача. Це не недогляд: це свідоме дизайнерське рішення. Після зарахування балансу в нашій базі даних не залишається жодного поля чи індексу, що пов'язує платіж з акаунтом. Єдиним теоретичним шляхом була б часова кореляція — якби твій платіж виявився єдиним за певний період, — але навіть у цьому крайньому випадку акаунт не містить інформації, що ідентифікує реальну людину: ім'я користувача та публічне ім'я можуть бути цілком вигаданими.
Усі наші доходи легальні та надходять проведеними через платіжний шлюз. Ми сплачуємо відповідні податки. Але анонімність клієнта з нашого боку повна.
2. Дані, яких у нас НЕМАЄ на сервері
Це те, що визначає нас. Сервер Solo2 не зберігає та не отримує доступу до :
- Твої повідомлення — Передаються безпосередньо між пристроями з наскрізним шифруванням. Сервер ніколи їх не бачить.
- Твої файли — Те саме, що й повідомлення: прямі та зашифровані.
- Твій список контактів — існує в зашифрованому вигляді лише у твоєму браузері.
- Твоя історія чату — Лише у твоєму браузері, зашифровано.
- Твоє місцезнаходження — GeoStamps обчислюються на твоєму пристрої та надсилаються безпосередньо одержувачу. Сервер ніколи їх не обробляє.
- Аналітика використання — Solo2 не має системи аналізу поведінки: ми не знаємо, що ти читаєш, які кнопки натискаєш, скільки часу проводиш у додатку, і ми не створюємо жодного профілю твоєї активності. Єдиний явний виняток: агреговані та анонімні лічильники технічної продуктивності підключення (скільки підключень проходять безпосередньо, а скільки потребують ретранслятора, скільки байтів кожного типу, скільки часу вони займають) — вони ніколи не прив'язуються до твого облікового запису, твоєї IP-адреси чи один до одного. Жодних файлів cookie для відстеження або сторонніх скриптів, ніколи.
- Дані пристрою — Ми не збираємо модель, роздільну здатність, операційну систему або будь-які характеристики твого пристрою.
- Метадані спілкування — Ми не знаємо, з ким ти спілкуєшся, коли, як часто або як довго.
Про твою IP-адресу
Твоя IP-адреса не зберігається в жодній базі даних. У технічних журналах сервера IP-адреси перетворюються на незворотні відбитки (hash) — корисні для виявлення закономірностей зловживань, але неможливо перетворити назад на оригінальну IP. Ці журнали автоматично видаляються кожні 7 днів. Сигнали з'єднання, які могли б містити твій IP, зашифровані наскрізним шифруванням — сервер не може їх прочитати.
3. Дані, збережені у твоєму браузері
Усе, що наведено нижче, зберігається виключно у твоєму браузері , зашифроване за допомогою AES-256-GCM (стандарт шифрування військового рівня, який використовується урядами та фінансовими установами). Ключ генерується з твого пароля за допомогою Argon2id (найнадійніший доступний алгоритм проти атак за допомогою спеціалізованого обладнання), і цей процес повністю відбувається у твоєму браузері. Твій пароль ніколи не надсилається на сервер.
Твої дані зашифровані у стані спокою — навіть якщо хтось отримає доступ до сховища твого браузера, він знайде лише нечитабельні зашифровані блоки без твого пароля.
Коли ти експортуєш резервну копію, вона шифрується тим самим захистом (Argon2id + AES-256-GCM). Лише той, хто знає твій пароль, може її розшифрувати. Єдиний виняток зроблено навмисно: читабельна копія — стандартний ZIP, створений для того, щоб ти міг прочитати свої дані без застосунку, — створюється без шифрування; застосунок попереджає тебе про це й запитує твій пароль перед її створенням.
| Дані | Шифрування | Контроль |
|---|---|---|
| Повідомлення | AES-256-GCM | Ти вирішуєш, коли їх видалити |
| Файли | AES-256-GCM | Ти вирішуєш, коли їх видалити |
| Контакти (пари) | AES-256-GCM | Ти вирішуєш, кого прив'язати |
| Статус верифікації | AES-256-GCM | Ти верифікуєш особу кожного контакту |
| Пошуковий індекс | Зашифрований незворотними токенами (HMAC) | Відновлюється з твоїх повідомлень |
| Статус доставки | AES-256-GCM | Які повідомлення були доставлені |
| Очікуючі повідомлення | AES-256-GCM | Черга надсилання при відсутності з'єднання |
Тимчасове сховище браузера
| Дані | Тип | Термін зберігання | Навіщо |
|---|---|---|---|
| Сесія користувача | Локальна пам'ять браузера (localStorage) | До виходу із системи | Підтримка входу |
| Версія застосунку | Локальна пам'ять браузера (localStorage) | Постійно | Виявлення оновлень |
| Уподобання теми | Локальна пам'ять браузера (localStorage) | Постійно | Запам'ятовування твоєї візуальної теми |
| Уподобання мови | Локальна пам'ять браузера (localStorage) | Постійно | Запам'ятовування твоєї мови |
| Пароль (режим максимальної безпеки) | Пам'ять вкладки (sessionStorage) | Зникає при закритті вкладки | Повторна ін��ціалізація шифрування при перезавантаженні сторінки |
Зауваження щодо безпеки в браузері
Solo2 працює у твоєму веб-браузері. Твої зашифровані дані захищені у стані спокою, але коли застосунок відкритий і показує тобі розшифровані повідомлення на екрані, безпека залежить також від твого оточення:
- Розширення браузера: Шкідливе розширення з доступом до сторінок, які ти відвідуєш, теоретично може читати те, що відображається на екрані. Ми рекомендуємо використовувати якомога менше розширень і лише з надійних джерел.
- Чистий браузер: Оновлений браузер без зайвих розширень — твій найкращий союзник.
- Рідна програма: У майбутньому ми запропонуємо програму для робочого столу (Windows, Mac, Linux), яка забезпечить додатковий рівень ізоляції, не покладаючись на середовище браузера.
4. Мережеві підключення
Застосунок Solo2
| Домен | Причина | Надіслані дані |
|---|---|---|
| solo2.net | API застосунку | Автентифікація, сигналізація, присутність |
| pay.menzuri.com | Платіжний шлюз | Лише при здійсненні платежу |
Немає іншого домену. Немає зовнішнього сценарію. Немає відстеження CDN. Політика безпеки вмісту (CSP) сервера технічно забезпечує це: будь-яка спроба завантажити ресурси з інших доменів блокується браузером .
Навіть для визначення публічної IP-адреси твого пристрою (необхідної для встановлення прямих з'єднань між користувачами) ми використовуємо власний сервер (технічно називається STUN). Ми не делегуємо це зовнішнім сервісам. Ми керуємо ним самі.
Сторінка презентації
Сторінка презентації (solo2.net) — незалежна від застосунку — використовує анонімну систему вимірювання, розміщену на наших власних серверах у Німеччині:
| Домен | Причина | Надіслані дані |
|---|---|---|
| stats.menzuri.com | Анонімне вимірювання відвідувань | Відвідана сторінка (без файлів cookie, без IP, без ідентифікації) |
Ця система не встановлює файли cookie, не реєструє твою IP-адресу, не ідентифікує тебе, не відстежує тебе між відвідуваннями та не передає дані третім сторонам. Застосунок Solo2 не має цієї системи та жодного іншого виду аналітики.
5. Видалення твоїх даних
Існують дві різні дії, і важливо знати різницю:
Видалення локальних даних
У налаштуваннях застосунку є два варіанти локального видалення:
- Очистити мої дані — видалити лише свої дані (ідентифікаційні дані, повідомлення та файли, сеанс), не впливаючи на інших користувачів, які використовують той самий браузер.
- Екстрене скидання — Стерти абсолютно все: дані всіх користувачів, Service Worker, кеш і криптографічні ключі. Потрібне подвійне підтвердження.
В обох випадках твій обліковий запис на сервері все ще існує. Ти можеш увійти знову, але твої локальні дані будуть безповоротно втрачені. Це створює абсолютно нову криптографічну ідентичність: той, хто мав твій попередній відкритий ключ, більше не може нічого зашифрувати для тебе. Якщо попередній контакт захоче відновити зв’язок, йому доведеться надіслати тобі запит знову, а ти вирішуєш, погоджуватися на це чи ні.
Автоматичне відновлення між пристроями
Якщо ти втратиш дані на одному пристрої та маєш інший підключений, Solo2 виявить ситуацію і запропонує автоматичне відновлення твоєї особистості та даних. Відновлення передається у зашифрованому вигляді (Argon2id) прямим з'єднанням між твоїми пристроями — без проходження через сервер.
Видалення облікового запису з сервера
- усі рядки у базі даних, пов’язані з твоїм ідентифікатором, видаляються: обліковий запис, сеанси, запити, запрошення, push-підписки, відгуки.
- Видалення є atomic (все або нічого): або все видаляється, або нічого не видаляється.
- Записи про платежі навмисно від’єднані від твоєї особи — вони існують згідно з юридичним зобов’язанням, але платіж неможливо відстежити до тебе.
- Ідентифікатори в журналах сервера є незворотними відбитками: неможливо пов'язати журнал з твоїм обліковим записом після його видалення.
- Те, що збережено у твоєму браузері, не видаляється автоматично цією дією (ми не маємо доступу до твого браузера). Щоб видалити це, спочатку виконай повне видалення або очисти дані сайту у своєму браузері.
5b. Твій майстер-ключ та твої 24 слова
При створенні облікового запису в Solo2 генерується майстер-ключ із 256 бітами реальної ентропії (такий самий, що використовує Bitcoin). Цей ключ представлений як 24 слова, які знаєш лише ти. Твій пароль обгортає цей ключ для зберігання у зашифрованому вигляді на сервері — сервер не може його прочитати.
Це означає, що в тебе є два незалежних ключі
Точні алгоритми (перевірювано)
Генерація: CSPRNG з операційної системи (crypto.getRandomValues, 256 біт). Шифрування з головним ключем: Argon2id (OWASP) для отримання ключа оболонки + AES-256-GCM (автентифіковане шифрування) для його захисту. Особа: Ed25519 (підпис) + X25519 (обмін). Повідомлення: Double Ratchet з ChaCha20-Poly1305 . Коли ти закриваєш вкладку браузера, усі конфіденційні дані зникають із пам’яті.
Як захищений твій майстер-ключ
| Рівень | Що це | Де зберігається |
|---|---|---|
| Пароль | Доступ до сервера. Обгортає твій майстер-ключ | У твоїй пам'яті + хеш на сервері |
| Секрет пристрою | Невидимий другий фактор, генерується автоматично під час встановлення | На твоєму пристрої (неможливо витягнути) |
| Майстер-ключ (24 слова) | 256 біт реальної ентропії, згенерований випадковим чином. Рівень Bitcoin (BIP39) | На папері, який зберігаєш ти + обгорнутий на сервері |
| Ротація ключів | Кожне повідомлення використовує унікальний ключ, який знищується після використання (Double Ratchet) | Автоматично, прозоро |
Якщо ти зміниш пароль
Зміна пароля — миттєва. Лише переобгортається твій майстер-ключ новим паролем — твоя ідентичність не змінюється, твої дані не перешифровуються, твої контакти не зачіпаються, а твої 24 слова залишаються тими самими. Це операція на мілісекунди.
Відновлення
Якщо ти втратиш пароль, ти можеш відкрити свої дані за допомогою 24 слів — без сервера. Якщо ти втратиш 24 слова, ти можеш увійти за допомогою пароля, і сервер поверне тобі обгорнутий ключ. Якщо ти втратиш обидва, твої дані неможливо відновити. Як у Bitcoin, це безпека за задумом.
6. Що станеться при несанкціонованому доступі до сервера
Якщо зловмисник отримає повний доступ до сервера Solo2, він отримає:
- Імена користувачів та публічні імена
- Коди прив'язки
- Публічні ключі (марні без закритого ключа, який знаходиться у твоєму браузері)
- Відбитки паролів (марні без надзвичайно дорогої атаки перебором завдяки Argon2id)
- Відбитки токенів сесій (марні без оригінального токена)
- Очікуючі запити на прив'язку (внутрішні ID, закінчуються через 3 дні)
- Тип облікового запису, баланси та дати реєстрації
- Записи про платежі (без можливості пов'язати їх з конкретним користувачем)
Чого він НЕ отримає:
- Жодного повідомлення (їх ніколи не було на сервері)
- Жодного файлу (їх ніколи не було на сервері)
- Жодного списку контактів (його ніколи не було на сервері)
- Жодної історії чату (її ніколи не було на сервері)
- Жодного закритого ключа шифрування (вони зберігаються у твоєму браузері)
- Жодної IP-адреси (вони не реєструються)
7. Наше зобов'язання
Цей маніфест оновлюватиметься з кожною значущою зміною в управлінні даними. Якщо ми додамо нове поле в базу даних, воно з'явиться тут. Якщо ми щось видалимо — також.
Чинна версія — завжди ця сторінка.
8. Як створюється цей вміст
Увесь текст, який ти читаєш на цьому сайті — цю сторінку, блог, Cuadernos Lacre, розділ довідки — пише команда з двох учасників: засновник Solo2 та Claude, штучний інтелект від Anthropic. Тут також немає жодного дрібного шрифту.
Процес завжди однаковий: пропонується ідея — що пояснити, яку історію розповісти, на яке занепокоєння відповісти — і Claude пише перший чернетковий варіант. Ми обговорюємо його: що працює, що зайве, чого бракує. Іноді цілий абзац або речення переписується власними словами. Іншим разом просто вказується, що подобається, а що ні, і Claude переписує текст, доки він не звучатиме належним чином. Жоден текст на цьому сайті не є чиєюсь першою чернеткою.
Жоден текст не публікується без людської перевірки та схвалення. ШІ не пише самостійно і не вирішує сам, що публікується.
Так само, як ти вважаєш, що заслуговуєш знати, які дані про тебе ми маємо, ми віримо, що ти заслуговуєш знати, хто написав те, що ти читаєш. Саме тому це тут.