bek*_*ku8 12 security ssl oauth-2.0
Oauth 2.0的哪些方需要具有SSL连接?
Kri*_*ten 15
授权服务器需要根据规范使用SSL/TLS ,例如:
由于对授权端点的请求导致用户身份验证和明文凭证的传输(在HTTP响应中),授权服务器必须要求在向授权端点发送请求时使用第1.6节中所述的TLS.
由于对令牌端点的请求导致明文凭证的传输(在HTTP请求和响应中),授权服务器必须要求在向令牌端点发送请求时使用第1.6节中所述的TLS.
同样的规范并不要求客户端应用程序,但强烈推荐它:
当请求的响应类型是"代码"或"令牌"时,或者当重定向请求将导致在开放网络上传输敏感凭证时,重定向端点应该如第1.6节所述使用TLS.此规范并未强制要求使用TLS,因为在撰写本文时,要求客户端部署TLS对于许多客户端开发人员来说是一个重大障碍.如果TLS不可用,授权服务器应该在重定向之前警告资源所有者有关不安全端点的信息(例如,在授权请求期间显示消息).
缺乏传输层安全性会严重影响客户端及其授权访问的受保护资源的安全性.当授权过程被用作客户端的委托最终用户认证(例如,第三方登录服务)的形式时,传输层安全性的使用尤其重要.
对资源服务器的调用包含访问令牌并需要SSL/TLS:
访问令牌凭证(以及任何机密访问令牌属性)必须在传输和存储中保密,并且仅在授权服务器,访问令牌有效的资源服务器以及发出访问令牌的客户端之间共享.访问令牌凭证必须仅使用TLS传输,如第1.6节所述,服务器身份验证由[RFC2818]定义.
原因应该是非常明显的:在任何这些都不使用安全传输的情况下,令牌可能被截获并且解决方案不安全.
您有问题专门调用客户端应用程序.
客户端应用程序:是否真的有必要,只要它使用SSL进行资源服务器通信?
我假设您的客户端是一个Web应用程序,并且您正在谈论在身份验证发生后浏览器和服务器之间的通信.我进一步假设您提出问题,因为(在您的实现中),此通信未通过访问令牌进行身份验证,而是通过其他方式进行身份验证.
你有答案:通信以某种方式进行身份验证.服务器怎么知道谁在拨打电话?大多数网站使用他们在会话开始时设置的会话cookie,并使用它来识别会话及其用户.任何能够获取该会话cookie的人都可以劫持会话并冒充用户.如果您不想要(并且您真的不希望这样),则必须使用SSL/TLS来保护浏览器和服务器之间的通信.
在某些情况下,客户端的浏览器部分直接与资源服务器通信; 并且服务器部分仅提供静态内容,例如HTML,CSS,图像以及最后但并非最不重要的JavaScript.也许您的客户端是这样构建的,您想知道静态内容是否必须通过SSL/TLS下载?好吧,如果不是,中间的人可以插入自己的邪恶JavaScript,窃取用户的访问权限.您确实希望确保下载静态内容.
最后但同样重要的是,您的问题基于一个隐藏的假设,即可能有正当理由不使用SSL/TLS.通常人们声称证书的成本太高,或者加密需要太多的CPU能力,因此需要更多的硬件来运行应用程序.我不认为这些成本几乎在所有情况下都很重要.与构建和运行解决方案的总成本相比,它们非常低.与不使用加密的风险相比,它们也非常低.不要花时间(和金钱)辩论这一点,只需使用SSL/TLS.
| 归档时间: |
|
| 查看次数: |
14506 次 |
| 最近记录: |