Как защитить / зашифровать индекс Lucene? - PullRequest
15 голосов
/ 26 февраля 2010

Я работаю над настольным приложением, которое будет использовать Люцерн в качестве поисковой системы. Приложение будет установлено на компьютере пользователя, а индекс будет сохранен на локальном жестком диске.

Данные потенциально конфиденциальны, поэтому я хотел бы защитить индекс от несанкционированного доступа. Данные должны быть защищены даже тогда, когда компьютер пользователя украден.

2 подхода, которые я придумала до сих пор:

  • Использовать шифрование Windows NTFS. Должно быть защищено, если неавторизованный человек не знает, как войти в систему как пользователь, создавший индекс.
  • Используйте TrueCrypt. Это должно быть очень безопасно, но для установки зашифрованного диска требуется установка TrueCrypt и права администратора.

Приложение будет распространяться среди многих пользователей, поэтому я бы хотел максимально упростить установку.

Кто-нибудь имеет опыт работы с этим сценарием? Сейчас я думаю, что самым простым подходом было бы шифрование NTFS. Что ты думаешь?

Спасибо!

Ответы [ 4 ]

8 голосов
/ 01 марта 2010

Проверьте исходный код FSDirectory. Весь дисковый ввод-вывод lucene проходит через этот класс. Вы можете поместить свой код шифрования / дешифрования в этот класс и распространять этот пользовательский двоичный файл lucene.

Если вы используете симметричное шифрование, вы, вероятно, встраиваете свой ключ в этот код. Это может быть уязвимо для декомпиляции.

С помощью пользовательского FSDirectory вы можете отогнать большинство любопытных людей, которые откроют этот индекс с помощью Люка. Но вам, возможно, придется продумать все, чтобы сделать его непоколебимым для действительно решительных людей.

3 голосов
/ 05 июня 2013

Может быть, это поможет: https://issues.apache.org/jira/browse/LUCENE-2228. Я не уверен насчет статуса, однако

2 голосов
/ 10 мая 2011
  1. расширить FSDirectory и использовать симметричное (AES) шифрование для всех файловых операций.
  2. используйте ключ на основе закрашенного хэша пароля пользователя, чтобы вам не приходилось распространять ключ с кодом.
0 голосов
/ 09 мая 2011

Если вы зашифруете хранилище индексов, я не уверен, что вы будете искать его позже, возможно, вы захотите использовать что-то вроде симметричного шифрования с возможностью поиска и асимметричного шифрования с возможностью поиска техники , который гарантировал бы вам операции поиска даже на удаленном диске, фактически не расшифровывая его.

...