1

私のコードはIMAPおよびSMTPサーバーに接続して、定期的に(現在は約3分ごとに)電子メールを送受信する必要があります。一般的なユーザーフローは次のとおりです。

  1. ログイン
  2. IMAPとSMTPの詳細(emailIdとパスワードを含む)を入力して、電子メールを統合します。
  3. データに移動

バックグラウンドで、IMAPサーバーから定期的に電子メールをプルするクォーツスケジューラーを実行します。Web UIとクォーツスケジューラは別々のVMで実行され、RESTで相互に通信します。

このようなシナリオでユーザーの電子メール資格情報を保護するための良い方法は何でしょうか?ユーザーにパスワードを再度尋ねたくないので、一方向のハッシュは役に立ちませんが、IMAPで接続するためのクレデンシャルを提供する必要があります

4

2 に答える 2

1

もちろん、パスワードが安全であることを確認する最善の方法は、「元のパスワードに戻らない」ことですが、それはこの質問の範囲外です:-)

そうは言っても、最善のオプションは、サーバーにのみ存在する(ただし、アプリと一緒にデプロイされない)秘密鍵を使用して、アプリケーションコード側でパスワードを暗号化することです。Javaの暗号化ツールであるJasyptをご覧ください。また、キーのパスフレーズを2つの部分に分割することを検討することもできます。1つはプロパティファイル内の構成ファイルからのもので、もう1つはおそらくデータベース自体からのものです。

于 2012-07-16T11:51:57.687 に答える
0

アプリケーションがクライアントのマシンで実行されている場合は、ユーザーが選択したマスターパスワードを使用してパスワードを暗号化します。これにより、ユーザーはアプリケーションをロックダウンできます。

アプリケーションがサーバー上で実行されている場合は、パスワードがHTTPS経由で送信されていることを確認するか、最小限、非対称公開鍵でパスワードを暗号化してサーバー上で復号化します。

プレーンテキストでの保存を防ぐために、秘密鍵を使用してAESまたはその他の適切な暗号化アルゴリズムで暗号化されたパスワードを保存します。

于 2012-07-16T18:17:11.307 に答える