如何保护签名密钥?

时间:2012-07-05 00:04:22

标签: c# xml encryption encryption-asymmetric integrity

我需要验证设置文件的完整性。该文件是一个xml文档。我知道您可以使用this stackoverflow post中讨论的随时可用的功能。但是我无法理解如何保护签名密钥。如果我签署一个xml文件作为对其内容的完整性检查,用户可以轻松地反汇编我的可执行文件并获取密钥和/或生成密钥的方式。有哪些方法可以轻松保护密钥?密钥容器似乎是一种选择,但我不知道它们如何保护密钥和/或用于生成密钥的方法。

谢谢!

1 个答案:

答案 0 :(得分:0)

将密钥加载到容器中时,可以指定它不可导出。这将有助于保护它,但无论如何您仍然需要将文件存储在某处,以防万一,例如,您将获得一台新计算机。

顺便提一下,我确实提到将其标记为不可导出将帮助保护它,而不是保证它的保护。仍然可以提取不可导出的密钥。

唯一可靠的方法是确保没有人可以物理访问计算机。物理访问意味着你可以做任何事情。

在您的情况下,这意味着私钥必须位于安全的地方,因为它是您的数字签名。验证签名的公钥将加载到您的程序中。如果您的代码被反编译并且提取了公钥,则无关紧要,因为它可用于验证某些内容是否由您的私钥签名。

如果有人为了避免验证设置文件而对代码进行反编译会遇到麻烦,他们只会更改您的代码以跳过验证。