为什么SMTP服务器只需要所有发件人在接收邮件之前进行身份validation?

为什么SMTP服务器只需要所有发件人在接收邮件之前进行身份validation?

邮件提交协议( RFC4409 )完全符合你的要求(它需要encryption和authentication),并且被大多数ISP使用,但它可能不是你的意思,因为它只是出站。

对于入境更难。 由于世界上的任何一台服务器都可以在没有预先通知的情况下合法地发送给你一些东西,因此接收服务器需要调查发送者。 有几种协议可以在SMTP中工作,特别是: SPF , DKIM和DMARC 。 SPF有一个格式化的历史,微软的SenderID协议没有帮助,它真的让事情混淆,没有什么帮助。

SPF着手通过使用DNS条目的IP地址或主机名授权电子邮件源。 除非规则直接导致PASS或FAIL结果,否则不是真的有效,并且限制用户设置(例如阻止用户使用ISP的邮件服务器从其公司域发送)。 它的有效性是有限的,但它是由许多更大的ISP支持。

DKIM着手通过提供消息报头和消息体的密码哈希来certificate消息内容在传输过程中没有被篡改。 它与S / MIME签名相似,但在堆栈中处于不同的级别。

SPF和DKIM可以很好地协同工作,但是他们缺乏pipe理监督来处理失败 – 没有提供报告违规的机制,大多数失败最终都会丢失在日志文件中。 DMARC着手通过定义报告机制来解决这个问题。 因此,DMARC消除了对于如何处理SPF和DKIM故障的猜测。

在回答你的问题时,SPF很容易实现(这只是一个DNSlogging),但决定放入什么可能是混乱的。 DKIM是复杂的,并且与邮件服务器的集成可能是困难的。 DMARC依靠它们两个正在实施。 综上所述,这就是为什么许多域名没有实现其中的任何一个。

有可能的select,如DJB的IM2000协议,将存储和身份validation的负担转移给发件人,但这将涉及到replaceSMTP服务器的整个世界,因此这更像是一次学术活动。

你想解决什么问题?

假设每个SMTP服务器都需要一个用户名和密码。 您现在必须为每个可能向任何用户发送电子邮件的人员维护一个用户名和密码。 这是不可能的。 想象一下,这是可能的。 然后,垃圾邮件发送者只需创build一个新的用户名和密码,并发送垃圾邮件。 如果您禁用该帐户,他们将创build一个新的用户名和密码。 如果你阻止了他们的IP地址, 他们移动到一个新的IP地址。

假设您只接受GPG签名的电子邮件,以便您知道是谁发送了邮件。 这是另一种forms的身份validation,但不需要为世界上的每个用户设置用户名和密码。 垃圾邮件发送者只需签署所有的垃圾邮件。 这会使他们放慢一点,你会知道,这个垃圾邮件绝对来自某个特定的人。 但是,您仍然必须阻止该人,然后再生成一个新的GPG密钥,循环将会重复。

SMTP是一个“联合服务”。 每个电子邮件系统都是独立的,但联邦(互联网上的每个SMTP服务器的集合)都可以互相通信。 这样一个大型的联合会的问题是它必须在信任上工作; 垃圾邮件发送者打破这种信任。 信任是一个社会问题。 你不能用技术来解决社会问题。