[英]Authenticating DLLs in C#
我有一個使用Castle Windsor來實現插件機制的exe。 我需要驗證我加載的插件是否來自我(不是某些惡意代碼)。
我相信我需要使用非對稱密鑰(可能是SNK?)對exe和dll進行簽名。 首先,這是正確的,我該怎么做? 其次,如何在exe中以編程方式驗證dll是否來自受信任的來源?
如果您對DLL進行簽名,則在運行時可以在加載DLL之前檢查其StrongName
。
您還可以檢查用於簽名的公鑰是否符合您的期望。
要獲取程序集的公鑰,可以執行以下操作:
Assembly assembly = ...
AssemblyName assemblyName = assembly.GetName();
byte[] publicKey = assemblyName.GetPublicKey();
我剛剛檢查了一下,這里的StackOverflow已經有一個很好的答案:
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.