同じマシンの他のユーザーがプログラムにアクセスできてもアクセスできないように、ユーザーパスキー (サーバーに送信するためにクリアテキストのままにする必要があります) を保存したいと考えています。これを行う最善の方法は何ですか (プラットフォームに依存しないのが最適です。2 番目はプラットフォームに依存する小さなセクション (たとえば、いくつかの機能getCurrentUserSecret()
) であり、最後は Windows Data Protection API などの完全にプラットフォームに依存するソリューションです)。
質問する
88 次
1 に答える
1
クリア テキストで送信する必要があるため、問題のユーザーのみがファイルへの読み取りアクセス権を持つ場所に、クリア テキストで保存しないでください。暗号化を使用しても、管理者/ルートが回避できない方法で問題を解決する方法はないと思います(たとえば、ユーザーに別のパスワードを入力して、保存されたクリアテキストパスワードを復号化する場合を除きます)。
コメントの編集:ログイン時に代替の「ハッシュされた」パスワード値を計算し、それをメモリに保存するようなことをするOSを知りません。たとえそうであったとしても、ルートはそのメモリにアクセスしてハッシュ値を取得することができ、OS はそのようなメモリのチャンクがスワップにコミットされないように特に注意する必要があります。
于 2013-05-10T23:01:49.493 に答える