0

ユーザーがアプリケーションを使用する前にログインする必要がある vb.net でプログラムを作成しています。Windows のインストール時の動作と同様に、プログラムのインストール時にメイン ユーザーが作成されます。

メイン ユーザーは、プログラムにユーザーを追加できます。パスワードを暗号化して保存する必要があることはすでにわかっています。私の質問は、ユーザー名とパスワードをどこに保存すればよいですか? レジストリ、分離ストレージ、または .config ファイル。他のユーザーは明らかにログインできないため、ユーザーがそのファイルを変更/削除できないようにしたくありません。また、このファイルは、コンピューターにログインするすべてのユーザーがアクセスできる必要があります。

コンピューターはインターネットへの接続が保証されていないため、ローカルに保存する必要があります。

ありがとう

4

2 に答える 2

2

実を言うと、誰かがファイルを探す意志を持っていれば、ファイルを見つけることができるので、ストレージはセキュリティに役立ちますが、私はファイル自体の内容に焦点を当てます.

アプリケーションのデータを暗号化されたファイルとして保存しようとすると、アマチュアの試みを止めることができますが、.net フレームワークを使用しているため、プログラムが逆コンパイルされ、対称暗号化アルゴリズムが役に立たなくなる可能性があります。

あなたの最善の策は、プログラムがオンになっているコンピューターに応じてシードを生成し、復号化に失敗した場合は、ホームに電話するか、ロックダウンすることだと思います.

別のオプションは、暗号化された (対称キーで暗号化された) ファイルとハッシュ ファイルを (おそらく別の場所に) 保存することです。ロードされたファイルのハッシュがハッシュ ファイルと一致しない場合、プログラムはホームを呼び出すことができます (呼び出すホームがある場合)。

これは単なるアイデアであり、実際にこのようなことを試したことはありません。

于 2011-04-18T14:57:57.583 に答える
0

マシン上で何らかの方法で Windows ユーザー/資格情報を使用できない場合、ファイルが削除/変更されるのを防ぐ絶対的な方法は実際にはありません。コンピューター上の誰もがメイン ユーザーと同じアクセス権を持っているためです。彼がプログラムを介してユーザーを追加するには、ファイルを変更する権限が必要です。

確実に行う唯一の方法は、メイン ユーザーに別のユーザー名でログオンさせ、そのファイル/フォルダーにファイル アクセス許可を設定して、メイン ユーザーだけがファイル (および他のユーザー) に対する変更アクセス許可を持っていることを確認することです。アカウントには権限を変更する権限がありません)。あなたの環境では機能しないと言っていましたが(これは?)、ユーザーを作成し、ユーザーが別の方法でログオンすることなく、コードを介して別の資格情報で実行できる場合があります。

私が考えることができる唯一のクレイジーな方法は、実行を開始すると、他のプロセスが書き込みのためにファイルを開くことができないように、共有セットでそのファイルへのハンドルを開いて保持するサービスをコンピューター上に作成することです。もちろん、メインユーザーがユーザーを追加できるようにするには、何らかの方法でトレーニングする必要があります。

于 2011-04-18T21:35:51.390 に答える