0

C# と SQlite データベース (機密情報を含む) を使用してデスクトップ アプリケーションの開発を開始したところです。これは任意の PC にローカルにインストールされます。データベースのパスワードと sql コマンドを安全な場所に保存したいと思います。これについていくつか質問があります。

  1. SQLite データベースはどの程度安全だと思いますか? 暗号化を追加することで、ヘッダーも含めてファイル全体が暗号化されることを読みました。どのくらい安全だと思いますか?
  2. パスワードを保存するには、多くの選択肢があります (いくつかは私が考えていた単純な提案かもしれません): a) パスワードと SQL コマンドを dll ファイルに保存し、それを難読化する。しかし、これを解読しようとしたり、たとえば Olly Debugger を使用して検索したりした人はいますか? b) app.config ファイルでの暗号化、カスタム暗号化。しかし、私はいくつかの記事を読みましたが、暗号化された接続文字列はクラック可能のようです...ソースコードと屈折することができます)。
  3. アプリケーションが難読化され、データベースが暗号化されている場合。パフォーマンスの問題があると思いますか?

ありがとうございました。

4

1 に答える 1

0

防御しようとしているのは何なのか、何のために防御しようとしているのかを自問する必要があります。純粋にクライアントにインストールされたアプリケーション、特に管理対象のアプリケーションで実行できることはすべて、非常に簡単にクラックできます。ドングルはよりクラックプルーフですが、見返りが十分に大きい場合、経験豊富なクラッカーを止めることはできません。また、ドングルは高価であり、ユーザーとディストリビューターにとってお尻の痛みです. アプリケーションを保護する唯一の信頼できる方法は、アプリケーションの機密部分を独自のサーバーで実行することです。あなたの場合、データベースはサーバー上に存在する可能性があり、個々のパスワードを発行したり、IPアドレスを確認したり、クエリレートを制限してスクレイピングを阻止したりできます.

技術的な知識がほとんどない人による偶然の関心からデータベースを保護することが唯一の目的である場合、 OTOHは、データベース暗号化のスキームと、構成ファイル内のプレーンテキストよりも複雑なパスワードストレージのスキームがうまく機能します。

于 2013-02-08T02:08:41.663 に答える