用户通常可以选择是否要使用安全通道(例如,使用HTTPS)访问其电子邮件提供商(例如Gmail )。
但是,据我所知,在邮件服务器到邮件服务器之间的通信中,大多数电子邮件仍以纯文本格式传输,并且未加密,这使得网络上的任何人都可以阅读其内容。
是否有任何技术可以使用户保证自己的电子邮件从头到尾安全地发送?为什么不让用户知道何时不支持加密,并让他选择是否希望仍然发送电子邮件?
用户通常可以选择是否要使用安全通道(例如,使用HTTPS)访问其电子邮件提供商(例如Gmail )。
但是,据我所知,在邮件服务器到邮件服务器之间的通信中,大多数电子邮件仍以纯文本格式传输,并且未加密,这使得网络上的任何人都可以阅读其内容。
是否有任何技术可以使用户保证自己的电子邮件从头到尾安全地发送?为什么不让用户知道何时不支持加密,并让他选择是否希望仍然发送电子邮件?
Answers:
但是,据我所知,在邮件服务器到邮件服务器之间的通信中,大多数电子邮件仍以纯文本格式传输,并且未加密,这使得网络上的任何人都可以阅读其内容。
正确。SMTP与HTTP一样,默认情况下为纯文本。
如今,许多邮件服务器都支持SMTP的TLS(以前称为SSL)。(这包括Gmail。)但是,它具有与HTTP [S]相同的问题:知名CA颁发的证书要花钱,而自签名证书则毫无价值1以防止MitM攻击。如果您的邮件服务器(例如Web浏览器)对接收者的证书进行了严格的验证,则它可能无法将消息传递到使用自签名证书或内部CA的服务器。如果没有,则不能确定它是在与正确的服务器通信,而不是在冒充它。
另外,TLS是SMTP的相对较新的功能,因此即使收件人的邮件服务器支持TLS,发件人也可能不支持TLS,或者默认情况下它可能被禁用。
1(除非发送服务器支持DANE(TLSA),并且接收服务器的管理员希望在DNS中发布TLSA记录。这很少做,而且有些乏味。)
是否有任何技术可以使用户保证自己的电子邮件从头到尾安全地发送?
两种最常见的电子邮件安全标准:
OpenPGP,基于信任的网络,可免费使用。开源实现是GnuPG(适用于Windows,适用于Thunderbird),原始的PGP已演变为商用PGP Desktop。
S / MIME,基于X.509基础结构。由大多数桌面客户端(包括Outlook,Thunderbird,Mail.app)实现。但是,由于与TLS / SSL相同的基于权限的结构而相对不受欢迎:签名证书需要花费金钱,而自签名证书则无法可靠地验证。
在两种情况下,加密都要求接收者必须已经在使用系统并且已经生成/获取了密钥对。(对于签名,使用发送者的密钥对。通常的做法是对消息进行签名和加密。)
为什么不让用户知道何时不支持加密,并让他选择是否希望仍然发送电子邮件?
通常提交的邮件排队,也不用户还是MTA可以知道下一跳是否支持TLS或不-直到消息被发送,而此时没有可靠的方法来要求用户进行确认。(它们可能是AFK,处于脱机状态,处于睡眠状态,或者是脚本/程序。如果我发送了邮件,则希望尽快发送。)
此外,使用SMTP时,您永远不会知道下一跳是否是最后一跳,或者它是否只是将邮件中继到其他地方。备用MX位于完全不同的网络上并不少见。
因此。只有当双方都使用OpenPGP或S / MIME时,才能实现端到端安全性。
实际的电子邮件流量通常是加密(TLS)的,但还有其他一些问题:
一些显示HTML消息的Webmail客户端虽然使用HTTPS,但可能并不安全,例如,HTML中的代码和数据之间没有硬分隔(可视元素和javascript->注入攻击)
您无法知道每个步骤之间是否已使用TLS / SSL,非常小的服务器没有适当的证书
电子邮件放置在未加密或未被服务器加密的服务器上
电子邮件可以使用任何路由进行传输,您不能指定您信任的服务器(IP地址范围,AS,国家/地区,..)
大型电子邮件服务器不使用多个不同的证书,并且没有足够频繁地更改它们(?)
通过跟踪流量,他们知道何时发送了电子邮件以及有关收件人的信息(哪些服务器之间相互通信)
openssl的实现是一团糟
您必须信任签署证书的证书颁发机构
他们是。或者经常是。
通过SSL或TLS。
--- 220 mail.ovalpowered.com ESMTP Exim 4.72 Sun, 20 Mar 2011 17:09:56 +0000
+++ EHLO test
--- 250-mail.ovalpowered.com Hello vpnhub.sqsol.co.uk [213.229.101.173]
--- 250-SIZE 52428800
--- -PIPELINING
--- -AUTH PLAIN LOGIN
--- -STARTTLS
--- HELP
+++ STARTTLS
--- 220 TLS go ahead
或者,如果您真的很偏执,可以使用PGP或GPG。