DKIM
Introducción
DKIM es una técnica de autenticación de correo electrónico. Tiene como objetivo que cada email saliente sea firmado con una clave para que luego el destinatario pueda identificar que ese email fue enviado realmente por ese remitente.
La problemática nace porque cuando uno quiere enviar un correo electrónico, la persona que envía debe establecer quién es, con el comando mail from de SMTP. En la sección "SMTP en la práctica" se explica este problema en detalle. Entonces, es súper simple indicar que soy otro remitente.
Verificación del destinatario
Cuando se recibe un correo electrónico y el mismo fue firmado con DKIM, entonces se debe proceder a verificar esa firma. Para ello, el destinario debe obtener la clave pública que debería estar alojada en un registro del DNS del dominio remitente y con esa clave puede verificar la firma en el correo entrante, ya que el mismo fue firmado con la clave privada de ese remitente.
Entrando en detalles, lo que se realiza es verificar que el contenido del mensaje coincida con su firma.
SMTP en la práctica
Para realizar esta prueba, se debe:
- Instalar el servidor de correo electrónico postfix.
- Instalar el paquete mailutils para poder enviar correos electrónicos y recibir correos electrónicos.
- Conectarse por telnet: telnet localhost 25
- Enviar el comando ehlo labsis
- Enviar el comando mail from: labsis@gmail.com. Con esto tan fácil ya estamos haciendo suplantación de identidad (spoofing).
- Enviar el comando rcpt to: gochi@labsis. Con esto identificamos al destinatario.
- Enviar el comando data.
- Escribir el contenido del email.
- Terminar el contenido del email con el símbolo punto.
- Salir de telnet con quit.
- Ver el email recibido, con el comando mail.
Estructura de DKIM
La firma DKIM es agregada en la cabecera del correo electrónico saliente.
Para poder firmar se debe crear un par de claves (una pública y una privada). La privada se almacena en el servidor de correos y la pública se almacena en un registro txt de DNS.
Enlaces útiles
Herramienta para comprobar si un dominio tiene correctamente configurado DKIM