#c #openssl #nmap
Вопрос:
Для Всех,
Я пишу службу, работающую по протоколу HTTPS, которая принимает безопасное соединение с использованием Openssl. После этого я протестировал SSL-соединение с помощью nmap со следующей командой:
nmap --script ssl-enum-ciphers -p 443 192.168.2.1
Nmap scan report for 192.168.2.1
Host is up (0.0029s latency).
PORT STATE SERVICE
443/tcp open https
| ssl-enum-ciphers:
| TLSv1.2:
| ciphers:
| TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384 (secp256k1) - A
| TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (secp256k1) - A
| compressors:
| NULL
| cipher preference: client
|_ least strength: A
Однако, если аргумент-sV добавлен, то он отображает следующее
nmap --script ssl-enum-ciphers -sV -p 443 192.168.2.1
Starting Nmap 7.01 ( https://nmap.org ) at 2021-05-25 09:15 CST
Nmap scan report for 192.168.2.1
Host is up (0.0030s latency).
PORT STATE SERVICE VERSION
443/tcp open ssl/https?
Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 12.79 seconds
-sV используется для проверки информации о сервисе/версии, мне интересно, это потому, что я использую только ECHDE?
В любом случае, вот как я настраиваю свое SSL-соединение (удалите проверку ошибок для удобства чтения).
SSL_library_init();
SSL_load_error_strings();
CTX = SSL_CTX_new(TLSv1_2_server_method());
SL_CTX_set_cipher_list(ctx, "ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-SHA384");
SSL_CTX_ctrl((CTX),SSL_CTRL_SET_ECDH_AUTO,1,NULL);
SSL_CTX_use_certificate_file(CTX, pem, SSL_FILETYPE_PEM);
SSL_CTX_use_PrivateKey_file(CTX, pem, SSL_FILETYPE_PEM);
SSL_CTX_use_certificate_chain_file(CTX, chain);
Я подозреваю, что шифры ECDHE, потому что, если я использую список шифров «AES128-SHA256:AES256-SHA256:AES128-GCM-SHA256:AES256-GCM-SHA384», все, кажется, работает нормально.
Любая помощь будет признательна, спасибо.