用户证书与计算机证书

用户证书与计算机证书

通常,在部署带有证书检查的 SSL VPN 解决方案时,我会部署内部 MS CA 并配置 GPO 以颁发计算机证书。带有 MFA 的用户名/密码证明用户的身份属实,计算机证书验证计算机属于公司的域。最近,VPN 客户端出现问题,如果没有本地管理员,它就无法读取本地计算机存储,而根据公司政策,用户没有本地管理员。建议的解决方案是颁发用户证书。现在,默认情况下,用户证书的模板允许导出它们,因此我们制作了一个不允许导出的自定义模板。

您阅读的有关为此类设置分发内部证书的每一份指南都使用计算机证书,但问题是为什么?它真的比用户证书更安全还是更不安全?您无法从非域计算机获取用户证书,计算机证书也是如此。实际上,它似乎实现了相同的目标,唯一的区别是计算机证书位于本地计算机存储中,而用户证书位于用户的证书存储中。您需要本地管理员来读取本地计算机存储,但这并没有真正提高安全性,因为计算机或用户证书私钥都无法导出。如果您在 CA 上安装了一些额外的 Web 插件,您可以允许非域计算机请求证书,但这些插件尚未启用。

最后,您必须在域计算机上才能获得颁发给您的用户证书,因此这基本上证明它是公司的资产。用户证书真的不是更容易处理吗,因为他们甚至不需要本地管理员来读取它们?我真的想不出安全性方面有什么区别,但如果是这样的话,那么为什么每个指南都建议使用计算机证书?试图审查这一点,看看我是否遗漏了某个角度,我认为询问更大的社区会有所帮助,因为我已经与许多同事讨论过这个问题,没有人能想到一个陷阱或安全问题。

答案1

您阅读的有关为此类设置分发内部证书的每份指南都使用计算机证书,但问题是为什么?它真的比用户证书更安全还是更不安全?

这不一定与安全有关;他们使用计算机证书是因为这是最适合他们用例的解决方案。您已经发现了使用用户证书不太方便的一些原因:您必须创建自定义模板,确保 AD 不允许用户将非公司机器加入域,并确保证书颁发机构没有允许非域机器请求用户证书的插件。

由于使用计算机证书有很好的非安全原因,因此大多数人都这样做的事实几乎无法证明使用用户证书是否安全。但是,您有一个他们没有的限制:出于某种原因,您的 VPN 客户端软件无法使用计算机证书。我假设您已经彻底研究过这一点。理想的解决方案是更换客户端,但这样做会很昂贵。因此,您需要判断使用用户证书会带来多大的风险。

做出这一判断的最佳(也是唯一绝对安全)方法是咨询专家,而我绝对不是专家。我一直推迟发布答案,希望有相关经验的人能这样做,但没有这样的运气。所以,就其微不足道的价值而言,以下是我对此的看法。 然而,如果您可以选择花费少量金钱来聘请一位专家顾问,我建议您这样做。

我只看到两种用户可能试图绕过他们可以使用哪些计算机的限制的方法。他们可以尝试将用户证书从域计算机导出到非域计算机。或者他们可以尝试欺骗证书颁发机构向非域计算机颁发用户证书。

我做了一些快速研究,结果表明,尽管用户证书存储在用户可以访问的文件中,但它们是由 CNG 密钥隔离服务加密的。除非用户具有管理员访问权限,否则这应该可以防止密钥被导出。(如果用户确实具有管理员访问权限,他们可能可以轻松地将计算机密钥导出为用户密钥。)

我对第二种选择不太乐观。据我所知,没有文件保证证书颁发机构会在生成用户密钥时尽力验证计算机的身份。事实上,有一个记录在案的程序来执行此操作,并且您已确保未安装相关组件,但这并不能充分证明这是唯一可行的方法。

我的研究表明,证书请求是通过 DCOM 进行的,尽管默认的 DCOM 设置不适用于尝试连接到域服务器的非域客户端,仅限客户端需要重新配置才能成功建立连接。显然,我还没有真正尝试过,但原则上我认为这是可行的。

另一方面,客户端仍然需要能够连接到 CA 才能发出请求,如果客户端在您的网络之外,则防火墙应该会阻止它。考虑到这种情况,我认为您已经采取措施阻止员工将个人计算机连接到工作网络。因此从这个角度来看,虽然您可能没有达到应有的安全水平,但您可能已经达到了所需的安全水平,当然这取决于您的风险状况。(我假设您在这里没有经营核武器基地。)

不管怎样,最好的保护都不是技术性的。 如果您的员工了解该政策并被警告 VPN 的使用正在被记录和监控,那么即使他们足够熟练能够找到方法,也很少有人会试图绕过规则。

答案2

这些证书之所以不同,是因为它们有不同的用途。这是关于粒度的。基本上,您提到的两种类型的证书可以安全地识别网络上的两种基本类型。计算机和用户。您可以单独撤销用户证书而不是其工作站,或者单独控制访问和信任。用户证书具有用户的可分辨名称,计算机证书具有计算机的 FQDN。

我能想到的另一件事是 802.11x,基于端口的安全性。这会阻止通过连接的交换机进行正常通信,直到您进行身份验证。证书是使用 802.11x 协议进行身份验证的一种方式。如果用户的证书未导入他们从未登录过的随机机器,则可能会出现问题,因此您颁发设备证书。

相关内容