Uma mensagem pode ter um valor válido Assinatura DKIM enquanto seus campos de cancelamento de assinatura não estão assinados. Essa é uma lacuna significativa: um receptor que verifica a mensagem não necessariamente verificou a ação de opt-out anunciada. Inspecione a cobertura da assinatura, não apenas uma genérica DKIM rótulo de passagem.
Localize a assinatura que protege a operação
RFC 8058 exige pelo menos uma assinatura DKIM válida cobrindo List-Unsubscribe e List-Unsubscribe-Post . Ambos os campos devem aparecer na tag h= dessa assinatura válida. A falta de assinatura obrigatória é um motivo para o destinatário não oferecer cancelamento de assinatura com um clique de acordo com a especificação. RFC 8058 seção 4.
Uma mensagem pode conter múltiplas assinaturas. Não combine a validade de um com a cobertura do cabeçalho de outro e considere o par suficiente. Identifique uma única assinatura válida que cubra os campos obrigatórios e, em seguida, retenha seu signatário, seletor e resultado da verificação. Isto é diferente de verificar qual assinatura contribui para DMARC alinhamento.
Coloque os cabeçalhos antes da etapa de assinatura relevante
Mapeie o pipeline de construção da mensagem: modelo de aplicação, processamento de lista, transformações de gateway, signatário e rota de saída final. Se um serviço adicionar campos de cancelamento de assinatura após a assinatura, uma assinatura anterior poderá permanecer válida sem cobri-los. A solução é colocar os campos antes da assinatura apropriada ou garantir que uma assinatura válida posterior os cubra.
Leia a mensagem final emitida. RFC 6376 define a lista h= e as regras de seleção de cabeçalho, incluindo como os nomes de campos repetidos são tratados. Uma busca por “cancelamento de lista” em qualquer lugar da mensagem não é um teste de cobertura. Campos e transformações duplicados exigem uma inspeção cuidadosa da entrada real da assinatura. Seções 3.5 e 5.4 RFC 6376.
Distinguir alterações assinadas e não assinadas
Imagine uma mensagem de teste controlada cuja assinatura válida cobre ambos os campos de cancelamento de assinatura. Alterar o URI assinado para um valor diferente altera a entrada assinada; sob verificação DKIM normal, a assinatura original não valida mais a entrada alterada. Por outro lado, uma assinatura que omite ambos os campos pode permanecer válida após a alteração desses valores não assinados. Isso explica por que um passe genérico não pode autenticar todos os campos.
Estas são expectativas baseadas em protocolo, não um dispositivo criptográfico executado. Um teste de mutação autorizado real precisa de bytes originais exatos, da assinatura selecionada e da chave de verificação correta. Uma chave de teste injetada demonstra apenas o relacionamento criptográfico desse teste, não a proveniência DNS público ou o resultado histórico de recebimento. Preserve o original e transforme uma cópia separada.
Verifique todo o caminho assinado
Após fixar a cobertura, reenvie uma mensagem de teste autorizada pela rota pretendida e verifique no lado receptor. A reescrita de links, edições de gateway ou um processador de lista posterior podem alterar um campo coberto. Preserve as amostras pré-transformação e finais quando possível para que o proprietário possa localizar o primeiro estágio onde a verificação diverge.
Evite resolver o problema simplesmente removendo os campos de h=. Isso pode tornar a assinatura mais fácil de preservar, deixando o requisito RFC 8058 não atendido. Se um gateway precisar transformar a ação, coordene o limite de assinatura final e garanta que o URI transformado ainda seja mapeado para o destinatário e a lista corretos.
Conclua a verificação operacional
A cobertura de assinatura autentica os campos anunciados; isso não prova que o endpoint executa a supressão solicitada. Use uma assinatura controlada para testar o POST e a exclusão do próximo envio downstream separadamente. Por outro lado, um endpoint funcional não repara a falta de cobertura de assinatura.
O registro de fechamento deve identificar a assinatura de cobertura válida, a mensagem final exata, o escopo do terminal e o resultado da supressão observado. Mantenha a exibição da IU do provedor como uma observação separada, em vez de uma consequência prometida da assinatura correta.
Manter um registro de encerramento específico da assinatura
Registre a mensagem final, o signatário, o seletor, os dois campos cobertos e o resultado da verificação para aquela assinatura específica. Registre os resultados do endpoint e da supressão separadamente. Se um gateway posterior alterar os campos, repare o limite de assinatura em vez de descartar a cobertura necessária.