保护XML文件不被编辑

时间:2010-01-27 13:23:29

标签: c# .net xml encryption

我们在至少1000个xml文件中实现了大约60 MB的设备配置。

现在我们正在向客户发布该软件。但我们的要求是不允许用户查看和编辑xml配置文件。 XML配置文件包含很多设备信息的秘密,如果它是可读的,很容易被黑客入侵。

现在我们需要加密xml文件。是否有任何建议的方法来加密xml文件,它可以在运行时解密?

5 个答案:

答案 0 :(得分:2)

这是DRM应用程序中已知的问题 - 您希望将数据提供给您选择的用户代理,而不是操作用户代理的用户。但是,由于用户代理通常在用户身边,正如Jon和Oded指出的那样,一个坚定的黑客会找到打破加密的方法。这是一场猫捉老鼠的比赛。您正在尝试找到解决方案,以解决实施DRM的人想要解决的完全相同的问题。纯软件用户代理比硬件辅助用户代理更容易破解,但在任何一种情况下,时间都适用于黑客。最新的发展是后者 - 将所有加密技术嵌入到硬件中 - 例如HDMI的HDCP方法(高带数字内容保护路径),它们实际上使解密的数字信号无法通过黑盒硬件传递给用户从它的解密点直到它可用,但在预定的目的地 - 电视屏幕。然而,HDCP成功的关键是在硬件中实现它。大多数黑客都学会了处理软件。但是,既然我认为现在每100名优秀的软件黑客中有1名优秀的硬件黑客,那么老鼠希望没有猫可以抓住它。对于太多的理论感到抱歉,我认为这对你的问题至关重要。如果您仍然愿意玩游戏,请加密您的XML文件,并确保解密密钥不可用于银盘上的潜在黑客 - 即混淆它,不能做太多其他事情。

答案 1 :(得分:1)

你对“黑客”的期待有多坚定?如果解密信息所需的所有信息无论如何都存在于系统中,那么确定的攻击者无论如何都能够获得它。

答案 2 :(得分:1)

您可以使用Cryptography命名空间中的类。

大多数加密类都允许您加密和解密流,因此有利于您的目的。

但是,您仍然需要将加密密钥保存在某处,即使它位于程序集中。

正如乔恩指出的那样,坚定的黑客会找到一种方法来破解任何加密。

答案 3 :(得分:1)

正如其他人所解释的那样,如果没有存储密钥的可信设备并在没有授予任何情况下密钥访问权限的情况下进行解密,您将无法获得绝对安全。电脑不是“值得信赖的设备”...... 我的雇主销售这种技术,如果您的数据确实值钱,您应该考虑这样的解决方案。 如果额外的USB-Dongle不可接受(或太昂贵),至少使用公钥(asymmetic)加密(参见System.Security.Cryptography)。 非对称加密的优点是,用于解密数据的密钥不能用于加密数据。 您的应用程序必须存储解密密钥,黑客可以通过或多或少的努力来确定它。然后,他可以解密您的所有数据,但他不能再次加密更改的数据。因此他无法将您的应用程序与更改的数据一起使用。 如果你想阻止他这样做,你必须混淆你的应用程序并使用反调试技术(静态和运行时)。如果你采用这种方式购买现有解决方案可能更便宜。

答案 4 :(得分:1)

注意:黑客可以看到.net生成的可执行文件和dll中的所有函数! 如果您在.net项目中使用DecryptXML(字符串路径)进行解密算法,则黑客很容易调用此指令。所以一定要对你的项目进行点缀。