已建立的 HTTPS 连接是否意味着线路真的安全?

信息安全 Web应用程序 tls
2021-08-16 01:38:16

从提供Web应用程序的人的角度来看,当有人通过TLS(https)连接到我们的服务并提交正确的身份验证数据时,通过这条线路传输所有敏感数据是否安全,或者是否仍然存在窃听?

这个问题是本周的 IT 安全问题
阅读 2011 年 7 月 29 日的博客文章了解更多详情或提交您自己的本周问题。

4个回答

了解 SSL 做什么和不做什么很重要,尤其是因为这是一个非常常见的误解来源。

  • 它加密通道
  • 它应用完整性检查
  • 它提供身份验证

因此,快速回答应该是:“是的,它足够安全,可以传输敏感数据”。然而,事情并没有那么简单。

  • SSL 的最新版本 - 版本 3 或更好:TLS,甚至 TLS 1.2,绝对比以前的版本更好。例如 SSL 2 相对容易 MITM(中间人)。因此,首先它取决于协议版本。
  • 通道加密和完整性检查都可以在协议中配置,即您可以选择要使用的算法(密码套件)。显然,如果你使用的是 RSA1024/SHA512,你会好很多……然而,SSL 甚至支持 NULL 加密模式——即根本不加密,只是将请求包装到通过 SSL 协议的隧道。即,没有保护。(这在客户端和服务器都可以配置,选择的密码套件是根据配置顺序的第一个匹配集)。
  • SSL 中的身份验证有两种模式:仅服务器身份验证和相互身份验证(客户端证书)。在这两种情况下,加密证书确保的安全性绝对足够强,但是实际身份验证的有效性仅与您的有效性检查一样好:您甚至会费心检查证书吗?你保证它的有效性吗?信任链?谁发布的?等等。
  • 最后一点重新验证在 Web应用程序中要容易得多,其中客户端可以轻松查看服务器证书,锁定图标很容易查看等。使用 Web服务,您通常需要更明确地检查其有效性(取决于您选择的平台)。请注意,同样的一点已经让很多移动应用程序陷入困境——即使应用程序开发人员记得在手机和服务器之间只使用 TLS,如果应用程序没有明确验证证书,那么 TLS 就会被破坏。
  • 虽然对 SSL 的密码学存在一些主要是理论上的攻击,但从我的 PoV 来看,它对于几乎所有目的来说仍然足够强大,并且会持续很长时间。
  • 另一端的数据实际上做了什么?例如,如果它的超级敏感,甚至是信用卡数据,你不希望它出现在浏览器缓存或历史记录等中。
  • cookie(以及身份验证)可以在安全的 SSL 通道和非安全的 HTTP 通道之间共享 - 除非明确标记了“安全”属性。

那么,简短的答案?是的,SSL可以足够安全,但是(与大多数事情一样)这取决于您如何使用它。:)

这里有一些问题,主要是身份验证。两端都需要确保他们正在与正确的人或机构交谈,以阻止中间人攻击。对于您而言,使用用户浏览器信任的 SSL 证书至关重要。通过这样做,用户的浏览器可以确定它确实在与正确的站点对话。建立连接后,您可以确保一直在与该用户交谈,并且连接已加密,即可以防止窃听。

另一个方向的身份验证(即确保您正在与真实用户交谈)通常在应用程序级别的 SSL 协议之外通过例如用户名/密码、openID 或某种其他形式的凭据来处理。

最后一点应该提到的是,在 SSL 连接握手期间,客户端和服务器就密码套件达成一致,并且客户端可以假装只进行“空加密”,即不加密任何数据。如果您的服务器同意该选项,则连接使用 SSL,但数据仍未加密。这在实践中不是问题,因为服务器实现通常不提供空密码作为选项。

除了 AviD 列出的内容之外,SSL 的安全性仅与将您定向到该服务器的 DNS 基础架构以及通信路径中的任何公司代理一样安全。

如果 DNS 基础设施被黑客入侵(缓存中毒等),那么攻击者可能会使您的用户遭受许多攻击。

此外,如果客户端正在使用Fiddler或公司代理等软件,该软件可以窃听您的 SSL 对话。

为了缓解这种情况,请查看 SSL 证书的“颁发者”。如果 SSL 连接通过代理,则颁发者将是代理的颁发者。如果您通过直接连接,那么您将看到相关的公共信任 CA。

[更多信息]

企业 HTTPS 代理是管理 Web 浏览器和代理(其 IP 地址出现在您的网络服务器日志中)之间的连接的东西。在这种情况下,Web 内容(也是 HTTPS 密码)被解密,然后在公司代理处重新加密并呈现给您的服务器。

根据谁在管理代理,以及它的日志是如何使用的,从您的角度来看,这可能是可以接受的,也可能是一件坏事。

有关如何完成 SSL 拦截的更多信息,请参阅此链接

当 SSL 代理拦截 SSL 连接时,它会向客户端浏览器提供一个模拟的服务器证书。客户端浏览器向最终用户发出安全弹出窗口,因为浏览器不信任 ProxySG 使用的发布者。如果 SSL 代理使用的颁发者证书作为受信任的根导入客户端浏览器的证书存储区,则不会出现此弹出窗口。

ProxySG 可通过其管理控制台下载所有已配置的证书。您可以要求最终用户通过 Internet Explorer 或 Firefox 下载颁发者证书,并将其作为受信任的 CA 安装在他们选择的浏览器中。这消除了模拟证书的证书弹出窗口......

一些公司通过 GPO 将根证书(代理的)部署到每个工作站来解决上面提到的证书弹出问题。虽然这只会影响使用 Microsoft 证书存储的软件。Firefox 和 Chrome 等软件需要进行不同的更新。

由于 SSL 依赖于证书授权 (CA),而且基本上任何组织都可以成为 CA,因此使用伪造的 CA 签名证书进行中间人攻击总是可能的。因此,虽然 SSL 仍然比不加密有很大的改进,但由于 CA 系统的损坏,它的安全性被高估了。在这方面,自签名证书与任何 CA 签名证书一样安全,但浏览器会将其标记为可疑。