【发布时间】:2012-02-03 14:21:32
【问题描述】:
我正在开发一个无法连接到互联网的 C# 应用程序。
这个应用程序将为我的硬件生成一个配置文件。
我想确定的是,当我将配置文件提供给我的助手时,他并没有更改它,而是在硬件中放入了一个具有不同配置的文件。
为了避免这种情况,我目前正在使用一种简单的方法。
在代码中我有一个键:abcd123
我的应用程序生成一个配置文件,然后:
HASH 配置文件并使用 KEY:abcd123 加密 HASH 存储在 字符串变量KEY
将配置文件交给我的助手,助手将其加载到硬件中
现在,硬件拥有密钥 abcd123,它解密配置并对有效负载进行哈希处理。如果 2 HASH 相同,我假设我的助手没有更改配置文件。
我担心的是,.NET 代码中的 KEY 存储很容易恢复,无需混淆。
我因此购买了Crypto Obfuscator,但我不知道我的密钥有多安全。
我不够熟练,无法反编译我的程序并查看密钥是否仍然清晰。
您可以建议我使用哪些方法来合理地确保我的密钥是“安全的”?
我知道没有办法保护它,但我只想为我不太了解的自动混淆提供合理的额外安全性。
我希望我已经清楚了,但要求澄清。
【问题讨论】:
-
假设您在网络上,您可以通过联网 PC 上的 Web 服务进行身份验证。
-
我的应用程序在从未连接到网络的离线计算机上运行,我无法通过任何方式将其连接到互联网。
标签: c# .net security cryptography obfuscation