API安全问题:SSL还是更多?

时间:2010-01-24 16:27:48

标签: security api rest ssl

我正在为Web应用程序开发API。桌面客户端将使用简单的HTTP帖子(REST)与API交互。我将使用SSL,毫无疑问。我的问题是:我是否应该在通过SSL发送数据之前加密数据?发送的信息可能包含机密信息。 SSL足够还是我应该做得更多?我唯一担心的是增加额外的安全层,这会让人们更难以与API进行交互。对此的任何想法都将非常感激。

5 个答案:

答案 0 :(得分:4)

不,SSL提供了强大的加密功能。只要确保你强迫客户使用HTTPS,如果你真的是偏执狂,请检查密码是否足够强大。

您希望第二次加密的唯一原因是您的Web应用程序是否将数据直接传递到其他系统。在这种情况下,您可以使Web应用程序不知道实际数据,并在客户端和最终目标之间提供端到端加密。

答案 1 :(得分:2)

如果您信任您的认证机构,您的客户这样做,并且您的密钥足够安全(RSA 2048暂时不会破坏),SSL完全没有问题。您不需要在SSL之前加密数据,因为SSL本身提供加密。

如果要在互联网上使用此API,则认证机构列表here对您选择一个非常有用。

您还可以通过SSL使用SSL客户端证书让您的客户端进行身份验证。

答案 2 :(得分:1)

恕我直言,我不会在已有的加密之上添加另一层加密。它会增加开销,正如你所说,API的复杂性。存在SSL以在两个节点之间发送安全数据,那么为什么要重新发明轮子呢?

答案 3 :(得分:0)

正如Shtééf已经指出的那样,如果您需要端到端加密而不是点对点加密,那么您需要加密。如果您的客户端应用程序通过集成服务和服务总线与服务器通信,则可能与此相关的其他情况。在这种情况下,当消息在中间节点中时,不强制执行SSL加密,并且该节点可以使用未加密的机密数据执行任何所需的操作。

此外,如果您的客户使用这些集成服务,那么他们可能不会在客户端和集成服务之间强制实施SSL连接。

在处理高度机密信息时,由于这个原因,我倾向于采用端到端安全性而不是SSL加密通信信道。

答案 4 :(得分:0)

是。 SSL可以帮助中间人和窃听,但SSL还有其他攻击,例如重放攻击。