1

我在身份服务器中使用隐式客户端,另一方面有一个本机 android 应用程序,

我的安全问题是:

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

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

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

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

3-如果重定向URI不是,浏览器将重新发送URI中的令牌,将其显示给中间ooblocalhost人,

在浏览器发送请求之前,您可以说哦,不,应用程序正在读取令牌并关闭浏览器这么快,

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

哪个问题是合理的关切,哪个不是,以及如何解决合理的关切。

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

编辑

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

4

2 回答 2

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。这里不需要担心中间人攻击,因为访问令牌包含在URL 哈希片段中,并且哈希片段不会在 HTTP 请求消息中发送,换句话说,哈希片段不会离开客户端计算机。

于 2016-04-08T15:54:22.713 回答
0
  1. 是的,但是令牌服务只会将用户返回到客户端预先注册的回调 uri。

2 & 3. 现在你应该对网络上的大多数东西使用 HTTPS。

于 2016-04-08T16:58:57.867 回答