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