154
Chapter 5 XML Digital Signatures
Y/EIpZkBrnVvZA3MvPEJ7ogd3jdMhoiv22sMC7RwLX8=
</G>
<Y>
Ewtznkij4904qLeMAQ6695qrnHe5EDzGj9Ud2++6MiVmo/1bBJEAJXk4lKBGF9h5
HoR66tSMPb7KEbf5I07ep4x4KhNKmIUi+vnr4aMBJfANeeN9SYzbtXYfWLXENuGT
PZrd1vNgczNbnujTjhBL84HCchA34n2yAapmdDxCiX4=
</Y>
</DSAKeyValue>
</KeyValue>
</KeyInfo>
<Object Id="object">The data that we want to sign...</Object>
</Signature>
</Envelope>
Changing any aspect of this file (including the addition or removal of spaces)
will be detected by anybody with the tools to verify an XML digital signature.
Furthermore, if you had a copy of someones public DSA key, you could also
conclusively determine if that person is the person who generated it. Notice all
the data placed into the KeyValue element.This is a copy of one partys public
DSA key that is required in order to authenticate the datas integrity.This infor-
mation cannot be used alone for the purposes of nonrepudiation.
An Example of an Enveloped Signature
Next lets consider an enveloped signature that will use an RSA key.The canonical
form of this signature is shown in Figure 5.5.
Figure 5.5 Canonical Enveloped XML Digital Signature
<?xml version="1.0" encoding="UTF-8"?>
<Envelope xmlns="http://example.org/envelope">
<Signature xmlns="http://www.w3.org/2000/09/xmldsig#">
<SignedInfo>
<CanonicalizationMethod
Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315"/>
<SignatureMethod
Algorithm="http://www.w3.org/2000/09/xmldsig#rsa-sha1" />
<Reference URI="">
www.syngress.com
Figure 5.4 Continued
Continued