2011-11-14 140 views
3

如何检测桌面应用程序是否已被修改?如何检测桌面应用程序是否已被修改?

应用程序与Web服务通信,所以我们可以散列桌面,然后检查校验和是否匹配或类似的东西?或者你有什么建议?

+0

它可能是任何应用程序,还是您(或贵公司)制作的特定应用程序? –

+0

该公司构建的自定义应用程序,所以我们知道这些文件,这是否意味着,该应用程序加载时,应用程序可以检查chekcsum?这是唯一的方法? – 001

+2

你的威胁模型是什么?也就是说,你认为你需要检查应用程序是否被修改了? –

回答

6

只是不要让应用程序做任何事你不会让修改应用程序的人去做。然后,应用程序是否被修改并不重要。

您提出的解决方案就像一家银行试图设计一支笔,该笔不能用于编写错误的支票,然后试图确保客户始终使用该支票来编写支票。不必担心用户使用什么笔来编写支票,而是拒绝任何超过客户余额的支票,这更为理智。

或者,换一种说法:

1)如果应用程序要求你的web服务做一些事情,你不希望它做的,没有什么区别,如果应用程序被修改或没有?

2)如果应用程序要求您的Web服务执行某件您确实希望执行的操作,那么如果应用程序被修改或不是它会产生什么影响?

总之,没有区别。

0

最好的方法是计算可执行文件的校验和并将其存储在安全的地方。您可以随时重新计算校验和并根据存储的校验和进行验证。如果该值不匹配,则可执行文件已更改。这就是互联网上大部分可用下载的操作。发布者与下载一起发布校验和。该下载可以被镜像。预计从镜像站点下载的用户将与发布的chekcsum的下载校验和相匹配,以确保下载没有被篡改。

2

虽然David's answer是我对您问题的看法的一个很好的总结(比我自己可以说的更好),但我确实认识到有些环境确实想要完成您所要求的:通过某种方式来证明一个远程系统,你真正运行的是你所说的软件。

IBM's TrouSers是正在努力使remote attestation成为现实的软件堆栈的一部分。整个堆栈依赖于某些商品主板中内置的TPM芯片,执行引导加载程序的加密校验和的可信BIOS,执行操作系统内核和重要系统实用程序的加密校验和的可信引导加载程序以及操作系统支持(TrouSers),可以管理TPM并验证相关软件。

重要的是要注意,TPM芯片是而不是设计用于FIPS 140型防篡改保护。即使拥有完全可操作的远程认证堆栈,硬件拥有者也可以按自己的意愿做或多或少的事情。因此,在硬件上进行良好的物理安全控制以防止不受信任的人篡改设备至关重要。

相关问题