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