【发布时间】:2009-08-26 13:18:59
【问题描述】:
数字签名与强命名程序集有什么关系。我读到一个强命名的程序集有公钥和数字签名。
来自Wikipedia article "Assembly (CLI)":
“对程序集进行签名涉及获取程序集重要部分的哈希,然后用私钥加密哈希。签名的哈希与公钥一起存储在程序集中。公钥将解密签名的哈希。当 CLR 加载一个强命名程序集时,它将从程序集生成一个哈希,然后将其与解密的哈希进行比较。如果比较成功,则意味着文件中的公钥(以及公钥令牌)与用于签署程序集的私钥。这意味着程序集中的公钥是程序集发布者的公钥,因此可以阻止欺骗攻击。"
以上信息准确吗?它没有任何对数字签名的引用。我找不到 MSDN 页面来解释程序集如何签名、签名如何验证以及如何消除黑客攻击的可能性。我想了解更多关于这些的信息。
【问题讨论】:
-
你问的很多。这是一个复杂的主题,您似乎有兴趣从头到尾了解它的工作原理。
-
我想大致了解一下它是如何工作的。
-
我发现了一个有趣的解释here。在这里张贴纸迹。希望它可以帮助某人。
标签: c# .net assembly-signing