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

How to detect if desktop application has been modified?

本文关键字:应用程序 是否 修改 桌面 何检测 检测      更新时间:2023-10-16

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

应用程序与web服务通信,所以我们可以对桌面进行散列,然后检查校验和是否匹配或诸如此类的事情?或者你有什么建议?

就是不要让应用程序做任何你不允许修改应用程序的人做的事情。那么,应用程序是否被修改就无关紧要了。

你提出的解决方案就像银行试图设计一种不能用来写空头支票的笔,然后试图确保客户总是用这支笔写支票。不要再担心客户用什么笔写支票,直接拒绝任何超过客户余额的支票,这要明智得多。

或者,换句话说:

1)如果应用程序要求您的web服务做一些您不希望它做的事情,那么应用程序是否被修改又有什么区别呢?

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

虽然David的回答很好地总结了我对您的问题的看法(比我自己说的还要好),但我确实认识到有些环境确实想要完成您所要求的:用某种方式来证明远程系统确实正在运行您所说的软件。

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

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

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