与常规 SSL 证书相比,使用通配符 SSL 证书是否本质上更不安全?
我们正在寻求实现一个子域名的 Web 应用程序(类似于 FreshBooks 和 BaseCamp,用户可以在其中选择一个子域名),我们的一名团队成员担心通配符 SSL 方法不够安全(如果是这样,FreshBooks 和 BaseCamp 是如何做到的?!)。
替代解决方案是使用单个子域,例如https://ssl.domain.com
,当用户输入时,http://user.domain.com
我们在会话中设置子域,并立即将用户的未来请求重定向到“https://ssl.domain.com”并使用会话信息显示用户的信息。
我担心的是,如果用户想将其域名的链接发送给朋友,他们会在浏览器中复制/粘贴 URL(现在https://ssl.domain.com
),这将是我们的主页,而不是用户的主页。
顺便说一句,如果我错过了这种情况的主要最佳实践,请告诉我。
答案1
据我所知,通配符证书和普通证书没有区别。只要您能完全控制domain.com
DNS,就没有理由不使用通配符。事实上,我建议您这样做。您对它们的具体担忧是什么?
(在我看来,当重定向(比如你所建议的重定向)对最终用户可见时,总会有点弄虚作假。)
答案2
从技术角度来看,它同样安全。您仍将使用与非通配符证书相同的加密。他们说哪些东西不太安全?
答案3
我同意其他答案,即通配符证书本质上并不是不安全的。
但是,如果通配符证书使用不当,可能会引发安全问题。如果您的证书仅对一个域有效,则不会发生以下安全问题。
假设您最初有一台服务器托管所有子域。对手注册了您的服务并被分配了域名evil.example.com
。这和您的所有其他客户一样,都受到证书的保护*.example.com
。
对手安排evil.example.com
接收大量流量,因此最终该域被分配了专用服务器。现在您有两台具有相同证书的物理服务器。
此时,攻击者开始执行 MITM 攻击(无论是通过 DNS 投毒还是恶意 AP 进行攻击并不重要)。攻击者将 的用户定向legitimate.example.com
到 的 IP 地址evil.example.com
。因为证书显示*.example.com
它是有效的。
但是专用服务器evil.example.com
不知道域名legitimate.example.com
,因此它使用默认虚拟主机的内容进行响应,这是evil.example.com
因为该专用服务器没有任何其他域。
如果每台持有证书的服务器都可以响应所有子域的请求,则可以避免这种攻击情况。如果这有时意味着将请求从一台服务器代理到另一台服务器,这是完全可以接受的。只要代理本身可以抵御 MITM 攻击。
在正确的配置下,专用服务器evil.example.com
只会在legitimate.example.com
攻击者试图对用户进行 MITM 攻击时才开始接收请求。它将无法提供内容,而是将请求代理到托管的真实服务器legitimate.example.com
。
如果对手对专用服务器托管拥有足够的控制权evil.example.com
以禁用该代理,那么您确实会面临真正的安全问题。
答案4
在某些情况下,通配符证书会带来额外的风险。这些情况是否适用于您,如果适用,您是否认为增加的风险是可以接受的,这些都需要根据具体情况来确定。
假设您的所有子域都在一台服务器上。在这种情况下,无论您拥有通配符证书、多名称证书还是每个站点的单独证书,在安全方面几乎没有区别。如果攻击者入侵您的服务器,以至于他们可以扫描窃取证书的私钥,那么他们可能会窃取所有证书,而不仅仅是一个。
现在假设您添加另一个子域,该子域的安全性应高于现有子域,例如支付网站。您将该子域放在其自己的服务器上并获取其自己的证书。
如果您在第一台服务器上使用单独的证书或多名称证书,则第一台服务器的证书/密钥不能用于模拟第二台服务器。
如果您在第一台服务器上使用通配符证书,那么来自第一台服务器的证书/密钥可用于模拟第二台服务器。
PS证书“保险”是骗人的。