Skip to main content

Этапы работы

Пакеты имеют вид:
* Шифрованный: encrypt#L3eNlEq3LmbHEtC7Wml3uRQQq
  - encrypt - показатель, что сообщение зашифрованно ключом сервера (см.)
  - далее пакет имеет то же самое, что и нешифрованный пакет
* Нешифрованный (после регистрации): none#sender#2025_07_01_20_00#8t9SFvRgcV6jOldEbWyq6LCMg#someuser#o0H2FoSOmhG
  - sender - ник отправителя
  - 2025_07_01_20_00 - время подписи
  - 8t9SFvRgcV6jOldEbWyq6LCMg - строка с датой подписанная ассиметричным ключом пользователя
  - someuser - ник получателя
  - o0H2FoSOmhG - шифрованное сообщение
* При регистрации: reg#nick#rk4TNhaThMoRUPZEj6vJHY3FZ
  - nick - ник
  - rk4TNhaThMoRUPZEj6vJHY3FZ - ассиметричный публичный ключ пользователя

Ключ сервера - один из пары ключей, которые заранее сгенерированны и поставляются вместе с сервером и клиентом (для защиты от MITM)

  1. Регистрация в системе
    1. Передача публичного ключа (для подписи) и ника серверу.
    2. Принятие данных сервером, сохранение в ....
    3. Сервер отвечает "accepted"
  2. Вычисление общего симметричного ключа по Диффи-Хеллману
    1. Передача