2

現在、.NET 4.0 C# 環境で署名/検証を実装する最善の方法を理解しようとしています。

私の要件は、自分のシステム内で 1 人の「ユーザー」としてデータに署名できるようにすることです。後で、そのデータは消費者によって検証される必要があります。

これを達成するために、私は証明書を使用しようとしていますが、これが私が苦労し始めるところです。私の混乱の1つの側面は、DPAPIを証明書管理に使用できるとアドバイスされたことですが、DPAPIドキュメントを読むと、ローカルホスト/ユーザーの任意のデータを保護/保護解除する方法しか提供していないようです. このデータはたまたま秘密鍵である可能性がありますが、特に証明書を扱うわけではありません。

最初の質問は、DPAPI は何らかの形でローカル証明書ストアまたはその他の証明書管理ソリューションにリンクしていますか?

コードが証明書を見つける必要がなく、代わりに、(データ ソースで) 署名されるか (コンシューマーで) 検証される便利な API にデータを渡すだけであることが望まれました。

コメントをお待ちしております。

4

1 に答える 1

1

DPAPI は、同じ Windows ユーザー アカウントでのみ復号化されるデータを暗号化するために使用されます。対称暗号化アルゴリズムを使用するため、必要な署名機能を提供できません。

署名機能を提供したい場合は、公開鍵と秘密鍵のペア (証明書で配布された公開鍵を使用) に基づく署名アルゴリズムを使用するのが通常は適切な方法です。.NET BCL は、署名と検証の部分 (ローカル証明書ストアからのキーの使用を含む) の機能を提供しますが、キーの配布側では役に立ちません。

于 2012-01-20T15:19:25.117 に答える