对于服务器到服务器的通信,OAuth比Basic Auth更安全

时间:2016-10-17 14:00:44

标签: security oauth server oauth-2.0 basic-authentication

对于服务器到服务器对话框,OAuth通过HTTPS比基本身份验证更安全吗?

我的意思是,如果我想通过OAuth从服务器A到服务器B做一些API请求,我必须在服务器A上存储一些身份验证数据(密钥,密钥等)。然后使用这些身份验证数据,我可以有一个令牌并使用此令牌向服务器B发出请求。稍后使用相同的身份验证数据,我将拥有一个令牌密钥,并且能够使用这个新令牌发出请求。

使用Basic Auth,我在服务器A上有一些auth数据(用户,密码)。我现在可以在B上及以后用这些数据执行请求。

现在假设发现了auth数据,因为服务器A .conf上有一个带有auth数据的文件而且这个文件被盗了。在这两种情况下(OAuth和Basic Auth),这都很糟糕,使用OAuth而不是Basic Auth没有任何好处。关于一个真实案例的示例:我刚刚创建了一个Twitter机器人(与OAuth连接),如果发现了配置信息,该帐户被盗,并且该获胜者现在和将来都可以使用该机器人。

那么,在使用Oauth over Basic Auth进行服务器到服务器请求(使用HTTPS)时,是否还有其他原因我不知道(或者我可能误解了某些内容)?

1 个答案:

答案 0 :(得分:3)

如果服务器本身遭到破坏,它们看起来似乎相似,但如果您认为违规行为是在通信渠道中,则存在细微差别。

使用基本身份验证时,每个请求中都会包含完整凭据,而对于OAuth,它是每个请求中包含的访问令牌。乍一看,这似乎是相同的,但令牌确实有一些有趣的特征:

  • 它们可以具有相关的到期时间,从而减少单个泄漏的影响。
  • 它们可以缩小范围,即应用程序具有写访问权限,但由于它的大部分请求只需要读取访问权限,因此它请求在大多数请求中使用的只读访问令牌;再次,这可以最大限度地减少泄漏的影响。

另一个有趣的部分是,大多数漏洞可能发生在通信渠道而不是服务器本身,所以这看起来很重要。

但是有一些缺点,如果您需要立即撤销功能,则承载令牌需要一些额外的复杂性。