openssl s_client, GnuTLS, sslscan discordam em cifras suportadas

1

OpenSSL diz que o processo de criptografia para um determinado servidor da Web é 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 = [email protected]
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 = [email protected]
verify return:1
DONE
New, TLSv1/SSLv3, Cipher is ECDHE-RSA-AES128-SHA256
    Cipher    : ECDHE-RSA-AES128-SHA256

O GnuTLS concorda com a AFAIK (não tenho certeza sobre como interpretar a parte AES CBC, pois ela usa uma nomenclatura diferente)

$ 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:

Mas SSLscan / openssl diz que falhou ao testar:

$ 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

Estou errado em ver uma contradição aqui? Eu sou completamente novo nisso.

Editar : SSLscan realmente não envia um Servidor Hello para ECDHE-RSA-AES128-SHA256, mas em vez disso conecta TCP e desconecta duas vezes , retornando “rotinas SSL / ssl3_client_hello / no ciphers available ”. Eu preciso ir mais fundo no SSLscan.

    
por arielCo 04.10.2018 / 21:36

1 resposta

0

Durante o handshake de TLS inicial, um cliente envia uma mensagem Client Hello que contém, entre outras coisas, um número de versão, método de compactação solicitado, extensões (como SNI) e, importante neste caso, uma lista de conjuntos de criptografia que o cliente suporta.

O servidor responde com uma mensagem Server Hello , que contém vários elementos, incluindo o certificado do servidor, uma solicitação opcional para um certificado de cliente e, mais importante, a suíte chipher escolhida selecionada da lista previamente submetido.

No seu exemplo, o servidor é fixo e o cliente é alterado. Portanto, o conjunto de criptografias selecionado está ligado aos diferentes recursos de seus clientes.

    
por 05.10.2018 / 08:54

Tags