In previous chapters, we have seen how cryptography may be used to protect the integrity and confidentiality of XML documents using XML Signature and XML Encryption, provided that the sender and recipient know the public key of the other party. This need is addressed by the XML Key Management Specification (XKMS), a Web Service that supports management of public keys.
XKMS 1.0 was submitted to the World Wide Web Consortium as a technical note in March 2001 and a working
Public key technology is an exceptionally flexible and adaptable technology. Knowing the public key of the other party enables the confidentiality and integrity of any message or document to be protected. If the number of parties is small, this task is comparatively easy: the users can simply get together in a room and read out their public keys. However, once the number of users is too large for everyone to meet in the same room at the same time, the problem of distributing public keys becomes much harder.
Public Key Infrastructure (PKI) addresses this problem. In his original paper
Over the
|
PKI
|
Comments |
|---|---|
|
X.509 |
X.509
|
|
PKIX |
Public Key Infrastructure X.509 (PKIX) began as a profile of the X.509 specification describing the use of X.509 certificates with IETF protocols such as SSL, S/MIME, and IPSEC. Since then, the PKIX group has defined extensions to the X.509 to the extent that PKI is often referenced as a PKI model in its own right. |
|
PGP |
Pretty Good Privacy (PGP) was designed by Phil Zimmerman in a reaction to what he saw as the unnecessarily complex and authoritarian procedures required to manage an X.509 certification authority. In the PGP model, any key holder may issue a certificate (in the PGP model, it is called a key signing). Over time the key signings created by a community of PGP users form a “web of trust.” |
|
SPKI |
Simple Public Key Infrastructure has many similarities to PGP—any
|
|
DNSSEC |
DNS Security is a special-purpose PKI designed to secure the Internet Domain Name System (DNS), which
|
Fortunately, it is possible to describe XKMS without explaining how any of these PKIs work. In fact, the whole objective of XKMS is to allow a programmer to use a PKI despite knowing only a little of what the PKI does and nothing of how the PKI does it. For the purposes of understanding this chapter it suffices to know the following five points:
A PKI
A credential states the name of the holder of the private key corresponding to a public key.
A name may be the name of a person or company or a network name such as an e-mail address.
Before issuing a credential the credential issuer should authenticate the request to ensure that the party requesting the credential is both
the
the actual holder of the private key associated with the specified public key
Once issued, credentials may in certain circumstances be
the private key is compromised in some way (lost,
information in the credential is found to be invalid
the key holder has broken the issuer’s terms of use

Core Security Patterns: Best Practices and Strategies for J2EE, Web Services, and Identity Management

The Web Application Hacker's Handbook: Discovering and Exploiting Security Flaws

Java Web Services: Up and Running

Securing Web Services with WS-Security: Demystifying WS-Security, WS-Policy, SAML, XML Signature, and XML Encryption