我注意到在使用 AssemblyDelaySignAttribute 表示程序集正在开发中并且现在不需要签名之后,我将不得不使用 sn -Vr foolib.dll < / strong>为此程序集注册强名称验证关闭。
这样做圈的重点是什么?为什么不完全放弃组件,直到它完全完成?这不是那么麻烦吗?
答案 0 :(得分:18)
有几个原因......
因此,在严格控制签名过程的组织中,有助于将其伪造出来进行开发。
答案 1 :(得分:6)
来自AssemblyDelaySignAttribute Class
当使用延迟签名时 大会的作者没有 访问将要的私钥 用于生成签名
答案 2 :(得分:3)
这是延迟签名应该阻止的情况:
贵公司为银行制作交易系统。杰克是一个心怀不满的员工。他已经在你的团队工作了一年,并且可以访问用于签署程序集的私钥,因为它是每个人使用的构建的一部分。杰克和他的经理发生了冲突,并留下了所有的源代码。现在杰克决定变得平坦。他为你的软件所在银行的员工钓鱼,他让他们中的一些人下载了一个实用程序,用于交换杰克建立和签署的合法程序集。由于签名匹配,因此调用程序从不明白关键组件已被泄露。
“延迟签名”的目的是只有构建工程师才能访问签名。从理论上讲,这可以减少您需要隐含信任源代码的人数。软件工程师需要在构建和调试时禁用(忽略)强名称检查。