隐式客户端安全性是否易碎或我的问题无效

时间:2016-04-08 15:10:02

标签: oauth oauth-2.0 identityserver3 identityserver4

我在身份服务器中使用隐式客户端,另一方面有一个原生的Android应用程序,

我的安全问题是:

1- 应用逆向工程:如果攻击者可以访问client_Id

redirect_uri和/或response_type,他将能够模仿登录请求。

通过这样做,他冒充原始客户

2- 中间的人:那些client_id,...是通过未加密的https URI发送到身份服务器的,为什么不将它们隐藏在Header中?

3-浏览器将重新发送URI中的令牌,如果重定向URI不是ooblocalhost,则将其显示给中间的人,浏览器默认行为将重定向到位置,因此我们可以强制开发人员在注册客户端时使用oob,

你可以说,在浏览器发送请求之前,应用程序没有正在读取令牌并快速关闭浏览器,

我们真的可以依靠关闭浏览器的应用程序速度,这听起来很软弱吗?

哪个问题是合理的问题,哪个不是,也是如何解决合理的问题。

关于第1点:谷歌如何保护它的服务,如谷歌地图,客户报价至关重要,它必须非常安全,对!!

修改

如果我们在标题中传递client_id来加密它,我们将违反http 1.1规范和oauth2规范,但我们仍然没有做太多,因为client_id驻留在手机中,通过小型逆向工程你可以得到它

2 个答案:

答案 0 :(得分:1)

关于第3点: 验证成功后的令牌响应将是这样的:

HTTP/1.1 302 Found
Location: http://example.com/cb#access_token=2YotnFZFEjr1zCsicMWpAA
          &state=xyz&token_type=example&expires_in=3600

用户代理将重定向到location参数中提供的URL。这里不需要担心MiTM攻击,因为访问令牌包含在 URL哈希片段&散列片段不会在HTTP请求消息中发送,换句话说,散列片段不会离开客户端机器。

答案 1 :(得分:0)

  1. 是的,但令牌服务只会将用户返回给客户的预先注册的回调uri。
  2. 2& 3.如今,您应该对网络上的大多数内容使用HTTPS。