onice
V2EX  ›  Java

伪造邮件发件人的原理是什么? JavaMail 怎么实现?

  •  
  •   onice · Jul 28, 2016 · 15533 views
    This topic created in 3755 days ago, the information mentioned may be changed or developed.

    有时候收到垃圾邮件,发现发件人地址居然是自己。

    想问问这个的原理是什么,可以用一些 Mail 库去实现吗?例如 JavaMail 。

    主要是原理。。掌握了原理就知道该如何做了。谢谢大家。

    Supplement 1  ·  Jul 31, 2016
    感谢大家解答,结贴。
    18 replies  •  2016-07-29 18:40:06 +08:00
    frienmo
    frienmo
    Jul 28, 2016
    1
    setFrom()
    owt5008137
    owt5008137
    Jul 28, 2016 via Android
    2
    伪造发件人很容易被扔进垃圾邮件的
    qecxp
    qecxp
    Jul 28, 2016
    3
    原理就是电子邮件 SMTP 协议本来就允许你以任何地址发送邮件。
    SkyRaker
    SkyRaker
    Jul 28, 2016
    4
    自行构建邮件,然后通过 SMTP 服务器发送匿名邮件出去。基本各种语言都可以....你可以尝试 telnet 到邮件服务器(如 exchange ),自行构建 SMTP 包
    shiji
    shiji
    Jul 28, 2016 via Android
    5
    就像 HTTP 客户端发送的 header 一样,你想写啥就能写啥。所以后来有了 SPF 记录限制发信 IP 。还有 DKIM, DMARC 之类的高级技术,从数字签名角度验证发信者。这两个我只知其名,具体的没有深入了解过
    kamen
    kamen
    Jul 28, 2016 via Android
    6
    这种连垃圾箱都不会进,直接就没了
    msg7086
    msg7086
    Jul 29, 2016
    7
    你寄信的时候不也可以随便写发信人的部分吗?
    SoloCompany
    SoloCompany
    Jul 29, 2016❤️1
    8
    SPF - 一个 DNS 记录( TXT 类型),基于 IP 校验的描述,用来说明这个域名所有者通过什么 IP 可以发信出去
    DKIM 也依赖 DNS ,但记录的是数字签名公钥
    如果只是仅仅解决传输过程的伪造的话, StartTLS 加互换证书理论就能实现,但 DKIM 签名因为是存在于信头里面,那么即使通过 relay ,也可以对源发送方进行校验
    franklinyu
    franklinyu
    Jul 29, 2016
    9
    @msg7086 讚,下一代是不是都不會寫信了…… 小學的時候還學寫信封來著
    luban
    luban
    Jul 29, 2016 via iPhone
    10
    有邮件服务器就很好弄,但是目前主流邮箱会验证域名和邮箱是不是一致,不一致都会给出警告
    unifier
    unifier
    Jul 29, 2016
    11
    @kamen 亲测国内各大邮箱都可以伪造……并且能正确接收到
    unifier
    unifier
    Jul 29, 2016❤️2
    12
    @luban 其实并没有吧…… http://zacharyjia.me/2016/01/09/mail-sender-security/ 今年 1 月份的测试结果……
    zhxhwyzh14
    zhxhwyzh14
    Jul 29, 2016
    13
    应该会显示代发那种吧?
    jasontse
    jasontse
    Jul 29, 2016 via iPad
    14
    伪造就是乱写,没有什么原理
    mengzhuo
    mengzhuo
    Jul 29, 2016 via iPhone
    15
    好好看书哈
    而且国内没有对 SPF 校验的邮箱,所以随便对方改咯
    wmhx
    wmhx
    Jul 29, 2016
    16
    /bin/mail -r "[email protected]" -s "$title" "$m" < $content 真是很随便的 .
    yangxin0
    yangxin0
    Jul 29, 2016 via iPhone
    17
    阅读 smtp 协议
    ysc3839
    ysc3839
    Jul 29, 2016 via Android
    18
    SMTP 协议是可以随意设置发件人的……所以……伪造起来也就是发送的时候写你想要的发件人……
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   506 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 49ms · UTC 20:47 · PVG 04:47 · LAX 12:47 · JFK 15:47
    ♥ Do have faith in what you're doing.