問題タブ [xmlseclibs]
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.
php - 適切なXML排他的正規化はどれですか?
xmlseclibsを使用してSOAPドキュメントに署名しようとしていますが、署名するか検証するかによって、同じように正規化されていないようです。
例を挙げましょう。これは私が署名しようとしているXMLです:
公開鍵と秘密鍵の証明書の組み合わせを使用して署名するためにPHPで動作するコードを取得しましたが、動作しているように見えました。それはすべての適切なもので要素を追加しました<ds:Signature>
、そしてそれは素晴らしく見えました。しかし、署名後すぐにxmlseclibs(および公開鍵証明書)を使用して検証を試みてテストしましたが、検証に失敗しました。したがって、まったく同じコードライブラリが署名と検証の両方を実行しますが、2つのプロセスは何らかの理由で一致しません。
xmlseclibsにデバッグコードを追加して、それが何をしているのかを調べました。署名キーと検証キーが異なる理由は、2つの状況で正規化が異なるためであることに気付きました。要素に署名するように指示すると<samlp:Response>
、これは署名する標準形になります(読みやすくするためにここに改行を追加しました)。
ただし、署名を検証する場合、これは検証のために計算する標準形です(ここでも、改行を追加しました)。
ご覧のとおり、このバージョンxmlns:saml
では要素から属性が省略されていますが<samlp:Response>
、最初のバージョンでは省略されていません。(これは、両方に含まれている属性とは異なることに注意してくださいxmlns:samlp
。)これはxmlseclibsのバグのように見えますが、それでも、どちらの標準形が正しいかを知っていれば、自分で修正できれば幸いです。 。その属性は、排他的な正規化によって省略されるべきですか?それとも含める必要がありますか?正しい排他的な標準形はどれですか?
xml - XML RSA キーを PEM ファイルに変換するにはどうすればよいですか?
次のような構造の 2 つの XML ファイルがあります。
私の鍵
公開鍵
xmlseclibs
物事を暗号化および復号化するためにキーの .PEM 表現を必要とする Robert Richardsのライブラリを使用しています。
暗号化の初心者として、どこから始めればよいかわかりません。Google でざっと検索しても、特に明白な情報は見つかりませんでした...
ありがとう!
xml - キーと証明書を使用して XML に署名する
私は自分の xml ファイルに署名して、ファイルを渡した相手が改ざんされていないことを確信できるようにし、これらが私からの XML ファイルであることを保証したいと考えています。私はxmlseclib(動作しているように見えるphp)を使用しています。いくつか質問があります。お答えいただければ幸いです。
ライブラリで、秘密の RSA キーと証明書を送信します。証明書はどのように処理すればよいですか?https サーバー用に購入した証明書を使用する場合、1 年間しか有効ではありませんか? 署名済みの文書を永久に有効にしたい。独自の証明書を生成する必要がありますか? opensslでそれを行うにはどうすればよいですか?
ds:SignatureValue、ds:DigestValue、および ds:X509Certificate の内容と、それらがどのように使用されるかの概要を教えてください。
自動追加されたタグ:
ありがとう
php - PHPを使用したSAML2.0でのDSA署名チェック
私はSOをチェックしてグーグルで検索しましたが、今のところ答えは見つかりませんでした。私はサービスプロバイダーとしてSAML2.0を使用しており、 php-samlを埋め込みました-最初にsimplesamlphpを使用しましたが、埋め込むのが少し難しいことがわかりました。
IdPの応答は署名付きで返されます
xmlseclibsはdsa署名をサポートしていないようです。
質問A:dsa署名を検証するために何を使用するかについての提案はありますか?
質問B:他の人がSAMLに使用しているライブラリに興味があります。simplesamlphpに約20分費やしたところ、それ自体のURL構造に完全に依存しており、単なるライブラリではなく適切なWebサーバーエンドポイントであることがわかりました。
乾杯
php - 無効なデータを返す smlseclibs を持つ XML 署名: データとダイジェストが一致しません
署名済みの XML ドキュメント ( xmlseclibsを使用) を送信しようとしていますが、署名自体が間違っています。
私が使用しているコードは次のようになります。
そして、xml が送信されています。これは素晴らしいことですが、xml ファイルを復元して署名を確認すると、http: //www.aleksey.com/xmlsec/xmldsig-verifier.htmlが表示されます。
私が得ているエラーは次のとおりです。
func=xmlSecOpenSSLEvpDigestVerify:file=digests.c:line=229:obj=sha1:subj=unknown:error=12:invalid data:data and digest do not match
証明書を個別の秘密鍵と公開鍵、同じファイル、別のファイル、インポートとエクスポートなどに変換しようとしました。
流れは次のようになります。
Java プログラムは、生成された未署名の Base64 でエンコードされた XML を PHP ファイルに送信します。PHP ファイルは、署名して送信しSoapClient
、結果が出力され、Java プログラムによってキャプチャおよび解釈されるため、このシステムを使用するマシンに個別の証明書が存在することを回避できます。
php - PHPを使用したWindows8の購入(領収書)の確認
PHPを使用してサーバー側でWindows8アプリケーションで行われたアプリ内購入を確認する必要があります。MSDNのドキュメントページには、C#でのみ例があります。今、私はPHPでそれを行う方法を探して一日を過ごしました。失敗。インターネット全体で、このトピックに関する.NETの例のみがあります。
署名されたXMLとx509、いくつかのライブラリに関するいくつかの部分的な情報を見つけました(xmlseclibs-役に立たない、sha256をサポートしないopenssl_*関数を使用します;phpseclib-有望に見えますが、それらのドキュメントと例は助けがなく貧弱です)。
署名されたXML、RSA、x509についてすべてを学ぶことなく、どういうわけかそれを行うことは可能ですか?今、私はほとんどすべてを読みましたが、どこでもエンコーディングに関する情報だけです。検証については何もありません。