However, to the best of my knowledge, when it comes to mail-server-to-mail-server communications, most emails are still transferred in plain text and not encrypted, making it possible to anybody on the network to read their content.
Correto. O SMTP, como o HTTP, é um texto simples por padrão.
Atualmente, muitos servidores de e-mail oferecem suporte a TLS (anteriormente conhecido como SSL) para SMTP. (Isso inclui o Gmail.) No entanto, ele tem os mesmos problemas que com os certificados HTTP [S]: emitidos por CAs bem conhecidos. > custam dinheiro, e os auto-assinados são inúteis para proteger contra ataques MitM . Se o seu servidor de e-mail fizer uma validação estrita do certificado do destinatário (como os navegadores da web), ele poderá falhar ao enviar mensagens para servidores que estejam usando certificados autoassinados ou CAs internas. Se não , então não pode ter certeza de que está falando com o servidor certo e não um impostor .
Além disso, o TLS é uma adição relativamente recente ao SMTP, portanto, mesmo quando o servidor de email do destinatário oferece suporte a TLS, o remetente pode não estar ativado ou desativado (os administradores de sistemas são espécies com preguiça).
Are there any technologies that give the user some guarantees that his emails are sent securely from end to end ?
Dois padrões de segurança de e-mail mais comuns:
-
OpenPGP , baseado em uma rede de confiança e livre para usar. A implementação de código aberto é GnuPG ( para Windows , para o Thunderbird , e o PGP original evoluiu para o comercial PGP Desktop .
Para clientes de e-mail baseados na Web, FireGPG é uma possibilidade- droga -
S / MIME , com base na infraestrutura X.509. Implementado pela maioria dos clientes de desktop (incluindo Outlook, Thunderbird, Mail.app). No entanto, relativamente impopular devido à mesma estrutura baseada em autoridade que o TLS / SSL: os certificados assinados custam dinheiro e os auto-assinados não podem ser validados de forma confiável.
Em ambos os casos, criptografia requer que o destinatário já esteja usando o sistema e tenha gerado / obtido um par de chaves. (Para assinar , o par de chaves do remetente é usado. O uso normal é assinar e criptografar as mensagens.)
Why not let the user know when encryption is not supported and let him choose if he wants his email to be still delivered ?
Normalmente as mensagens enviadas são enfileiradas , e nem o usuário nem o MTA podem saber se o próximo salto suporta TLS ou não - até que a mensagem seja enviada , na qual ponto não há maneira confiável de pedir ao usuário para confirmação. (Eles podem ser AFK, offline, dormindo ou um script / programa. Se eu enviei a mensagem, quero que ela seja entregue o mais rápido possível.)
Além disso, com o SMTP você nunca sabe se o próximo salto é final ou se apenas retransmitirá o email para outro lugar. Não é incomum que um MX de backup esteja em uma rede totalmente diferente.
Portanto. segurança end-to-end só é possível quando ambos os lados estão usando OpenPGP ou S / MIME.