Winformsアプリケーションにパスワードを保存する方法は?



1 Answers

前述のとおり、Data Protection APIはこれを実行する良い方法です。 .NET 2.0以上を使用している場合は、P / Invokeを使用してDPAPIを呼び出す必要はありません。 フレームワークは、呼び出しをSystem.Security.Cryptography.ProtectedDataクラスでラップします。

Question

私はユーザーのメールボックスのストレージクォータを照会するために書いていたwinformsアプリケーションで、このようなコードをいくつか持っています。

DirectoryEntry mbstore = new DirectoryEntry(
      @"LDAP://" + strhome, 
      m_serviceaccount, 
      [m_pwd], 
      AuthenticationTypes.Secure);

私が試したアプローチ( SecureStringような)にかかわらず、リフレクタを使用するか、Process Explorerの文字列タブを使用して実行可能ファイルにパスワード( m_pwd )を簡単に表示できます。

私はサーバーにこのコードを入れたり、委任のような仕組みを使ってセキュリティを強化したり、サービスアカウントに必要な権限だけを与えることができます。

誰かがハッカーにパスワードを明らかにすることなく、ローカルアプリケーションにパスワードを保存するための合理的に安全な方法を提案することができますか?

私は正確なパスワードを知る必要があるので、ハッシングは可能ではありません(一致する目的のハッシュだけでなく)。 暗号化/復号化メカニズムはマシンに依存するため動作しません。




安全な文字列として保存し、安全な文字列をファイルに保存した場合(おそらくIsolated Storageを使用している場合は、平文のパスワードを紛失したときにそれを解読してmbstoreを作成する必要があります。 SecureStringまたはCredentialオブジェクト。






Related