Az SPF (Sender Policy Framework) rekord egy TXT rekord, amely meghatározza, hogy melyik domain név jogosult e-maileket küldeni a kiszolgálóról (vagy pont fordítva, hogy egy domain névvel milyen szerverekről lehet emailt küldeni). Elsődleges célja az e-mail hamisítás korlátozása, és akkor a leghatékonyabb, ha DMARC rekorddal kombinálják.
Az SPF története
Az SPF-et 2000-ben említették először. A következő években az SPF specifikáció több tervezetben fejlődött. Időközben az eredeti SPF (Sender Permitted From) elnevezés Sender Policy Framework-re változott.
Az IETF SPF munkacsoportja megpróbálta egyesíteni az SPF-et és a Microsoft CallerID javaslatát. A következő kísérlet az SPF “klasszikus” változatával történt. Ez vezetett az első kísérleti RFC-hez 2006-ban, majd végül 2014-ben a javasolt szabványos SPF-hez, amely 2014-ben RFC 7208 néven vált ismertté.
Napjainkban az SPF-hez hasonló e-mail hitelesítési technikák fejlődtek, és olyan technikákhoz vezettek, mint a DKIM és a DMARC. Az SPF még mindig fontos szerepet tölt be annak meghatározásában, hogy egy e-mail DMARC-kompatibilis-e.
SPF a gyakorlatban
Az SPF rekord egy DNS rekord, amelyet hozzá kell adni a domain DNS zónájához. Ebben az SPF rekordban megadhatja, hogy mely IP-címek és/vagy hosztnevek jogosultak e-mailt küldeni az adott tartományból.
A levél címzettje a levél “envelope from” címét (többnyire a Return-Path fejlécet) fogja használni annak megerősítésére, hogy a küldő IP-cím jogosult volt erre. Ez még azelőtt történik, hogy az üzenet testét megkapná. Ha a küldő e-mail szerver nem szerepel egy adott tartomány SPF rekordjában, akkor az adott szerverről érkező e-mail gyanúsnak minősül, és az e-mail címzettje elutasíthatja.
Egy SPF rekordra a következő példa:
v=spf1 a:mail.solarmora.com ip4:192.72.10.10 include:_spf.google.com ~all
Fejtsük meg a karakterláncot szimbólumról szimbólumra, és nézzük mi, mit jelent:
- v - A használt SPF rekord verzióját adja meg. A verziónak mindig spf1-nek kell lennie, mivel a levező szerverek széles körben ezt ismerik.
- + - Ez egy attribútum, és a “pass all” rövidítése.
- mx - Az aktuális (vagy megadott) tartomány DNS MX rekordját határozza meg érvényes küldő forrásként.
- a - Az aktuális (vagy megadott) tartomány (domain név) DNS A rekordját határozza meg érvényes küldő forrásként.
- ip4:<IP> - Ez a fenti kettővel analóg, azonban ebben az esetben a levelezőszerver az “ip4:” után megadott IP címet, vagy IP cím tartományt veti össze a küldő szerver IP címével.
- ip6:<IP> - Ugyanaz mint a fenti, csak IPv6 címekkel és tartományokkal.
- include - Egy másik domain név, tartomány SPF rekordjait tölti be.
- ~ - Ez egy másik attribútum, amely a “soft fail” kifejezésre utal. Ez az attribútum azt jelenti, hogy a feladó megbukik az SPF-ellenőrzésen, azonban az e-mail nem kerül blokkolásra, hanem spamként lesz megjelölve.
- - (minusz jel) - Szintén attribútum, viszont ha ezt használjuk, akkor azon elemnél való egyezésre a kapott email rögtön eldobásra vagy elutasításra kerül.
- all - Minden olyan értékre, ami korábban nem lett külön részletezve, vagy kifejtve.
Mire nem jó az SPF
Az SPF egy nagyszerű technika arra, hogy hitelesítést adjon az e-mailekhez. Van azonban néhány korlátozása, amelyekkel tisztában kell lennie.
- Az SPF nem hitelesíti a “From” fejlécet. Ez a fejléc a legtöbb kliensben az üzenet tényleges feladójaként jelenik meg. Az SPF nem érvényesíti a “from” fejlécet, hanem a “envelope from” alapján határozza meg a küldő tartományt.
- Az SPF ellenőrzése megszakad, ha egy e-mailt továbbítanak. Ekkor a “továbbító” lesz az üzenet új “feladója”, és az új célállomás által végzett SPF-ellenőrzéseket nem fogja teljesíteni. Ennek a hibának kiküszöbölésére hozták létre az SRS (Sender Rewriting Scheme) technológiát.
- Az SPF-nek nincs jelentési lehetősége, ami megnehezíti a karbantartását.