2010-02-25 51 views
15

我正在使用將盧塞恩作爲搜索引擎的桌面應用程序。該應用程序將安裝在用戶的機器上,索引將存儲在本地硬盤上。如何保護/加密Lucene索引?

數據可能是保密的,所以我想保護索引免受未經授權的訪問。即使用戶的機器被盜,數據也需要保證安全。

2的方法我想出迄今:

  • 使用Windows NTFS加密。應該是安全的,除非未經授權的人知道如何以創建索引的用戶身份登錄。
  • 使用TrueCrypt。這應該是非常安全的,但它需要安裝TrueCrypt和管理權限來安裝加密驅動器。

該應用程序將分發給許多用戶,所以我想保持安裝儘可能簡單。

有沒有人有這方面的經驗?現在我認爲最簡單的方法是NTFS加密。你怎麼看?

謝謝!

回答

8

查看FSDirectory.的源代碼lucene的所有磁盤IO都通過這個類。你可以把你的加密/解密代碼放在這個類中,並分發這個自定義的lucene二進制文件。

如果您使用的是對稱加密,您可能會在此代碼中嵌入您的密鑰。這可能易於反編譯。

有了自定義的FSDirectory,你可能會避開大多數好奇的人,他們會用Luke打開這個索引。但是,你可能必須仔細考慮所有事情,才能使真正堅定的人們感到堅不可摧。

+1

如果我同意在技術上可以,你可以編寫自己的加密版本的FSDirectory,實際上做安全加密非常困難,除非你真的知道你在做什麼你會做一些讓它不安全的事情。 – Justin

+1

絕對不要「自制」你的加密。不要。至少使用JCA/JCE。這仍然很複雜,所以你可能想要使用像Jasypt(http://www.jasypt.org/)或(我個人最喜歡的)Cryptolite(https://github.com/workdocx/Cryptolite)的庫。 –

+0

恩,對不起,這是lucene.net –

0

如果您加密的索引存儲,我不知道你怎麼會在以後搜索它,你可能想使用類似對稱搜索加密不對稱搜索加密技術,這將保證您搜索業務即使在遠程磁盤上也沒有實際解密。

2
  1. 擴展FSDirectory並對所有文件操作使用對稱(AES)加密。
  2. 使用基於用戶密碼的salt-ed散列的密鑰,因此您不必使用代碼分發密鑰。