我正在编写一个必须向收件人发送加密电子邮件的应用程序。我工作的政府机构最近为外发电子邮件安装了一项功能。如果主题中出现 #secure#,则电子邮件将通过 TLS 发送。
我花了一上午的时间阅读这篇文章。我发现 TLS 适用于服务器之间,但不适用于客户端和服务器之间。例如,如果我发送一封电子邮件,并且它被标记为 TLS,我的 SMTP 服务器将不会将电子邮件发送到目标服务器,除非该服务器接受 TLS 连接。这很好。但是连接到目标服务器下载电子邮件或在线阅读的客户端怎么办?
我没有看到任何针对此情况的强制措施。除非我能找到这样的强制措施,否则我无法利用我所在州政府机构安装的电子邮件功能,并且我需要使用 zip 文件附件进行加密。有这样的强制措施吗?
答案1
据我所知,没有。甚至不能保证收件人的邮件服务器支持 SSL 或 TLS。据我所知,大多数发送加密电子邮件的服务都使用第三方加密邮件服务。例如,信用卡公司和银行通常会告诉您登录您的帐户并使用其内置的邮件服务。如果他们想与您通信,他们会向您发送一封纯文本电子邮件,告诉您登录您的帐户并检查他们的安全消息。另一种方法是使用 OpenPGP 等程序加密消息,然后再发送。然后收件人必须使用该程序解密消息。当然,这非常麻烦和笨拙。 http://www.pcworld.com/article/2472771/how-to-use-openpgp-to-encrypt-your-email-messages-and-files-in-the-cloud.html
答案2
“加密电子邮件”通常是指邮件本身的端到端加密,使用类似邮件/多用途邮件或者前列腺特发性硬化症。这确保了只有收件人才能阅读邮件,而参与传递邮件的任何 SMTP 服务器都无法阅读。(但是,这意味着收件人负责解密邮件,而要加密邮件,您需要拥有与预期收件人相对应的 PKI 证书或 PGP 密钥或密码之类的东西。)
相比之下,TLS 仅保护 TCP 连接免遭第三方窃听;它不会向连接两端的计算机隐藏数据。一旦您的雇主的 SMTP 服务器将消息传递到远程 SMTP 服务器(即使使用 TLS),该远程服务器就可以对消息执行任何操作:它可以在没有 TLS 的情况下将其转发到其他地方,或者将副本发送给政府机构,或者将其发布在互联网上,甚至在将消息传递给收件人之前更改消息的内容。每个 SMTP 服务器都必须信任其他 SMTP 服务器才能做正确的事情。
TLS 保护两台计算机之间的单个连接。端到端加密(即 S/MIME 或 PGP,或发送受密码保护的 ZIP 文件)保护消息发送者和消息接收者之间的整个通信路径。听起来前者就是你雇主的 SMTP 服务器提供的(因为这是它最好的能您可能不知道,它只是一个中介,而不是终点,但后者才是您真正想要的。
答案3
您无法强制执行 SMTP 消息在您自己的服务器之外的处理方式。超出您范围的任何事情都不是您的责任,我认为您的州政府机构明白这一点。我怀疑这是 CYA 的要求,他们根本不在乎消息离开您的服务器后会发生什么。