General Navigation Buttons - Home | Search | Contact Us | Site Map | Whats New
products graphic
white space
products
Software Technology Roadmap
What's New
Background & Overview
Technology Descriptions
Defining Software Technology
Technology Categories
Template for Technology Descriptions
Taxonomies
Glossary & Indexes
Feedback & Participation
Software Engineering Information Repository (SEIR)
white space
About SEI|Mgt|Eng|Acq|Collaboration|Prod.& Services|Pubs
pixel
Rollover Popup Hints for Topic Navigation Buttons above
pixel
Certificates


Status

Draft

Purpose and Origin

Digital certificates, or just certificates, are computer-based files or structures used to convey information about a user for identification purposes [Gerck 97]. Certificates are based on the ITU-T Recommendation X.509 [ITU-T 97]. There are a number of different certificates (called end-entity certificates) defined in the X.509 specification:

  • Personal certificates represent individuals, and are typically used to secure e-mail and access to web servers.
  • Server certificates indicate that a server belongs to the company it claims to belong to.
  • Developer certificates are used by developers to sign software or other objects.

A certificate binds an identity (a name) to a public key. The certificate includes the name of the person (e.g., Bob), their public key (e.g., Bob's public key), and a digital signature sealing the data. This information can be verified (authenticated) by validating the digital signature.

Similar to the signature and stamp of a Notary Public, the digital signature is added by a trusted third party known as a certificate authority (CA). Certificate authorities confirm the relationship between identities and their public keys. Certificate authorities also publish public keys that then verify end-entity certificates. This process uses the public key of the authority that issued the certificate to validate the digital signature.

So, how do you get the public key of a certificate authority? In addition to end-entity certificates, the X.509 specification defines certificate authority certificates. These special certificates identify third party organizations entrusted to validate the identity of individuals requesting end-entity certificates. Similar to end-entity certificates, CA certificates contain a name (the name of the authority), a public key, and a digital signature sealing the data. CA certificates are critical in obtaining end-entity certificates and close the circle of trust.

Technical Detail

Certificates are obtained by sending a request to a certificate authority. Information about an individual (for personal certificates) a site, or company is sent to a CA along with a public key. The package sent to the CA is called a certificate signing request and is also defined in the X.509 specification.

Upon receiving the request, the certificate authority validates the contents through a process defined and published by the authority. The authority validates the digital signature placed on the signing request to ensure that it is a valid public key (i.e., it is part of a public/private key pair). Ultimately, confidence in the certificate is based on the trust you place on the certificate authority's assurance mechanism.

If the information contained within the certificate request is recognized as genuine, the authority generates the requested certificate. In addition, the authority chains their certificate to the new certificate. This allows an individual receiving the certificate to identify the authority that issued it, and to consider this information when deciding to accept or reject the certificate.

As this discussion demonstrates, the mathematical sophistication of public key encryption (PKI) ultimately rests upon a foundation of public trust. That is, we trust that a public key belongs to a particular individual, and this trust is vested in one or more authorities. Alice believes she possesses Bob’s public key because she trusts the authority that told her so.

Usage Considerations

Certificates are used when it is necessary to positively and uniquely identify and bind an end-entity for the purposes of non-repudiation, confidentiality, and integrity in public key encryption systems.

Maturity

In many cases use and application of public key cryptography requires the use of certificates (such notable exceptions include PGP [Pretty Good Privacy]) so that the owner of a public key can be known. Certificates are supposed to follow the X.509 specification which governs the format of certificates. X.509 is now in version 3 of the specification, commonly known as X.509v3. What is good about version 3 of the specification is that it permits certificate extensions - allowing application developers and system designers to embed additional information within the certificate itself (such as limitations on the specific use of a certificate). The X.509v3 specification is generally supported by all that report to support certificates, but known cases of incompatibilities exist between software that generates certificates and software that parses certificates. In most cases, the incompatibilities have been traced to poor implementation of the X.509v3 specification either in the generation or parsing of X.509v3 certificates. Some maturation of certificate technology should be expected.

Costs and Limitations

See Costs and Limitations associated with public key cryptography.

Although the specification of the base certificate (version 1 and version 2) is fairly mature (as it is backwards compatible), X.509v3 extension can cause incompatibilities between applications that generate and use certificates. Although many examples exist it is recommended that those looking into the use of certificate technology in public key cryptography systems learn about specific X.509v3 extension that are either required or expected to exist before selecting certificate management software.

Index Categories

This technology is classified under the following categories. Select a category for a list of related topics.

Name of technology

Certificates

Application category

Information Security (AP.2.4)

Quality measures category

Security (QM.2.1.5)

Computing reviews category

Operating Systems Security & Protection (D.4.6),
Security & Protection (K.6.5),
Computer-Communications Networks Security and Protection (C.2.0)

References and Information Sources

 

[Abrams 95]

Abrams, Marshall D.; Jajodia, Sushil; & Podell, Harold J. Information Security An Integrated Collection of Essays. Los Alamitos, CA: IEEE Computer Society Press, 1995.

[Gerck 97]

Gerck, E. Overview of Certification Systems: X.509, CA, PGP and SKIP, Available WWW: <URL: http://www.mcg.org.br/cert.htm>

[ITU-T 97]

ITU-T Recommendation X.509 (1997) | ISO/IEC 9594-8:1995 Information technology - Open Systems Interconnection - The Directory: Authentication framework.

Current Author/Maintainer

Scott A. Hissam, SEI

External Reviewers

 

Modifications

9 Dec 01 (original)



The Software Engineering Institute (SEI) is a federally funded research and development center sponsored by the U.S. Department of Defense and operated by Carnegie Mellon University.

Copyright 2007 by Carnegie Mellon University
Terms of Use
URL: http://www.sei.cmu.edu/str/descriptions/certificates_body.html
Last Modified: 11 January 2007