Outlook for Android 使用中间 Microsoft 服务器

信息安全 tls 安卓 地图 外表
2021-08-25 13:05:05

我有一个在 linux 上运行的 IMAP + SMTP 服务器,使用 Dovecot + Postfix。服务器仅接受通过 TLS 的连接,并在建立隧道后使用明文身份验证。

我今天正在审核邮件日志,并且担心某些 IMAP 登录显示的未知远程 IP 地址。经过一番调查,我发现登录对应于Outlook for Android客户端。

我很满意登录是合法的,因为:

  • 未发送未经授权的邮件
  • 没有任何失败的登录尝试
  • 自设置 Outlook for Android 客户端以来,该行为一直是一致的。
  • 远程 IP 地址似乎已注册到 Microsoft。

远程 IP 位于以下块中:

52.125.138.x
52.125.140.x
52.125.141.x

日志条目如下所示:

dovecot: imap-login: Login: user=<...>, method=LOGIN, rip=52.125.x.x, lip=x.x.x.x, mpid=x, TLS, session=<...>

所以我只能假设outlook移动客户端是为使用中间服务器而设计的。

据推测,这是通过允许 MS 服务器轮询真正的邮件服务器并将通知推送到手机来节省电池寿命。

但是,据我所知,这意味着微软必须(至少暂时)将用户凭据以纯文本形式存储在其中间服务器上。

安全隐患

  1. 他们是否有可能在不共享凭据的情况下通过 TLS 隧道从他们自己的服务器而不是客户端设备进行身份验证?

  2. 这是否意味着中间服务器能够在将邮件推送到客户端之前读取邮件?

  3. 这种行为是否记录在案或已知?

ps其他人似乎已经注意到这种行为:

2个回答
  1. 他们是否有可能在不共享凭据的情况下通过 TLS 隧道从他们自己的服务器而不是客户端设备进行身份验证?

不,要使服务器建立连接,它必须知道凭据。而且我们知道服务器确实建立了连接,而不是客户端,因为我捕获了来自运行 Outlook 3.0.46 (315) 的 Android 平板电脑的所有数据包,并且绝对没有一个数据包进入配置的 IMAP 和 SMTP 服务器,但相当一些人去了微软的地址。即使他们的邮件堡垒充当 HTTP CONNECT 代理,我们也希望看到来自我的服务器的 TLS 证书,但我没有。

同样,当我向第三方发送邮件时,第一跳邮件服务器是 mail.outlook.com,它必须对我的邮件服务器进行身份验证才能通过它发送邮件。这就是 SMTP 标头中的所有内容,供收件人查看。

因此,是他们的服务器进行连接,而不是客户端通过隧道。这意味着他们的服务器知道您的密码,即使只是暂时的。

  1. 这是否意味着中间服务器能够在将邮件推送到客户端之前读取邮件?

是的,它确实。

  1. 这种行为是否记录在案或已知?

这很难说。他们捆绑的文档并没有清楚地描述我所看到的,但是那里的文档数量惊人。

值得注意的是,这种行为有一个合法的技术驱动因素——您的设备可能在其中移动的各种电话和无线网络可能会阻止对邮件服务的访问;这是入口过滤曾经起飞的唯一领域。通过强制您通过总部 Microsoft 进行通信,他们可以确保邮件协议不会从源头被阻止...

...这对你来说是否值得是另一个问题。

安卓客户端总是如此。微软尚未完全解决这个问题。希望在接下来的几个月里,tls 1.2 将成为标准,android 将不得不升级其操作系统以支持它。