A segurança dos e-mails aprimorada com DKIM e SPF - Escola da Programação
A segurança dos e-mails aprimorada com DKIM e SPF
Um tópico de grande relevância na Internet é a segurança dos e-mails. Em busca disso, a utilização de mecanismos modernos como o DKIM e SPF são cruciais.
A segurança dos e-mails vem sendo debatida e bastante melhorada nos últimos anos.
Grandes empresas do setor de tecnologia abraçaram a causa visando diminuir o volume de spams, bem como a redução de práticas criminosas aplicadas sobre os usuários da rede.
Há pouco mais de 6 anos, foi realizada a mudança da porta padrão do SMTP (Simple Mail Transfer Protocol) para tornar mais fácil a identificação de anomalias nas transferências de e-mails.
No entanto, ainda temos um caminho longo a ser percorrido na busca de novas formas de aperfeiçoamentos. Hoje, vou apresentar dois mecanismos não tão novos, mas ainda pouco difundidos: DKIM e SPF.
Fonte: https://www.dinamize.com.br/blog
O que é o SPF (Sender Policy Framework)?
O SPF foi introduzido como uma forma de validar se as mensagens foram enviadas por um servidor de e-mail autorizado pelo detentor de determinado domínio.
Isso porque, ao preparar uma mensagem para envio, é possível informar qualquer remetente (fulano@dominio.com.br), mesmo que você não seja o dono do domínio.
Sendo assim, para furar a segurança dos e-mails, um spammer ou qualquer outra pessoa pode se utilizar disso para enviar e-mails falsos em nome de outros.
Os servidores de e-mail (Gmail, Outlook etc), ao receberem qualquer mensagem, validam junto ao domínio do remetente qual ou quais são os servidores (IPs) permitidos a enviarem em seu nome.
Assim, dado a política de cada servidor, a mensagem pode ser recebida ou rejeitada. Além do que, as entidades que mantém black/white lists, podem ser alertadas para qualquer uso indevido.
O que é e como funciona SPF
A criação do SPF é feita adicionando-se uma chave TXT na configuração de registros DNS do domínio. Para que seja válida, deve ser as seguintes diretrizes:
Um registro SPF deve sempre começar com o número da versão v=spf1 (versão 1).
Após incluir a tag de versão, você deve informar todos os endereços IP autorizados a enviar e-mail em seu nome. Por exemplo: v=spf1 ip4:18.229.190.53 ip6:0:0:0:0:0:ffff:12e5:be35
Em seguida, você pode informar todos os serviços de terceiros que podem enviar e-mails em seu nome. Por exemplo: v=spf1 ip4:18.229.190.53 include:servicoterceiro.com.br
A última definição é a política a ser aplicada aos e-mails provenientes de fontes não autorizadas.
-all: servidores não listados não estão autorizados e os e-mails serão rejeitados.
~all: servidores não listados terão os e-mails aceitos, porém, serão marcados.
+all: aceita e-mails provenientes de qualquer fonte (não recomendado).
Após a criação do registro, é possível validar se o mesmo está em conformidade com o padrão nesse site.
O que é o DKIM (Domain Keys Identified Mail)?
O DKIM é um mecanismo para assinatura e autenticação com um par chaves pública/privada das mensagens de e-mails enviadas. Enquanto o SPF garante a autenticidade do servidor, o DKIM certifica ao destinatário que a mensagem não foi alterada até ser entregue.
Fazendo uma analogia, o SPF seria a garantia de que o carteiro que entregou a carta (e-mail) é realmente um funcionário dos Correios, e o DKIM de que a carta não foi violada e seu conteúdo modificado entre a coleta e a entrega.
Como funciona o DKIM
A assinatura DKIM é gerada pelo MTA (Mail Transfer Agent). Ele cria uma sequência única de caracteres através de uma função de Hash.
Esse valor é então armazenado nas configurações de DNS do domínio. Após receber o e-mail, o destinatário pode verificar a assinatura usando a chave pública registrada no DNS.
Ele usa essa chave para descriptografar o valor de hash no cabeçalho e recalcular o valor de hash do e-mail recebido. Se essas duas assinaturas DKIM forem correspondentes, o MTA saberá que o e-mail não foi alterado.
Isso, portanto, confirma ao usuário que o e-mail foi realmente enviado do domínio listado.
O primeiro passo é realizar o inventário de todos os domínios que farão envios dos seus e-mails.
Em seguida, é preciso instalar e configurar nos servidores de e-mail o software responsável por assinar cada mensagem antes do envio. O site do DKIM.org tem uma relação dos softwares e serviços e, ainda, como realizar a configuração.
Após isso, é preciso criar o par de chaves pública/privada DKIM. Eu utilizei o DKIM Wizard da SparkPost.
Com a chave pública em mãos, é preciso publicá-la em um registro TXT do DNS com o nome utilizado no wizard.
Já a chave privada deve ser adiciona em seu servidor no aplicativo responsável por assinar digitalmente seus e-mails.