gpt4 book ai didi

ssl - 使用 STARTTLS 和 SSL/TLS 进行身份验证

转载 作者:太空宇宙 更新时间:2023-11-03 14:12:54 26 4
gpt4 key购买 nike

据我了解,两者都对连接进行了加密。但是,SSL/TLS“强制”邮件客户端从一开始就加密 channel 。现在假设我 telnet mail.server 25,在 ehlo 之后,我看到 STARTTLS 作为服务器允许我(邮件客户端)使用的身份验证选项。如果我选择 STARTTLS 是否意味着我可以针对服务器(使用我的数字证书)验证我自己(邮件客户端)?为什么以及如何?

我正在做如下但我不明白客户端身份验证部分从哪里来:

telnet some.mail.server 25
ehlo some.mail.server
...
250-STARTTLS
...
STARTTLS
mail from: guy
rcpt to: otherGuy
data
someting
.
quit

我不应该将客户端证书发送到服务器吗?我使用 openssl s_client -starttls smtp 进行了尝试,它实际上提供了 -cert 和 -key 选项来指定证书和私钥。

所以,事实上,与 STARTTLS 相比,SSL/TLS 的唯一缺点是,由于连接是立即加密的,客户端无法在同一端口上发送其证书。只有服务器可以发送其证书。正确的?我脑子里有很多困惑...请为我澄清一下。

最佳答案

直接 TLS 模式和使用 STARTTLS 的 TLS 升级都可以使用客户端证书。这些模式之间的唯一区别是,对于 STARTTLS,您从普通连接开始,如果服务器宣布支持 STARTTLS,则稍后升级。中间人可以删除此公告(类似于 sslstrip ),从而阻止升级到 TLS。这实际上是在实践中使用,参见https://www.eff.org/deeplinks/2014/11/starttls-downgrade-attacks .

不幸的是,用于声明哪些服务器负责邮件传输的 MX 记录只能声明主机而不能声明端口,在这种情况下,默认端口 25 将与普通 SMTP 协议(protocol)一起使用。因此,您只能通过使用 STARTTLS 命令来获取 TLS。

关于ssl - 使用 STARTTLS 和 SSL/TLS 进行身份验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26917533/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com