問題タブ [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.
xml - WindowsCryptoAPIを使用してXMLDSIGのrsa-sha1署名を作成する方法
XMLDSigドキュメントSignedInfoを次のように想定します。
上記のSignedInfoノードのSHA1は
Windows CryptoAPIでSignatureValueを生成するには、次のコマンドを実行します。
署名を生成し、CryptoAPIを使用して検証することができますが、XMLDSig仕様に従って実行しているかどうかはわかりません。
私が正しく行っているかどうかをさらに確認するために、オンラインベリファイアを試してみます:http://www.aleksey.com/xmlsec/xmldsig-verifier.html
次のXMLDSigドキュメントのモジュラスとSignatureValueを置き換えて、オンラインベリファイアで検証します。
そして明らかにそれは失敗します。
署名値を正しく生成しなかったと思います。
.net - SignedXml.CheckSignature が例外をスローします: 値を null にすることはできません。パラメータ名: 名前
X509 証明書から Xml の署名を検証するコードを書いていますが、件名に例外メッセージが表示されます。
私のサンプルコード
証明書ストアから証明書を正常にロードしました (コードの 1 行目)。signedXml が正常に読み込まれました (コードの 2 行目)。
関数を呼び出すと例外がスローされsignedXml.CheckSignature(cert, True)
ます。メッセージは非常に不明確です。
値を null にすることはできません。
パラメータ名: 名前
ここで何が問題なのか手がかりはありますか?
呼び出しスタック:
System.ArgumentNullException はユーザー コードによって処理され
ませんでした Message=Value を null にすることはできません。パラメーター名: name ParamName = name
Source = mscorlib StackTrace: System.Security.Cryptography.CryptoConfig.CreateFromName(String name, Object[] args) at System.Security.Cryptography.Xml.SignedXml.CheckSignedInfo(AsymmetricAlgorithm key) at System. D:\Projects\MyProject\Test の MyNamespace.MyClass.MyFunction() の System.Security.Cryptography.Xml.SignedXml.CheckSignature(X509Certificate2 証明書、ブール値の verifySignatureOnly) の Security.Cryptography.Xml.SignedXml.CheckSignature(AsymmetricAlgorithm キー)。 vb:117行目
更新 1
.Net Framework ソース デバッグをオンにすると、SignedXml.CheckSignedInfo
メソッドから例外がスローされ、コード行があります
SignatureDescription signatureDescription = CryptoConfig.CreateFromName(SignatureMethod) as SignatureDescription;
SignatureMethod がラップであることは明らかです
はm_signature.SignedInfo.SignatureMethod
ヌル値です。MSDN からhttp://msdn.microsoft.com/en-us/library/system.security.cryptography.xml.signedxml.signaturemethod.aspxの SignatureMethod の説明を再度読み、署名部分を含む Xml コードが以下に貼り付けられていることを確認しました. 値を含むSignatureMethod
タグがありますが、SignedXml がそれを処理できないのはなぜですか?
xml-signature - XML署名に関する説明
それは私の課題の一部であるため、私は数日からxml署名に関するものを読んでいます。今まで、私が理解したのは、それを使ってあらゆるタイプのデータに署名できるということです。私はすべての要素を通過しました。私がそれらを見るとき、それらはすべて簡単で理解しやすいようです。しかし、私がそれらを深く調べていくと、それらのほとんどを理解するのが難しいことに気づきます。私はSignaturevalue、CanonicalizationMethod、transformなどの要素のいくつかを意味します。だから私の質問は、xmlsignatureについて詳細に説明している資料はありますか?これは、概念をよりよく理解するためのいくつかの基本的な例も提供します。
xml - xml署名の正規化とは何ですか?
xml署名で使用される正規化タグとは何ですか。要素に存在し<signed info>
ます。私はネット上でさまざまな文書を調べてきました。しかし、それらはすべて抽象的すぎて私には理解できません。誰かが正規化タグに何を含めるべきか、そしてそれをどのように使用すべきかを説明できれば役に立ちますか?
私もその<signature value>
要素に疑問を持っています。何の署名が含まれていますか?
xml-signature - xmlSignature または通常のデジタル署名?
どちらが良いですか?xml デジタル署名 (xmlDsig) または通常のデジタル署名を使用して SAML ドキュメントに署名します。パフォーマンスに関してどちらが優れているかを知りたいのですが、なぜそれが優れているのですか? 私が読んだ限りでは、どちらも使えると感じました。大きな違いはありません。署名で見逃しているものはありますか?
java - xml署名での参照検証
プログラムでml署名を使用して、メッセージが改ざんされているかどうかを確認し、有効な人物によって署名されているかどうかを確認しています。私が理解した第二の部分。問題は最初の部分にあります-つまり、参照の有効性をチェックします。これが私が使用しているコードです。xmldoc
xmlエンベロープ署名を含むドキュメントオブジェクトです。
ご覧のとおり、valContextには署名要素と公開鍵のみが含まれています(これは署名を検証するために必要になります)。ただし、以下のコードでは、オブジェクトを使用することによってのみvalContext
、参照が検証されていることがわかります。これはどのように可能ですか?参照を検証するには、で参照されている要素を抽出できる実際のxmldocにアクセスし、<reference>
その値のハッシュ/ダイジェストを見つけて、それらをと比較する必要があり<digest value>
ます。
しかし、どういうわけか、以下のコードは機能します。方法がわかりませんか?誰か説明してください。
java - xml署名の署名方法
xml署名の署名方法では、この形式で指定しました:SignatureMethod.RSA_SHA1
しかし、通常の署名を使用する場合は、
では、これら2つの違いは何ですか?
java - xml署名を使用すると、xmlドキュメント全体が乱雑になります
私はxml署名を使用してsamlリクエストを検証しています:
署名する前の最初のsamlリクエスト:
xmlドキュメントに署名し、それを文字列に変換した後(トランスフォーマーを使用)、次のようになります。
ご覧のとおり、最初の文字列の最初の属性はIDですが、署名後の最初の属性はAssertionConsumerServiceURLです。なぜごちゃごちゃしているのですか?さらに、署名された文書#here
(最後から3行目)を参照してください、改行があります。なぜ改行があるのですか。暗号化された値に改行が含まれているとは思いません。何が起こっているのかわかりません。助けてください。
java - xml 署名によるエラー
私はxml文書を持っています。Java ライブラリを使用してドキュメントを印刷すると、適切な xml 出力が得られます。次に、xmlsignatures を使用して xml ドキュメントに署名します。署名した後、ドキュメントを再度印刷しようとしました。しかし今回は、すべての要素が JUMBLEDになるようにドキュメントが印刷されます。xml 署名が xml ドキュメントを変更するかどうかを知りたいですか? はいの場合、なぜですか?
java - xmlSignature javaでのXSLT変換?
XMLドキュメントがあります。xmlsignatureを使用してドキュメントの一部に署名しています。ダイジェストを見つける前に、XSLT変換を適用したいと思います。
私が読んだことによると、XSLTはXMLドキュメントを別の形式に変換します(XMLにすることもできます)。今、私は混乱してい
ます。変換された新しいドキュメントはどこで入手できるのでしょうか。
ユーザーに表示したい場合、この新しく作成されたドキュメントから値を取得するにはどうすればよいですか?
私のXMLドキュメント
変換のためのコード
xpath変換によると、user要素の値が変更されるたびに、xmlsignatureを検証しないでください。また、person要素の値が変更された場合は、Signatureを検証する必要があります。しかし、person要素の値を変更すると、署名は検証されません。なぜ?