Логотип.
 Разделы сайта Cтатьи.
Сайт в разработке!

Статистика сайта.

Посещений за день: 167
Посещений за месяц: 2330
Посещений за год: 19551


Баннеры.

DMconnect
Maksy's PWS


Статистика в картинках.

likes counter


  • Главная.
  • Новости.
  • Программы.
  • Файлы.
  • Контакты.
  • Чат "Пиво".
  • Статьи.
  • Ссылки.
  • Гостевая.
  • Как работает шифрование в DMconnect.

     Чтобы общение было приватным и надёжным, сервер использует собственный механизм шифрования. Он устроен так, чтобы посторонние не могли подглядеть сообщения или подменить их по дороге.

     Рукопожатие: общий секрет без передачи ключа.
     В начале соединения сервер и клиент обмениваются числами. Сервер придумывает случайное число и отправляет производное от него, клиент делает то же самое. Из этих значений каждый независимо вычисляет общий секретный ключ. Главное - этот ключ нигде не передаётся по сети. Даже если злоумышленник перехватит все отправленные данные, восстановить настоящий секрет он не сможет.

     Два ключа из одного секрета.
     Дальше из общего секрета делаются два разных ключа:

     - один для шифрования сообщений;

     - другой для их проверки.

     Эти ключи существуют только в рамках текущего соединения: если переподключиться, они будут новыми.

     Как упаковывается сообщение.
     Каждое сообщение проходит одинаковую обработку:

     - добавляется случайный «вектор инициализации» (IV);

     - сообщение дополняется до нужной длины и шифруется AES-256 в режиме CBC;

     - к результату прикрепляется защитная подпись (HMAC), которая позволяет проверить, не изменил ли кто-то данные.
     В сеть уходит готовый пакет: длина, зашифрованное содержимое и подпись. Получатель сначала проверяет подпись, и только если всё честно - расшифровывает сообщение.

     Интеграция в работу сервера.
     После рукопожатия соединение помечается как "шифрованное". Дальше сервер и клиент продолжают работать теми же функциями, что и обычно, просто все данные теперь проходят через криптографическую обёртку.

     Пример клиента с шифрованием.
     Вы можете посмотреть пример клиента, написанного на Python 2.7, использующий шифрование здесь: GitHub.

    >>

    BitByByte, 2000г. (2025).