我读过SSL是“点对点”安全性的一个很好的解决scheme,而不是“端到端”的安全性。 例如,在JavaWorld的这篇文章中,它说:
SSL / TLS根本不是为这种情况devise的; SSL / TLS仅处理点对点安全性… SSL / TLS可以保护任何两个[媒介]之间的path,但不能从一端到另一端。
我正在构build一个Web服务来提供数据分离客户端,如本程序员.SE问题所述 。 我在这种情况下实现SSL的理解是,我可以为我的所有Web服务调用添加某种API密钥,并仅在服务上强制使用HTTPS,并且我的安全性与我所需要的一样(我没有通过任何用户特定的,除了在某些情况下由用户明确和发起的电子邮件地址)。 但是这个声明和这篇文章似乎有争议。 是否暗示SSL连接仍然可能发生中间人攻击? OAuth指南在这里陈述(第二段“超越基础”):
HTTPS是防止中间人攻击(MITM) ,窃听和其他安全风险的推荐解决scheme。
这是如何和解?
再次阅读文章。
它所谈论的是数据中继 – 在这种情况下,客户端与服务器通过SSL(SSL)通信,服务器通过SSL与另一个服务通信。 虽然从客户端发送的信息是针对其他服务的,但是这种模式要求您的服务器具有可见性 – 在此体系结构中,您是devise中的人。 客户端不会看到其他服务器的凭据。 两个连接都是安全的。
这篇文章是关于将数据传输到远程站点,同时保持客户端和“其他服务器”之间的信任关系 – 但最终如果其他服务器在其他地方发送该数据,那么系统的完整性将失败 – 就像它失败,如果你请勿在三节点模型的两个连接中使用SSL。
您无法完全防范所有情况,SSL可能会受到中间人攻击的危害。 有时MITM是有意进行的,假设您使用的是websense内容网关或Palo Alto防火墙,可以实时提供SSL解密。 在这种情况下,客户端信任一个CA或中间CA在运行中颁发证书,以透明地解密和重新encryption数据。
像许多其他技术一样,SSL更多的是保密性,而且做得相当好。 现在,MITM也可以用来操纵内容,这将更加严重地影响数据的完整性。
我想我说的是,SSL是相当尝试和真实的。 从一个知名的CA获得一个证书,你会没事的,但是你无法控制客户是否已经被入侵。