我有一台服务器和几个客户端(这个技术现在不重要,可以是任何的)。
我需要validation电脑。 他们位于地理上分配有dynamicIP地址的多个办事处。
我不相信在PC上工作的人,所以我不喜欢用户名/密码authentication。
所以我只需要安装在这些计算机上的程序来访问服务器。 如果程序被克隆(或克隆)到另一台PC,服务器应拒绝它们。
我怎样才能做到这一点?
(VPN会解决这个问题,还有其他方法吗?)
您可能正在市场上购买像Yubikey这样的基于硬件令牌的解决scheme。 所以,现在他们仍然可以克隆,但他们仍然只有一个 yubikey,因此只有一个function电脑。
成本是合理的(我认为):
但是对于唯一的软件解决scheme…为什么不用SSH证书加载计算机,并且只允许每个证书一次login。 它不会阻止克隆,但效果是一样的。
您可能需要在cpuid上添加一个检查,以便如果使用证书来validation来自多个不同客户端的客户端,则会缩短证书的生命周期,或者执行其他一些烦人的事情。 请注意,CPU ID是不是很值得信赖,但它确实提高了克隆人的酒吧。
最简单的方法 – 也是一个可以很容易被欺骗的方法是检查网卡的MAC地址。
你不能依靠任何依赖于生成的密钥的方法,而只能使用一次。 您需要依靠中间硬件令牌或硬件中存储的令牌。
后者可以通过使用TPM来实现。 您可能想要在这个主题进行调查。
简而言之,TPM让您在基于硬件的存储上存储令牌。 这将有效地防止克隆你的机器。
你甚至可以走这么远,并基于基于TPM的密钥encryption硬盘。
没有“只有程序可以访问”的东西。 要么他们可以通过一个给定的帐户/方法访问,或者他们不能。 你分享什么样的资源,只是文件? 如果你使用一个简单的用户名/密码的方法,你可以随时更改/删除他们的帐户,他们做一些担心的事情。
同样,您可以设置基于VPN的访问,这将允许您限制基于MAC地址的连接(在合理范围内),这将允许您限制对特定硬件的访问并击败复制的操作系统。
我不相信有办法做到这一点。 基本上你想要validation客户端没有密码,所以用户没有发言权在authentication,暗示所有“秘密”存储在机器本身。
如果可以克隆机器,则将机密文件存储在机器上(例如无密码VPN)不是一个选项。 如果客户端不能被信任,那么将密钥存储在磁盘上不是一种select,所以你需要find一些方法来确定他们的身份,而不能相信文件系统或任何用户。
有一些方法可以做到这一点,例如基于IP地址的限制(您声明的不是一个选项),并根据某些硬件ID(如MAC地址)进行限制,这些都可能被欺骗。
编辑:在USB驱动器上存储私钥可能是一个选项,但它仍然容易克隆。
USBencryption钥匙+powershell胶。 (如eToken PRO)。 他们的全部前提是他们保密私钥,保护私钥,对密钥本身执行密码function,绝不将它暴露给计算机。