¿Qué es DKIM? DomainKeys Identified Mail explicado
Descubre qué es DKIM, cómo funcionan las firmas y claves DKIM, y los pasos para configurarlo, para que tu dominio quede a salvo de la suplantación y tu correo llegue a la bandeja de entrada.
DKIM (DomainKeys Identified Mail) es un estándar de autenticación que permite a los servidores de correo receptores confirmar dos cosas sobre un mensaje: que el dominio de la dirección del remitente realmente lo envió, y que nada cambió en el mensaje entre el envío y la entrega.
Una forma útil de imaginar DKIM es como un precinto de seguridad a prueba de manipulaciones: al igual que el sello de lacre de una carta antigua, demuestra de quién procede el mensaje y revela si alguien lo abrió o alteró por el camino.
Cómo funciona DKIM
Por debajo, DKIM se basa en criptografía de clave pública. El ciclo de vida de un mensaje firmado es el siguiente:
1. El servidor emisor firma el email
Cuando tu mensaje sale del servidor, se genera una firma DKIM y se adjunta a sus cabeceras. Solo tu servidor puede generar esta firma, porque solo él posee la clave privada.
2. La firma se añade a las cabeceras
Esa firma —almacenada en un campo de cabecera llamado "DKIM-Signature"— contiene un hash que cubre partes seleccionadas del mensaje, como el remitente, el asunto y el cuerpo.
3. El servidor receptor verifica
Al entregarse, el servidor del destinatario obtiene la clave pública DKIM de tu dominio desde el DNS y comprueba la firma con ella. Si coincide, el mensaje supera la verificación DKIM.
4. Decisión de entrega
Una firma válida refuerza tu reputación y ayuda a que el mensaje llegue a la bandeja de entrada. Una firma ausente o que falla genera sospechas, y a menudo termina desviando el mensaje a la carpeta de spam.
Detalle técnico
El sistema se basa en criptografía asimétrica: un par de claves privada/pública. La clave privada nunca sale de tu servidor de correo, mientras que la clave pública está disponible abiertamente en el DNS para que cualquier receptor pueda realizar la verificación.
¿Qué aspecto tiene un registro DKIM?
La parte de DNS de DKIM es un registro TXT que contiene tu clave pública. Un ejemplo de registro:
default._domainkey.yourdomain.com IN TXT "v=DKIM1; k=rsa; p=MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC3QEKyU1fSma0axspqYK5iAj+54lsAg4qRRCnpKK68hawSJfliq9vKD6czJ..."
# Breaking down the components:
# v=DKIM1 -> DKIM version
# k=rsa -> Key type (RSA encryption)
# p=MIGfMA0... -> Public key (base64 encoded)Nombres de selector
Ese prefijo "default" en default._domainkey se conoce como selector. Tener varios selectores te permite rotar claves de forma segura o mantener distintos flujos de correo (por ejemplo, transaccional frente a marketing) en claves separadas.
Por qué DKIM importa para la entregabilidad del email
Evita la suplantación de email
Sin acceso a tu clave privada, un spammer simplemente no puede generar una firma válida, por lo que falsificar correo que se autentique como tu dominio resulta prácticamente inviable.
Mejora la entregabilidad
Gmail, Outlook, Yahoo y otros grandes proveedores tratan una firma DKIM válida como una señal positiva de confianza, y la recompensan con una mejor colocación en la bandeja de entrada.
Protege la reputación de tu marca
Cada email de phishing que se hace pasar por ti erosiona la confianza de tus clientes. DKIM cierra la puerta a la suplantación de dominio, manteniendo tu marca fuera del alcance de los atacantes.
Habilita DMARC
No puedes ejecutar DMARC —el protocolo que añade políticas de aplicación e informes sobre la autenticación— sin tener antes DKIM (o SPF) implementado.
Requisitos de Gmail y Yahoo
Desde febrero de 2024, cualquier remitente que envíe 5,000+ mensajes al día a Gmail o Yahoo debe autenticarse con DKIM. Por debajo de ese umbral no es obligatorio, pero sigue siendo una buena práctica clara para todos.
¿Qué aspecto tiene una firma DKIM?
Todo mensaje firmado lleva la firma en sus cabeceras. Aquí tienes un ejemplo real de ese campo de cabecera:
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
d=yourdomain.com; s=default;
h=from:subject:date:message-id:to;
bh=frcCV1k9oG9oKj3dpUqdJg1PxRT2RSN/XKdLCPjaYaY=;
b=GJwP3Qr8KqKKKNT5HL8j3fjXvLEm9KmZs6YdO2KqEqr...
# Key components:
# v=1 -> DKIM version
# d=yourdomain.com -> Signing domain
# s=default -> Selector (matches DNS record)
# h=from:subject... -> Headers included in signature
# bh=frcCV1... -> Hash of email body
# b=GJwP3Q... -> The actual signatureCómo Bitelio simplifica DKIM
Configurar DKIM a mano requiere un esfuerzo real: generación de claves, gestión de DNS, configuración del servidor. Bitelio reduce todo esto a unos pocos clics:
Generación automática de claves
En cuanto añades un dominio a tu cuenta, Bitelio genera para él un par de claves DKIM seguro, sin necesidad de gestionar claves manualmente.
Configuración de DNS sencilla
Obtienes las entradas de DNS exactas que debes publicar, listas para copiar directamente en el panel de tu proveedor de DNS.
Firma automática
A partir de ese momento, cada mensaje enviado a través de Bitelio lleva una firma DKIM válida, sin configuración adicional por tu parte.
Verificación y monitorización
Bitelio confirma que tus registros se resuelven correctamente y sigue vigilando el estado de autenticación de tu correo saliente a lo largo del tiempo.
Listo en minutos
El usuario típico de Bitelio completa su configuración de DKIM en unos 5-10 minutos, con el panel guiándole paso a paso durante todo el proceso.
Buenas prácticas de DKIM
✓ Usa claves de 2048 bits
Las claves de 1024 bits siguen siendo funcionales, pero Gmail y otros proveedores ahora recomiendan claves de 2048 bits por su protección criptográfica más sólida.
✓ Implementa también SPF y DMARC
Por sí solo, DKIM solo cubre una parte del panorama. Combínalo con SPF y corona el conjunto con DMARC para conseguir una cobertura de autenticación completa.
✓ Supervisa el estado de DKIM
Acostúmbrate a comprobar que tus firmas siguen superando la verificación. Los informes de autenticación, disponibles en la mayoría de las plataformas de envío, facilitan esta tarea.
✓ Rota las claves periódicamente
Renovar las claves cada 6-12 meses limita tu exposición si alguna vez una clave se ve comprometida. Programa las rotaciones de forma deliberada para que la entrega nunca se vea interrumpida.
✗ No compartas las claves privadas
Trata la clave privada con el mismo cuidado que una contraseña de administrador: nunca la compartas ni la guardes en un lugar inseguro.
✗ No uses la misma clave en varios dominios
Asigna a cada dominio su propio par de claves dedicado. Reutilizar claves debilita la seguridad y confunde la autenticación entre dominios.
DKIM frente a SPF: ¿cuál es la diferencia?
Ambos protocolos autentican el email, pero sus mecanismos —y las preguntas que responden— son bastante diferentes:
| Característica | DKIM | SPF |
|---|---|---|
| Qué valida | La integridad del contenido del mensaje | Si el servidor emisor está autorizado |
| Cómo funciona | Firma criptográfica incluida en las cabeceras | IP de entrega comparada con una lista de permitidos en el DNS |
| Sobrevive al reenvío | Sí (siempre que el contenido no se modifique) | No (la IP de reenvío no coincidirá) |
| Tipo de registro DNS | TXT en selector._domainkey.* | TXT en el dominio raíz |
| Necesario para DMARC | Sí (al menos uno de SPF/DKIM) | Sí (al menos uno de SPF/DKIM) |
Usa ambos para una protección máxima
Los dos protocolos cubren los puntos ciegos del otro: SPF detecta lo que DKIM no puede (como IPs de envío falsificadas), mientras que DKIM sigue funcionando a través de reenvíos, donde SPF falla. Implementa ambos, añade DMARC encima, y tu estrategia de autenticación estará completa.
Cómo probar tu configuración de DKIM
Una vez configurado DKIM, confirma que todo funciona utilizando uno de estos métodos:
1. Revisa las cabeceras del email
Envía un mensaje de prueba e inspecciona sus cabeceras en bruto. Debes buscar el campo DKIM-Signature además del campo Authentication-Results, que informa del resultado (superado o fallido):
Authentication-Results: mx.google.com;
dkim=pass header.i=@yourdomain.com header.s=default header.b=GJwP3Qr8;
spf=pass (google.com: domain of you@yourdomain.com designates 1.2.3.4 as permitted sender);
dmarc=pass (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=yourdomain.com2. Utiliza herramientas de consulta DNS
Consulta directamente el registro TXT de DKIM para asegurarte de que tu clave pública está activa en el DNS:
# Check your DKIM record via DNS
dig TXT default._domainkey.yourdomain.com
# Or using nslookup
nslookup -type=TXT default._domainkey.yourdomain.com3. Envía un mensaje a Gmail y comprueba
Entrega un mensaje de prueba a cualquier bandeja de Gmail, abre el menú de tres puntos y elige "Mostrar original". El panel de resumen de la parte superior muestra DKIM: PASS o DKIM: FAIL, una confirmación instantánea de tu configuración.
Problemas habituales de DKIM
Cuando DKIM no se supera, comprueba que: (1) El selector en el DNS coincide con el que usa tu servicio para firmar, (2) Tu proveedor de DNS no ha truncado el registro (las claves muy largas a veces necesitan dividirse), (3) La propagación ha terminado: espera hasta 48 horas, y (4) La clave privada con la que firma tu servicio corresponde a la clave pública publicada.