我正在编写一些需要发送电子邮件的 linux 代码。我的问题是:当我使用 STARTTLS(msmtprc 中的 starttls on)时,使用普通身份验证(auth plain)是否安全?连接 a) 在发送密码之前是否已加密?或 b) 发送密码,然后建立加密?
我假设第一个解决方案(a),但我想确保没有普通密码通过网络传输。
另外(这是一个附带问题)我认为即使 STARTTLS 已打开,它通常也不是强制性的,而且我听说中间攻击者可以“降级”连接以禁用 TLS。这是真的吗?这里的问题是:我是否应该进行进一步测试以确保只能与 SMTP 服务器建立加密连接?
这是我的 msmtprc:
account default
host my-smtp-server.pl
tls on
tls_certcheck off
tls_starttls on
port 587
auth on
from my-email@mydomain.pl
auth plain
user username
password p@$$w0rd