質問

私は次のシナリオに苦労しています:

  1. XML-Messageが作成され、Mozillaのwindow.crypto.signtextを使用してデジタルで署名されます。署名後、メッセージと署名はWebサービス(.NET)を介してサーバーに送信されます。この時点まではすべて問題ありません。

  2. サーバーでは、XMLを別のXML-Documentに含めて、公開されます。署名は、非控除を付与するためにも公開する必要があります。

Q:分離したPKCS#7をXML-DSIG(.NETフレームワーク内の機能)に変換するスムーズなオプションはありますか?

Q2:外部プラグインを使用せずに、すでにクライアント側にXML-DSIGを作成することは可能ですか?

あなたの助けのためのtnx!

アロイス・ポーリン

役に立ちましたか?

解決

XMLとPKCS#7の両方のデジタル署名形式の性質により、一方から他方に変換することはできません。

非常に単純化された説明では、署名 PKCS#7 フォーマットには、他のものの中でも、データダイジェストとOID(オブジェクト識別子)を含むDigestINFOと呼ばれる特定のデータ構造が含まれており、ユーザーの秘密キーで微分されています。 xml-dsig Formatは、暗号化アルゴリズムの最終ステップ(ユーザーの秘密キーを使用)を適用します。元のXMLデータと特定のXML-DSIGデータ構造の消化から計算された異なるデータ値に適用されます。したがって、両方の暗号化された値は同じではないため、ユーザーのプライベートキーにデータに署名することにより、XML-DSIG署名を生成することのみが可能です。

その説明から、あなたの最初の質問への答えは 「いいえ、スムーズな選択肢はありません。まったく不可能です」.

したがって、唯一のオプションは、クライアント側でXML-DSIGを直接生成することです。標準のJavaScriptを使用しては不可能ですが、Firefoxのwindow.crypto(PKCS7デタッチされた署名のみを生成するだけです)ではありません。私の会社で(www.isigma.es)、アプレットを使用することにより、それはデジタル署名業界で一般的なソリューションであることを解決します(多くの商業的およびいくつかのオープンソースソリューションもあります)。ブラウザプラグインが必要ない場合、それはあなたの場合のオプションではないかもしれません。

Capicom(Microsoftセットアップで使用できるWindowsベースのアクティブ/Xコンポーネント)は、XML-DSIGを生成せず、CMS/PKCS7のみを生成します。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top