DomainKeys Identified Mail (DKIM) es el protocolo de autenticación de correo electrónico más complicado que existe. Aun cuando realice una investigación a fondo, le será difícil encontrar un lugar donde se describa cómo funciona en su totalidad.
Qué es: DomainKeys Identified Mail (DKIM) es un protocolo que le permite a una organización responsabilizarse de la transmisión de un mensaje de una forma que pueda ser verificada por el proveedor de correo electrónico. Esta verificación se hace posible a través de una autenticación criptográfica.
Cómo funciona: DKIM es bastante complejo y está compuesto por una gran cantidad de pasos. A continuación los analizaremos y simplificaremos lo más posible.
Paso 1: Identificar qué elementos del mensaje firmar con DKIM
En primer lugar, un remitente decide qué elementos del correo electrónico desea incluir en el proceso de firma. Puede decidir incluir el mensaje completo (cabecera y cuerpo) o sólo enfocarse en uno o más campos dentro de la cabecera del correo. Los elementos que decida incluir en el proceso de firma DKIM deben permanecer inalterados en tránsito, o de lo contrario la firma DKIM fallará la autenticación.
Por ejemplo, si un correo electrónico es reenviado desde Yahoo! a Gmail, Yahoo! puede añadir una línea de texto en la parte superior del correo electrónico (por ej., “reenviado por correo Yahoo!). En ese instante se ha modificado el cuerpo del correo y si ese cuerpo fue incluido en el proceso de firma DKIM, la autenticación DKIM fallará para ese correo reenviado.
Sin embargo, si sólo se incluyó un elemento de la cabecera en la firma DKIM, como el campo “De” (From), y el mensaje fue reenviado por Yahoo! a Gmail, la autenticación DKIM sería validada debido a que la porción del mensaje que fue modificada no llevaba la firma DKI
Paso 2: El proceso de codificación
Entonces, ¿de qué se trata este proceso de firma? La criptografía es la esencia de todo el proceso. El remitente configurará su plataforma de correo electrónico para crear automáticamente un hash de las partes del correo que desea que lleven la firma. El proceso de hash convierte el texto legible en una cadena de texto única. Se verá así (utilizando el proceso de hash MD5):
De: Robert Holmes <robert.holmes@returnpath.com>
Asunto: Prueba
Se convierte en la siguiente cadena de hash única:
3303baf8986f910720abcfa607d81f53
Antes de enviar el correo electrónico, esa cadena de hash es codificada utilizando una clave privada. La clave privada es asignada a una combinación única de dominio y selector, permitiéndole tener múltiples claves privadas legítimas para el mismo dominio (lo cual es importante a los fines de la gestión y la seguridad del correo electrónico). Sólo el remitente tiene acceso a la clave privada.
Una vez finalizado el proceso de codificación, se envía el correo electrónico.
Paso 3: Validación de la firma DKIM mediante una clave pública.
El proveedor de correo electrónico que recibe el correo observa que el mismo posee una firma DKIM, lo cual revela qué combinación “dominio/selector” firmó el proceso de codificación. Para validar la firma, el proveedor de correo electrónico realizará una consulta al DNS para identificar la clave pública para esa combinación de dominio/selector.
Esta clave pública posee la característica particular de ser la única que coincide con la clave privada que firmó el correo electrónico, lo que también se conoce como “coincidencia de claves”. La coincidencia de claves permite al proveedor de correo electrónico descifrar la firma DKIM para la cadena hash original.
El proveedor de correo electrónico luego toma los elementos del correo firmados por DKIM y genera sus propio hash de los mismos. Finalmente, el proveedor de correo compara el hash que generó con el hash descifrado a partir de la firma DKIM. Si coinciden, sabremos que:
- El correo electrónico realmente “pertenece” al dominio DKIM, de lo contrario, el proceso de descifrado no habría funcionado en primer lugar.
- Los elementos del correo electrónico firmados por DKIM no fueron alterados en tránsito (de haberlo sido, los hashes no coincidirían).
Por qué es Importante?
Los proveedores de correo electrónico que validan las firmas DKIM pueden utilizar la información acerca del firmante como parte de un programa para limitar el spam, el spoofing y el phishing, aunque DKIM no le instruye a los receptores realizar ninguna acción específica. Dependiendo de la implementación, DKIM también puede garantizar que el mensaje no haya sido modificado ni manipulado en tránsito.
El problema con DKIM es que debido a que es más difícil de implementar, son menos los remitentes que lo han adoptado. Esta escasa adopción significa que la ausencia de una firma DKIM no indica necesariamente que el correo electrónico sea fraudulento. Por lo tanto, DKIM por sí solo no es un método universalmente confiable de autenticar la identidad de un remitente. Además, el dominio DKIM no es visible para el usuario final común y no hace nada para impedir el spoofing del dominio de la cabecera “from” visible.
DMARC, el último gran avance en autenticación de correos electrónicos, aborda ese problema al garantizar que el dominio visible al usuario final sea el mismo que los dominios validados por las comprobaciones de SPF y DKIM. Asimismo, brinda instrucciones claras a los proveedores de correo electrónico acerca de qué correos deberían ceñirse al estándar de autenticación DKIM y cuáles no.
Para conocer más acerca de las otras autenticaciones para proteger su programa de correo electrónico, visite nuestro blog.
Fuente: https://blog.returnpath.com/es/como-explicar-dkim-en-espanol-claro-y-conciso/