1

データベースからデータを読み取る必要があるデスクトップ アプリケーションがあり、どちらもクライアント コンピューターにインストールされています。

クライアント アクセスを拒否し、データを保護するには、データベース内のデータを暗号化する必要があります。

暗号化をサポートできるデータベースの種類を知る必要があります。一部のテーブルのデータ量は非常に大きくなり、効率も必要になるためです。

これについて Web で読んだことがありますが、おそらく SQL Server Compact Edition が適切な選択になるでしょう。

誰かがこの点で私を助けることができますか?

ありがとう

4

5 に答える 5

2

決定的な攻撃者が復号化キーにアクセスしてデータベースにアクセスするのを防ぐことはできません。これは実質的にコピー防止スキームであり、それらはすべて壊れています。


更新:質問には、「クライアント アクセスを拒否し、データを保護するために、データベース内のデータを暗号化する必要がある」と記載されています。クライアントがデータベースにアクセスできる任意のアプリケーションにアクセスできる場合、クライアントはアプリケーションが使用するキーにアクセスでき、アプリケーションをバイパスしてデータベースに直接アクセスできます。

避けられない論理に魅力がない場合は、音楽、ゲーム、およびその他のデジタル資産を保護しようとして失敗したコピー防止スキームの逸話的な証拠を検討してください。

于 2009-05-22T19:12:58.360 に答える
2

SQL Server 2008 には、透過的なデータ暗号化と呼ばれる機能が含まれており、必要なことを実行できます。Compact Edition にこの機能が含まれているかどうかはわかりません。これらのキーワードを少しグーグルで検索すると、開始できるはずです。私は通常、SQL Server の使用を推奨しませんが、この場合、他の DB ベンダーの同様の機能を認識していません (ただし、存在する必要があります...)。

とはいえ、データを暗号化することで何を得たいと考えていますか? これが完全にクライアント側である場合、クライアントはデータを復号化するためのキーを取得します。せいぜい、人々がデータベースの内容にアクセスするためのわずかなハードルを作っているだけです。意味のある定義では安全ではありません。

于 2009-05-22T18:15:08.260 に答える
1

SQLite には、アプリケーションが暗号化されたデータベース ファイルを読み書きできるようにする暗号化拡張機能 (SEE) があります: http://www.hwaci.com/sw/sqlite/see.html

この DB は、デスクトップ アプリケーションに適している可能性があり、広く使用されています。たとえば、FireFox は内部で使用していると思います。

于 2009-05-22T18:14:45.810 に答える
1

SQL Server CE は、暗号化をまったくサポートしていません。ホスト OS の暗号化機能を使用してデータベース ファイルを暗号化することは、せいぜい可能です。ファイル内のページ X を読み取るには、すべてのページ 1...X-1 を復号化して、適切な状態の暗号化キーを取得する (適切な CBC ブロック状態に到達する) 必要があるため、ファイル レベルの暗号化はデータベースでは機能しません。一方、BitLocker はファイル内のページを個別に復号化/暗号化できるため、問題なく動作します。ただし、BitLocker はパーティション レベルのオプションであり、ファイル レベルではありません。これらの一般的な考慮事項は、関連する製品 (SQL CE、SQL Express、MySQL、Access など) に関係なく、データベース ファイル全体を暗号化するすべての計画に適用されます。

SQL Server には、データベース レベルの暗号化があります。最も簡単に使用できるのは TDE ( Transparent Data Encryption )ですが、これには Enterprise Edition が必要です。もう 1 つのオプションは、暗号化機能を使用して自分で暗号化を管理することです。使い方は簡単ではありませんが、無料の Express エディションで利用できます。

于 2009-05-22T18:17:29.317 に答える
0

SQLCipherをお勧めしますか? これは、透過的なページ レベルの暗号化をサポートする SQLite の無料のオープン ソース実装です。これは SEE に似ており、活発に開発されており、実装の一部に OpenSSL を使用しているため、多数の異なる暗号を実験的にサポートしています。完全な開示: 私は開発者の 1 人です! それがどのように機能するかの基本的なアイデアを提供するiPhoneアプリケーションでの使用に関するチュートリアルがあり、いくつかの関連トピックを拡張するコメントスレッドがあります. 明らかに、Visual Studio での使用は XCode とは少し異なりますが、リンクを接続して Windows 環境で使用できるはずです。

于 2009-06-29T14:31:22.703 に答える