现在 SHA1 已经属于不安全的 hash 算法了,但是很多软件的 codesign 还是 SHA1 的,是否有伪造签名的风险?

75 天前
drymonfidelia  drymonfidelia
5480 次点击
所在节点   信息安全  信息安全
26 条回复
tdxdxoz
tdxdxoz
74 天前
sha1 不安全,指的是(花费比较大的算力)可以构造碰撞,也就是不同消息有相同的哈希值。
如果是要对任意给定的哈希值找原像/第二原像,也就是构造一个消息哈希值正好等于这个,即使 md5 目前也是做不到的。
linglingling
linglingling
74 天前
安全是相对的,没有绝对的安全。当你的服务(产品)价值一美元时,破解成本大于一美元,就是安全的。当然,现实中可能很难衡量价值,但大概的还是可以衡量的,如民用的没必要追求金融级别安全,金融没必要追求军事级别安全。
proxytoworld
proxytoworld
74 天前
除非能够把木马/病毒的 sha1 和已有的已签名的 exe 的 sha1 弄成一样,否则没有意义
edwardzcn98
edwardzcn98
74 天前
@geelaw #18 对于 git 的 commit hash 我看完后的理解:那用 sha-1 或者 md5 都可以吧?虽然不抗碰撞但是这种场景下不会有人去费劲构造,所以至今不需要更新散列函数。而对于 Git commit 的签名(之前没有仔细想过是对快照+元信息而非 commit hash 签名,~~GitHub 上这个 verified 标志挂在 commit hash 上给了我一种错觉~~),我倾向于理解为 git 加入这种签名更像是一种代码提交者的“宣告”(这是我用这只笔写的),并没有意图用数字签名来溯源验证提交者,如果私钥泄露就相当于自愿放弃之前提交的宣告,但对于代码提交本身是无影响的。
shenyuzhi
shenyuzhi
73 天前
散列算法不全是用在安全场合,有时候是为了性能,有时候(比如 Git )只是为了要一个标识符
frayesshi1
frayesshi1
72 天前
@shenyuzhi #25 sha1 或者 sha265 很多场景是加盐用的,比如客户端和服务端通信,有一个字段就是盐,用来验证是否是正确的客户端

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1104300

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX