3

アプリケーション自体のみがアクセスできるローカル システム (Windows XP) にパスワードを保存することはできますか?

私の本能的な答えは「いいえ」です。何らかのハッシングや暗号化が使用されたとしても、ソース コードが利用可能である限り、決心したシーカーは常にこれを使用してパスワードを取得できると思います。

私は、ソフトウェアを使用するたびにパスワードを入力する必要がないように、パスワードをディスクに保存するオプションをユーザーに提供したいと考えている個人的なオープン ソースの趣味プロジェクトに取り組んでいます。保存できるパスワードの一例は、ネットワークのプロキシ サーバーでの認証に使用されるパスワードです。

スタック オーバーフローに関するいくつかの関連する質問があり、最も適切な解決策は、DPAPI のようなオペレーティング システム サービスを使用するように思えます。

パスワードがユーザー入力なしでソフトウェアによって取得可能であり、ソース コードがオープン ソースである限り、パスワードは (適切に技術的かつ意図的に傾向がある) 通行人によって常に取得可能であるという基本的な前提は正しいですか?

4

4 に答える 4

6

Pidgin 開発者の見解については、ここで読むことができます: Plain Text Passwords .

于 2009-01-21T01:13:34.243 に答える
2

パスワードがユーザーの入力なしでソフトウェアによって取得できる場合、そのパスワードは (適切に技術的かつ意図的に傾向がある) 通行人によって常に取得可能になります。オープンソースかクローズドソースかは、関係する労力にのみ影響します。

于 2009-01-21T01:15:32.943 に答える
2

UserData モードで DPAPI を使用すると、マシン上のアカウントのみが暗号化されたデータにアクセスできるようになります。

ログイン資格情報に基づいてマスターキーを生成し、それを暗号化に使用します。

于 2009-01-21T01:15:45.800 に答える
0

もちろん、パスワードを安全に保存するプログラムを作成できます。

AES を使用すると、プログラムで AES キーを生成し、そのキーをオペレーティング システムの保護領域に格納できます。WinXP では、これは DPAPI で暗号化されたレジストリです。したがって、キーにアクセスする唯一の方法は、マシンに物理的にアクセスすることです。

AES キーを生成するときは、暗号的に安全な方法で行う必要があります。RAND を使用するだけでは機能せず、ランダムな文字列も生成されません。

オープン ソースはセキュリティとはほとんど関係がありません (私の意見では)。ソース コードのリバース エンジニアリング ツールが高度なレベルにあることを考えると、クローズド ソース ソリューションを使用していたとしても、コードを詮索しようと決心した人々がそうする可能性があります。

選択した暗号化スキームを使用している間は、ベスト プラクティスのガイドラインに従うようにしてください。あなたのコードがより大きなコミュニティによってオープンに見られることは、実際にはあなたのコードをより安全にするだろうと私は主張します。脆弱性と脅威は、より多くの聴衆がコードを調べているため、より早く特定される可能性があります。

于 2009-01-21T01:16:40.710 に答える