XML Digital Signature · enveloping tokens · PHP
Sign it, read it, verify it.
Then try to break it.
Every token on this page is created and analyzed by the real ezxmldsig library, running in PHP behind this page. Read each block of the signature, follow the receiver's checks one by one, and replay the attacks that version 1.0.0 refuses.
The keys of demo/certs/ are public: they are published with the library. Never use them, or trust their CA, outside this demo.
Issuer
Signs the user data with sign.key.pem.
Token
Hover or select a block to read what it does.
PHP code of the issuer
Receiver
What it trusts and what it checks.
Verification
The library's checks, then yours.
Data read back
PHP code of this receiver
05 Attack lab
Forge, wrap, swap, replay.
Each attack starts from the last token of the issuer, alters it on the server, and submits it to the receiver configured above, with a replay memory of its own. No vulnerable code runs here: this is what 1.0.0 does with each forged token.