The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



"TCP-S: шифрование трафика на 4 уровне модели OSI."
Вариант для распечатки  
Пред. тема | След. тема 
Форум Информационная безопасность (ПО для увеличения безопасности)
Изначальное сообщение [ Отслеживать ]

"TCP-S: шифрование трафика на 4 уровне модели OSI."  +/
Сообщение от Luisemail (ok), 04-Май-26, 16:06 
Всем привет.
Я давно озадачился вопросом о том, как избавить себя от трудозатрат на внедрение систем централизованного управления сертификатами, дополнив существующий транспорт протокола TCP/IP - шифрованием.

Мы знаем что, весь маршрут с точки зрения наблюдателя обозримой среды, смотрится и анализируется, где каждый может просматривать содержимое условных единиц на содержание и для каждой единицы нужны методы сокрытия информации.
В итоге и получилось решение в виде модуля расширения надстройки протокола tcp, используя netfilter хуки LOCAL_OUT и PRE_ROUTING, прозрачно шифруя вообще все TCP-сокеты на хосте, при условии установки модуля на клиент и сервер - и весь трафик между ними автоматически идёт в криптованном виде, что даёт преимущество по времени эффективности решения задачи для целей пресечения демаскированию данных.

Протокол интегрируется прямо в TCP-рукопожатие, используя кастомные TCP-опции (kind=253):
* SYN-пакеты несут 36-байтовую TC-опцию с эфемерным публичным ключом X25519.
* SYN-ACK возвращает такую же опцию с публичным ключом сервера.
* После обмена ключами через ECDH (X25519) вычисляется общий секрет, из которого по методу HKDF-Expand выводятся четыре ключа: enc_c2s / enc_s2c / mac_c2s / mac_s2c.
* Все TCP-данные шифруются поточным шифром ChaCha20, размер пакета не меняется.
* Каждый пакет с данными или FIN содержит Poly1305 MAC в виде TM-опции (20 байт). Ключ для Poly1305 уникален для каждого пакета и вычисляется из позиции в потоке, а MAC-токен покрывает флаги TCP — защита от подмены флагов и инъекции пакетов.

После установки шифрованного канала происходит аутентификация по модели TOFU (Trust On First Use): статический identity-ключ (генерируется при загрузке модуля, хранится только в RAM) верифицируется через auth_tag. При первом соединении публичный ключ пира запоминается в кеше (IP → pubkey), при последующих сверяется. Несовпадение или неверный auth_tag — MITM-атака → пакет дропается.

Безопасность и защита от downgrade-атак:
* Forward secrecy: эфемерные ключи уничтожаются (memzero_explicit) сразу после деривации сессионных.
* Downgrade-защита: параметр enforce=1 заставляет модуль дропать любые non-TCPS соединения (SYN без TC-опции). Без этого — fallback к обычному TCP для совместимости.
* RST injection: входящие RST-пакеты в зашифрованном состоянии игнорируются, соединение разрывается только через FIN или GC timeout.
* Timing-атаки: сравнение MAC через crypto_memneq (constant-time).
* Отсутствие зависимости от OpenSSL: вся криптография на kernel crypto API (libcurve25519) и собственной реализации Poly1305 на 26-битных лимбах.

Ограничения:
* IPv4 only (IPv6 пока не поддерживается).
* TOFU при первом соединении — как SSH, доверие без верификации. Для критичных сценариев рекомендуется сверить fingerprint через dmesg.
* Лимит в 4096 одновременных соединений.
* auth_tag 4 байта (32-битная безопасность для identity verification).
* Pure ACK не аутентифицируются (нет MAC).

Модуль работает на arm64 и amd64.
После загрузки любое TCP-соединение между хостами с модулем автоматически шифруется, будь то PostgreSQL, HTTP или SSH.
Проверить работу можно через dmesg | grep tcps или tcpdump: SYN-пакеты будут содержать unknown-253 опции, а payload станет нечитаемым.

Репозиторий: https://github.com/Last-Guy-In-Stars/TCP-S
Лицензия MIT, так что форкайте, экспериментируйте и используйте на своё усмотрение.

Ответить | Правка | Cообщить модератору

Оглавление

Сообщения [Сортировка по времени | RSS]


1. Скрыто модератором  +/
Сообщение от Аноним1234 (?), 04-Май-26, 17:18 
Ответить | Правка | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2026 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру