O servidor TLS está fazendo algo que não entendo.
- O handshake TCP é executado normalmente.
- O cliente SSL Hello é executado normalmente.
- Servidor SSL Olá parece normal. Fornece certificado, diz Server Hello Done.
- Dissecção mostra problemas do cliente "Troca de chave do cliente, alteração de especificação de cifra, mensagem de handshake criptografada"
- Dissecção mostra problemas de servidor "Alterar especificação de cifra" e depois "Mensagem de handshake criptografada"
O cliente agora ACKs, começa a enviar dados. Mas os ACKs do servidor enviam um "Alerta Criptografado" e os FINs são enviados.
Isso aconteceu logo após a troca de certificados. O certificado apresentado no handshake SSL é a nova chave.
Pista, alguém?
Responder1
Provavelmente é devido a um problema de SNI com o cliente ou algum dispositivo intermediário, como um balanceador de carga. O dispositivo de balanceamento de carga deve ser capaz de apresentar o nome do servidor ao host back-end como parte do Client Hello inicial. verhttps://en.m.wikipedia.org/wiki/Server_Name_Indication
Responder2
O pacote mais importante é o “Alerta Criptografado”, pois contém o motivo pelo qual a conexão foi encerrada.
Parece ser um erro de validação. Isso significa que o certificado não é confiável ou é inválido. Mas o verdadeiro motivo é enviar através doProtocolo de alerta TLS
Responder3
Encontrei um problema semelhante no pure-ftpd
modo TLS explícito (servidor FTPS).
No meu caso, porém, houvenão Encrypted Alert
enviado do servidor; apenas foi encontrado imediatamente após a troca de chaves ( Change Cipher Spec, Finished
mensagem do servidor → FIN do servidor). Próximo,o clienteenviou o Encrypted alert
código 0 de nível 1 Close Notify
(o que é esperado - ao contrário do servidor FIN).
Isso aconteceu apenas com um único cliente específico (um firmware de dispositivo) e não foi reproduzido com outros clientes FTP.
Não desenterrei a raiz do problema, mas suspeito que atingimos umbug do servidor. pure-ftpd
usa modelo de bifurcação por conexão semelhante ao Apache; e eu observeio processo filho travandono gdb (saindo com o código -1) - o que obviamente leva o sistema operacional a fechar o soquete FD e enviar FIN.
Mais uma razão para dizer que é um bug de servidor no meu caso – o comportamento parou de ser reproduzido assim que trocamos o servidor FTPs por uma implementação diferente, proftpd
.
Não acho que isso corresponda ao caso do OP - aí, o servidor encerra a conexão de maneira apropriada ao TLS, com Alerta Criptografado - mas, mesmo assim, é algo a considerar para quem acessa esta página.