Почему соединение работает, несмотря на то, что для него указан HMAC-SHA1-ETM, который не настроен на стороне сервера?

Вопрос или проблема

Я видел другие темы по поводу похожей проблемы, и хотя конфигурация, кажется, работает нормально с указанными MAC-адресами, SSH-соединение, которое использует неуказанный MAC-адрес, все равно работает, хотя я ожидал, что это не так.

Работает ли все как задумано, и я что-то упускаю или в этом что-то не так? Оба версии SSH (клиент и сервер) указаны в фрагменте вместе с содержимым пользовательского файла конфигурации SSH, который ограничивает подключения до указанных MAC-адресов.

PS C:\Users\kamil> ssh -m [email protected] -t debian12 "ssh -V && echo --- && sudo sshd -T | egrep '^macs' && echo --- && cat /etc/ssh/sshd_config.d/60-remove-insecure-mac.conf"
OpenSSH_9.2p1 Debian-2+deb12u3, OpenSSL 3.0.14 4 Jun 2024
---
macs [email protected],[email protected],[email protected],hmac-sha2-512,hmac-sha2-256,[email protected]
---
Ciphers [email protected],[email protected],[email protected],aes256-ctr,aes192-ctr,aes128-ctr
KexAlgorithms [email protected],ecdh-sha2-nistp521,ecdh-sha2-nistp384,ecdh-sha2-nistp256,diffie-hellman-group-exchange-sha256
MACs [email protected],[email protected],[email protected],hmac-sha2-512,hmac-sha2-256,[email protected]
Connection to 127.0.0.1 closed.

-Потому что, к сожалению, MAC-адрес напрямую относится только к аппаратному устройству, MAC-адрес не меняется, хорошо! Чтобы решить эту проблему, вам нужен только программный инструмент, который даст возможность изменить этот адрес, хорошо! Этот MAC-адрес, который он не ограничил в соединении, должен быть в предыдущем списке, который помогает контролировать соединения.

Вывод отладки (-vvv) показывает следующее:

debug1: kex: server->client cipher: [email protected] MAC: <implicit> compression: none
debug1: kex: client->server cipher: [email protected] MAC: <implicit> compression: none

В основном это означает, что он откатывается к [email protected] шифру, который имеет свой собственный неявный MAC. Если вы отклоните этот шифр в конфигурации sshd (или ssh на стороне клиента), добавив Ciphers [email protected] в конфигурацию, соединение должно быть отклонено:

Unable to negotiate with 127.0.0.1 port 22: no matching MAC found. Their offer: [email protected],[email protected],[email protected],hmac-sha2-512,hmac-sha2-256,[email protected]

Ответ или решение

Почему соединение работает, несмотря на указание HMAC-SHA1-ETM, не настроенного на стороне сервера?

В данной ситуации, несмотря на отсутствие определенного механизма аутентификации HMAC-SHA1-ETM на сервере, соединение по-прежнему устанавливается. Это может показаться непривычным на первый взгляд, однако объясняется особенностями работы протокола SSH и механизмами согласования параметров между клиентом и сервером.

Особенности работы SSH-протокола

  1. Согласование параметров: Протокол SSH предусматривает механизм согласования, в рамках которого клиент и сервер обмениваются списками своих поддерживаемых алгоритмов. В процессе установления соединения клиент отправляет серверу список алгоритмов, которые он поддерживает, включая алгоритмы для шифрования, обмена ключами и HMAC (Message Authentication Code).

  2. Имплицитные MAC-алгоритмы: В случае, если явно указанный клиентом MAC, такой как HMAC-SHA1-ETM, отсутствует на сервере, может произойти использование имплицитного механизма аутентификации, поддерживаемого выбранным шифром. Как видно из отладки (-vvv), клиенту удалось установить соединение с использованием другого шифра, у которого есть свой собственный имплицитный MAC. Это означает, что сервер имеет возможность согласовать соединение с использованием своих параметров, даже несмотря на то, что указанный HMAC отсутствует в его конфигурации.

Примеры из отладки

В приведенном вами выводе отладки указано:

  • client->server cipher: [cipher]
  • MAC:

Это показывает, что соединение происходит с использованием имплицитного MAC, предоставленного шифром, выбранным в ходе согласования. Это поведение является нормальным и ожидаемым в рамках спецификации SSH.

Возможные решения

Если требуется запретить использование несанкционированных MAC-алгоритмов, можно предпринять следующие шаги:

  1. Обновление конфигурации сервера SSH: Убедитесь, что в конфигурациях сервера (например, sshd_config) указаны только разрешенные MAC-алгоритмы. Например, указывая:

    MACs hmac-sha2-512,hmac-sha2-256

    вы предотвращаете возможность использования любых других, включая HMAC-SHA1-ETM.

  2. Тестирование с учетом изменений: После изменения конфигурации необходимо перезапустить службу SSH и протестировать соединение. Это позволит убедиться, что только разрешенные алгоритмы MAC активны и что соединения, использующие непредусмотренные алгоритмы, будут отклонены.

  3. Логирование и мониторинг: Регулярно проверяйте логи сервера SSH для обнаружения нежелательных попыток соединения и других возможных нарушений безопасности.

Заключение

Это поведение — результат гибкости в протоколе SSH, позволяющего клиентам и серверам адаптироваться к совместимым параметрам в процессе соединения. Понимание этих механизмов и тщательная настройка параметров безопасности помогут минимизировать риски и обеспечить надежную и безопасную работу сетевых соединений.

Оцените материал
Добавить комментарий

Капча загружается...