我目前正在开发一个将分发给客户端本地服务器的java搜索项目,该项目包含一些有价值的数据,我们希望它不能直接在机器上访问,但只能从项目服务中访问/蜜蜂。数据将每天更新,并且需要提供24/7查询。 我在想eCryptFs,但经过一些测试后,似乎一旦加密数据挂载在服务用户下面,比如'root1',因为我必须将加密数据保持在挂载状态以支持查询,所有其他登录用户无需密码即可访问去加密数据。反正有支持我的情况吗?感谢。
答案 0 :(得分:1)
如果您的用户没有root访问权限,您只需将加密密钥存储在一个文件中,并拒绝其他用户的读取权限。
如果您的用户具有root访问权限,则无法执行任何操作。
答案 1 :(得分:0)
编辑:
在大多数情况下,拥有root帐户的人可以执行其他用户可以执行的任何操作。因此,即使您确实获得了每个用户对文件的r / w权限,但仅针对某个用户(这是非常可能的),这将是毫无意义的。 (具有sudo / root访问权限的人可以只运行sudo su USER
,其中USER是具有r / w权限的帐户。我认为更好的方法是查看用户无法控制的选项。
首先想到的是编译程序。虽然它们并不真正用于保存安全信息,但是你可以编译一个简单的程序,在一段时间延迟后输出一些信息(以防止它们连续运行它然后编译它们获得的所有数据)从它开始。)实际上,修改Java程序可能会更容易;只需将信息存储为巨大的字符串或其他内容。 :d
These open source Java obfuscators会使你的程序以及内部数据的逆向工程变得更难(但肯定不是不可能)。
更安全的选择是编写C程序,编译它,然后输出JAVA文件可以管理的输出信息(经过一段时间延迟)。为了使反编译更难,你可以在字符串中添加一些加密方法,这样如果反编译器弄乱了它的任何部分,它仍然是毫无价值的信息。
最终裁决:当存储在别人的计算机上时,没有什么是真正100%安全的,但是,再一次,它们在您自己的服务器上都不是100%安全的。我建议查看其他选项,但如果您没有其他选项并且您对信息有法律保护,则此可能适合您。