У меня есть сервер Linux, на котором установлено соединение TCP-порта с клиентом. Могу ли я каким-то образом проверить, поддерживает ли соединение на этом порту TLS 1.2, с помощью любой из сетевых команд в базовой установке Linux или с помощью команды nmap?
Нет, SSL / TLS не является свойством базового сетевого сокета ядра, поэтому он не предоставляется никакими инструментами, такими как netstat
, ss
, и т.д.
Вам нужно будет использовать tcpdump
чтобы захватить сетевой трафик между двумя процессами и проанализировать его, особенно первоначальное рукопожатие соединения, которое должно показать вам, какая версия TLS предлагается и принимается. Я не уверен, насколько видна версия после того, как рукопожатие было выполнено.
Ах, извините, сначала я пропустил фразу «установлено TCP-соединение». Если вы знаете, как выглядит поток данных для приложения в незашифрованном виде, вы можете просто использовать TCPDump для захвата трафика и проверки того, похож ли он на данные приложения.
Если вы видите данные приложения, значит, они не зашифрованы.
--- оригинальный ответ ---
Вы можете использовать OpenSSL:
openssl s_client -connect hostname:port
Вы можете найти дополнительную информацию на https://www.openssl.org/docs/man1.0.2/apps/openssl-s_client.html