如何检查电子邮件服务是否在邮件服务器之间提供加密?

信息安全 电子邮件 加密
2021-09-04 23:23:22

我如何在技术上验证*我从 Gmail 发送到 Yahoo 的电子邮件在从 Gmail 服务器到 Yahoo 服务器的整个过程中都是加密的?我知道建议在邮件服务提供商和客户端桌面之间进行加密,例如使用 IMAPS 或 SMTPS,并且在使用 Web 界面时使用 HTTPS。但是,如果电子邮件是从例如网络界面发送的,那么该电子邮件可以通过邮件中继服务器以“纯文本”格式发送,直到它到达其目的地邮件服务提供商。

* 除了阅读相应的常见问题

3个回答

首先,您需要知道服务器 IP 和端口。通常包含描述它们在哪个端口上使用的协议:

Googlemail - Gmail
                    Server:         Authentication:     Port:
SMTP Server         smtp.gmail.com  SSL                 465
                    smtp.gmail.com  StartTLS            587
IMAP Server         imap.gmail.com  SSL                 993

ARCLAB 的服务器列表

要自己检查,您可以使用openssl

openssl s_client -crlf -connect smtp.gmail.com:993

和输出:

---
SSL handshake has read 3238 bytes and written 435 bytes
---
New, TLSv1/SSLv3, Cipher is RC4-SHA
Server public key is 2048 bit
Secure Renegotiation IS supported
Compression: NONE
Expansion: NONE
SSL-Session:
    Protocol  : TLSv1
    Cipher    : RC4-SHA
    Session-ID: 92C91152E2BBD7BC1A40889A4B31BB343045275F823F658B5042752B5FFCD072
    Session-ID-ctx: 
    Master-Key: DE4696E40209CB2358ECD9A57537BCBAAC8892E4B1E243C9218F102997741B780C987F4CF7CFEFE7F66919496AFF1D4A
    Key-Arg   : None
    Start Time: 1403632088
    Timeout   : 300 (sec)
    Verify return code: 20 (unable to get local issuer certificate)
---
* OK Gimap ready for requests from 87.17X.XXX.XX qbxmb6xx690wic

SMTP MTA 之间的安全连接主要通过 TLS 完成。TLS 与 SSL 不同的是一个额外的功能,它使用 SMTP 命令初始化STARTTLS

您永远不会知道 Google SMTP 服务器是否通过 TLS 向 yahoo 发送数据,反之亦然,除非您可以访问它们之间的网络并且可以嗅探它们。但是您至少可以检查服务器是否理解 TLS。因此,如果为 TLS 配置了服务器,它将通过 TLS 连接到 yahoo 或 google 服务器。

host -t mx yahoo.com
yahoo.com mail is handled by 1 mta5.am0.yahoodns.net.
yahoo.com mail is handled by 1 mta6.am0.yahoodns.net.
yahoo.com mail is handled by 1 mta7.am0.yahoodns.net.

openssl s_client -starttls smtp -connect mta5.am0.yahoodns.net:25 -showcerts

和谷歌一样

host -t mx google.com
google.com mail is handled by 10 aspmx.l.google.com.
google.com mail is handled by 20 alt1.aspmx.l.google.com.
google.com mail is handled by 30 alt2.aspmx.l.google.com.
google.com mail is handled by 40 alt3.aspmx.l.google.com.
google.com mail is handled by 50 alt4.aspmx.l.google.com.

openssl s_client -starttls smtp -connect alt1.aspmx.l.google.com:25

和输出:

---
SSL handshake has read 3985 bytes and written 470 bytes
---
New, TLSv1/SSLv3, Cipher is RC4-SHA
Server public key is 2048 bit
Secure Renegotiation IS supported
Compression: NONE
Expansion: NONE
SSL-Session:
    Protocol  : TLSv1
    Cipher    : RC4-SHA
    Session-ID: 5BD83CAF6233F40A7CE5161232DDDDEB89D548C2E35CD12904ED766A4725CA83
    Session-ID-ctx: 
    Master-Key: CA3AB66161D5A6464D0CAE30E614CABE5B44EFAAE7CE41377A7C18607DBC010E12C0DE42095CABE76E569ED77359367D
    Key-Arg   : None
    Start Time: 1403643466
    Timeout   : 300 (sec)
    Verify return code: 20 (unable to get local issuer certificate)
---
250 CHUNKING

您可以查看原始电子邮件标题,看看它们是否有相关信息。

我刚刚查看了一些通过 Google 提供的内容并注意到了Received: from XXXXXXXXXXXXX(XXXXXXXXXXXX. [x.x.x.x]) by mx.google.com with ESMTPS id xxxxxxxxxxxxx.73.2014.06.24.07.31.28 for version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128. 这表明谷歌是通过加密的 SMTP 收到的。

但是,我相信电子邮件服务器放置在标头中的消息不遵循任何强制性标准,因此即使标头没有说明,它也可以通过加密的 SMTP 连接传递。我认为任何服务提供商都不太可能(但并非不可能)声称他们没有通过加密的 SMTP 收到它,所以可以肯定的是,如果您的所有跃点都被加密,那么您就可以(但不能保证) .

您可以通过检查浏览器中的 HTTPS 连接来检查 Gmail 网络邮件接口是否通过加密连接连接到服务器。您可以通过单击 Firefox 中地址栏左侧的图标来执行此操作。

你也可以为雅虎做这件事。

但是,我不知道任何可靠的方法来检查您的数据是否在两台服务器之间加密传输(很可能是这样)。