私の ASP.NET Web アプリケーションでは、パスワードをデータベースに保存する必要があります。(これはログイン パスワードではなく、そのようなパスワードを提供するユーザーには目に見えるセキュリティ警告が表示されることに注意してください。) パスワードをデータベースに配置する前に、パスワードをスクランブルすることを考えていました。
だから私はこれを行うことを考えていました:
byte[] bytesToSave_Scrambled =
System.Security.Cryptography.ProtectedData.Protect(
System.Text.Encoding.UTF8.GetBytes(password), null,
System.Security.Cryptography.DataProtectionScope.CurrentUser);
問題は、このページによると、同じユーザー アカウントのみを使用するDataProtectionScope.CurrentUser
と、それを元にデコードできることです。DataProtectionScope.LocalMachine
もちろん、代わりに使用することもできますが、ドキュメントには安全性が低いと書かれています。
私の質問は、Web アプリが Web サーバー上で実行される場合、上記のスクランブリング方法の一貫性を確保するために、同じ Windows ユーザー アカウントで実行されますか?