¿Qué es DKIM?
DKIM (DomainKeys Identified Mail) es un mecanismo de autenticación de correo electrónico definido en la RFC 6376. Permite firmar criptográficamente los correos salientes para demostrar su origen e integridad.
Por qué configurar DKIM:
- Autenticar tus correos — Demuestra que el correo proviene realmente de tu dominio
- Proteger contra la falsificación — La firma detecta cualquier modificación del contenido
- Mejorar la entregabilidad — Los correos firmados con DKIM son mejor aceptados por Gmail, Outlook, Yahoo
- Prerrequisito para DMARC — DKIM es uno de los dos pilares de la autenticación DMARC (junto con SPF)
¿Cómo funciona DKIM?
DKIM utiliza criptografía asimétrica (clave pública/privada):
- Firma al enviar: Tu servidor de correo calcula un hash del mensaje y lo firma con la clave privada
- Publicación DNS: La clave pública se publica en un registro TXT en
selector._domainkey.dominio.com - Verificación al recibir: El servidor destinatario recupera la clave pública vía DNS y verifica la firma
Envío: Mensaje → Hash → Firma (clave privada) → Header DKIM-Signature
Recepción: Header → Clave pública (DNS) → Verificación de firma → Pass/Fail
Sintaxis de un registro DKIM
Un registro DKIM es un registro DNS TXT publicado en <selector>._domainkey.<dominio>:
v=DKIM1; k=rsa; p=MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA...
Tags DKIM
| Tag | Descripción | Requerido | Valores |
|---|---|---|---|
v | Versión | Recomendado | DKIM1 |
k | Tipo de clave | No (defecto: rsa) | rsa, ed25519 |
p | Clave pública | Sí | Base64 DER |
h | Algoritmos de hash | No | sha256, sha1 |
t | Flags | No | y (test), s (strict) |
s | Tipos de servicio | No | email, * |
n | Notas | No | Texto libre |
Ejemplos de registros
RSA 2048 bits (recomendado):
default._domainkey.captaindns.com TXT "v=DKIM1; k=rsa; p=MIIBIjANBgkq..."
Ed25519:
default._domainkey.captaindns.com TXT "v=DKIM1; k=ed25519; p=MCowBQYDK2Vw..."
RSA vs Ed25519: ¿qué algoritmo elegir?
| Criterio | RSA 2048 | RSA 4096 | Ed25519 |
|---|---|---|---|
| Seguridad | Buena | Excelente | Excelente |
| Soporte | Universal | Universal | Parcial (~80%) |
| Longitud registro | ~400 chars | ~800 chars | ~90 chars |
| Rendimiento | Bueno | Lento | Muy rápido |
| Recomendación | Producción | Sensible | Avanzado |
Recomendaciones
- RSA 2048 bits: Estándar actual, máxima compatibilidad. Elige esta opción por defecto.
- RSA 4096 bits: Para entornos muy sensibles. Atención a las limitaciones DNS.
- Ed25519: Para configuraciones avanzadas. Considera un doble selector (RSA + Ed25519).
- RSA 1024 bits: Obsoleto desde 2020. Evítalo.
Longitud de claves y límites DNS
El límite de 255 caracteres
Los registros DNS TXT están limitados a 255 caracteres por cadena. Este es el impacto por algoritmo:
| Algoritmo | Longitud registro | Compatible DNS |
|---|---|---|
| Ed25519 | ~90 chars | ✅ Siempre |
| RSA 1024 | ~230 chars | ✅ Siempre |
| RSA 2048 | ~400 chars | ⚠️ División automática |
| RSA 4096 | ~800 chars | ⚠️ Verificar proveedor |
Cómo gestionan los proveedores los registros largos
La mayoría de los proveedores DNS (Cloudflare, AWS Route 53, Google Cloud DNS) dividen automáticamente los registros largos en varias cadenas. El protocolo DNS las concatena al leerlas.
Si tu proveedor no soporta registros largos, prefiere RSA 2048 bits o Ed25519.
Casos de uso concretos
Nuevo dominio: primera configuración DKIM
Contexto: Estás configurando un nuevo servidor de correo (Postfix, etc.)
Solución:
- Genera una clave RSA 2048 bits con el selector
default - Descarga la clave privada y configura OpenDKIM
- Publica el registro TXT en tu zona DNS
- Verifica con el DKIM Checker
Rotación de clave DKIM
Contexto: Tu clave DKIM tiene más de 12 meses o ha sido comprometida
Solución:
- Genera una nueva clave con un nuevo selector (ej: s2, 202602)
- Configura la nueva clave en tu servidor de correo
- Publica el nuevo registro DNS
- Espera 24-48h de propagación DNS
- Elimina el registro anterior
Doble selector: RSA + Ed25519
Contexto: Quieres aprovechar Ed25519 manteniendo la compatibilidad RSA
Solución:
- Genera una clave RSA 2048 con el selector
rsa - Genera una clave Ed25519 con el selector
ed - Configura tu servidor para firmar con ambas claves
- Los servidores modernos verificarán Ed25519, los antiguos usarán RSA
Flags DKIM: modo test y strict
Flag t=y (modo test)
Activa el modo test DKIM. Los fallos de verificación se tratan como neutros (ni pass ni fail).
Uso: Prueba tu configuración sin arriesgar rechazos. Retira el flag una vez validado.
Flag t=s (modo strict)
Exige una alineación estricta entre el dominio de firma DKIM y el dominio From. Por defecto, la alineación relaxed autoriza subdominios.
Uso: Refuerza la seguridad en producción. Asegúrate de que todos tus correos están firmados desde el dominio exacto.
❓ FAQ - Preguntas frecuentes
P: ¿Cómo generar una clave DKIM para mi dominio?
R: Usa nuestro generador: introduce tu dominio y un selector, elige RSA 2048 bits, haz clic en Generar. Descarga la clave privada y publica el registro TXT en tu DNS.
P: ¿Cuál es la diferencia entre RSA y Ed25519?
R: RSA está soportado por todos los servidores. Ed25519 es más moderno con claves más cortas, pero el soporte no es universal (~80%). Recomendación: RSA 2048 bits para producción.
P: ¿Qué longitud de clave RSA elegir?
R: RSA 2048 bits es el estándar. RSA 1024 está obsoleto. RSA 4096 ofrece más seguridad pero genera registros muy largos.
P: ¿Qué es un selector DKIM?
R: Un identificador que permite tener varias claves DKIM. Ejemplos: default, google, s1. El registro se publica en selector._domainkey.dominio.com.
P: ¿Se almacena la clave privada?
R: No. Se genera una sola vez, se transmite y luego se elimina. Descárgala de inmediato.
P: ¿Por qué mi registro supera 255 caracteres?
R: RSA 4096 genera registros de más de 800 caracteres. La mayoría de los proveedores dividen automáticamente. Si no, prefiere RSA 2048 o Ed25519.
P: ¿Cómo configurar DKIM con Google Workspace?
R: Google genera sus propias claves. Admin Console > Gmail > Authenticate email > Generate new record. Nuestra herramienta es para servidores personalizados.
Herramientas complementarias
| Herramienta | Utilidad |
|---|---|
| DKIM Record Check | Verifica que tu DKIM esté publicado y sea válido |
| DKIM Syntax Check | Valida la sintaxis de un registro DKIM |
| SPF Generator | Crea tu registro SPF |
| DMARC Generator | Configura DMARC para completar la autenticación |
| Mail Tester | Prueba la entregabilidad de tus correos |
Recursos útiles
- RFC 6376 - DomainKeys Identified Mail (DKIM) Signatures — Especificación oficial DKIM
- RFC 8463 - A New Cryptographic Signature Method for DKIM (Ed25519) — Soporte Ed25519 para DKIM
- RFC 8301 - Cryptographic Algorithm and Key Usage Update to DKIM — Recomendaciones de seguridad actuales
- OpenDKIM - Configuration Guide — Documentación para Postfix/OpenDKIM
- Google Workspace - Set up DKIM — Guía oficial Google
- Microsoft 365 - Use DKIM — Guía oficial Microsoft