Firma DKIM
Firme mensajes criptográficamente.
Firma DKIM es una lección gratuita de Cyber Security Academy en CoddyKit. Esta es la lección 3 de 4. Puedes leer la lección completa abajo gratuitamente — luego la practicas en el navegador con un editor de código integrado y un tutor de IA 24/7. Forma parte de la ruta de aprendizaje de Cyber Security Academy, y tu progreso se sincroniza en la web y la app de CoddyKit. El curso de Cyber Security Academy incluye 4 lecciones en total.
Qué proporciona DKIM
DKIM (DomainKeys Identified Mail) añade una firma criptográfica al correo electrónico saliente. Un receptor puede verificar esa firma para confirmar dos aspectos:
- El mensaje fue autorizado legítimamente por el dominio firmante
- El contenido firmado no fue alterado durante el tránsito
Mientras SPF autoriza servidores, DKIM autentica el mensaje en sí, y esa firma sobrevive al reenvío.
Fundamentos de la criptografía de clave pública
DKIM se basa en la criptografía asimétrica. El propietario del dominio tiene un par de claves:
- La clave privada se mantiene en secreto en el servidor de correo emisor y se utiliza para firmar
- La clave pública se publica en DNS y cualquiera puede utilizarla para verificar
Como solo quien posee la clave privada puede producir una firma válida, una verificación correcta demuestra que el mensaje procede del dominio legítimo.
El proceso de firma
Cuando el servidor emisor envía un mensaje, calcula una firma sobre determinados encabezados y el cuerpo, y después añade un encabezado DKIM-Signature.
Steps on the sender side:
1. Select headers to sign (From, Subject, Date, ...)
2. Hash the message body
3. Build the DKIM-Signature header with those fields
4. Sign the hash with the private key
5. Attach the signature to the outgoing messageAnatomía de un encabezado DKIM-Signature
El encabezado DKIM-Signature contiene los parámetros que un receptor necesita para verificar la firma:
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
d=company.com; domain that signed
s=mail2024; selector (which key)
h=from:subject:date; signed headers
bh=base64bodyhash; body hash
b=base64signature the signature itselfEl selector y la clave pública en DNS
El selector (la etiqueta s=) indica a los receptores qué clave pública deben obtener. La clave se encuentra en una ubicación predecible de DNS:
Location: <selector>._domainkey.<domain>
Example DNS TXT record:
mail2024._domainkey.company.com. IN TXT \
"v=DKIM1; k=rsa; p=MIGfMA0GCSqGSIb3DQEBA..."
p = the base64-encoded public keyEl proceso de verificación
Al recibir el mensaje, el servidor verificador invierte el proceso:
- Lee el dominio
d=y el selectors=de la firma DKIM - Obtiene la clave pública de
selector._domainkey.domainen DNS - Vuelve a calcular el hash del cuerpo y el hash de los encabezados
- Utiliza la clave pública para verificar que la firma coincide
Si la firma es válida, DKIM se aprueba. Si el mensaje se modificó o se firmó con la clave incorrecta, falla.
El hash del cuerpo detecta alteraciones
El campo bh (hash del cuerpo) es lo que permite detectar alteraciones mediante DKIM. El emisor calcula el hash del cuerpo e incluye ese hash en los datos firmados.
Si alguien modifica el cuerpo del mensaje durante el tránsito, el hash que vuelva a calcular el receptor no coincidirá con el bh firmado y la verificación fallará. Así es como DKIM proporciona integridad, no solo autenticación del origen.
Canonicalización
Los servidores de correo suelen realizar pequeños cambios inofensivos, como volver a ajustar las líneas o modificar los espacios en blanco. Para evitar que estos cambios rompan firmas válidas, DKIM utiliza la canonicalización (la etiqueta c=).
- simple — estricto; casi cualquier cambio rompe la firma
- relaxed — tolera cambios en los espacios en blanco y en las mayúsculas y minúsculas de los encabezados
La mayoría de las implementaciones utiliza relaxed/relaxed para garantizar la fiabilidad en infraestructuras de correo diversas.
Los selectores permiten rotar las claves
Los selectores no son solo etiquetas: permiten realizar una rotación de claves segura. Debe reemplazar periódicamente las claves DKIM para limitar la exposición si alguna se filtra.
Proceso de rotación:
- Genere un nuevo par de claves con un selector nuevo (por ejemplo,
mail2025) - Publique la nueva clave pública en DNS
- Cambie el firmante para que utilice el nuevo selector
- Mantenga el selector antiguo en DNS hasta que se entregue el correo en tránsito y, después, elimínelo
Usar un selector nuevo evita que haya un intervalo durante el cual no se puedan verificar las firmas.
DKIM sobrevive al reenvío
A diferencia de SPF, DKIM sobrevive al reenvío. La firma viaja con el mensaje, por lo que, mientras no se modifiquen los encabezados ni el cuerpo firmados, un mensaje reenviado seguirá verificándose correctamente.
Esto complementa perfectamente la debilidad de SPF. Cuando se reenvía un mensaje, SPF puede fallar porque cambia la IP de conexión, pero DKIM puede seguir aprobándose, lo que permite que DMARC acepte el correo legítimo.
Limitaciones de DKIM
DKIM es potente, pero no es suficiente por sí solo:
- Demuestra que un dominio firmó el mensaje, pero no exige que el dominio firmante coincida con el encabezado From visible; eso corresponde a la alineación de DMARC
- Un atacante puede firmar mensajes con una clave DKIM válida de su propio dominio
- Una clave privada filtrada permite a un atacante falsificar firmas válidas hasta que la clave se retire mediante una rotación
DKIM debe combinarse con DMARC para ofrecer una protección eficaz contra la suplantación.
Comprobación rápida
Compruebe cuánto entiende de DKIM.
Resumen
Ha aprendido cómo DKIM firma los mensajes:
- DKIM añade una firma criptográfica que demuestra el origen y la integridad
- Una clave privada firma el mensaje en el servidor; la clave pública se publica en DNS bajo un selector
- El hash del cuerpo detecta alteraciones; la canonicalización tolera cambios inofensivos
- Los selectores permiten una rotación de claves segura, y DKIM sobrevive al reenvío cuando SPF falla
- DKIM sigue necesitando la alineación de DMARC para vincular la firma con el From visible
A continuación, relacionará SPF y DKIM mediante la política y los informes de DMARC.
Aprende Cyber Security Academy con un tutor de IA — gratis
Escribe y ejecuta código real en tu navegador, obtén ayuda instantánea de un tutor de IA disponible 24/7 y continúa donde lo dejaste en la web o en la aplicación.
- Cursos
- 76
- Lecciones
- 303
Preguntas frecuentes
¿La lección «Firma DKIM» es gratis?
Sí — el texto completo de «Firma DKIM» es gratis para leer aquí en la web. Para practicarla de forma interactiva (editor de código integrado y tutor de IA 24/7) y desbloquear el resto del curso de Cyber Security Academy, actualiza a CoddyKit PRO. El curso de Cyber Security Academy incluye 4 lecciones en total.
¿Qué aprenderé en «Firma DKIM»?
Firme mensajes criptográficamente. Practicas Cyber Security Academy con código real que ejecutas directamente en el navegador, y un tutor de IA 24/7 responde tus preguntas mientras trabajas en la lección.
¿Necesito experiencia previa para empezar Cyber Security Academy?
No se requiere experiencia previa. Cyber Security Academy en CoddyKit está estructurado para principiantes hasta estudiantes avanzados, así que puedes empezar aquí o desde el inicio y avanzar a tu ritmo. Esta es la lección 3 de 4.
¿Cuánto tiempo toma la lección «Firma DKIM»?
La mayoría de las lecciones de CoddyKit toman alrededor de 5–10 minutos. Cada una es compacta e interactiva, así que avanzas constantemente y retomas exactamente por donde dejaste en la web y la app.
¿Puedo escribir y ejecutar código en esta lección de Cyber Security Academy?
Sí. Cada lección de Cyber Security Academy incluye un editor de código integrado, así que escribes y ejecutas código real directamente en tu navegador y obtienes retroalimentación instantánea de IA — sin configuración local necesaria.
Todas las lecciones de este curso
- Cómo funciona el spoofing de correo electrónico
- Registros SPF
- Firma DKIM
- Política y generación de informes DMARC