v1.0.5

Хаб: как это работает#

Хаб — единый главный сервер termi. Он один на всех: его адрес вшит в клиент, поэтому ввести его вручную или поднять свой хаб нельзя. Пользователи создают только свои чат-серверы (termi-server), а хаб остаётся общим.

text
┌────────────┐ termi ◄────► │ ХАБ │ ◄────► termi аккаунты, контакты, личные сообщения, звонки 1 на 1 (клиент) └────────────┘ (клиент) │ │ └────────► чат-сервер ◄──────────┘ каналы, роли, голос, плагины (у каждого свой) (ваш, termi-server)

За что отвечает хаб#

чтокак
Аккаунтырегистрация и вход по имени и паролю. Пароль хранится только в виде хеша (PBKDF2). Имя — 3–16 символов: буквы, цифры, _ и -
Контакты и статусысписок контактов, «в сети / отошёл / не в сети», заблокированные
Личные сообщенияхаб пересылает их и хранит историю, но не может прочитать: сообщения шифруются у отправителя ключом на двоих (префикс e1:)
Профилиаватар, GIF-баннер, статус-фраза, «о себе», город, цвет ника
Звонки 1 на 1хаб только соединяет участников и передаёт сигнальные пакеты
Копия ключаключ шифрования переписки хранится на хабе в виде копии, зашифрованной паролем аккаунта: так вы читаете историю с нового устройства
Допуск на серверыпри входе хаб выдаёт подписанный токен; чат-сервер проверяет подпись и впускает пользователя под его именем

Что хаб НЕ делает#

  • не хранит содержимое чат-серверов (каналы, файлы, история — на самих серверах);
  • не читает личные переписки;
  • не позволяет пользователям запускать собственные хабы или менять адрес хаба в клиенте.

Как проходит вход#

  1. Клиент соединяется с хабом (шифрованный канал X25519 + AES-256-GCM, отпечаток ключа хаба запоминается при первом входе).
  2. Вы вводите имя и пароль — хаб проверяет их и отвечает токеном, списком контактов и непрочитанными сообщениями.
  3. Клиент подключается к вашим чат-серверам (адреса хранятся локально) и предъявляет им токен.

Свой чат-сервер#

Любой пользователь может поднять termi-server, добавить плагины и пригласить друзей: в клиенте — подключиться к серверу, адрес сервера. Подробности — в разделах Быстрый старт и Плагины.

Безопасность коротко#

  • Канал клиент ⇄ хаб и клиент ⇄ сервер шифруется всегда, у каждого соединения свои ключи.
  • Если у сервера или собеседника сменился ключ, клиент предупреждает и блокирует отправку, пока вы не сверите код безопасности (/safety) и не подтвердите (/trust).
  • Пароль хабу не нужен «в открытом виде» после входа: дальше работает токен с ограниченным сроком жизни.