15

どのルートを取るか、長所と短所は何ですか、どちらがより安全です。

1)AESキーを生成し、それを使用してデータを暗号化してから、RSAを使用してAESキーを暗号化し、暗号化されたデータと暗号化されたAESキーをファイルに保存し、RSAキーペアをKeyContainerに保存します。

2)または、DPAPI ProtectedDataクラスを使用してデータを暗号化し、ファイルに保存してから、使用したエントロピーProtectedData.Protect()をどこかに保存します。(おそらく、RSAで暗号化し、RSAキーペアをKeyContainerに保存し、暗号化されたエントロピーをデータを含むファイル?)

編集:詳細については、アプリケーションのファイルシステムの使用を保護する必要があります。したがって、アプリケーションがファイルシステムに保存するファイルはすべて暗号化する必要があります。このファイルは、同じアプリケーションまたは同じアプリケーションスタックの別のコンポーネントによって使用されている可能性があります。

4

4 に答える 4

4

ローカル アプリケーション データを保護するための暗号化スキームを探している場合、API の選択は、同じアプリケーションを実行している異なるサーバー間で暗号化されたデータを共有する必要があるかどうかによって異なります。

1 つのサーバーのみがデータにアクセスする必要がある場合は、DPAPI で十分です。セキュリティは、ユーザーの資格情報によって提供されます。このコンテキストでは、アプリケーション スタックを実行する資格情報になります。アプリケーションにハードコードされた追加のエントロピー (または「ソルト」) を提供してセキュリティを強化し、エンド ユーザーの資格情報だけに依存しないようにすることができます。実装は簡単で、キーのエクスポート/インポートに対処する必要はありません。

複数のサーバーが同じファイル/データにアクセスする必要がある場合は、RSA キー コンテナー方式の方が適しています。同じキーを複数のサーバーにエクスポートして、同じ暗号化ファイルを共有できます。キーは、回復目的でバックアップすることもできます。DPAPI にはそのようなオプションはありません。

どちらの方法も同様のスキームを使用し、最終的には両方のキーがユーザー資格情報で保護されるため、一方の方法のセキュリティは他方よりも優れているわけではありません。DPAPI は資格情報を使用して、使用する内部 RSA キーを保護し、Windows は資格情報を使用して RSA キー コンテナーへのアクセスを制御します。

于 2011-04-24T15:24:32.723 に答える
2

申し訳ありませんが、あなたの質問には十分な情報が含まれていないため、質問に対して適切な回答が得られません。アプリケーションのアーキテクチャと、アプリケーションが使用するデータの構造について詳しく説明する必要があります。

アプリケーションは Windows サービスですか、それともユーザー コンテキストで実行されている EXE アプリケーションですか? 暗号化するデータの所有者は誰ですか? アプリケーションですか? ユーザーですか? データはユーザー間で共有されていますか? データをローカルのハードディスクに保存しますか、それともサーバー (混在) に保存しますか? ユーザープロファイルの一部としてデータを保存しますか?

最も重要なのは、鍵をどこに保持する予定ですか?という質問です。問題は、鍵が自宅の鍵のようなものだということです。自分 (または親しい友人) だけが鍵にアクセスできるようにしたいのですが、他の人は誰もアクセスできないようにしたいのです。それにもかかわらず、ドアのマットの下など、鍵の近くのどこかに鍵が見つかることがよくあります。別の問題があるため、これを行います。キーを紛失した場合はどうすればよいでしょうか。すべての質問は「鍵管理」の一部です。

DPAPIは 10 年以上前のものです。その最大の利点は、ユーザーが所有するキーを保存するのに役立ち、ユーザーがキーを自動的に保持し、ローミング プロファイルを使用する場合にネットワーク上の別のコンピューターで暗号化されたデータを復号化できることです。同じ要件がある場合、DPAPI を使用すると利点が得られます。

一般的な回答で申し訳ありませんが、私の意見では、問題の解決策を見つけるための鍵は、1 つまたは別の API を使用しないことです。最も重要なことは鍵の管理です。アプリケーション データの暗号化を開始する前に、まず、いくつかの典型的なサポート問題への対応を含め、アプリケーションのキー管理について明確な想像力を持っている必要があります。

于 2011-04-25T12:35:58.953 に答える
2

過去に DPAPI を使用したことがありますが、非常に単純でした。RSAキーペアは、私にはかなり手動に見えます。ユーザー/マシン レベルに基づいて DPAPI 保護を使用できます。

DPAPI の MSDN リンク

于 2011-04-11T10:56:28.007 に答える
1

DPAPIは、復号化をマシンまたはそのマシンのユーザーにバインドされているキーに制限します。

AESとRSAを使用すると、そのような制限はありません...まったく異なるプラットフォームで復号化することもできます+ここでは、システムがどのように機能するかを知っています...DPAPIとは対照的です

あなたはおそらくこれを見てみたいと思うでしょう

于 2011-04-22T15:11:15.630 に答える