0

Borland Delphi 7 で dBASE データベース ファイルを使用してアプリケーションを作成しています。

注:この質問はファイルセキュリティに関連していると思います。この質問ではdBASEのこと(TXTファイルと見なしてください)を忘れてもかまいません。

データベースには、アプリケーションからのみアクセスする必要があります。次に、暗号化する必要があります。残念ながら、dBASE はパスワード メカニズムをサポートしていないため、自分でファイルを暗号化する必要がありました (また、dBASE を使用する必要があります)。

データベースファイルを保護するためにどのようなアプローチをお勧めしますか?

簡単なものは次のとおりです。

  1. データベース ファイルを暗号化し、アプリケーションの EXE ファイルの近くに配置します。
  2. DeleteOnCloseアプリケーションが実行されると、(ハードコードされたパスワードを使用して) ファイルを復号化し、その結果をフラグとフラグを持つ一時ファイルにコピーする必要がありますNoSharingPermission
  3. 閉じるときに、アプリケーションは一時 dBASE ファイルを暗号化し、古い暗号化ファイルを新しいファイルに置き換える必要があります。

これはかなり安全なアプローチだと思います。しかし、2 つの大きな問題があります。

  1. 削除取り消しツールを使用すると、ユーザーは削除された一時ファイルを復元してアクセスできます。
  2. さらに悪いことに、アプリケーションの実行中にシステムが突然再起動すると、DeleteOnCloseフラグが失敗し、一時ファイルがハードディスクに残り、ユーザーはそれにアクセスできます。

少なくとも 2 番目の部分の解決策はありますか?

他の解決策はありますか?

4

2 に答える 2

1

また、 TrueCryptファイルベースのコンテナーを作成してマウントし、マウントされた暗号化ボリューム内に dBase ファイルを配置することもできます。TrueCrypt は (両方の意味で) 無料で、アプリケーションからコマンド ライン パラメーターを介してアクセスできます (開始前にマウント、終了前にアンマウント)。

于 2010-01-11T00:03:40.420 に答える
0

データベースで何をしているかによっては、実際に必要なレコードを復号化するだけで済む場合があります。たとえば、(実際のデータではなく) ハッシュ コードに基づいてインデックスを作成できます。これにより、データベースへのシークがより小さなデータ セットに削減されます。サブセット内の各レコードを復号化する必要がありますが、これはデータベース全体を復号化するよりもはるかに優れている可能性があります。

于 2010-01-10T23:55:51.153 に答える