Význam SPF záznamů při ověřování e-mailů
Protokol SPF (Sender Policy Framework) je základním kamenem e-mailové autentizace. Jeho hlavním účelem je zabránit podvržení e-mailových adres (spoofingu) tím, že majitelům domén umožňuje definovat, které poštovní servery jsou oprávněny odesílat e-maily jménem jejich domény.
Když přijímající poštovní server obdrží zprávu, vyhledá SPF záznam publikovaný v DNS (Domain Name System) odesílající domény. Tento záznam má podobu TXT řetězce. Server porovná IP adresu odesílatele se seznamem povolených adres a mechanismů definovaných v tomto záznamu. Správné nastavení a pravidelná kontrola SPF záznamu jsou klíčové pro zajištění doručitelnosti e-mailů a ochranu reputace domény.
Syntaxe SPF záznamu a běžné výrazy
Každý platný SPF záznam se skládá z konkrétních výrazů, které určují pravidla pro ověřování. Syntaxe musí striktně dodržovat standardy, jinak může dojít k chybám při zpracování přijímajícími servery.
- Verze (
v=spf1): Každý záznam musí začínat tímto výrazem. Musí se jednat o úplně první výraz a v celém záznamu se smí vyskytovat pouze jednou. - Mechanismy: Určují zdroje IP adres. Patří mezi ně
ip4aip6pro konkrétní adresy nebo rozsahy CIDR, dálea,mx,ptraexists. Mechanismusincludeodkazuje na SPF pravidla jiné domény, což se často využívá u externích služeb, jako jsou poskytovatelé e-mailových řešení. - Mechanismus
all: Tento mechanismus se umisťuje na konec záznamu a určuje, jak naložit s e-maily, které neodpovídají žádnému z předchozích mechanismů. - Modifikátory: Například
redirectumožňuje předat vyhodnocení SPF pravidel jiné doméně. Modifikátory se chovají odlišně od mechanismů a nesmí obsahovat kvalifikátory.
Každý mechanismus může mít kvalifikátor, který určuje výsledek ověření: + (Pass), - (Fail), ~ (SoftFail) nebo ? (Neutral). Pokud kvalifikátor chybí, implicitně se předpokládá +.
Limit 10 dotazů DNS a jeho dopady
Při vyhodnocování SPF záznamu přijímajícím serverem platí přísné omezení: počet vyvolaných dotazů DNS nesmí překročit limit 10. Toto pravidlo chrání přijímající servery před útoky typu Denial of Service (DoS) zneužívajícími rekurzivní dotazy DNS.
Do tohoto limitu se započítávají výrazy include, a, mx, ptr, exists a redirect. Pokud celkový počet dotazů DNS v celém řetězci (včetně všech vnořených záznamů v include nebo redirect) překročí hodnotu 10, příjemci SPF musí toto vyhodnocení považovat za trvalou chybu (PermError). To má přímý negativní dopad na doručitelnost e-mailů, protože zprávy z takové domény mohou být zahazovány nebo označovány za spam.
Rizika syntaxe a nevhodné politiky v SPF
Při sestavování SPF záznamů se administrátoři často dopouštějí chyb, které oslabují bezpečnost nebo způsobují nefunkčnost ověřování. Mezi nejčastější rizika patří:
- Použití
+all: Tento zápis povoluje odesílání z jakékoli IP adresy na světě. Tím se zcela maří účel SPF, protože útočníkům nic nebrání v podvržení domény. - Použití
?all: Vrací neutrální výsledek a přijímajícím serverům neposkytuje téměř žádné vodítko, jak s neautorizovanou poštou naložit. - Mechanismus
ptr: Tento mechanismus by se neměl v záznamech zveřejňovat. Je pomalý, nespolehlivý a moderní poštovní servery jej často ignorují nebo penalizují. - Chybějící koncové pravidlo: Pokud záznam neobsahuje
allaniredirect, odesílatelé, kteří nevyhoví žádnému pravidlu, obdrží neutrální výsledek, což snižuje účinnost ochrany. - Pořadí výrazů: Jakékoli výrazy uvedené za mechanismem
alljsou při vyhodnocování nedosažitelné a nebudou brány v potaz. Stejně tak je ignorován modifikátorredirect, pokud záznam zároveň obsahujeall.
Jak funguje Kontrola záznamu SPF
Nástroj Kontrola záznamu SPF provádí rychlou analýzu vloženého textu přímo ve vašem webovém prohlížeči. Zpracování probíhá lokálně; vložený text se nikam nenahrává ani neukládá.
Je důležité rozlišovat mezi lokální kontrolou syntaxe a plným dotazem DNS. Tento nástroj se nedotazuje DNS serverů, nerozvíjí záznamy poskytovatelů v include či redirect, netestuje IP adresu odesílatele ani nepotvrzuje, co vrátí přijímající poštovní server. Odhaduje však počet dotazů DNS na základě výrazů přítomných v samotném vloženém záznamu.
Přehled chybových hlášení a upozornění nástroje
Nástroj analyzuje vložený řetězec (který může mít maximálně 20 000 znaků) a v případě nesrovnalostí zobrazuje konkrétní upozornění:
| Chybový stav / Riziko | Zobrazené hlášení v rozhraní |
|---|---|
| Prázdný vstup | Nejprve vložte záznam SPF. |
| Překročení délky | Tento záznam je neobvykle velký. Udržujte jej pod 20 000 znaky. |
| Neplatný začátek | Záznam musí začínat v=spf1. |
| Špatné umístění verze | Výraz ‹term›: v=spf1 musí být první výraz. |
| Duplicitní verze | Záznam obsahuje více než jeden výraz v=spf1. |
| Neznámý mechanismus | Výraz ‹term›: „‹detail›“ není rozpoznaný mechanismus SPF. |
| Chybná hodnota mechanismu | Výraz ‹term›: hodnota ‹detail› chybí nebo má nesprávný formát. |
| Neplatná IPv4 | Výraz ‹term›: zadejte platnou adresu IPv4 nebo rozsah CIDR. |
| Neplatná IPv6 | Výraz ‹term›: zadejte platnou adresu IPv6 nebo rozsah CIDR. |
| Duplicitní modifikátor | Výraz ‹term›: modifikátor ‹detail› se vyskytuje více než jednou. |
| Kvalifikátor u modifikátoru | Výraz ‹term›: modifikátor nemůže mít kvalifikátor +, -, ~ nebo?. |
| Překročení limitu DNS dotazů | Tento záznam již obsahuje ‹detail› výrazů vyvolávajících dotazy DNS, což překračuje limit SPF 10. |
Často kladené otázky (FAQ)
Jak se počítá odhad dotazů DNS pro SPF?
Odhad počítá výrazy include, a, mx, ptr, exists a redirect ve vloženém záznamu. Zahrnuté a přesměrované záznamy mohou přidat další dotazy, takže místní kontrola nemůže znát konečný rekurzivní součet.
Co se stane, když SPF vyžaduje více než 10 dotazů DNS?
Příjemci SPF musí vyhodnocení překračující limit 10 výrazů s dotazy DNS považovat za trvalou chybu. Limit se vztahuje na celý řetězec include a redirect, nejen na první záznam.
Dokazuje bezchybný výsledek, že moje nastavení SPF funguje?
Ne. Tato stránka kontroluje pouze vložený text. Nedotazuje se DNS, nerozvíjí záznamy poskytovatelů, netestuje IP adresu odesílatele ani nepotvrzuje, co vrátí přijímající poštovní server.
Proč jsou části v uvozovkách spojovány?
Některé DNS konfigurace rozdělují dlouhé TXT záznamy do více uvozovkami ohraničených částí. Nástroj tyto části před samotnou analýzou automaticky spojí do jednoho souvislého řetězce, aby mohl správně vyhodnotit celou syntaxi.