問題タブ [dpapi]
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.
oauth-2.0 - セルフホスト OWIN 認証サーバーの分離
承認サーバーとシグナル リソース サーバーとして構成された自己ホスト型の OWIN アプリケーションがあります。
私のクライアントは正常にベアラー トークンを取得し、signalR ハブへの後続の呼び出しで承認のために提示しています。
次のステップは、承認サービスを分離して、独自のホストで実行できるようにすることです。まず、承認サービス コードのみを含む別の自己ホスト型アプリを作成しました。私の開発マシンではまだすべてが 1 つのソリューションになっていますが、承認サービスと signalR リソースは別のプロセスでホストされています。
認証フローは引き続き正常に機能しています。トークンはリソース サーバーに到達していますが、signalR ハブから 401 無許可を取得しています。
ASP.Net Web API でこれを解決するための多くのサポートがあり、web.config ファイルの machine.config 値を同期します。しかし、それは私のアーキテクチャではありません。HttpListener の下で自己ホスト型アプリとして実行すると、別の暗号化 (既定では DPAPI) が使用されます。
自己ホスト型アーキテクチャでこれを解決することについては、あまり議論されていないようです。私の理論では、同じマシン上の異なるプロセスの下でも、DPAPI 復号化が失敗しているため、401 が表示されます。
これを解決するための最小限のアプローチがあるかどうか、または代わりに JWT を使用するために完全にリファクタリングする必要があるかどうかを把握しようとしています。
編集:セットアップを表示するのに役立つコードを追加する
c# - メインパスワードのみを暗号化するのではなく、すべての設定を暗号化するために DPAPI を使用しないのはなぜですか?
私のアプリケーションでは、さまざまな設定とパスワードを暗号化する必要があります。これまでのところ、次のように RijndaelManaged クラスなどでこれを行ってきました。
通常の問題は、passPhrase (および saltValue) をどこかに保存する必要があることです。passPhrase を次の方法で保存するために、次のように DPAPI Protect() および Unprotect() クラスに出会いました。
私の質問は次のとおりです: DPAPI を使用すると、暗号化方法のパスフレーズを安全な方法で保存できるようになりましたが、DPAPI を使用してすべての設定を直接暗号化しないのはなぜですか? これにより、意図されていない量のデータで DPAPI がいっぱいになりますか?
私の考えは、次のことをする代わりにでした:
私は次のことができます:
DPAPI を使用する場合、同じマシン (または同じユーザー) で復号化する必要があることはわかっていますが、これは私の場合は問題になりません。
どんな助けでも大歓迎です!
security - ユーザーを動的に作成し、DPAPI を使用する
一部のプロジェクトでは、次のことが必要です。
ローカル ユーザー アカウントを動的に作成します (このために、.NET フレームワークの UserPrincipal クラスを使用しています)。
そのユーザーになりすます (ネイティブの LogonUser (advapi32.dll) を呼び出すいくつかのクラスを作成しました)
DPAPI を使用して一部のユーザー データを暗号化します。ネイティブの CryptProtectData と CryptUnprotectData (crypt32.dll) を呼び出すクラスもいくつかあります。
ここでの問題は、ユーザーを動的に作成するときに、LogonUser を呼び出しても、ユーザー固有のフォルダーが作成されないことです。
DPAPI はこれらのフォルダーを検索しますが、フォルダーがそこにないため、呼び出しは失敗します。
ここで、手動でユーザー ログインを実行すると、それらのフォルダーが作成され、その後はすべて問題ありません。しかし、手動でログインせずに、これらのフォルダーを自動的に作成する方法が必要です。
それを行う方法はありますか?
c# - LocalMachine と CurrentUser の両方を同時に使用できますか?
データ保護 API スコープで LocalMachine と CurrentUser の両方を同時に使用するにはどうすればよいですか? セキュリティを強化したい。
c# - DPAPI (Data Protector API) を使用して、別のコンピューター上のデータの保護を解除する
(Data Protector API) を使用してDPAPI
データを保護および保護解除しています。ファイルからデータを読み取っています。
C:\Users\nandkishore.sharma\AppData\Local\Google\Chrome\User Data\Default\WebData.
WebData
同じコンピュータ(置かれている場所)でデータを復号化すると、ファイル( )からデータを読み取ることができますWebData
。しかしWebData
、別のコンピューター (ファイルが既に暗号化されている) からファイルを選択すると、自分のコンピューターでそれを復号化しようとすると、これを行うことができません。
このリンクを見つけまし たCryptProtectData機能によって暗号化されたデータを復号化する方法?
それは言う..
「世界中のどのコンピューターも、別のコンピューターで暗号化されたデータを復号化することはできません。」
上記のステートメントは本当ですか?
以下のリンクを読みましたが、問題は解決し ませんでした..2番目のコンピューターでデータを復号化できません
暗号化で (WebData
ファイルを参照して) 使用されるキーを取得して、復号化で同じキーを使用できるようにするにはどうすればよいですか?
これを解決するのを手伝ってください。
前もって感謝します..