我在很多文章中都看过它 延迟签名和程序集的强名称可以防止它被高压。
这是什么意思?
我唯一知道的是没有强名称,您无法在GAC中安装程序集。 所以假设我有一个没有强名的集会,它可以被高压吗?
有人请澄清我的疑问。
答案 0 :(得分:39)
在MSDN上有很多关于此的信息;例如:Strong Naming和Delay Signing
总结基本理念:
强命名是一种使用简单的识别标记标记程序集的方法,稍后可以使用它来验证自部署之后它尚未被修改。强名称基本上是程序集名称,版本和开发人员独有的“强名称密钥”的哈希值。对强名称程序集的引用会经过更严格的验证,引用非强名称的程序集;特别是,强名称引用必须与版本号匹配,强名称哈希必须匹配。
这有助于避免程序中潜在安全漏洞的两个常见来源:
强名称进程将拒绝这两个操作,因为强名称数据将不匹配。这就是为什么GAC中的程序集必须具有强大的名称:它们无处不在地使用,否则它们将成为这种劫持的主要目标。
但请注意,强名称绝对不会验证发布商的身份。任何人都可以发布一个声称是微软的名字很强的集合,并且强名称中没有任何东西可以反驳这个断言。验证身份验证是Authenticode数字签名的工作,与强命名不同。这两者经常一起使用,但它们是正交概念。
延迟签名是一种在构建过程之外对程序集进行签名的技术。这里的想法是,您的公司可能有不允许在构建时使用强名称密钥的策略(可能它们保持脱机状态,或者在密码后面保护。)延迟签名程序集标记为空白强 - name key:它基本上为授权用户保留以后添加密钥的空间。同时,还包括一个部分强名称密钥 - 只有足够的信息可供其他程序集进行强引用,但不足以检测更改或修改。