如何保护/加密Lucene索引?

时间:2010-02-25 21:10:37

标签: encryption lucene.net security

我正在开发一款将使用Lucerne作为搜索引擎的桌面应用。该应用程序将安装在用户的计算机上,索引将存储在本地硬盘上。

数据可能是保密的,因此我希望保护索引免受未经授权的访问。即使用户的机器被盗,数据也需要是安全的。

到目前为止,我已经提出了两种方法:

  • 使用Windows NTFS加密。除非未经授权的人知道如何以创建索引的用户身份登录,否则应该是安全的。
  • 使用TrueCrypt。这应该是非常安全的,但它需要安装TrueCrypt和管理权限才能安装加密驱动器。

该应用程序将分发给许多用户,因此我希望尽可能简化安装。

有没有人有这种情况的经验?现在我认为最简单的方法是NTFS加密。你觉得怎么样?

谢谢!

4 个答案:

答案 0 :(得分:8)

查看FSDirectory.的源代码lucene的所有磁盘IO都通过此类。您可以将加密/解密代码放在此类中,并分发此lucene的自定义二进制文件。

如果您使用对称加密,则可能会将密钥嵌入此代码中。这可能容易受到反编译的影响。

使用自定义FSDirectory,您可以避开大多数将使用Luke打开此索引的好奇人物。但是,你可能需要仔细考虑所有事情才能让真正坚定的人们牢牢抓住它。

答案 1 :(得分:3)

也许这会有所帮助:https://issues.apache.org/jira/browse/LUCENE-2228。我不确定状态

答案 2 :(得分:2)

  1. 扩展FSDirectory并对所有文件操作使用对称(AES)加密。
  2. 使用基于用户密码的salt-hash的密钥,因此您不必使用代码分发密钥。

答案 3 :(得分:0)

如果您加密索引存储,我不确定您以后会如何搜索它,您可能希望使用对称可搜索加密非对称可搜索加密技术,可以保证您甚至在远程磁盘上搜索操作而不实际解密它。