ユーザー名とパスワードを構成ファイル内にローカルに保存する winforms アプリケーションを作成しているため、アプリケーションを使用している人は、アプリケーションがサポートするさまざまなサービスにログインするたびに資格情報を再入力する必要がありません。パスワードを解読できることが絶対に必要なので、ProtectedData と Protect および Unprotect メソッドを使用してパスワードを安全に保存することにしました。これにより、データを保護する責任を Windows とエンド ユーザーに任せることが容易になり、キーなどについて心配する必要がなくなりました。
ここで、インストール間で設定を移動する機能をユーザーに提供したいと考えています。この好例は、多数の異なるアカウント設定のバックアップを保持したい場合や、別のコンピューターに移動したい場合です。
私はそれを次のようなものにしました:
- ユーザーが「アカウントのエクスポート」ボタンをクリックする
- アプリケーションは、保護解除を使用して保存された設定を復号化します
- アプリケーションは設定をプレーンテキストの「バックアップ」に書き込み、それがインポートされて新しいアカウントで再暗号化されます。
このすべては、ステップ #3 まで素晴らしい音です。ステップ 3 は、パスワードをプレーンテキストで配置するため、気になります。このようなシナリオでの資格情報のインポート/エクスポートのベスト プラクティスはありますか?それとも、エクスポートされたファイルを保護することをユーザーの責任にすることは「問題ない」と見なされますか? 私には、ユーザーが自分の Windows アカウントを適切に保護していると仮定すると、これは想定しても問題ないように思えます。設定ファイルのインポート/エクスポートを許可しないという考えを蹴散らしましたが、これは大きな不便のようです. 同様に、誰かが非常に多くのアカウントを保存しているため、手動で再入力するのに10年足らずかかるという、非常にまれなエッジケースに向けて構築することもできます.
そのようなことを経験したことがある人が、これに関するベストプラクティス/アドバイスを提供してくれるなら、本当に感謝しています. 私は、資格情報を保存することのすべての複雑さに対処しなければならないことにかなり慣れていません。