gpt4 book ai didi

c# - 我应该把公钥放在独立应用程序的什么地方

转载 作者:行者123 更新时间:2023-11-30 21:06:24 25 4
gpt4 key购买 nike

我编写了一个 C# WPF 应用程序,它使用标准的 .Net SignedXml 类对许可 xml 文件进行签名。我能够将公钥和私钥提取为 xml 字符串。我可以在本地安全地为签名应用程序隐藏我的私钥,但是远程签名检查应用程序(库)中所需的公钥呢?考虑的选项:

  • KeyContainer:不好,因为签名和检查发生在 2 个不同的环境中
  • 硬编码:在我的检查库中将公钥硬编码为 xml 字符串。我知道公钥不是 secret ,但如何防止黑客用自己的 key 替换?我可以对库进行签名,但随后他们可能会使用该库篡改应用程序....

最佳答案

将公钥放入您随应用分发的标准数字证书中。然后,Windows 将保证证书的完整性,您可以判断它是否已被更改。

当然,硬件和 Windows 本身都在任何潜在攻击者的控制之下,因此您无法真正阻止对特定机器的破坏。

这是我用来分发的一个程序的示例。当程序从许可证的角度被激活时,它会向网络服务发送一个硬件哈希值。这返回了一个包含硬件哈希的自签名证书,我的程序随后会在启动时检查它。如果证书以任何方式更改,程序将停止。

关于c# - 我应该把公钥放在独立应用程序的什么地方,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11225439/

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