0

我正在构建一个分布式应用程序,其中我的公司将软件安装在我们客户的硬件上。因此,客户可以篡改软件。我想知道是否存在一种技术,以便当客户硬件上运行的软件向我们的中央服务器(即完全在我们的控制之下)发出网络请求时,我们可以验证该请求来自我们软件的未篡改版本.

我相信这被称为“远程证明”。有关远程证明的 Web 搜索会返回各种结果,从“不可能”到“使用 TPM”。但是我还没有找到一个简单易懂的例子来说明如何在 Windows 中编写代码。

所以,我的问题是:在 Windows 中是否可以进行远程证明,如果可以,是否有一个工作示例可以用作实施的基础?

注意:远程证明有时是通过“隐藏”技术实现的,例如将“共享秘密”嵌入到应用程序中,然后以各种方式隐藏它,以确保攻击者无法通过反编译等轻松提取该共享秘密。我对此类技术不感兴趣,并且正在寻找能够提供真正安全性而不是通过默默无闻提供安全性的东西。

4

1 回答 1

0

为了证明一个系统,你需要两件事:

  1. 从信任根到每个执行的代码的信任链和
  2. 意味着解释和验证在您的服务器上获得的测量值。

使用 Windows 时,您两者都没有。

目前,甚至 Windows 本身都不知道它的状态。但是,这在 Windows 8 中有所改进。现在您至少可以测量引导加载程序和驱动程序。但没有任何东西延伸到用户代码。

于 2014-10-23T20:24:19.810 回答