Stejně jako na světě přibývá spamu a množí se způsoby, jak obcházet současná opatření proti němu, vznikají i nové technologie a postupy, jak se spamům bránit. Obvyklým problémem je, že odesílatel spamu (resp. jakéhokoliv e-mailu) může do hlavičky zprávy uvést libovolnou e-mailovou adresu odesílatele. Paralelu můžeme najít u klasické papírové pošty, u které můžeme také na obálku napsat libovolné jméno a adresu odesílatele, nic nám v tom nezabrání a nikdo nemá možnost si zkontrolovat správnost těchto informací. To, že jsou nepravdivé, pochopí po přečtení až příjemce zprávy. Spammeři tedy pro adresy odesílatele samozřejmě nepoužívají svoji adresu, ale libovolné a často náhodné adresy s náhodnými doménami.
To má navíc nepříjemný efekt – pokud se nedaří spam doručit příjemci, doručující SMTP server odešle chybovou hlášku na onu adresu odesílatele. Zahlceni tedy nejsou pouze příjemci, ale také lidé, jejichž adresy bylo zneužito pro rozesílání spamu. Majitelé a správci domén o tom jistě vědí své. Tomuto doručování chybových hlášek se můžeme bránit tak, že si dáme záležet na konfiguraci mailserveru naší domény. I z mnoha dalších důvodů je vhodné nepoužívat tzv. doménový koš (tj. zprávy pro neznámého příjemce jsou doručovány do určité speciální schránky), ale mít jasně stanovený seznam adres příjemců, které na naší doméně akceptujeme, a ostatní adresy striktně odmítat. Tím velmi snížíme pravděpodobnost, že se spammer trefí do adresy odesílatele, které skutečně existuje.
Výše uvedené opatření však pouze sníží množství přijímaného spamu pro náhodně generované příjemce na naší doméně a také sníží množství zpětně přijatých chybových hlášek o nemožnosti doručení spamu. Spam jako takový však bude stále s uvedením naší domény rozesílán. A často to dopadá tak, že správci serverů, které jsou postiženy návalem nevyžádaných zpráv, začnou křičet na nás, proč spam rozesíláme my, i když my za to vůbec nemůžeme.
Pokusem o řešení tohoto problému je tzv. systém SPF (Sender Policy Framework), který je definován v RFC 7208. Jedná se o systém, který umožňuje majitelům domén definovat pravidla, říkající které uzly v Internetu jsou oprávněny posílat e-maily s adresou odesílatele z dané domény. Prakticky to vypadá tak, že majitel domény zanese do zóny speciální záznam TXT, ve kterém je uveden seznam IP adres počítačů, ze kterých mohou pocházet e-maily s danou doménou. Typicky to bude seznam IP adres firemních počítačů, serverů, firemní SMTP brány apod. Tento systém musí být samozřejmě podporován ostatními servery. Pokud SMTP server obdrží e-mail a k doméně odesílatele získá dotazem do DNS záznam typu TXT, který obsahuje SPF pravidla, provede kontrolu. E-mail pak propustí jen pokud pravidlům vyhovuje. Jinak jej odmítne. Kontrola se provádí ještě před zasláním těla zprávy (po odeslání příkazu MAIL FROM). SMTP server, který SPF nepodporuje, jej nezkontroluje a e-mail propustí dál.
Původně bylo zamýšleno používat pro SPF pravidla speciální DNS záznam typu SPF. Od toho bylo ale nakonec upuštěno a tento typ záznamu byl zrušen ve prospěch TXT záznamu
Systém SPF je poměrně mladý a donedávna byl označován jako experimentální, tato technologie tedy není zatím příliš rozšířena. Aby bylo možné pomocí ní vymýtit spam, musely by mít všechny domény na světě příslušné (a správně nadefinované) SPF záznamy a všechny SMTP servery na světě by musely provádět příslušné kontroly. Na správné nastavení pravidel v SPF záznamu je potřeba dávat si velký pozor. Pokud omylem na nějaký počítač či nějakou podsíť zapomeneme, může nastat problém s doručováním regulérních e-mailů.
Takto například vypadá výchozí SPF záznam WEDOS:
v=spf1 mx a include:_spf.we.wedos.net -all
V příkladu vidíme jasně nadefinované podsítě, které jsou oprávněny odesílat e-maily s adresou, obsahující doménu ietf.org.
UPOZORNĚNÍ: Nesmí být nastaveno více TXT(SPF) záznamů u jedné domény, adresy serverů musí být zadané do jednoho společného záznamu!
Další informace:
http://cs.wikipedia.org/wiki/SPF
http://tools.ietf.org/html/rfc7208 (anglicky)
Jak nastavit SPF u WEDOS?
Máme k dispozici detailní návod pro nastavení SPF.