Deploying and Managing PKI inside Microsoft

Technical White Paper

Published: February 2005; updated June 2009

Download

Download Technical White Paper, 599 KB, Microsoft Word file

Situation

Solution

Benefits

Products & Technologies

Microsoft IT needed a platform to help secure network communications, help protect data (both at rest and in transit), and certify internal code.

Microsoft IT deployed Certificate Services in Windows Server 2003, and Active Directory Certificate Services in Windows Server 2008 and Windows Server 2008 R2, to implement an infrastructure for encrypted communications, security-enhanced remote authentication, and software validation.

  • Enabled strong network user authentication by using smart cards
  • Helped protect e-mail communications by using S/MIME
  • Improved security of Web connections by using SSL or TLS
  • Helped ensure the confidentiality of stored data by using EFS
  • Helped ensure the confidentiality and integrity of transmitted data by implementing IPsec
  • Enforced system health by using NAP
  • Windows Server 2003
  • Windows Server 2008
  • Windows Server 2008 R2
  • Windows-based PKI and CA
  • Certificate Services and Active Directory Certificate Services
  • Smart cards
  • EFS
  • IPsec
  • S/MIME
  • SSL
  • NAP

Executive Summary

Many of the techniques and products available to help secure an enterprise network rely on some form of cryptography. A public key infrastructure (PKI) provides the certificates used by each party involved in a cryptographically secured electronic transaction. To help secure the Microsoft corporate network and certify its software, Microsoft Information Technology (Microsoft IT) needed to implement several initiatives that required cryptographic techniques. Today, these initiatives include:

  • Certificate-based 802.1X wireless authentication.
  • Smart cards for two-factor remote access authentication.
  • Secure Multipurpose Internet Mail Extensions (S/MIME) for digitally signing and encrypting e-mail.
  • Encrypting File System (EFS) for file and folder encryption.
  • Internet Protocol security (IPsec) for the security of network transactions.
  • Secure Sockets Layer (SSL) for the security of Web connections.
  • Network Access Protection (NAP) for enforcing system health.

These initiatives required the presence of an enterprise-wide PKI to provide public key–based security services.

Running its own certification authorities (CAs) rather than using commercial, third-party services enabled Microsoft IT to more securely manage the infrastructure and reduce the costs associated with issuing certificates and managing an external CA relationship. Implementing an enterprise PKI enabled Microsoft IT to better secure its network-based communications.

Microsoft IT's easy-to-manage, standards-based, scalable PKI solution resulted in a method to exchange sensitive data, compatibility with other Microsoft applications, and lower infrastructure costs.

This white paper describes the production deployment and use of the PKI features available in the Windows Server® 2003, Windows Server 2008, and Windows Server 2008 R2 operating systems. This white paper also offers lessons learned and best practices, and it includes a discussion on the future directions of the technology at Microsoft. It assumes that readers are technical decision makers and are already familiar with the fundamentals of public key cryptography systems, the benefits that such systems offer, and the components required to implement those systems. Links to additional sources of information about PKI are available in the "For More Information" section at the end of this paper.

This paper, first published in June 2005 and updated in May 2009, reflects the deployment of new Microsoft products within the corporate infrastructure and describes associated infrastructure changes.

Note: For security reasons, the sample names of forests, domains, internal resources, organizations, and internally developed security file names used in this paper do not represent real resource names used within Microsoft and are for illustration purposes only.

Introduction

The charter of Microsoft IT is to maintain an IT environment composed of services, applications, and an infrastructure that provides availability, privacy, and security to Microsoft employees in more than 400 locations worldwide. Microsoft IT is responsible for running the company's internal networks, telecommunication systems, corporate servers, and all line-of-business applications. In addition, Microsoft IT is committed to testing Microsoft enterprise products in a production environment before they are released to the public (a process commonly referred to as "dogfooding"), and providing feedback to the product development groups by being their first and best customer.

Currently, the server infrastructure at Microsoft consists of servers running Windows Server 2003, Windows Server 2008, and Windows Server 2008 R2. Security continues to be at the highest level of priority across all areas of product development at Microsoft and within the corporate infrastructure. By implementing an enterprise PKI, Microsoft IT can use standards-based cryptographic technologies to help secure the Microsoft corporate network and its data.

Initial PKI Deployment

The first PKI hierarchy at Microsoft was introduced in February 2000 and consisted of three tiers: one stand-alone offline root CA; two stand-alone intermediate CAs; and multiple specialized, online enterprise issuing CAs.

The offline root and two intermediates functioned as follows:

  • Microsoft Corporate Root CA. This CA was the root of the corporate PKI hierarchy. Its only purpose was to issue or revoke the certificates of the two offline intermediate CAs.
  • Microsoft Intermediate Intranet CA. This offline intermediate CA certified all other CAs used to issue certificates intended for use only within the bounds of the Microsoft corporate network environment.
  • Microsoft Intermediate Extranet CA. This offline intermediate CA certified all other CAs used to issue certificates intended for use outside the bounds of the Microsoft corporate network, including the Internet and the Microsoft extranet environment.

There was no support for cross-forest enrollment; therefore, each forest required its own set of enterprise CAs. However, each forest used the same offline stand-alone root and intermediate CAs.

All the enterprise issuing CAs were subordinate to the intermediate CAs. Table 1 details the function of each issuing enterprise CA in the hierarchy.

Table 1. Types of Online Enterprise Issuing CAs Initially Deployed

Type of CA

Function

Intranet Network

Issued certificates for network-wide services that related to general server, user, or network administration, such as an enrollment agent and EFS data recovery

Intranet Computer

Issued authentication and IPsec certificates for computer accounts, including domain controllers

FTE User

Issued user-based certificates for full-time Microsoft employees on the corporate network for general client authentication and EFS

Non-FTE User

Issued certificates for temporary contract and vendor staff users on the corporate network for general client authentication and EFS

Intranet Level 2 User

Issued certificates for full-time Microsoft employee users for smart-card logon

Personnel E-Mail

Issued certificates for S/MIME digital signatures and encryption services

Extranet Computer

Issued certificates for computers outside the corporate network, such as Web servers and business partner systems

Figure 1 shows the hierarchy of CAs in the initial primary PKI design that Microsoft IT created. A secure, Microsoft IT–controlled vault housed all of the CAs.

Hierarchy of the initial primary PKI design with Microsoft Windows® 2000 Server

Figure 1. Hierarchy of the initial primary PKI design with Microsoft® Windows® 2000 Server

The stand-alone, offline root signed the offline intermediate CAs. Then, the offline intermediates signed the online enterprise subordinate CAs. The online enterprise CAs were the issuing CAs for all certificates issued internally at Microsoft.

Microsoft IT defined the root certificate as a 16-year CA certificate lifetime, a 4,096-bit key length, and a 90-day Certificate Revocation List (CRL) publishing interval. The CRL was published to an external Hypertext Transfer Protocol (HTTP) path and in the Active Directory® directory service through a Lightweight Directory Access Protocol (LDAP) URL. Microsoft IT defined a two-year CA lifetime for each of the issuing CAs, by using 2,048-bit keys. The CRL publication interval on the issuing CAs varied, depending on the function of the certificates being issued.

End-entity certificates are generally issued with a validity period of one year or less. Because a CA cannot issue a certificate with a validity period that exceeds that of its own certificate, the certificates for issuing CAs need to be renewed annually. The issuing CAs can thus continue to issue end-entity certificates that will be valid for their full, intended one-year validity period.

Changes to the Multi-Tier Structure

The primary reason for deploying the three-tier hierarchy was the intended separation of internally used certificates versus those that would be used outside the company, which would potentially drive the need for different certificate policies in addition to overall service management practices. However, the existing private corporate root was not very usable for security-enhanced communications outside the Microsoft corporate network. Because the Microsoft corporate root was unique to Microsoft, no one outside Microsoft trusted it by default. It is critical that client computers trust certificates, such as those used for SSL server authentication. Because of this requirement, Microsoft IT used to purchase individual certificates for SSL-enabled Web sites that non-Microsoft personnel were intended to access. Microsoft IT purchased these certificates from a publicly trusted, third-party provider, rather than issuing them from the Microsoft internal PKI infrastructure.

As the use of individual publicly trusted certificates grew, Microsoft IT found that purchasing these certificates was increasingly expensive. The use of S/MIME was also increasing. S/MIME certificates were all issued by CAs that chained to the Microsoft corporate root. To facilitate usage of these certificates outside the Microsoft corporate network, external recipients needed to manually install the Microsoft Corporate Root Certificate. This process and the user education around it proved to be laborious. Microsoft IT needed to include the architecture of a public root hierarchy in its PKI infrastructure for external security requirements, so that all parties could acknowledge that they trusted the root of the certificate chain.

Rather than continue to buy each end-entity certificate individually from a trusted third-party provider, Microsoft IT decided to create a second, independent PKI infrastructure by subordinating its own offline intermediate CA to that of a publicly trusted root CA. Microsoft IT agreed to pay GTE CyberTrust, Inc., an annual fee for subordinating a Microsoft CA under the GTE CyberTrust Root and GTE CyberTrust Global Root. Since 1998, both of these root certificates have been shipped as trusted roots in Microsoft operating systems and a variety of third-party operating systems. The GTE CyberTrust roots provide the ubiquity that Microsoft needed to satisfy its public trust needs for both SSL and S/MIME.

With this new model, the third-party provider handled all of the issuance and revocation needs for the new intermediate CA. Microsoft IT staff continued to own and manage all the internally managed CAs. These new developments negated the need to retain the original intranet and extranet offline intermediate CAs, for that reason Microsoft IT made a decision to retire them.

Figure 2 depicts the hierarchical changes after Microsoft IT adopted a publicly trusted root model.

Modified hierarchy

Figure 2. Modified hierarchy

Security Requirements

Even though Microsoft internal hierarchy no longer had the previous intermediate CAs, Microsoft IT did not lower any of the existing security controls. The root and the new intermediate CA were offline and never exposed to network traffic, thereby minimizing the chance of a compromise. Because these CAs were offline, Microsoft IT security staff manually issued and published their certificates (through a portable medium) to Active Directory. Additionally, the security staff issued certificates to all online enterprise CAs in the appropriate Active Directory forest by manually copying certificate request files from the online servers to the offline roots and intermediate. The security staff used portable media to transport the certificates between servers. The requests were processed, and security staff transferred the issued certificates from the offline CA back to the online server for installation.

To decide on the security required for a CA, Microsoft IT determined the risks of attack on the CA in addition to the costs of a CA compromise. Higher risks of attacks on the CA and higher costs of a CA compromise justified higher costs for security measures to protect the CA. Offline root (and subordinate) CAs usually need higher levels of protection than issuing CAs.

Certificate Services in Windows Server 2003—the feature called Active Directory Certificate Services (AD CS) in Windows Server 2008 and Windows Server 2008 R2—shipped with a software cryptographic service provider (CSP) that complied with the Level-1 requirements of Federal Information Processing Standard (FIPS) 140-1. To provide stronger protection of the CA's private keys, Microsoft IT installed Hardware Security Modules (HSMs) on each CA server. The modules were certified to FIPS 140-1, Level-2 and Level-3. Microsoft IT determined that it needed to raise the security level of the offline root to FIPS 140-1, Level-3.

Note: The National Institute of Standards and Technology (NIST) issues the FIPS standards and guidelines for use within the U.S. federal government. FIPS 140-1 defines the "Security Requirements for Cryptographic Modules" as of January 1994. FIPS 140-2 defines the same topic but does so with more stringent security requirements as of June 2001. For specific definitions of the various security levels, visit the NIST PKI Web site at http://csrc.nist.gov/pki/.

After evaluating the risks of an attack and then weighing those against the cost of service recovery, an organization should determine its own level of security protection for its CAs, especially the root CA. Security protection does not have to be expensive, especially for smaller companies. There might be adequate protection in having the offline root CA in a secure computer cabinet or using removable media that is stored in a safe.

The sections that follow describe the security measures that Microsoft IT took in its Windows Server PKI infrastructure.

Protection of CA Private Keys

The operating system manages the private-key pairs generated by a software CSP in Windows Server. This situation exposes a considerable risk if the system is compromised. With these keys, an attacker can re-create the CA and issue seemingly valid certificates. This is a typical FIPS 140-1 Level-1 security risk, which an organization can mitigate by providing more difficult and verifiable physical access to the Windows Server CA system.

Microsoft IT chose to mitigate the risk associated with private key storage by using HSMs in all deployed CAs. By using specialized, tamper-resistant hardware to help protect private cryptographic keys, HSMs provide a high level of security for the keys, for the CA, and for the certificates that the CA signs. Microsoft IT decided to use the nCipher nShield HSM because:

  • It provides interaction with CryptoAPI.
  • It provides the FIPS 140-2 Level-2 and Level-3 validated security certifications that Microsoft IT required for its security standards.

The nCipher nShield modules are certified for FIPS 140-1 Level-3 compliance. This was important in establishing a level of trust between Microsoft and its business partners, including the U.S. government. The Microsoft Corporate Root CA used an HSM configured in FIPS 140-1 Level-3 mode.

Each nShield HSM contains an integrated smart-card reader. When configuring the nCipher HSMs, Microsoft IT created security worlds with administrative card sets, most composed of six smart cards, any three of which were required to perform administrative functions. A security world is a concept encompassing secure key protection practices, which can be certified according to the Federal Information Processing Standards (FIPS) standards Microsoft IT needed the administrative cards whenever it brought a new CA online and added it to the associated security world. The Legal and Corporate Affairs department received two cards, the Corporate Security team retained two others, and Microsoft IT stored the final two at an offsite facility as a backup. The requirement of three smart cards for signing operations provided role separation and guaranteed that performing such high-level functions required the involvement of members from more than one group.

Microsoft IT adhered to the following model when creating nCipher security worlds for various levels of the hierarchy:

  • A root security world for the offline corporate root CA
  • A policy security world for the offline intermediate CA
  • An issuing security world containing all online issuing CAs

The security worlds provided a distinction between the various CAs and administration activities. By separating the issuing security world from the offline security worlds, and by using the principle of least privilege, Microsoft IT obtained a greater level of assurance.

In addition to the security worlds and the administrative cards, the HSM configuration used an operator smart card to help protect the private keys for each of the offline CAs. The Corporate Security team holds these cards. Because the Corporate Security team does not have access to the physical location of the servers, it had to cooperate with Microsoft IT whenever it needed access to these servers' private keys. Originally, the operator cards for the online issuing CAs remained inserted into the nShield modules because they were needed each time a CA's key was accessed. However, Microsoft IT decided to change that model and migrated to the module protection type instead, because leaving an operator card inside the module is essentially the same as having the module protect the keys itself.

This level of security, in combination with stringent physical access, helped maintain a high level of assurance regarding the use of these CAs.

Physical Security

A Microsoft IT-controlled vault houses the offline CAs. Without network connectivity, certificate signing and revocation are manual processes that require physical access to the vault.

Entrance into the vault requires at least two authorized people at a time, and only people who have been approved by Corporate Security can enter the vault. Entry into the vault is further controlled through multiple security requirements, including the combined use of building access cards, biometrics, and personal identification numbers (PINs). In addition, one of the persons entering the vault must be one of two specifically designated employees with knowledge of the code needed to disarm the security alarm inside the vault.

Furthermore, the Microsoft Security Control Center monitors all vault entries and the alarm status. By policy, the Security Control Center must be notified of any vault entry and provided with the identities of the individuals making the entry. If the Security Control Center does not receive a notification, it investigates any detected entry into the vault as suspicious.

Originally, the Microsoft IT vault housed the online issuing CAs as well. However, to provide a more effective server and service management, Microsoft IT decided to move all of the issuing CAs to a data center with the rest of the company's server infrastructure, but place the CA computers into a separate security cage that employs a series of stringent security controls for higher protection. CA cage access is restricted to a limited number of data-center support personnel, and it requires the use of biometrics in addition to card keys. Inside the cage, the rack that holds the CAs is protected with an alarm system that must be disarmed by a minimum of two authorized individuals who must swipe their card keys. Finally, all activities in the cage are monitored by video surveillance in addition to physical security staff in the data center.

Network, Server, and Directory Security

Access control list (ACL) permissions control enrollment permissions on both the CA servers and the certificate templates in Active Directory. Microsoft IT restricted the issuance of sensitive certificate types—such as issuance of server authentication certificates, which validate the identity of the server computer—to only designated personnel. All of the information was published to various Active Directory containers controlled by ACLs. These containers are part of the Active Directory Configuration container, enabling the Configuration container to be replicated to all domain controllers within the forest. Microsoft IT thus maintains central control over enrollment of these certificates, mitigating the possibility of unauthorized certificate issuance and usage.

Though authorized data-center personnel have physical access to the CA servers, logon is not allowed (access is limited to hardware maintenance and support only). To assist with operating system and service monitoring, Microsoft IT reached an agreement with the Microsoft Global Operations team that acts as the first point of contact for support of the entire infrastructure at Microsoft (including domain controllers and other high-security servers) and allowed a subset of Global Operations senior staff members to log on to the CAs for the purpose of troubleshooting and regular maintenance. Members of this support team must use two-factor authentication to log on. Before access can be provisioned, each support technician must take CA training (in the form of a video course prepared by the Microsoft IT CA team) and have his or her manager certify that training was successfully completed. Upon completion of the training, each support technician must go through an official access-provisioning request process, which has been recently tied into the overall elevated account-provisioning process for all high-security access at Microsoft. After CA access is approved, the records are logged into a secure-access database and reviewed on a quarterly basis.

Policy Controls

In 2007, a new PKI Policy Committee was formed at Microsoft. It consisted of members of the Legal and Corporate Affairs department, the Corporate Security team, the PKI product group, and senior researchers in the area of cryptography. Additionally, the committee published a new document about PKI standards; this document required the committee to review and approved all proposed changes to the Microsoft IT PKI. Such changes include creating a new CA, modifying template permissions, and provisioning new access. This extra layer of control helps ensure that all Microsoft IT PKI operations match all corporate and government policies, in addition to the overall Microsoft direction in the Certificate Services arena.

CRL and AIA Considerations

During the installation and configuration of Certificate Services, Microsoft IT configured each of the following:

  • Publication of offline CAs to Active Directory. Microsoft IT published the offline root and subordinate CAs to Active Directory through certutil.exe. Microsoft IT published the root certificate directly to the Certification Authorities and Authority Information Access (AIA) containers of Active Directory. Microsoft IT uses the Certification Authorities container to define trusted root CAs within the enterprise, and all enterprise clients recognize it. Microsoft IT could have opted to distribute the root certificate by using Group Policy. However, this distribution would have required separate policy configurations for each domain in the enterprise structure. By publishing the root certificate directly to Active Directory, Microsoft IT pushed it to all enterprise clients—in multiple domains throughout the forest—in one process.

    Microsoft IT also originally published the offline intermediate CAs' certificates in the AIA container. This action provided a location from which users could obtain the certificates for the CAs. This container was an effective repository for CA certificates because it, along with the other PKI-related containers, is part of the Configuration container, which is replicated to every domain controller within the forest.

  • Certificates to be issued. Microsoft restricted the issuing CAs to issuing only specific certificate types. By default, an enterprise CA is preconfigured with a variety of certificate templates. Microsoft IT deleted unwanted certificate templates from the CAs and added the templates that it wanted.
  • CRL distribution point. The CRL distribution point is an extension in a certificate that defines where a CA publishes its CRL. The CRL distribution point is where any client or application that is performing certificate validation, including revocation checking, can retrieve the current CRL from the issuing CA. This location is written into the certificates that the CA issues. Before Microsoft IT installed Certificate Services, it defined the CRL distribution point URLs that would be included in the offline root certificate by creating a Capolicy.inf file and defining the paths that it wanted. Configuration of this extension in Certificate Services after installation then defined which URLs would be included in the certificates that the root CA issued.
  • Authority Information Access. Similar to the CRL distribution point extension, the AIA extension defines where the CA's certificate is published. This information is also written into certificates that the CA issues. Prior to the installation of the CA, Microsoft IT defined in Capolicy.inf the information that would be written into the root certificate. Configuration of this extension in Certificate Services after installation then defined which URLs would be included in the certificates that the root CA issued.

CRL Publication

When any application, user, or process validates a certificate, it makes sure that the certificate chains to a root that is trusted on that system, is time-valid, and contains the specific functional capabilities for which it is being presented. If all of these checks pass, the certificate is considered valid.

The CRL is checked to make sure that certificates that otherwise would be considered valid have not been revoked. The CRL itself is a file, signed by the CA, that contains a list of revoked certificates. The list defines the revoked certificates by serial number, and it includes the revocation date in addition to the reason for revocation. The application that is performing the certificate validation determines whether or not it checks for revoked certificates as part of the validation process. When an application checks for revoked certificates, it retrieves the current CRL from one of the URLs specified in the CRL distribution point extension of the certificate being validated. After the CRL is retrieved, it is typically cached until its expiration. After a CRL is cached, the application performs further revocation checks against this cached copy, eliminating the need to retrieve the CRL for each revocation check. When expired, the CRL itself becomes invalid, forcing the download of a new CRL.

CRL Lifetime

Microsoft IT configured different CAs to have different CRL publication intervals, depending on how the certificates that the CAs issued were being used. For example, Microsoft IT configured the CRL lifetime to be 24 hours for the smart-card CAs, and four days for the utility CAs (Utility CAs are those CAs that issue a variety of certificates to Microsoft users and computers, including IPsec, wireless, domain controller authentication, remote access and IAS, and EFS.

The purpose of the differential was to balance the need for timely CRL updates if a certificate needed to be revoked, while minimizing the performance impacts of frequent CRL retrieval and directory replication. With the revocation of a smart-card authentication certificate, Microsoft IT wanted the revocation status to take effect as quickly as possible. Because a CRL is cached until it expires, short expirations would ensure timely CRL updates that would reflect current revocation status more quickly.

CRL publishing for the offline CAs is a manual process. The CRL lifetime for the offline CAs at Microsoft is 90 days. Members of the Corporate Security team must enter the vault to manually publish the CRL from these offline CAs because they are normally turned off and always lack network connectivity. Certificate Services/AD CS handles CRL publishing for the online CAs automatically.

A CRL has an established lifetime, and a new CRL must be published before the old CRL expires. The CRL publication interval includes a buffer to define a specific amount of time for which existing CRLs will remain valid after the next scheduled CRL publication. The purpose of this overlap period is to provide time for manual publication and replication of the newly created CRL prior to the expiration of the original CRL, and to avoid leaving a gap in the availability of a valid CRL. The default overlap period is 10 percent of the CRL lifetime period, with a maximum of 12 hours.

When Microsoft IT decided to publish a new CRL every 24 hours for smart-card CAs, the default overlap period was reduced to just 2.4 hours. Because this period did not provide sufficient time for replication of the new CRL throughout Microsoft IT‘s worldwide enterprise, before the previous CRL expired, Microsoft IT needed to manually configure the CRL overlap to extend the validity period. The extended period ensured that the old CRL would remain valid while the new CRL was being replicated throughout the network. As such, smart-card CA CRLs are published 24 hours with a 24-hour overlap period, making the CRL valid for 48 hours. The rest of the CA CRLs are published every four days with a four-day overlap period, making those CRLs valid for eight days.

PKI-Enabled Services

Microsoft IT had several user requirements that needed the deployment of cryptographic technologies. These requirements included:

  • Enabling strong network user authentication by using smart cards.
  • Helping to ensure the confidentiality and integrity of transmitted data by using IPsec.
  • Helping to ensure the confidentiality of stored data by using EFS.
  • Helping to secure e-mail by using S/MIME encryption and digital signatures.
  • Helping to secure Web connections by using SSL or Transport Layer Security (TLS).
  • Enforcing health of domain-member computers by implementing NAP.

The following sections describe how Microsoft IT was able to meet each of those requirements with the help of Certificate Services/AD CS.

Smart Cards for Remote Access

A smart card is a credit card–size, portable token that holds memory, a file and operating system, and a microprocessor; it might also contain radio frequency identification (RFID) and a personal identification photo printed on it—both important in considering physical authorization to company buildings or other controlled-access facilities.

Microsoft IT considered several alternative technology solutions before selecting smart cards as the preferred solution. Smart cards provided the best overall value based on reliability, performance, cost, features, mobility benefits, ease of support, and integration with the Microsoft IT Windows network environment.

Smart cards must support authentication and authorization: The cardholder is authenticated through the PIN, and can be authorized to access only a particular range of data on the card, or carry out a particular range of activities with the card. A key feature of smart cards is that they provide security-enhanced storage for data; one important component of such storage is smart-card logon certificates.

The combined use of the smart cards and Extensible Authentication Protocol (EAP)/TLS enables a much stronger authentication mechanism over the standard approach of entering a user name and password.

The smart-card solution initially took advantage of technologies found in the Windows 2000 Server infrastructure, including Certificate Services, Routing and Remote Access, and Internet Authentication Service (IAS). The smart-card solution was enhanced when Microsoft IT upgraded to Windows Server 2003. The PKI enhancements to Windows Server 2003 and Windows Server 2008 enabled Microsoft IT to better manage certificate enrollment and renewals, as well as delegate the process of creating and distributing smart cards.

To enable issuance of smart-card logon certificates, Microsoft IT deployed two CA servers for each production forest, and configured those to chain under the Microsoft Corporate Root CA. The two smart-card CAs act as smart-card issuing authorities only—no other certificate templates are deployed on these servers.

Two other certificate types are required for enabling smart-card-based logon:

  • Domain controller authentication certificates (for all domain controllers in the forest)
  • Remote access and IAS server certificates (for all Remote Authentication Dial-In User Service [RADIUS] servers participating if smart cards are used for virtual private network [VPN] access)

Microsoft IT issues both of those certificates from another set of CAs (utility CAs) that also chain to the Microsoft Corporate Root.

The Microsoft corporate environment encompasses nine forests, which include production, preproduction, and other business and test environments. Today, one administrator must sometimes manage resources across multiple forests. Hence, if an administrator must use his or her card to authenticate to a resource in another forest, the smart-card CA that issued the administrator's logon certificate must be trusted for authentication in the forest where the resource is being accessed. To accomplish that, Microsoft IT manually publishes the certificate of the issuing smart-card CA to the NTAuth container of every forest where the administrator might attempt to access the resource.

Delegated Issuance

Microsoft IT did not want to allow users to simply enroll themselves for smart cards. Microsoft IT wanted to maintain control of the issuance and distribution so that a face-to-face authentication could be performed and so that only authorized users received smart cards.

For the initial pilot deployment, the plan was for Microsoft IT staff (located in Redmond, Washington) to create and issue smart cards to all Puget Sound users, and then subsequently issue smart cards to all other users worldwide. However, Microsoft IT quickly discovered that for ongoing support, it needed a more distributed plan to securely and quickly cover the issuance of smart cards to users on a regional basis. Microsoft IT decided to use the delegated issuance model to support smart cards after the initial deployment.

The implementation of the delegated issuance model was possible only after Microsoft IT upgraded the corporate PKI to Windows Server 2003. The enhanced flexibility of the Windows Server 2003 and Windows Server 2008 PKIs—particularly the ability to specify detailed issuance requirements on the certificate templates—enabled the delegated issuance model to support the required limited functionality role of Delegated Issuance Officers (DIOs). Microsoft IT wanted to distribute the issuance of smart cards and maintain control over the issuance of the certificates on them. The delegated issuance model allowed the DIOs to submit certificate requests on behalf of other users, but the issuance of those certificates required the explicit approval of Microsoft IT. The new issuance requirement settings on Windows Server 2003 certificate templates enabled Microsoft IT to specify all new certificate requests to be set to a pending status and require approval from a certificate manager. After the request was approved and the certificate was issued, the DIO would be able to retrieve the certificate and write it to the user's smart card.

Members of Microsoft IT went on a worldwide tour to visit and train the various DIOs on their duties, required procedures, security considerations for smart-card distribution, and how to use the internally developed smart-card tools. Afterward, DIOs participated in weekly teleconferences with Microsoft IT to keep up to date on emerging and continuing issues.

Smart-Card Renewal

The Microsoft IT team also took advantage of the flexibility of PKI features in Windows Server 2003 and Windows Server 2008 to enable users to renew their smart-card certificates themselves. By using the new issuance requirement features, Microsoft IT was able to configure the certificate template such that authorized enrollment agents must perform initial enrollments for all new smart-card certificates. However, each user can renew his or her own smart-card certificate by employing the existing valid certificate to sign the renewal request for its replacement. This ability greatly reduces the ongoing costs associated with a smart-card deployment because Microsoft IT no longer needs to manually renew each smart card when the certificate expires.

In addition to enabling users to renew their own smart-card certificates, auto renewal functionality helps to ensure that users renew their certificates prior to expiration. The certificate template configuration allows for specification of the renewal period. When a certificate reaches this period, auto renewal code prompts the user to renew the certificate and provides an automated method to do so.

IPsec

IPsec is a framework of open standards for helping to protect communications over IP networks through the use of cryptographic security services.

In 2004, Microsoft IT introduced the concept of domain isolation to its corporate network. The purpose of such an initiative was to help protect domain-member, IT-managed resources from clients that are not members of an isolated domain. Microsoft IT chose IPsec as the enforcement method, and through a combination of Group Policy, IPsec policies and filters, Kerberos, and other key technologies, implemented it across the company.

Connection Manager, deployed to allow secure remote access to the corporate network, was also designed to require the use of IPsec in order to establish a secure connection to a domain-member resource. Additionally, Microsoft IT integrated Secure Remote User scripts that ran a set of checks on a client attempting to connect to the corporate network, and then performed several actions on that client to ensure that it met all the appropriate security policies. One of those actions was acquiring a computer certificate from one of the corporate utility CAs.

Microsoft IT provided two utility CAs (per forest) that were issuing IPsec certificates to client computers. Microsoft IT set the templates used for configuring the issuance of IPsec certificates to autoenroll, which helped streamline the issuance process. If, for any reason, the client failed to automatically obtain an IPsec certificate when trying to connect via remote access (Connection Manager), the client had an option to manually acquire such a certificate by using the CAs' Web enrollment pages. To allow that, however, Microsoft IT had to ensure that the issuing CA servers themselves would allow non-IPsec traffic; as a result, the servers were configured as IPsec boundary computers. Microsoft IT then published an IPsec Offline template on each of the utility CAs so that non-IPsec configured hosts could enroll for an IPsec certificate via the Web pages.

For more information about domain isolation via IPsec, refer to the IT Showcase white paper "Improving Security with Domain Isolation" at http://www.microsoft.com/downloads/details.aspx?FamilyID=A97DDC48-A364-4756-BB3C-91DA274118FE&displaylang=en

EFS

EFS is a component of the NTFS file system. It enables transparent encryption and decryption of files by using advanced, standard cryptographic algorithms. Any individual or program that does not have the appropriate cryptographic key cannot read the encrypted data. Encrypted files can be protected even from those who gain physical possession of the computer that contains the files. Even persons who are authorized to access the computer and its file system cannot view the data.

Microsoft IT enabled EFS via auto enrolled certificate templates published on two utility CAs (in each supported forest) that are signed by the Microsoft Corporate Root CA. Microsoft IT configured the two CAs with key archival to enable easy recovery of lost keys. It configured the EFS auto enrolled templates with a one-year validity period.

S/MIME

S/MIME is a technology that helps prevent impersonation and tampering with e-mail messages. S/MIME enables users to encrypt outgoing messages and attachments so that only intended recipients who have proper S/MIME certificates can read them. With S/MIME, users can also digitally sign outgoing messages. When a user digitally signs a message, he or she gives the recipient a way to verify the identity of the sender and verify that the message has not been tampered with.

The current Microsoft implementation of S/MIME includes storing encryption and digital signature certificates on smart cards. Employees can use any workstation equipped with a smart-card reader to send and receive S/MIME-enabled e-mail.

Before Microsoft IT started issuing S/MIME certificates, it configured a dedicated issuing CA, enabled it for key archival, and chained that CA up to a publicly trusted root (GTE CyberTrust Global Root). Configuring the CA for key archival allowed for fast key recovery in the case of lost keys, whereas establishing a third-party trust enabled Microsoft users to easily exchange security-enhanced e-mail with external recipients. However, the default third-party root CA policy did not include a key archival application policy. To enable it, Microsoft IT cross-certified its own intermediate CA that included such an application policy with the GTE CyberTrust Global Root which in turn allowed that function.

Microsoft IT now needed to publish certificate templates. Because the usage requirements and management practices for digital signature were going to be slightly different from that of encryption, Microsoft IT decided to create two separate templates. Table 2 shows the differences that led to that decision.

Table 2. Differences Between Digital Signature and Encryption

Consideration

Digital signature

Encryption

Validity period

One year (just like most other templates) seemed sufficient.

Two years was a better option to minimize the number of encryption keys to maintain and recover.

Archival

Was not necessary.

Required for the purposes of key recovery.

Number of keys

Unlimited.

Controlled for ease of recovery.

Microsoft IT chose to allow users to auto enroll for digital signature certificates at any time because there was no need to preserve those.

However, to simplify the recovery process, Microsoft IT decided to have a controlled deployment of encryption certificates. As such, Microsoft IT restricted auto enrollment to specific security groups. Such an approach also provided the opportunity for users to "opt in" to the use of S/MIME, as well as reduced additional support costs that would otherwise be associated with a global auto enrollment. As a result, Microsoft IT used a combination of an internal group management tool called Autogroup and back-end synchronization jobs to allow controlled enrollment of S/MIME encryption certificates.

Key Archival and Recovery

As previously mentioned, both EFS and S/MIME can use key archival. Private-key recovery does not recover any data or messages; it provides only recovery of lost or damaged keys. Often, keys must be recovered before encrypted data can be recovered.

One of the advantages of key recovery over data recovery is the savings recouped in support costs. For example, without key archival, if an EFS user encrypts a folder that contains 5 gigabytes (GB) of data on his or her local workstation and subsequently loses the private key, support teams must go through a laborious process of data recovery. This process includes:

  1. Backing up the locally encrypted data.
  2. Transporting the backup to a recovery workstation.
  3. Restoring the encrypted data onto a support technician's recovery computer.
  4. Decrypting the data.
  5. Creating a new backup set of the decrypted data.
  6. Providing the data back to the user on a read-only network share.
  7. Having the user restore and re-encrypt the data for his or her own use.

Alternatively, due to the costs involved, decisions on when to spend limited support resources on such tasks might prohibit the data recovery effort except in critical cases, thereby depriving some users of access to their lost data.

With key archival, support staff must restore only the user's private key to enable the user to decrypt his or her own data at will. Key archival and recovery benefits the user by improving support services and speeding access to the encrypted data, while reducing support costs for the enterprise. Additionally, the recovery agent does not need to have direct access to the encrypted material, providing an even greater level of security for confidential business data.

Key Recovery Agents

Only users with specific rights can perform key recovery. When keys are archived, they are encrypted with the key recovery agent's public key and stored in the CA database. To mitigate potential abuses of the key recovery process, Microsoft IT recommends using role separation. The people who hold the key recovery agent certificate may be separate from those who are able to retrieve the encrypted blob from the CA. As a result, the people authorized to retrieve archived key blob from the CA database may not possess the key recovery agent certificate and key needed to decrypt the blob. Those who do possess the key recovery agent certificate and key may not have access to the CA database. In this scenario, to recover a lost key, multiple people from different groups must be involved in the process.

To provide further security of the highly sensitive key recovery agent certificate and private key, Microsoft IT uses an nCipher HSM to store and help protect this key on recovery workstations. In this scenario, each designated key recovery agent has an nCipher nShield HSM installed on his or her workstation. Access to the recovery agent key requires this module.

Dependencies

Several dependencies are required for an organization to take advantage of key archival and recovery:

  • Key archival can be enabled only on Version 2 templates.
  • Key archival and recovery can be performed only on Windows Server 2003 Enterprise Edition, Windows Server 2003 Datacenter Edition, Windows Server 2008 Enterprise, or Windows Server 2008 Datacenter software running Certificate Services/AD CS.
  • The CSP must be able to export the key. For example, the Microsoft CSP that Microsoft IT uses with its smart-card infrastructure is capable of a one-time export of its private key, for the purpose of key archival. Most smart-card CSPs, however, cannot export private keys.

For more information about the key archival and recovery process, refer to the white paper "Key Archival and Management in Windows Server 2003" at http://www.microsoft.com/technet/prodtechnol/windowsserver2003/technologies/security/kyacws03.mspx.

SSL

SSL is a protocol that provides authentication and encryption capabilities for Web browsers, network devices, and other connection-related technologies.

In the past, Microsoft purchased its SSL certificates from a third-party PKI provider by prepaying for a large quantity on a yearly basis. Additionally, to manage the issuance of those certificates to the end user and provide technical support, Microsoft IT had a staff of two administrators who were enrolled into the third-party SSL administration service, which also required the use of "administrator"-type SSL certificate that needed to be paid for and renewed on a periodic basis. This approach posed a significant cost to the company, taking into account the large population of Web servers that Microsoft IT must maintain to run the company's Web based services.

As a result, Microsoft IT decided to use Microsoft technology—Certificate Services—and introduce an internal PKI that would issue its own SSL certificates to Microsoft Web server administrators, but at the same time provide a public root trust by chaining to a third-party root. The root is the GTE CyberTrust Global Root, which Microsoft IT is currently using for S/MIME and the SSL PKI services.

Today, the SSL CA issues thousands of certificates that are used both inside and outside the company, with significantly lower operational costs.

To manage the issuance of SSL certificates, Microsoft IT collaborated with an internal development team and created a custom registration authority tool that is now being used to service internal SSL consumers. All SSL certificate requests must go through this tool; no direct enrollment is allowed. The CA has been configured to allow only Enroll permissions to the service account, which is used by the registration authority tool.

Before a user can request an SSL certificate through the tool, he or she must obtain an authorization for the site. The authorization process ensures that a valid business justification is presented and all proper approval is received before any further action can be taken. After that has been accomplished, the user can successfully start submitting his or her certificate requests via the tool. Only requests for the approved URL will be allowed; requests for any additional sites must follow the same process as described previously.

Another key feature that the internal registration authority application provides is a notification service that notifies the user's contact distribution list (required for enrollment) 30 days, 7 days, and 1 day before the certificate expiration date. This functionality helps prevents service interruptions by enabling timely renewals.

The SSL CA is an enterprise CA that is dedicated to SSL certificate issuance only. It currently chains to an offline subordinate, which then chains to the GTE CyberTrust Global Root.

Wireless

Wireless networking enables users to easily access resources on a corporate network without having to maintain a physical network connection. To provide secure authentication to company resources, a proper authentication mechanism must be put in place. Microsoft IT's implementation of such a mechanism was a combination of 802.1X authentication with certificates and EAP-TLS.

Microsoft IT chose to enforce the use of both user and computer certificates for 802.1X authentication. When a computer comes online and attempts to access the network in order to log on to the domain, it must present a valid computer certificate. When it does so, the authentication request is processed, and if successful, the computer is connected to the network. After the computer is connected to the network, the normal computer authentication occurs, and normal processes such as Group Policy updates can occur. By the time the computer authentication has occurred, the system is ready for user logon. The process of authenticating the computer and obtaining network access prior to user logon enables the user to perform an online interactive logon, as opposed using cached credentials.

After the user successfully logs onto the computer, a short delay occurs before the system attempts the 802.1X user authentication. The system attempts to perform an 802.1X authentication, by using the user certificate, similar to the one performed via the computer certificate. If the authentication attempt fails, the wireless network access is dropped. If it succeeds, the system remains on the network.

To enable user-based and machine-based certificate authentication, Microsoft IT relied on the deployment of the existing utility CAs, which enabled autoenrollment for domain-member, authenticated users and computers. Because the certificate provisioning process was automated, successful enrollment required no additional action.

Product Updates and Associated Infrastructure Changes

Windows Server 2008 and Windows Server 2008 R2 have introduced certificate service–related enhancements, including the following:

  • Windows Server 2008:
    • Improved enrollment capabilities that enable delegated enrollment agents to be assigned on a per-template basis
    • Enhanced performance monitoring with the addition of new performance counters
    • Scalable, high-speed revocation status response services that combine CRLs and integrated Online Responder services
    • Support for Cryptography Next Generation (CNG) to enable the use of Suite B algorithms
    • Enhanced service monitoring with the introduction of the Windows Server 2008 Active Directory Certificate Services Management Pack for Microsoft Operations Manager 2005
    • More detailed server administration with restricted certificate managers
    • Failover cluster support
  • Windows Server 2008 R2:
    • Cross-forest enrollment capability that allows for consolidation of existing hardware
    • Databaseless CA feature to avoid storing unnecessary certificate records
    • Best Practice Analyzer for improved configuration practices
    • Web-based certificate enrollment protocol to allow enrollment over the Internet

NAP and Databaseless CA implementation

As part of Windows Server 2008 deployments, Microsoft IT added a new PKI-enabled service—Network Access Protection—to its existing offerings. NAP is a technology introduced in the Windows Vista® and Windows Server 2008 operating systems; it includes client and server components that enable administrators to create and enforce health requirement policies that define the required software and system configurations for computers that connect to the corporate network. NAP enforces client health by inspecting and assessing the health of client computers, limiting network access when client computers are deemed noncompliant, and remediating noncompliant client computers for unlimited network access.

Some of the enforcement combinations include:

  • NAP with IPsec enforcement*
  • NAP with 802.1X enforcement
  • NAP with VPN enforcement
  • NAP with Dynamic Host Configuration Protocol (DHCP) enforcement
  • NAP-NAC (Network Admission Control) enforcement

    *Microsoft IT implementation

A NAP implementation usually consists of the following components: NAP clients, a NAP enforcement point, and a NAP health policy server (a server that is running Network Policy Server [NPS]). Additionally, NAP with IPsec-specific enforcement requires a CA server and a Health Registration Authority (HRA) for issuing NAP health certificates to clients in order to be able to communicate on the IPsec-protected network

HRA's responsibility is to validate client credentials and forward a certificate request to the NAP CA on behalf of the client. HRA validates certificate requests by checking with the NAP policy server to determine whether the NAP client is compliant with network health requirements.

NAP certificate service requirements included the following:

  • Subject name: Supply in the Request
  • Application Policies): client authentication, NAP health (custom), IPsec Internet Key Exchange (IKE)
  • Validity period: 72 hours with no renewal
  • Enrollment access: HRA accounts only

Because the subject name was set to Supply in the Request, Microsoft IT applied name constraints to help further prevent unauthorized enrollment. The reason for establishing such a short validity period, as well as no renewal value on the HRA-only certificate template, is to enforce more frequent state checks that must pass through the HRA.

NAP templates contain the Client Auth Application Policy. For the certificates to use the Client Auth Application Policy , Microsoft IT needed to publish every NAP CA certificate in the NTAUTH container of every NAP-enforced forest.

Because of the complex enrollment logic involving evaluating various parameters on multiple enrollment requests, the NAP CAs started to exhibit much higher memory consumption compared to any other CA. Additionally, the short validity period on the NAP certificate templates triggered a significantly larger number of issued certificates. Microsoft IT determined to take the following actions to address these concerns:

  • Increase the database session count on each CA (to 120). This change allowed for much larger number of requests to be processed per second.
  • Increase physical memory (to 8 GB).

As a short-term solution for the overgrowing database size, Microsoft IT enabled circular logging, ran regular database clean-up scripts, and ran database defragmentation tasks to preserve available disk space.

A long-term solution is use of the Databaseless CA feature in Windows Server 2008 R2. Databaseless CA allows a CA server to not store issued certificates in its database. This feature is especially valuable for the services like NAP where there is no requirement to maintain records of issued certificates. Instead of performing database clean-up tasks after thousands of certificates have already been issued, this feature prevents the certificate from entering the Issued Certificates database altogether—after it is enabled on the CA (running Windows Server 2008 R2 Beta) and a specific template (configured via Windows Server 2008 R2 Beta or a Windows 7 client operating system).

As of this writing, Microsoft IT is upgrading all of its NAP CAs to Windows Server 2008 R2 Beta and enabling the new Databaseless CA feature on the CAs and on the templates servicing NAP clients that are running Windows Server 2008 R2 Beta or a Windows 7 client operating system.

Cross-Forest Enrollment and Server Consolidation

Perhaps one of the biggest challenges in managing a multiple-forest PKI is the necessity to mirror the original configuration to the other supported forests, due to the lack of cross-forest enrollment functionality. Such a limitation has always equated to duplicated administrative efforts as well as hardware cost. Windows Server 2008 R2 (Beta) has finally broken those boundaries.

Cross-forest enrollment now available in Windows Server 2008 R2 helps organizations consolidate their infrastructure by enabling users and computers from forests B, C, and D to enroll from a CA server in forest A. That is accomplished by copying the necessary Active Directory objects from forest A (resource forest) to forest B (account forest) and enabling referral on the Windows Server 2008 R2 Beta CA.

In March 2009, Microsoft IT began updating its infrastructure by enabling cross-forest enrollment for its internally consumed services. In preparation for this important milestone, Microsoft IT did not renew its issuing CA certificates for the services that it planned to enable for cross-forest enrollment. Microsoft IT intends to continue to maintain the CRLs for the remainder of the old CA certificates' lifetime, and will retire the CAs after those certificates expire.

Geographically Disbursed PKI

The introduction of NAP and its requirements for very short-lived certificates and reliance on almost instantaneous enrollment abilities produced the need for not only multiple CAs to ensure service availability, but also—for the first time in Microsoft IT history—to host issuing CAs in remote locations, in closer proximity to the client. As a result, Microsoft IT collaborated with its international data-center management teams and built secure locations to host NAP CAs at international data centers. Microsoft IT then negotiated special security procedures with remote teams to ensure those CAs, which were no longer physically maintained by the Microsoft IT PKI staff, remained compliant with the high security requirements for the rest of the infrastructure.

Because the remote CAs were no longer in physical care of the primary PKI staff, Microsoft IT decided to initialize the HSMs protecting those CAs into separate security worlds. This way, if those modules are compromised on the way to the remote data centers, only the security world that they are part of will be affected, and no harm will be done to the other CAs.

Due to the introduction of the previously mentioned services to the Microsoft environment, Microsoft IT needed to include additional CAs and make other changes to its hierarchy. Figure 3 shows the revised Microsoft IT PKI hierarchy.

Primary Microsoft IT PKI

Figure 3. Primary Microsoft IT PKI

Figure 4 shows the infrastructure of the third-party root.

Existing third-party root infrastructure

Figure 4. Existing third-party root infrastructure

CA Server Management and Support

Microsoft IT's current PKI support model includes four tiers:

  • Tier 1: Microsoft Service Desk (multiple members). All user enquires originate at this tier. Technician asks users a series of questions to help direct them to the appropriate team.
  • Tier 2: Microsoft Global Operations team (multiple members). The Global Operations team receives escalations from the Service Desk, or sometimes from other infrastructure support teams if an issue has already been identified. This team also receives and responds to all PKI monitoring alerts. A Global Operations analyst then begins investigation and follows support articles prepared by the Microsoft IT PKI team. Even though Global Operations staff members have been provisioned with CA access, they are not PKI experts; if they receive a request that requires more in-depth knowledge of Certificate Services/AD CS, they forward the request to Tier 3 in the support model.
  • Tier 3: Certificate Services Operations team (four members). This team manages certificate enrollment, revocation, and recovery of Microsoft IT issued certificates. It also provides assistance with troubleshooting of specific PKI usage scenarios.
  • Tier 4: Certificate Services Engineering team (two members). This team manages the deployment of new cryptographic solutions, identifies shortfalls in the current infrastructure, and proposes and deploys new design changes. It also receives escalation requests from Tier 3 and helps resolve operational issues. In the case of an overly complex case or a potential software bug, the team involves the PKI product group, and then both teams work together to find and document a solution.

Backup

Microsoft IT regularly backs up its online and offline CAs. Online CAs are backed up on a daily basis via an automated solution that copies the CA database, registry configuration, and nCipher key protection–related files to a remote location, which is then backed up and stored to tape. Microsoft IT decided to employ such backup practices to preserve the limited CA server access. This way, multiple members of the backup organization are not required to have access to the CA servers themselves; they only need to be able to access the remote location that contains the specific files necessary for backup.

Microsoft IT backs up its offline CAs every time after signing a new subordinate CA certificate request. CA database, registry information, and nCipher key protection–related files are all copied to two copies of CDs, which are then stored at two separate, secure off-site locations.

In the event of a corrupted CA, the backed-up data can be used to successfully restore the services onto a different piece of hardware with a properly configured nCipher module.

Monitoring

Service monitoring is critical to production operations. Microsoft IT relies on a combination of Microsoft Operations Manager and a custom Certificate Services/AD CS monitoring tool to oversee the health of its PKI.

A Microsoft Operations Manager implementation consists of a monitoring server, health agents, and a set of management packs, each specific to a particular area being monitored. Microsoft IT deployed monitoring agents to every CA in its managed environment. The agents run and perform the checks enforced by each management pack, and then report to the management server. From there, an automatic ticketing system generates support tickets and forwards those to the Global Operations group.

The custom Certificate Services/AD CS monitoring tool runs on every CA as well; its job is to perform Certificate Services/AD CS-specific checks, including verifying that the service is running, the CRL publication occurred on time, the CA certificate is not nearing its expiration date, and all AIA and CRL distribution point paths contain the expected data. If the tool identifies any discrepancies, it generates and forwards an alert to the Global Operations team's Microsoft Operations Manager console with the help of the Microsoft Operations Manager agent.

Both the Microsoft Operations Manager agent account and the service account used by the custom monitoring tool run with limited permissions on the CAs and have only read and write access to the CAs' Application Event log, for the purpose of logging the event. This helps prevent a potential attack on the server if either of those accounts is compromised.

Software Updates

To make sure that the CA servers are up to date on all software updates, including fixes and security updates, Microsoft IT uses Microsoft System Center Configuration Manager 2007(MSCCM)).

MSCCM includes a server and an agent component, where the agent runs on every CA and applies a set of updates based on the information it gets from the MSCCM server. To minimize impact to production operations, the agents are configured to only execute the updates restart the server (if necessary) during off hours. The entire process is automated, which helps avoid a potential administrative overhead.

Hardware Upgrades

Microsoft IT follows the same hardware refresh schedule that is followed by the rest of the departments within the company, which includes upgrading the hardware components every three years. When a hardware upgrade is necessary, the Microsoft PKI team backs up the current server, takes it offline, and then restores the backup on the newly built server.

Upcoming Initiatives

With so many new and exciting features being introduced to PKI-based technologies today, here are some key areas that Microsoft IT will focus on next:

  • Microsoft Forefront™ Identity Manager Certificate Management (FIMCM). The CM feature of Forefront Identity Manager is a centralized management system for deploying and managing certificates and smart cards. Microsoft IT is currently engaged in an early production deployment of CM, and plans to integrate all smart-card logon and S/MIME certificates into CM within the next year.
  • Additional cross-forest enrollment and hardware consolidation efforts. Microsoft IT is working aggressively toward consolidating its existing infrastructure. During the consolidation process, the team is also re-evaluating the overall design and is considering making additional changes to the infrastructure, such as moving all services that involve archived keys to a shared set of CAs for simplified management and administration.
  • Virtualization. With today's efforts to minimize overall infrastructure management costs, virtual server–based services are driving many deployment goals. The Microsoft PKI team is considering moving most (if not all) of its PKI servers to virtual machine–based infrastructure. As part of the initiative, network-based HSMs would become the primary key storage mechanisms
  • Certificate Services Management Pack. The Windows Server 2008 Active Directory Certificate Services Management Pack for Microsoft Operations Manager 2005 provides a predefined set of processing rules and guidance designed specifically for monitoring the performance and availability of the AD CS role services, including the Certification Authority, Online Responder, and Network Device Enrollment services. Microsoft IT has already begun using the new AD CS performance counters available in Windows Server 2008 for enhanced performance monitoring, and is now considering evaluating the complete new monitoring solution in its production environment.
  • Following key management standards—migrating from 1,024-bit RSA keys. The U.S. National Institute of Standards and Technology issued NIST Special Publication 800-57, Recommendation for Key Management, which advises that 1024-bit RSA keys will no longer be viable after December 31, 2010. Microsoft IT is currently working on identifying all dependencies in addition to the migration steps.

For more information about the key migration standards, refer to the publication at http://csrc.nist.gov/publications/drafts/800-57-part3/Draft_SP800-57-Part3_Recommendationforkeymanagement.pdf.

Lessons Learned and Best Practices

By thoroughly evaluating detailed service requirements and future growth potential, Microsoft IT learned several valuable lessons that can be applied as best practices in most other PKI deployment plans. Microsoft IT learned many of the lessons during the deployment and some of the lessons as outcomes of the deployment.

Plan for Future Upgrades to the Windows Server PKI

If upgrading from Windows Server 2000 Server to obtain all the benefits associated with the Windows Server 2003 or Windows Server 2008 PKI, the Active Directory schema must be extended at least to the version provided with Windows Server 2003. Additionally, client computers should be running Windows XP Professional or Windows Vista.

The first step in preparing for the upgrade is to plan for the schema extension. An organization must run Adprep.exe with the /ForestPrep command-line switch to extend the schema before any other work commences.

Carefully Consider the Number of CA Servers Needed

An organization should be realistic about the number of CAs that it needs to deploy. When an organization uses Windows Server 2003 Certificate Services, it does not need to create separate CAs for different applications. Each CA can issue all the certificates that are in use in that forest.

Microsoft IT realized that the number of CAs deployed in the original plans created unnecessary administrative complications and overhead. Decommissioning some underused CAs and consolidating their certificate templates to other CAs proved to have no effect on performance, but yielded significant savings in server hardware and ongoing maintenance. In situations where enrollment services are critical, Microsoft IT employs multiple CAs, configured identically, to provide failover redundancy.

Consider Integration with a Public Root

An organization should consider how it will address the issue of root trust for public-facing PKI-enabled services. Implementing only a self-signed root CA will not provide root trust for users outside the bounds of a network environment. Depending on an organization's needs and the scope of its deployment, there are two primary ways that an organization can address this problem: It can either purchase individual certificates as needed or subordinate its own CA under a publicly trusted root.

Microsoft IT implemented a new offline intermediate CA that chains to the publicly trusted GTE CyberTrust Root and GTE CyberTrust Global Root. The offline intermediate CA subordinates multiple issuing CAs, which can issue both SSL and S/MIME certificates. Purchasing the necessary SSL certificates through a third party represented a significant cost for Microsoft. With the use of the new, publicly trusted infrastructure, Microsoft IT's internal PKI realizes significant savings. Microsoft IT pays an annual fee for subordination to a publicly trusted root and can issue an unlimited number of certificates, rather than paying for each certificate issued. Additionally, Microsoft increased its control over the certificate issuance process by handling the issuance of all end-entity certificates internally.

Automate CRL Publication

The availability of valid CRLs is crucial for uninterrupted operation by PKI-enabled services and applications. Automating CRL publication to external locations can be challenging because most enterprises do not connect their public-facing Web servers directly to corporate network resources. There are typically firewalls and perimeter networks that isolate publicly accessed servers from other servers.

Windows Server 2003 CAs can be configured to automatically write new CRL files to shares on other servers, whereas Windows 2000 Server requires separate procedures to perform this function. This improvement enabled Microsoft IT to reduce its external CRL publication intervals from once a week to once every 24 hours for such time-sensitive certificates as those used for smart-card remote access logons. Microsoft IT CAs now write their CRL material directly to a specific drop point. A periodic synchronization routine automatically runs, accesses the data on the drop point, and makes the data available on the externally facing Web servers in a timely manner.

Customize the CRL Publication Overlap Interval

The overlap between the time when a new CRL is issued and the time when an old CRL expires needs to be managed. With CRL publication in Active Directory, replication time must be considered. Microsoft IT needed to provide sufficient time for replication of the newly published CRL before the old CRL expired and would no longer be valid for certificate validation purposes. Additionally, with external HTTP URLs, Microsoft IT needed enough time to provide for manual publication of newly issued CRLs to these points.

For detailed information about defining CRL publication overlap, refer to the white paper "Best Practices for Implementing a Microsoft Windows Server 2003 Public Key Infrastructure" at http://www.microsoft.com/technet/prodtechnol/windowsserver2003/technologies/security/ws3pkibp.mspx.

Use New Keys for CA Renewal

Microsoft IT recommends renewing CA certificates by using new keys rather than reusing the old keys. Using new keys for CA renewal reduces the likelihood of having any ambiguous or improper certificate chains in the hierarchy.

Using existing keys for certificate renewal may cause certificate chains to link to either the old or the new CA certificate, creating ambiguous certificate chains. However, if an organization uses a new key during CA certificate renewal, the certificate chains down the line will use only the new key, thereby eliminating any ambiguity.

Using a new key does not break the chains created for end-entity certificates issued under the old CA certificate. Previously issued certificates will continue to chain to the appropriate CA certificate. However, multiple keys require multiple CRLs. During revocation checking, a CRL must be signed by the same key used to sign the end-entity certificate. As a result of using new keys for CA renewal, the CA must issue a CRL for each valid key to help ensure the validity of the certificates issued. Because of the importance of CRL availability in successfully managing the issuance of new keys for CA renewal, an organization should plan its CRL propagation strategy carefully.

Multiple CRL files and CA certificate files are typically differentiated through the addition of a key version suffix to the file name. For this reason, Microsoft IT recommends using the appropriate variable when defining CRL distribution point and AIA extensions.

Plan for Certificate Issuance Policies

The Windows Server 2003 or Windows Server 2008 PKI includes certificate policies and application policies (EKU in Windows 2000 Server). Each type of policy has its own unique object identifier (OID) values. These OID values are written into corresponding extensions within the certificate. For a certificate to be valid for any specific purpose, the appropriate OID for that purpose must be present within the appropriate policy extension. For example, for an end-entity certificate to be valid for EFS usage, the EFS OID value must be present in the application policy extension for every certificate in the chain.

By default, a root CA certificate is valid for all application policies and all certificate policies. However, by default, subordinate CAs are valid only for all application policies. By using the value of "all" for these policies, every application or issuance policy OID, whether recognized or not, is considered valid. However, specifying any individual policy OID overrides the "all" value. When the "all" value is overridden, a particular policy must be explicitly defined in the policy to be considered valid.

Initially, Microsoft IT did not anticipate using issuance policies. Shortly after the initial deployment process, Microsoft IT planned to include an issuer statement in the root certificate. This statement included a space within the certificate for embedding legal disclaimers or other items of reference, and it included a hyperlink to the Microsoft Certification Practice Statement CPS. The CA interpreted the inclusion of the issuer statement as an issuance policy, which thereby invalidated all other possible issuance policies. Initially, this situation was not a problem. However, when Microsoft IT decided to accommodate the potential use of issuance polices in its issuing CAs, it attempted to renew the intermediate certificates and include the All Issuance Policies value within them as well. Because the All Issuance Policies value had been overridden in the root certificate with the inclusion of the issuance statement, the effective issuance policies in the intermediate CA certificates were then restricted to only the issuance statement policy.

To re-enable the All Issuance Policies functionality, Microsoft IT had to renew the root certificate. To provide this functionality, in addition to the desired issuer statement, Microsoft IT needed to modify the Capolicy.inf file to include the specific All Issuance Policies OID along with the appropriate information for the issuer statement. Microsoft IT then repeated this configuration by renewing each of the offline intermediate CAs to match the "all" functionality of the root. The online enterprise subordinate CAs, however, have no issuance policies defined, thus limiting the use of any issuance policies in certificates that they issue. If ever required in the future, Microsoft IT can easily implement needed policies by simply renewing the issuing CA certificate and including the policies.

Microsoft IT recommends that all deployments of PKI that incorporate the use of subordinate CAs should plan for the use of issuance policies. Planning for issuance policies forces the consideration of which specific enhanced key usage and issuance policies an organization will enable when it deploys a CA. Alternatively, security administrators can change the default settings for issuance policies on the subordinate CAs to match the root. In either case, consideration of this factor at the planning stage of a deployment will eliminate the need to renew the certificate chain from the root down every time an organization needs a new enhanced key usage or issuance policy.

For more information about setting policies in the Capolicy.inf file, refer to the white paper "Best Practices for Implementing a Microsoft Windows Server 2003 Public Key Infrastructure" at http://www.microsoft.com/technet/prodtechnol/windowsserver2003/technologies/security/ws3pkibp.mspx.

Sanitize Elements of the PKI

Microsoft IT discovered that issued certificates may contain potentially sensitive information about the Microsoft infrastructure. By default, LDAP paths explicitly defining the Microsoft Active Directory structure were stored in the CRL distribution point and AIA extensions. Microsoft IT chose to remove this information from its CA and end-entity certificates for reasons of corporate confidentiality.

Enterprises concerned with the security of their Active Directory structures should plan to sanitize their certificates of any corporate confidential information that they do not want released externally. An organization should include contact information in the certificates only if it wants users to be able to use those channels for support. The publication of internal e-mail addresses on the Internet can lead to customer replies and unwanted e-mail. Official contact information is more appropriately placed in an organization's publicly released CPS documentation.

Ensure Service Availability for High-Demand Applications

Carefully examine the requirements of each PKI-enabled service, including the frequency at which the certificates must be issued, the number of such requests, and the potential impact to the service if redundancy and appropriate availability are not accounted for. An organization should configure its CAs with enough memory to process all requests and to enable the newly available features (such as Databaseless CA feature) to prevent the servers from running out of disk space.

Conclusion

By designing, implementing, and supporting a PKI that uses a self-signed root CA certificate for internal security needs and a separate PKI chained to a public root for enabling public-facing SSL and S/MIME requirements, Microsoft IT accomplished its goals for the Microsoft PKI implementation. Business benefits can be summarized as follows:

  • Increased security. Microsoft employees use cryptographic technologies and applications each day. The remote access logon to the corporate network is accomplished through smart cards. The ability to use S/MIME when exchanging e-mail helps give senders, by means of encryption, confidence that no one other than the intended recipient can read messages. The ability to use S/MIME helps give recipients, by means of digital signatures, confidence that the contents of messages have not been altered. With the use of SSL, users of intranet and Internet Web sites can exchange sensitive data through an encrypted connection.
  • Application and service compatibility. Deploying a self-hosted Microsoft PKI enables Microsoft teams to test each new Microsoft product for compatibility and interoperability with Windows 2000 Server, Windows Server 2003, and Windows Server 2008 PKI services before it is released to the market.
  • Reduced certificate costs. Before the current infrastructure, the costs of using a third-party public CA for certificate delivery on a certificate-by-certificate basis were high. Running an internal PKI at Microsoft has reduced these costs. In addition, the new PKI model has reduced the required support infrastructure by enabling the consolidation of CA servers in each forest.
  • Ease of manageability. Because Windows Server 2003, Windows Server 2008, and Windows Server 2008 R2 offer PKI capability out of the box, a self-hosted PKI solution was easy to implement and is easy to manage.
  • Conformance to industry standards. Implementing an enterprise PKI enables Microsoft IT to use standards-based cryptographic technologies to help secure Microsoft corporate resources. These technologies include encrypted files, folders, wireless communications, e-mail, remote network access, and Web server connections.
  • Reduced overall infrastructure management cost. By enabling cross-forest enrollment and consolidating physical hardware, companies can cut significant costs associated with the management of multiple CAs scattered across multiple forests.

For More Information

For more information about PKI, refer to the following sources.

For more information about Microsoft products or services, call the Microsoft Sales Information Center at (800) 426-9400. In Canada, call the Microsoft Canada information Centre at (800) 563-9048. Outside the 50 United States and Canada, please contact your local Microsoft subsidiary. To access information through the World Wide Web, go to:

http://www.microsoft.com

http://www.microsoft.com/technet/itshowcase

The information contained in this document represents the current view of Microsoft Corporation on the issues discussed as of the date of publication. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information presented after the date of publication.

This White Paper is for informational purposes only. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED, OR STATUTORY, AS TO THE INFORMATION IN THIS DOCUMENT.

Complying with all applicable copyright laws is the responsibility of the user. Microsoft grants you the right to reproduce this White Paper, in whole or in part, specifically and solely for the purpose of personal education.

Microsoft may have patents, patent applications, trademarks, copyrights, or other intellectual property rights covering subject matter in this document. Except as expressly provided in any written license agreement from Microsoft, the furnishing of this document does not give you any license to these patents, trademarks, copyrights, or other intellectual property.

Unless otherwise noted, the example companies, organizations, products, domain names, e-mail addresses, logos, people, places, and events depicted herein are fictitious, and no association with any real company, organization, product, domain name, email address, logo, person, place, or event is intended or should be inferred.

© 2009 Microsoft Corporation. All rights reserved.

This document is for informational purposes only. MICROSOFT MAKES NO WARRANTIES, EXPRESS OR IMPLIED, IN THIS SUMMARY. Microsoft, Active Directory, Forefront, Windows, Windows Server, and Windows Vista are either registered trademarks or trademarks of Microsoft Corporation in the United States and/or other countries. The names of actual companies and products mentioned herein may be the trademarks of their respective owners.

Page view tracker