回答
只是不要让应用程序做任何事你不会让修改应用程序的人去做。然后,应用程序是否被修改并不重要。
您提出的解决方案就像一家银行试图设计一支笔,该笔不能用于编写错误的支票,然后试图确保客户始终使用该支票来编写支票。不必担心用户使用什么笔来编写支票,而是拒绝任何超过客户余额的支票,这更为理智。
或者,换一种说法:
1)如果应用程序要求你的web服务做一些事情,你不希望它做的,没有什么区别,如果应用程序被修改或没有?
2)如果应用程序要求您的Web服务执行某件您确实希望执行的操作,那么如果应用程序被修改或不是它会产生什么影响?
总之,没有区别。
最好的方法是计算可执行文件的校验和并将其存储在安全的地方。您可以随时重新计算校验和并根据存储的校验和进行验证。如果该值不匹配,则可执行文件已更改。这就是互联网上大部分可用下载的操作。发布者与下载一起发布校验和。该下载可以被镜像。预计从镜像站点下载的用户将与发布的chekcsum的下载校验和相匹配,以确保下载没有被篡改。
虽然David's answer是我对您问题的看法的一个很好的总结(比我自己可以说的更好),但我确实认识到有些环境确实想要完成您所要求的:通过某种方式来证明一个远程系统,你真正运行的是你所说的软件。
IBM's TrouSers是正在努力使remote attestation成为现实的软件堆栈的一部分。整个堆栈依赖于某些商品主板中内置的TPM芯片,执行引导加载程序的加密校验和的可信BIOS,执行操作系统内核和重要系统实用程序的加密校验和的可信引导加载程序以及操作系统支持(TrouSers),可以管理TPM并验证相关软件。
重要的是要注意,TPM芯片是而不是设计用于FIPS 140型防篡改保护。即使拥有完全可操作的远程认证堆栈,硬件拥有者也可以按自己的意愿做或多或少的事情。因此,在硬件上进行良好的物理安全控制以防止不受信任的人篡改设备至关重要。
- 1. 检测ObservableCollection是否已被修改
- 2. 测试JavaScript是否已被修改
- 3. 检查文件是否已被修改
- 4. 检查字段是否已被修改
- 5. 检查位图是否已被修改
- 6. 检查网页是否已被修改
- 7. 检测插件是否已被应用
- 8. 检测textarea的值是否被修改
- 9. 如何检查文件是否在程序之外被修改?
- 10. 如何检查PDF是否被修改
- 11. 如何检查PictureBox的图像是否已被修改?
- 12. 如何检查TField是否已被手动修改
- 13. 如何检查文件是否已被修改在c#
- 14. 如何在Flex应用程序中检测相机是否已被其他应用程序使用?
- 15. 如何检测图像是否被修改?
- 16. 检测用户是否修改了程序使用的dll
- 17. 如何检查页面内容是否被修改?
- 18. 检查用户是否已修改Facebook权限对于应用程序
- 19. 是否可以从Windows8.1应用程序更改桌面壁纸?
- 20. 检查网页是否被修改/已过期用Ruby
- 21. 如何检查用户是否与c + +桌面应用程序在线
- 22. 如何以编程方式检测在Windows桌面应用程序中是否启用/禁用javascript? (WebBrowser控件)
- 23. 如何检测程序是否已使用-threaded编译?
- 24. git如何检测文件已被修改?
- 25. 检测您是否在桌面上
- 26. 检测GPS是否被Android应用程序使用
- 27. 检测是否应用了某个修补程序
- 28. 检测网络应用程序是否已“安装”
- 29. 检测应用程序是否已关闭或暂停
- 30. 检测我的应用程序是否已卸载
它可能是任何应用程序,还是您(或贵公司)制作的特定应用程序? –
该公司构建的自定义应用程序,所以我们知道这些文件,这是否意味着,该应用程序加载时,应用程序可以检查chekcsum?这是唯一的方法? – 001
你的威胁模型是什么?也就是说,你认为你需要检查应用程序是否被修改了? –