繁体   English   中英

使用数字签名签署强名称程序集是不好的做法吗?

[英]Is it a bad practice to use a digital signature to sign a strongly named assembly?

我很好奇,通过谷歌研究,我一直在学习数字签名和强烈命名的程序集。 如果您真的努力,似乎可以使用数字签名来签署强名称的程序集。

我推测,通过这种做法,可以通过这种方式使用它来规避数字签名的目的。

微软说:

“强名称本身并不意味着一种信任程度,例如通过数字签名和支持证书提供的信任。”
- http://msdn.microsoft.com/en-us/library/wd40t7ad%28v=vs.110%29.aspx

我是否正确地猜测以这种方式使用数字签名实际上是一种不好的做法,这可能会造成安全漏洞并且绝对没有用处? 或者甚至可能吗? 使用数字签名作为强名称可能或更好然后什么都不做? 除了正确使用数字签名之外,它是否提供了额外的安全性。

使用数字签名签署强名称程序集是不好的做法吗?

不,这是一个非常好的做法。

如果您真的努力,似乎可以使用数字签名来签署强名称的程序集。

这有点棘手,因为强大的命名和数字签名都会修改程序集。 程序集必须首先强名,然后签名。

我推测通过这种做法可以通过这种方式使用它来规避数字签名的目的,因为强烈命名的程序集可以被黑客攻击

好的,所以你猜测有攻击。 我猜测没有。 说明漏洞和建议的攻击。

(至少有些帖子说过)。

你打算让我们猜猜哪个帖子这么说了吗?

“强名称本身并不意味着一种信任程度,例如通过数字签名和支持证书提供的信任。”

那是对的。 强名称和数字证书类似,但它们解决了不同的问题。 强名称解决了装配问题的识别问题。 签名解决了信任链问题。

我已经看到过互联网海报的例子,他们试图正确地认为他们正在保护自己的软件。

无论是强命名还是证书签名都不能保护软件 安全系统的目的不是保护软件 ,而是保护用户 我们没有驾驶执照来保证机动车辆部门免受忍者袭击。 我们有驾驶执照,证明驾照的持有人确实是他们所说的并且被允许驾驶的人。 任何认为强有力的命名保护软件的人都非常非常困惑。

我是否正确地猜测以这种方式使用数字签名实际上是一种不好的做法,这可能会造成安全漏洞并且绝对没有用处?

不,你错了。

跨越溪流是好事还是坏事(请原谅幽默。)?

为什么这会是一件坏事? 我们所拥有的只是你声称存在攻击,并且没有任何证据确实存在攻击。

或者甚至可能吗?

当然有可能。

我所看到的帖子中提到使用两个一致的方式(使用数字签名来签署一个特别强烈命名的组件(不是数字签名))可能或更好然后什么都不做?

您要求我们评论我们尚未阅读的帖子的准确性,而您尚未提供链接。 我们应该怎么知道它们是否准确?

用于强烈签署程序集的密钥不存在信任链。 您不能使用相同类型的密钥进行强名称签名和“代码签名”:因此“混合和匹配”没有问题。 这两种类型的签名服务器有两种不同的用途,您需要在特定情况下选择您需要的那些(很可能只是强名称签名而.Net没有内置验证的另一个)。

通过签名强名称,您不能说特定密钥是否属于特定实体,不像其他类型的签名,您知道签名证书的来源(即,身份验证签名或HTTPS的SSL证书),并且可以合理地确定原点。

强烈签名告诉您由相同“实体”创建的相同密钥签署的程序集,但没有指示此“实体”是什么/谁。 你不能说“这个新版本的装配是由FooBar公司制造的”,你只能说“它与前一个公司/集团共同构建”。

注意:确实有一些“众所周知的”公钥(即由Microsoft签名的框架程序集),但是你不能通过查看公钥来获得任何程序集并说“由X签名”。

请注意,Eric Lippert在回答 - .NET程序集的签名中详细介绍了这一点。

把它分成清楚的部分,因为我不太清楚你在问什么。

是否可以使用数字签名的私钥(例如Authenticode)来强烈命名程序集?

是的,至少在理论上 - 因为所有的密钥都是一个字节序列。

这样做有什么意义吗?

由于您不需要为强名称支付私钥,因此使用付费数字签名来做这件事就没有多大意义了。 您支付的是与数字签名相关的信任。 正如Eric Lippert,Alexei和其他人所解释的那样,强有力的命名并没有得到信任。

如果你这样做,那会是一个安全漏洞吗?

不管你是数字签名还是强命名,无论你使用什么私钥,你所提供的所有组件都是公钥。 公钥在为公众所知-这就是非对称加密的整点。 只要您的私钥保持私密,就没有漏洞。

ETA:我希望看到问题中提到的帖子,关于使用Authenticode签名进行强命名(而不是将两者结合使用)。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM