明辉站/杀毒教程/内容

为什么支持Oauth2.0 的邮箱更安全?

杀毒教程2023-04-10 阅读
[摘要]前段时间在贴吧“Gmail 吧”讨论得比较多的可以支持Gmail的邮箱客户端 YoMail被指不安全, 而YoMail团队声明 YoMail 采用了 oAuth2.0登录Gmail, 采用SSL传输数据, 可以保证用户的密码安全和邮件数据安全, 并且声称国内...

 前段时间在贴吧“Gmail 吧”讨论得比较多的可以支持Gmail的邮箱客户端 YoMail被指不安全, 而YoMail团队声明 YoMail 采用了 oAuth2.0登录Gmail, 采用SSL传输数据, 可以保证用户的密码安全和邮件数据安全, 并且声称国内大部分邮箱服务不支持oAuth2.0, 大部分邮箱客户端(比如Foxmail)也不支持oAuth2.0, 其实是不安全的。 那么oAuth2.0到底是什么?为什么支持采用oAuth2.0验证的邮箱服务(如Gmail oAuth验证)更安全?YoMail 到底安不安全?我们接下来会做详细解释。

  关于 oAuth2.0

  你在网站看到一篇的文章想要分享到微信朋友朋友圈或微博, 你在某团购网站网站上买了团购券需要用支付宝, 这时候这些网站会跳出微信、微博、支持宝的登录界面, 用户输入微信、微博、支持宝的用户名密码后完成操作。 这个过程典型的Oauth2.0的验证过程。 这里面有几个步骤:

  1. 用户在第三方网站上连接微信的时候会被重定向到微信的登录界面

  2. 用户接下来在微信的验证页面输入用户名和密码, 这个时候, 你的用户名和密码是在微信的网站上输入的, 而不是第三方网站

  3. 验证通过后, 微信会返回一个确认界面, 这时候用户会被告知第三方程序需要访问用户哪些信息, 比如昵称、头像、比如分享到朋友圈的权限

  4. 用户点接受后, 微信会返回一个二进制 token给第三方应用, 随后, 第三方应用就用这个token和微信、微博、支持宝交互

  在整个过程中, 第三方应用并没有获取你的关键信息, 如用户名和密码。 自oAuth诞生以来, 社交网络和电子商务迎来了爆发期, 因为他们提供了基于oAuth的API给第三方, 既保证了用户的信息安全, 又给社交网络和电子商务网站带来巨大的流量。

  电子邮件的 oAuth2.0时代

  大家都知道, 用户有时候更愿意用第三方工具访问自己的邮箱, 如Outlook、Foxmail、邮箱大师、YoMail 等都是第三方邮箱工具, 这些工具可以访问任何邮箱。

  随着移动互联网时代的大爆发, 有大量的创业公司在开发各种邮箱客户端, 如果保证这些邮箱密码安全?oAuth2.0是答案。

  目前国际邮箱大多支持 oAuth2.0 API 接口, 如 Gmail, Outlook.com等。 但国内大多数邮箱其实还不支持 oAuth2.0登录。 这就造成了国内用户对oAuth2.0很陌生, 也对创业公司的产品很恐惧。

  邮箱的裸密码时代

  传统模式下, IMAP(收邮件)和 SMTP (发邮件) 采了用 标准的SASL 协议验证身份, 用户名和密码都是明文(plain-text)。 采用这种明文验证方式, 邮件客户端需要把用户名密码存在客户端本地, 这种方式是非常不安全的。 我们发现 Foxmail 或Outlook登录Gmail 只支持这种不安全的验证方式 (密码存储在Foxmail本地), 相当于Foxmail和Outlook获取了你的用户名和密码。

  明文密码认证方式非常不安全, 但很可惜, 国内主流的邮箱客户端都采用明文密码认证方式。

  以邮件发送协议 SMTP 为例, 下图标明了SMTP发送邮件的全过程:

  1. 连接到SMTP服务器

  2. 使用 HELO 命名验证身份

  3. 输入base64加密的邮箱和邮箱密码 (注:base64可轻易破解, 和明文没有差别)

  4. 发送邮件

为什么支持Oauth2.0 的邮箱更安全?

(SMTP过程)

  这个过程说明了 SMTP协议每次都需要输入邮箱密码, 所以邮件客户端必须保存用户的邮箱密码。

  oAuth2.0 时代, 用户密码得到有效保护

  Gmail API 推出SASL XOAUTH2验证方式。 在客户端验证开始之前, 客户端会被重定向到 Gmail 官网验证页面。 接下来, 用户的用户名和密码是在 Gmail 官方验证 页面输入的。 验证结会束后, Gmail给客户端返回一串二进制的token, 随后客户端采用IMAP和SMTP 收发邮件时, 不需要再把密码放在邮件头中, 而是把这串二进制 token 放在邮件头中。 这就解决了第三方应用获取用户邮箱密码的问题。

  Gmail Oauth2示意图(来自Google API技术文档)

为什么支持Oauth2.0 的邮箱更安全?

 

  Oauth2.0 重定向登录网页, 中间路由器或代理会不会获取用户名密码?

  互联网时间, 你的信息从电脑或手机发网服务器, 中间肯能或经过代理或无数个路由器, 中间路由器或代理其实还是可以截获二进制数据。 那怎么解决这个问题? 答案是 SSL (安全传输层协议)

  数据在发往服务器之前, 先对数据经行加密, 而解密的密钥只有目标服务器才有。

  YoMail的 “Gmail 安全登录是什么?”为什么支持Oauth2.0 的邮箱更安全?

  YoMail 登录界面的 “Gmail 安全登录” 就是 Gmail Oauth2.0 入口。 用户点击“Gmail 安全登录”, 会被重定向到 Gmail Oauth2.0认证界面, 接下来的几个步骤其实和YoMail 没什么关系, 因为这是用户在和 Gmail 直接交互, 中间传输采用SSL, 中间代理只负责转发二进制数据, 但无法解开经过SSL加密的用户数据, 从而保证了用户密码安全。

  认证完成之后, YoMail用 Gmail 返回的Token访问Gmail, 相反, 采用非oAuth2.0访问Gmail需要在邮件头中放置邮箱密码。

  SSL 保证传输安全

  和普通传输方式相比, SSL方式会在传输前先对数据进行机密, 然后传输至邮件服务器, 中间路由器或代理就算截获二进制数据也无法解密。

  用户使用 YoMail发送电子邮件, Gmail 或其它邮箱, 邮件首先会在用户本地经行SSL加密, 然后传输至邮件服务器, 为了连上Gmail, 中间可能会经过路由器, 但采用SSL加密, 中间路由器是无法解密的。

  但一般的邮件客户端(如Foxmail)并没有默认采用SSL, 很多非技术用户很有可能选择了普通传输方式, 邮件是明文形式发送的, 中间路由器可以轻易截获邮件数据。

  总结

  国内的邮箱服务和客户端目前还都比较落后, oAuth2.0这样的安全认证协议可以有效保护用户密码安全, 希望将来能够普及。

  Gmail是鼓励第三方应用采用 oAuth2.0来访问Gmail的, YoMail的“Gmail安全登录”其实就是采用了Gmail oAuth2.0接口, 是可以保证用户密码安全的;另外才传输层采用SSL, 保证了邮件数据安全。

  来源:YoMail投稿。


上面是电脑上网安全的一些基础常识,学习了安全知识,几乎可以让你免费电脑中毒的烦扰。

……

相关阅读