問題タブ [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.

0 投票する
3 に答える
56198 参照

security - Windows Vault 資格情報マネージャーから資格情報を保存および取得するにはどうすればよいですか?

Windows PC に平文のパスワードを安全に保存したい。現在、DPAPICryptProtectDataを使用して暗号化し、暗号化された BLOB をユーザーのローカル AppData のファイルに保存しています。

Windows 7 には、「一般的な資格情報」を含むさまざまな種類のログオンのログオン データを格納する資格情報マネージャー (コントロール パネル\ユーザー アカウントと家族の安全\資格情報マネージャー) である Windows Vault があります。一見すると、これはプログラムが資格情報を保存するのに適した場所のように見えます。ただし、そのための API を見つけることができませんでした。MSDN で認証関数のリファレンスを読みましたが、率直に言って迷ってしまいました。

プログラムから資格情報を保存および取得するための Windows Vault への API はありますか? また、ある場合、ドキュメントはどこにありますか?

0 投票する
1 に答える
1281 参照

excel - VBA で DPAPI (またはそれに類するもの) を使用できますか?

VBA に関する初心者向けの一連の質問のもう 1 つです。

VBA で Excel アドインを作成中ですが、アドインはローカル構成ファイルを使用します。
このファイルには、リモート サービスのパスワードが含まれている必要があります。
明らかに、このパスワードをプレーンテキストとして保存することは理想的ではありません。しかし、少なくとも構成ファイルでプレーンテキストのように 見えないように、テキストをエンコード/デコードできるアルゴリズムを探しています。

Windows DPAPIへの参照を見つけましたが、これが Excel VBA の適切なソリューションであるかどうかはわかりません。また、VBA 内からこの API を使用する方法もわかりません。.NET での使用に関する参照しか見つけられなかったからです。このプロジェクトでは Visual Studio を使用できません。

したがって、2 部構成の質問は次のとおりです
。1) VBA 内から DPAPI を使用できる場合、その使用例を教えてください。
2) VBA で DPAPI を使用できない場合、可逆的なエンコード方式でテキストを保存する方法について何か提案はありますか?

問題がある場合、ソリューションは Excel 2003 以降で機能する必要があります。

もう一度ありがとう。

0 投票する
1 に答える
288 参照

windows-phone-7 - この保護は安全ですか? (資格情報を dll に保存) DPAPI と C#

基本データを管理するアプリ (windows phone 7) を開発しています: 顧客データ (または連絡先) と注文

データベースにアクセスするための資格情報を保護したい。私は次のことをしたい:

xxx.dll

資格情報を dll に入れました (難読化)

zzz.dll

他の DLL (難読化もされています) では、次のようにします。

アプリケーションをインストールするとき: xxx.dll の資格情報を読み取り、それらを暗号化されたファイルに保存しました (DPAPI を使用)

この DLL (zzz.dll) には、復号化された資格情報を返す関数があります (DPAPI を使用)。この関数はアプリで呼び出されます

0 投票する
1 に答える
629 参照

asp.net - DPAPI は誰のパスワードを使用して暗号化しますか?

asp.net 構成ファイルを暗号化するために DPAPI を使用しています。DPAPI を簡単に読んだところ、暗号化を行うためのキーとして Windows パスワードが使用されていることがわかりました。質問は、誰の Windows パスワードですか?

asp.net Web アプリがあり、application_start イベントで構成ファイルの暗号化をフックすると、アプリケーション プール ID (ネットワーク サービス) のパスワードが使用されますか?

デスクトップ コンソール アプリがあり、このアプリを定期的に実行する Windows スケジューラがある場合、DPAPI は誰のパスワードを使用して構成ファイルを暗号化/復号化しますか?

0 投票する
1 に答える
1615 参照

c# - DPAPI で保護された資格情報のインポート/エクスポートを許可する方法

ユーザー名とパスワードを構成ファイル内にローカルに保存する winforms アプリケーションを作成しているため、アプリケーションを使用している人は、アプリケーションがサポートするさまざまなサービスにログインするたびに資格情報を再入力する必要がありません。パスワードを解読できることが絶対に必要なので、ProtectedData と Protect および Unprotect メソッドを使用してパスワードを安全に保存することにしました。これにより、データを保護する責任を Windows とエンド ユーザーに任せることが容易になり、キーなどについて心配する必要がなくなりました。

ここで、インストール間で設定を移動する機能をユーザーに提供したいと考えています。この好例は、多数の異なるアカウント設定のバックアップを保持したい場合や、別のコンピューターに移動したい場合です。

私はそれを次のようなものにしました:

  1. ユーザーが「アカウントのエクスポート」ボタンをクリックする
  2. アプリケーションは、保護解除を使用して保存された設定を復号化します
  3. アプリケーションは設定をプレーンテキストの「バックアップ」に書き込み、それがインポートされて新しいアカウントで再暗号化されます。

このすべては、ステップ #3 まで素晴らしい音です。ステップ 3 は、パスワードをプレーンテキストで配置するため、気になります。このようなシナリオでの資格情報のインポート/エクスポートのベスト プラクティスはありますか?それとも、エクスポートされたファイルを保護することをユーザーの責任にすることは「問題ない」と見なされますか? 私には、ユーザーが自分の Windows アカウントを適切に保護していると仮定すると、これは想定しても問題ないように思えます。設定ファイルのインポート/エクスポートを許可しないという考えを蹴散らしましたが、これは大きな不便のようです. 同様に、誰かが非常に多くのアカウントを保存しているため、手動で再入力するのに10年足らずかかるという、非常にまれなエッジケースに向けて構築することもできます.

そのようなことを経験したことがある人が、これに関するベストプラクティス/アドバイスを提供してくれるなら、本当に感謝しています. 私は、資格情報を保存することのすべての複雑さに対処しなければならないことにかなり慣れていません。

0 投票する
1 に答える
538 参照

windows - Windowsクレデンシャルローミング-パスワードで保護されたキーはどのようにADサーバーに送信されますか?

Windowsクレデンシャルローミングがどのように実装されているかを理解しようとしています。パスワード(CryptProtectData()へのオプションのエントロピー)で強力に保護されている証明書をローミングすることがわかりました。

証明書がインポートされたときにWindowsがパスワードのコピーをどこかに保持しない限り、これがどのように行われるかわかりません。%APPDATA%/ Crypto / RSA {UserSID}内のファイルを別のマシンにコピーすると、キーがユーザーのDPAPIマスターキーとオプションでパスワードで暗号化されるため、機能しません。

ProcMonを使用する以外に、これを理解するために他に何を試したり、調べたりする必要があるのか​​わかりません。これを理解するのに役立つポインタがあれば大歓迎です!

0 投票する
3 に答える
1692 参照

security - DPAPI Webファームの暗号化にRSAを使用するのはなぜですか?

DPAPIを使用して、ASP.NETWeb構成ファイルの接続文字列を暗号化しようとしています。しかし、Webクラスター(ファーム)にRSAとDPAPIのどちらを使用するか混乱しています。次のMSDNリンクは、ASP.NETアプリをWebファームに展開する場合は、RSAプロバイダーを使用する必要があることを明確に示しています。

http://msdn.microsoft.com/en-us/library/ms998280.aspx

http://msdn.microsoft.com/en-us/library/ms998283.aspx

しかし、Webファーム内のすべてのマシンでDPAPIを使用するとどのような問題が発生する可能性があるのか​​わかりません。基本的に、すべてのサーバーで同じ操作を実行し、各マシンで新しい「暗号化された接続文字列」を作成できます。なぜこれが機能しないのですか?

0 投票する
2 に答える
1280 参照

c# - DPAPI でデータを保護しようとするとアクセスが拒否される

Windows 8 で ac# .net 3.5 アプリケーションを開発しています。

DPAPI を使用してデータを暗号化する必要があります。System.Security.Cryptography.CryptographicException メッセージ: アクセスが拒否されました。

DataProtectionScope.CurrentUser を DataProtectionScope.LocalMachine に変更すると、問題なく動作します。

現在のユーザーが DAPI 暗号化を実行するためのアクセスを誰かが拒否したようです

この問題を解決するにはどうすればよいですか?

失敗するアプリケーションは、現在ログインしているユーザーで実行されているコンソール アプリケーションです。

昇格された権限を使用してアプリケーションを実行すると、アクセスが拒否されて失敗しました。

ログインパスワードをリセットしようとしましたが、問題は解決しました。

どうすればそのようなことが起こりますか?

0 投票する
2 に答える
1806 参照

.net - DPAPI と ProtectedData.Protect() は .net 4 でディスク イメージ/クローンをどのように処理しますか?

.net v4 の System.Security.Cryptography.ProtectedData() および UnprotectData() メソッドを DataProtectionScope.LocalMachine スコープで使用して、ファイルを単一のマシンでのみ暗号化/復号化できるようにするというアイデアをテストしています。これが私がやっていることの一般的な考えです...

これを行うときに期待される動作が得られることを確認するために多くのテストを行いましたが、同じマシン上のすべてのユーザーが上記のメソッド呼び出しを使用してファイルを暗号化/復号化できるという点で完全に機能しているようです。

私の質問は、誰かがこのメカニズムを使用して暗号化されたファイルを含むシステムのディスク イメージまたはクローン (Acronis、Ghost などを使用) を作成し、そのイメージを別のマシンに復元するとどうなるかということです。(一例として、IT 部門が 1 つのシステムを事前にロードし、それが同一のハードウェア構成を持つ多数のマシンのベース イメージになります)。別のハードウェアに復元された OS は、「元の」システムで暗号化されたファイルを復号化できますか? ハードウェアが異なるために復号化が失敗することを願っていますが、暗号化を実行するために必要なすべての情報がレジストリまたはファイル システムに存在する場合、復号化が機能することは理にかなっています。

明らかに、私はこれを自分でテストすることができましたが、今はそれを行うリソースが実際にはなく、他の誰かがすでに答えを知っているかどうかを無限に探しています. どんなアドバイスでも大歓迎です!

0 投票する
2 に答える
6221 参照

c# - データ保護 API (DPAPI) に関する情報

私は現在、パスワードがユーザーから取得され、データベース (SQL サーバー) に保存される ac# mvc Web アプリケーションを作成しています。パスワードをハッシュする方法が必要です。

Data Protection API (DPAPI) を使用することが推奨されています。私はそれに慣れておらず、インターネットでの調査から、それに関する情報はほとんどありません。

詳細については、誰かが方向を示すことができますか? または、設定方法や操作方法などの概要を教えてください。