我应该在哪里保存用于 xml 签名验证的公钥

本文关键字:签名验证 公钥 xml 用于 在哪里 保存 我应该 | 更新日期: 2023-09-27 18:30:52

我想提供一个简单的、未加密的 xml 文件作为我的桌面应用程序(winforms、.NET 4.0、C#)的配置文件。但是,我想确保该应用程序使用的任何配置文件都来自我。为此,我正在考虑 XML 签名,它似乎非常符合我的要求。

我剩下的唯一问题是:我应该如何将公钥存储在我的应用程序中以执行配置文件的验证?我的猜测是将其嵌入到应用程序中,但是究竟应该如何做到这一点才能防止有人简单地使用反编译器打开二进制文件并用他/她自己的密钥替换我的密钥?

不是在寻找任何超级安全的东西,因为我知道无论如何我都无法 100% 确定。

我应该在哪里保存用于 xml 签名验证的公钥

就像我在评论中所说的那样,没有 100% 万无一失的方法可以保护您的应用程序免受反编译,但您可以使用 Dotfuscator 等工具混淆您的应用程序

我会使用 Windows 证书存储来存储任何密钥http://msdn.microsoft.com/en-us/library/system.security.cryptography.x509certificates.x509store.aspx和 Windows 数据保护 API,用于在程序执行时将其存储在内存中。https://en.wikipedia.org/wiki/Data_Protection_APIhttp://msdn.microsoft.com/en-us/library/system.security.cryptography.protecteddata.aspx