2010-02-25 33 views
15

Tôi đang làm việc trên một ứng dụng dành cho máy tính để bàn sẽ sử dụng Lucerne làm công cụ tìm kiếm. Ứng dụng sẽ được cài đặt trên máy của người dùng và chỉ mục sẽ được lưu trữ trên đĩa cứng cục bộ.Làm cách nào để bảo mật/mã hóa chỉ mục Lucene?

Dữ liệu có khả năng bảo mật vì vậy tôi muốn bảo vệ chỉ mục khỏi bị truy cập trái phép. Dữ liệu cần phải được bảo mật ngay cả khi máy của người dùng bị đánh cắp.

2 cách tiếp cận tôi đã đưa ra cho đến nay:

  • Sử dụng Windows NTFS mã hóa. Nên an toàn trừ khi người không được phép biết cách đăng nhập như người dùng đã tạo chỉ mục.
  • Sử dụng TrueCrypt. Điều này sẽ rất an toàn nhưng nó yêu cầu cài đặt TrueCrypt và quyền quản trị để cài đặt ổ đĩa được mã hóa.

Ứng dụng này sẽ được phân phối cho nhiều người dùng vì vậy tôi muốn giữ cài đặt đơn giản nhất có thể.

Có ai có kinh nghiệm với tình huống này không? Ngay bây giờ tôi nghĩ cách tiếp cận dễ nhất sẽ là mã hóa NTFS. Bạn nghĩ sao?

Cảm ơn!

Trả lời

8

Kiểm tra mã nguồn của FSDirectory. Tất cả IO đĩa của lucene đi qua lớp này. Bạn có thể đặt mã mã hóa/giải mã trong lớp này và phân phối nhị phân tùy chỉnh này của lucene.

Nếu bạn đang sử dụng mã hóa đối xứng, có thể bạn sẽ nhúng khóa của mình vào mã này. Điều đó có thể dễ bị tổn thương khi giải mã.

Với FSDirectory tùy chỉnh, bạn có thể ngăn chặn hầu hết những người tò mò muốn mở chỉ mục này với Luke. Nhưng, bạn có thể phải suy nghĩ qua tất cả mọi thứ để làm cho nó không thể phá vỡ cho những người thực sự xác định.

+1

Tôi đồng ý rằng về mặt kỹ thuật, bạn có thể viết phiên bản FSDirectory đã mã hóa của riêng mình, trong thực tế việc mã hóa bảo mật rất khó và có khả năng là trừ khi bạn thực sự biết mình đang làm gì bạn sẽ làm điều gì đó khiến nó không an toàn. – Justin

+1

Chắc chắn không "homebrew" mã hóa của bạn. Chỉ cần không. Tối thiểu, sử dụng JCA/JCE. Điều đó vẫn còn khó sử dụng, vì vậy bạn có thể muốn sử dụng một thư viện như Jasypt (http://www.jasypt.org/) hoặc (yêu thích cá nhân của tôi) Cryptolite (https://github.com/workdocx/Cryptolite) –

+0

Hmm xin lỗi, đây là lucene.net –

0

Nếu bạn mã hóa các cửa hàng chỉ mục, tôi không chắc chắn làm thế nào bạn sẽ được tìm kiếm sau này, bạn có thể muốn sử dụng cái gì đó như đối xứng mã hóa tìm kiếmbất đối xứng có thể tìm kiếm mã hóa kỹ thuật, trong đó sẽ đảm bảo bạn hoạt động tìm kiếm ngay cả trên một đĩa từ xa mà không thực sự giải mã nó.

2
  1. mở rộng FSDirectory và sử dụng mã hóa đối xứng (AES) cho tất cả các thao tác tệp.
  2. sử dụng khóa dựa trên băm băm của mật khẩu người dùng để bạn không phải phân phối khóa bằng mã.
Các vấn đề liên quan