前言:之前有写过发件人伪造的文章,链接如下
https://mp.weixin.qq.com/s/PegHa-wvRxwEbC67ondrLA
蹭一波热点
1.SPF
要了解什么是发件人伪造,就得先知道SPF是啥。
SPF记录的用途是阻止垃圾邮件发件人发送假冒您的域中的“发件人”地址的电子邮件。收件人可以参考 SPF 记录来确定号称来自您的域的邮件是否来自授权邮件服务器。对于大多主流的邮件服务商,鉴别发送者的SPF记录有助于抵御垃圾邮件给接收者带来的骚扰。
如上图所示:
SMTP协议本身没有机制鉴别寄件人的真正身份,电子邮件的“寄件者”一栏可以填上任何名字,于是伪冒他人身份来网络钓鱼或寄出垃圾邮件便相当容易,而真正来源却不易追查。(发件人伪造原理)
SPF 记录允许域名管理员公布所授权的邮件服务器IP地址,接收服务器会在收到邮件时验证发件人在 SMTP 会话中执行 MAIL FROM 命令时的邮件地址是否与域名 SPF 记录中所指定的源 IP 匹配,以判断是否为发件人域名伪造。
邮件接收方的收件服务器在接受到邮件后,首先检查域名的SPF记录,来确定发件人的IP地址是否被包含在SPF记录里面,如果在,就认为是一封来自于被授权服务器的邮件,否则会认为是一封伪造的邮件并根据相关政策退回或放进收件人的垃圾箱。
1.SPF记录查询
简单来说,SPF 记录其实就是一条有特殊语法的 TXT 记录,它由“匹配机制”和“修饰符”2 部分组成。“修饰符”通常只作为可选项,一般情况下 Exchange 管理员只会用到并处理包含“匹配机制”的 SPF 记录。
简单来说SPF是TXT记录,当用户收到邮件之后,会根据邮件的from值,向DNS请求发件人所用的域名,得到TXT记录中的域名或者IP跟邮件头的IP来源作比较,符合进收件箱,不符合过滤或者进垃圾箱。
以腾讯qq域名为例:
Winodws:
nslookup -q=txt qq.com
LINUX:
dig -t txt qq.com
如上图所示qq.com的SPF为spf.mail.qq.com -all
2.DKIM
DKIM 是邮件认证机制,使用公开密钥加密的基础提供了数字签名与身份验证的功能,以检测寄件者、主旨、内文、附件等部分有否被伪冒或窜改。一般来说,发送方会在电子邮件的标头插入DKIM-Signature及电子签名信息。而接收方则透过DNS查询得到公开密钥后进行验证。
如上图所示
1. d是这一个域的签名。这一部分是在DMARC检查签名中的域是否和发送者的域相匹配中用到。
2. h是应该包含在签名中的邮件头的字段列表
3. bh是邮件正文的hash
4. l是hash在邮件正文中所占的字节数。这一选项是可选的。
5. b是签名本身,包括'h'给出的字段,以及DKIM-Signature头本身。由于头部保存的是整个正文的hash,所以b这一参数也可以作为电子签名。
其中h:
h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
h字段包含了from字段,所以只要发件人发生改变其hash也会发生改变,这就可以有效地防御发件人伪造。
3.DMARC
DMARC可以看为是策略制定者,可以制定关于SPF和DKIM的策略。从指定域名发送的邮件是采用SPF还是DKIM或者两个均采用,当不满足SPF/DKIM条件的是放行,拒绝还是进垃圾箱。
Winodws查询命令:
nslookup -q=txt _dmarc.domain.com
LINUX查询命令:
dig TXT _dmarc.domain.com
v=DMARC1; p=none; rua=mailto:[email protected];
ruf=mailto:[email protected]; rf=afrf; pct=10;
v是版本号
p是策略
rua/ruf是报告发送的地址
pct:域名所有者邮件流中应用DMARC策略的消息百分比(这莫不是有时
候发件成功,有时候发件失败的原因???????
写到这里凌乱了不知道怎么写了,颠覆认知了。过几天研究完再改改
原文始发于微信公众号(边界骇客):发件人伪造和防御原理
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论