Exim falso negativo na verificação DKIM

Exim falso negativo na verificação DKIM

Meu servidor de e-mail usando exim4 possui uma ACL para verificar assinaturas DKIM. Aceita tudo, mas registra falhas e escreve um cabeçalho com os resultados.

Estou enviando e-mails de outro servidor que acredito estar adicionando sigaturas DKIM corretamente. (por exemplo, enviei e-mails para endereços do Gmail e do Outlook, inspecionei os cabeçalhos e ambos os sistemas deram uma aprovação ao DKIM.) Mas meu servidor de e-mail está dizendo bodyhash_mismatch.

Meu servidor de e-mail nem sempre diz que o DKIM é uma falha.

Aqui está um e-mail. Mudei os domínios:

  • exemplo.orgEste é o domínio da organização principal; é usado noDe:cabeçalho e é o domínio do signatário. A chave pública é publicada no DNS.
  • remetente.exemplo.orgEste é o servidor que envia o email, cria o cabeçalho DKIM. É oCaminho de Retornocabeçalho.
  • receptor.exemplo.orgEste é o domínio do meu servidor de e-mail, onde o DKIM está sendo verificado. É aqui que o X-dkim-checkcabeçalho está sendo adicionado e o texto a seguir domain=vem$dkim_cur_signer
Return-Path: <[email protected]>
Delivered-To: [email protected]
Received: from mail.receiver.example.org
    by mail.receiver.example.org with LMTP
    id t8rHGepc52SOVA8ADCPZSA
    (envelope-from <[email protected]>)
    for <[email protected]>; Thu, 24 Aug 2023 14:36:42 +0100
Received: from sender-rdns.example.org ([1.2.3.4] helo=sender.example.org)
    by mail.receiver.example.org with esmtps  (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384
    (Exim 4.94.2)
    (envelope-from <[email protected]>)
    id 1qZAVv-004DMU-00
    for [email protected]; Thu, 24 Aug 2023 14:36:42 +0100
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
    d=example.org; s=220151210; h=Sender:Message-Id:Subject:From:To:Date:
    Reply-To:Cc:MIME-Version:Content-Type:Content-Transfer-Encoding:Content-ID:
    Content-Description:Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc
    :Resent-Message-ID:In-Reply-To:References:List-Id:List-Help:List-Unsubscribe:
    List-Subscribe:List-Post:List-Owner:List-Archive;
    bh=ecGWgWCJeWxJFeM0urOVWP+KOlqqvsQYKOpYUP8nk7I=; b=GTY2HZVje81tRJ0/xKFNUk5d7/
    9wE7CGtwmz2APM5VTDKY6q+qIbwhCRNzc6IWZ4j0Y9FOtnuVBeNR1I5xbOuqPaf62MYQZJFjLQ3/J
    PNpOpS3i1Yd3NCZUs1iB/Q8N+ii73FrvD5k1AA8F5yzJhVeaposgbkvU5vv1s/KgqTIA=;
Received: from localhost ([127.0.0.1] helo=sender.example.org)
    by sender.example.org with esmtp (Exim 4.96)
    (envelope-from <[email protected]>)
    id 1qZAVt-001EhO-2k
    for [email protected];
    Thu, 24 Aug 2023 14:36:41 +0100
Date: Thu, 24 Aug 2023 14:36:41 +0100
To: [email protected]
From: [email protected]
Subject: test Thu, 24 Aug 2023 14:36:41 +0100
Message-Id: <[email protected]>
X-Mailer: swaks v20201014.0 jetmore.org/john/code/swaks/
Sender: [email protected]
X-dkim-check: DKIM test failed: (domain=example.org), signature is bad.

This is a test mailing

Como posso depurar por que o exim receiver.example.orgacha que a assinatura é ruim?

(Observo que a assinatura DKIM inclui muitos cabeçalhos que não existem. Poderia ser esse o motivo?)

EDIT: adicionando detalhes:

  • Exim de assinatura: 4,96-15+deb12u1.
  • Recebendo exim: 4.94.2-7~bpo10+1

Responder1

Não creio que a mensagem "é ruim" expresse qualquer motivo específico pelo qual uma assinatura não pôde ser validada. Configure cabeçalhos de resultados de autenticação adequados: essa retransmissãotudo o que o exim está te contandoatravés da $dkim_verify_reason.

Tente identificarqualmensagens estão falhando, lembro-me de exemplos de outros verificadores apresentando erros apenas em determinados tamanhos de mensagens ou partes da mensagem (alinhados em bloco, <= 16KiB, >= 16MiB.. sua mensagem de teste parece pequena) ou comprimento de linha (sua mensagem de teste parece organizada, embora incomumente, dobrado).

Além disso, compare a origem da mensagem conforme ela foi enviada (de preferência, como foi carregada separadamente na Sentcaixa de correio). Pode ter tido algum problema de sintaxe que foi descartado no recebimento, mas que foi significativo para a assinatura.

Ideias:

  • Vejo um ponto-e-vírgula final na assinatura e nenhuma dobra antes da tag b= final, o que é um tanto incomum - menos testado e possivelmente não a aparência da mensagem quando foi assinada.
  • Também vejo uma versão moderna do TLS usada com uma versão antiga do exim ("Todas as versões do Eximanteriores à versão 4.96 agora estão obsoletos."). Gostaria de saber se você está usando a versão de seu distribuidor que não possui correções relevantes já aplicadas no upstream.

Suspeito que o último esteja causando o seu problema, com base emeste patchnão sendo aplicado pelo Debianestável antigoaté aqui. Nesse caso, deverá afetar principalmente pequenas mensagens transmitidas via BDAT sobre TLS.

  1. Atualize para a versão mais recente do exim - possivelmente necessitando de uma atualização do Debian, já que você já está em backports -ou
  2. Ler ou arquivar relatórios de bugs do Debian, a correção que falta (o link vai paraversão escolhida a dedo e pronta para ser aplicada em 4.94.2) Suspeito que o culpado pode ser considerado digno de ser puxado, se de fato for o culpado aqui -ou
  3. desabilitar totalmente o suporte a chunking (RFC 3030), se estiver tudo bem para o seu caso de uso -vazio chunking_advertise_hosts =não anunciará a disponibilidade do BDAT a ninguém, o que deve resolver o problema - com um custo de desempenho potencialmente significativo para mensagens grandes.

informação relacionada