1. Centro de Ayuda
  2. DMARC: conceptos básicos

¿Qué es DKIM (DomainKeys Identified Mail)?

Obtén una noción básica de lo que es DomainKeys Identified Mail (DKIM) y cómo afecta tu correo.

DKIM es un método de autenticación de correo electrónico que ayuda a prevenir el spoofing de correo electrónico, una técnica comúnmente utilizada en correos electrónicos de phishing y spam.

¿Qué es DKIM?

DKIM, que en inglés significa DomainKeys Identified Mail, es un protocolo que permite a los remitentes de correo electrónico firmar digitalmente sus mensajes y verificar la identidad de su dominio. DKIM ayuda a prevenir el spoofing de correo electrónico, el phishing y el spam permitiendo a los receptores verificar si el correo electrónico fue enviado por una fuente autorizada y si fue modificado en tránsito. DKIM utiliza criptografía de clave pública, donde el remitente publica una clave pública en los registros DNS de su dominio y firma cada correo electrónico con una clave privada. El receptor puede entonces usar la clave pública para verificar la firma y el dominio del remitente.

¿Cómo funciona DKIM?

DKIM funciona añadiendo un campo especial de encabezado a cada mensaje de correo electrónico, llamado DKIM-Signature, que contiene información sobre el dominio firmante, el selector, el algoritmo, el hash y la firma. El selector es una cadena que identifica qué clave pública utilizar para la verificación. El algoritmo es el método criptográfico utilizado para generar el hash y la firma. El hash es un resumen del contenido del correo electrónico, excluyendo el campo DKIM-Signature. La firma es el resultado de cifrar el hash con la clave privada. Cuando el receptor recibe el correo electrónico, puede extraer el campo DKIM-Signature y usar el selector para encontrar la clave pública correspondiente en los registros DNS del remitente. Luego puede descifrar la firma con la clave pública y compararla con el hash del contenido del correo electrónico. Si coinciden, el correo electrónico está autenticado y no ha sido alterado.

¿Por qué es importante DKIM?

DKIM es importante porque ayuda a proteger la integridad y reputación de los remitentes y receptores de correo electrónico. Al verificar la identidad del dominio del remitente, DKIM puede reducir el riesgo de phishing, spoofing y spam, lo que puede dañar la confianza y seguridad de los usuarios de correo electrónico. DKIM también puede mejorar la entregabilidad y visibilidad de los correos electrónicos legítimos, ya que es menos probable que sean filtrados o marcados como spam por los proveedores de correo electrónico y los receptores. Esto puede aumentar las tasas de participación y conversión de campañas de marketing por correo electrónico y boletines informativos. DKIM también puede complementar otros estándares de autenticación de correo electrónico, como SPF (Sender Policy Framework) y DMARC (Domain-based Message Authentication, Reporting, and Conformance), para proporcionar una solución más completa y robusta para la seguridad y reputación del correo electrónico.

¿Cuáles son las limitaciones de DKIM?

DKIM no es una solución perfecta para la autenticación y seguridad del correo electrónico, ya que tiene algunas limitaciones y desafíos:


•    DKIM no garantiza la identidad del remitente real, solo el dominio. Por ejemplo, un atacante puede comprometer una cuenta de correo electrónico legítima y enviar correos electrónicos suplantados con una firma DKIM válida. Para mitigar esto, los proveedores de correo electrónico y los receptores también deberían verificar los campos From y Reply-To del correo electrónico y utilizar otros métodos para verificar la identidad del remitente, como SPF y DMARC.


•    DKIM no impide el reenvío o retransmisión de correos electrónicos, lo cual puede romper la firma DKIM y causar falsos negativos. Por ejemplo, si un usuario reenvía un correo electrónico a otra dirección, el contenido del correo electrónico puede ser modificado por el agente de reenvío, como agregar un encabezado o un pie de página, lo cual puede invalidar la firma DKIM. Para evitar esto, los remitentes de correo electrónico deberían usar un algoritmo de canonicalización relajado, que ignora cambios menores en el contenido del correo electrónico, y los receptores deberían usar una política de verificación tolerante, que permite algunos errores en la firma DKIM.


•    DKIM requiere la cooperación y coordinación de los remitentes y receptores de correo electrónico, así como la gestión y mantenimiento de claves públicas y privadas y registros DNS. Esto puede ser complejo y costoso, especialmente para dominios de correo electrónico grandes y dinámicos. Para simplificar esto, los remitentes y receptores de correo electrónico pueden usar servicios o herramientas de terceros que puedan manejar la implementación y configuración de DKIM para ellos.

Sintaxis de DKIM

La sintaxis de DKIM está definida por RFC 6376, que especifica el formato y las reglas para el campo de encabezado DKIM-Signature, el registro público de claves DNS, y los algoritmos de firma y verificación.
El campo de encabezado DKIM-Signature consta de una serie de pares de etiqueta-valor, separados por puntos y comas, que proporcionan información sobre la firma DKIM. Las etiquetas son insensibles al caso y tienen los siguientes significados:

v: La versión de DKIM. La versión actual es 1.

a: El algoritmo utilizado para generar el hash y la firma. Los algoritmos admitidos son rsa-sha1 y rsa-sha256.

b: Los datos de la firma, codificados en base64.

bh: El hash del contenido del correo electrónico, codificado en base64.

c: El algoritmo de canonicalización utilizado para normalizar los encabezados y el cuerpo del correo electrónico antes de hacer el hash. Los algoritmos admitidos son simple y relajado (simple y relaxed).

d: El dominio de la entidad firmante.

h: La lista de campos de encabezado que están incluidos en la firma, separados por comas.

i: La identidad del agente firmante, que puede ser un subdominio o un usuario dentro del dominio firmante.

l: La longitud del cuerpo del correo electrónico que está firmado, en bytes. Si se omite, se firma todo el cuerpo.

q: El método de consulta utilizado para recuperar la clave pública. El método admitido es dns/txt, que significa que la clave pública se almacena en un registro TXT en el DNS.

s: El selector que identifica la clave pública a utilizar para la verificación.

t: La marca de tiempo de cuando se creó la firma, en segundos desde las 00:00:00 del 1 de enero de 1970 UTC.

x: El tiempo de expiración de la firma, en segundos desde las 00:00:00 del 1 de enero de 1970 UTC. Si se omite, la firma no expira.

z: TLos campos de encabezado originales que fueron firmados, codificados en base64. Esta etiqueta es opcional y solo se utiliza con fines de depuración.

Un ejemplo de un registro DNS de clave pública es:

Selector:

dkimkey._domainkey.example.com.

Valor:

"v=DKIM1; h=sha256; k=rsa; p=MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCfjgu4wJ4hm7T3cjhYfyX3WfZwLGNqJtU2Ol1i8sT1o3F1FbZI4P7FqQW7MkMfsHnY6f7loG+RwkZsKdowq+8Gg9G2xRF1YJynBKLpdX4eR4Q2m5F3LjMfQSSMmN1CRrSeyRGNVQqjxweG5lJfR0GZsT7hnrccllH+oL1HhQIDAQAB"

¿Necesitas ayuda?

soporte@sendmarc.com está disponible para asistirte.