dkim: FAILED… invalid (public key: missing p= tag)

Recientemente estuve implementando algunos métodos de validación y verificación de autenticidad de correos como SPF, DKIM y DMARC en servicios que administro. Durante la implementación me encontré con validaciones de dkim fallidas con el siguiente mensaje de opendkim:

Feb 15 03:12:52 smtp amavis[24502]: (24502-18) dkim: FAILED Author+Sender+MailFrom signature by d=domain.com, From: <account@domain.com>, a=rsa-sha256, c=relaxed/relaxed, s=3537AC8A-2420-11E9-91C1-9E0AD15FCAC0, i=@domain.com, ORIG [127.0.0.1]:56217, invalid (public key: missing p= tag)

El error indica lo siguiente entre otras cosas:

  • dkim: FAILED: La validación DKIM falló
  • ORIG [127.0.0.1]: El correo se origina localmente, es correo saliente
  • s=3537AC8A-2420-11E9-91C1-9E0AD15FCAC0: El subdominio de _domainkeys
  • invalid (public key: missing p= tag): La llave pública es inválida porque carece de la etiqueta p.

Para casos como estos es importante realizar la consulta DNS de tipo TXT para verificar que el registro está correctamente creado. En mi caso la zona se maneja tanto en servidores DNS públicos como en DNS internos y al validar ambos veo las siguientes discrepancias:

dig 3537AC8A-2420-11E9-91C1-9E0AD15FCAC0._domainkey.domain.com TXT +short @8.8.8.8
“v=DKIM1\; k=rsa\; ” “p=MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDZLym2XYAnxuYoqNECMfEc+f+C1ZZNzDLjxdjRbB/qF2Ds5q5VrGLywSuacrTzMn2IrBg3yoIIsAUe2HxUsUwbKlaTcB/uOOrMwNk7Jr0snN9NVMn7W6sZ16eybZctbbs6RCQyNy1oZEMB8KVkmFCNnYpRWe9im0eIUp6WFXVdqwIDAQAB”

dig 3537AC8A-2420-11E9-91C1-9E0AD15FCAC0._domainkey.domain.com TXT +short
“v=DKIM1\; k=rsa\; \” \”p=MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDZLym2XYAnxuYoqNECMfEc+f+C1ZZNzDLjxdjRbB/qF2Ds5q5VrGLywSuacrTzMn2IrBg3yoIIsAUe2HxUsUwbKlaTcB/uOOrMwNk7Jr0snN9NVMn7W6sZ16eybZctbbs6RCQyNy1oZEMB8KVkmFCNnYpRWe9im0eIUp6WFXVdqwIDAQAB”

La diferencia en la salida de dig es una secuencia de escape para comillas en la llave pública, esta no está incluida en la llave cuando es generada por zmdkimkeyutil:

DKIM Public signature:
3537AC8A-2420-11E9-91C1-9E0AD15FCAC0._domainkey IN TXT ( “v=DKIM1; k=rsa; ”
“p=MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDZLym2XYAnxuYoqNECMfEc+f+C1ZZNzDLjxdjRbB/qF2Ds5q5VrGLywSuacrTzMn2IrBg3yoIIsAUe2HxUsUwbKlaTcB/uOOrMwNk7Jr0snN9NVMn7W6sZ16eybZctbbs6RCQyNy1oZEMB8KVkmFCNnYpRWe9im0eIUp6WFXVdqwIDAQAB” ) ; —– DKIM key 3537AC8A-2420-11E9-91C1-9E0AD15FCAC0 for domain.

El problema está al copiar y pegar la llave pública con cada línea entre su par de comillas en servidores DNS de Windows Server, la salida de zmdkimkeyutil está pensada para usarse tal cual en servidores BIND (AKA Named), pero en el caso del servidor de Microsoft se deben suprimir las comillas, pero dejar el salto de línea:

Screenshot at 2019-02-18 10-54-44

Anuncios

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión /  Cambiar )

Google photo

Estás comentando usando tu cuenta de Google. Cerrar sesión /  Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión /  Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión /  Cambiar )

Conectando a %s

A %d blogueros les gusta esto: