問題タブ [xml-signature]
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.
java - XML ファイルから Java で RSAPublicKey を読み取る
xmlファイルからJavaでRSA公開鍵を読み取る方法は?
これがファイル形式です。
php - SAMLを機能させるには、XML署名について何を知っておく必要がありますか?
職場では、SAMLによって検証されたシングルサインオンを使用して他社のWebアプリとインターフェイスする必要があるWebアプリがあります。私たちのウェブアプリはPHPで書かれており、他社が使用している言語の選択とは明らかに無関係です。それでも、この他社がSAMLリクエストを使用してSOAPリクエストを送信し、SAMLレスポンスを生成できる単純なAPIを作成する必要がありました。私は3つの理由でゼロから作成してきました:1) PHPで記述されたSAMLインタラクションには、必要なオプションがあまりないようです。2)さらに3分の1を追加するためのオーバーヘッドが制限されます。 -パーティコンポーネント、および3)ゼロから物を作成することは、通常、私に非常に良い理解を残し、必要に応じて将来的に物を適応させる能力をはるかに高めます。
とにかく、私は一般的にSAML、SOAP、およびXML標準にかなり慣れていないので、私は自分自身を少しずつ教えてきました。私たちの目的のためにAPIはほぼ完成していますが、他の会社が、私たちの応答は証明書を使用してデジタル署名する必要があると指定していることを除いて(そして私たちが受け取るリクエストも同様にデジタル署名されます)。だから私はXML署名を処理/生成する方法を理解しようとしてきましたが、正直なところ、W3Cの仕様は正確に読みにくいので、少し混乱しています。
OASISセキュリティマークアップ言語(SAML)V1.1ドキュメントのアサーションとプロトコルのセクション5.4.8 (他の会社がv1.1を使用すると言ったので、私が作成したドキュメント)には、次の例が含まれています。署名されたアサーションを含む署名された応答。これを参照するためにここに含めます。
では、どうすればこのようなものを生成できますか?そして、私がこのようなものを受け取った場合、どうすればそれを検証できますか?<ds:Signature>
また、タグがここにあるものの基本的な概念の概要を誰かが提供できますか?2つの<ds:Signature>
タグがあります。1つはメイン<Response>
に、もう1つはにあり<Assertion>
、それぞれに独自の、、、<ds:DigestValue>
および<ds:SignatureValue>
(<ds:X509Certificate>
およびそれぞれが異なる)が含まれています。これらはどのように生成されますか?あなたがこれに当てることができるどんな光でも大いに感謝されるでしょう。チュートリアルやコード例をいただければ幸いです。しかし、この時点で、あなたが私を正しい軌道に乗せることができれば、それが私が本当に求めているすべてです。今のところ、それはすべて私にはまだ大きなブラックボックスのように見えます。
ちなみに、これが役立つ場合は、SAML 1.1仕様の他の場所で、SAML実装は「排他的正規化」メソッド(Excl-C14N)のみを使用し、「エンベロープ変換」のみを使用する必要があると述べています。それが何を意味するのかまだ完全にはわかりません。
xml - デジタル署名 - Pkcs#7 を XML-DSIG に分離
次のシナリオに苦労しています。
XML メッセージはクライアント側で作成され、mozilla の window.crypto.signText を使用してデジタル署名されます。署名後、メッセージと署名は Web サービス (.net) 経由でサーバーに送信されます。この時点まではすべて問題ありません。
サーバー上で、XML は、公にアクセス可能な別の XML ドキュメントに含まれるものとします。否認防止を付与するために、署名も公開する必要があります。
Q: 切り離された Pkcs#7 を XML-DSIG (.net フレームワーク内の機能など) に変換するスムーズなオプションはありますか?
Q2: または、外部プラグインを使用せずに XML-DSIG をクライアント側で作成することは可能ですか?
あなたの助けのためのTnx!
アロイス・ポーリン
java - Java で XML ドキュメントに署名する簡単な方法はありますか?
Java を使用して XML ドキュメントにデジタル署名しようとしています。javax.xml.crypto.dsig
パッケージ内のさまざまな実装を使用することがわかったいくつかの参照で動作する実装があります。
ただし、私の現在の実装は、これまで見てきた多くの例java.xml.crypto.dsig
と似ています。かなり冗長で、javax.xml.transform
、 、java.security
パッケージなどから 23 個以上の異なる API クラスを使用する必要があります。工場工場工場の土地に足を踏み入れたような気分で、何が起こっているのかを理解するだけで数時間かかりました。
私の質問は、これを行う簡単な方法はありますか? 公開鍵/秘密鍵ファイルを持ってい<Signature/>
て、XML ドキュメントに追加したい場合、次のようなものを呼び出せるライブラリはありますか?
...XMLSignatureFactory/CanonicalizationMethod/DOMSignContext の狂気のすべてなしで?
私は暗号化についてはあまり詳しくありません。Java が提供する API は、デジタル署名に慣れようとしている私のような開発者にとってはかなり難しいようです。これらすべてが必要な場合、または現在、より使いやすい API が存在しない場合は、それで問題ありません。回答として喜んで受け入れます。ここで不必要に困難な道を進んでいるかどうかを知りたいだけです。
php - PHP/Linux ツールを使用してエンベロープ XML 署名の DigestValue と SignatureValue を生成する方法
XML 署名 (WSDL) の DigestValue と SignatureValue を生成する方法の例をいくつか見つけようとしています。
以下は、アプリケーションのサンプル SOAP です。
アプリケーション プロバイダーからの 1 つの例があり、サンプルと同じ DigestValue と SignatureValue を生成できないようです。アプリケーションのドキュメントによると、 Body セクション全体から digestValue を作成する必要があります。
正規化、sha1、次に base64 エンコードする必要があることはわかっています。しかし、ボディセクションを正規化するにはどうすればよいですか? (sha1 および base64 エンコードは理解するのに十分簡単です)。
最初に、文字列変数を作成してみたいと思います:
しかし、PHPにはc14n関数のようなものがないことがわかりました(少なくともvarのような文字列、およびPHP 5.2以下ではありません。心配する必要はありません。私は5.2.6を持っています)。
xmlseclibs.php コードを調べたところ、DOMelement オブジェクトを使用して C14N 関数を取得しているようです。私はDOMelementが何であるかについてあまりよく知りません..
xmlseclibs.php を使用して XML に署名しようとしましたが、うまくいかないようで、アプリケーションから「署名が無効です」というエラーが表示されました。
誰かが初心者を啓発するのを手伝ってもらえますか (読んでください、私 :) ) ?
ご協力感謝いたします。
.net - SignedXml.CheckSignature のパフォーマンスの問題
.NET 3.5 を使用した XML ファイルの署名のチェックに問題があります。すべて正常に動作しますが、ランダムにパフォーマンスが低下します。すぐに返されることもあれば、戻るのに 10 ~ 15 秒かかることもあります。
マシンをチェックしましたが、全体的なパフォーマンスに影響を与えるものは何もありません。また、別のマシンでも同じであるため、1 つのマシンに関連しているとは思いません。
私はそれを .CheckSignature() メソッドに正確に絞り込んだので、一度ヒットすると、いつ戻ってくるかは誰にもわかりません。
誰か考えやアドバイスはありますか?
xml - XML 署名: ダイジェスト値を計算する方法は?
私はこのようなXMLを持っています
参照のダイジェスト値 (WqpRWHxXA0YgH+p3Sxy6hRo1XIk=) はどのように作成されますか? この値を手動で計算するにはどうすればよいですか?
xml - クロスブラウザ XmlDsig
パッケージを受け取ったことを確認するために、ユーザーが xml レシートにデジタル署名する必要がある Web サイトを構築しています。現在、IE でカスタム ActiveX コントロールを使用してこれを行っています。他のブラウザで同じことを達成できるかどうか疑問に思っていました. それは可能ですか?
xml - XML ファイルの要素に署名するときの「id」属性のケース
xml-dsig 標準に従ってデジタル署名用の要素への参照を作成する場合、「id」属性の大文字と小文字は重要ですか?
「ID」、「Id」、「id」という名前の属性を見たことがありますが、一部のソフトウェア パッケージでは、さまざまなフォームの正しい要素/ノードを見つけるのに問題があります。
また、さまざまな仕様とスキーマに従って、さまざまな id 属性が予想されます。
確かに、属性には「id」という名前を付ける必要がありますが、ケースが指定されているか、それとも推奨事項しかありませんか?
java - Apache CXF で異なる XML 署名を検証する方法は?
SOA では、リクエスト (SOAP ヘッダーの一部) に 2 回署名する必要があります。 1. クライアントが SOAP 本体に署名します。 2. ESB が SOAP ヘッダーの一部に署名します。 ESB 経由でルーティング
現在、Apache CXF 2.2 を使用してこれを実装/構成しようとしています。クライアント側だけでなく、ESB でも動作します。しかし、サーバー側で CXF を構成して 2 つの異なる署名を許可することができません。2 つの WSS4JInInterceptor-bean を構成しようとしていますが、最初の 1 つがエラーを報告します:「WSSecurityException: ヘッダーの処理中にエラーが検出されました」
私はすでに WSS4JInInterceptor プロパティ構成で「signatureParts」を使用しています。
異なる/複数のXML署名を許可するようにWSS4JInInterceptorを構成する方法を知っている人はいますか?
どうもありがとう