我有一台服务器使用CreateProcess函数来启动需要管理权限的客户端程序。我这样做是犹豫不决的,因为所有黑客都必须在与我的客户端程序相同的位置替换他们的程序hacker.exe
并给它命名totallysafeclient.exe
,我的服务器将以管理权限启动它。
我在考虑使用System.Security.Cryptography来计算totallysafeclient.exe
的哈希,以确定它是否确实是它所说的。想法?
答案 0 :(得分:0)
经过一些额外的研究后,使用System.Security.Cryptography是一个非常糟糕的选择,因为Windows已经有一个涉及RSA加密的内置机制,称为Code Signing。对代码进行签名后,用户就可以知道代码的来源以及是否被篡改。
ShellExecute是比CreateProcessAsUser更好的选择,因为它可以使用UAC处理ERROR_ELEVATION_REQUIRED
个异常。当Vista推出时,大多数用户和开发人员讨厌(并且可能仍然如此),但我强烈建议您观看UAC - What. How. Why.,UAC的项目负责人和系统架构师解释了为什么需要以及如何提高安全性。