RSA安全私钥内部exe文件

时间:2016-04-01 08:46:53

标签: java c# encryption rsa

我正在创建C#Java桌面应用程序(exe),我需要加密用户密码和许可证相关信息,因此我找到了这个link。但问题是,如果我使用RSA公钥/私钥加密,那么我将需要exe文件中的两个密钥来保持用户和许可证信息的可更改,但如果有人反向设计.exe文件并获取私钥,那么数据将是损害。

如何在.exe文件中保护我的私钥?还有其他技术可以从逆向工程中保存私钥吗?

有一些Obfuscate工具可以阻止逆向工程,但仍然可以看到私钥,使用这样的工具非常昂贵。

3 个答案:

答案 0 :(得分:1)

对用户密码(如SHA)使用散列函数,不要在用户系统上存储私钥。对于许可信息,生成RSA签名许可证数据并通过电子邮件或任何其他方式将其发送给用户,您的应用程序将只需要许可服务器的公钥来验证许可证数据。

答案 1 :(得分:1)

简短的回答是否定的,没有技术可以将私钥保存在逆向工程中。没有混淆工具可以阻止私钥的逆向工程。您无法在私有密钥中保护可执行文件。

不要相信我的话。搜索已经将其私钥反向设计的被黑体系统的示例。有很多。我刚刚找到了这个例子:http://goodenoughsecurity.blogspot.com/2012/11/how-ps3-lv0-key-was-probably-hacked.html

答案 2 :(得分:-2)

  1. 我会使用服务器进行加密。然后,我可以向服务器发送一个发布请求并发送密钥,或验证密钥,或删除密钥。错误:该应用程序是独立的。
  2. 打包您的应用程序。例如在UPX中。错误:无法打包。
  3. 将密钥存储在注册表中。错误:不安全。 您需要将其存储在服务器上