.Net security noob here ...什麼是最簡單的方法來防止別人加載我的程序集?背景:雖然我真的在尋找「足夠好」的保護(有足夠的時間/金錢/聰明的人可以成功破解,破解和攻擊),但這似乎應該已經是一個解決的問題,而我只是想念它。最簡單的方法來防止有人加載我的託管程序集?
這是我(想)我知道:
雖然強命名可使用的安全層,它不是 必然意圖是,根據this microsoft documentation(見警告:
在^注意我遇到了我無法加載第三方程序集(Aspose,我認爲它是)的情況,因爲他們做了 沒有簽署他們的組裝但是我的全部都是。所以我不得不ildasm他們的大會,用我們自己的snk簽署它,然後ilasm回)在 爲了使用他們的圖書館。 因此,強大的命名似乎並不像我對於良好的安全機制。但是 ...代碼中的簡單檢查 如何驗證調用程序集是否使用公鑰標記對我的 簽名?這有效嗎?
如果強命名不應該被用來做什麼我想 完成,正在執行的DLL更好的路由(似乎wintrust.dll可以幫助 本)的驗證碼數字簽名檢查 ?
我一直在通過幾個供應商的工具混淆 和許多來與許可和各種東西。我可能會 使用模糊的點點隱藏一些敏感部位, 然而我還是想有防止 有人從加載我的敏感庫的機制,而不必使用 功能,如字符串和代碼加密 ,這往往伴隨着 表現(和其他)的成本。
所以回到剛纔的問題,什麼是阻止加載我的程序集的人最簡單的方式?
是否有投票關閉?如果是這樣,爲什麼?也許指出我已經回答了這個問題。可能我錯過了那裏已經有的東西。或者它也有可能,這並沒有真正得到有效回答。 – JohnZaj
你是什麼意思,完全由「防止加載」?在一般情況下,這是不可能的,因爲你的程序集是一個不透明的文件。有可能的是阻止你的程序集內的.NET代碼運行,或者隱藏其中的東西。 PS:正如你發現的那樣,強大的命名只是關於識別。當你辭去一個組件時,它不會再來自同一個發佈者。如果該程序集包含檢查其發佈程序的代碼,則其中的代碼可以使用它來更改其操作過程,但組裝程序仍可以加載。 –
你是否想阻止你.Net dll一直COM可讀? – TechLiam