

CAs act as agents of trust in a PKI. As long as users trust a CA and its business processes, they can trust certificates issued by the CA. This is known as third-party trust. The certificate includes the user's name in a format of a distinguished name (DN), that may contain additional attributes (such as employee number) to uniquely identify the user. The certificate also specifies the validity period (or lifetime) of the certificate, and the specific operations for which the public key is to be used (whether for encrypting data, verifying digital signatures, or both)
The CA's signature on
a certificate ensures that any changes to the contents can be
easily detected, which makes them tamper-proof. As the certificates
are inherently secure they can conveniently be distributed in
a completely public manner, and users retrieving a public key
from a certificate can be assured that it is valid. That is, users
can trust that the key belongs to a the entity specified by the
distinguished name, and that the key can be used safely in the
manner for which it was certified by the CA.
Key Backup and Recovery, not Key
Escrow
A business must be able to retrieve encrypted data
when users lose their decryption keys. This means that the enterprise
to which the user belongs requires a system for backing up and
recovering these keys. This is known as commercial key backup
and recovery, and is different than law enforcement-style trusted-third
party key escrow. Key escrow systems are designed so that a third
party (such as law enforcement) can obtain the decryption keys
required to access encrypted information. Key escrow requirements
are currently under public policy debate, however the key backup
and recovery requirements are separate and there is no debate
about them, as users will forget passwords or lose hardware devices
(such as smart cards) that may contain their private keys.
Support for Non-Repudiation
Repudiation occurs when an individual denies involvement
in a transaction. Non-repudiation means that an individual cannot
successfully deny involvement in a transaction. In the paper-world,
individuals' signatures legally bind them to their transactions,
and the signature prevents repudiation of those transactions.
In the electronic world,
the replacement for the pen-based signature is a digital signature.
The most basic requirement
for non-repudiation is that the key used to create digital signatures-the
signing key-be generated and securely stored in a manner under
the sole control of the user at all times. Unlike encryption key
pairs, there is no technical or business requirement to backup
or restore previous signing key pairs when users forget their
passwords or otherwise lose their signing keys. In such cases,
it is acceptable for users to generate new signing key pairs and
continue using them from that time forward.
Two Key Pairs are Required
It appears difficult to simultaneously support key
backup and recovery and non-repudiation. To support key backup
and recovery, the user's private keys must be backed up securely.
To support non-repudiation, the user's private keys used for digital
signature cannot be backed up. To meet these requirements, a PKI
must support two key pairs for each user. At any point in time,
a user must have one current key pair for encryption and decryption,
and a second key pair for digital signature and signature verification.
Key Update and Management of Key
Histories
Over time, users will have numerous key pairs that must be managed
as cryptographic keys should not be used forever. The keys must
be updated over time, and the history of all keys previously used
must be maintained. (For example, users will need to decrypt information
many years from now, and verify a digital signature on a contract
many years in the future).
The process of updating
keys pairs should be transparent to users. This means users do
not have to understand that key update needs to take place and
they will never experience a "denial of service" because
their keys are no longer valid. To meet this requirement, users'
key pairs must be automatically updated before they expire. Also,
when a signing key pair is updated, the previous signing key be
securely destroyed. This prevents anyone else from gaining access
to the signing key and is acceptable because there is no need
to retain previous signing keys.
Certificate Repositories and Certificate
Distribution
The term repository refers to a service that allows for
distribution of certificates. The CA acts as a trusted third-party
issuing certificates to users, and businesses must distribute
those certificates so they can be used by applications. Certificate
repositories store certificates so that applications can retrieve
them on behalf of users.
The de facto standard for
access to these repositories is the
Lightweight Directory Access Protocol (LDAP) mechanism. Many directory
technologies support LDAP and can scale for very large implementations,
provide for different techniques to respond efficiently to search
requests and retrieval methods, and may be distributed throughout
an organization's network.
Certificate Revocation
Every time an application uses a certificate and verifies
the CA's signature on it, the application must also determine
that the certificate is still trustworthy at time of use. Certificates
that are no longer trustworthy must be revoked by the CA.
There are numerous reasons why a certificate may need to be revoked prior to the end of its validity period. For instance, the private key corresponding to the public key in the certificate may be compromised. Alternatively, an organization's security policy may dictate that the certificates of employees leaving the organization must be revoked. In these situations, users in the system must be informed that continued use of the certificate is no longer considered secure.
The revocation status of a certificate must be checked prior to each use. As a result, a PKI must incorporate a scalable certificate revocation system. The CA must be able to securely publish information regarding the status of each certificate in the system. Application software, on behalf of users, must then verify the revocation information prior to each use of a certificate. The combination of publishing and consistently using certificate revocation information constitutes a complete revocation system.
The most popular means
for distributing certificate revocation information is for the
CA to create certificate revocation lists (CRLs) and publish these
to a directory. CRLs specify the unique serial numbers of all
revoked certificates. Prior to using a certificate, the client-side
application must check the appropriate CRL to determine if the
certificate is still trustworthy.
Cross-Certification
Cross-certification extends third-party trust relationships
between CA domains. For example, two trading partners, each with
their own CA, may want to validate certificates issued by the
other partner's CA. Alternatively, a large, distributed organization
may require multiple CAs in various geographic regions. Cross-certification
allows different CA domains to establish and maintain trustworthy
electronic relationships.
In the case of bilateral cross-certification, two CAs securely exchange their public keys, and each CA signs the other's public key in a certificate known as a cross-certificate.
Trust is maintained in
a cross-certified environment by the client-side application software
verifying the CA's signature on certificates. This operation is
often referred to as "walking a chain of trust". The
"chain" refers to a list of cross-certificate validations
that are "walked" from the CA key of the verifying user
to the CA key required to validate the other user's certificate.
When walking a chain of cross-certificates, each one is checked
to ensure that it is still trusted, because as with user certificates,
cross-certificates may also be revoked. This requirement is frequently
overlooked in discussions regarding cross-certification.
Client-Side Software
The PKI must include client-side software to allow
various applications to interact with the PKI to handle all the
issues discussed in this paper, such as automatically checking
the CRL that corresponds to a certificate, renewing certificates,
providing the interface to the key backup system, remembering
key histories, and dealing with all the other lifecycle issues
with keys and certificates. Most importantly, the client-side
software provides for a consistent interface and trust management
for all applications. This allows significant cost of ownership
advantages by offering a corporation one security system to administer
for multiple applications.
Summary
The goal of a PKI is to establish and maintain a trustworthy
networking environment. This goal is achieved by providing key
and certificate management services that enable encryption and
digital signature capabilities across applications. Many of the
necessary functions to achieve an automatic and transparent system
require interactions with client-side software. While it is possible
to provide some level of security to applications without using
a comprehensive PKI, (for example S/MIME compliant mail packages
that only support a peer-to-peer trust model, with user based
certificate management, and no key recovery), it is unlikely however
that this would be acceptable for corporate use.
Brian O'Higgins will be speaking on the
"Public-Key
Infrastructure(PKI)" session on Wednesday, April 29 from 2:30-4:00 at
EMA'98 in Anaheim, California.