在通常的SSL证书上使用通配符SSL证书有什么内在的不安全感吗?
我们正在寻求实现一个subdomained的web应用程序(la FreshBooks和BaseCamp,用户select一个子域),我们的一个团队成员担心通配符SSL方法不够安全(如果是的话,FreshBooks和BaseCamp如何做它?!?)。
替代解决scheme是使用一个单一的子域名,如https://ssl.domain.com
,当用户inputhttp://user.domain.com
我们在会话中设置子域名,并立即redirect用户的未来请求到“ https://ssl.domain.com ”,并使用会话信息来显示用户的信息。
我担心的是,如果用户想将链接发送到他们的域名的朋友,他们将复制/粘贴到浏览器(现在https://ssl.domain.com
),这将是我们的主要网页,而不是用户的主页。
顺便说一句,如果我错过了这种情况下的主要最佳做法,请让我知道。
据我所知,通配符和普通证书没有区别。 只要你完全控制domain.com
的DNS,那么没有理由不使用通配符。 事实上,我会build议你的情况。 你对他们有什么特别的担忧?
(国际海事组织,redirect,如你所build议的,当他们对最终用户可见时,总是有点儿糊涂。)
从技术angular度来看,它将同样安全。 您仍将使用与非通配证书相同的encryption。 他们说什么是不太安全的?
正如SmallClanger指出的那样,只要您完全控制了域和任何可能的子域,就没有固有的安全问题。 一个可能的缺点是你不能得到一个通配符EV证书,所以没有绿色的酒吧为less数用户寻找它。
我同意其他答案,通配符证书不是固有的不安全的。
但是,通过使用通配符证书可能导致安全问题。 如果您的证书每个只对一个域有效,则不会发生以下安全问题。
想象一下,你最初有一个托pipe所有子域的服务器。 对手注册您的服务并获得域名evil.example.com
。 就像您所有的其他客户都被*.example.com
的证书所覆盖。
敌手安排evil.example.com
接收大量的stream量,所以最终该域被分配一个专用的服务器。 现在你有两个具有相同证书的物理服务器。
此时攻击者开始执行MITM攻击(无论是通过DNS中毒还是恶意AP都不重要)。 攻击者将evil.example.com
用户指向evil.example.com
的IP地址。 由于证书说*.example.com
它是有效的。
然而, evil.example.com
的专用服务器并不知道域名“ evil.example.com
,因此它会使用来自默认虚拟主机的内容进行响应,这将是evil.example.com
因为此专用服务器不会“没有任何其他的领域。
如果每个持有证书的服务器都可以响应所有子域的请求,则可以避免这种攻击情形。 如果这有时代表从一台服务器到另一台服务器的请求,这是完全可以接受的。 只要代理本身已经抵御中间人攻击。
在正确的configuration下, evil.example.com
的专用服务器只有在攻击者试图对用户执行MITM攻击时才会开始接收legitimate.example.com
evil.example.com
请求。 它将无法服务于内容,而是将请求代理到托pipelegitimate.example.com
的真实服务器。
如果攻击者获得足够的控制权,专门的服务器hosting evil.example.com
禁用该代理,那么你确实有一个真正的安全问题。
通配符证书在某些情况下带来额外的风险。 无论这些scheme是否适用于您,如果您认为可以接受的附加风险,您需要在上下文中确定。
可以说,你所有的子域都在一台服务器上。 在这种情况下,对于每个站点是否有通配证书,多证书证书或单独的证书,虚拟安全性没有区别。 如果攻击者将你的服务器妥协到他们扫描盗取私钥的地步,他们可能会偷走所有的私钥,而不仅仅是一个。
现在让我们说你添加另一个应该比现有的更安全的子域,可能是一个支付网站。 你把这个子域放在它自己的服务器上,并得到它自己的证书。
如果您在第一台服务器上使用了单独的证书或多名证书,则第一台服务器的证书/密钥不能用于模拟第二台服务器。
如果您在第一台服务器上使用通配符证书,而第一台服务器上的证书/密钥可能用于模拟第二台服务器。
PS证书“保险”是蛇形的。