有关邮箱地址伪造,有没有大佬来个科普

277 天前
 LeeReamond

以前是就知道邮箱地址可以伪造,但是也没太在意,反正邮箱诈骗骗不到我头上。不过最近公司退税相关要有转账操作,收到邮件时候倒是确实感觉有点不太好分辨,我是确认了一下账户是公司对公账户才转过去的。毕竟前一段时间香港出了个被骗几千万的新闻好像就是用邮箱诈骗+AI 收集了对方公司领导的公开照片,用 AI 打视频会议,让分公司误以为总公司确实有转账,这就诈骗成功了。

几个问题:

  1. 既然伪造邮件发新地址和修改 http 的 headers 一样简单,邮箱系统有没有类似 SSL 一样的确认合法性的工具?
  2. 有合法性确认工具但是好像可以绕过?
  3. 主流邮箱系统好像都有可以绕过的问题?隔壁贴看说 163 和 gmail 都有问题。
  4. 应对网络诈骗,如果我收到自称是 A 发来的邮件,我回给 A 邮件的信息是不是只有真正的 A 知道,历史上有没有案例是信息被转发截胡的?

主要真收到要求转账邮件以后不知道真假,很多时候都依靠微信确认。微信确认有两个问题,一个是都用微信那还要邮件干什么,二是很多时候其他部门的不一定有微信,都是按规章给你来个邮件通知,双方也只有邮件交流。

3321 次点击
所在节点    程序员
26 条回复
sNullp
277 天前
liuxyon
277 天前
使用 DKIM 验证. 我邮箱自带自动验证并且邮件标识出来.
Love4Taylor
277 天前
DKIM + DMARC
liuxyon
277 天前
如果公司需要安全邮件服务可以用我的试试.
busier
277 天前
正确的方法是使用 S/MIME 或 PGP 对邮件进行数字签名或者加密。
ZE3kr
277 天前
> 应对网络诈骗,如果我收到自称是 A 发来的邮件,我回给 A 邮件的信息是不是只有真正的 A 知道

是的,只要你在回的时候仔细确认收件人。小心来件里可能有 CC/Reply-To ,这样可能会被第三者知道

就跟电话一样,来电号码可以伪造,但再打回去确认就没问题了。
busier
277 天前
1 、有,S/MIME 或 PGP 。前者需要向 CA 申请证书。后者可以自行生成公钥。主流邮件客户端 Outlook 或 ios 自带客户端支持 S/MIME ,像 thunderbird 之类开源客户端同时支持两者。
2 、无法绕过。
3 、无法绕过。
4 、完全解决此问题。数字签名解决身份确认问题。S/MIME 和 PGP 还可以加密。端到端的加密可以防止网络服务商和邮件服务商监控邮件内容。
LeeReamond
277 天前
@ZE3kr 邮件还遇到过,我用客户端查看收件人栏位,收件人地址不是我但是我收到了(同时我也不是抄送地址),不知道是怎么做到的

@busier 不用 outlook 客户端。我使用 outlook 网页版是否有自动验证功能?
leoleoasd
277 天前
> 收件人地址不是我但是我收到了(同时我也不是抄送地址),不知道是怎么做到的

你在密送 (BCC) 里
leoleoasd
277 天前
一般用于群发给一大堆人一样的邮件,但是不让收件人知道收件人列表
这个时候 收件人一栏一般空着或者写发件人的邮箱
cnt2ex
277 天前
了解一下 SPF/DKIM/DMARC 这几个机制是怎么工作的,然后手动检查邮件里一些重要的 header ,比如 Return-Path 、DKIM-Signature 、Authentication-Results 。如果这几个 Header 都没有,多半就是伪造的。

除了一些特殊情况,Return-Path 是表示邮件是从哪个邮件服务器发送过来的,这个地址有可能和 From 不是同一个地址。RFC 5321 要求 Return-Path 是最后一跳邮件服务器加上的,也就是你的邮件服务提供商。

一般来说,你的邮件服务提供商会通过 SPF 机制验证 Envelope From ,然后把 Envelope From 的地址填到 Return-Path 里。要注意的是,Envelope From ( SMTP 协议通信时使用的地址)和邮件里的 From header (邮件里的 header ,客户端显示的就是这个地址)是两个东西,因此一封信即使通过 SPF 验证,仅仅能保证 Return-Path 写的是真的,而不能保证 From 是真的。

DKIM-Signature 是这封邮件的签名,里面通常带有哪个域名给这封邮件签过名,来保证邮件的完整性。但也要注意的是,签名域名和 From 也可以是不同的。比如 DKIM-Signature 里签名的域名可以是 outlook.com ,而 From 的地址却是 xxx@qq.com 这种毫不相关的地址,这种情况下,DKIM-Signature 只能保证邮件是由 outlook.com 这个域名签名过的,不能保证 From 就是真的。

SPF/DKIM 和 DMARC 结合一起使用,才能保证 From 的真实性。DMARC 有 Alignment 要求,要求 SPF 和 DKIM 里的域名和 From 对齐。

Authentication-Results 则包含了以上几种机制 spf 、dkim 、dmarc 的验证结果。

以上只是理论上,但实际上,我发现很多邮件服务提供商,都缺少相关的东西。比如 qq 邮件收到的邮件,偶尔就会少 Return-Path 这种重要的 header ,很多学校使用的 Coremail 邮件系统则是没有一封邮件会有 Return-Path 信息。
busier
277 天前
@LeeReamond 端到端的加密必须由客户端软件支持。好在这两者都是行业标准,pc 端和移动端都能良好支持。

目前尚未发现 web 界面的支持客户端。

话说这是终端到终端的加密,你要是将私钥放在 web 服务器上解密并以 web 方式展现邮件的话,那就失去端到端加密的意义了。
busier
277 天前
@cnt2ex 厉害👍
邮件服务商对规范遵循程度参差不齐,作为用户,邮件服务商也不可能依着用户改,况且大家还五花八门用着不同的邮件服务商。所以说这个思路不太可能有效解决问题。
lisxour
276 天前
@busier #13 对于用户来说,给邮件签名是最好的处理方法。
limetw
276 天前
感觉 xray-core 的 reality 既然可以偷证书上网
那么是不是可以在邮箱上面做文章
没读过源码 忘了哪次意淫出来的 就没了后续
Hormazed
276 天前
一、邮件传递参数逻辑:
发送 ip 地址:垃圾检测
mail from:垃圾检测
rcpt to:垃圾检测
from:无检测〔伪造部分〕
to:无检测〔伪造部分〕

二、没有垃圾邮件网关,简单的方法:
1.入向接收邮件,出向发送邮件,一台服务器拆分为两台服务器
2.入向接收邮件系统对来自 from 地址是内部域名的进行拦截

三、有垃圾邮件防护网关:
1.配置策略指定参数的邮件,进行隔离拦截

说明:
此处接收邮件,发送邮件,指的是服务器和服务器通讯比如,A 服务器—->B 服务器,不是客户端的发送接收邮件
kris0502
276 天前
邮件伪造可以主要看一下
1 、spf 伪造,通过配置 dkim 防御
2 、代发,发件人声称自己是 a@a.com ,也就是发件人地址,其实是 b@b.com ,这种情况通过网页端查看提示该邮件是否为代发
3 、形似域名:比如你公司是 aabbcc.com ,攻击者购买一个 aabbbcc.com 自建邮箱给你发,注意仔细验证后缀名就可以防御
4 、攻击者拿到你单位内部后发起的钓鱼攻击,如果涉及到密码、资金等重要信息的,打电话确认。。
julyclyde
275 天前
邮件系统的主要问题是多方合作,很难强制所有参与方全都上统一的高级别安全措施
所以一般都会比较宽容“别家”没上安全措施
NewYear
268 天前
@limetw

首先,不要怀疑现代加密体系,不会有什么“偷证书”这种技术,当你有这种理解的时候,说明你对传输技术和 TLS 技术不够了解,再多看几个科普文吧。

你说的这个技术,只是一种伪装的方法,但是伪装的影响目标是中间人,而不是传输的两端,传输两端是伪造不了的,如果能伪造就是天大的漏洞,早都铺天盖地的修补了。
limetw
267 天前

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1018667

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX