1. Field of the Invention
The present invention relates to mechanisms for providing security in networked computing systems. More specifically, the present invention relates to a method and an apparatus that uses a portable security token (PST) to facilitate cross-certification between certification authorities (CAs) associated with separate public-key infrastructure (PKI) domains.
2. Related Art
Public key cryptography provides a powerful tool that can be used to encrypt data and to authenticate digital signatures. However, widespread use of public key cryptography requires that a practical solution be found for the problem of associating public keys with their owners in a trusted (authenticated) manner.
One solution to this problem is to construct a Public Key Infrastructure (PKI). A PKI supports a collection of well-known trusted public keys, which can be hierarchically organized. In a PKI, the owner of a trusted key is usually referred to as a “Certification Authority,” or “CA.” A CA can use a private key corresponding to its trusted public key to authenticate the keys of other members (users and devices) in the PKI by signing the keys for the members, and creating “digital certificates.” A digital certificate typically links a public key to information indicating who owns the key (an identity certificate), or what the key is allowed to be used for (an attribute certificate), or at a minimum, that the bearer of the corresponding private key is a valid member of this particular PKI or some other trust system. A PKI simplifies the key management problem because it eliminates the need to exchange keys between all the members of a trusted network. Instead, in a PKI, only the trusted public keys need to be publicized.
It was initially envisioned that a single “global” PKI would eventually be adopted, which would enable any device on the Internet to authenticate itself to any other device on the Internet. Unfortunately, such a global PKI has not been adopted. Instead, there presently exist many separate PKI domains. For example, a separate PKI domain often exists for computing devices within a company or within a governmental organization. Because of absence of a single global PKI, it is difficult for devices on the Internet to establish trust with other devices on the Internet.
A number of schemes have been developed to enable devices from different PKI domains to interoperate with each other. In particular, a technique known as “cross-certification” allows two separate PKI domains to be merged into a single combined PKI domain. For example, consider a scenario with two PKI domains: a first PKI domain, with an associated first root CA, and a second PKI domain, with an associated second root CA. In the cross-certification process, the second root CA issues a “cross-certificate” to the first root CA. The cross-certificate is then propagated to devices in the first PKI domain, thereby allowing these devices to authenticate themselves to devices in the second PKI domain. In addition, cross-certification can also take place in the other direction, in which the first root CA issues a cross-certificate to the second root CA, thereby achieving full cross-certification.
Unfortunately, cross-certification is a complicated and time-consuming process. Cross-certification typically requires a meeting between administrators of the different domains, and certification information has to somehow be transferred securely between the root CAs for the different domains. Note that secure communications between the root CAs cannot take place across a public network, such as the Internet, until the cross-certificate is completed. Consequently, the certification information has to be exchanged through some other communication channel. For example, disks carrying this certification information can be hand-carried between the CAs.
Hence, what is needed is a method and an apparatus that simplifies the process of performing cross-certification between different PKI domains.