Structure signature DKIM
All checks were successful
continuous-integration/drone/push Build is passing
All checks were successful
continuous-integration/drone/push Build is passing
This commit is contained in:
parent
15b3341237
commit
b577474cfd
1 changed files with 41 additions and 8 deletions
|
@ -43,7 +43,7 @@ _dmarc TXT "v=DMARC1; p=reject; sp=reject; adkim=s; fo=1; aspf=s; ruf=mailto:p
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
# Le fonctionnement des e-mails
|
# Comprendre le fonctionnement des e-mails
|
||||||
|
|
||||||
## Serveurs
|
## Serveurs
|
||||||
|
|
||||||
|
@ -56,17 +56,19 @@ _dmarc TXT "v=DMARC1; p=reject; sp=reject; adkim=s; fo=1; aspf=s; ruf=mailto:p
|
||||||
| nom | type | valeur | signification |
|
| nom | type | valeur | signification |
|
||||||
| --- | ---- | ------ | ------------- |
|
| --- | ---- | ------ | ------------- |
|
||||||
| `@` | `MX` | `12 email-in.deuxfleurs.fr` | Serveur que chercheront à joindre les gens qui veulent envoyer un courrier à une addresse `@deuxfleurs.fr` |
|
| `@` | `MX` | `12 email-in.deuxfleurs.fr` | Serveur que chercheront à joindre les gens qui veulent envoyer un courrier à une addresse `@deuxfleurs.fr` |
|
||||||
| `default.\_domainkey` | `TXT` | `v=DKIM1; h=sha256; k=rsa; p=<clef publique>` | Enregistrement DKIM (voir ci-dessous) |
|
| `default._domainkey` | `TXT` | `v=DKIM1; h=sha256; k=rsa; p=<clef publique>` | Enregistrement DKIM (voir ci-dessous) |
|
||||||
| `smtp.\_domainkey` | `TXT` | `v=DKIM1; h=sha256; k=rsa; p=<clef publique>` | Enregistrement DKIM (voir ci-dessous) |
|
| `smtp._domainkey` | `TXT` | `v=DKIM1; h=sha256; k=rsa; p=<clef publique>` | Enregistrement DKIM (voir ci-dessous) |
|
||||||
| `@` | `TXT` | `"v=spf1 mx:out.deuxfleurs.fr ip4:<addresse ip> [...] -all" | Enregistrement SPF (voir ci-dessous) |
|
| `@` | `TXT` | `"v=spf1 mx:out.deuxfleurs.fr ip4:<addresse ip> [...] -all" | Enregistrement SPF (voir ci-dessous) |
|
||||||
| `\_dmarc` | `TXT` | `"v=DMARC1; [...]` | Enregistrement DMARC (voir ci-dessous) |
|
| `_dmarc` | `TXT` | `"v=DMARC1; [...]` | Enregistrement DMARC (voir ci-dessous) |
|
||||||
| `email-in` | `A` | défini par D53 | Addresse IPv4 pour parler au serveur Postfix (pour l'enregistrement MX) |
|
| `email-in` | `A` | défini par D53 | Addresse IPv4 pour parler au serveur Postfix (pour l'enregistrement MX) |
|
||||||
| `smtp` | `A` | défini par D53 | Addresse IPv4 pour parler au serveur Postfix (pour les utilisateurs Deuxfleurs) |
|
| `smtp` | `A` | défini par D53 | Addresse IPv4 pour parler au serveur Postfix (pour les utilisateurs Deuxfleurs) |
|
||||||
| `imap` | `A` | défini par D53 | Addresse IPv4 pour parler au serveur Dovecot (pour les utilisateurs Deuxfleurs) |
|
| `imap` | `A` | défini par D53 | Addresse IPv4 pour parler au serveur Dovecot (pour les utilisateurs Deuxfleurs) |
|
||||||
|
|
||||||
### L'enregistrement DKIM
|
### L'enregistrement DKIM
|
||||||
|
|
||||||
Exemple de valeurs :
|
Référence : <https://www.cloudflare.com/learning/dns/dns-records/dns-dkim-record/>
|
||||||
|
|
||||||
|
**Exemple de valeurs :**
|
||||||
|
|
||||||
```
|
```
|
||||||
default._domainkey.deuxfleurs.fr. 10800 IN TXT "v=DKIM1; h=sha256; k=rsa; p=MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAtdZp4qrgZR+6R7HeAkuLGJ/3L/6Ungvf5zwrMq6T8Tu931j2G4lYuPtsxyn9fZkT4y7DlX0waktLDB" "OCwf7X78nLEWjAFWiJTeWGRGhRdYRUFpscs9NUN0P+46jKlabibG3XTKd1DeAmywTu6o1oO03yiolrgKD1zgyDRFeUTfSwZIdPrdbcBSA1arda4WFtcBIrSygM9b4jtlqfQwGDrsMLbCBfVHDn4Wfm" "DWyNg0gDAkuLrYClNETk6aqIyj9fC8srKri0Qp3cRagCn+fjBvuxP35qWWJH7Rnnh/tuEDr1ufuNYO2KgJZ7JdMidUotxXE8cfU+OrEWQf4mIYeJ4wIDAQAB"
|
default._domainkey.deuxfleurs.fr. 10800 IN TXT "v=DKIM1; h=sha256; k=rsa; p=MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAtdZp4qrgZR+6R7HeAkuLGJ/3L/6Ungvf5zwrMq6T8Tu931j2G4lYuPtsxyn9fZkT4y7DlX0waktLDB" "OCwf7X78nLEWjAFWiJTeWGRGhRdYRUFpscs9NUN0P+46jKlabibG3XTKd1DeAmywTu6o1oO03yiolrgKD1zgyDRFeUTfSwZIdPrdbcBSA1arda4WFtcBIrSygM9b4jtlqfQwGDrsMLbCBfVHDn4Wfm" "DWyNg0gDAkuLrYClNETk6aqIyj9fC8srKri0Qp3cRagCn+fjBvuxP35qWWJH7Rnnh/tuEDr1ufuNYO2KgJZ7JdMidUotxXE8cfU+OrEWQf4mIYeJ4wIDAQAB"
|
||||||
|
@ -76,14 +78,45 @@ smtp._domainkey.deuxfleurs.fr. 1800 IN TXT "v=DKIM1; h=sha256; k=rsa; p=MIIBIjAN
|
||||||
default._domainkey.adnab.me. 3600 IN TXT "v=DKIM1; p=MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDHd2zQXgGAoFX2CFaRqvWw1oBGhbUIRB5QXPxE9nvWwe/og5LjZBcnKoInPWsKYEz/f5kmpTDq4RZT3PMmjm+u5IuvyQ2LJcdIKSW6t8KWa7yztk2D87f3Lono6WJwvY8RHdGPqKS5RXfEdQFriXiSCAO5ZSQrNXQ5yiQ9T1ptGwIDAQAB; t=s"
|
default._domainkey.adnab.me. 3600 IN TXT "v=DKIM1; p=MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDHd2zQXgGAoFX2CFaRqvWw1oBGhbUIRB5QXPxE9nvWwe/og5LjZBcnKoInPWsKYEz/f5kmpTDq4RZT3PMmjm+u5IuvyQ2LJcdIKSW6t8KWa7yztk2D87f3Lono6WJwvY8RHdGPqKS5RXfEdQFriXiSCAO5ZSQrNXQ5yiQ9T1ptGwIDAQAB; t=s"
|
||||||
```
|
```
|
||||||
|
|
||||||
Structure :
|
**Structure :**
|
||||||
|
|
||||||
- Le nom de domaine est composé d'un selecteur (souvent `default`, on a ici aussi `smtp`) qui permet de distinguer différentes clefs pour signer les messages.
|
- Le nom de domaine est composé d'un selecteur (souvent `default`, on a ici aussi `smtp`) qui permet de distinguer différentes clefs pour signer les messages.
|
||||||
Il est formé de la manière suivante: `<selecteur>.\_domainkey.<domaine>`
|
Il est formé de la manière suivante: `<selecteur>._domainkey.<domaine>`
|
||||||
|
- La valeur est composé de plusieurs champs entre guillemets séparés par des `;`, le champ `v` peut contenir la version de DKIM utilisée (ici `v=DKIM1`)
|
||||||
|
- Le champ `p` contient la clef publique
|
||||||
|
- Les autres champs sont optionels
|
||||||
|
|
||||||
|
**Application à la vérification d'une signature (exemple) :**
|
||||||
|
|
||||||
|
Prenons la signature suivante :
|
||||||
|
|
||||||
|
```
|
||||||
|
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=deuxfleurs.fr; s=smtp;
|
||||||
|
t=1679050854; bh=AkDk3Tm0bnC7b6dvTjRXJbThLE6h/IStsBGIYGa+q7c=;
|
||||||
|
h=Date:To:From:Subject:From;
|
||||||
|
b=Qll5ASi9DmD2rw9LK1vJOahE77Pd/HNDbmrkrOCt4S8Nu42WtJXXOtiwo9J3KGPzR
|
||||||
|
zA2Cw5oCUB0HW5ere8RkINsUj9X/nxOovxFaJw4LSrgEYxQh7unaGBs6Ecw6k2Aqc/
|
||||||
|
oMhNE2OVCSlLkJVUQbgzwBUcZuwndlki6yYoJXkSPMuZ4tFbhgjSaxneRgUvPocYw3
|
||||||
|
Vqc/yMEAbofrlaEf6nSNQZL+LSE4IEBeudsv3JodMn12OYAijhO0rrHHsinK9UkM3M
|
||||||
|
PEEISyatG6RzE6veh4VVv3PTyJMYouQI7fKNooLuDmlGsdSTV9HRo4UvQeOQT1SL/7
|
||||||
|
KvgJtR0Hqz3mQ==
|
||||||
|
```
|
||||||
|
|
||||||
|
Cette signature contient les champs suivants :
|
||||||
|
|
||||||
|
- `v` (obligatoire) indique la version, doit toujours être à `1`
|
||||||
|
- `a` (obligatoire) indique l'algorithme de signature, généralement `rsa-sha256`
|
||||||
|
- `d` (obligatoire) indique le domaine pour lequel la signature est produite
|
||||||
|
- `s` (obligatoire) indique le sélecteur de la clef DKIM utilisée (ici `smtp` pour utiliser la clef `smtp._domainkey.deuxfleurs.fr`)
|
||||||
|
- `h` (obligatoire) indique la liste des en-têtes signés
|
||||||
|
- `bh` (obligatoire) donne le hash du contenu du message
|
||||||
|
- `b` (obligatoire) donne la signature à proprement parler, qui signe les en-têtes `h` et le hash du contenu `bh`
|
||||||
|
- `t` (recomandé) donne le timestamp de la signature, i.e. sa date et son heure
|
||||||
|
- `c` est un paramètre additionnel de la méthode de calcul de la signature
|
||||||
|
|
||||||
### L'enregistrement SPF
|
### L'enregistrement SPF
|
||||||
|
|
||||||
Exemple de valeurs :
|
**Exemple de valeurs :**
|
||||||
|
|
||||||
```
|
```
|
||||||
deuxfleurs.fr. 300 IN TXT "v=spf1 mx:out.deuxfleurs.fr ip4:82.66.80.201 -all"
|
deuxfleurs.fr. 300 IN TXT "v=spf1 mx:out.deuxfleurs.fr ip4:82.66.80.201 -all"
|
||||||
|
|
Loading…
Reference in a new issue