TLS SNI 的幸运 13

jetnexus TLS SNI

 

很难相信,TLS 服务器名称指示(SNI)已经存在了十三年。在我们这个时代,它已经过时了,但奇怪的是却很少被使用;不过这种情况终于在改变,我们将在本博客中探讨 edgeNEXUS 高级负载平衡器如何支持这一功能。SNI 解决了许多人在使用 SSL/TLS/HTTPS 时遇到的最大问题之一:需要为每个需要保护的域名或子域名专用一个宝贵的 IP 地址。这是必要的,因为 SSL/TLS 会在我们检查客户端的初始 HTTP 请求(其中包含宝贵的域名详细信息)之前确保连接安全。

确保我们提供正确证书的唯一办法是,每个 IP 地址只提供一个证书,并使用 DNS 确保对特定域名的请求被转到提供该域名正确证书的主机的 IP 地址。在私营企业中,我们也许可以使用相同的 IP 地址,但使用不同的端口,但我们必须确保每个人都知道使用非标准端口。在处理可访问互联网的公共服务时,这并不是一个可行的选择。

我们可以使用通配符证书来保护所有可能的子域(例如*.jetnexus.co.uk),但没人喜欢这种证书,尤其是安全类型的证书。不管你怎么看信息安全界的 NO!从设计上讲,一个域中的任何东西或任何事物都代表着一个域,很难信任这样的东西。有多少设备存储和多少员工可以访问使用中的证书和密钥?

服务器替代名称 (SAN) 证书也一直可用,但在生成时需要了解要保护的每个特定域。如果需要删除或添加域名,就必须重新生成证书,并更新所有相关主机。

这是我们一次又一次面临的越来越艰难的选择(我们的用户和客户也是如此);要么烧掉一个 IP 地址,要么接受妥协(在任何意义上)。之所以越来越艰难,是因为 IP 地址是一种有限资源,其可用性每天都在减少,价值却在增加。幸运的是,这个长期存在的问题多年来已经有了解决方案。它为我们提供了最好的解决方案,但直到最近才产生了一点影响。

SNI 为客户端提供了一种方法,用于向服务器(在我们的例子中是 jetNEXUS)显示正在建立连接的域名。具体做法是在客户端的第一个 TLS 数据包(hello)中用域名填充扩展字段。该扩展字段以 “明文 “形式发送,因此在服务器发送 SSL/TLS 证书之前就能读取。这样,服务器就能从提供的众多证书中发送预期的证书(假设它拥有证书)。

因此,单个虚拟服务(和 IP 地址)可以为任意多个域名配置任意数量的 SSL 证书。每个域名都有专用的有效 SSL 证书,并根据客户提供的数据正确无误地提供。在同一 IP 地址上提供www.jetnexus.comwww.loadbalance.co.uk服务,并为两者提供有效证书;不妥协、不麻烦、不浪费 IP 地址。

不仅如此,您还可以随时更改虚拟服务支持的域列表,只需在图形用户界面上点击几下即可。添加或删除证书可添加或删除虚拟服务支持的域。只是不要忘记同步更新 DNS。如果想为一两个高价值域使用不同的真实服务器,没问题,只需几分钟就能完成快速的 flightPATH 规则。同理,HTTP 压缩、URL重写或其他任何你需要的功能也是如此。为多个域提供单个虚拟服务和 IP 地址是非常理想的,但不需要限制对不同域的流量进行独特处理。

我听到你在问:”有什么问题吗?以前当然有,这就是 SNI 存在已久,但现在才出现在负载均衡和其他产品中的原因。原因何在?客户端支持。令人难以置信的 Windows XP 和 IE6 组合不支持 SNI,这使得大多数人无法使用 SNI。没有人愿意潜在地切断 10-20% 的受众。

不过,今天的情况要好得多:Windows XP 已经过了支持期限,IE6 在互联网上的使用率不到 1%,免费升级到 Windows 10 的计划也在迅速推进和采用。我们终于可以确信,实施 SNI 不会对我们的客户和业务造成影响。IE 7 及以上版本(在 Vista 或更高版本上)以及除最古老的 Chrome、Firefox 和 Safari 之外的几乎所有版本都支持 SNI。如果您想检查并确定您的特定用户群,也可以使用 flightPATH 规则。

关于安全问题,让我们明确一点:客户端提供的是纯文本信息。这些信息可以通过网络捕获。客户端在连接前也会进行纯文本 DNS 查询。我们无法控制这一点,因此不认为以后再次泄露这些信息会有风险。也许您想通过 flightPATH 规则检查 SNI 域名是否与 HTTP Host 标头中的域名一致,也许您根本不在乎,因为每个人的情况都不一样。这是否表明存在安全问题?无论如何,客户端已连接,连接是安全的。除非你根据域名应用安全策略(你不应该这样做),否则一切正常。

如果你真的想了解更多细节,可以看看原始的 RFC3546(第 3.1 节)和后来的RFC6066(第 3 节),如果你认为可以信任的话:维基百科上的服务器名称指示。如果您需要应用级安全,edgeNEXUS WAF 基于业界领先的加固应用防火墙技术。edgeNEXUS 应用程序防火墙可通过 edgeNEXUS App Store 购买,并利用下一代容器技术提供全面的安全保护,以满足 PCI-DSS 和 OWASP 合规性要求。正如之前的博文所讨论的,flightPATH 是 edgeNEXUS 开发的基于事件的动态规则引擎,可智能处理和路由负载平衡的 IP、HTTP 和 HTTPS 流量。要了解有关 flightPATH 流量管理的更多信息,请单击此处;要了解如何充分利用可用规则,请参阅 edgeNEXUS 用户指南。

 

单个虚拟服务(和 IP 地址)可为任意多个域名配置任意数量的 SSL 证书。每个虚拟服务都有一个专用的有效 SSL 证书,并根据客户提供的数据正确无误地提供。

About Donna Toomey