happytails.ai

SAML signature verifier

Check the XML signatures in a SAML response in your browser against your identity provider certificate. See exactly which element each signature covers and whether the response shows signs of a signature wrapping attack.

Input up to 1000000 characters, certificate up to 20000 characters, at most 20 signatures. Verification runs locally in a background worker in your browser. Download a JSON report. Paste the SAMLResponse value or the XML. Up to 1,000,000 characters. Review the settings before running.

Your result

Report a problem or share an idea.

How to use SAML signature verifier
  1. Paste the SAMLResponse value or the XML.
  2. Paste the signing certificate from your identity provider metadata.
  3. Run the tool and read the verdict, the covered elements and the wrapping checks.

Useful next steps

Method

Each ds:Signature is checked under W3C XML Signature 1.1: one reference to the ID of the element that contains the signature, exactly two transforms (the enveloped signature transform, then Exclusive XML Canonicalization 1.0), the digest, and the RSA or ECDSA signature over the canonical SignedInfo with SHA-256, SHA-384 or SHA-512. SHA-1, inclusive canonicalization and other transforms are refused. A reference with only the enveloped signature transform is refused too, because XML Signature then canonicalizes it inclusively.

Wrapping defences

IDs must be unique, every signature must sit inside the element it signs, signed elements must be the Response or an Assertion directly inside it, there must be exactly one assertion, and every assertion must be covered by a valid signature. The report names the exact covered element so you can compare it with what your service provider reads.

What it does not check

Audience, recipient, time conditions and replay are the service provider's job, and the certificate's own validity dates are only reported. Nothing is fetched; only the certificate you paste is trusted.