加密,可压缩,跨平台,文件系统

Sid*_*iya 2 lucene encryption qt drm

我们希望创建一个桌面应用程序,用于搜索大小为几GB的本地打包文本数据库.我们正在考虑使用lucene.

因此,基本上用户将搜索几个单词,而本地lucene数据库将返回结果.但是,我们希望阻止用户对lucene索引进行全文转储,因为文本数据库是有价值的和专有的.Web应用程序不是此处的解决方案,因为客户希望此桌面应用程序能够在互联网不可用的区域中工作.

我们如何加密lucene的数据库,以便只有客户端应用程序可以访问lucene的索引,并且一个prying用户不能对索引进行全文转储?

我们认为,这样做的一种方法是,lucene索引是否可以存储在文件中的加密文件系统上(类似于truecrypt).因此桌面应用程序将"挂载"包含lucene索引的文件.

这需要跨平台(Linux,Windows)......我们将使用Qt或Java来编写桌面应用程序.

有没有更容易/更好的方法来做到这一点?

[这是给客户的.是的,是的,概念上这是坏事:-)但这就是他们想要的方式.基本上,关键是只有桌面应用程序应该能够访问lucene索引而不能访问其他人.有人指出这主要是DRM.是的,它类似于DRM]

Mat*_*hen 5

我们如何加密lucene的数据库,以便只有客户端应用程序可以访问lucene的索引,并且一个prying用户不能对索引进行全文转储?

你没有.用户将拥有密钥和加密数据,因此他们可以访问所有内容.您可以将密钥埋入混淆的文件中,但这只会稍微延迟.它肯定不会阻止窥探用户.你需要重新思考.

  • @Sidharth:无论*存储密钥*,用户都可以访问加密数据和密钥,因此您已经丢失了.出于这个原因,复制保护和DRM不起作用.(有关USB加密狗没用的原因,请参阅[this](http://usbsnoop.sourceforge.net/)) (2认同)
  • 我们想让它变得艰难但并非不可能.所以,是的,您可以执行内存转储并获取解密密钥(无论您使用的是软件密钥还是基于硬件的加密狗).有没有办法让黑客变得强硬......我们不想让它变得不可能.关键是客户端正在分发数千个有价值的文本文件的数据库.他希望客户能够离线搜索他们.搜索很好,但不加区别地删除数据. (2认同)