Como posso descriptografar a comunicação STARTTLS por SMTP em uma captura de pacote (se eu tiver a chave privada)?

7

Para fins de solução de problemas, preciso ver como um e-mail se parece quando é enviado para o meu servidor sendmail via SMTP. O servidor upstream requer que a conexão SMTP use STARTTLS, portanto, uma captura de pacote só mostra dados criptografados.

Existe uma maneira de usar o wireshark para descriptografar a transmissão e ver? Assumindo, é claro, que eu tenho a chave privada usada no meu servidor sendmail?

Eu vejo vários procedimentos disponíveis online referenciando o recurso RSA key lists em wireshark (por exemplo: link ). Mas isso ainda não parece estar funcionando para mim.

Isso está relacionado ao sigilo de encaminhamento? Posso simplesmente não fazer isso em protocolos / cifras mais recentes?

    
por Mike B 11.08.2017 / 19:29

2 respostas

2

O conhecimento da chave privada RSA é suficiente apenas se a troca de chaves RSA estiver concluída. Em vez disso, os sistemas modernos usam a troca de chaves Diffie Helmann (cifras DHE *, ECDHE *) para fornecer sigilo antecipado. Nesse caso, a chave privada é usada apenas na autenticação do servidor, mas não na troca de chaves, e, portanto, o conhecimento da chave privada não ajuda na obtenção das chaves de criptografia.

Em vez disso, o segredo pré-master do SSL seria necessário, pois isso é usado para derivar as chaves de criptografia. Enquanto alguns navegadores suportam a exportação deste segredo em alguns modos especiais de depuração, outros clientes normalmente não o fazem.

Quanto ao seu problema específico, eu tentaria, em vez disso, um homem no meio do "ataque", que registra todo o tráfego na planície, mesmo que o cliente receba tráfego criptografado. Isso funciona de maneira semelhante ao man nos proxies do meio para HTTPS, apenas que ele suporta a conexão simples inicial e entende que o STARTTLS é atualizado para o TLS. A partir de uma pesquisa rápida, encontrei starttls-mitm e que sslsplit tem algum suporte beta para isso. É claro que o cliente precisa se conectar ao homem no meio do proxy e confiar no certificado que obtém, que pode ser o certificado do servidor original, já que você parece ter acesso a isso.

Outra opção seria ativar a depuração no MTA específico, caso isso forneça informações detalhadas suficientes para o seu problema específico.

    
por 03.10.2017 / 08:58
2

Pode ser que o analisador do protocolo SMTP do wireshark não saiba como lidar com o TLS / SSL. Mas talvez você possa usar o analisador de protocolo HTTP. Vá para edit- > preferences- > protocols- > HTTP e adicione a porta às portas SSL / TLS

    
por 23.08.2017 / 08:25