由于请求的参数可以被嗅探,因此API密钥在http上是没有价值的吗?

时间:2012-08-30 00:15:46

标签: web-services security http api-key

API密钥是否对http无价值,因为可以嗅探请求的参数? 它们仅通过https可靠吗? 即便如此,你是不是依赖客户小心他们的钥匙?

2 个答案:

答案 0 :(得分:2)

  

由于请求的参数可以被嗅探,因此API密钥在http上是没有价值的吗?

不,因为只有在同一局域网上才能执行嗅探,系统管理员对IT安全性一无所知,或者您可以捕获传输的流量(这通常非常困难)。此外,存在诸如IPSec之类的技术,其在网络层上提供真实性和隐私性。

因此,使用纯文本身份验证不会提供附加安全性。

  

它们仅通过https可靠吗?

这取决于您对“可靠”的定义。往上看。无论如何,使用传输安全性可以防止攻击者阅读您的通信。如果强制执行SSL,则也会阻止中间人攻击。

  

即便如此,你是不是依赖客户小心他们的钥匙?

当然,您总是必须信任您的授权用户。这与API密钥或密码或任何其他内容无关。

答案 1 :(得分:1)

取决于API密钥的使用方式。

如果您为开发人员分配API密钥,并且开发人员将API密钥作为移动应用程序的一部分进行分发,或者使用API​​密钥从网页进行AJAX调用 - 则API密钥毫无意义。任何人都可以嗅到钥匙,并且在中间攻击中不需要任何老练的人。

但是如果开发人员使用服务器端代码中的API密钥,并且您的API通过https工作,那么这是一种相当安全的技术。

简而言之,安全性在于信任开发人员保密API密钥。就像你希望用户保密密码一样。