デスクトップアプリケーションでのユーザーパスワードの保護
質問
Twitterクライアントを作成しています。ユーザーのログイン情報を保護するさまざまな方法を評価しています。
- ハッシュは明らかにそれをしません
- 可逆的な方法で難読化することは、指の後ろに隠れようとするようなものです
- プレーンなテキストが聞こえ、おそらく無差別です
- 毎回パスワードを入力するようユーザーに要求すると、アプリケーションが面倒になります
任意のアイデア?
解決
パスワードを暗号化するためにいくつかのOS呼び出しを行うことができます。
Windowsの場合:
- ファイルを暗号化できます(NTFSファイルシステム上)
- Cの DPAPI を使用
- を使用して、.NetでDPAPIを使用します。 ProtectedData クラス
他のヒント
CryptProtectDataは、この種の機密データを保存するためのWindows関数です。
http://msdn.microsoft.com/en-us/library /aa380261.aspx
例については、Chromeでの使用方法をご覧ください。
http://blog.paranoidferret .com / index.php / 2008/09/10 / how-google-chrome-stores-passwords /
Windowsの場合:DPAPI(ユーザーストア)を使用してパスワードを暗号化し、設定ファイルまたは他の場所に保存します。これはユーザーごとに機能します。同じマシン上の異なるユーザーは、異なる無関係な暗号化キーを持ちます。
どのプラットフォームですか?
* nixでは、ホームディレクトリのサブディレクトリにあるchmoded 400ファイルにプレーンテキストでパスワードを保存します。たとえば〜/ .subversionを参照してください。管理者は、プログラムをパスワードをキャプチャするハッキングされた独自のバージョンに置き換えるなど、ユーザーに好きなことを何でも行うことができます。したがって、ファイルを見ることができるという事実に害はありません。そのハードドライブを取り出す人もパスワードにアクセスできることに注意してください-これが問題である場合は、毎回ユーザーにパスワードを再入力させるか、このバージョンの* nixにファイル暗号化があるかどうかを確認してください。
Windows Proでは、パスワードを暗号化されたファイルに保存します。
Windowsアマチュアでは、* nixと同じ操作を行います。 [編集:CryptProtectDataは見栄えが良い、とAlerisが示唆しています。すべてのWindowsで使用できる場合、暗号化されたファイルをサポートするより高価なバージョンの問題のみを解決します。]
Symbianでは、パスワードをデータケージに保存します。 AllFiles権限を持つプログラムはまれであり、とにかく信頼されていると思われます。* nix管理者に似ています。
ケーキを持って食べることもできません。パスワードを保存する(除外した)か、保存しないで毎回入力する必要がある(除外した)。
優れた対称暗号化スキームがあれば、試してみる価値のない資格情報を解読するのが難しくなります。 そうでない場合、サービスがハッシュをネットワーク経由で送信するだけでよい場合、暗号化されたハッシュを保存できます。この方法では、復号化でさえ攻撃者をソリューションに近づけることはできません。 ただし、他のユーザーは真実です。データを保存すると、見つけることができます。 重要なのは、セキュリティと使いやすさのバランスを見つけることです。