2

ユーザーのメール アカウントの受信メールと、Twitter アカウントのツイートを監視するアプリケーションを作成したいと考えています。したがって、ユーザーは自分のログイン資格情報を提供する必要があります。私の疑問は、この機密データをどこにどのように保存するかです。私は自分のアプリケーションがユーザーにこれらのことを繰り返し尋ねるのを煩わせたくありません。

さらに、これらのデータを暗号化して保存する必要がある場合、アプリケーションで使用しているキーをどのように保護すればよいでしょうか?

4

4 に答える 4

4

暗号化のポイントは、平文の秘密性をより小さな鍵の秘密性に依存させることです。

この場合、キーを保存する方法もないため、暗号化だけでは役に立ちません。

代わりに、サード パーティによって (パスワードを使用して) 管理されている既存のシークレットを使用し、それを使用してキーを派生させる必要があります。

Windows では、DPAPI を使用できます。DPAPI は、最終的にユーザーのログイン パスワードによってサポートされます。
ユーザーがパスワードを忘れた場合 (または別のアカウントから変更された場合)、データは回復不能に失われます。

これは、そのユーザーとして実行されているコードに対して防御しないことに注意してください。
何を防御しようとしているのかを決める必要があります。

于 2013-05-27T20:59:26.440 に答える
1

本当に必要な場合 (良い考えではありませんが...)、たとえば Firefox のようにパスワード用の暗号化されたストレージを作成することをお勧めします。ユーザーはマスターパスワードでパスワードを保護します。

于 2013-05-27T20:43:05.587 に答える
0

答えはどこにもありません。暗号化された形式であっても、パスワードを保存しないでください。「正しい」方法は、おそらく同様の Web アプリケーションの動作をシミュレートすることです。実際、Twitter にログインする場合は、[remember me] チェックボックスをオンにすると、次回から Twitter がパスワードを要求することはありませんよね? それはどのように実装されていますか?

通常、特別なトークンはクライアント側の Cookie に保存されます。Cookie はサーバーに送信され、認証に使用されます。Cookieには有効期限があり、期限が過ぎると自動的に削除されます。

デスクトップ アプリケーションのより良い解決策がない限り、このメカニズムを使用することをお勧めします。

于 2013-05-27T20:37:42.283 に答える
0

アプリケーション全体のパスワードを使用し、そのパスワードを使用して他のすべてのパスワードを暗号化し、アプリケーションがtwitterが必要であると言うと、そのパスワードを使用して復号化すると思います...さらにマスターパスワードのソルトハッシュを取得してディスクに保存します。

于 2013-05-29T16:41:24.610 に答える