Архітектура · 5 шарів · 2 пристрої · 1 правда

Архітектура
і є обіцянка.

Політика приватності — це слова на сторінці; архітектура — це структура з неможливостей. DevoraX2 побудована так, що навіть якби я захотів прочитати Ваші повідомлення — я не зміг би. Сторінки нижче відкрито описують кожен шар, який робить це твердження істинним.

Я не прошу Вас довіряти моїм намірам. Я прошу Вас довіряти структурі — і я публікую кожну її частину, щоб довіру можна було перевірити.

— DevoraX2 · Хартія архітектури

Розділ I · Шаруватий розум

П'ять шарів,
від шкіри до душі.

DevoraX2 побудована в п'ять шарів, складених так, що кожен торкається лише безпосереднього сусіда. Жоден шар не може читати той, що над ним. Пролом одного шару не поширюється вгору. У цьому і весь сенс стеку.

01
Зовнішній · те, що Ви бачите

Cipher Personality

Персоналізований профіль захисту, який Ви налаштовуєте при встановленні. Знає, які фактори застосовувати до Вас, у якому порядку, з якими порогами. Ніколи не залишає Ваші два пристрої. Обгортає все, що нижче.

02
Над дротом

Application & UI

Сам месенджер: чати, дзвінки, Світи, налаштування. Торкається Personality зверху і Cross-Guard знизу. Ніколи не бачить сирого криптографічного матеріалу. Говорить лише непрозорими токенами.

А структура всередині — Ваша. Те, що я називаю «Світами», Ви можете перейменувати як завгодно — рівні, глибину, логіку вкладеності малюєте Ви. Ця схема шифрується на Вашому пристрої, як ключі. Моє реле бачить лише непрозорі UUID та запечатані блоби; воно ніколи не дізнається, що один блоб — це «Світ», а інший — «Топік». Сенс живе лише на Вашому пристрої. Я називаю цей шар Personal Structure Schema (PSS) — захист різноманіттям, бо немає двох однакових структур, і експлойт, заточений під одного користувача, нічого не знаходить в іншого.

03
Угода

Cross-Guard Protocol

Підписує кожну чутливу дію між Пристроєм A і Пристроєм B. Живе між застосунком і криптографічним ядром — не може розшифрувати те, що підписує, і не може підписати те, що розшифровує. Свій ключ для кожної дії.

04
Математика

Cryptographic Core

PQXDH обмін ключами + ML-KEM-1024 (постквантовий), Double Ratchet (пряма і майбутня секретність), ChaCha20-Poly1305 (автентифіковане симетричне шифрування), Sealed Sender (приватність метаданих). Єдиний шар, що торкається відкритого тексту. Все, що вище, непрозоре для самого себе.

05
Труба

Transport

Запечатані пакети між пристроями і моїм реле. WebSocket, QUIC, fallback на HTTPS. Транспортний шар не може читати криптографічне ядро над собою — він бачить лише шифротекст, адресований непрозорим сесійним токенам.

Розділ II · Топологія двох пристроїв

Три вузли.
Один може бачити; двоє можуть діяти.

Топологія рантайму має трьох живих учасників — Пристрій A, Пристрій B та реле (яке я називаю «сервером»). У кожного вузла точна область того, що він знає, та явна межа того, чого він не може.

Пристрій A · Основний

Рантайм

Знає

Усі Ваші повідомлення, контакти, ключі, налаштування. Розшифровує вхідні та шифрує вихідні. Тримає рантайм.

Не може

Змінювати паролі, спаровувати пристрої, вимикати режими, експортувати архіви або видаляти Cross-Guard наодинці.

Сервер · Реле

Свідок

Бачить

Запечатані пакети, непрозорі сесійні токени, пінги присутності. Маршрутизує зашифровані блоби з однієї непрозорої адреси на іншу.

Не може

Читати вміст повідомлень, бачити, хто з ким говорить (ідентичність відправника запечатана), підробляти підписи або змінювати рукостискання Cross-Guard. Не «не буде». Не може.

Пристрій B · Охоронець

Суверенітет

Знає

Запити на чутливі дії від A. Їхні підписи, контексти, мітки часу. Схвалює, відхиляє, заморожує, стирає, перевипускає.

Не може

Тримати постійну копію всіх повідомлень, діяти у чаті в реальному часі. Це влада, а не рантайм.

Сховище · четвертий вузол (поза рантаймом)

Сховище — не живий учасник — воно спить, чекаючи. Отримує безперервні і панічні резервні копії від Пристрою A, запечатані наскрізним шифруванням з ключами, які можете вивести лише Ви. Мій сервер не може прочитати сховище; провайдер сховища не може прочитати вміст. Ви обираєте його розташування при встановленні (див. Розділ V нижче).

Розділ III · Криптографічне ядро

Вісім примітивів.
Кожен захищає від своєї атаки.

Ядро побудоване зі стандартних, добре перевірених криптографічних примітивів. Жоден з них не є новим. Новизна в криптографії — найдорожча фіча з існуючих, і я не оплачуватиму цей рахунок Вашими даними.

01 · Обмін ключами

PQXDH + ML-KEM-1024

X25519 ECDH + ML-KEM-1024 KEM (NIST FIPS 203)

Гібрид: класичне та постквантове одночасно. Противник має перемогти обидва, щоб вивести сесійний ключ — один із них не має відомої квантової атаки.

02 · Пряма секретність

Double Ratchet

Симетричний + DH ratchet, попосильна ротація

Новий ключ для кожного повідомлення; попередній знищується при використанні. Компрометація ключа одного повідомлення розкриває лише це повідомлення.

03 · Автентифіковане шифрування

ChaCha20 Poly1305

96-bit nonce · 128-bit auth tag

Той самий шифр, якому довіряють Signal, WireGuard і TLS 1.3 по всьому світу. Один біт, перевернутий під час передачі, викликає гучний збій.

04 · Запечатування метаданих

Sealed Sender

Ідентичність відправника зашифрована всередині конверта

Моє реле не дізнається, хто з ким говорить — лише що два непрозорі сесійні токени обмінюються пакетами. Граф відносин ніколи не існує на моїй стороні.

05 · Підписи ідентичності

Ed25519

Edwards-крива · 32-байтні ключі, 64-байтні підписи

Кожен пристрій несе один довгостроковий ключ ідентичності. Приватна половина ніколи не залишає пристрій; публічна — це те, проти чого інші пристрої перевіряють, коли відкривається сесія.

06 · Хешування вмісту

BLAKE3

256-бітний вивід · паралельний tree-mode

Використовується для адресації вмісту зашифрованих блобів та зобов'язань цілісності у журналі аудиту. Швидкий, паралельний і сучасний — наступник BLAKE2 з тієї ж родини перевірених хеш-дизайнів.

07 · Виведення з пароля

Argon2id

Memory-hard · 64 MiB ціль, 3 проходи, 4 смуги

Розблокування сховища та матеріал GraphPIN проходять через Argon2id, перш ніж колись торкнутися симетричного ключа. Підбираючий атакуючий платить повну вартість пам'яті за спробу — brute force масштабується залізом, а не терпінням.

08 · Виведення ключів

HKDF-SHA256

Extract + expand · мітки з розділенням доменів

Склеює вивід гібридного KEM у сесійний ключ, зі своєю міткою на кожен крок ratchet. Той самий примітив, що виводить сесійні ключі у TLS 1.3. Простий, перевірений, важко зловжити, коли мітки записані.

Розділ IV · Робота сервера

Що мій сервер робить,
і чого він не може.

Більшість месенджерів чесні в тому, що вони роблять, і мовчать про те, що могли б. Я роблю навпаки: гучно кажу, що неможливо за задумом. Якби вся моя інфраструктура була зламана завтра — ось що забрав би з собою атакуючий.

Що сервер робить

Він передає, він свідчить.

  • Передає запечатані пакети між пристроями, адресовані непрозорим сесійним токенам.
  • Тримає пінги присутності — пристрій активний, пристрій спить. Жодного вмісту, жодних метаданих окрім підключення.
  • Координує рукостискання Cross-Guard, носячи підписані пакети від A до B і назад. Не може прочитати, що вони містять.
  • Буферизує недоставлені повідомлення як шифротекст, для доставки коли отримувач прийде онлайн. Буфер непрозорий навіть для мене.
  • Розповсюджує широкомовні відкликання ключів, коли пристрій стертий чи перевипущений. Публічні підписані повідомлення, жодних приватних даних.
  • Пересилає тригери SMS-Brick (коли використовуються через мій опціональний канал). Сам тригер підписаний та адресований; я не можу його підробити чи відтворити.
Чого сервер не може

Він не бачить, він не тримає.

  • Читати вміст повідомлень — математика не видасть відкритий текст на моїй стороні, ніколи, з жодної причини.
  • Тримати ключі повідомлень — ключі існують лише на Ваших пристроях і видаляються при використанні.
  • Будувати графи відносин — ідентичність відправника зашифрована всередині конверта. Я не можу сказати, хто з ким говорив.
  • Автентифікувати Вашу ідентичність — цю роботу робить пара пристроїв. Я не можу підробити подію «увійшов як Ви».
  • Підробити схвалення Cross-Guard — підписи Пристрою B перевіряються локально на Пристрої A. Я можу нести пакет; я не можу його переписати.
  • Розшифрувати сховище — сховище запечатане наскрізним шифруванням з ключами, виведеними з Вашого сіду та Ваших пристроїв. Навіть коли я хоставю сховище, я хоставю непрозорі блоби.
Розділ V · Сховище

Ви обираєте, де
Ваші дані переживають.

Сховище — це місце, де живуть Ваші безперервні бекапи та панічні знімки. Воно ніколи не розшифровується поза Вашими пристроями — а значить, я можу запропонувати п'ять різних місць розміщення сховища, нічого не втрачаючи з моделі безпеки. Місце — це зручність. Шифрування — константа.

DevoraX2 хмара

За замовчуванням · zero-knowledge

Розміщено у мене, на інфраструктурі, якою я керую. Запечатано наскрізним шифруванням — я хоставю непрозорі блоби. Найпростіше налаштування, без залежностей.

Доступно · Фаза II

Self-hosted

Ваш сервер, Ваші правила

Невеликий демон, який Ви запускаєте на своєму VPS, NAS чи домашньому сервері. Непрозорі блоби ніколи не залишають інфраструктуру, яку Ви контролюєте.

Наступне · Фаза IV

IPFS-пінінг

Розподілене · адресоване вмістом

Бекапи запінені в IPFS через Pinata, Filebase чи Ваш власний вузол. Адресовані вмістом, реплікуються, стійкі до цензури.

Наступне · Фаза IX

Hardware cold

Air-gapped · ніколи онлайн

Періодичні офлайн-записи на пристрій з апаратним захистом (USB-enclave, виділений SSD). Air-gapped під час вікон атаки.

Майбутнє · Фаза XIV

Federated

Реле від організації · Фаза XV

Сховище, розміщене організацією, до якої Ви належите (компанія, видання, коаліція). Той самий протокол, локальне управління.

Майбутнє · Фаза XV
Розділ VI · Модель довіри

Кому і чому
Ви насправді довіряєте.

У кожної безпечної системи є модель довіри — список речей, які, якщо скомпрометовані, система припускає, що вони не такі. Більшість компаній розмивають цей список. Я перелічую його явно: чому я довіряю, чому — ні, і чому.

Математика

Signal Protocol. ML-KEM-1024. ChaCha20-Poly1305. Стандартне, рецензоване, перевірене десятиліттями. Якщо математика впаде, вся галузь впаде раніше за мене.

Відкритий вихідний код

Кожен рядок криптографічної реалізації опублікований, перевірений та збирається відтворювано. Я довіряю тому, що Ви можете перевірити, а не тому, що я обіцяю.

Ваші два пристрої

Пара, яку Ви налаштували. Я довіряю їм за задумом — це єдині місця, де колись живе відкритий текст. Якщо обидва скомпрометовані одночасно, модель ламається; саме тому існує Cross-Guard, саме тому існують Режими.

Ваш сід відновлення

Слова, які Ви записали на папері при встановленні. Я довіряю Вам зберігати їх там, куди я не можу дотягнутися. Система, якій не потрібен майстер-ключ, делегує весь суверенітет Вам.

Не мені

Мені не потрібно бути гідним довіри, щоб це працювало. Я міг би бути зловмисним, недбалим, викликаним повісткою чи неплатоспроможним — архітектура означає, що я не можу прочитати Ваші повідомлення у будь-якому випадку. Сенс дизайну — прибрати себе з Вашого списку довіри.

Не моєму інфраструктурному провайдеру

Той, хто хоставит моє реле, бачить лише запечатані пакети. Не може читати вміст, не може ідентифікувати, хто з ким говорить. Злом мого хостинг-провайдера дає зашифрований шум.

Не уряду і не судовому ордеру

Я не можу передати те, чого у мене немає. Повістки дають шифротекст. Ордери мовчання не можуть змусити мене прочитати файл, від якого у мене немає ключа. Архітектура — це юридична відповідь.

Розділ VII · Режими відмови

Що відбувається, коли
щось ламається.

Privacy-продукт, що ігнорує власні режими відмови, — це продукт, який про них не подумав. Я подумав. Ось три найзначніші поломки — та що їх переживає.

Поломка 01 · Важка

Що, якщо компанія DevoraX2 зникне завтра?

→ Відповідь

Месенджер продовжує працювати між спарованими пристроями. Ваше сховище залишається доступним — якщо Ви self-host, безстроково; якщо використовували мою хмару — поки мій хостинг-рахунок не піде у дефолт (а opensource-мігратор дозволяє перемістити його раніше). Я не єдина точка відмови для Вашого минулого. Я максимум єдина точка відмови для моїх майбутніх оновлень — саме тому код відкритий і відтворюваний.

Поломка 02 · Експлуатаційна

Що, якщо реле впаде?

→ Відповідь

Пристрої буферизують вихідні повідомлення локально та повторюють. Рукостискання Cross-Guard ставляться у чергу та відновлюються при перепідключенні. Федеративні реле (Фаза XV) надають альтернативи; до того регіональний збій викликає затримки, ніколи — втрату даних. Сповіщення відкочуються до SMS-каналів там, де Ви погодилися. Пауза — це найгірший випадок.

Поломка 03 · Підриває довіру

Що, якщо аудит знайде дефект?

→ The answer

Публічна пауза. Версіонована міграція. Я не випущу фікс, що приховує первинний дефект — і звіт, і виправлення стають частиною аудит-трейлу. Довіра відновлюється прозорістю, а не мовчанням. Якщо я не можу її відновити — я про це скажу і попрошу користувачів мігрувати на те, що переживе поломку. Я не вдаватиму, що поганих новин не було.

Розділ VIII · Чому такий дизайн

Архітектура
і є аргумент.

Я міг побудувати простіший месенджер. Я не став — тричі поспіль. Ось три рішення, що зробили DevoraX2 тим, чим вона є — і чому кожен компроміс був правильним.

I.

Чому два пристрої, а не один.

Один пристрій — це єдина точка відмови — і єдина точка примусу. З одним телефоном, одним PIN, однією біометрією Ви та атакуючий, що тримає Ваш телефон, функціонально нерозрізнимі для замка. Два пристрої дають замку другий голос, в якого можна запитати перед відкриттям. Ціна — володіти другим телефоном. Користь — що перший телефон наодинці не закінчує Вас.

II.

Чому відкрито, а не непрозоро.

Privacy-продукт із закритим кодом — це продукт, що просить довіри на словах. Я не хочу такої довіри — вона не переживає одного поганого новинного тижня. Тому я публікую код, протоколи, аудити, архітектуру. Якщо я колись зашию бекдор — opensource-спільнота побачить його раніше за моїх інвесторів.

III.

Чому повільно, а не швидко.

Споживчий месенджер випускає фічу за спринт і вибачається потім. Я не можу випросити собі пробачення за зламане шифрування. Тому я випускаю повільно, лише коли математика готова. Інвестори, що хочуть зростання хокейною ключкою, зазвичай йдуть від мене. Це теж частина дизайну.

— Ось архітектура —

Вісім розділів. П'ять шарів. Два пристрої.
Одне зобов'язання — перевірюваність.

Якщо Ви хочете прочитати криптографічне занурення, протокол двох пристроїв чи режими, що захищають Вас під тиском — сторінки Security ідуть шар за шаром.