Certificate Authorities (CAs) are organizations that verify the identity of a subject (represented in a certificate request) and issue signed X.509 certificates. CAs can be internal or external to an organization and can issue different types of certificates that are for a specific purpose or to confer varying levels of trust.

External CAs are typically commercial entities that provide certificate issuance to customers for a fee. Examples of External CAs include Thawte, VeriSign and RSA.

CAs offer different "grades" of signed certificates for purchase. Some have a nominal fee, and come with minimal requirements to prove the subject's identity. For example, a certificate used to sign emails may be only cost a few dollars and only requires email confirmation to prove that the email address represented by the Subject in the certificate is authentic. By contrast, a certificate used for more trusted activities may cost upwards of a hundred dollars and require a far more rigorous screening process to ensure the subject meets the requirements for the certificate. Parties that wish to use any type of certificate must decide that the criteria to qualify for such a certificate are sufficient for their needs, and that they consider the CA itself to be sufficiently reputable.

Internal CAs such as those provided by Windows Server can simplify certificate management activities, but in this case the trust of the certificate is now based on the organization that issued it. Issued certificates for Subjects within the organization's security domain (usually defined within Active Directory) are typically signed with the organization's root certificate or another other "parent certificate" allowed to sign certificates.

The chain of certificates, from the Subject's certificate to the root certificate used by the CA for signing subject's certificate, is known as a trust chain. A party may decide to trust certificates at any level within the trust chain. This allows them to trust certificates further down the chain, as long as they are able to trace the trust chain back to the level of the certificate they original trusted.

 

Note: In test environments, you may choose to use certificates that do not have rigorous requirements for proving the identity of the subject. Certificates can be generated and self-signed using the makecert utility, however there are known performance issues when verifying digital signatures using certificates generated by the makecert utility. For more details on the makecert utility, see Certificate Creation Tool (makecert.exe)

 

Obtaining an X.509 Certificate

Depending on the type of CA, X.509 certificates can be obtained in a variety of ways. For external CAs, certificates are typically obtained for a subject by submitting a Certificate Signing Request (CSR). A CSR contains the subject’s name, public key and algorithm for which the key is used (the vast majority of X.509 certificates you are likely to encounter use RSA for its algorithm).

The public key included in the CSR comes from a public/private key pair generated specifically for use with the requested certificate. As soon as the public/private key pair is generated, the private key should be immediately stored in a secure place such as a machine key store, with access to the key solely restricted to authorized parties. Ideally, the only party able to access the private key file would be the subject represented in the X.509 certificate, although some infrastructures may allow access to the certificate private key by other accounts. When parties other than the subject represented by the X.509 certificate are allowed to access the certificate private key, the ability to support non-repudiation may not be possible. While the public key of the public/private key pair is required for the CSR, the private key should never be sent to the CA under any circumstance.

Internal CAs may also use CSR’s to process X.509 certificate requests; however, since the CA is internal to a specific organization, there can be additional options that reduce the overhead required to process requests and verify subject identities. For example, an internal CA using Windows Certificate Server may enable auto-enrollment, which automates certificate request and issuance for user accounts created within an Active Directory domain.

Figure 1 depicts the process of a Subject requesting and issuing an X.509 certificate involving a CA that processes Certificate Signing Requests:

 

Figure 1

Requesting and obtaining a certificate from a CA

Certificate Revocation

X.509 certificates can be revoked by the issuing CA if the integrity of the certificate has somehow been compromised. The justification to revoke an issued certificate varies with each CA, but some general causes for certificate revocation include:

 

X.509 CAs typically publish a list of certificates that have been revoked, based on the CA’s criteria for certificate revocation. These lists are known as Certificate Revocation Lists (CRLs). CRLs are made publicly available, so that a recipient can verify whether or not a certificate used to sign a message is valid. Any message recipient that receives a signed message, should verify that the subject’s certificate has not been revoked, to ensure the integrity of the signatures, based on the expected level of trust associated with the type of certificate.

Certificate Storage and Access

X.509 Certificates can be stored and accessed in a number of ways, including:

 

Certificate Management

There are many issues related to certificate management and this chapter does not attempt to provide complete coverage. One issue that is significant to consider for message layer security is whether distinct certificates should be created for signing and encrypting message layer data.

For message based security, it is considered good practice to use distinct certificates and key pairs for encryption and digital signatures rather than using a single key pair for both. One reason is that the contents of the certificates, as well as policies for issuance, key distribution, revocation, notification of revocation, and key backup are likely to differ depending on the purpose the keys are used for. This is particularly true when signatures are used for longer term authentication and integrity of business documents, rather than merely temporary authentication of a session. Also, if encrypted messages are persisted to disk you may need to decrypt the messages using an archived version of the private key. However, you would not want new digital signatures to be created with this private key.

 

Microsoft Confidential. © 2005 Microsoft Corporation. All rights reserved. By using or providing feedback on these materials, you agree to the attached license agreement.