验证文件 - 安全问题

时间:2016-01-18 16:45:18

标签: java security encryption

我有一个文件,我将其称为A.txt,我在java应用程序中使用它。这个文件与应用程序一起提供,我希望有一种方法可以验证(在应用程序内)它确实是我的文件,而不是伪造的文件。

我有两个想法,但两者都容易受到一些攻击:

  1. 我将签名,A.txt和公钥作为明文与应用程序一起发送,但如果攻击者只是签署自己的文件,则替换验证将通过的签名,A.txt和公钥。

  2. 我将公钥硬编码到java应用程序中 - 除了反编译之外,如果我将A.txt发送给A人和B.txt发送给B人并且他们交换他们的txts他们都会成功验证,我' d而是让人A成功验证A.txt。

  3. 如何在没有受到攻击的情况下这样做?或者我如何实施我的方式以确保他们的安全?

1 个答案:

答案 0 :(得分:1)

在代码中隐藏加密密钥可能非常危险。 Reinard对可以加密和解密文件的Web服务有一个好主意。

另一种选择可能是隐藏注册表中的密钥或隐藏目录中的某个位置。您还可以尝试构建自己的算法,以构建解密密钥。

但是反编译呢?这一直是大多数开发人员的主要痛苦。你如何正确隐藏代码中的秘密?您可以尝试使用可能减慢反编译过程的应用程序打包器或扰码器。您还可以获得像ProGaurd这样的Java混淆器,使您的代码更难以进行逆向工程。

我真的希望这会有所帮助。