ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

防钓鱼邮件-SPF技术介绍

2022-05-22 11:32:12  阅读:309  来源: 互联网

标签:记录 IP 钓鱼 mx SPF com example 邮件


 

       

 SPF简介

      

        SPF,全称为 Sender Policy Framework,即发件人策略框架。

当前 Email 通信,还是在使用 SMTP 这个协议。SMTP 的全称为 Simple Mail Transfer Protocol,即「简单邮件传输协议」。正如它的名字锁暗示的,SMTP 实际上是一个非常简单(甚至简陋)的传输协议,本身并没有很好的安全措施。根据 SMTP 的规则,发件人的邮箱地址是可以由发信方任意声明的。在SMTP 协议制定的时候也许还好,但在垃圾和诈骗邮件横行的今天,这显然是极不安全的。

        SPF 出现的目的,就是为了防止随意伪造发件人。

    

SPF记录原理

 

        SPF 记录实际上是服务器的一个 DNS 记录,原理其实很简单:

        假设邮件服务器收到了一封邮件,来自主机的 IP 是222.91.123.220,并且声称发件人为email@example.com。为了确认发件人不是伪造的,邮件服务器会去查询example.com的 SPF 记录。如果该域的 SPF 记录设置允许 IP 为222.91.123.200的主机发送邮件,则服务器就认为这封邮件是合法的;如果不允许,则通常会退信,或将其标记为垃圾/仿冒邮件。

        钓鱼邮件虽然可以「声称」他的邮件来自example.com,但是他却无权操作example.com的 DNS 记录;同时他也无法伪造自己的 IP 地址。因此 SPF 是很有效的,当前基本上所有的邮件服务提供商(例如 Gmail、QQ 邮箱等)都会验证它。

 

SPF语法

        

一条 SPF 记录定义了一个或者多个 mechanism,而 mechanism 则定义了哪些 IP 是允许的,哪些 IP 是拒绝的。

这些 mechanism 包括以下几类:

all | ip4 | ip6 | a | mx | ptr | exists | include

每个 mechanism 可以有四种前缀:

  • "+"  Pass(通过)

  • "-"  Fail(拒绝)

  • "~"  Soft Fail(软拒绝)

  • "?"  Neutral(中立)

        查询时,将从前往后依次查询每个 mechanism。如果一个 mechanism 包含了要查询的 IP 地址(称为命中),则查询结果由相应 mechanism 的前缀决定。默认的前缀为+。如果测试完所有的 mechanisms 也没有命中,则结果为 Neutral。

        除了以上四种情况,还有 None(无结果)、PermError(永久错误)和 TempError(临时错误)三种其他情况。对于这些情况的解释和服务器通常的处理办法如下:

下面详细分析每个Mechanisms

all

表示所有 IP,肯定会命中。因此通常把它放在 SPF 记录的结尾,表示处理剩下的所有情况。例如:

  • "v=spf1 -all" 拒绝所有(表示这个域名不会发出邮件)

  • "v=spf1 +all" 接受所有(域名所有者认为 SPF 是没有用的,或者根本不在乎它)

ip4

格式为ip4:<ip4-address>或者ip4:<ip4-network>/<prefix-length>,指定一个 IPv4 地址或者地址段。如果prefix-length没有给出,则默认为/32。例如:

  • "v=spf1 ip4:192.168.0.1/16 -all"

只允许在 192.168.0.1 ~ 192.168.255.255 范围内的 IP

ip6

格式和ip4的很类似,默认的prefix-length/128。例如:

  • "v=spf1 ip6:1080::8:800:200C:417A/96 -all"

只允许在 1080::8:800:0000:0000 ~ 1080::8:800:FFFF:FFFF 范围内的 IP

a 和 mx

这俩的格式是相同的,以a为例,格式为以下四种之一:

  • a

  • a/<prefix-length>

  • a:<domain>

  • a:<domain>/<prefix-length>

会命中相应域名的 a 记录(或 mx 记录)中包含的 IP 地址(或地址段)。如果没有提供域名,则使用当前域名。例如:

  • "v=spf1 mx -all"

允许当前域名的 mx 记录对应的 IP 地址。

  • "v=spf1 mx mx:deferrals.example.com -all"

允许当前域名和 deferrals.example.com 的 mx 记录对应的 IP 地址。

  • "v=spf1 a/24 -all"

类似地,这个用法则允许一个地址段。

例如,这是一个比较常见的 SPF 记录,它表示支持当前域名的 a 记录和 mx 记录,同时支持一个给定的 IP 地址;其他地址则拒绝:

  • v=spf1 a mx ip4:173.194.72.103 -all

include

格式为include:<domain>,表示引入<domain>域名下的 SPF 记录。注意,如果该域名下不存在 SPF 记录,则会导致一个PermError结果。例如:

  • "v=spf1 include:example.com -all"

即采用和 example.com 完全一样的 SPF 记录

exists

格式为exists:<domain>。将对<domain>执行一个 A 查询,如果有返回结果(无论结果是什么),都会看作命中。

ptr

格式为ptr或者ptr:<domain>。使用ptr机制会带来大量很大开销的 DNS 查询,所以连官方都不推荐使用它。

 

SPF记录查询

windows:

nslookup -qt=txt example.com

linux:

dig -t txt example.com

 

其他

 

spf官网:http://www.openspf.org/

spf验证:http://www.kitterman.com/spf/validate.html

其他技术:DKIM,DKIM也是一种防垃圾软件技术,在国外用的比较多

伪造钓鱼软件:swaks

标签:记录,IP,钓鱼,mx,SPF,com,example,邮件
来源: https://www.cnblogs.com/Eleven-Liu/p/16297474.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有