2010-08-25 66 views
1

我有一個應用程序(exe)使用一些強命名的dll。如果我理解正確,沒有人可以用他們自己的準備版本替換dll,因爲它們不會被簽名。沒有人可以替換這個exe,因爲它是通過簽署清單來保證的。ClickOnce應用程序的安全

但是,如果有人準備自己的exe文件並更改清單文件中的簽名呢?

回答

2

如果有人可以重新編寫清單文件,請將其替換爲他們所選擇的exe,並用他們自己選擇的替換他們想要的任何dll,然後所有投注都將關閉。

請記住,唯一的人能夠sign the manifest as you,應該是你。如果其他人可以訪問您的私鑰,那麼他們可以輕鬆地做到這一點。您的用戶確實需要知道,他們應該閱讀屏幕上顯示的任何信息,說他們正在運行的應用程序誰已在上簽名。安全性和鏈中最薄弱的環節一樣好,可悲的是,這通常是用戶。

你有沒有想過ClickOnce的應用程序每次運行時從源代碼下載,而不是在用戶PC上緩存。那至少是部分緩解?

+0

簽署該應用程序的信息僅在開始安裝之前。之後,當運行已經使用ClickOnce安裝的應用程序時,沒有關於這個的信息。即使有,它也可能已經由人員準備,他們更改了清單和exe文件。我對嗎?在運行已安裝的應用程序之前,用戶如何驗證? – prostynick 2010-08-25 09:57:30

+1

他們無法驗證我是否知道 - 我想你可以在代碼中運行檢查,但只要有人替換了'.exe',所有投注都會關閉。 – Rob 2010-08-25 10:00:12

+0

@prostynick,感謝您接受的答案,對不起,如果它不是你以後的答案! =)你有沒有想過ClickOnce的應用程序是從源代碼下載的*每次運行它,而不是緩存在用戶的PC上。這至少是部分緩解=) – Rob 2010-08-25 13:46:16