如何更安全的OAuth2请求?

时间:2018-01-08 08:04:24

标签: api security encryption oauth-2.0 jwt

我正在尝试使用OAuth2来保护我的API服务。在下面的方案中,电话请求到OAuth服务器,我在我的API服务器和客户端之间使用SSL固定,但我不确定它是否可以通过主要在中间攻击中暴露;

1-)攻击者可以使用MIMA获取OAuth网址,例如攻击DDOS?

2-)攻击者能否在iOS上获得钥匙串并获得JWT?

3-)攻击者可以通过MIMA或反向工程获得证书吗?那么SSL固定会变得不安全吗?

Screenshot

1 个答案:

答案 0 :(得分:1)

  

我正在尝试使用OAuth2保护我的API服务。

首先,您的方案不符合OAuth2流程。见RFC6749

API服务器应该扮演两个角色(理论上,不一定是两个服务器)

  • 授权服务器:验证客户端并发出访问令牌
  • 资源服务器:需要提供有效访问令牌的受保护资源

应用不会直接向用户询问用户名/密码。请求由授权服务器使用Web重定向进行,因此客户端应用程序永远不会请求用户的凭据。

  

1-)攻击者可以使用MIMA获取OAuth网址,例如攻击DDOS?**

Oauth2网址可以是公开的。这不是问题

  

2-)攻击者能否在iOS上获得钥匙串并获得JWT?

不,它受操作系统保护

  

3-)攻击者可以通过MIMA或逆向工程获得证书吗?那么SSL固定会变得不安全吗?

钉扎证书是公开的,通常由证书颁发机构发布。它是一组简化的CA根证书,在建立SSL连接时由客户端接受。攻击者无法提供此CA的有效证书,因为他不拥有私钥,因此无法执行MITM攻击。

免责声明:Oauth2主要是为网络应用而设计的。如果您使用本机应用程序,我建议使用OpenIdConnect,它是OAuth2的扩展,以避免密集使用或Web重定向