使用 Plink 时的 SSH 安全问题

使用 Plink 时的 SSH 安全问题

我已经创建了一个脚本,使用 Cygwin 在 Windows 中通过 SSH 连接到远程服务器。公钥和私钥对是使用 Putty Key-gen 生成的。IP、端口、私钥等使用 Plink 共享。为了安全起见,我引入了自己的 exe 以及私钥,它会检查硬件信息(如硬盘序列号),以便用户无法使用任何其他硬件连接到服务器(通过克隆或复制程序文件)。在服务器中将有一个应用程序审核客户端硬件信息,如果发现未经批准的新硬件,则会拒绝连接。一切正常,但问题在于安全性。

正如我所提到的,凭证或私钥信息和其他详细信息是使用 Plink 发送的。问题是当用户使用此设置连接到服务器时;Plink 将信息发送到服务器进行身份验证。这里的问题是任何人都可以看到使用 Process explorer 等发送到 Plink 的命令。使用这种方法,任何人都可以通过用户密码获得私钥及其密码来访问服务器(我的应用程序将硬件信息发送到服务器上的另一个 TCP 端口(它与 SSH 连接并行,但它是单独的连接)。它不能通过 SSH 隧道工作。所以,我让我的应用程序首先将硬件信息发送到服务器,然后 SSH 服务器将通过验证私钥来建立连接)。

但是,如果用户知道 SSH 连接的逻辑,他可以直接将这些命令参数发送给 Plink.exe,并使用用户的私钥和密码建立连接。如果这样做,我将无法控制这一点。

有没有办法在 Plink 中屏蔽这些命令行?如果没有,请提及我可以使用的其他方法或替代应用程序来完成上述任务。请帮忙,提前谢谢您。

答案1

虽然您可以让用户难以从您的应用程序窃取凭据,但您无法真正阻止它。

如果用户在机器上拥有管理员权限,那么他/她可以访问/检索机器上存储的任何信息,无论您将其隐藏得如何好。


另请参阅 Stack Overflow 上的同一问题:
从任务管理器启动进程并隐藏命令行参数

相关内容