O que é StartTLS?
Publicados: 2020-03-21Você já se perguntou como o e-mail é enviado com segurança de um servidor para outro? Ao usar o Simple Mail Transfer Protocol (SMTP) para enviar e-mails, contamos com uma combinação de StartTLS e Transport Layer Security (TLS) ou Secure Sockets Layer (SSL) para criptografar nossos e-mails e ajudá-los a chegar com segurança à caixa de entrada.
Mas o que é StartTLS?
StartTLS é um comando de protocolo usado para informar ao servidor de e-mail que o cliente de e-mail deseja atualizar de uma conexão insegura para uma segura usando TLS ou SSL. StartTLS é usado com SMTP e IMAP, enquanto POP3 usa o comando ligeiramente diferente para criptografia, STLS.
Analisaremos as diferenças entre TLS e SSL, o processo StartTLS e como testar o StartTLS para seu programa.
Como o StartTLS funciona?
TLS vs. SSL
Mesmo que “TLS” esteja em seu nome, o StartTLS funciona com ambos os protocolos de criptografia, TLS e SSL.
Embora o StartTLS funcione com ambos os protocolos, recomendamos o uso de TLS sobre SSL. O SSL é um protocolo mais antigo e não é tão seguro quanto seu sucessor, o TLS. SSLv2 e SSLv3 foram preteridos.
Para referência, aqui está uma lista de protocolos SSL e TLS, do mais antigo ao mais recente:
SSLv2, SSLv3, TLSv1.0, TLSv1.1, TLSv1.2, TLSv1.3
Tanto o cliente de e-mail quanto o servidor de e-mail precisam concordar sobre qual conexão usar. O cliente de e-mail pode suportar TLSv1.3, mas o servidor de e-mail pode suportar apenas até TLSv1.2. Isso significa que ambas as partes precisarão usar o TLSv1.2 para prosseguir com a criptografia.
Para obter ainda mais informações sobre TLS versus SSL, confira nossa página de documentos .
O processo StartTLS
O SMTP sempre inicia sem criptografia. O comando StartTLS inicia a negociação entre servidor e cliente. Aqui está um esboço da comunicação que acontece entre o cliente de e-mail e o servidor de e-mail.
- O processo começa com o handshake do Transmission Control Protocol (TCP) para ajudar o cliente de e-mail e o servidor a se identificarem.
- O servidor identifica com 220 Ready que o cliente de e-mail pode prosseguir com a comunicação.
- O cliente envia ao servidor “EHLO” para informar ao servidor que o cliente gostaria de usar o SMTP estendido (a versão mais avançada do SMTP que permite incluir imagens, anexos, etc.).
- O cliente envia “250-STARTTLS” ao servidor de correio para perguntar se o StartTLS é aceito ou não.
- Se o servidor enviar de volta “vá em frente”, a conexão StartTLS pode ser criada.
- O cliente reinicia a conexão e a mensagem de email foi criptografada.
Aqui está uma representação visual do processo StartTLS.
Qual porta você deve usar?
A porta que usa o StartTLS com mais frequência é a porta 587. Geralmente, ela exige que os clientes de email usem o StartTLS para enviar emails. Outras portas usadas para enviar mensagens criptografadas são 25, 465 e 2525. Como a porta 25 foi projetada para transferência de mensagens, não para envio, seu ISP pode bloquear e-mails enviados por essa porta. A porta 465 é a segunda porta mais usada para StartTLS.
TLS oportunista vs. imposto
Há algumas maneiras diferentes de configurar seu programa de criptografia de e-mail usando TLS oportunista ou TLS forçado:
O TLS oportunista (ou TLS explícito) permite que o cliente de e-mail entregue no nível de criptografia mais alto que o servidor destinatário aceita. Se o servidor destinatário não aceitar TLS, o cliente de e-mail negociará com o servidor e concordará em fazer o downgrade para uma conexão não criptografada. A mensagem será então enviada em um formato de texto simples não criptografado. Esse método é útil porque você pode usar a mesma porta para mensagens criptografadas e de texto simples.
O TLS imposto (ou TLS implícito) exige que o email seja enviado por uma conexão segura. Se a conexão não for criptografada, o e-mail será bloqueado para envio. Esse método é muito mais seguro do que o TLS Oportunístico, mas leva a que mais emails sejam descartados.
Ambas as abordagens são amplamente utilizadas no mundo do e-mail, portanto, considere o que faz mais sentido para o seu programa. Se você estiver enviando um e-mail que contenha informações pessoais confidenciais, talvez seja melhor usar o TLS imposto. Por outro lado, se você estiver enviando material não confidencial, como marketing ou promoções, poderá estar mais inclinado a usar o TLS oportunista.
Outros casos de uso de TLS
O TLS é frequentemente usado para criptografar uma variedade de métodos de comunicação fora do e-mail. Como o TLS é um protocolo de várias etapas relativamente simples, ele facilita o ajuste para uma variedade de tipos de comunicação. Isso inclui navegadores da Web, SMS e Voz sobre IP. Na verdade, muitas empresas usam o TLS para criptografar todas as comunicações entre seus servidores da Web e navegadores, mesmo que a maior parte da comunicação não seja material confidencial.
Para obter mais informações sobre como o Twilio usa o TLS, confira a página de segurança do Twilio .
Por que o StartTLS é importante?
O SMTP não é protegido por padrão, o que significa que, se você enviar um email por SMTP sem StartTLS, o email poderá ser interceptado e facilmente interpretado. Isso é especialmente preocupante ao enviar informações pessoais confidenciais, como nomes de usuário, senhas ou informações bancárias.
Sem o StartTLS, suas informações pessoais correm o risco de serem roubadas.
Quando um cliente de e-mail usa o StartTLS, ele informa ao servidor que o conteúdo deve ser criptografado. Dessa forma, se o e-mail for interceptado, o conteúdo foi embaralhado e é muito difícil de decifrar. O servidor de e-mail e o cliente de e-mail são os únicos que possuem a chave para decodificar a mensagem.
Desvantagens
Existem algumas desvantagens em usar o StartTLS. Os clientes de e-mail são suscetíveis a ataques man-in-the-middle porque, na conexão inicial entre o cliente de e-mail e o servidor, os endereços IP não são criptografados.
O uso do StartTLS também pode adicionar alguma latência à conexão SMTP. Isso não seria um atraso suficiente para tornar necessário o envio de e-mail não criptografado, mas é bom ter em mente.
Como faço para testar o StartTLS?
É importante testar com antecedência para garantir que o servidor seja capaz de processar StartTLS. Se ele não for capaz de processar o StartTLS, você poderá enviar acidentalmente uma boa quantidade de e-mail que não está criptografado e, portanto, é suscetível a vetores de ataque.
Aqui está um exemplo de como você testaria o StartTLS do servidor SMTP do SendGrid.
Como o Twilio SendGrid usa o StartTLS?
O Twilio SendGrid oferece suporte a TLS v1.1 e superior. Conexões não criptografadas e TLS são aceitas nas portas 25, 587 e 2525. Ou você pode se conectar por meio de SSL na porta 465.
Seguimos o TLS Oportunístico e enviamos no nível de criptografia mais alto que o servidor destinatário aceita. Também oferecemos TLS forçado . É sua escolha se deseja ou não que seu e-mail seja enviado por uma conexão criptografada. Se o servidor destinatário não aceitar mensagens criptografadas, a mensagem será descartada e enviaremos um evento de bloqueio.
Você interagiria principalmente com o StartTLS ao iniciar a solicitação SMTP para o Twilio SendGrid, solicitando o envio de e-mail. Caso contrário, o Twilio SendGrid lida com a correspondência dos certificados TLS, o restante do processo de criptografia e quaisquer problemas que possam surgir ao longo do caminho.
Para obter mais informações sobre o Twilio SendGrid e SMTP, acesse nosso artigo de documentação, Como enviar um email SMTP .