2011-11-14 135 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型防篡改保護。即使擁有完全可操作的遠程認證堆棧,硬件擁有者也可以按自己的意願做或多或少的事情。因此,在硬件上進行良好的物理安全控制以防止不受信任的人篡改設備至關重要。

相關問題