DMARC - Domain-based Message Authentication, Reporting, and Conformance

O DMARC (Domain-based Message Authentication, Reporting, and Conformance) é uma especificação de segurança projetada para proteger os domínios de e-mail contra abusos, como o spoofing e o phishing. Ele funciona estendendo duas outras tecnologias de autenticação de e-mail, SPF - Sender Policy Framework e DKIM - DomainKeys Identified Mail, com uma política definida que permite aos administradores de domínios especificar como os e-mails devem ser tratados se não passarem por essas verificações. Aqui exploro o processo completo de DMARC, incluindo tanto os sucessos quanto as falhas de autenticação, e como ele notifica os administradores de domínio.

sequenceDiagram
    participant A as Servidor de e-mail do remetente
    participant C as Servidor de e-mail do destinatário
    participant B as DNS (Domínio do remetente)
    participant D as Administrador do Domínio

    A->>C: Envia e-mail com cabeçalho DKIM e usando IP autorizado pelo SPF
    C->>B: Consulta registro SPF
    B->>C: Retorna IPs autorizados pelo SPF
    C->>C: Verifica se o IP do remetente está autorizado pelo SPF
    C->>B: Consulta chave pública DKIM
    B->>C: Retorna chave pública DKIM
    C->>C: Usa chave pública DKIM para verificar assinatura do e-mail
    C->>B: Consulta registro DMARC
    B->>C: Retorna política DMARC
    C->>C: Avalia resultados das verificações SPF e DKIM

    alt Ambos SPF e DKIM passam
        C->>C: Aplica política DMARC (Pass)
        C->>D: Envia relatório agregado DMARC (RUA)
    else SPF ou DKIM falha
        alt Política DMARC é 'reject'
            C->>C: Rejeita e-mail
            C->>D: Envia relatório de falha DMARC (RUF)
        else Política DMARC é 'quarantine'
            C->>C: Coloca e-mail em quarentena
            C->>D: Envia relatório de falha DMARC (RUF)
        else Política DMARC é 'none'
            C->>C: Aceita e-mail, mas marca para revisão
            C->>D: Envia relatório de falha DMARC (RUF)
        end
    end

Processo:

  • Envio e Verificação: Quando um e-mail é enviado, o servidor do destinatário inicia uma série de verificações. Primeiro, ele consulta o registro SPF para verificar se o IP do servidor remetente está autorizado. Em seguida, verifica a assinatura DKIM para garantir que o conteúdo do e-mail não foi alterado.
  • Consulta DMARC: Após as verificações SPF e DKIM, o servidor consulta o registro DMARC para entender a política que deve ser aplicada se as verificações anteriores falharem.
  • Aplicação de Política e Notificações:
    • Sucesso: Se ambos SPF e DKIM são validados com sucesso, o e-mail é aceito. Dependendo da configuração, um relatório agregado (RUA) pode ser enviado ao administrador do domínio, indicando sucesso na autenticação.
    • Falha: Se houver falha em qualquer uma das verificações, a ação depende da política DMARC:
      • Rejeitar: E-mails são rejeitados.
      • Quarentena: E-mails são marcados como suspeitos.
      • Nenhum: E-mails são aceitos mas marcados para revisão.
    • Em todos os casos de falha, um relatório de falha (RUF) detalhando a ocorrência é enviado ao administrador do domínio.