Guida alla configurazione dei protocolli email di Red Sift
- Learn more about DKIM
- Why is DKIM key rotation important?
- How often should DKIM keys be rotated?
- What’s a long DKIM Key?
- What is DKIM canonicalization?
- What is a DKIM selector?
- What is the l= tag in DKIM?
- What are the security concerns around using the l= tag in DKIM?
- What is DKIM Header oversigning?
- What is a DKIM replay attack?
- How does DKIM help with forwarded mail?
- Can an email contain more than one DKIM signature i.e. be DKIM signed multiple times?
- How does ARC come into play when DKIM or DMARC fail?
- Common DKIM misconfigurations
- DKIM recommendations summary
- Technical DKIM configuration tips
- Generating 2048 bits DKIM public and private keys using OpenSSL on a Mac
- Learn more about DKIM
- Why is DKIM key rotation important?
- How often should DKIM keys be rotated?
- What’s a long DKIM Key?
- What is DKIM canonicalization?
- What is a DKIM selector?
- What is the l= tag in DKIM?
- What are the security concerns around using the l= tag in DKIM?
- What is DKIM Header oversigning?
- What is a DKIM replay attack?
- How does DKIM help with forwarded mail?
- Can an email contain more than one DKIM signature i.e. be DKIM signed multiple times?
- How does ARC come into play when DKIM or DMARC fail?
- Common DKIM misconfigurations
- DKIM recommendations summary
- Technical DKIM configuration tips
- Generating 2048 bits DKIM public and private keys using OpenSSL on a Mac
Learn more about DKIM
Why is DKIM key rotation important?
You can rotate DKIM keys by simply replacing the old pair with a new one to authenticate DKIM emails. If a threat actor steals or deciphers your private key, they won’t be able to use it for long if you practice regular DKIM key rotation.
In addition, regularly updating your DKIM keys increases your domain’s email deliverability rate.
How often should DKIM keys be rotated?
It’s generally suggested to rotate DKIM keys every 6 to 12 months. Frequent rotation stops hackers from intercepting and decoding your cryptographic keys. Less frequent rotation (say, once every couple of years) makes your domain more susceptible to the risk of intercepted or decoded keys.
What’s a long DKIM Key?
Some DNS editors can receive errors when DKIM keys or other TXT entries are longer than 255 characters.
To resolve this issue, you can enter your DKIM key by breaking it up into pieces on a single TXT entry.
For example, if your DKIM key is:
"v=DKIM1; k=rsa; p=abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabc"
You can enter it as:
"v=DKIM1; k=rsa; p=abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz" "abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabc"
You can divide them at arbitrary places. The double quote enclosed parts should be separated by a single space character, not a new line.
What is DKIM canonicalization?
Canonicalization is a process whereby the headers and body of an email are converted to a canonical standard form before being DKIM signed. This can be thought of as converting data into a standard canonical form.
Some mail systems, such as forwarders, modify emails in transit that can potentially invalidate the DKIM signature applied. While some DKIM signers may accept minor mail modifications, others may be more strict and require stricter canonicalization.
Two canonicalization algorithms have been created to satisfy mild modification to a message and almost no modification to a message before signing. The two canonicalization algorithms are relaxed and simple respectively.
From DKIM’s perspective, the headers and body of an email are separate and canonicalization algorithms are specified for both, one for the headers and another for the body.
They are represented in the format of canonicalization/canonicalization for the header and body respectively. If no canonicalization is specified then simple is used for both headers and body, so it would look like this: simple/simple.
The simple/simple canonicalization is the stricter of the two and allows for almost no modification to the message header and body. However, this can affect the DKIM signature being invalidated by some forwarders as the email passes through them. Many of the issues with DKIM being invalidated during forwarding can be solved if the canonicalization is changed to relaxed/relaxed to allow for mild modifications to the emails.
What is a DKIM selector?
A DKIM selector is a string that points to a specific DKIM public key record in your DNS. It is specified as s= tag in the DKIM-Signature header field and can be found in the technical headers of an email.
Validation on the receiver side uses the selector in combination with the signing domain in order to carry out a DNS query and find the public key in your DNS.
For example:
“selector”._domainkey.yourdomain
When the receiver retrieves the public key it uses it to verify the DKIM signature.
No two services should use the same selector. For example, if you are sending emails from a number of services on behalf of your domain such as Google, Mailchimp, Salesforce, and Sendgrid, each one must use a unique key and selector in your DNS. If the selectors were the same the recipient would not be able to tell which key to use to decipher a particular email.
What is the l= tag in DKIM?
The l= tag in DKIM specifies the length of the message body that should be included in the DKIM hashing and signing process. This means that only the specified portion of the message body is signed, while the remainder is not included in the cryptographic signature.
This tag is optional. If it is not used, the entire message body is included in the signature by default.
What are the security concerns around using the l= tag in DKIM?
When the l= tag is used in DKIM, only a specified portion of the message body is included in the cryptographic signature, leaving the rest unsigned. This creates a security risk, as attackers can modify the unsigned portion of the message without invalidating the DKIM signature.
This vulnerability means that an attacker could intercept a legitimate email from a reputable sender, append malicious content to the unsigned part of the message, and resend it to a recipient who trusts the sender. Such an attack could damage the reputation of the sending domain and potentially deceive recipients.
To mitigate this risk, it is recommended not to use the l= tag in your DKIM signing process. Additionally, audit your vendors to ensure they are not including this tag when sending emails on your behalf.
What is DKIM Header oversigning?
DKIM is used to sign specific headers or parts of the email body, such as the "From," "Subject," and other headers, to verify the identity of the sender and ensure the integrity of the message. If a signed header is modified after being sent, the DKIM verification will fail.
Attackers may attempt to inject additional headers into an email or modify existing ones for malicious purposes. Oversigning common headers, such as "From," "Subject," "Reply-To," etc., can help protect your emails from manipulation and replay attacks. Oversigning means that you include multiple instances of the same header, effectively signing each one to prevent tampering.
By sending a test email to Red Sift’s Investigate tool, you will be able to see what headers are DKIM signed in your email and if you are oversigning.
What is a DKIM replay attack?
A DKIM replay attack is a type of email attack in which an attacker takes a legitimate, DKIM-signed email and resends it to multiple recipients. The attacker exploits the DKIM signature, which verifies the email's authenticity and integrity, to benefit from the original sender's reputation. This increases the likelihood that the replayed email will bypass spam filters and land in the recipients' inboxes, as it appears to come from a trusted source.
How does DKIM help with forwarded mail?
DKIM helps with forwarded mail by providing a mechanism to verify the authenticity and integrity of an email, even after it has been forwarded. Forwarding can often alter email headers, which can cause issues with other email authentication methods like SPF (Sender Policy Framework).
Without DKIM, forwarded emails may fail to reach the recipient's inbox, especially if the sender's domain is protected by a strict DMARC (Domain-based Message Authentication, Reporting, and Conformance) policy. This is because SPF authentication often fails during forwarding, and without both SPF and DKIM, a DMARC policy of p=reject will instruct the recipient's server to reject the email.
It is strongly advised not to set a DMARC policy of "reject" without first implementing an aligned DKIM signature for all your email sending systems. This ensures that at least one authentication mechanism remains intact when SPF fails.
However, it's important to note that DKIM can also fail when an email is forwarded, particularly if the forwarder modifies any of the DKIM-signed headers or the body of the email. This can happen due to email security gateways, external disclaimer banners, or other modifications introduced during the forwarding process.
Can an email contain more than one DKIM signature i.e. be DKIM signed multiple times?
Yes, an email can contain multiple DKIM signatures, and this is quite normal. This typically occurs when an email passes through different systems that each apply their own DKIM signature. For example, an email service provider (ESP) might add a DKIM signature to track reputation feedback, and another DKIM signature might be added when the email is sent from one system to another on its way out to the internet. If both systems are configured to DKIM sign emails, the email will end up with multiple DKIM signatures.
It's important to note that one of the signatures may fail (often the first one, if the email is modified between the initial and subsequent signing), but as long as at least one signature passes verification, the DKIM check will be considered successful.
How does ARC come into play when DKIM or DMARC fail?
As mentioned earlier, DKIM may fail when an email is forwarded. ARC (Authenticated Received Chain) addresses the limitations of DKIM and DMARC in scenarios involving email forwarding and mailing lists by preserving the original authentication results through a sequence of cryptographic signatures, creating a chain of custody.
ARC helps ensure that legitimate emails can be trusted and delivered, even if modifications by intermediaries cause DKIM or DMARC failures. It does this by allowing the forwarding server to attest to the original authentication results and the integrity of the message when it was first received.
However, the use of ARC relies on the email forwarder to implement it, establishing this chain of custody. Even if an email passes ARC, it does not necessarily guarantee that the email will be trusted or delivered to the recipient's inbox. The final decision lies with the receiving system, which determines whether to trust the established chain of custody.
Common DKIM misconfigurations
- Using Weak or Deprecated Cryptographic Algorithms: Avoid using DKIM keys that are less than 1024 bits. A 2048-bit key is recommended for stronger security. Additionally, ensure you use up-to-date cryptographic algorithms, such as
rsa-sha256. - Not Splitting Longer Keys Correctly in DNS: When publishing a 2048-bit key in DNS, it may be necessary to split the key into multiple DNS records if your DNS host does not automatically handle this. Failure to do so can result in DKIM verification failures. Refer to the specific guidance or examples provided for splitting keys correctly.
- Enabling DKIM in a Third-Party System Without Publishing the Corresponding Public Key: DKIM relies on a private/public key pair. The sender (e.g., a third-party vendor) holds the private key, which is used to sign outgoing emails. It is crucial to publish the corresponding public key in your domain's DNS records, provided by the vendor, to enable proper DKIM verification.
- Missing Required Tags in a DKIM Record: Ensure that your DKIM record begins with
v=DKIM1;. This is a required tag that identifies the record as a DKIM record. - Using the Wrong Record Type: Make sure to publish your DKIM record using the correct DNS record type, such as TXT or CNAME, as specified by the third-party sender. Some providers may require a TXT record for DKIM, while others might use CNAME. Additionally, some vendors, like Microsoft 365 or Amazon SES, may provide multiple DKIM records to facilitate easy key rotation and management.
DKIM recommendations summary
- Oversign email headers.
- Rotate DKIM keys at least once a year.
- Use strong keys (at least 1024-bit) and up-to-date algorithms.
- Avoid using the l= tag.
- Remove unused DKIM records from DNS.
- Implement DMARC with DKIM for better insight and protection.
Technical DKIM configuration tips
Generating 2048 bits DKIM public and private keys using OpenSSL on a Mac
Learn how to generate 2048 bits DKIM public and private keys using the Mac terminal and create a DNS record.
How to generate the private and public keys
- Open the terminal and type
openssl - To generate a private key type:
openssl genrsa -out private.key 2048 - To generate a public key from the private key type:
openssl rsa -in private.key -pubout -out public.key - Find the folder that contains your public key and open it. It should look something like the image below.
- Manually convert the highlighted text above to a single line ie. remove the spaces between new lines.


How to create the DNS record
The generated 2048-bit DKIM public key is too long to fit into a single TXT DNS record. A DNS record can be up to 255 characters. Therefore your public key will need to be split into two separate TXT records using quotes and slash or brackets and quotes as shown below.
Note: this depends on your DNS provider.
TXT"part one" \ "part two"TXT( "part one" "part two" )
To create the DNS record you will have to specify the Name, Type, and Value of the DNS record.
The DNS record Name will look like this:
selector._domainkey.domain
Where the selector is defined by you and can be called anything, for example, the date, device, or service that will sign the emails.
For example:
20180719._domainkey.redsift.io
The DNS record Type is TXT.
The DNS record Value should look like the examples below. The part in bold is copied from the generated public key file and remember that you will need to split the public key into two records.
Splitting examples
Example 1 using quotes
TXT record 1:
“v=DKIM1; k=rsa; p=MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAlTtO1qRFaK955gz16Y8c1EMCqtaT4exCrwfor2yT438ZVjrUcqo2tPUNR4eqkD+xcKRQnWSw931uVUY6YJWtOrgrXTIrHnTkf5Xtg+jaXr0OhjdeVDIG/Le7oOVWncMf+9J4ZSRybOpb+XZPp/JLjis6pmC”
TXT record 2:
“Lrt5j82yBC9DCbsEPSOVVOC1mr5lq8irQs+qAv6M/DnjNcUrdiRBJyNrs2lfuvfs8BFceZAk1AwcVBcYCmZl5OkxZBn8liTC34FPJLLHm6jMp9+c0OaEtxo8zr3QX0ZYEWC3XqZ/p9fo4Pcg+fpyjee79wBVqUzhVAWdzE5+qAIn4e1Dmslyb6IX4mwIDAQAB”
Example 2 using brackets and quotes
TXT record 1:
(“v=DKIM1; k=rsa; p=MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAlTtO1qRFaK955gz16Y8c1EMCqtaT4exCrwfor2yT438ZVjrUcqo2tPUNR4eqkD+xcKRQnWSw931uVUY6YJWtOrgrXTIrHnTkf5Xtg+jaXr0OhjdeVDIG/Le7oOVWncMf+9J4ZSRybOpb+XZPp/JLjis6pmC”
TXT record 2:
“Lrt5j82yBC9DCbsEPSOVVOC1mr5lq8irQs+qAv6M/DnjNcUrdiRBJyNrs2lfuvfs8BFceZAk1AwcVBcYCmZl5OkxZBn8liTC34FPJLLHm6jMp9+c0OaEtxo8zr3QX0ZYEWC3XqZ/p9fo4Pcg+fpyjee79wBVqUzhVAWdzE5+qAIn4e1Dmslyb6IX4mwIDAQAB”)
Domande frequenti: Guida alla configurazione dei protocolli email
In un'epoca pre-DMARC, i record SPF utilizzavano comunemente il meccanismo "-all" per applicare in modo rigoroso le policy dei mittenti. Tuttavia, le attuali linee guida del settore nel 2026 favoriscono "~all" per bilanciare sicurezza e deliverability, evitando il rifiuto non necessario di email valide che potrebbero fallire SPF ma superare DKIM e DMARC.
Questo perché "~all" se implementato insieme a DMARC (in p=reject) continuerà comunque a rifiutare le email non autenticate se falliscono sia SPF che DKIM, ma non blocca la posta legittima, migliorando così la deliverability complessiva.
La specifica DMARC (RFC 7489) afferma che un prefisso "-" su un meccanismo SPF del mittente, come "-all", potrebbe far scattare il rifiuto della mail troppo presto, prima che il processo DMARC abbia luogo. Usa "-all" solo per domini inattivi o che non inviano email (domini che non inviano alcuna email). DMARC ignora le differenze tra soft fail e hard fail nella configurazione SPF, trattandoli entrambi come insuccessi SPF.
DMARC non richiede solo che SPF o DKIM abbiano esito positivo, ma anche che almeno uno dei domini usati da SPF o DKIM sia allineato con il dominio trovato nell’header From. Un corretto allineamento è fondamentale per la deliverability delle email nel 2026, poiché i principali provider di caselle di posta applicano questi requisiti.
Nel caso di SPF, l’allineamento identifica che il controllo MAIL FROM/Return-PATH debba avere esito positivo e anche che la parte di dominio del MAIL FROM/Return-PATH sia allineata con il dominio trovato nell’indirizzo From. In modalità strict, i domini devono corrispondere esattamente, mentre in modalità relaxed sono ammessi anche i sottodomini purché appartengano allo stesso dominio organizzativo.
Ad esempio, se MAIL-FROM/RETURN-PATH è @ondmarc.com e l’header From è @knowledge.ondmarc.com, in allineamento strict non sono allineati. Tuttavia, in modalità relaxed, DMARC considererebbe la verifica superata.
Un report aggregato DMARC contiene informazioni sullo stato di autenticazione dei messaggi inviati per conto di un dominio. Si tratta di un feedback XML progettato per offrire visibilità su quali email hanno superato o fallito SPF e DKIM. Il report offre al proprietario del dominio una visione precisa di quali fonti inviano email per suo conto e della disposizione di tali email (la policy applicata dal ricevente).
I destinatari verificheranno il tag 'rua' del tuo record DMARC e invieranno i report lì. Puoi specificare l'intervallo di generazione dei report aggregati usando il tag ri nel tuo record DMARC (di default è impostato a 86400 secondi, cioè 24 ore). I report forensi contengono informazioni più dettagliate su singoli fallimenti di autenticazione. Qualsiasi informazione personale identificabile (PII) viene rimossa, ma vengono inclusi dati utili al troubleshooting del fallimento DMARC, come info su fallimenti SPF e DKIM, l’intero indirizzo From e l’Oggetto dell’email.
L’indirizzo per ricevere i report forensi DMARC viene specificato tramite il tag 'ruf' nel record DMARC. Non tutti i sistemi riceventi supportano l’invio di report forensi. Red Sift OnDMARC è una delle poche applicazioni DMARC sul mercato a ricevere report forensi grazie alla partnership con Yahoo.
Una macro SPF è un meccanismo utilizzato nei record SPF per definire insiemi riutilizzabili di indirizzi IP. Le macro SPF aumentano la flessibilità e la manutenzione dei record SPF, permettendoti di definire insiemi complessi di IP in un singolo meccanismo, che può poi essere richiamato in più record SPF. Ad esempio, invece di elencare singolarmente tutti gli IP autorizzati, puoi definire una macro come "%{i}", che richiama l’IP del mittente dell’email. Gestendo SPF in questo modo, puoi controllare una lunga lista di IP senza superare il limite di lookup e anche nascondere gli IP autorizzati a chi fa query pubbliche.
Tuttavia, a seconda di come è strutturato il record SPF con le macro, la mancanza di espansione delle macro può causare insuccessi SPF o risultati "Neutral" (indicati dal meccanismo ?all). Se le macro SPF sono critiche per autorizzare server di invio legittimi, l’email potrebbe più facilmente fallire i controlli SPF o essere segnalata come sospetta dai riceventi che si basano su SPF per l’autenticazione.
Mail Transfer Agent Strict Transport Security (MTA-STS) è uno standard che consente la crittografia dei messaggi inviati tra due server di posta. Specifica ai server mittenti che le email possono essere inviate solo tramite una connessione crittografata Transport Layer Security (TLS), impedendo così che possano essere intercettate da cybercriminali.
L’adozione di MTA-STS è cresciuta significativamente, con le organizzazioni che nel 2026 riconoscono la sicurezza del trasporto come essenziale per proteggere le email in transito. Per abilitare MTA-STS, i domini riceventi devono annunciare il supporto a MTA-STS tramite DNS e pubblicare un file di configurazione della policy sul proprio sito web.
L’attivazione di MTA-STS va eseguita con cautela per evitare il blocco della consegna delle email. Si dovrebbe prima implementare MTA-STS in modalità test, permettendo ai report TLS di evidenziare eventuali errori da correggere prima di passare alla modalità enforcement definitiva. Questo approccio graduale diventerà probabilmente pratica standard nel 2026 per le organizzazioni che implementano la sicurezza del trasporto.
SMTP TLS Reporting (o TLS-RPT) consente la reportistica dei problemi di connettività TLS riscontrati dai server mittenti (MTA) ed è definito nella RFC8460. Proprio come DMARC, TLS-RPT invia report via email per notificare ai proprietari di dominio eventuali problemi di consegna dovuti a TLS. Questi report includono policy MTA-STS rilevate, statistiche sul traffico, connessioni non riuscite e motivi dei fallimenti.
Con la funzionalità MTA-STS di Red Sift OnDMARC, non devi preoccuparti di un’implementazione complessa. Basta aggiungere gli Smart Records MTA-STS forniti da OnDMARC al tuo DNS e Red Sift si occuperà di tutto il lavoro, come ospitare il file di policy MTA-STS, mantenere il certificato SSL e segnalare eventuali violazioni della policy tramite il report TLS. Le moderne piattaforme DMARC nel 2026 includono sempre più spesso MTA-STS ospitato come funzionalità standard, semplificando il deployment della sicurezza del trasporto.
Pubblicato con la RFC 7671, DANE (DNS-based Authentication of Named Entities) introduce un nuovo standard Internet per instaurare la comunicazione TLS tra client e server, senza dipendere dalle Certificate Authority (CA) fidate.
Il modello tradizionale delle CA per TLS permette a qualsiasi CA di emettere certificati per qualsiasi dominio. DANE opera diversamente affidandosi all’infrastruttura DNSSEC (Domain Name System Security Extensions) per vincolare un dominio a un certificato. DANE si serve dell’attuale protocollo DNSSEC per assicurarsi che i dati ricevuti siano autentici e non manomessi.
DANE introduce anche un nuovo tipo di record DNS chiamato TLSA che segnala al client che un server supporta TLS. Si consiglia di implementare sia MTA-STS sia DANE. DANE è un requisito di molti enti pubblici — per esempio, spesso le agenzie pubbliche dell’UE sono obbligate ad implementarlo.
DANE e MTA-STS sono efficaci solo se il mittente li supporta; poiché molti supportano solo uno dei due, implementarli entrambi migliora la sicurezza complessiva. Nel 2026, le organizzazioni spesso implementano prima MTA-STS per compatibilità più ampia e in seguito aggiungono DANE per una sicurezza avanzata quando richiesto.
La subdomain policy consente agli amministratori di dominio di proteggere i vari domini e sottodomini a seconda dello stadio in cui si trovano nel percorso DMARC. Per esempio, se tutti i servizi che inviano email per conto del tuo dominio principale sono configurati correttamente con SPF e DKIM, puoi proteggere il dominio principale con una policy DMARC p=reject lasciando i sottodomini su p=none, e viceversa.
Ancora, se hai un servizio di invio email che non è compatibile con DMARC (non supporta SPF o DKIM), potresti decidere di attribuirgli un sottodominio che avrà una policy DMARC diversa, senza impedirti di proteggere gli altri domini. In questo modo puoi suddividere il traffico tra vari sottodomini e proteggere ciascuno separatamente.




