[ DMARC e politica ]

Record DMARC non validi: controlla il valore esatto prima di nominare l'errore

Esamina i limiti dei record, l'identificazione del primo tag, i separatori, gli spazi bianchi e i nomi duplicati con criteri precisi, quindi distingui la sintassi dal fallback delle policy condizionali.

A cura del team di ricerca EmailAuth · 6 minuti di lettura

[ Punti chiave ]

  • Conserva i nomi esatti dei proprietari, i confini e i caratteri dei record.
  • Identificazione della versione separata, grammatica dei tag e fallback delle policy.
  • Una correzione della sintassi necessita ancora della verifica effettiva del percorso del messaggio.
In questa pagina

Un plausibile DMARC string può fallire perché è stata pubblicata con il nome sbagliato, divisa in record separati o alterata da un editor. Può anche contenere un valore di policy non valido che presenta un fallback specifico anziché l'errore generico previsto da un operatore.

Esaminare l'esatto valore restituito in più fasi. Preservare innanzitutto la rappresentazione DNS e i limiti dei record, quindi ispezionare l'identificazione, la grammatica e la semantica delle policy. Questo approccio rende la correzione rivedibile ed evita cambiamenti politici non necessari.

Confermare il proprietario e registrare i confini

Interrogare il nome _dmarc applicabile per il dominio Da effettivo. Salva il pieno registrazione TXT set, autorità, ora e TTL. Un valore nella radice del dominio non soddisfa il nome di pubblicazione previsto.

Un record di risorse TXT può contenere diverse stringhe di caratteri. DMARC unisce le stringhe all'interno di quel record in ordine prima di analizzarle RFC 9989 §4.5. Non unisce record di risorse separati in un'unica policy.

Ad esempio, questo è un record in stile zona sintetica:

_dmarc.example.com. 300 IN TXT "v=DMARC1; " "p=none"

Le virgolette delimitano la rappresentazione del file di zona. Esaminare ciò che il provider DNS effettivamente memorizza e restituisce prima di decidere che le virgolette siano un contenuto letterale del record.

Identificare prima la versione

Sotto RFC 9989 §4.7 e quello ereditato RFC 6376 §3.2 sintassi, utilizzare i nomi dei tag in minuscolo registrati e il valore esatto della versione DMARC1 . Il tag v deve apparire per primo. Una versione mancante, un valore diverso o una versione che appare solo dopo un altro tag fanno sì che il record venga ignorato RFC 9989.

Non fare affidamento sulla modifica delle maiuscole e minuscole dei nomi dei tag per produrre un tag riconosciuto equivalente. I valori hanno anche requisiti specifici dei tag; il valore della versione fa esplicitamente distinzione tra maiuscole e minuscole.

Questo è diverso dal comportamento dei maiuscole e minuscole dei nomi DNS . Evitare di estendere una regola generale del nome DNS al testo all'interno di una policy DMARC .

Ispeziona con precisione i separatori e gli spazi bianchi

Le coppie tag-valore utilizzano il punto e virgola come separatori. Le virgole hanno un ruolo diverso all'interno di un elenco di destinazione del reporting e non possono sostituire ogni punto e virgola nel record.

Gli spazi bianchi non sono universalmente vietati. L'ereditato RFC 6376 §3.2 la grammatica del valore del tag consente gli spazi bianchi attorno alla sintassi del tag, ma ciò non autorizza gli spazi all'interno di un token la cui grammatica del valore li vieta.

Un'operazione di copia e incolla può introdurre virgolette tipografiche, punteggiatura non standard o interruzioni di riga involontarie. Confronta gli esatti caratteri memorizzati con la grammatica invece di riparare il valore a vista. Conservare sia la forma originale che quella corretta proposta.

Utilizzare dispositivi che denominano la fase di elaborazione

I seguenti incontri sintetici illustrano problemi e decisioni distinti. Non sono risultati di test in tempo reale o una promessa di etichette diagnostiche identiche per ogni implementazione.

  • Dispositivo con un nome proprietario: v=DMARC1; p=none; rua=mailto:reports@example.com; Risultato della revisione: nessuna policy e richiesta di reporting esplicite
  • Apparecchio con un nome proprietario: p=none; v=DMARC1; Risultati della revisione: la versione non è la prima; ignorare questo record
  • Dispositivo con un nome proprietario: v=DMARC2; p=none; Risultati della revisione: non la versione attualmente definita; ignorare questo record
  • Dispositivo con un nome proprietario: v=DMARC1; p=invalid; rua=mailto:reports@example.com; Risultato della revisione: applicare l'attuale fallback delle norme condizionali
  • Dispositivo con un nome proprietario: v=DMARC1; p=invalid; Risultati della revisione: nessun URI rua qualificante per quel fallback
  • Dispositivo con un nome proprietario: v=DMARC1; p=none; p=reject; Risultato della revisione: nome tag duplicato; riparare l'elenco di tag non valido anziché selezionare un valore
  • Dispositivo con un nome proprietario: due record separati ciascuno che inizia con v=DMARC1; Risultati dell’analisi: molteplici candidati politici; ispezionare il filtraggio e il rilevamento dei set di record
  • Dispositivo con un nome proprietario: v=DMARC1; p=none; xnote=example; Risultati della revisione: il tag sconosciuto viene ignorato in base alle regole attuali

Un tag sconosciuto personalizzato non dovrebbe diventare parte del contratto di politica operativa semplicemente perché un parser lo ignora. Utilizza campi documentati e conserva le note amministrative nel record delle modifiche.

Distinguere i nomi duplicati da più record

Un tag duplicato è un nome ripetuto all'interno di un elenco di tag. L'ereditato RFC 6376 §3.2 DKIM la sintassi tag-value vieta i nomi duplicati e considera l'elenco come non valido. Non dare per scontato che l'ultimo valore p sovrascriva il primo o combinare due tag rua senza una correzione pianificata.

Più record di policy costituiscono un livello diverso. Sotto RFC 9989 §4.10, l'attuale elaborazione del percorso ad albero DNS elimina più record di policy DMARC su una destinazione. Discovery potrebbe quindi trovare un'altra politica applicabile. Un incontro che verifica solo il nome non ha stabilito il risultato completo del ricevitore.

Mantieni questi risultati separati in una segnalazione di bug: conteggio esatto dei record, valore del record singolo concatenato, nomi duplicati e successivo rilevamento.

Applicare la politica di riserva attuale senza generalizzarla eccessivamente

Sotto RFC 9989 §4.10.1, una p mancante o non valida, o sp o np non validi, provoca la continuazione dell'elaborazione come p=none solo se rua contiene almeno un URI di reporting sintatticamente valido. In caso contrario, al messaggio non verrà applicata alcuna elaborazione DMARC in base a tali regole.

Questa condizione non convalida ogni tag-list arbitrariamente interrotto. Un record ignorato all'identificazione della versione non diventa utilizzabile solo perché contiene un indirizzo successivo. Applicare le regole nella fase a cui appartengono.

Sotto RFC 9990 §4, un URI di segnalazione sintatticamente valido non dimostra inoltre l'autorizzazione alla destinazione esterna, la raggiungibilità o l'effettiva raccolta. La guida alle no-report copre quelle dipendenze separate.

Verificare la correzione approvata

Crea un set di record coerente con il nome esatto del proprietario. Esamina le regole dei tag definite in RFC 9989 §4.7, il riferimento al registro in RFC 9989 §9.3 e il completo cambiamento semantico. Non aggiungere un altro record di policy come sostituzione.

Salvare la differenza di configurazione e il vecchio valore per indagini e ripristino. Controlla le risposte autorevoli dopo la modifica, confronta le visualizzazioni ricorsive pertinenti e tieni conto dei dati precedenti memorizzati nella cache. Il flusso di lavoro della registrazione unisce tali controlli al test rappresentativo della posta.

Infine, invia un messaggio controllato attraverso il percorso effettivo dell'applicazione. Una politica sintatticamente valida non lo dimostra SPF oppure DKIM si allinea con Da. Conserva insieme la correzione DNS e la prova di autenticazione del mittente, con risultati separati ove necessario.

Il risultato utile è una spiegazione precisa del difetto, della sua fase di lavorazione, del valore corretto e dell'esito della posta verificata. Ciò è più duraturo che dichiarare un errore permanente ogni stringa dall'aspetto non corretto.

Mantenere la decisione e le prove separate

Per v=DMARC1; p=invalid con un URI rua valido, applica il fallback condizionale indicato solo dopo che il record raggiunge la fase pertinente. Non applicare la regola di riparazione a un elenco di versioni rifiutate o di tag duplicati. Mantenere l'intento della policy e il test effettivo del messaggio come prova di approvazione separata. RFC 8767 §4 consente risposte obsolete qualificanti dopo la scadenza del TTL; la modifica della sintassi non sostituisce immediatamente ogni cache. Non è stato eseguito alcun test del parser, DNS o della posta.

[ Porta via ]

Conserva i nomi esatti dei proprietari, i confini e i caratteri dei record. Identificazione della versione separata, grammatica dei tag e fallback delle policy. Una correzione della sintassi necessita ancora della verifica effettiva del percorso del messaggio.

[Per ruolo]

Cosa significa questo per te

Scegli il tuo ruolo per i prossimi passi pratici.

Amministratore IT/Posta

Diagnosticare per fasi.

I confini dei record, l'identificazione, la sintassi e il fallback delle policy richiedono controlli diversi.

Prossimi passi

  1. Conserva le risposte DNS complete e i caratteri esatti.
  2. Utilizzare dispositivi validi e deliberatamente non validi per la regola pertinente.
  3. Testare nuovamente il record corretto e le identità effettive del messaggio.

CISO/SecOps

Mantenere distinti i risultati e la garanzia del parser.

Una stringa riparata è una dipendenza in un servizio di autenticazione mantenuto.

Prossimi passi

  1. Registrare le specifiche e le ipotesi di implementazione.
  2. Esaminare l'ambito del reporting e le identità delegate.
  3. Conserva risultati precisi anziché un'etichetta generica di stato non funzionante.

Fondatore / Non tecnico

Approvare la politica prevista, non una stringa visivamente plausibile.

Piccole modifiche al testo possono alterare i rapporti, l'ambito o il modo in cui viene valutata la posta.

Prossimi passi

  1. Richiede un diff di configurazione leggibile.
  2. Assegnare i proprietari della policy e dell'applicazione.
  3. Verificare la comunicazione importante dopo la modifica.

[ Domande frequenti ]

Domande frequenti

Eventuali spazi in un record DMARC lo rendono non valido?

No. La grammatica del valore del tag consente gli spazi bianchi nelle posizioni specificate. Ispeziona la posizione esatta e la grammatica del valore di ciascun tag anziché applicare una regola generale senza spazi.

RFC 6376 §3.2 RFC 9989 §4.7

Deve v=DMARC1 essere il primo?

SÌ. RFC 9989 richiede prima il tag v e il valore esatto DMARC1 . Una versione mancante, smarrita o diversa fa sì che il record venga ignorato.

RFC 9989 §4.7

Posso sostituire il punto e virgola con le virgole?

No. Il punto e virgola separa le coppie tag-valore. Le virgole possono separare gli URI di reporting all'interno del loro elenco definito; quei ruoli sono diversi.

RFC 6376 §3.2 RFC 9989 §4.7

Le virgolette visibili in una ricerca DNS fanno sempre parte del valore DMARC memorizzato?

No. Possono essere delimitatori di presentazione per stringhe di caratteri TXT . Ispezionare il fornitore e la rappresentazione del record restituito prima di decidere cosa contiene il contenuto effettivo.

RFC 1035 §5.1 RFC 1035 §3.3.14

Cosa succede quando lo stesso tag appare due volte?

La sintassi ereditata del valore del tag proibisce i nomi duplicati e invalida l'elenco. Correggere il valore singolo previsto invece di fare affidamento sul comportamento del primo valore o dell'ultimo valore.

RFC 6376 §3.2 RFC 9989 §4.7

Un tag sconosciuto invalida automaticamente la policy?

No. RFC 9989 richiede che i tag sconosciuti vengano ignorati. Ciò non rende gli errori di sintassi arbitrari o i valori riconosciuti non validi equivalenti a dati sconosciuti innocui.

RFC 9989 §4.7

P non valido significa sempre lo stesso risultato permerror ?

No. Il rilevamento corrente definisce l'elaborazione none condizionale con un URI rua sintatticamente valido per p mancante o non valido oppure sp o np non valido. Altri fallimenti devono essere valutati nella loro fase.

RFC 9989 §4.10.1

Cosa dovrebbe vedere un revisore umano prima di approvare la riparazione?

Fornire valori esatti prima e dopo, nome del proprietario e limiti del record, grammatica identificata o regola di rilevamento e DNS e verifica del messaggio rappresentativo.

[ Fonti ]

Fonti

  1. RFC 9989

    Sezioni §4.5 · §4.7 · §4.10 · §4.10.1 · §5.3.5 · §9.3 · §3.2.6

  2. RFC 6376

    Sezioni §3.2

  3. RFC 1035

    Sezioni §3.3.14 · §5.1

  4. RFC 9990

    Sezioni §4

  5. RFC 8767

    Sezioni §4

[ Glossario ]

Glossario

Registro delle politiche DMARC
Un record DNS TXT che consente la convalida ed esprime le preferenze di gestione e le richieste di reporting facoltative per i domini applicabili.

RFC 9989 §3.2.6

Elenco valori tag
Una sintassi separata da punto e virgola con posizioni di spazi bianchi definite e nessun nome di tag duplicato.

RFC 6376 §3.2

Provenienza aziendale

Perché le principali istituzioni finanziarie e i governi hanno ritirato le dashboard di sicurezza della posta elettronica.

Le tradizionali piattaforme di autenticazione e-mail ti vendono una dashboard e chiedono ai tuoi ingegneri di fare il lavoro. Negli ambienti ad alto rischio, la supervisione manuale comporta un’applicazione ritardata, deviazioni della configurazione e domini ombra non monitorati.

EmailAuth è la piattaforma di provenienza della posta elettronica degli agenti. I nostri agenti applicano p=reject, mantieni allineati i mittenti di terze parti e sposta i tuoi domini al massimo RFC 9989 conformità, il nuovo standard DMARC , con verificabilità human-in-the-loop.

Governi Grandi imprese Istituti finanziari di primo livello

SaaS · Locazione dedicata · Air-gapped on-premise · Crittografia BYOK

Base di conoscenza