Il meccanismo esistente può fare SPF la politica dipende da un nome DNS assemblato dagli input SMTP del messaggio. Ciò consente politiche capillari, ma rende ciò che è visibile registrazione TXT una descrizione inadeguata della query effettiva o delle sue implicazioni sulla privacy.
Non approvare una politica macro perché sembra familiare. Espandilo per input rappresentativi, identifica l'operatore DNS che riceve la query e stabilisci cosa significa una risposta positiva.
Comprendere il test di esistenza
esiste espande la specifica del dominio ed esegue una query del record A. Lo fa anche per una connessione SMTP IPv6 . Se presente Un record viene restituito, il meccanismo corrisponde; l'indirizzo restituito non viene confrontato con l'IP di connessione. Una risposta solo AAAA non soddisfa la ricerca A. Vedere RFC 7208 sezione 5.7.
Con il normale + qualificatore, una partita produce passaggio. Un nome mancante o vuoto Una risposta non corrisponde; Gli errori DNS temporanei devono essere gestiti secondo le regole di errore di SPF e non convertiti silenziosamente in una decisione di autorizzazione.
Espandi manualmente una query sintetica
Presupporre un singolo record valido, risposte DNS corrette e nessun limite superato. Considerare v=spf1 exists:%{ir}._permit.%{d} -all su example.com per una connessione IPv4 da 192.0.2.9 . La macro i rappresenta l'indirizzo di input. Il trasformatore r inverte le parti e d è il dominio di valutazione corrente. La query espansa è 9.2.0.192._permit.example.com.
Se quel nome restituisce un record A, come il valore illustrativo 127.0.0.2 , esistono corrispondenze anche se l'indirizzo è diverso da 192.0.2.9 . Se non esiste alcun record A e nessun errore impedisce la valutazione, il meccanismo non corrisponde e la policy raggiunge -all .
Il valore A qui è solo un indicatore di risposta positiva. Il significato di sicurezza deriva dal controllo dello spazio dei nomi DNS interrogato e dalla sua regola per restituire le risposte. Un carattere jolly che risponde a ogni possibile query può autorizzare involontariamente ogni input che lo raggiunge.
Distinguere le identità macro
La macro d è il dominio corrente in fase di valutazione. La macro o proviene dal dominio del mittente, mentre l si riferisce alla parte locale del mittente. L'inclusione o il reindirizzamento possono modificare il contesto di valutazione, quindi non dare per scontato che d e o rimangano intercambiabili all'interno di una dipendenza.
I trasformatori macro possono selezionare parti, invertirle e modificare i delimitatori. L'espansione IPv6 non è la stessa stringa decimale puntata di IPv4 . Utilizzo RFC 7208 §7.2 E RFC 7208 §7.3 e una traccia di implementazione per la forma effettiva invece di fare supposizioni da un esempio IPv4 .
I nomi espansi malformati e le etichette troppo lunghe richiedono particolare attenzione. Sotto RFC 7208 §4.8, la specifica rileva le differenze di implementazione per alcuni risultati di specifiche di dominio non validi. Mantieni le apparecchiature all'interno di una sintassi DNS valida e testa il valutatore utilizzato nel tuo ambiente; non affermare che tutti i ricevitori gestiscano ogni input errato in modo identico.
Controlla la privacy e la disponibilità
Come descritto in RFC 7208 §11.6, una macro che utilizza dati della parte locale o del mittente completo può esporre informazioni sull'identità relative al messaggio tramite query DNS all'operatore dello spazio dei nomi e all'infrastruttura DNS pertinente. Esamina i dati minimi richiesti prima di utilizzare tale progetto, in particolare con un servizio di policy di terze parti.
La politica dipende anche dalla disponibilità e dall'integrità del sistema DNS di risposta. Registra chi lo gestisce, come vengono generate risposte positive, come vengono esaminate le modifiche e cosa succede durante le interruzioni. Sotto RFC 7208 §4.6.4, Termini che causano query DNS e ricerche nulle rimanere soggetti ai limiti SPF ; esiste non fornisce chiamate illimitate a criteri esterni.
Costruisci dispositivi di accettazione utili
Testare un input autorizzato, un input non autorizzato, IPv6 se utilizzato, un'interruzione DNS e una parte locale del mittente valida ma insolita se influisce sulla query. Salva il nome espanso esatto, il tipo di query, la risposta DNS e il risultato SPF del terminale per ciascuna apparecchiatura.
Testare anche il comportamento dei caratteri jolly e le modifiche alla zona target. Un record può rimanere sintatticamente corretto mentre il servizio di risposta modifica la propria logica di autorizzazione. Chiudere la revisione solo quando la decisione DNS può essere spiegata e riprodotta.
Il pratico takeaway
Poiché esiste, la questione DNS espanso è la prova politica. Esaminare i suoi input, rispondere alla semantica, all'esposizione alla privacy e al comportamento degli errori prima di fare affidamento sul passaggio risultante.
Registrare la decisione e i suoi limiti
Per lo stesso input 192.0.2.9 , distinguere tre dispositivi: A= 127.0.0.2 fornisce una partita e un passaggio qualificato per impostazione predefinita; una risposta vuota A con successo non dà alcuna corrispondenza e raggiunge -all ; un errore DNS temporaneo termina la valutazione temperror piuttosto che fallire. La regola dell'errore è RFC 7208 §5 E RFC 7208 §4.6.2. Questi sono risultati attesi, non DNS osservati o esecuzioni di valutazione.