wget TLSv1 se comporta da mesma maneira que TLSv1_2

0

Eu usei wireshark para comparar curl --tlsv1.0 vs --tlsv1.2

O handshake do servidor obedientemente usa TLSv1.0 para servidores que o suportam (o objetivo é verificar para validar se eles não o fazem):

wget url --no-check-certificate --secure-protocol=TLSv1 behaves the same as --secure-protocol=TLSv1_2: the handshake uses TLS1_2 every time.

Obviamente, não há --secure-protocol=TLS1_0 . Como eu forço o wget a obedecer usando 1_0 não 1_2?

wget: --secure-protocol: Invalid value ‘TLSv1_0’

GNU Wget 1.17.1 construído em cygwin.

    
por phydroxide 16.03.2016 / 22:56

1 resposta

1

Lendo o código-fonte, você pode ver as possibilidades. Esta fatia se parece com o que você quer:

case secure_protocol_tlsv1:
  err = gnutls_priority_set_direct (session, "NORMAL:-VERS-SSL3.0", NULL);
  break;

case secure_protocol_tlsv1_1:
  err = gnutls_priority_set_direct (session, "NORMAL:-VERS-SSL3.0:-VERS-TLS1.0", NULL);
  break;

qual (veja init.c ) parece seja "tlsv1_1" :

static bool
cmd_spec_secure_protocol (const char *com, const char *val, void *place)
{
  static const struct decode_item choices[] = {
    { "auto", secure_protocol_auto },
    { "sslv2", secure_protocol_sslv2 },
    { "sslv3", secure_protocol_sslv3 },
    { "tlsv1", secure_protocol_tlsv1 },
    { "tlsv1_1", secure_protocol_tlsv1_1 },
    { "tlsv1_2", secure_protocol_tlsv1_2 },
    { "pfs", secure_protocol_pfs },
  };
  int ok = decode_string (val, choices, countof (choices), place);
  if (!ok)
    fprintf (stderr, _("%s: %s: Invalid value %s.\n"), exec_name, com, quote (val));
  return ok;
}
    
por 16.03.2016 / 23:38