0

基本的に自分の認証局として機能する必要がある C# で記述されたアプリケーションに取り組んでいます。データ フローは次のようなものです。

  • エンド ユーザーは公開鍵と秘密鍵のペアを生成し、身元の証明と、公開鍵を使用した何らかの証明書要求を私に送信します
  • アプリが ID を検証します
  • 検証が完了すると、アプリはローカルの自己署名ルートに基づいて X.509 証明書を生成し、ユーザーに送信します。
  • ユーザーは証明書を使用してファイルに署名し、ファイルをアプリに送信します
  • アプリは署名に対してファイルを検証し、結果を SQL Server に格納します。

私の質問:

  • 外部 CA に依存せず、コマンド ライン ユーティリティを呼び出したり、COM オブジェクトを使用したりせずに、上記のように X.509 証明書を作成して使用する方法を説明するチュートリアルまたはコード例を知っていますか? 私はX509Certificate2クラスを見てきましたが、MSDN の例は私が求めているものを示していません。
  • SQL Server 2008+ を使用して証明書の処理を行うことはできますか? おそらく と を使用CREATE CERTIFICATE FROM FILEしていBACKUP CERTIFICATEますか?
  • Windows の標準ライブラリでできない場合は、C# の Bouncy Castle ライブラリでできますか? もしそうなら、いくつかの良いコード例はありますか?
4

2 に答える 2

3

Bouncy Castle を使用した certgen の簡潔な例

http://netpl.blogspot.com/2012/12/how-to-create-x509certificate2.html

また、xml ドキュメントの署名と検証についてブログを書いています。

http://netpl.blogspot.com/2012/12/interoperable-xml-digital-signatures-c_4247.html

于 2013-01-01T12:01:20.087 に答える
1

コマンドラインユーティリティの使用について気が変わると思いますが、使用しないと仮定すると、まだ実行していないため、答えはわかりませんが、ここにいくつかのヒントがあります。

私はこれが弾力のある城C#ライブラリで行うことができると確信しています。ただし、ライブラリは基本的に文書化されていません。私がすることは、最初に以前にダウンロードすることですbouncycastle Javaライブラリのバージョン(バージョン1.45など)。以前のバージョンをダウンロードする理由は、現在のC#ライブラリにより類似しているためです。Java APIは、1.47リリースの時点でいくつかの根本的な変更が加えられました。Javaライブラリをダウンロードする理由は、ほとんどの機能とクラスが両方で同じであり、JavaAPIには少なくともWebブラウザで閲覧できるJavadocが含まれているためです。C#ライブラリでコーディングするときは、ライブラリのJavadoc、Javaソースコード、およびC#ソースコードを常に手元に置いています。これは恐ろしいことのように聞こえますが、それほど悪くはありません。C#ソースコード(およびJavaも)は非常に読みやすく、よく書かれているため、進歩を遂げることができます。

ユーザーの証明書要求は、PKCS10証明書要求である必要があります。使用すべきクラスがありOrg.BouncyCastle.Pkcs.Pkcs10CertificationRequestます。コンストラクターを使用してPkcs10CertificationRequest(byte [])、このクラスのインスタンスを作成します。このクラスのスーパークラスは、インスタンスを返すOrg.BouncyCastle.Asn1.Pkcs.CertificationRequestメソッドを持っています。これを使用して証明書要求の一部を抽出し、Wiktorの回答を使用してX509証明書を作成できます。GetCertificationRequestInfoCertificationRequestInfo

于 2013-01-02T15:09:23.837 に答える