OpenSSL сообщает, что шифровальный код для данного веб-сервера ECDHE-RSA-AES128-SHA256:
$ openssl s_client -connect 10.87.0.51:12656 </dev/null | grep Cipher
depth=0 C = VE, ST = xxxx, L = xxxxx, O = xxxxx, CN = xxxx.xxx.xx, emailAddress = xxxx@xxxxx.com
verify error:num=18:self signed certificate
verify return:1
depth=0 C = VE, ST = xxxxx, L = xxxxx, O = xxxxx, CN = xxxxxx.xx.xx, emailAddress = xxxx@xxxxx.com
verify return:1
DONE
New, TLSv1/SSLv3, Cipher is ECDHE-RSA-AES128-SHA256
Cipher : ECDHE-RSA-AES128-SHA256
GnuTLS соглашается с AFAIK (не уверен в том, как интерпретировать часть AES CBC, поскольку она использует другую номенклатуру)
$ gnutls-cli --no-ca-verification -p 12656 10.87.0.51 < /dev/null | sed -n '/Description/,$p'
- Description: (TLS1.2)-(ECDHE-RSA-SECP256R1)-(AES-128-CBC)-(SHA1)
- Session ID: 5B:B6:66:65:8F:82:29:8B:5C:45:50:29:2F:6C:2D:7A:2C:C8:C0:EE:EB:CC:B7:79:19:1C:26:EA:97:CA:D6:A9
- Ephemeral EC Diffie-Hellman parameters
- Using curve: SECP256R1
- Curve size: 256 bits
- Version: TLS1.2
- Key Exchange: ECDHE-RSA
- Server Signature: RSA-SHA256
- Cipher: AES-128-CBC
- MAC: SHA1
- Compression: NULL
- Options: safe renegotiation,
- Handshake was completed
- Simple Client Mode:
Но SSLscan / openssl говорит, что это не удалось при тестировании:
$ sslscan 10.87.0.51:12656 | grep -e Accepted -e ECDHE-RSA-AES128-SHA256
Failed TLSv1 128 bits ECDHE-RSA-AES128-SHA256
Accepted TLSv1 128 bits ECDHE-RSA-AES128-SHA
Accepted TLSv1 128 bits AES128-SHA
Accepted TLSv1 128 bits ECDHE-RSA-RC4-SHA
Accepted TLSv1 128 bits RC4-SHA
Accepted TLSv1 128 bits RC4-MD5
Accepted TLSv1 112 bits ECDHE-RSA-DES-CBC3-SHA
Accepted TLSv1 112 bits DES-CBC3-SHA
Я ошибаюсь, чтобы увидеть здесь противоречие? Я абсолютно новичок в этом.
Изменить: SSLscan на самом деле не отправляет сервер Hello для ECDHE-RSA-AES128-SHA256, но вместо этого дважды подключается по протоколу TCP и отключается, возвращая «Подпрограммы SSL / ssl3_client_hello / нет доступных шифров». Мне нужно копаться дальше в SSLscan.