問題タブ [securestring]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c# - LogonUser での SecureString の使用
学習目的で、私は独自の Active Directory クライアントを作成しています。アカウントのロック解除やパスワードのリセットなどのコマンドを実行するには、管理者アカウントとパスワードを入力しWindowsIdentity.Impersonate
、管理者アカウントとしてコードを使用して実行する必要があります。プログラム全体でパスワードを何度も使用する必要があるため、パスワードを保護するためのオプションについて疑問に思っています。
私が理解していることSecureString
から、パスワードを保存するために使用できます。しかし、管理者アカウントとしてコードを実行するには、 を使用しており、それを使用するには、 ではなく通常のトークンを必要とするWindowsIdentity.Impersonate
トークンを取得する必要があります。LogonUser
string
SecureString
だから私はしなければならないでしょう:
起動時にログイン
入力を
SecureString
入力をクリア
その後、昇格を必要とする関数を実行したい場合:
以前に作成
SecureString
したものをstring
変換された文字列を
LogonUser
変換文字列をクリアします
null
コマンド実行
LogonUser
オブジェクトをクリア
これはこれにアプローチする正しい方法ですか?SecureString
を使用するために変換する必要があるのは奇妙に思えstring
ます...目的を無効にし、変換中にパスワードをより脆弱なままにしてしまうようです。
編集: LogonUser の名前を修正
c# - SecureString の内容を Response ストリームに書き込むにはどうすればよいですか?
Asp.net MVC 5 アプリケーションでは、モデルを介してビューに SecureString が渡されます。最初に文字列に変換することなく、その SecureString の内容を Response ストリームに書き込みたいと思います。どうすればこれを達成できますか?
powershell - 安全な文字列をプレーン テキストに変換する
私は PowerShell で作業しており、ユーザーが入力したパスワードをプレーン テキストに正常に変換するコードがあります。
元に戻す方法をいくつか試しましたが、どれも適切に機能していないようです。最近では、次のことを試しました。
これもエラーになります。
これに役立つ方法を知っている人はいますか?
c# - SecureString 復号化で実行可能ファイル間で異なる結果が得られるのはなぜですか?
proxy.exeでは、次の方法で安全な文字列を作成しています。
次に、main.exeで、次の関数を使用して復号化しています。
問題は、返された文字列が空であることです。 main.exe内の最初の文字列を暗号化しない限り、返された復号化された文字列は実際には "8charPwd" です。なぜこうなった?SecureString 暗号化は実行可能ファイルにバインドされていますか?
powershell - 連続する SecureString ハッシュが一致しない
暗号化されたパスワードが .ps1 スクリプトに保存されています。新しい環境でスクリプトをセットアップする場合、ユーザーはスクリプトの開始時にこのパスワードを手動で構成する必要があります。ユーザーがその方法でスクリプトを実行できるようにスイッチ パラメーターを設定し、必要なハッシュをユーザーに提供します。ただし、タイプミスなどがないことを確認するためにパスワードを 2 回入力するように求められた場合、パスワード ハッシュを一致させることができません。たとえば、PowerShell でこれを2 回連続して手動で入力すると、まったく同じパスワードを入力しても異なる結果が得られます。
これは、-Key
または-SecureKey
パラメーターの有無にかかわらずです。ユーザーにパスワードの入力を求めるにはどうすればよいですか (一致することを確認するために 2 回)、一致する場合はパスワード ハッシュを出力しますか?
c# - データベースに格納されている SecureString パスワード
の基本的な部分を誤解していると思いSecureString
ます。string
が不変であり、パスワードまたは機密データがヒープ上でクリア テキストとして検出されることを理解しています。
私が理解するのに苦労しているのはSecureString
、データベースでハッシュ化されたパスワードを検証する必要があるクライアント アプリケーションでどのように使用すればよいですか?
これが私のコンテキストです:
- WPF クライアント アプリケーションを使用しています。
- ローカル SQL データベースを (クライアントのマシン上に) 持っています
- パスワードはハッシュ化され、データベースに保存されます。
- ユーザーが自分の WPF アプリケーションにログインしようとしています
- PasswordBox コントロールは
SecureString
、プロパティを介してパスワードを格納しますSecurePassword
。
それで?最初に文字列にキャストせずにハッシュするにはどうすればよいですか?SecureString
これまでに受け取ったすべてのアドバイスは、 に変換SecureString
する拡張メソッドを作成しString
、それをハッシュしてから、検証のために db に送信することです。しかし、これは演習全体を打ち負かします!
SecureString
上記のコンテキストでは役に立たないことを受け入れて、プレーンを使用する必要がありstring
ますか?