¿Qué Es un Registro DKIM?
DKIM (DomainKeys Identified Mail, RFC 6376) añade una firma digital a cada mensaje que envía su servidor. La firma se crea con una clave privada que permanece en el servidor. La clave pública correspondiente se publica en DNS como registro TXT en selector._domainkey.yourdomain.com, y los receptores la obtienen para comprobar que el mensaje procede realmente de su dominio y que no se modificó por el camino.
El selector es solo una etiqueta que usted elige, como default o s1. Permite que un dominio publique varias claves a la vez, una por servicio o por generación de clave. Una firma DKIM válida de su propio dominio es también lo que permite que el correo supere DMARC cuando SPF no puede alinearse, por ejemplo tras un reenvío.

¿Necesita Generar Su Propia Clave DKIM?
A menudo no. Google Workspace crea la clave por usted (consola de administración, Aplicaciones, Google Workspace, Gmail, Autenticar correo electrónico), y Microsoft 365 usa dos registros CNAME, selector1._domainkey y selector2._domainkey, que apuntan a claves que gestiona Microsoft. La mayoría de los servicios de newsletter y de correo transaccional también le dan sus propios registros.
Necesita su propio par de claves cuando gestiona usted el servidor de correo, por ejemplo Postfix con OpenDKIM o rspamd, o Exim, o cuando una aplicación o un relay le pide que suba una clave privada. Para eso sirve este generador.
Advertisement
Cómo Generar Claves DKIM y Publicar el Registro
El selector puede ser cualquier combinación de letras, dígitos y guiones. Uno basado en la fecha, como s2026, facilita el seguimiento de la rotación de claves.
RSA de 2048 bits es la opción adecuada para casi todo el mundo. El par de claves se crea en su navegador en cuanto se carga la página, y de nuevo cuando cambia el tipo.
Descárguela e instálela en su servidor de correo. No se guarda en ningún sitio, así que si la pierde necesitará un par nuevo.
Añada un registro TXT con host selector._domainkey y el valor generado, envíese un mensaje y compruébelo con el Verificador DKIM.
Sintaxis del Registro DKIM
Un registro de clave DKIM es una lista de pares etiqueta=valor separados por punto y coma. Solo p= es obligatorio, pero publique también v y k.
Identifica el registro como una clave DKIM. Si está presente, debe ir en primer lugar.
El algoritmo de la clave. Si falta la etiqueta, se asume rsa.
La clave pública en base64. Un p= vacío significa que la clave se ha revocado y que las firmas hechas con ella fallan.
Pide a los receptores que traten el dominio como si estuviera probando DKIM. Elimínelo cuando las firmas se verifiquen.
Modo estricto: la identidad i= de una firma debe usar exactamente el dominio d=, no un subdominio suyo.
Limitan los algoritmos de hash (h=sha256) o el servicio al que se destina la clave (s=email). La mayoría de los registros los omiten.
Advertisement
RSA 2048 vs 1024 vs 4096 vs Ed25519
RSA de 2048 bits: el tamaño recomendado. El RFC 8301 indica que los firmantes deberían usar al menos 2048 bits. El valor TXT tiene unos 410 caracteres.
RSA de 1024 bits: todavía se verifica y es el mínimo que aceptan los receptores, pero es débil para los estándares actuales. Las firmas con claves más cortas no cuentan como válidas. Úselo solo si su proveedor de DNS no puede guardar un valor más largo.
RSA de 4096 bits: los receptores deben verificar claves de hasta 4096 bits, pero el valor tiene unos 750 caracteres, y algunos paneles de DNS y sistemas antiguos lo gestionan mal. Aporta poco frente a 2048.
Ed25519: una clave moderna y mucho más corta (el registro completo tiene unos 66 caracteres, RFC 8463). No todos los receptores la verifican todavía, así que firme también con una clave RSA, con un segundo selector.
¿Por Qué Mi Registro DKIM Está Dividido en Varias Cadenas?
Una sola cadena TXT puede contener como máximo 255 caracteres, y un valor DKIM de 2048 bits es más largo. DNS lo resuelve guardando el valor como varias cadenas entre comillas que los receptores vuelven a unir.
La mayoría de los paneles de DNS aceptan el valor largo tal cual y lo dividen por usted. Amazon Route 53 y los archivos de zona de BIND requieren que introduzca usted mismo la forma dividida, que es lo que le da el botón del archivo de zona (en Route 53, pegue solo las cadenas entre comillas, en una sola línea). No añada espacios ni saltos de línea dentro de la clave, y no ponga cada mitad en un registro distinto.
Advertisement
Configure la Clave en Su Servidor de Correo
Guarde la clave privada como default.private (con su propio selector), haga que solo el servicio de firma pueda leerla y apunte el firmante a ella. Un ejemplo de OpenDKIM para example.com con el selector default:
sudo mkdir -p /etc/opendkim/keys/example.com
sudo mv default.private /etc/opendkim/keys/example.com/
sudo chown opendkim:opendkim /etc/opendkim/keys/example.com/default.private
sudo chmod 600 /etc/opendkim/keys/example.com/default.privatedefault._domainkey.example.com example.com:default:/etc/opendkim/keys/example.com/default.private*@example.com default._domainkey.example.comopenssl genrsa -out default.private 2048
openssl rsa -in default.private -pubout -out default.publicopendkim-genkey -b 2048 -d example.com -s defaultCómo Rotar las Claves DKIM
Genere un nuevo par de claves con un selector nuevo, por ejemplo s2027.
Publique el nuevo registro TXT y espere a que se resuelva en todas partes.
Configure el servidor de correo para que firme con el nuevo selector.
Mantenga el registro antiguo una semana aproximadamente, hasta que el correo firmado con él se haya entregado y verificado.
Después elimine el registro antiguo o publíquelo con un
p=vacío para revocarlo.
Advertisement
Más Herramientas de Autenticación de Correo
DKIM es uno de los tres registros que comprueban los receptores. Complete el conjunto:
Consulte una clave publicada por su selector y compruebe su sintaxis y su tamaño.
Cree un registro SPF para sus proveedores con recuento de consultas en vivo.
Cree una política DMARC que use sus resultados de SPF y DKIM.
Vea si un mensaje real superó DKIM, SPF y DMARC.