.net - 为什么强命名程序集不能使用未签名的程序集?

标签 .net assemblies code-signing

要对程序集 A 进行签名,您必须确保对 A 使用的所有程序集 B、C、D 进行签名,然后对 B、C、D 等使用的所有程序集进行签名。我不明白这有什么安全好处。我认为它应该防止篡改,但是允许程序集 A 打开任何文件,并且这些文件可以被篡改。外部网络服务器也是如此。

此外,使用公开的 .snk 文件对程序集进行签名太容易了,绕过了要求。

最佳答案

关键是,否则你可以用一个不同的(被黑的)替换组件 B/C/D,而 A 永远不会注意到;它会加载它们并执行代码。使用强命名,您不能在不使用相同 key 重新签署被黑的 B/C/D 或通过黑 A 的情况下执行此操作。

关于.net - 为什么强命名程序集不能使用未签名的程序集?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/868799/

相关文章:

.net - 从 'Sandbox Environment' 中的 .Net 应用程序加载程序集

iphone - 代码签名错误 : Certificate identity 'iPhone Developer: My Name (xxx)' appears more than once in the keychain

c# - TcpClient 未连接到远程服务器

.net - 用于分析 .NET Compact Framework 应用程序性能的工具

.net - 如何*有效*地在程序集中定位特定类型?

使用 Powershell 进行反射

xcode - 代码设计抛出错误 'errSecInternalComponent'

visual-studio-2012 - 每个 X.509 v3 证书都可以用作验证码证书吗

c# - .NET 中的 try-catch 执行 jQuery 脚本

c# - 使用 Skype4ComLib 时出错