我们正在考虑使用数字证书来验证连接到我们 VPN 服务的机器实际上是公司拥有的机器。因此,我在这里的一位同事提到,对于知识渊博的用户(我们的用户大部分是 CompSci 博士)来说,将证书密钥复制到他们想要使用的另一个非公司拥有的系统是微不足道的。我的问题是(我首先搜索了 Serverfault :) 有什么方法可以防止用户将密钥对复制(导出)到另一台机器上吗?或者如果他们这样做会使复制的证书无效?我们 IT 计划成为在机器上安装证书的人,但我们的用户确实需要对他们的机器具有管理员访问权限才能完成他们的工作。此外,用户的机器混合运行 Windows、Mac OS X 和 Linux 操作系统。
在此先感谢您提供的任何答案...
在软件中,不,绝对不是。即使在 Windows 中,标记为不可导出的密钥也可以使用众所周知的 GUI hack 导出。
我建议为此目的使用智能卡(其中密钥存储在卡上并在卡上使用,通常不会透露给计算机)。这样一来,内部黑客至少必须找到卡的管理密码或以其他方式破解它,这比复制存储在软件中的密码要简单得多。
您还可以考虑使用对计算机主机名进行编码的计算机证书,并确保您的身份验证软件对其进行验证。然而,由于更改计算机的主机名通常很容易,我认为这几乎没有任何好处。
不,证书(和其他一切一样)只是比特。比特总是可以被复制的。