Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/api/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/security/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Api 如何更安全地处理OAuth2请求?_Api_Security_Encryption_Oauth 2.0_Jwt - Fatal编程技术网

Api 如何更安全地处理OAuth2请求?

Api 如何更安全地处理OAuth2请求?,api,security,encryption,oauth-2.0,jwt,Api,Security,Encryption,Oauth 2.0,Jwt,我正试图通过使用OAuth2来保护我的API服务。在下面的方案中,对OAuthServer的电话请求和我在我的API服务器和客户机之间使用SSL钉扎,但是我不确定它是否可以通过主中间攻击来暴露;p> 1-)攻击者可以通过MIMA获取OAuth url,例如攻击DDOS 2-)攻击者可以在iOS上访问keychain并获得JWT吗 3-)攻击者可以使用MIMA或反向引擎获得证书吗?所以SSL固定变得不安全 我正试图通过使用OAuth2来保护我的API服务 首先,您的方案不符合OAuth2流程。看

我正试图通过使用OAuth2来保护我的API服务。在下面的方案中,对OAuthServer的电话请求和我在我的API服务器和客户机之间使用SSL钉扎,但是我不确定它是否可以通过主中间攻击来暴露;p> 1-)攻击者可以通过MIMA获取OAuth url,例如攻击DDOS

2-)攻击者可以在iOS上访问keychain并获得JWT吗

3-)攻击者可以使用MIMA或反向引擎获得证书吗?所以SSL固定变得不安全

我正试图通过使用OAuth2来保护我的API服务

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

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

  • 授权服务器:验证客户端并发出访问令牌
  • 资源服务器:需要提供有效访问令牌的受保护资源
应用程序不会直接要求用户输入用户名/密码。该请求是由授权服务器使用web重定向发出的,因此客户端应用程序永远不会请求用户的凭据

1-)攻击者可以通过MIMA获取OAuth url,例如攻击DDOS**

OAuth2URL可以是公共的。这不是问题

2-)攻击者可以在iOS上访问keychain并获得JWT吗

否,它受操作系统保护

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

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



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

SSL固定可以降低收到MITM攻击的风险。但是您没有使用oauth2和oauth2,因为它与MITM或SSL pining无关,所以请尝试澄清您的问题。我更改了我的问题。你能检查一下吗@Pedrofbb但我将在我的应用程序登录页面中使用此系统,因此不适用于第三方应用程序。我怎么能不直接询问用户名或密码?请您详细解释一下:)我正在考虑获取用户名+密码,并用一个密钥对其进行编码,然后在Oauth2服务器上对其进行解码@pedrofbI认为我不需要使用OAuth2?在我的情况下,JWT看起来就足够了?如果您向第三方提供服务/API,或者希望根据标准集中应用程序的身份验证,oauth2是合适的。看来这不是你的情况,因此,一个更简单的解决方案可能更合适。我可以通过密钥发送加密的用户名+密码,并在服务器上解密,如果是真的,则返回JWT,然后在客户端检查JWT。发送加密或清除密码的安全级别是相同的,因为如果MITM攻击者捕获密码,他可以进行身份验证。但是您说您使用的是SSL固定,因此通道是加密的,并且受到MITM的保护,因此您不需要额外的加密