XML SIGNATURE Security is a major concern for anyone wanting to use the Internet for sharing and transmitting data and transactions. As XML has become a key technology in implementing online transactions, the problem of keeping XML data safe from prying eyes is all the more important. This week's XML TechMail will give you an overview of XML Signature, a relatively new technology that addresses the issue of securing XML documents. OVERVIEW When sending XML documents over a network, specifically a public network like the Internet, you run a risk of exposing the data in the document. The data in most XML documents is usually represented as text values that can be easily snooped on an unsecured network connection. One method for securing the transmission of XML documents is to send them via secured network connections using protocols such as SSL (Secure Sockets Layer). However, signatures can give a layer of protection not available in SSL: the ability to authenticate that the data received is the data sent regardless of the transmission protocol. The technology behind XML Signature allows the user to authenticate that a document is from whom it says it's from. Signing a digital document is similar to signing a hard-copy document. Your signature is yours alone. More importantly, it's much more difficult (nearly impossible) to forge a digital signature, as digital signatures use encryption to create a key based on the content being signed. If the content changes by only a single bit, the key would be entirely different. By using a strong one-way transformation based on public key encryption, the recipient is able to determine the validity of the signature. DETAILS The XML Signature protocol does more than simply create a digital signature based on content. The protocol also includes the specifications for including signatures within XML documents, the structure for the signature, and processing and validation rules. A document can be signed either in whole or in part and may include multiple signatures. The signatures can be included in the document being signed, or they can be placed in external documents. The signature itself is just XML data. Here's a short example of a signature: j6lwx3rvEPO0vKtMup4NbeVu8nk= JK34sH6sHy88dj...

...

.........
This example illustrates a signature for a document called http://www.techrepublic.com/dummy.xml. The element contains information about what is being signed. It describes the content referenced by the signature and the method used to create the signature. The element contains the actual signature using base64 encoding. The element contains information about the key used to verify the signature. This could include information about how to obtain a public key that would verify the authenticity of the digital signature. SUMMARY Using the Internet to perform XML transactions can be tricky when it comes to securing the data being traded. The XML Signature process can help alleviate some security concerns by creating XML-based digital signatures, which can be used to guarantee the authenticity of the data being sent. In this week's tip, we've covered the basics of XML Signature and provided a brief example of how it works.