【问题标题】:Validating TLS email reception验证 TLS 电子邮件接收
【发布时间】:2014-08-19 20:34:19
【问题描述】:

我正在尝试将我们当前的电子邮件代理转换为使用 TLS 发送电子邮件。我们使用 C#,我只是使用了以下更改。

SmtpClient sclient = new SmtpClient();
sclient.EnableSsl = true;

以及验证服务器证书的回调方法。

在测试邮件已成功发送/接收,但我和接收端都不能 100% 确定邮件是加密接收的。 (我尝试使用 Fiddler 但它没有捕获电子邮件)

基于这个http://luxsci.com/blog/how-you-can-tell-if-an-email-was-sent-using-tls-encryption.html,头部如下

ESMTP id 为 s7JKErN9002462 (版本=TLSv1/SSLv3 密码=RC4-MD5 位=128 验证=NO);

我们可以安全地假设邮件通信确实是加密的吗?或者我是否应该进行任何其他代码更改,以确保电子邮件已收到或失败? (我认为这不能确定,因为它取决于 smtp 主机)?

【问题讨论】:

  • 你知道你的邮件没有加密,只有与服务器的通信是加密的,对吧?
  • 是的,我们只需要加密通信。

标签: c# email ssl encryption


【解决方案1】:

最后,您始终可以使用网络嗅探器软件(例如WireShark)检查 TLS 连接。

当然,如果你只打开一个到服务器的 SSL 端口的连接,并且你收到了服务器证书,那么你可以很确定邮件无论如何都不是从蓝天上出现的。

【讨论】:

  • 谢谢,我确实收到了服务器证书,我能够提取节点名称并且标头包含相同的节点!
【解决方案2】:

您可以放心地假设,如果您能够连接并发送邮件,那么您将邮件投递到的隧道是安全的。

SmtpClient 代码是可靠的,您可以信任它。如果在您要求后它无法安全连接,它会引发异常,因此您会知道某些事情与您期望的不一样。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-08-24
    • 2019-06-23
    • 1970-01-01
    • 1970-01-01
    • 2011-03-15
    相关资源
    最近更新 更多