01 Jan 0001, 00:00

Share

Présentation

DKIM (DomainKey Identified Mail) permet de signer les messages expédiés par un serveur SMTP. Pour ceci, une paire de clé doit être générée, la clé publique est ensuite publiée via DNS, la clé privée est fournie au serveur SMTP.
À la réception d’un message signé via DKIM, un serveur mail va se référer à l’entête “DKIM-Signature” pour identifier le domaine et le selecteur, puis va chercher la clé publique sur les enregistrements DNS afin de vérifier la signature.

Configuration du DNS

https://help.returnpath.com/hc/fr/articles/222481088-Aper%C3%A7u-du-DNS-record-pour-la-signature-DKIM

C’est une entrée de type “TXT” (mentionnée de type DKIM chez OVH), appliquée à “selecteur._domainkey.domain.com” (selecteur et domain doivent être adaptés).
Le champ fonctionne sur un principe clé=valeur ; on retrouve les champs suivants :

  • v= : version. DKIM1
  • k= : type de clé. “rsa”
  • p= : clé publique
  • t= : ? (t=s) ; il semble que ce champ puisse poser problème dans le cas d’utilisation de sous-domaines

Analyse de la signature

https://help.returnpath.com/hc/fr/articles/222438487-Informations-d-ent%C3%AAte-de-la-signature-DKIM

Dans les entêtes d’un mail. Entête “DKIM-Signature”

Balises obligatoires :

  • v= : version. Actulemment, c’est 1
  • a= : algo pour générer la signature. Ca sera quasi toujours rsa-sha256
  • d= : pour identifier le domaine responsable de la signature
  • s= : sélecteur ; avec le domaine, permet de trouver l’emplacement de la clé publique dans le DNS
  • h= : liste d’entetes qui seront utilisées pour créer la signature (et sont donc authentifiées) ; par exemple “h=To:From:Subject;”
  • b= : hachage de la valeur “h” ; c’est généralement ceci que l’on appelle “signature DKIM”
  • bh= : hachage du corps du message

Balises optionnelles :

  • t= : horodatage du message
  • x= : horodatage de l’expiration de la signature. Doit être postérieure à “t”

ARC (Authenticatd Received Chain)

https://www.dmarcanalyzer.com/fr/arc-est-ici/

Permet de résoudre des situations où SPF ou DKIM ne fonctionnent plus (typiquement lorsqu’il y’a un transfert de mail, soit via forward automatique, soit lors d’un transfert via une mailing-list).
En gros, lorsqu’un serveur de transfert reçoit un mail avec un résultat DMARC valide, il “encapsule” ce résultat dans une en-tête ARC. Il peut ensuite retransmettre l’ensemble (message + entête ARC) au destinataire suivant (qui peut être un autre intermédiaire, ou bien le destinataire final).

Si DMARC échoue, mais que l’ensemble de la chaîne ARC est valide, un serveur peut choisir de valider le mesage quand même.

En-têtes ARC :
ARC-Authentication-Results (AAR) : regroupe les infos d’authentification du mail d’origine (SPF, DKIM, DMARC)
ARC-Message-Signature (AMS) : une signature (comme pour DKIM) pour certifier le contenu de l’ensemble du message (excepté l’ARC-Seal)
ARC-Seal (AS) : une signature (comme pour DKIM) de l’ensemble de la chaîne des ARC-Seal

Chaque certification ARC est assortie d’un numéro d’instance (i) commençant à 1. Il peut y avoir plusieurs certifications ARC successives.

Gestion via Office 365

https://security.microsoft.com/dkimv2

Nécessite de paramétrer les entrées DNS (probablement du CNAME)