問題タブ [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.
c# - IIS アプリケーションでの ProtectedData.Unprotect - IISRESET 後に機能しない
ローカル データベースから機密データを保存および取得する必要があります。このデータは Web アプリケーションによって使用されます。
上記のデータを保護するために、ProtectedData
クラスを利用することにしました。
IIS アプリケーションは、特定の AD ユーザー (詳細設定の ID プロパティ) を使用して実行されています。
IISRESET を実行するまで、すべて正常に動作します。この時点で、ID がクラスの目的で変更されたようで、ProtectedData
復号化できないデータが残っていKey not valid for use in specified state
ます。例外が発生しています。
私が使用しているコードは次のとおりです。
私のentropy
アプリケーションでは明らかに静的です。
どうしたの?DataProtectionScope.CurrentUser
名前が示すように、現在のユーザーを使用するという印象を受けました。これは、私の知る限り、アプリケーション プール ID である必要があります。IISRESET を実行すると、これが変更されたように見えるのはなぜですか?
vb.net - ユーザーレベルの DPAPI (WinForms) を使用して構成ファイルを保護する
app.config ファイルで接続文字列を保護したいと考えています。私はそれを行うためにこのコードを使用しています:
ただし、マシンレベルの DPAPI を使用していることに気付きました。ユーザーレベルの DPAPI を使用したいと思います。どうすればこれを実現できますか?
c# - Azure ワーカー ロールと OWIN を使用して SignalR をスケーリングする方法
SignalR は、Azure Web ロールを使用して驚くほどスケーリングします。ただし、Azure ワーカー ロール内でセルフホステッド OWIN プロジェクトを使用すると、複数のインスタンスが追加されると SignalR で問題が発生し始めます。記録として、私のプロジェクトではバックプレーンに Redis を使用しています。
Azure ワーカー ロール インスタンスを 1 を超える数に増やすと、クライアント接続がランダムに失敗し、"ConnectionId の形式が正しくありません" というエラーが表示されます。これは、負荷分散のために単一のクライアントのネゴシエーションが複数のサーバーにまたがる場合に発生すると考えられます。ネゴシエーションに参加している複数のサーバーがデータを解読できるとは思えません (DPAPI が隠蔽されていますか?)。
app.config で < machineKey /> validationKey と decryptionKey を設定しようとしましたが、違いはないようです。問題は残ります。この場合も、プロジェクトは Web ロール (IIS) として正常に機能しますが、ワーカー ロール (OWIN セルフホスト) としては機能しません。
これが DpapiDataProtectionProvider の問題であると仮定すると、プロバイダーが複数のサーバー/インスタンスで同じ暗号化/復号化の結果をレンダリングするようにするにはどうすればよいですか?
解決
SignalR (DpapiDataProtectionProvider) によって使用される既定の保護プロバイダーは、Azure ワーカー ロールのスケールアウトをサポートしていないようです。独自のサンプル プロバイダーを展開することで、SignalR/OWIN/Azure Worker をスケーリングし、ランダムな 400 HTTP/「接続 ID の形式が正しくありません」を受け取ることができませんでした。以下のサンプルは、トークンを保護/保護しないことに注意してください。
Owin の起動時にカスタム プロバイダーを挿入する:
c# - プレーン テキストと暗号化されたテキストがわかっている場合、DPAPI 暗号化で使用されるキーを導出できますか?
したがって、DPAPI と不明なキーで暗号化されたテキストがあり、暗号化されたテキストが表すプレーンテキストがあります。これから使用されるキーを派生させることはできますか?
encryption - RSA 2048 ランサムウェア
これは私の最初の投稿です!つまりね。今年の 2 月末、CryptoDefense (Cryptolocker のライバル) がインターネットを席巻しました。暗号化するすべてのフォルダーにテキスト ファイルが生成されるため、最初のテキスト ファイルのタイムスタンプを使用して PRNG をブルート フォースし、計算で管理可能な時間内にキーを生成することも計画しました。
今起こっていることは、私は最近、秘密の RSA キーが Windows キー ストアに格納されていることを発見し、その最初の文字を確認できるようになったことです。残りは DPAPI (Microsoft のデータ保護 API) によって保護されているようです。私の質問は次のとおりです。DPAPI を復号化するにはどうすればよいですか? もう 1 つは、この情報を使用して秘密鍵を再構築する方法はありますか?
encryption - Windows キー ストアから RSA キーを復号化するにはどうすればよいですか?
このパス: %APPDATA%\Roaming\Microsoft\Crypto\RSA
鍵はそこに保管されていますが、使用できません。HEX EDITOR で開くと、一部しか表示されず、残りの部分は CryptoAPI で暗号化されているようです。どうすれば復号化できますか?
注: 特にこのキーは、私が開発したアプリケーションによって作成されたものではありません。私はいくつかの調査を行いましたが、CryptoAPI は DPAPI を使用してそれらを保護しているようです。何か案は?
ありがとう!
winapi - DPAPI を使用するかどうかを設定するにはどうすればよいですか?
安全なストレージを担当する WIN API メソッドについて学びます。CryptoAPI と DPAPI について読みました:
「パブリック DPAPI インターフェイスは Crypt32.dll の一部であり、それをロードしたすべてのユーザー プロセスで使用できます。この DLL は CryptoAPI の一部です。」
だから私が使いたいときはからCryptProtectData
呼び出します。しかし、DPAPI を使用したい場合は、そこからも呼び出す必要があります。DPAPI を使用するかどうか、CryptoAPI を使用するかどうかを設定するにはどうすればよいですか?CryptProtectData
Crypt32.dll
CryptProtectData
Crypt32.dll
編集:DPAPIを使用していないものをどのように知ることができますか? また、DPAPI を使用するプログラムをどのように「言う」ことができますか?