0

我对RFC 6749有一个关于OAuth 2.0的问题。

在本节中,我读到:

3.1.2.1。 端点请求机密性

当请求的响应类型是“代码”或“令牌”时,或者当重定向请求将导致
通过开放网络传输敏感凭证时,重定向端点应该要求使用 1.6 节中描述的 TLS。该规范
并未强制使用 TLS,因为在撰写本文时,
要求客户端部署 TLS 对许多
客户端开发人员来说是一个重大障碍。如果 TLS 不可用,授权服务器应该在
重定向之前警告资源所有者关于不安全的端点(例如,在授权
请求期间显示一条消息)。

缺乏传输层安全性会对客户端的安全性及其有权 访问
的受保护资源产生严重影响。 当授权过程被客户端用作一种 委托的最终用户身份验证形式(例如,第三方 登录服务)时
,传输层安全性的使用尤其重要。


..尤其:

该规范并未强制使用 TLS,因为在撰写本文时,要求客户端部署 TLS 对许多客户端开发人员来说是一个重大障碍。

为什么部署 TLS 对许多客户端开发人员来说是一个重大障碍?

4

2 回答 2

1

公钥基础设施非常复杂,即使在客户端也没有多少开发人员足够了解它以正确实施它。这会导致虚假安全,这比没有安全还要糟糕(因为它会误导人们)。

举个例子,我记得最近的一项研究表明,在许多 Android 应用程序中,客户端软件使用 SSL/TLS,但接受任何未经适当验证的证书。这导致了 MITM 攻击的可能性,更糟糕的是,用户(设备所有者)认为他是安全的,而实际上他不是。

更糟糕的是,开发人员不想投资与安全相关的教育,因为这不会增加利润。

于 2013-03-18T12:02:34.897 回答
0

这篇文章很不幸,我将打开一个针对 RFC 6749 的编辑勘误表。我对这种语言的理解是,它意味着允许“本地客户端”(桌面/平板电脑/移动应用程序)提供非 SSL URL。通常,这采用“自定义 URL 方案”的形式。

这个想法是浏览器将“本地重定向”到这些客户端并为它们提供授权代码。因此代码永远不会通过网络传输,因此不需要安全的重定向 URL。当重定向 URL 的格式为 http localhost:xyz/redirect_endpoint 时,类似的考虑也适用。

Generally speaking, developers dont have to do anything to deploy against SSL. It is the admins who would have to spin up a https port and deploy an application endpoint on a web server. This is a common deployment scenario. But again, this is not usually practical for a native client.

于 2013-12-31T22:57:24.557 回答