[英]How to detect if desktop application has been modified?
如何检测桌面应用程序是否已被修改?
应用程序与Web服务通信,因此我们可以散列桌面,然后检查校验和是否匹配或类似的东西? 或者你的建议是什么?
只是不要让应用程序做任何你不允许修改应用程序的人做的事情。 然后,应用程序是否被修改无关紧要。
您提出的解决方案就像一家银行试图设计一支不能用于编写不良支票的笔,然后试图确保客户始终使用该笔来编写支票。 更不用担心笔客户用来写支票的情况,只是拒绝任何超出客户余额的支票。
或者,换句话说:
1)如果应用程序要求您的Web服务执行您不希望它执行的操作,那么如果应用程序被修改,它会有什么不同?
2)如果应用程序要求您的Web服务执行您希望它执行的操作,那么如果应用程序被修改,它会有什么不同?
总之,它没有任何区别。
虽然大卫的答案是我对你的问题的一个很好的总结(比我自己能说的更好),我确实认识到某些环境确实想要完成你所要求的:某种方式来证明远程系统你真正运行的是你说的软件。
IBM的TrouSers是软件堆栈的一部分,致力于使远程认证成为现实。 整个堆栈依赖于内置于某些商品主板中的TPM芯片,执行引导加载程序加密校验和的可靠BIOS,执行操作系统内核和重要系统实用程序的加密校验和的可信引导加载程序以及操作系统支持(TrouSers),可以管理TPM并验证相关软件。
值得注意的是,TPM芯片并非专为FIPS 140型篡改保护而设计。 即使使用完全可操作的远程证明堆栈,硬件所有者也可以或多或少地按照自己的意愿执行操作。 因此,对硬件进行良好的物理安全控制以防止不受信任的人员篡改设备至关重要。
最好的方法是计算可执行文件的校验和并将其存储在安全的地方。 您可以随时重新计算校验和并验证存储的校验和。 如果值不匹配,则可执行文件已更改。 这是对互联网上大多数下载所做的工作。 发布者发布校验和以及下载。 此下载可以镜像。 从镜像站点下载的用户应与下载的校验和与已发布的chekcsum匹配,以确保下载不被篡改。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.