gpt4 book ai didi

security - 如果两个文件的公钥相同,是否足以断定它们是由同一个证书签名的?

转载 作者:行者123 更新时间:2023-12-05 01:48:50 25 4
gpt4 key购买 nike

我正在为我的软件实现自动更新机制。服务器上的 msi 使用 signtool 进行签名。我的应用程序下载 msi 并读取下载的 msi 的公钥。如果公钥与源代码中硬编码的公钥匹配,它将执行 msi 并自行更新。

这是否足以确保没有恶意 msi 被错误执行?我的理解是,只有由我的证书签名的文件才会具有相同的公钥。

编辑:在 petey 的帮助下,我能够检测到 msi 是否由我的证书签名。但是,这并没有完全解决我的问题。我仍然可以使用 Orca 等工具编辑已签名的 msi。即使 msi 不再与签名的相同,证书也没有任何变化。所以当我检查 msi 是否由我签名时,我得到是。虽然我知道这可能是有意为之的行为,但必须有某种方法来检测 msi 是否被篡改了??

最佳答案

很有可能,如果它是同一个公钥,那么它就是同一个证书。但是有了这些知识,攻击者可以很容易地模仿您的公钥并将其粘贴在他的 MSI 上,因为它是公开的。您应该使用该公钥来验证 MSI 上的签名,而不仅仅是检查它是否是同一个公钥,这样您就可以确定它是用您相应的私钥签名的,而攻击者不会拥有该私钥。您还应该运行证书链并验证签名直到您信任的 CA。

编辑:

你到底在签什么?如果签名的内容被更改,则签名不应有效。但是,这听起来像是消息验证码(键控哈希)可以工作。如果您有预共享哈希 key ,则可以在下载 MSI 之前对其进行哈希处理,然后在客户端再次验证哈希。或者,如果您不想使用键控哈希,您可以使用常规哈希,然后使用相同的私钥对哈希值进行签名。如果您可以使用公钥“验证”(即解密)散列,您知道散列来自您,那么您可以重新散列 msi 并检查散列是否相同。

关于security - 如果两个文件的公钥相同,是否足以断定它们是由同一个证书签名的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6505204/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com