2

サイズが数 GB になる、ローカルにパッケージ化されたテキスト データベースを検索するデスクトップ アプリケーションを作成したいと考えています。ルセンの使用を考えています。

したがって、基本的にユーザーはいくつかの単語を検索し、ローカルの lucene データベースが結果を返します。ただし、テキスト データベースは貴重で独自のものであるため、ユーザーが lucene インデックスの全文ダンプを取得することを防止したいと考えています。Web アプリケーションは、インターネットが利用できない地域でこのデスクトップ アプリケーションが動作することを顧客が望んでいるため、ここではソリューションではありません。

クライアント アプリケーションのみが lucene のインデックスにアクセスでき、詮索好きなユーザーがインデックスの全文ダンプを取得できないように、lucene のデータベースを暗号化するにはどうすればよいでしょうか?

これを行う 1 つの方法は、ファイル内の暗号化されたファイル システム (truecrypt のようなもの) に lucene インデックスを格納できる場合であると考えました。したがって、デスクトップ アプリケーションは lucene インデックスを含むファイルを「マウント」します。

これはクロス プラットフォーム (Linux、Windows) である必要があります。デスクトップ アプリケーションを作成するには、Qt または Java を使用します。

これを行うためのより簡単な/より良い方法はありますか?

【お客様用です。はい、はい、概念的にはこれは悪いことです :-) しかし、これは彼らが望んでいる方法です。基本的には、デスクトップ アプリケーションのみが lucene インデックスにアクセスできる必要があり、他の誰もアクセスできないということです。これは本質的に DRM であると誰かが指摘しました。ええ、それはDRMに似ています]

4

6 に答える 6

5

クライアント アプリケーションのみが lucene のインデックスにアクセスでき、詮索好きなユーザーがインデックスの全文ダンプを取得できないように、lucene のデータベースを暗号化するにはどうすればよいでしょうか?

あなたはそうしない。ユーザーはキーと暗号化されたデータを持っているため、すべてにアクセスできます。難読化されたファイルにキーを埋め込むことはできますが、それはわずかな遅延を追加するだけです. それは確かに詮索好きなユーザーを締め出すことはありません. 再考する必要があります。

于 2010-06-30T11:59:37.250 に答える
3

ここでの問題は、ユーザーにデータを提供し、同時にそれを拒否しようとしていることです。これは基本的に別の名前の DRM 問題です。攻撃者 (ユーザー) は、アプリケーションの環境 (ハードウェアと OS) を完全に制御しています。このような状況ではセキュリティは不可能であり、難読化とセキュリティの錯覚だけです。

ユーザーが暗号化されていないデータにアクセスするのを難しくすることはできますが、それを防ぐことはできません。それはアプリを破壊することになるからです。おそらく最も近いのは、密閉されたハードウェアボックスを提供することですが、私見では使用できなくなります.

法的な観点からは、中途半端なセキュリティの幻想を作ることで十分かもしれないことに注意してください (たとえば、DMCA の反回避条項) - しかし、それは SO の範囲外です。

于 2010-06-30T12:09:30.157 に答える
2

技術的には、できることはほとんどありません。Lucene は Java で記述されており、Java コードはいつでも逆コンパイルするか、デバッガーで実行して、どこかに保存する必要があるキーを取得できます (おそらく、ユーザーに販売するライセンス キー内)。

あなたの唯一の選択肢は、法律 (またはユーザーとの契約) です。テキストデータは著作権で保護されているため、使用許諾契約の範囲外で使用する場合は、ユーザーを訴えることができます。

または、独自のテキスト インデックス システムを作成することもできます。

または、ニーズに合った市販のものを購入してください。

[編集] 暗号化されたインデックスを使用する場合は、独自のFSDirectory. SimpleFSDirectory例については、ソースを確認してください。

于 2010-06-30T12:08:43.917 に答える
1

True-cryptは私には確かな計画のように聞こえます。ボリュームをマウントして、あらゆる種類のクレイジーなやり過ぎの方法で暗号化し、他のファイルと同じようにアクセスできます。

いいえ、完全に安全というわけではありませんが、十分に機能するはずです。

于 2010-07-01T13:28:23.660 に答える
1

ユーザーがアクセスできるデータのみを含むインデックスを作成し、そのインデックスをデスクトップ アプリと共に配布してみませんか?

于 2010-06-30T12:29:46.737 に答える
1

一方向ハッシュ関数

平文を保存するのではなく、ハッシュを保存します。用語を検索する場合は、その用語を関数にプッシュしてからハッシュを検索します。データベースに一致するものがある場合は、サムズアップを返します。

スペースを節約するために誤検知を受け入れますか? ブルームフィルター。

于 2011-07-31T22:36:58.430 に答える