Diferentes versões de TLS no ClientHello do mesmo cliente

0

Eu tenho um cliente python. Usando ssl.SSLContext() ( documentação aqui ) e set_ciphers(myciphers) (onde myciphers é minha lista de ciphersuites que eu mudo com cada handshake, ou seja, com cada conexão de socket). Eu posso controlar a lista de ciphersuites do cliente. O padrão SSLContext em python desabilita o SSL 2.0 e o SSL 3.0 por padrão e eu não altero as versões no código do meu cliente.

Eu envio 3 handshakes para o website usando uma lista diferente de ciphersuite em cada um. Eu não mudo a versão.

No Wireshark, o ClientHello na coluna "protocolo", vejo versões diferentes? Estou contatando o mesmo site. O cliente não altera a versão.

1) Você pode me explicar por que vejo uma versão diferente do protocolo TLS? 2) Se esta não for a versão real que a oferta do cliente (que deveria ser o TLS 1.2), onde posso obter a versão TLS do cliente real?

Aqui está uma captura de tela para esclarecer (por favor, desculpe sua forma, mas para anonimizar os sites e nomes de PC):

EDITAR: Embora a coluna ClientHello mostre TLSv1, quando clico nele, gravo e vejo a área expandida. Eu vejo isso:

> Secure Socket Layer
 > TLSv1.2 Record Layer: Handshake Protocol: Client Hello

Estou confuso. É muito importante para mim garantir que meu cliente sempre tente o TLS 1.2. Deixei o padrão do python, que deve fazer isso de acordo com a documentação.

EDIT 2: Eu vejo o filtro para ver o TLS 1.0 (como mostra a tela, há ClientHellos enviando TLSv1). Mas com esse filtro de exibição:

ssl.handshake.version==0x0301

Nenhuma mensagem ClientHell o aparece para mim. Apenas alguns ServerHello . Por favor explique para mim. Isso é um pouco confuso.

    
por user9371654 05.08.2018 / 18:18

0 respostas