换句话说,是否可以安全地假设任何收件人都不会看到密件抄送的电子邮件?如果收件人是其邮件服务器的管理员(但不是发件人的管理员),并且可以对其服务器进行任何修改,该怎么办?
答案1
不是。SMTP 是纯文本协议,使用存储转发方法。
这意味着:
- 纯文本:转发此邮件的每个服务器都会看到完整的邮件,包括所有标头信息。虽然 BCC 字段中的每个收件人通常都会收到自己的电子邮件(因此服务器会发送一封定制的电子邮件,其中应该删除所有其他 BCC 收件人(强调应该!),而不是 CC,其中数据被保留),单个电子邮件仍然存储在标题中,在纯文本(没有加密、没有混淆、什么都没有)。
- 存储转发:电子邮件不一定直接发送到收件人的邮件服务器,而是可以(通常是)通过一系列中间电子邮件服务器转发;它是存储在每个上面(无限期地),然后转发到下一跳(同样,不一定是最终目的地)。
- 假设电子邮件被发送到不存在、已满、被阻止或无法正常使用的地址 - 邮件副本以及诊断数据可能会出现在多个地方,但不一定都出现在邮箱中(例如错误日志或邮政局长邮箱)
- (这是在您的电子邮件到达目的地的邮件服务器之前,目的地的邮件服务器可以永久存储它并随时将其交给带着传票的任何人,但这是一个略有不同的故事)
换句话说,你的假设是不安全的。如果你想要隐私和安全,请使用数字签名和加密,例如 GPG;普通电子邮件不适合这样的工作。
答案2
任何完全符合RFC 2822(具体来说,第 3.6.3 节,目标地址字段) 将在尝试投递之前从标头中删除该Bcc:
字段,使得非盲收件人无法确定盲收件人的身份。
有几个问题:
除非您可以控制您的外发电子邮件到达的第一个 MTA,否则您无法保证该 MTA 上的软件会按照 RFC 2822 的指示执行。
事实上,您发送给密送收件人的电子邮件可能会穿过一个或多个 MTA,但这些 MTA 的日志中可能会保留这些电子邮件。
答案3
您永远都不应该假设收件人不会知道密件抄送收件人。我曾经遇到过密件抄送收件人在邮件程序中点击“回复所有人”并向所有人宣布他们已收到邮件的情况,而他们完全不理解密件抄送的真正含义。如果您真的需要保密,请在将邮件发送给原始收件人后从“已发送”文件夹转发该邮件,这样邮件标题中唯一的其他地址就是您的。
也就是说,即使您使用了密件抄送,只要密件抄送收件人的服务器与原始收件人是分开的,收件人的服务器就无法访问密件抄送信息,因为该信息已被您的提供商的邮件服务器删除(或更有可能从未包含在邮件正文中)。
附注:SMTP 既不可靠,也不特别保密。一些发帖者声称存在 SMTP 服务器“链”,但一般来说,SMTP 会从您的计算机发送到您的 ISP,再发送到收件人的 ISP。(无论他们内部有多少服务器)一般来说,您的邮件不会被路由到第三方的邮件服务器,事实上,出于反垃圾邮件的原因,这种尝试通常是不允许的。(也有例外,因为小型提供商和家庭网络会转发给他们的提供商,但这是例外,而不是规则)
也就是说,传输中的电子邮件不能保证是加密的,任何潜在的敏感信息都不应该通过任何方式(包括电子邮件)在未加密的情况下传输到互联网,因为对于任何大型供应商或电信公司来说,窃听通过其设施的光纤或记录通过其路由器传输的数据包都是轻而易举的。
联邦调查局经常通过 Carnivore 和其他项目这样做,而且过去也有记录显示不法分子也这样做。
答案4
这一切都取决于服务器。大多数服务器将使用 BCC 行,基本上每个地址发送一次消息。基本上将 bcc 地址放入 cc 行发送,将下一个地址放入 cc 行并发送类型。但这一切都取决于邮件服务器设置。BCC 绝不会超出您的外发邮件服务器。