我想保留我们网站的SSL密钥。 它存储在2个USB存储棒上,一个放在保险箱里,另一个保持安全。 然后我是唯一一个将它应用到Web服务器的人,因此它是完全安全的。
除…
在IIS上至less可以导出密钥。 所以,任何pipe理员都可以获得密钥的副本。 有没有办法解决? 或者按照定义,所有pipe理员都可以完全访问所有密钥?
更新:我有我完全信任的系统pipe理员。 导致这种情况的原因之一是他们中的一个退出了(他们有一个小时的通勤时间,5分钟到新的通勤时间)。 虽然我信任这个人,但正如我们在某人离开时禁用他们的Active Directory帐户一样,我想我们应该有办法确保他们不能保留使用我们的SSL的能力。
而最简单的是,如果我是唯一拥有它的人。 我们的证书在一月份到期,所以现在是时候改变做法了。 根据答案,看起来我们不能。
因此,这导致了一个新的问题 – 当有人获得证书的时候,获得新的证书并撤销现有的证书是标准做法。 或者,如果离开的人是值得信赖的,那么我们是否继续拥有我们所拥有的证书?
一个具有pipe理(甚至通常是物理)访问服务器的人将能够提取私钥。 无论是通过出口,记忆嗅探,还是其他类似的诡计。
您的pipe理员可以访问您的Web服务器的私钥。 接受这个事实,并解决这个问题。 如果您的系统pipe理员不可信,那么您可能需要更好的系统pipe理员或至less能够访问Web服务器的系统pipe理员。 如果这是pipe理层安全偏执的问题,那么他们对于系统pipe理员的信任可能会有更深层次的问题。
这并不是说你应该让每个人都可以访问私钥。 在访问被授予之前,总是需要访问。 考虑到这一点,你是否会采取极端的措施来确保一个完全控制网站的系统pipe理员不能导出私钥,但是仍然可以用任何几乎难以追踪的方式操纵网站本身? 我们再次相信这里,我认为这是需要解决的问题的核心。
导入密钥时,可以select将其标记为不可导出。 这将阻止您使用IIS或证书MMC来导出它。 至less,这使得它更难一点。
但是,如果他们在机器上拥有pipe理员帐户,或者拥有物理访问权限,他们仍然可以通过其他方式获得密钥。
这是“中级CA”可以提供帮助的地方。
下面这个例子中的“根CA”是由SSL公司拥有的,而不是你。
您不能直接控制由根CA创build的密钥,因此如果由根CA签名的密钥受到威胁,则必须通过它们来撤消它。
但:
Root CA (SSL company) | +-Intermediate CA (You) | +-Server Key for site
如果您将另一个CA放置在中间,并且您购买的SSL证书签署了您自己的CA证书,而不是直接签署您的服务器证书,则可以保留下面的服务器证书控制权,并颁发吊销证书或做任何其他事情。
您将中间CA私钥保留给自己,pipe理员不需要看到它。
你也可以这样做:
Root CA (SSL company) | +-Intermediate CA (You) | +-Server Key 1 for site +-Server Key 2 for site +-Server Key 3 for site
您可以准备妥协,并提前生成证书,以便在单个密钥被撤销的情况下快速切换。 pipe理员没有得到2或3的密钥,直到妥协1为止。您可以在您的网站上发布有关此计划的通知,而且这也会告诉您的pipe理员,您已经做好妥协准备,最终不会破坏你的网站。