Digital Signatures


Security technologies deployed today in run-of-the-mill Internet environments are inadequate for securing mission-critical business transactions. For example, the Secure Sockets Layer (SSL) does guarantee the secure exchange of confidential data, but once the data has been received, it is decrypted and often retained in its original form for processing. Thus, SSL only protects the data while it is in "secure" transport, neither before nor after. This shortcoming is further exacerbated when messages are routed through multiple nodes and unencrypted for processing at each node. This may leave the data vulnerable to unauthorized alteration on relatively insecure servers. In addition to protecting the sensitivity of the data transacted, ensuring the data's long-term integrity, authenticity, and origin is crucial. This allows for non-repudiation—the ability to unequivocally assure both the sender and recipient of the data that its origin is authentic, its contents unchanged and as the sender intended.

Digital signatures address the need of transacting and storing highly sensitive commercial data both during and after the life of the transaction thus ensuring long-term non-repudiation. As XML becomes the de facto standard for conducting electronic business transactions, a trusted and secure XML-message exchange mechanism is essential. XML digital signature is a key technology enabling both long-tem integrity and origin authenticity of the document. The XML Signature specification is a promising standard that provides a means for signing XML documents. Capturing resulting signatures using the very same XML syntax allows for seamless integration into XML-based business applications.

Public Key Cryptography in Digital Signatures

Digital signatures use a prominent and well-known technology called public key cryptography. Public key cryptography provides the transactions the confidence that data involved in the transaction will not be modified or appropriated by anyone other than the intended recipient. This is accomplished by generating a public and a private key combination known as asymmetric keys. The asymmetric key set has the following unique characteristics:

  • The relationship between the private and public key is such that any cryptographic operation that is performed using one key can only be reversed by the other. Thus a message encrypted using the public key component of the asymmetric key-pair can only be decrypted by the private key of the very same key-pair.

  • Unlike symmetric key cryptography, this technique does not require that the sender or receiver exchange any secret information as part of the transaction.

The characteristics of public key cryptography just described make it an absolute "must-have" to construct reliable digital signatures. The functionality offered by public key cryptography include

  • Integrity Ensuring that any changes to the original message can be unambiguously identified (explained in the upcoming section "Ensuring Data Integrity").

  • Authenticity Ensuring that the origin of the message can be unambiguously identified.

This functionality, and through it, the realization of non-repudiation, give electronic transactions qualities similar to that of signatures on standard paper transactions known and used by all.

Certificate Authorities

A digital signature is created by providing a confidential private key as an input to a PKCS (Public Key Cryptography Standard) transform (for example, multi-prime RSA algorithm) that is applied to the data to be signed. Since only the public key of the asymmetric key-pair can reverse that transform, the recipient of the "signed" data on successfully reversing the applied transform with the public key, can be confident that the data is in fact from the sender.

It is also important to note that the validity of the digital signature stems from the confidence that the public key does, in fact, belong to the sender. It is for these reasons that Certification Authorities (for example Verisign Inc.) issue certificates that assert the validity of the relationship between the public key and that of the certificate's owner/subject.

Ensuring Data Integrity

Due to the computationally intensive nature of PKCS algorithms, only a small document/ message identifier is actually signed with the private key. This identifier is commonly known as a hash or message-digest. The hash or digest for a given input data-stream is unique in that it is highly unlikely that there exists a single computed hash value for two dissimilar data-streams. Hence an alteration to the data content will fail to produce the same hash value indicating that the content was changed in transit. The computed hash value is then transformed, in other words signed, with the sender's private key thus allowing the recipient to verify, using the sender's public key, that the content/document is in fact from the sender. Thus, the signed hash/digest preserves both the integrity and the authenticity of the transacted data.

The received data is verified by first obtaining its hash value by applying a reverse PCKS transform on the signature using the sender's public key. The hash value is then recomputed on the received data and compared with the data's original hash value. If they are the same, the recipient can then be confident that the data indeed came from the sender, unaltered.

XML Signatures

The same challenges associated with encryption, integrity, and non-repudiation also exist for XML data. Two new XML specifications addressing the subject of securing, encrypting, and non-repudiating XML data are XML Signature and XML Encryption.

A unique feature in XML Signature is the ability to allow only specific parts of an XML document to be signed. This becomes extremely useful if an XML document is to be handled by multiple parties, each with certain delegated responsibilities that are to be unequivocally captured in the document. This ensures the integrity of all signed portions of the document. An example in context is business process workflows. A business process workflow may involve an XML document exchange between multiple participants where each participant may wish to sign only specific parts of the document maintaining a certain level of commitment for which they are liable. Prior digital signature standards did not provide the capability to address signatures at such a high level of granularity, nor did they provide a means to specify signed portions of a document by multiple parties. Figure 3-3 provides an overview of the various components in an XML Signature.

click to expand
Figure 3-3: Components of an XML Signature

XML-based interchange formats allow data to be easily understood between two or more communicating parties. XML schema rules allow for flexible data representation. The very same piece of data may be represented in different XML structures (or documents). Consider the following XML document fragments:

 <?xml version="1.0"?> <books>     <book type="fiction" cost="15" binding="soft"/>     <book type="history" cost="29 binding="hard"/> </books> <?xml version="1.0"?> <books>     <book type="fiction" binding="soft" cost="15"/>     <book type="history" binding="hard" cost="29"/> </books> 

These XML document fragments though logically equivalent do not contain the same sequence or ordering of characters. In this particular scenario, the fragments differ by the order of attributes that appear in the "book" element.

In order to determine that two XML documents or fragments are logically equivalent, it is necessary to arrive at a unified (or canonical) format. In order to address this issue there exists canonicalization algorithms that transform XML documents into canonical forms that can be compared octet by octet. XML canonicalization is essential to the process of signing and verifying XML documents. Prior to signing an XML document, the document is first canonicalized using accepted algorithms based on W3C rules for XML canonicalization. It is the canonicalized form of the document that is digitally signed, not the document's original form.During verification, it is the digital signature of the canonicalized form of the XML document that is verified. Thus the verification of the digital signatures of all logically equivalent versions of the signed XML document should be successful.

An important aspect to consider is the performance characteristics of canonicalization. As can be inferred from the description of the canonicalization operations in prior sections, canonicalization operations may involve multiple traverses of the XML document. Furthermore, conversion of an XML document to a uniform canonicalized format (such as octet sequences) may be resource intensive. The performance characateristics are further exacerbated as the XML document size increases.




Practical J2ee Application Architecture
Practical J2EE Application Architecture
ISBN: 0072227117
EAN: 2147483647
Year: 2003
Pages: 111
Authors: Nadir Gulzar

flylib.com © 2008-2017.
If you may any questions please contact us: flylib@qtcs.net