What Is XML Signature Syntax and Processing?
This section describes the XML Signature Syntax and Processing specification developed by W3C that specifies XML digital signature processing rules and syntax.
What is "XML Signature Syntax and Processing"?
XML Signature Syntax and Processing is a specification developed by W3C
that specifies XML digital signature processing rules and syntax.
XML Signatures provide integrity, message authentication, and/or signer authentication services for data of any
type, whether located within the XML that includes the signature or elsewhere.
The XML syntax defined by the XML Signature Syntax and Processing specification is relatively simple.
Here is the structure of an XML signature example:
Notice that how the XML signature information is divided into 3 sub elements:
1. "Signature/SignedInfo" sub element contains information about what data is actually signed.
It has several important sub elements and attributes:
- The attribute "CanonicalizationMethod[@Algorithm]" indicates what algorithm is used to serialize the data.
- The attribute "SignatureMethod[@Algorithm]" indicates what algorithm is used to generated the signature.
- The attribute "Reference[@URI]" indicates where the data is located.
It could be a fully qualified address pointing to an extenal data location like "http://herongyang.com/Service/Hello_WSDL_11_SOAP.wsdl",
or a fragment identifier pointing to a local XML element ID like "#CreateTimeStamp".
- The sub element "Reference/Transforms" contains information on any transformations that are performed
on the data before generating the signature.
- The attribute "Reference/DigestMethod[@Algorithm]" indicates what algorithm is used to generated the digest,
which is encrypted to produce the signature.
- The sub element "Reference/DigestValue" contains the actual digest generated from the data in Base64 format,
which is not really needed.
2. "Signature/SignatureValue" sub element contains the actual signature in Base64 format.
3. "Signature/KeyInfo" sub element contains information about the public key that is needed
for the receiver to validate the signature.
It may have the following options:
- Provide the actual public key in the sub element.
- Provide an X.509 certificate of the public key in the sub element.
- Provide the reference to where the public key's X.509 certificate of the public is located in the XML document.
- Provide an identifier of the public key's X.509 certificate, so the receiver can find it somewhere else.
"XML Signature Syntax and Processing" specification can be used together
with "WS-Security X.509 Certificate Token Profile" to protect the SOAP message integrity
by signing a single or multiple parts of the SOAP message.
For more information on "XML Signature Syntax and Processing", see the full specification at http://www.w3.org/TR/xmldsig-core/.
Last update: 2014.
Table of Contents
About This Book
Introduction to Web Service
Introduction to SOAP (Simple Object Access Protocol)
SOAP Message Structure
SOAP Message Transmission and Processing
SOAP Data Model
SOAP RPC Presentation
SOAP Properties Model
SOAP Message Exchange Patterns
SOAP HTTP Binding
SOAP Perl Implementations
SOAP PHP Implementations
SOAP Java Implementations
Perl SOAP::Lite - SOAP Server-Client Communication Module
Perl Socket Test Program for HTTP and SOAP
Perl SOAP::Lite for GetSpeech SOAP 1.1 Web Service
Perl SOAP::Lite 0.710 for SOAP 1.2 Web Services
Perl SOAP::Lite 0.710 for WSDL
PHP SOAP Extension Client Programs
PHP SOAP Extension Server Programs
Java Socket and HttpURLConnection for SOAP
SAAJ - SOAP with Attachments API for Java
SoapUI - SOAP Web Service Testing Tool
WS-Security - SOAP Message Security Extension
►WS-Security X.509 Certificate Token
What Is WS-Security X.509 Certificate Token Profile?
►What Is XML Signature Syntax and Processing?
Generating a Self-Signed Certificate with "keytool"
SoapUI Configuration for Messaging Signing
Generating Digital Signature with SoapUI
Validating ds:Signature with X.509 Certificate
Digital Signature Options Supported in SoapUI
What Is XML Encryption Syntax and Processing?
SoapUI Configuration for Messaging Encryption
"not an RSA key" - Encryption Failed in SoapUI
Encryption using RSA Public Key with SoapUI
2-Step Message Encryption - Symmetric and RSA
Decrypting Encrypted SOAP Message
Message Encryption Options Supported in SoapUI
Web Services and SOAP Terminology
PDF Printing Version