Securing Public Key Infrastructure (PKI)
Securing Public Key Infrastructure (PKI)
Infrastructure (PKI)
Microsoft IT
http://aka.ms/securingpki
Contents
Foreword................................................................................................................................................ 6
Acknowledgements.............................................................................................................................. 7
Executive Summary............................................................................................................................... 8
Introduction......................................................................................................................................... 10
About this Document.......................................................................................................................................................................... 11
Content Origin and Organization............................................................................................................................................. 11
PKI Assessments and Consulting.............................................................................................................................................. 11
Content Scope................................................................................................................................................................................. 11
Introduction to PKI............................................................................................................................................................................... 11
PKI Components.............................................................................................................................................................................. 11
PKI Governance............................................................................................................................................................................... 12
Business Drivers for PKI................................................................................................................................................................ 12
Elements of a Successful PKI....................................................................................................................................................... 13
Determining the Level of Protection Required.................................................................................................................... 14
Compromising PKI............................................................................................................................................................................... 15
How PKI Compromises Occur.................................................................................................................................................... 15
Protecting a PKI Deployment..................................................................................................................................................... 16
Planning a CA Hierarchy.....................................................................................................................17
CA Hierarchy Options......................................................................................................................................................................... 18
Conclusion.............................................................................................................................................................................................. 21
Compromise Response.......................................................................................................................77
Inventory PKI Consumers.................................................................................................................................................................. 77
Understanding Compromise Scenarios......................................................................................................................................... 77
Full Key Compromise..................................................................................................................................................................... 77
Appendices.......................................................................................................................................... 84
Bret Arsenault
Microsoft Chief Information Security Officer
Authors Reviewers
Mike Ricks – Lead Author Adam Arndt
Sergey Simakov Ahmad Mahdi
Shawn Rabourn Amer Kamal
Ashish Popli
Contributors David Hoyle
Laura A. Robinson Eric Leonard
Roger Grimes Fernando Cima
Kelvin Yiu Jason Lee
Jenn LeMond
Executive Oversight John Mason
Alex Simons Keith Proctor
Dan Plastina Kelvin Yiu
Dave Gasiewicz Larry Talbot
Dustin Ingalls Mark Cooper
Bret Arsenault Rashmi Jha
Pat Arnold Troy Arwine
Joe Lindstrom Zane Lewiston
Mario Rodriguez
Many organizations deploy a Public Key Infrastructure (PKI) to support critical business functions. PKI
plays a critical role in helping a business provide basic security controls such as confidentiality and
integrity to key business processes. PKI often is used as a mechanism to provide strong
authentication of users for uses such as Virtual Private Networks (VPNs) or access to business critical
data. Since PKI systems often act as a central resource that can allow a high level of access to an IT
infrastructure, they are a logical target for any persistent and determined attacker. While attacking a
PKI is typically not the end goal of an attacker, compromising a PKI can provide an attacker with the
credentials they need to further their attack more effectively.
Security of the systems and processes comprising a PKI should be the first and foremost
considerations when designing and deploying a PKI. Prior to deployment, careful consideration
should be given to the numbers and types of certification authorities that you will deploy. Design
your PKI with any potential future use cases in mind, because an improper design can lead to
significant rework or security ramifications as your PKI sees new and different use cases.
Physical controls should not be overlooked during the design. While much emphasis is placed on
controlling access to systems over the network, physical attacks can still occur and can lead to the
full compromise of your PKI, and subsequent compromise of other critical systems that depend on it.
Secure critical infrastructure from physical attacks that may originate from an outside attacker or
potentially an insider threat.
A large portion of the work involved with running a successful PKI is establishing secure and
repeatable processes that are well documented and followed. Any PKI that intends to be trusted for
critical business functions should document the policies and procedures. These policies and
procedures can then be used in Certificate Policy and Certification Practice Statement documents for
a PKI trusted by customers and partners. Strong processes should be developed to ensure that the
PKI is run with oversight from the proper teams within your organization.
PKI systems should be treated as critical systems and have strong technical controls deployed to
protect them from unauthorized access. As with other critical systems, hardened baselines and strict
management access should be implemented. Special consideration should be given to PKI systems
that are always kept offline. Implement controls for offline systems so they are never brought online
and do not have malicious software introduced to them.
When running a PKI deployed with Microsoft Windows® Active Directory® Certification Services,
care should be taken to control access to sensitive PKI tasks. Control access to certificate templates
that allow for certificate enrollment, and ensure that supporting processes such as backing up
sensitive data and publishing PKI data are properly secured.
Another key decision in PKI design is the suite of cryptographic algorithms that are used and the
length of time certificates are valid. Ensure that you select the strongest cryptographic algorithms
afforded by your environment, and be aware of potential compatibility issues between different
operating systems and cryptographic software packages. After proper algorithms are selected,
ensure that the attributes you allow in your certificates enable only the intended usages and do not
expose your organization to misuse of issued certificates.
Attacks against computing infrastructures, whether simple or complex, have existed as long as
computers. However, within the past decade, increasing numbers of organizations of all sizes, in
all parts of the world have been attacked and compromised in ways that have significantly
changed the threat landscape. Cyber-warfare and cybercrime have increased at record rates.
“Hacktivism,” which attacks are motivated by activist positions, has been claimed as the
motivation for a number of breaches intended to expose organizations’ secret information, to
create denials-of-service, or even to destroy infrastructure. Attacks against public and private
institutions have become ubiquitous, with the goal of exfiltrating the organization’s intellectual
property (IP).
When looking at your environment, an appropriate mindset is to assume that you have already
been breached or a breach will occur at some point. No organization with an information
technology (IT) infrastructure is immune from attack, but if appropriate policies, processes, and
controls are implemented to protect key segments of an organization’s computing
infrastructure, escalation of attacks from penetration to complete compromise might be
preventable. The principles and recommendations provided in this document are intended to
help secure your environment against external attackers and misguided or malicious insiders.
The information and recommendations provided in this document are drawn from a number of
sources and derived from practices designed to protect Public Key Infrastructure (PKI)
installations against compromise. Although it is not possible to prevent attacks, it is possible to
reduce the attack surface and to implement controls that make compromise much more difficult
for attackers. This document presents some of the most common types of vulnerabilities
observed in compromised environments and most common recommendations to improve the
security of PKI installations.
While many of the recommendations found in this document are specific to PKI installations that
utilize Active Directory® Certificate Services (AD CS) as a technology platform, many of the
recommendations are also vendor agnostic and can be implemented in any PKI deployment.
If you operate a PKI within an Active Directory® (AD) environment, it is strongly recommended
that you also read Best Practices for Securing Active Directory. Since the security of the AD CS
installation is in many respects directly dependent on the security of the Active Directory®
installation, an understanding of the avenues to compromise and methods to secure Active
Directory® will greatly enhance your ability to secure your PKI deployment.
Much of the content of this document is derived from knowledge gained from years of PKI and
Active Directory® assessments performed by numerous Microsoft information security professionals.
Additional recommendations are gathered from extensive experience gained from operating
numerous PKIs at Microsoft, both for external and internal uses. Although individual customer data
was not used to create this document, the most commonly exploited vulnerabilities identified from
our assessments and the recommendations to improve security of AD CS installations are utilized.
Not all vulnerabilities are applicable to all environments, nor are all recommendations feasible to
implement in every organization.
PKI Assessments and Consulting
Within Microsoft, numerous organizations provide consulting services for PKI. Depending on the
needs of the customer, an engagement may include PKI design, implementation, compromise
response, or assessment for health and security. Microsoft provides customers with
recommendations based on their organization’s unique characteristics, practices, and risk appetite.
PKI assessments performed internally at Microsoft and those of our customers have contributed to
the recommendations in this paper.
Content Scope
This paper is not intended to address all potential security issues across PKI, but rather is focused on
providing actionable content for areas in which Microsoft has seen deficiencies while performing
assessments over several years with many customers. Specifically, this document does not attempt to
provide recommendations for other Active Directory® Certificate Services roles such as Network
Device Enrollment Services (NDES) or Online Certificate Status Protocol (OCSP).
Introduction to PKI
PKI Components
Within any PKI regardless of the technical implementation, a number of components and actors are
present. This brief introduction will help provide context and definition of terms used throughout
this whitepaper.
Subscriber/End Entity – The person or computer listed as the subject in a certificate. In the context
of this whitepaper, an End Entity certificate is any certificate issued to a person or computer.
Relying Party – A user or system that consumes the certificates generated by the PKI. Examples of
relying parties would be users of web browsers visiting an SSL protected web site, a VPN server
authenticating a remote user, or a computer validating that an executable is signed correctly before
running it.
Certification Authority (CA) – Broadly, a CA is a set of systems and practices used by an
organization to issue and manage certificates. For the context of this paper, the CA will be the
Maintaining the trust of relying parties is an integral component to running a PKI. If a relying party
does not know the policies a PKI uses for governance, or the PKI has no formal policies, they cannot
make an informed decision to trust that the certificates issued by the PKI are correct. To facilitate
trust, a PKI must be operated with some level of oversight, and with policies, standards, and
procedures in place to control how the PKI is managed. The level of oversight required will vary
depending on the intended use. For example, a PKI trusted and used internally at a company to issue
certificates for wireless network authentication does not need the same amount of oversight as a PKI
used to issue SSL certificates trusted by default by all major web browsers. Governance is not a topic
unique to PKI- other critical infrastructure systems should also be run with formalized change control
and oversight.
Business Drivers for PKI
As stated in the prior section, it is critical to perform a risk assessment and develop a threat model
prior to deploying a PKI. The recommendations provided throughout this paper are not one-size-
fits-all for every PKI deployment; each deployment is unique in its requirements. To assist in
determining what recommendations may apply to your deployment, each recommendation has
been categorized based on impact level, which (at a high level) is a measure of the impact a CA
breach would have on the business it supports. The following impact levels are used to classify the
recommendations:
High Business Impact – Customer or Partner Impacting – This classification relates to CAs
that, if compromised, could impact your customers or partners, as well as have an internal
impact.
High Business Impact – Internal Impact – This classification relates to CAs that if
compromised, could impact internal operations of your company significantly. Examples
include CAs that issue certificates used to protect proprietary data, or allow authentication to
internal systems or networks. Many ADCS deployments, regardless of intended use, will fall
into this category.
Moderate Business Impact – This classification relates to CAs that are not widely trusted in
your environment or do not support critical business processes.
Each CA should be analyzed to determine the impact of a breach. In most cases, all CAs in a
hierarchy will have the same impact level. However, there are some cases where a subordinate CA
may have a lower impact level than the root or other subordinate CAs because technical constraints
may prevent it from being used in more critical use cases. For a complete list of recommendations in
this paper along with the recommended impact level at which to implement them, refer to Appendix
F: List of Recommendations by Impact Level.
Except in exceptional cases, compromise of a PKI is not the ultimate goal of an attacker. Rather, an
attacker’s motivation is typically to acquire other desirable data such as trade secrets, payment card
data, or other data. Compromising a PKI in an environment may be a necessary step for attackers to
gain the credentials required to access the desired data. There are several compelling reasons why
an attacker may attempt to compromise a PKI as part of an enterprise breach:
Elevation of privilege – An attacker can leverage the PKI to gain credentials that will allow
them to gain full access to desired systems or potentially all systems across the target
environment.
Persistent access – While many attacks begin with attackers using backdoors on systems to
maintain access to an environment, compromising a PKI and obtaining credentials can allow
attackers to use the “front door” and access the environment through legitimate means such
as a Virtual Private Network (VPN) or DirectAccess (DA).
Impersonation – Compromising a PKI can allow an attacker to create credentials of VIP users
who have access to desired data.
In many cases, compromising a PKI and obtaining fraudulent certificates allows an attacker to
traverse the network using methods that look very similar to normal user activity and are difficult to
detect.
How PKI Compromises Occur
PKI systems should be guarded as some of the highest security systems in an environment, so an
attacker may require several steps to accomplish a compromise. In a typical breach, attackers gain a
foothold into the environment by exploiting systems not current with security patches or outdated
applications. For a more complete list of common attack vectors in an Active Directory®
environment, refer to Best Practices for Securing Active Directory. Once the attacker gains some
basic level of access within the network, the following are some of the common scenarios that result
in a compromise of the PKI:
Misconfigurations
A common method of compromise is for attackers to leverage misconfigurations within the PKI to
issue certificates for other users of systems for which the requesting user should not have rights to
request, or certificate types that the user should not be able to request. Examples include
misconfigurations in template permissions, such as overly broad enrollment permissions, or
misconfigurations on the CA that allow users to request certificates with user-defined data.
Misconfigurations in allowed certificate usages and constraints could also allow attackers to create
subordinate CAs with arbitrary attributes.
In many cases, the CA servers are run and managed similarly to any other system in the environment.
This includes the CA systems being built from the same image as other systems and includes many
unnecessary applications that increase the attack surface of the CA. Operating a CA in this manner
Many PKI designs use a front end RA system to handle validating requests for certificates. While the
back end CA may have good security, in some cases the RA systems are not secured in the same
manner. If this is the case, attackers may be able to compromise the RA and use its credentials to
issue the certificates they need to further their attack. Some examples of RA systems include smart
card management software, Network Access Protection (NAP) Health Registration Authority (HRA),
and Network Device Enrollment Services (NDES).
Social Engineering
Each CA should implement its own set of practices, both logical and process-driven to ensure the
identity of the subject requesting a certificate is validated. If there are deficiencies in these practices,
it is possible for an attacker to use social engineering techniques to have certificates issued to them.
For example, an attacker could have an employee smart card shipped to them by pretending to be a
remote employee if home addresses are not validated. An attacker pretending to be a web
administrator could have an SSL certificate issued on behalf of a highly sensitive payroll system to
perform a man-in-the-middle attack.
Protecting a PKI Deployment
Whether you are operating an existing PKI or planning to deploy a new PKI in your environment, the
recommendations provided in this paper are intended to mitigate many of the common insecurities
and shortcomings addressed in the previous section. Beginning with recommendations to consider
during the design phase, each section will cover an aspect of PKI systems and provide
recommendations for specific approaches or general guidance to consider for the threats in your
environment. Not all the recommendations provided in this paper will be applicable to every
environment. Consider the impact a breach of the CA would have on your business through a risk
assessment and implement those controls which help to mitigate the known threats. A
comprehensive list of all recommendations in the paper is provided in Appendix F: List of
Recommendations by Impact Level, along with the impact level at which you should apply the
recommendation.
Certificate hierarchy planning is one of the most important aspects of PKI design because the design
will affect how certificates are validated and used by PKI-enabled solutions. This section introduces a
number of recommendations for designing a certificate hierarchy that can be used to meet today’s
pressing business needs as well as future needs that may not yet be identified.
A PKI can be implemented either as part of the IT infrastructure or by using external, commercial
CAs. In general, the following are the PKI design options:
Implement a completely self-managed PKI within your organization that contains internal
CAs chained to an internal root CA at the top of the chain
Purchase a CA certificate from a commercial CA and issue certificates within the organization
from internal, self-managed CAs that are chained to the external root CA
Purchase certificates from a commercial CA that are chained to a public root CA (preferably a
member of the Microsoft Root Certificate Program that are automatically distributed to
clients that use Microsoft Windows® platforms)
If the security solutions supported by the PKI do not require external parties to trust the issued
certificates, and will not in the future, then you may opt for a self-managed PKI that uses an internal
root CA as the trust anchor for the PKI. Using an internal root CA allows you to maintain direct
control over its security policies and to align its Certificate Policy (CP) with the overall security policy.
Therefore, you will use internal CAs for issuing certificates to end users, to computers, and to
services. These internal CAs can be expanded to include additional functionality, such as support for
new certificate types, at a lower cost than buying external certificates.
CA Hierarchy Options
In a hierarchical PKI (a typical deployment), there are generally three types of hierarchies – one tier,
two-tier, and three-tier.
One-Tier Hierarchy – Consists of one single CA. The single CA is both a root CA and an
issuing CA. A root CA is the trust anchor of the PKI, so a root CA public key serves as the
beginning of trust paths for a security domain. Any applications, users, or computers that
trust the root CA also trust any certificates issued by the CA hierarchy. The issuing CA is a CA
that issues certificates to end entities.
This one-tier hierarchy is not recommended for any production scenario because with this
hierarchy, a compromise of this single CA equates to a compromise of the entire PKI. For
security reasons, root and issuing CAs are normally separated because it is generally very
difficult to quickly distribute a new root CA certificate to replace a compromised CA. This is
especially true when the environment includes computers not joined to management domain
or devices where a special process is required to provision the root CA certificate. Because of
this, a one-tier hierarchy may be sufficient for only simple implementations where ease of
manageability and lower cost outweigh the need for greater levels of security or flexibility.
A common finding in PKI assessments is that some organizations install a single CA in order
to support a major project that may have required it. Perhaps this is an installation of System
Center Configuration Manager, or wireless network protection, or some other PKI-consuming
technology and one small line-item in the project’s plan is dedicated to the CA installation.
Over time, this single CA begins to get a lot of use as it is leveraged more and more for
purposes other than those originally conceived. Suddenly, there is a need for a proper PKI
and administrators face some uneasy questions:
Can I install multiple PKIs in my forest without them interfering with each other?
How do I set up my new PKI properly so that it is scalable and manageable?
How do I get rid of my old CA without causing an interruption in my business?
Is the configuration of this CA posing a security risk to the enterprise?
So there are multiple security risks in using a one-tier hierarchy – your only CA is online and
more susceptible to compromise, and you cannot revoke this CA if it was compromised. This
hierarchy is also more difficult to expand to support other scenarios. If you are in the position
to move to the recommended CA hierarchy design, refer to the Moving Your Organization
from a Single Microsoft CA to a Microsoft Recommended PKI article.
Three-Tier Hierarchy
Offline Root CA
Two-Tier Hierarchy
Two-Tier Hierarchy – A two-tier hierarchy is a design that meets most company’s needs. In
some ways it is a compromise between the one and three-tier hierarchies. In this design there
is a root CA that is offline and a subordinate issuing CA that is online. The level of security is
increased because the root CA and issuing CA roles are separated. But more importantly the
root CA is offline so the private key of the root CA is better protected from compromise. The
two-tier hierarchy also increases scalability and flexibility due to the fact that there can be
multiple issuing CAs subordinate to the root CA. This allows CAs to exist in different
geographical locations, as well as with different security levels. Manageability is increased
since the root CA has to be brought online to sign CRLs. Capital cost is increased marginally
because all you need is an additional server or a virtual machine. The two-tier hierarchy is the
recommended design for most PKI solutions.
Another advisable idea is to restrict certificates of the subordinate issuing CAs to limit their
impact on the CA hierarchy, so that subordinate CAs cannot issue “rogue” certificates that
could be used for unintended purposes. This is important when you have more complex
certificate hierarchies. The most obvious case occurs when an issuing CA is operated by
For a complete list of the recommendations for planning a CA hierarchy, along with the level of
business impact at which you should consider implementing them, refer to Appendix F: List of
Recommendations by Impact Level.
In today’s threat landscape, physical security of hardware is often not a strong consideration when
designing a system. When designing many systems, the physical security is assumed to be in place,
and since the majority of attacks are occurring over the network, not much extra attention is given.
When designing a PKI, additional consideration must be given to the physical security of the
systems, as unauthorized physical access can lead to a complete compromise of the PKI, and
subsequently lead to compromise of other critical systems that rely on it.
Designing physical security involves a substantial amount of planning before deploying a PKI
because there are many aspects to consider, and there is not a one-size-fits-all solution. For
example, the physical security for an organization wanting to deploy a simple two-tier CA system for
solving a single application needed in a low assurance situation is handled differently than the
physical security for a PKI for a financial institution wishing to use their CAs for securing transactions.
The following information is not intended to be a checklist or “how-to” guide for building physical
security for PKI. Instead, the concepts below should each be given consideration when
implementing physical security controls for a PKI.
Functional Considerations
The level of physical security a PKI requires depends on the functions it allows. Consider the
following when defining physical security requirements for PKI:
Assurance Level – The level of trust stated by the entity providing certificate services based
on many different factors including the stringency of the method used to identify a person or
entity receiving certificates, the criteria required for issuance, and the purpose of the
certificates issued.
Function of the system – The function or functions a system has in relation to the PKI.
Functions include acting as a CA (online or offline), enrollment functions, and revocation
verification hosting. Different functions may require different levels of physical security.
Form Factor – The server operating system host type - virtual or physical.
Private Key Storage – The method by which the private keys are stored whether it is on a CA
Server file system or a Hardware Security Module (HSM) which is a dedicated hardware
device for this purpose.
PKI Artifact Storage – Storage of dependent components including HSM cards or tokens,
backup drives, USB drives, smart card readers, or biometric devices. See Protecting CA Keys
and Critical Artifacts for more information. Strong physical access controls should be in place
for any sensitive PKI artifacts.
Business Continuity and Disaster Recovery – Processes and procedures created to ensure a
PKI is functionally available after a minimal amount of downtime after an event causing
disruption of service.
Operational Considerations
Most data centers already have some physical security in their design or implementation. Typically
they have doors requiring a proximity card for access with another form of verification such as a PIN
pad, biometric scanners, or a security guard checking identification. Most data centers have some
form of closed-circuit surveillance inside and out. Some have dedicated cages for servers identified
as high-value assets. Some or all of these controls do not necessarily mean a PKI contained inside is
secured.
Not all organizations have the luxury of designing their data center with PKI in mind. However,
organizations with existing data centers with some of these controls in place should take advantage
of their placement and use the existing controls to help mitigate risk. The following
recommendations should be considered when designing PKI physical security.
Track and Audit Physical Access Requests
Consider implementing processes that allow all access requests to sensitive areas be tracked and
have an audit trail. Consider having all access to a sensitive area require an approval workflow be
completed prior to access being granted. For example, a process could be defined that requires data
center operations staff to review all requests for access and ensure they are originating from known
individuals with a legitimate need for access prior to temporary access being granted. Using an
access approval process is a preventive control that allows for additional verification, where
personnel with persistent access may misuse their credentials and access may not be detected until
after the fact.
Proximity access cards and keys can be easily stolen. Identification cards can be counterfeited. It is
far more difficult to fake a person’s biometric signatures such as hand geometry, fingerprints, or
retina data. Consider using biometric data as an authentication mechanism to access building areas
where sensitive PKI assets are stored.
A key aspect of using biometrics is ensuring identity verification is performed during biometric
enrollment, especially when the data is paired with a device such as a proximity card. In addition, it is
important to ensure any biometric enforcement controls are configured to reject two persons with
identical data in biometric enrollment. A person could conceivably have a valid stolen proximity card
and pair it with their own biometric data to access an area as the owner of the stolen card.
Use Multi Person Control
For sensitive areas where PKI assets are stored, consider requiring multi person control to enter the
area. Multi person control ensures that no single person can gain access to sensitive assets. This
prevents a malicious insider from acting alone, forcing them to collude with another trusted
individual to gain unauthorized access. In the case of physical breaches, it may be more likely that
the breach is performed by an insider rather than an external attacker. With multi person control in
place, it is more difficult for an attacker to obtain multiple credentials, or put multiple trusted people
under duress to perform an action against their will.
Consider implementing technical controls that enforce multi person access, ideally with
representation by persons in differing roles or organizations. Examples include door readers that
require multiple distinct persons to present keys prior to allowing access, alarms that require two
codes to disable, or safes that require multiple combinations to unlock. Further enforcement
mechanisms of multi person control are discussed in the Protecting CA Keys section.
Eliminate Tailgating to Sensitive Areas
Access to sensitive areas should be limited only to authorized personnel. “Tailgating”, or allowing a
user to enter behind another user based on their access should be prohibited. Consider
implementing a man trap that only allows one user to enter the sensitive area at a time. Alternatively,
a guard can control access by authenticating each individual as they enter the sensitive area. In cases
where visitors need to access a sensitive area where they do not have access, consider implementing
an override procedure where multiple authorized persons are required to override the system and
allow the visitor to have access.
Use Alarm Systems as a Detective Control
Consider implementing alarm systems to detect unauthorized access to sensitive assets. For
example, a server rack can be configured to trigger an alarm if it is opened without prior knowledge
of the facility security team. Alarms can be used as a control to ensure that all access attempts come
Consider using surveillance cameras in sensitive areas where access is limited to ensure that
unauthorized access is detected. When cameras are used, ensure that they are placed such that they
capture all entry/exit to the secure location and have a good view of the sensitive assets. Ensure that
there are processes in place to ensure that access events are reviewed in a timely manner and that
recordings are stored securely. According to policy in many organizations, key ceremonies are
recorded. If you are able to utilize surveillance cameras to record or design the data center to allow
line-of-sight surveillance to view artifact extraction, handling, storage, and inventory or even show
screen access or use, an additional camera may not need to be used.
Geographically Separate Primary and Backup Sites
In case of primary site failure due to an act of nature such as an earthquake, hurricane, or flood, as
well as acts of terror or war, the backup location should be geographically distinct and not
susceptible to the same acts of nature or terror-related damage as the primary site. Additionally,
separate staff should be available for primary and backup facilities. Where backup facilities are
hosting sensitive hardware such as active HSMs, ensure that the physical controls present are
equivalent to the controls at the primary location, and meet the defined corporate policy.
Use Security by Obscurity Carefully
Security through obscurity can be used to your advantage or to your detriment. Do not place CAs
alongside servers administered by an organization different from the organization responsible for
PKI. However, it can be to your advantage to discreetly name or tag systems to not immediately
disclose the purpose or criticality of the system. Also, disseminate information regarding sensitive
assets (location, purpose, etc.) on a need to know basis. Refrain from tracking information on the
company intranet that would make it easy for an attacker to know the exact location of sensitive
equipment.
Physical security controls help to provide assurance that the PKI will not be compromised by attacks
requiring physical proximity to the PKI systems. Controls can help mitigate impersonation of
authorized users, hardware attacks, and introduction of unauthorized software into offline
environments. Implementing strong physical controls can also help mitigate risks associated with
insider attacks including rogue or administrators under duress performing unauthorized actions.
For a complete list of the recommendations for planning physical controls for securing PKI, along
with the level of business impact at which you should consider implementing them, refer to
Appendix F: List of Recommendations by Impact Level.
As mentioned above in the Introduction to PKI section, maintaining the trust of relying parties is an
integral component to managing a PKI. If the PKI has no formal policy defined, the relying parties
cannot make an informed decision whether to trust certificates issued by the CAs. This is especially
important when certificates are distributed to external third parties. Otherwise, there is no clear
understanding of how the PKI is managed.
To facilitate this trust, you should deploy and operate a PKI with some level of oversight, and with
policies, standards, and procedures in place to manage the PKI. The level of oversight and the
number of controls required will vary depending on the intended use and security impact of issued
certificates. For example, a CA trusted and used internally to issue certificates for wireless network
authentication does not need the same amount of oversight as a CA that issues SSL certificates to
customers. In both cases, define and set the security bar for the PKI from the start.
PKI Policy
Prior to deploying any CA or issuing a certificate, define and agree upon the policy which governs
the use of the PKI. A policy usually takes into consideration regulatory and industry requirements as
well as unique requirements for your company. The policy may also specify technical aspects of the
PKI such as the cryptographic algorithms that must be used as well as operational controls for the
CAs.
It is likely that other services either inside or outside of your environment will depend on the PKI, and
the PKI policy should provide a clear guidance on what can be expected for certificate issuance,
security, disaster recovery, etc. The policy does not need to be overly complex, but it is critical to
develop and follow it from the beginning to have a level of assurance in the operated PKI.
In addition to PKI policy, you may need to develop CA-specific policies before implementing the PKI.
These policies may be expressed differently depending on the required level of assurance. They can
be expressed either as documented statements about certificate usage and issuance controls for a
simple internal CA or as a formal Certificate Policy/Certification Practice Statement that follow IETF
Public Key Infrastructure X.509 Certificate Policy and Certification Practices Framework (RFC 3647)
with accompanying standard operating procedures.
Certificate Policy
As defined by IETF, a Certificate Policy (CP) is “a named set of rules that indicates the applicability of
a certificate to a particular community and/or class of application with common security
requirements.” That is, a CP defines the expectations and requirements of the relying party
community that will trust the certificates issued by its CAs. For example, the CP explains what
methods are used to establish the identity of a subject before issuing a certificate. A Certification
Practice Statement (CPS) outlines the operation of the PKI from a security perspective and must be
followed from the initial deployment of a company’s CAs. These formal documents may be overkill
for a typical enterprise PKI deployment, but they provide a good structure to think about for your
PKI and risk assessment.
The CPS sets the security standard for the PKI solution and is used as the source for the PKI security
requirements. Note that you may choose to not create this formal document, but it is quite useful to
follow the CPS structure to develop and document your own policy. A CPS is important when
certificate subscribers exchange or use certificates with partners and entities outside of the
company's network. When external trust is implemented, you need to align PKI policies and practices
as part of external contract terms and a CPS is a good way of achieving this.
The CPS basically translates CPs into operational procedures on the CA level. The CP focuses on the
make-up and uses of a certificate; the CPS focuses on a CA.
It is important to make conscious decisions about what practices will be used for certificates. You
should include both the decision and reasoning behind it in the documentation. By doing this, you
are able to state what your practices are so that these practices can be tested and evaluated in
production. When setting up monitoring, use this documentation to specify what should trigger an
alert and what is acceptable per certificate issuance best practices.
Effective key management controls and practices expressed in the CPS or similar documentation
within your company are essential to the trustworthiness of the PKI. These practices should cover CA
key generation, CA key storage, backup and recovery, CA public key distribution, CA key usage, CA
key destruction, CA key backup, and the management of CA cryptographic hardware through its life
cycle.
The certificate lifecycle is at the core of the services provided by the CA. The user certificate lifecycle
usually includes the following:
Registration (the identification and authentication process related to binding the End Entity
to the issued certificate)
Renewal/rekey of certificates
Revocation of certificates
Timely publication of certificate status information
Effective controls over the registration process are essential because poor identification and
authentication controls jeopardize the ability of clients and relying parties to rely on the certificates
issued by the CA. Effective revocation procedures and timely publication of certificate status
information are also critical elements because it is critical for relying parties to know when they are
unable to rely on certificates that have been issued by the CA.
This section is applicable to big enterprises or government organizations because of the complexity
of their environments. A common error for organizations during PKI solutions deployment is the lack
of PKI governance or oversight. The goal of governance is to ensure the consistent management of
the policy including its formulation, the applicability of policy, and measurement of compliance with
policy. Governance plays a significant role in a successful PKI because a PKI is not a static system.
There will likely be ongoing changes within the environment that will drive operational or security
changes to the PKI. For example, ongoing risk assessments will uncover new risks which the
governing body of the PKI should take into account when developing the policy. The governance
structure for the PKI policy is usually known as the Policy Authority. The Policy Authority is
responsible for identifying the appropriate set of requirements for a given community and oversees
the CAs that issue certificates for that community. Proper governance will ensure that any changes
introduced are well understood, carefully considered, and are well communicated to the community
of relying parties. The following are some recommendations s for ensuring proper governance and
oversight:
The Policy Authority should use existing policy structure
If a policy team exists already, get them involved
PKI process security relies on trustworthy personnel to deploy and operate the PKI. Personnel
security plays a critical role in the PKI’s overall security. Design personnel security to prevent both
unauthorized access to the PKI facility and CAs and compromise of sensitive CA operations by CA
personnel. Inadequate personnel security procedures or negligent enforcement of personnel security
policies can pose potentially serious threats to security. These threats can include unauthorized
access, data loss and corruption, denial of service, and even facility sabotage or terrorism. Such
events can erode or destroy confidence in the PKI.
While planning for CA deployment or operations, clearly define and assign individuals to trusted
roles. A trusted role is one whose incumbent performs functions that can introduce security
problems if not carried out properly, whether accidentally or maliciously. It is essential that the
people selected to fill trusted roles be held accountable to perform designated actions correctly
because if they fail to do so, the integrity of the CA and the PKI is weakened. The functions
performed in these roles form the basis of trust in the CA. There are two approaches to take in order
to increase the likelihood that these functions can be successfully carried out. The first approach is to
minimize the number of trusted roles and ensure that the people filling those roles are trustworthy
and properly trained. The second is to enforce the concept of least privilege and distribute the
functions of the roles among several people, so that any malicious activity requires collusion (multi-
party control).
Trusted roles include the following responsibilities:
Overall responsibility for administering the implementation of the CA’s security practices
Approval of the generation, revocation, and suspension of certificates
Installation, configuration, and maintenance of servers that operate the CA
Day-to-day operation of the servers
CA backup and recovery
Maintenance and review of audit records
Cryptographic key life cycle management functions (for example, key component custodians)
Development and validation of the CA
The mandatory trusted roles usually defined are the CA administrator, certificate manager (or
security officer), the CA operations staff, and security auditors. Multiple people may hold the same
trusted role with collective privileges sufficient to fill the role. Maintain lists for those who act in
As mentioned previously, secure CA key generation is essential to the trustworthiness of the CA and
PKI. An important portion of secure CA key generation is to ensure that CA key pairs are generated
in accordance with the PKI’s established policy. This is achieved by following predefined procedures
specified within detailed key generation ceremony scripts. As mentioned before, plan the key
generation ceremony in advance and include relevant parties in its approval.
The CA key pair generation must create a verifiable audit trail demonstrating that the security
requirements for procedures were followed. The ceremony must be documented in sufficient detail
to show appropriate multi-party control and role separation were used. Depending on the
established security policy, generation of CA keys should be witnessed by an independent party
and/or videotaped and all CA key generation activities must be logged.
Develop a ceremony document that contains a list of the materials used, the trusted roles and
responsibilities, the ceremony roles list, and a detailed step-by-step script for HSM setup, CA
deployment, and CA configuration. The ceremony script must contain fields for signatures of
operator and witness, and be specific on produced ceremony artifacts. Below is an example of a
ceremony script:
2 Server Configurations
3 Pre-Generation Configurations
4 CA Installation
Connect to HSM
Begin CA installation
Copy artifacts to the transport media
5 Request CA Certificate
6 Install CA Certificate
7 Post-Issuance Configurations
8 Backing Up server
Defining a Certificate Policy/Certification Practice Statement, regardless of how formal you choose to
be, provides a baseline expectation of what relying parties can expect from your service. Creation of
these documents also act as a forcing function to ensure that all aspects of your PKI management
have been given some consideration. Enforcing the concept of trusted roles helps ensure those
operating the PKI meet a minimum standard of training and experience prior to being granted
access to high value assets. Performing key signing ceremonies provide assurance that proper steps
were followed, which mitigates risks associated with keys being created or managed insecurely.
For a complete list of the recommendations for creating PKI processes and documentation, along
with what level of business impact at which you should consider implementing them, refer to
Appendix F: List of Recommendations by Impact Level.
While a large percentage of the work required to operate a successful PKI is in the creation of the
correct policies, standards and procedures, the work required to implement a secure design should
not be discounted. This section introduces a number of technical recommendations for
implementing a secure design. Implementing strong technical controls will introduce barriers that
will make successful exploitation very difficult or cost prohibitive. Many of the recommendations are
specific to AD CS-based online PKI deployments, although the concepts are universally applicable.
Not all recommendations apply to all environments. Each recommendation is provided in the
appendix along with the recommended impact level to which it applies.
Securing the CA Operating System
Critical systems such as CAs should be locked down from the moment they are introduced onto the
network. Several freely available tools exist (discussed below) that either ship with Microsoft
Windows® or can be downloaded to assist in creating a baseline and then deploying it via Group
Policy Objects (GPO) to all domain-joined certification authorities.
Microsoft Security Compliance Manager
Microsoft Security Configuration Wizard (SCW) is a guide for the process of creating, editing,
applying, or rolling back a security policy. In conjunction with SCM, use it to create a baseline
configuration that can be applied across other similar servers via GPO. SCW is included with
Microsoft Windows Server®. For more information on SCW, refer to the links below:
Microsoft Windows Server 2008®: Security Configuration Wizard
Microsoft Windows Server 2008 R2® and Microsoft Windows Server 2012®: Security
Configuration Wizard
Online CA Hardening Recommendations
Below are several recommendations to consider when creating a secure baseline for an online CA.
This list is not complete, and the recommendations provided should be extensively tested before
deploying in a production environment.
Disable CD-ROM Autoplay
Rename administrator and guest accounts
Disable local administrator and guest accounts
Administrators managing the day-to-day operations of the PKI should not use the same accounts
used on personal productivity workstations to check email and browse the Internet. Instead, they
should use dedicated alternate accounts with the required permissions necessary to manage the PKI.
Updating Online Certification Authorities
Although it may seem counterintuitive, consider updating CAs and other critical infrastructure
components separately from the general Microsoft Windows® infrastructure. If an organization
leverages enterprise configuration management software for all computers in the infrastructure,
compromise of the systems management software can be used to compromise or destroy all
infrastructure components managed by that software. By separating updates and systems
management for online certificate authorities from the general system population, the amount of
software installed on CAs is reduced, and their management more tightly controlled.
Internet Access from Certification Authorities
Launching web browsers on CAs should be prohibited not only by policy but by technical controls,
and CAs should not be permitted to access the Internet except to validate CRLs. Although detailed
In many organizations the baseline system configuration includes a large number of groups or user
accounts included in the local administrators group of the system. With highly secure systems such
as CAs, the number of accounts that are members of the local administrators group should be kept
to a minimum. In an AD CS deployment, if an attacker gains access to an account with administrative
access to the CA, there is a high likelihood they will be able to create certificates that will allow them
to gain privileged access to the Active Directory®. For online CAs, consider limiting administrative
access to only dedicated accounts used for management of the PKI, and enforce the members of the
local administrators group via GPO. Enterprise Admins and Domain Admins can be removed from
the local administrators group.
Accounts that are of particular interest to attackers are accounts with wide and/or deep access
across an environment. Often these are accounts that perform an important function, such as
security scanning, update management, backup, inventory, etc. and require administrative rights to
operate. Where possible, remove these accounts from CAs and consider how the function could be
performed without requiring administrative rights on the CA. Additionally, eliminate or limit the
number of system/service accounts that are permanent members of the local administrators group.
Actions that are performed on a CA should be traceable back to the person that performed the
action.
Application Whitelisting
Use AppLocker or a third-party application whitelisting tool to configure services and applications
that are permitted to run on CAs. These permitted applications and services should be comprised of
only what is required for the computer to host AD CS plus any system security software such as
antivirus software. Whitelisting permitted applications on CAs adds an additional layer of security so
that even if an unauthorized application is installed, the application cannot run.
A CA is an excellent candidate for AppLocker because the list of software required to run on a CA
should be minimal and relatively static. Testing is vital to an AppLocker deployment. Prior to
deployment, test a list of rules in a test environment and then migrate the rules to a production
server and run using Audit only enforcement to profile the CA. Once the rule set is established,
enforce the rules. For more information on deploying AppLocker, refer to the AppLocker Overview.
Securing Remote Management Tasks
For highly secure CAs, it is very common for remote access to management tasks be very limited or
disallowed by policy. Remote management should only originate from authorized users and systems.
This can be accomplished through a combination of user rights settings and Microsoft Windows®
Firewall with Advanced Security settings. A recommendation to consider when creating a remote
access design is to use secure administrative hosts or jump hosts, as described in the Best Practices
for Securing Active Directory whitepaper. While the whitepaper discusses in detail the approaches
For highly secure CAs that issue very few certificates, a strong preventive control is to keep the CA
offline. The lack of network connectivity provides a boundary for potential attackers and exploits. The
purpose for adding an additional security boundary and removing root and policy CAs from the
network is that a compromise of a root CA has broader impact because it can be used to sign
additional issuing CAs valid for any use cases and are inherently trusted. Additionally, root and policy
The most important logical piece of data is the CA private key. Every time a CA performs a signing of
a certificate or CRL, the CA private key is being used. If the CA private key were compromised, the
attacker could perform operations as the CA, undermining any other security controls. More detail
regarding protecting CA private keys can be found in Protecting CA Keys and Critical Artifacts.
Offline CAs Should Be Truly Offline
Offline CAs are called offline for a reason - the absence of network connectivity provides a boundary
for potential attackers and exploits. They are only accessible physically and never connect to a
network. If the offline CA is installed on a physical server chassis, a network cable should never be
plugged into the server. Ideally the server would be built without a network card, or the network
card disconnected from the motherboard, disabled in the BIOS, or at minimum disabled logically in
the operating system. Offline CAs can also be virtualized; refer to the Virtualizing Certification
Authorities section for more information.
Regardless if the CA is physical or virtual, when an offline CA is not in use, the systems and
dependent components should be shut down completely. This includes host computers for
virtualized offline CAs and HSMs.
Managing Data Transfer
With an offline CA, typical data transfer techniques such as file shares are not available. However,
data will still need to be transferred to and from the system periodically. It is essential to scan USB or
other transfer media for malware and only use authorized devices for file transfer or updating the
server. Consider using a dedicated USB, SD card, or other removable media to transfer data to and
from the offline system.
Updating Offline Certification Authorities
With strong processes in place to control the data introduced to the system, monthly security
updates could be considered optional. For offline CAs, consider updating the operating system with
service packs and any updates that affect the logical operation of the CA. This includes CA software
updates, and updates for changes to time zone boundaries or Daylight Savings adjustments.
Additional updates may be necessary to ensure supportability in case of a functional problem or for
compliance reasons. If an HSM is used, ensure that updates to the HSM software and hardware are
If you need built-in auditing capacity for tracking purposes, it may be necessary to create and assign
separate local accounts for administration. However, if accessing the CA is protected with entry
auditing and surveillance, extra accounts may not be necessary and the standard built-in
administrator account can be used. In either case, it is recommended that any activity performed on
an offline CA can be attributed back to the individual who performed the activity. If an HSM is not
used, additional care is needed for administrative accounts as discussed in the Protecting CA Keys
section.
Virtualizing Certification Authorities
Virtualization of online or offline CAs may make sense in some scenarios. Virtualizing an AD CS CA in
a Microsoft virtual server environment is a supported configuration. Refer to the Microsoft Virtual
Server support policy for more information.
This section provides guidance for securely implementing offline or online CAs using virtualization
technology.
Offline Certification Authorities
Before virtualizing offline CAs (root, policy), consider the following recommendations:
Decouple the CA from the Host Hardware – Use removable media to store the virtual
machine hard disk files, regardless of the host hardware. Doing so permits independence of
any host hardware, preventing problems if the hardware fails or needs to be replaced. Use a
removable USB attached hard drive to store the virtual machine hard disk files. Securely
store the removable media. Access to the CA hard disk files is equivalent to access to the CA.
Use a Secure Host Machine – The host hardware used to create the virtual machine and
bring it online for routine maintenance should be dedicated hardware used for this purpose.
Physically secure this hardware in the same manner as a physical Root CA. Use server
hardware, or laptop hardware. If you use server hardware, keep the hardware locked in a
secure cage under the same controls as other offline CAs. If you use laptop hardware, keep
the laptop locked in a safe, handled similarly to storage of backup data or other items
discussed in the Artifact Storage and Chain of Custody section. If dedicated hardware is not a
feasible option, consider building a clean computer not connected to the network when
powering on an offline CA. In that case, build the computer, perform the needed activities,
and then wipe the computer securely. In any case, do not attach the host hardware to the
network. The CA should not have any portion of the infrastructure connected to the network,
not even to use SAN attached storage. Remember, offline continues to mean offline.
Periodically evaluate the condition of the hardware and replace it as needed.
Use an HSM – By using an HSM, even if a virtual disk image is compromised, the keys are
not. By not using an HSM, the CA keys are compromised if the virtual machine disk image
ever leaves your immediate control. If there is already a network HSM for the online CAs, it
When considering using virtualization for online CAs, consider the following recommendations:
Control Administrative Access to the Host Operating System – Users and processes that
have administrative access to the host operating system ultimately have access to the virtual
machine hard disk files, which can result in the equivalent of physical access to the virtual
CAs. If an administrator should not have access to a physical CA, they should not have access
to the host operating system on which the virtualized CA is running. When determining
access controls, consider all potential paths that might allow a user to gain access to the CA
hard disk files and administrative access to the host OS. Consider also the access to virtual
machine management consoles, access to snapshots, access to back end storage arrays, etc.
In high security environments, consider disabling RMB access to the host hardware if multi-
person control is a requirement.
Use Network Attached HSMs – By using an HSM, even if a disk image is compromised, the
keys are not. By not using an HSM, the CA keys are compromised if the virtual machine disk
image ever gets out of your control. When using network attached HSMs, consider deploying
An AD CS CA offers the option to enforce Common Criteria (CC) role separation, which is used to
separate CA support into predefined CA roles. Each role is eligible to perform a specific subset of CA
functionality. Users can be assigned to only one role, and if they are assigned to more than one role,
Role separation offers some benefits, but it also introduces some challenges that should be
considered when evaluating its usefulness for your environment. Separating roles allows for a
stronger separation of responsibilities for individuals or teams, and can provide a clear technical
separation for systems that are subject to compliance requirements that require separation of duties.
However, implementing role separation does require a sizable support staff. To ensure that there is
adequate coverage for all critical roles, an organization would require multiple individuals for each
role, which is often not possible.
Give careful consideration to the operational impact enabling role separation may have before
enabling it in your environment. If you use role separation, ensure that its configuration is monitored
for changes, as it can be easily disabled by someone with administrative rights on the CA. Refer to
the Monitoring Public Key Infrastructure section for more information. For more details on role
separation refer to the following resources:
Implement Role-Based Administration
Role Separation
Defining PKI Management and Delegation
Protecting CA Backups
When performing a backup of a CA, there are three items necessary to fully recover:
CAs should only be accessible by the users and systems that require access to them. There are many
deployment scenarios for a CA and many front end systems that may require access to a CA.
Supporting some out-of-box scenarios such as auto enrollment of user or computer certificates
requires broad access to the CA from most, if not all, domain joined client computers and users on
the internal network. Other deployments, such as deploying with a RA such as Forefront Identity
Manager Certificate Management, may only require the RA system to interact directly with the CA.
When developing the security design for PKI, consider the following recommendations:
Isolate certificate systems away from other systems on the network. If a system does not have
a legitimate need to connect to a certificate system, do not allow the connection.
Implement security “zones” to isolate the certificate systems based on their criticality or
relationship to each other
Only allow the required inbound and outbound connections that are identified as necessary
for the CA and supporting systems to function
If you utilize network attached HSMs, restrict access to those devices to only the CAs or other
systems that utilize them
Restrict management access to originate from a limited set of administrative hosts. Refer to
the Securing Remote Management Tasks section for more information.
Securing Certificate Templates
Attackers will take the path of least resistance when attempting to compromise an environment. If a
simple attack vector is available, attackers will use it rather than using exploits that are more difficult
to execute or more difficult to detect. One method attackers use to compromise environments is to
employ misconfigured certificate templates to get credentials that can then be used to access
additional systems or sensitive data. The following are several recommendations to consider in order
to secure certificate templates:
Remove Overly Broad Enroll or Autoenroll Permissions – Rather than determining the
exact population of users that require a specific certificate type and explicitly granting them
enrollment permissions, occasionally “Authenticated Users”, “Domain Users” or other broad
groups are granted enroll or autoenroll permissions. This can lead to accounts that have no
need for a certificate to be eligible to enroll. Avoid granting overly broad enrollment
permissions for certificates. Instead, carefully consider which accounts need permissions, and
explicitly deny enrollment rights for users or groups of users that should not be eligible for
enrollment.
2. Build from this Active Directory® information – The subject for the certificate is
determined by the CA by performing an Active Directory® lookup of the user performing
the request. The applicable attributes from the Active Directory® are used to populate
the certificate.
When using “supply in request”, a user can request a certificate that would potentially allow
them to authenticate as another user if no other security mechanisms are in place. When
using “supply in request” templates, ensure that one or more of the following controls are in
place to prevent misuse:
o Implement additional signatures on requests – A common approach is to require
at least one signature from a user or system with an enrollment agent certificate.
Consider requiring the enrollment agent private key to be stored in an HSM.
An Active Directory® Certificate Services CA offers several methods to add subject alternative names
(SANs) to a certificate:
Add from known AD object attributes – The CA can add alternative names from a defined
subset of attributes when you choose to add the subject information from Active Directory®.
The CA performs this addition, and the data is not specified by the user. Manipulation would
require an attacker to be able to manipulate the values of attributes for a user in Active
Directory®.
Add as an extension in the certificate request – If the template is configured for “supply in
request”, the extensions requested will be honored by the CA if supported. The alternative
names are provided by the requestor.
Add as an attribute that accompanies the certificate request – Requires the CA to allow
user-specified alternative names via the EDITF_ATTRIBUTESUBJECTALTNAME2 flag. If this
flag is set on the CA, any request (including when the subject is built from Active Directory®)
can have user defined values in the subject alternative name.
Allowing users to define arbitrary alternative names poses risk to the PKI if it is not implemented
with proper controls. Anytime you allow a user to define SANs, implement the following additional
controls:
Requests that may contain user-defined alternative names should be set to “pending” when
submitted and reviewed by a Certificate Manager prior to issuance
Do not allow a single person to have the ability to both add SANs and approve the request
It is strongly recommended not to enable the EDITF_ATTRIBUTESUBJECALTNAME2 flag on an
enterprise CA. If this is enabled, alternative names are allowed for any Certificate Template issued,
regardless of how the subject of the certificate is determined according to the Certificate Template.
Using this feature, a malicious user could easily generate a certificate with an alternative name that
would allow them to impersonate another user. For example, depending on the issuance
requirements, it may be possible for a malicious user to request a new certificate valid for smart card
logon and request a SAN which contains the UPN of a different user. Since smart card logon uses
UPN mapping by default to map a certificate to a user account, the certificate could be used to log
on interactively as a different user, which could be a domain administrator or other VIP account. If
this flag is enabled, the CA should be limited to require Certificate Manager approval or limit
enrollment permissions to only trusted accounts.
To see if EDITF_ATTRIBUTESUBJECALTNAME2 is enabled on the CA, run the following command:
certutil –getreg policy\EditFlags
If EDITF_ATTRIBUTESUBJECTALTNAME2 is included, it is turned on. To disable the setting, run the
following command:
certutil –setreg policy\EditFlags –EDITF_ATTRIBUTESUBJECTALTNAME2
Then restart the CA service:
Implementing strong technical controls can mitigate many of the common attack vectors used to
compromise an ADCS PKI installation. This section has detailed some of the common
misconfigurations that can lead to compromise, including securing access to certificate templates,
and template enrollment options that lead to the issuance of unauthorized credentials. Limiting
access to PKI systems through network controls and treating PKI systems as high value assets that
are not managed like common infrastructure helps mitigate the risk of the PKI being compromised
through supporting systems and overly broad access. Strong key protection help mitigate the threat
of a CA key being exported and used outside of authorized hardware by an insider threat or an
attacker.
For a complete list of the recommendations for technical controls, along with the level of business
impact at which you should consider implementing them for, refer to Appendix F: List of
Recommendations by Impact Level.
Two key factors in implementing a secure PKI are the choices of cryptographic algorithms used
throughout the PKI, and determining what the resulting certificates can be used for. Advances in
computing capabilities and cryptographic research continue to show that cryptographic algorithms
have a finite lifespan. Selection of proper algorithms will ensure that the data and processes they
protect have the best possible chance of remaining secure for their useful life.
Cryptographic Algorithms, Key Lengths, and Validity Period
The proper selection of cryptographic algorithms and key lengths is essential to the effective use of
certificates. The security of information protected by certificates depends on the strength of the keys,
the effectiveness of mechanisms and protocols associated with keys, and the protection afforded to
the keys. CAs are presented with many choices of cryptographic mechanisms. Inappropriate or
inconsistent choices may result in less security for the certificate subscribers. This section provides
recommendations for selecting algorithms, key lengths, and certificate validity period for CAs. Note
that recommendations provided in this document are current for the publishing date of the
document, but you may need to revisit them as computing capabilities and cryptographic research
advance.
Selecting Algorithms and Key Lengths
When designing certificate hierarchy, use only secure cryptographic algorithms and associated key
lengths in PKI CAs. Strictly avoid the use of weak cryptographic algorithms (such as MD5) and key
lengths. Due to a great deal of attention in cryptography and PKI in recent years, even if you
currently employ widely-used cryptographic algorithms (such as RSA/SHA-1 because hash collisions
are computationally feasible for MD5 and SHA-1 algorithms which effectively “breaks” them),
consider employing new algorithms such as those based on elliptic curve cryptography (ECC).
NIST Special Publication 800-57 Recommendation for Key Management Part 1 (Revision 3) and
ENISA’s Algorithms, Key Sizes and Parameters Report – 2013 Recommendations provide detailed
recommendations for algorithms, key lengths, and signature schemes. Both documents contain
some key lengths comparison for different algorithms and consider 128-bit security level to be the
minimum requirement for new systems being deployed. However, take into account the length of
time data needs to be kept secure. This is where CA certificate validity period plays its role. The
validity period defines how long CA certificates will be trusted because the key length for CA
certificates relates to both the security level that needs to be provided and the required duration of
the key’s validity. With a longer validity period, plan for a higher security level of crypto algorithms.
With these considerations in mind, the recommended subordinate CAs key length must be at least
2048 bits for RSA and ECC-based subordinate CA keys must use one of the following curves: P-256,
P-384, or P-521. For any CA that has certificate expiration more than 15 years in the future, the CA
key length that uses RSA must be 4096 bits or greater or, if the CA key uses ECC, the CA key must
use either the P-384 or P-521 curve.
The SHA-2 family of hash algorithms is currently the only recommended family of cryptographic
hash algorithms. Microsoft recently announced a new policy for CAs that are members of the
During planning and design of your PKI, give consideration to the validity period for each certificate
and key in the PKI. When a certificate is checked for expiration, every CA certificate in the chain must
be checked. A CA should not issue certificates that have a validity that extends beyond the validity of
its own certificate. A Windows Server® CA will not issue certificates beyond the validity of its CA
certificate. If you do not plan validity periods correctly, certificate lifetime can become truncated. For
example, a certificate that should have a two year validity only has eighteen months because the
Issuing CA certificate is due to expire in eighteen months.
As a general rule, the validity period of CA certificates should be at least twice as long as the
maximum validity of the certificates issued by the CA. For example, if a CA issues certificates that are
valid for two years, the validity period of the CA certificate should be at least four years. A CA
certificate is usually renewed in the middle of its lifetime so that it can keep issuing certificates
during the full validity period. The recommendation is to renew the CA certificate once while keeping
the same key pair and to renew it again while changing the key pair.
Note that special consideration must be given when a CA issues certificates for multiple applications
that have different validity periods. For example, an Issuing CA could issue both two year SSL
certificates and one year code signing certificates. Each type of certificate will have a different date
past which it will not be able to obtain a certificate for the full validity period.
Certificate expiration raises the potential for service outage if a certificate is not replaced before it
expires. Starting with Microsoft Windows Server 2012® and Microsoft Windows 8®, certificates in
the Computer and User Personal certificate stores (also known as the “My” certificate stores) have
lifecycle notifications generated, including expiration and near-expiration events. The notification
feature allows a script or an executable to launch in response to notifications gathered from the
Certificate Enrollment API and Microsoft Windows PowerShell®. Administrators can utilize these
notifications to help with managing certificate expiration. Events are written to the
CertificateServicesClient-Lifecycle-System or CertificateServicesClient-Lifecycle-User logs. The table
below lists the expiration-specific events and their sources.
Bits of Symmetric FFC (e.g., DSA, D-H) IFC (e.g., RSA) ECC (e.g.,
security Key ECDSA)
Algorithms
While planning a PKI deployment, ensure that the CA hierarchy uses consistent asymmetric
cryptographic algorithms and key lengths when issuing certificates. When you decide to move to
stronger algorithms, consider building a parallel infrastructure built entirely with new algorithms to
which you can migrate.
CA Key Usages and Certificate Extensions
The intended scope of usage for a private key is specified through certificate extensions, including
the Key Usage and Extended Key Usage (EKU) extensions in the associated certificate. The
cryptographic use of a specific key is constrained by the Key Usage extension in X.509 certificates. All
certificates should include key usage as a critical extension. Note that you usually should not change
key usage in the end-entity certificates, and AD CS CA will take care of setting the right bits in the
keyUsage extension.
The following table summarizes key usages for user certificates:
RSA public keys to use for key transport keyEncipherment bit (2)
ECC public keys to use for key agreement keyAgreement bit (4)
Public keys in CA certificates must be used only for signing issued certificates and status information
(for example, CRLs). The following table summarizes key usages for CA certificates:
CA certificates Public key to use to verify other certificates keyCertSign bit (5)
Public keys that are bound into device, applications, and service certificates may be used for digital
signature (including authentication), key management, or both. The following table summarizes key
usages for device certificates:
Device certificates Public keys to use for digital signatures digitalSignature bit (0)
RSA public keys to use for key transport keyEncipherment bit (2)
ECC public keys to use for key agreement keyAgreement bit (4)
The other important certificate extension that controls what a certificate is trusted for is the Extended
Key Usage (EKU) extension. The Key Usage Extension has an indirect dependency with the EKU
extension, so these two extensions need to align. These extensions are usually populated according
to RFC 5280 and corresponding certificate usage recommendations - for example, in the Transport
Layer Security protocol or for smart card logon.
EKU defines what a certificate will be used for and may contain multiple purposes. Defining the types
of certificates supported by the PKI by determining EKUs is a critical part of the solution design
process. A common misconfiguration is to leave unnecessary default templates installed that offer a
wide variety of EKUs. You should determine the required capabilities of a certificate before it is
issued, and carefully plan their EKUs.
Every PKI-enabled solution should have the type of certificate that matches its trust level and key
usage requirements. This could be accomplished by using its own type of certificate that has its own
attributes, enrollment process, and target audience. However, it is likely that some solutions can
share a certificate for different purposes if the solutions happen to have the same characteristics. For
example, a certificate stored on a smart card may be used for workstation logon, VPN access, or for
authentication to restricted web sites.
It is important to evaluate whether to use single-purpose or multipurpose certificates. The following
table summarizes the benefits of both approaches.
Granular control of certificate usage. Certificates Greater usability. Users find multipurpose
can be individually revoked without affecting certificates easy to handle because fewer of
other use cases. Certificate usage is limited, so them exist.
risky scenarios (for example, code signing) are
not enabled unintentionally.
Limited key usage. Different keys are used for A smaller accumulated size. Multipurpose
different PKI-enabled services. certificates are advantageous when hardware
tokens have limited storage capabilities.
Multiple sources. Certificates can be issued Less network overhead. Less demand is placed
through different CAs when different certificate on the infrastructure because a lower number
policies, application policies, or issuing policies of certificates are in use.
apply.
Archival and Recovery. Certificates that are Less administrative overhead. The smaller
good for signing and encryption should not be number of enrolled certificates reduces the
archived. Single purpose certificates allow overall management burden placed on the
encryption keys to be archived while allowing certificate managers.
signature keys to only exist where they were
created.
The EKUs of each certificate type are typically defined as part of certificate profiles (expressed in the
CPS). For AD CS enterprise installations, the properties of each certificate type are configured in
certificate templates stored in Active Directory®. Microsoft Windows® operating systems come with
built-in templates designed for the most common applications. You can use them as is or as the
basis for custom certificate templates. Refer to Certificate Template Versions and Options for
additional information.
Object Identifiers
EKUs are identified in a certificate by object identifiers (OIDs). An OID is a sequence of integers that
uniquely identifies an object, and OIDs are used in the X.509 v3 standard to represent policies,
extensions, and attributes in digital certificates. Preferably, the OIDs should be globally unique,
especially if the PKI will be used externally.
Quite often customers do not consider OIDs before the PKI deployment starts, but it is not complex
to obtain one. If you need to define your own EKU and your PKI will be used across multiple
organizations, the EKU needs to have a unique OID assigned either by the Internet Assigned
Numbers Authority (IANA) or by a national standards organization. However, if you do not foresee
using the OIDs in conjunction with other organizations, the option exists of using private OIDs within
the Microsoft IANA-assigned tree. These OIDs are based on the globally unique identifiers (GUIDs) of
Active Directory® forests. Such an OID can be obtained by running Microsoft Management Console
(MMC) and using the Certificate Template snap-in. In the snap-in, right-click Certificate Templates,
and then select View Object Identifiers. The OIDs are in the 1.3.6.1.4.1.311.21.8.a.b.c.d.1 format,
where a.b.c.d is a unique string of numbers based on the AD forest’s GUID.
Critical Extensions
The basic constraints extension identifies whether the subject of the certificate is a CA and the
maximum depth of valid certification paths that include this certificate. The path length constraint
within a basic constraint for CA certificates specifies how many levels of CAs can be subordinated to
a CA. This constraint is used to ensure that issuing CAs will not enroll additional subordinated CAs
and that non-CA certificates will not be used to sign other certificates. The path length constraint is
specified during CA installation and cannot be changed without reissuing the CA certificate.
The Root CA usually has no defined path length constraint (pathLenConstraint=none) that allows
you to extend the CA hierarchy in the future. However, if you have a clear understanding that your
issuing CAs will issue certificates only to End Entities, then you should limit issuing CAs by specifying
the path length constraint and set this constraint to zero. This prevents the Issuing CA from issuing
any CA certificates and will be enforced by PKI clients during certificate chain validation. Without this
constraint an attacker may use a single compromise of an Issuing CA signing key to issue another
subordinate CA certificate in the CA hierarchy and effectively work around controls established in the
PKI.
It is not recommended to use [BasicConstraintsExtension] section in the CAPolicy.inf file to specify
the path length constraint for a subordinate CA in AD CS. To add this constraint to a subordinate CA
certificate if the parent CA has no PathLength constraint in its own certificate, set the CAPathLength
registry value on the parent CA. For example, to issue a subordinate CA certificate with a PathLength
constraint of 0, use the following command to configure the parent CA.
Setting this value causes the CA to behave as though its own certificate had a PathLength constraint
of whatever number you specify. Any subordinate CA certificate issued by the parent CA will have a
PathLength constraint set appropriately in its Basic Constraints extension. You must restart AD CS CA
for this change to take effect. Note that there is no easy way to undo this change and you may need
to reissue subordinate CA certificates. Nevertheless, with clear understanding of your CA hierarchy
As mentioned in the Extended Key Usages section, an EKU extension indicates one or more purposes
for which the certified public key may be used, in addition to or in place of the basic purposes
indicated in the Key Usage Extension. In general, this extension will appear only in End Entity
certificates, but if a CA includes EKUs to state allowed certificate usages, then it EKUs will be used to
restrict usages of certificates issued by this CA. For example, if only the EKU for “Server
Authentication” is included in the CA certificate, a certificate issued by that CA would not be valid for
“Client Authentication.” In this case, EKU extension must not be marked as critical and
anyExtendedKeyUsage must not be included in the extension.
Note that you may hit the limitations of software in validation of issued certificates, so in all cases
you must test your target scenarios to verify the design decisions.
Constraining CA Certificates
Using strong cryptography throughout your PKI helps mitigate threats introduced when a
cryptographic algorithm becomes weak and susceptible to failure, which can lead to a full loss of
trust in your PKI. Utilizing constraints on End Entity certificates and CA certificates helps to mitigate
the risk of having a certificate used for unintended use cases, which may allow access to resources or
data that should not be allowed. Constraints also help mitigate the threat of an attacker creating
their own subordinate CA in your PKI hierarchy after a compromise, allowing them to create
certificates of their choosing.
For a complete list of the recommendations for planning certificate algorithms and usages, along
with the level of business impact at which you should consider implementing them, refer to
Appendix F: List of Recommendations by Impact Level.
A primary security control in a PKI is how private keys are stored and managed, particularly for
certification authorities. A strong key protection strategy along with other physical and logical
controls can provide defense in depth to prevent external attackers or insider threats from
compromising the integrity of the PKI. Additionally, a well-run PKI requires the secure storage of
several artifacts, such as HSM activation cards or tokens, backup files, and documents. Improper
storage of these artifacts can lead to the compromise of the entire PKI, without an attacker ever
having to compromise a CA system. This section provides a set of recommendations for securing the
keys used by CAs or other critical systems, and recommendations for securely storing other PKI
artifacts.
Protecting CA Keys
When designing a new PKI, a key design decision is whether or not to use an HSM or create keys
stored in software. HSMs come in a number of form factors including rack-mounted appliances
which can be attached using a serial or network connection, as well as smaller PCI or USB-connected
devices. HSMs have a number of tamper-evident and self-destructing features. They are also
available with multiple performance and compliance options. However, purchasing HSMs for PKI can
represent a significant capital investment. For all CAs used in a production environment to secure
corporate resources, a recommendation is to implement an HSM as part of a secure PKI. Below are a
number of the benefits gained when using an HSM:
HSMs provide the capability of enforcing additional controls whenever the CA key is used,
such as enforcing multi person control
Implementing HSMs ensures that the private key cannot be used without access to a properly
configured HSM. In the event of a compromise, the damage done can be limited. With a
software-based key, any number of copies of the key can exist and be used from any
computer.
HSMs perform cryptographic operations on secure hardware. Even if a computer is
compromised, the cryptographic keys are not available in the computer’s memory to be
captured.
HSMs can provide tamper evidence or tamper resistance for physical attacks
Note: Marking a software-based key as “not exportable” is not considered a security feature and
should not be relied upon to prevent attackers from obtaining the private key.
In a default Active Directory® Certificate Services installation without an HSM present, the CA private
key is stored using the Data Protection API (DPAPI) which encrypts the key using the local computer
account credentials. Additionally, by default the CA private key is marked exportable. Therefore, any
person authenticating with local administrator privileges can access, back up, or export these keys
using a number of various methods including the Certificates MMC Snap-in, the backup function in
the Certificate Services MMC Snap-In, and using certutil.exe and use them in another location. Use
hardware protected keys and avoid using software-based keys for CAs unless the PKI is considered
While it is technically possible in many cases to migrate an existing software-based key to an HSM, in
general it is not the preferred approach. One of the benefits in using an HSM is the knowledge that
the key has never been stored or used outside the secure HSM. Even if no compromise has occurred
or is suspected, with a software-based key there is no real assurance that other copies of the key do
not exist. In the event that you have an existing PKI and want to begin leveraging HSMs, consider a
migration to a new infrastructure with new keys that are generated within the HSM.
Network Based HSMs
Some HSMs are network based. Since offline CAs should not be connected to a live network, it is
recommended that if network HSMs are used for offline CAs, that they are connected via a private
network that only contains the CA and the HSM device. For example, a dedicated switch can be used
to connect the two devices. Avoid connecting the private network to a live network.
Multi Person Control
HSMs help enforce multi person control for sensitive processes, such as configuring a new HSM
module or activating a key for use. This is commonly known as “k of n”, or having a “quorum.” The
basic premise of k of n is to divide the interactions needed to access information among multiple
entities. In the case of an HSM connected to a CA, multiple objects, typically cards or tokens, need to
be connected to the HSM to generate or activate use of the CA private key. The cards or token can
then be separated, distributed, and securely stored to help enforce these processes.
When determining how many tokens to create and how many to require for different tasks, it is
important to take into account the following:
The level of oversight required – For a sensitive root CA, it may be desirable to have multiple
organizations hold portions of the access tokens, so there is oversight from multiple teams
prior to any work being technically performed
Operational overhead – Generally speaking, the greater the level of protection given to a key
the greater the operational overhead will be to perform tasks on the CA
Backup and disaster recovery – Always create enough objects such that a quorum of objects
is available in the event of a disaster
Consider the following example and how it illustrates the recommendations above. A private key
could be stored on an HSM where, to access the key, three of six objects would be needed to
administer the HSM, and three of six objects would be required to activate the private key for use. In
this example, where both the operational set and administrative set would require three objects for
access, the six objects could be divided into two sets; a primary set and a backup set. After this
division, the objects would be divided into three distinct parts. These three parts could be distributed
to representatives from different organizations where their representatives would ensure the objects
Box 1
Primary O1P A1P
O2P A2P
Backup
Box 3
O1B O2B O3B
O3P A3P
CREATION STORAGE
Box 1
Primary O1B A1B
Box 2
O2B A2B
Backup
Box 3
A1B A2B A3B
O3B A3B
The figure above assumes there are three disjointed entities or organizations involved in this
process. Example organizations are:
PKI Administration – A team or organization ultimately responsible for maintenance and
upkeep of the PKI servers
If the policy in the fictitious example above is to require all three organizations to participate
whenever the CA key is used, additional controls need to be put into place. In this example it would
be possible for only two organizations to be required if one of those organizations obtained both
their primary and backup objects. When designing how to separate these critical objects, ensure that
adequate technical or procedural controls exist to ensure that no single person can access a quorum
of objects. For example, further enforcement could be performed by leveraging the storage facility
access procedures. Staff of the storage facility could help by verifying identification and enforcing
logical access by requiring multiple person’s access challenges or by utilizing separate secure
containers with multiple locks. The process can also be simplified by placing secure storage capacity
onsite in control of the data center operations security.
One way to regulate access to secured assets is to ensure two representatives are present and
positively identified prior to being granted access to their secured assets. For example, a
combination of photo identification, biometrics, or other means of identification can be required
prior to allowing access to the secure facility, or the location housing the offline CAs. An example of
object mapping is shown in the figure below, where there are three fictional organizations involved;
PKI Administration (PKIAdmin), Information Security (InfoSec), and Operations Security (OpsSec).
Box 1 Box 3
(InfoSec) (OpsSec)
O1P A1P O3P A3P
Offline CA
Box 2 HSM
(PKIAdmin)
O2P A2P
Box 1
(InfoSec)
O1B A1B
Offline CA
Box 3
Box 2 (Backup) HSM
(OpsSec)
(PKIAdmin) (Backup)
O2B A2B O3B A3B
In situations where an HSM cannot be used, it is critical to protect and monitor persons and
accounts with local administrator privileges. Multi-person control can be achieved in several ways
including multiple door locks, incorporating multi-factor authentication and separating factors, or
even having multiple people set a single password for an elevated account where one person setting
a password part does not disclose their part to the others setting a password part. In the example
below, a pseudo-randomly generated 60 character strong password is separated into distinct parts.
Administrator Password:
~Cgn8@W8V=aIYA=b;qM6nV9no~_5vaR1c.B=ti(c#0y{H/eQi[2Nb1A3Vrop
Box 1
(InfoSec)
Box 3
(OpsSec)
Box 2 Offline CA
(PKIAdmin)
CA CAGE
Requires PKIAdmin + OpsSec Identification
OFFSITE STORAGE ONSITE STORAGE to Access CA Cages
Requires InfoSec + PKIAdmin Requires OpsSec + InfoSec Requires PKIAdmin + OpsSec + InfoSec
Identification to Access Boxes Identification to Access Boxes to Enter CA Administrator Password
Protecting the private key ensures that the trust granted to the CA is protected. If the private key is
protected by an HSM, handle the HSM cards or tokens as critical assets. These objects, along with
any other important data such as backup drives, USB-form factor HSMs, standalone safe keys,
written combinations, or written password parts need to be tracked, inventoried, and verified end to
end. If this data is not properly secured, it may be possible for an attacker to compromise the PKI
without ever having to compromise a single computer.
Use Tamper-Evident Containers
Some assets in a PKI should have their usage tracked, and any unauthorized use or attempted access
should be detectable. For these situations, it is recommended to use tamper-evident bags or
containers to store assets. For example, using tamper-evident bags for objects used to activate a CA
private key provides assurance that the objects have not been used or compromised.
Choosing a good tamper-evident container is not a trivial task. Ideally, the container has a strong
seal, has a good resistance to humidity, has a unique number stamped on the outside, and has an
area to write details for chain of custody. Since these objects may contain electronics, anti-static
properties may be desirable. Some manufacturers will offer samples to evaluate before making a
purchase. Stores specializing in assisting financial businesses or law enforcement have many options
for tamper-evident containers as well.
While it may be a good idea to use a transparent container for asset-tagged artifacts for
identification and verification, ensure any artifacts with secrets such as password parts are safely
PKI artifacts are often required to be stored for long lengths of time. When storing artifacts, ensure
that they are in a climate-controlled environment such as an onsite datacenter vault or a safe-
deposit box. Silica gel packets can be used to eliminate any residual moisture if they are inserted
with artifacts in anti-static bags or storage containers.
Maintain a Chain of Custody and Asset Inventory
As you operate a PKI, the secure assets may need to be moved, or possession may change to
another person or organization. For all secure assets, create a chain of custody that tracks who is
responsible for the asset. Keeping a chain of custody will ensure that if there is ever an investigation
into misuse of the asset, a strong audit trail will exist to show who had possession at all times.
When storing the artifacts in a vault, safe, or other type of storage cell, perform a hand-written
check-in log and inventory and retain the logs. When extracting the artifacts, the previous inventory
needs to be verified, and a check-out log written. These check-in and check-out logs should have
fields for the following:
Date and time
The tamper-evident container unique code or number
Identification or asset label of the artifact contained within the container
Verification that the container is not tampered with
The person performing the inventory
Check-out or check-in
A location where the artifacts were extracted or secured
Below is an example of a check-out log with fictitious entries.
Using an HSM to provide strong protection of CA keys or other high value keys is one of the
strongest controls you can implement to protect your PKI. HSMs can provide assurance that keys are
only available for use from authorized systems and help to mitigate the risk of an attacker or insider
threat obtaining unrestricted access to the keys. Protecting other PKI assets and auditing their use
helps to ensure that keys are not used in an unauthorized manner after they have been created in
the HSM.
For a complete list of the recommendations for protecting CA keys and critical artifacts, along with
the level of business impact at which you should consider implementing them, refer to Appendix F:
List of Recommendations by Impact Level.
A key component of any PKI security plan is ongoing monitoring of the infrastructure and
supporting processes. With critical systems such as a CA, it is vital to collect the right information
and have appropriate alerting configured and review processes defined so that if there is an issue, it
can be properly investigated. CAs must be treated as a high value systems and be monitored closely
for suspicious activity.
A security logging and monitoring plan for a traditional line of business application will typically
include watching specific logs for indicators of suspicious activity. While this is a vital part of PKI
logging and monitoring, there are more aspects to consider. If operating offline CAs, also monitor
the physical access to the offline CAs, and create a process for reviewing logical access to those
systems. You must also monitor and review physical access for all online systems, including RAs and
CAs.
The events discussed in this section will assist you in creating a security monitoring plan for PKI.
Monitoring PKI for operational issues is not considered in this paper. The recommendations are
strictly for determining malicious or suspicious activity related to the PKI.
Monitoring Events
An event is defined as any activity recorded to provide a detailed history of actions that have taken
place. Some events may be tracked electronically within the system, while others may be tracked via
manual paper-based processes. Any event collected, electronic or otherwise, should contain the
following information:
Type of event
Date and time of the occurrence of the event
Identity that logged the event
Success or failure where appropriate
Description of the event
Regardless of the technology being used to generate or collect alerts, it is vital to have a process in
place that engages the correct support teams if events indicate a security incident has occurred or
will occur. Events that generate a security alert should contain the following:
High likelihood that occurrence of the event indicates unauthorized activity
Low number of false positives
Result in an investigative/forensics response
Two types of events should trigger security alerts:
1. Events in which even a single occurrence indicates unauthorized activity
2. An accumulation of events above an expected and accepted baseline
The following are important Active Directory® items to monitor in order to detect compromise of
AD CS based PKI:
Changes to critical groups that control access to the CA. This would include any custom
groups containing users with elevated rights in the PKI to manage CAs, RAs, or enroll for
important certificate types
Changes in membership to the “Cert Publishers” domain local group(s)
Changes to accounts that have privileged access to the PKI. Monitor for changes to attributes
on the Account tab (cn, name, sAMAccountName, userPrincipalName, or
userAccountControl). When using additional software packages that act as a RA to a CA,
include the service accounts used by these systems in this list.
Unauthorized changes to certificate templates (Refer to Monitoring Change to Certificate
Templates)
Monitoring Certification Authority Activity
Because a CA is a high-value system, monitor it closely for abnormal activity. The events to monitor
closely can be broken down into two major categories:
1. Events to watch for on any high value system
2. Events that are specific to the AD CS CA role
Below are some of the activities that should be monitored to help detect compromise of an AD CS
based PKI:
General Events
Successful and failed logons
Addition, removal, or deletion of user accounts
Changes to membership in the local administrators group
Usage of the built-in administrator account
Changes to system time outside a defined threshold (changes greater than ten minutes)
Abnormal startup or shutdown events
In addition to monitoring CAs that are online and issuing certificates, it is also important to record
and review other events that may impact PKI security. These events may not be captured
electronically, but may rely on paper-based logs and require periodic review for anomalies. Below
are some recommendations for additional activities to record and review:
Entry and exit to the secure area where PKI hardware is stored or operated. This could include
access to the secure CA cage, access to the server room where the CAs are located, review of
camera footage, etc.
Access to Hardware Security Modules (HSMs) and any tokens used to activate the HSMs. This
includes any transportation of HSMs or tokens when they are physically moved.
Firewall/router activities that may indicate compromise
Access to any secure storage locations containing PKI backups or sensitive data. Examples
include access logs for a safe, access records to a document archive facility, etc.
Configuring Microsoft Windows Audit Policy
In order for AD CS to log all configured events, the audit policy must have the “Audit Certification
Services” subcategory configured for success and failure. To configure this using auditpol.exe, type
the following at the Command Prompt:
auditpol /set /subcategory:”Certification Services” /success:enable /failure:enable
While audit policy can be configured per computer using auditpol.exe, a preferable method for
domain-joined CAs is to apply a common audit policy as appropriate and configure it using group
policy. To set audit policy using group policies, configure the “Certification Services” subcategory
Beginning with Windows Server 2012 R2®, additional data containing command line information
can be collected when you are auditing for process creation events. This data includes the exact
command used to launch a process, including command line parameters. More information on
configuring command line process auditing can be found here.
The CA role in Active Directory® Certificate Services includes two main sources of events:
Microsoft-Windows-CertificationAuthority – Contains operational and installation events
related to the CA. Object access auditing is not required for these events to be written to the
Application log.
Microsoft-Windows-Security-Auditing – Contains numerous events related to the security
and configuration of the CA. Object access auditing must be configured for Certification
Services and an appropriate CA audit filter must be configured.
The CA audit filter is a bitmask value stored in the registry of the CA. Refer to Appendix B:
Certification Authority Audit Filter for details on each individual value and which flags are required to
trigger specific audit events. As shown in the following screenshot taken from the Properties dialog
box of the CA, there are seven categories available for auditing:
Back up and restore the CA database – Controls logging of events triggered when the CA
database is issued backup or restore commands
Change CA configuration – Controls logging of events related to the changing of properties
and configuration of the CA through the CA snap-in. Example events logged are changing
CRL validity periods, changing policy or exit module configuration, or updating configured
CDP/AIA extensions.
Although enabling auditing for AD CS provides a solid foundation for capturing events that occur
within the scope of the CA service, additional events can occur on the CA that may indicate a
compromise or a potential compromise. These additional events are useful to capture in addition to
the CA audit events.
Auditing CA Registry Changes
Several of the CA auditing categories capture events triggered when a user changes a configuration
setting within the CA snap-in. Several methods exist to change many of the settings on a CA. For
example, to change the validity period of CRLs signed by the CA from one week to two weeks, you
can utilize the CA snap-in as illustrated in the screenshot below.
With an audit filter configured to capture this event, the only method that will trigger an alert is
making the change through the snap-in. To capture changes to all AD CS configuration settings
stored locally on the CA, configure the registry auditing specifically for the AD CS registry keys.
Configuring registry auditing at a broad level is not recommended because it can generate a very
large number of alerts.
To enable registry auditing, configure the Microsoft Windows® auditing policy. This can be
accomplished with auditpol.exe or through local or group policy.
To enable registry auditing with auditpol.exe, use the following settings:
auditpol /set /subcategory:”Registry” /success:enable /failure:enable
To set audit policy using group policies, configure the “Audit Registry” subcategory under Computer
Configuration\Windows Settings\Security Settings\Advanced Audit Policy. Set the subcategory
to be enabled for success and failure.
After enabling registry auditing, configure auditing for the Certification Services registry keys. To
configure auditing for the AD CS CA registry key:
1. Open regedit, and navigate to HKLM\System\Services\CertSvc\Configuration\
2. Right-click the Configuration registry key and click Permissions…
6. Click Show advanced permissions and select the values shown below.
For specific registry values to watch, refer to Appendix A: Events to Monitor. For more information on
configuring registry auditing, refer to How to use Group Policy to audit registry keys in Windows
Server 2003.
Monitoring Changes to Certificate Templates
Certificate templates are Active Directory® objects that define key attributes of certificates issued by
an Enterprise CA. Standalone CAs do not use certificate templates. Instead they rely on information
provided in certificate requests and provided by certificate managers to determine certificate
content. An Enterprise CA uses the information in certificate templates to determine who has
permissions to enroll and what usages an issued certificate should be valid for. If an attacker has the
ability to modify a Certificate Template in Active Directory®, they could potentially add additional
usages or change enrollment permissions that could lead to the issuance of certificates that allow
additional access.
AD CS includes several audit events that allow monitoring of changes to certificate templates that
are actively being used by a CA. The following audit events are available:
Certificate Services loaded a template (Event ID 4898) – This event is triggered whenever
a CA loads a template for the first time. For example, if a CA is configured with three
templates, at startup this event will trigger for each template as it loads. If a fourth template
is added while the CA is running, an event will be triggered on the first attempt to enroll the
template on the CA.
Implementing monitoring and alerting for PKI systems is a strong detective control, and can help
limit the extent of damage caused by an attack or identify an attack before it succeeds. Monitoring
will help you identify unauthorized changes to the environment that may allow certificates to be
issued to unauthorized users or contain unexpected usages.
For a complete list of the recommendations for monitoring PKI, along with the level of business
impact at which you should consider implementing them, refer to Appendix F: List of
Recommendations by Impact Level.
As with any other critical piece of infrastructure, it is vital to have a plan of action in the event of a
PKI compromise. Unfortunately there is not a one-size-fits-all formula for what to do when a PKI is
compromised or presumed compromised. Depending on the type and severity of the compromise,
you may have several response options, each with their own positive and negative attributes. This
section will focus on steps that can be taken prior to compromise and during response to help you
make the best decisions to protect the security and availability of your business.
Inventory PKI Consumers
It is very important to know who the PKI consumers are and to identify systems dependent on PKI. For a
Microsoft PKI using Enterprise CAs, use the certificate database to get a general idea of the types of
certificates issued using the CA MMC snap-in or using the certutil –view command. In general, the certificate
templates used by the CA can help to identify the consumers. However, the database may have entries
removed and there is a configuration option for certificate templates to allow high-volume certificates to be
issued without being entered into the certificate database. Consumers using certificate templates requiring
input for the subject name, such as those used for issuing certificates to web servers, or consumers requiring a
Certificate Manager approval or an Enrollment Agent need to be handled individually. Consumers using
certificate templates with autoenrollment where the request processing is transparent merely need a refresh of
their certificate.
Understanding Compromise Scenarios
There are many different attack vectors for a PKI. In general, attack scenarios can be broken down
into four main categories.
Full Key Compromise
An attacker has a copy of the private key and can sign whatever they desire. An example is a case
where an attacker steals a code-signing certificate and can sign arbitrary code from any system of
their choosing, or where a PKCS#12 file containing the CA private key is exported from the CA.
Full Key Access
An attacker has access to the private key, such that the CA does not have sufficient information to
determine the set of certificates that needs to be revoked. An example is when an attacker gains
access to a CA where the key is stored on an HSM, but allows arbitrary requests to be signed such as
with certutil –sign in a Windows® environment.
Limited Key Access
An attacker has access to a certificate issuance system and can get certificates, but the system has
full records of the unauthorized certificates issued. In this situation, revocation is possible. An
example is if enrollment agent credentials are obtained. The CA will still log all issued certificates.
Other Attacks
There are a number of attack vectors for the operating system of a CA server and the response
depends on many factors. Operating systems can be compromised physically or remotely.
Examples of physical attacks involve an attacker gaining access to a server by using the console due
to:
An unlocked server
An attack against credentials
An insider attack using stolen or known good credentials
The use of storage media to inject an exploit or create a unique bootable operating system
partition to make changes to the primary operating system drive
Both offline and online CA server types are susceptible to physical attack, whether it is by an intruder,
an insider attack, or an unknowing person via a social engineering attack or infected file transfer
device. If an offline CA is kept offline, it is not susceptible to remote attacks. However, online CA
servers as well as web servers responsible for enrollment services or enrollment validation are
susceptible.
Examples of remote attacks are:
Brute force attacks against credentials to gain access using Remote Desktop Services or
other remote management tools
Utilizing an operating system vulnerability to gain access to a system
Malware introduced by an operating system vulnerability or an unknowing person with
access to the system being coerced into installing the malware
For CA servers, regardless if the operating system compromise is physical or remote, the severity of
the compromise and the corresponding response depends on whether the private key integrity is
known to be good or if the key integrity is unknown or compromised.
Cryptographic Compromise
After identifying there has been compromise, the first actions taken after determining the nature and
degree of damage are to restore functionality and assurance of the CA and any End Entity certificate
consumers. Some actions are more severe than others and which actions you execute depends on
the type of compromise. You should document response actions in an Operations Guide or in
Business Continuity plans. The following are some examples of response actions.
Revoke individual CA certificate and publish parent CRL
o Log on to the parent CA and revoke the subordinate CA certificate
o Publish a new full CRL
o Ensure CRL is copied to CDP locations
o Force CRL Cache renewal on client workstations
o Update parent OCSP Responders
Force new issuance of End Entity certificates
o Auto enrollment to replace user or computer certificates as possible
o Certificates requiring an enrollment agent, certificate manager approval, or other
intervention handled individually.
Addition of CA certificate to untrusted store
o Publish in Group Policy
Retire CA server
o Copy any data, logs, or databases needed for retention
o Reformat or destroy the hard drives
o Recycle server chassis parts
Complete server replacement and HSM re-initialization
o Obtain new CA server hardware
o Re-initialize HSM security world or partition
o Perform a new key ceremony
Use existing server or replace server hardware and restore backup
o Use existing CA server hardware as possible or obtain new hardware
Once you understand the types of compromises and have established the potential actions for
response, put a response plan in place. The diagrams below shows an example correlation between
compromise and actions for a server operating system compromise and an example correlation
between compromise and actions for a cryptographic compromise.
Compromise Type
Key Integrity
Attack Type
CA Type
Severity
Known Good Actions
Retire CA server
Compromised
Unknown/
Remote/Vulnerability
4
Use existing server hardware and restore backup
Known Good
Attack Type
Category
CA Type
Severity
Actions
Brute Force
Renew CA keys for the entire CA chain
2 Use a larger key size
Force new issuance of end-entity certificates
Mathematic
2 Renew CA key
Force new issuance of end-entity certificates
Addition of CA certificate to untrusted store
Logical
While it is not possible to enumerate every potential avenue of compromise, having a generalized
response plan in mind prior to an event will accelerate the efforts for recovery and remediation. For a
complete list of the recommendations for compromise response, along with the level of business
impact at which you should consider implementing them, refer to Appendix F: List of
Recommendations by Impact Level.
Appendices are included in this document to augment the information contained in the body of
the document. The list of appendices and a brief description of each in included the following
table.
Appendix Description
The following tables provide a full list of events generated by Active Directory® Certificate Services
CA role, along with recommendations for which events should be monitored. Unless otherwise
specified in the description, the events are available on Microsoft Windows Server 2008® and more
recent versions of Windows®.
The “Current Windows Event ID” column lists the current event ID as it is implemented in versions of
Microsoft Windows Server® that are currently in mainstream support. The “Potential Criticality”
column identifies whether the event should be considered low, medium or high criticality in
detecting attacks. The event summary contains a brief description of the event.
A potential criticality of high means that one occurrence of the event should be investigated.
Potential criticality of medium or low means that these events should only be investigated if they
occur unexpectedly in numbers that significantly exceed the expected baseline in a measured period
of time, or the content of the message meets a specific criteria. All organizations should test these
recommendations in their environments before creating alerts that require mandatory investigative
responses. Every environment is different, and some of the events ranked with a potential criticality
of high may occur due to other harmless events.
Microsoft Windows® Security Auditing
CA database
4885 High The audit filter for Certificate Change CA May indicate an
Services changed. Filter: %1 security attacker
disabling
settings monitoring in an
attempt to cover
their tracks prior
to certificate
activities.
4896 High One or more rows have been Issue and May indicate an
deleted from the certificate manage attacker covering
database. Table ID: %1 Filter: %2 certificate their tracks after
Rows Deleted: %3 requests issuing
certificates.
Microsoft-Windows-CertificationAuthority
The following events are recommendations for advanced monitoring of registry changes that affect
the security of a CA. While many of these same alerts are generated when enabling auditing on the
CA, there are cases where values can be changed and no alert is generated. In those cases, registry
auditing can be enabled and the following events can be monitored for.
In the table below, “Event ID” is the current Microsoft Windows® event ID for versions of Microsoft
Windows® currently in mainstream support. “Text to Alert On” is the text to search for within the
event body when an alert is generated. “Potential Criticality” identifies whether the event should be
considered of low, medium or high criticality in detecting attacks. The event summary contains a
brief description of the event.
The CA audit filter is a bitmask value representing the seven different audit categories that can be
enabled. If all values are enabled, the audit filter will have a value of 127.
Value Setting
(Decimal)
64 Change CA configuration
To set the audit filter via the command line, run the following command from an elevated command
prompt:
certutil –setreg CA\AuditFilter <value>
net stop certsvc && net start certsvc
For example, certutil –setreg CA\AuditFilter 18 will set the audit filter to include events covered
under “Change CA security settings” and “Backup and restore the CA database.”
In order to install an enterprise root or subordinate CA in Active Directory®, typically the account
performing the installation should be a member of the Enterprise Admins (EA) group for the forest,
as well as a member of the local administrators group on the CA computer. In some cases it may be
desirable to delegate the permissions required to perform installation, or other PKI related activities
to accounts that are not members of privileged Active Directory® groups such as Enterprise Admins
or Domain Admins. Regardless of which groups are used to perform PKI activities, group
membership should be tightly controlled and monitored.
The instructions below do not address the permissions required to install other AD CS roles such as
NDES. It might not be possible to perform other AD CS-related tasks based on the permissions
delegated through the steps below.
Permissions for Enterprise CA Installation
1. In the Organizational Unit (OU) where you will be storing the groups and/or accounts that
will be managing the PKI, right-click the OU where you want to create the group, click New
and click Group.
4. Open Active Directory Sites and Services with an account in the Enterprise Admins group.
5. Click the View menu option and select Show Services Node.
6. Under the Services node, right-click Public Key Services, click Properties and click the
Security tab.
9. Grant the new management group full control and click OK.
1. Open Active Directory Users and Computers with an account that has rights to modify
security permissions for Pre-Windows 2000 Compatible Access and Cert Publishers
groups.
2. Under Builtin, right-click Pre-Windows 2000 Compatible Access and click Properties.
3. Click the Security tab. Click Add… and select the newly created management group. Grant
the group Read and Write access and click OK.
6. If you have a multi-domain forest, you will need to repeat the step of granting Write access
to the management group to Cert Publishers for each domain in the forest. Each domain has
For the NIST glossary of terms, refer to Glossary of Security Information Terms in NISTIR 7298 Rev. 2.
The Microsoft Security Glossary is located at http://msdn.microsoft.com/en-
us/library/ms721607(v=vs.85).aspx.
The Windows Server 2008 R2® glossary is located at http://technet.microsoft.com/en-
us/library/dd919232(v=ws.10).aspx.
Policy Terms
Term Term Definition
Asset Owner The creator, generator, originator, or primary possessor of an Asset, or agent(s) to
which the Asset Owner has given consent to act as a fiduciary with regard to
specific assets, according to a documented agreement.
Key Recovery Mechanisms and processes that allow authorized parties to retrieve the
cryptographic key used for data confidentiality.
Online Certificate An online protocol used to determine the status of a public key certificate.
Status Protocol
(OCSP)
Rekey (a To change the value of a cryptographic key that is being used in a cryptographic
certificate) system application; this normally entails issuing a new certificate on the new public
key.
Renew (a The act or process of extending the validity of the data binding asserted by a
certificate) public key certificate by issuing a new certificate.
Standards Mandatory prerequisites for all PKIs. Standards are subordinate to Policy
statements, and are designed to provide more explicit definition of Policy intent.
Update (a The act or process by which data items bound in an existing public key certificate,
Certificate) especially authorizations granted to the subject, are changed by issuing a new
certificate.
PKI Objects
Term Term Definition
Active Directory® Active Directory® Certificate Services (AD CS) is an Identity and Access Control
Certificate Services security technology that provides customizable services for creating and
managing public key certificates used in software security systems that employ
public key technologies.
(Certificate) Trust The collection of trusted certificates used by Relying Parties to authenticate other
List certificates.
Certificate Chain A chain of certificates consisting of the subscriber certificate, issuing CA certificate,
(Certification Path) intermediate CA certificate(s) and the root CA certificate.
Certificate Profile Detailed description of the structure, components, and the origin of the data in
the certificate
Certificate A list of certificates (or more specifically, a list of serial numbers for certificates)
Revocation Lists that have been revoked, and therefore, entities presenting those (revoked)
(CRLs) certificates should no longer be trusted
Certificate Status A trusted entity that provides online verification to a Relying Party of a subject
Service certificate's trustworthiness, and may also provide additional attribute information
for the subject certificate.
CRL Distribution The location where you can download the latest CRL.
Points (CDPs)
Encryption A certificate containing a public key that is used to encrypt electronic messages,
Certificate files, documents, or data transmissions, or to establish or exchange a session key
for these same purposes.
Hardware Security A hardware security module is a physical computing device that safeguards and
Module (HSM) manages digital keys for strong authentication and provides cryptographic
operations processing.
Issuing Certification A subordinate CA that issues certificate to end user and computers (certificate
Authority subjects).
Object Identifier A globally unique value associated with an object to unambiguously identify it
(OID) used in Abstract Syntax Notation (ASN.1)
Registration A trusted entity that establishes and vouches for the identity of a Subscriber to a
Authority (RA) CA. The RA may be an integral part of a CA, or it may be independent of a CA, but
it has a relationship to the CA.
Root Certification The CA at the top of a PKI hierarchy that is explicitly trusted by all subscribers and
Authority relying parties whose public key serves as the most trusted datum (i.e., the
beginning of trust paths) for a security domain.
Self-signed A certificate that 1: uses its public key to verify its own signature; 2: the subject
Certificate name is identical to the issuer name.
Signature A public key certificate that contains a public key intended for verifying digital
Certificate signatures rather than encrypting data or performing any other cryptographic
functions.
Subordinate A CA whose certificate signature key is certified by another CA, and whose
Certification activities are constrained by that other CA.
Authority
Superior A CA that has certified the certificate signature key of another CA, and who
Certification constrains the activities of that CA.
Authority
A PKI is a collection of hardware, software, personnel, and operating procedures that issue and
manage certificates. The certificate binds a public key to a named subject, which allows relying
parties to trust signatures or assertions made by the subject and expressed in the certificate.
In their most basic form, digital certificates bind identities to cryptographic key pairs that are
mathematically related and can be used to provide confidentiality, integrity, and nonrepudiation for
other systems and processes. These key pairs are typically referred to as public and private keys.
Public keys are often widely distributed, while private keys are available only to the individual or
system that owns them. A certificate provides a means to tie an identity of a user or system to a
specific key pair. By using these keys and certificates, the following security functions can be
performed:
Digital Signatures – A digital signature can provide assurance that a piece of data such as a
document, executable, or script came from a specific source and has not been tampered with
since it came from that source.
Authentication – PKI provides a strong method of authenticating users or systems. By asking
a user or system to perform a digital signature operation with their private key, you get
assurance that the entity presenting you with the certificate has possession of the matching
private key, proving they are who they are asserting to be.
Encryption – PKI provides the capability to encrypt data that can only be decrypted by
someone in possession of the private key. If you want to send someone encrypted data, you
can obtain their public key and encrypt the data with their public key. Since the public and
private key are mathematically related, they can use the related private key to decrypt the
data.
Below is a complete list of all recommendations made throughout this paper, classified according to
the impact level of the CA. Recommendations are broken out according to the chapter in which they
were found. Some of the recommendations are strategic in nature, and require planning and
potentially redesign to implement, while some are tactical and focused on specific components and
infrastructure.
Planning a CA Hierarchy
Plan for upcoming PKI uses cases as part of the initial design Strategic Medium
Physical Security
Track and audit requests for physical access to PKI assets Tactical High
Internal
Prevent tailgating to sensitive areas where PKI assets are stored Tactical High
Internal
Document issuance controls and certificate usage (informal Tactical High Internal
CP/CPS)
Utilize any existing policy structure to store and maintain PKI Tactical Medium
policy
Involve your policy team in the creation of PKI policy Strategic High Internal
Involve your legal department in policy creation if your PKI may Strategic High Internal
affect external customers or partners
Form a Policy Authority to provide governance for the PKI Strategic High Internal
Formalize the work performed by the Policy Authority with Tactical High Internal
auditable change control and meeting minutes
Meet regularly as a Policy Authority to review and update the PKI Tactical High Internal
policy
Establish formal PKI roles and responsibilities and assign specific Tactical High Internal
individuals to each roles
Provide role specific training for all individuals responsible for the Strategic Medium
PKI
Vet individuals who fill trusted roles with a comprehensive Strategic High Internal
background check (in accordance with local privacy law) or other
mechanism
Perform formal key ceremonies that follow a script and include a Tactical High Internal
witness
Use a distinct password for the local administrator account that is Tactical Medium
not used on other systems
Enable the Windows Firewall with Advanced Security and block all Tactical Medium
traffic that is not required
Disable services that are not required for the CA to function Tactical Medium
Only install software that is necessary for the CA to perform its Tactical Medium
function
Use alternate accounts separate from the standard accounts used Tactical Medium
on productivity workstations to manage the PKI
Remove Enterprise Admins and Domain Admins from local Tactical Medium
administrators group on CAs
Use secure administrative hosts or jump hosts to perform remote Strategic High
management tasks Internal
Require PKI administrators to use smart cards for all accounts that Strategic High
manage the PKI Internal
Keep offline CAs truly offline, allow only physical access to all Tactical Medium
components
Use only authorized, dedicated devices to transfer files to/from Tactical Medium
offline CAs
Update offline CAs with service packs, security updates specific to Tactical Medium
CA software, and updates related to system time (time zone
changes)
Ensure that any activity performed on an offline CA can be traced Strategic Medium
to an individual, either through individual accounts or additional
auditing and surveillance
When virtualizing offline CAs, decouple the guest files from the Tactical Medium
physical hardware so the hardware can be easily replaced
When virtualizing offline CAs, use a dedicated host machine that is Tactical Medium
secured in a locked rack or safe. If dedicated hardware cannot be
used, build a clean host OS each time the CA VMs need to be
brought online
When virtualizing offline CAs, securely build the VM on the Tactical Medium
dedicated hardware, do not build it on an online host and migrate
it to the dedicated hardware
When virtualizing offline CAs, perform regular backups of hard disk Tactical Medium
files. Securely store the backups along with any required software
at a backup site
When virtualizing online CAs, limit access to the host to only those Tactical High
who should have access to the PKI Internal
When virtualizing online CAs, use network attached HSMs for key Tactical High
protection Internal
When virtualizing online CAs, continue to take regular CA backups Tactical Medium
with all data needed to restore the CA
If using software keys, protect all key backups (PKCS#12, PFX files) Tactical Medium
with the same level of protection provided to the CA
Do not include backups of the private key as part of the standard Tactical Medium
backup process. Backup the key(s) as needed and physically protect
them by storing in a safe, within a tamper-evident bag and audit all
access to the backup
Do not connect backup systems directly to the CA. Backup the CA Tactical High
to another location which is backed up regularly to eliminate the Internal
need for backup software on the CA
Isolate certificate systems from other systems on the network Strategic High
External
Only allow inbound and outbound connections that are necessary Tactical Medium
for the CA and supporting systems to function
Restrict access to network HSM devices to only the systems that Tactical High
utilize them Internal
Control “enroll” access to certificate templates and only provide Tactical Medium
the access to accounts that require the certificate
Use additional enrollment controls for templates that allow you to Tactical Medium
specify the subject in the request
If using ECC for CA keys, use P-256, P-384 or P-521 curves Strategic Medium
Use RSA 4096 for CA certificates that expire more than 15 years in Strategic Medium
the future
Root CA certificate should not be valid for more than 25 years Strategic Medium
Issuing CA certificates should not be valid for more than 5 years Strategic Medium
Renew an issuing CA certificate once before replacing the key pair Strategic Medium
Match the strength of asymmetric key algorithms with the strength Strategic Medium
of the hash algorithm
Use the correct key usage for each certificate use case Strategic Medium
Determine the extended key usages for each PKI use case Strategic Medium
Constrain issuing CAs (use the path length constraint to ensure that Strategic Medium
CA can only issue end-entity certificates and limit application
policies)
Create enough HSM tokens to account for disaster recovery Strategic Medium
Record and review logs from network equipment that supports PKI Tactical High
Internal
Record and review physical access to PKI artifacts, such as access to Tactical High
safes Internal
Compromise Response
Copyright Information
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 or implied, in this document.
Complying with all applicable copyright laws is the responsibility of the user. Without limiting the rights under copyright, no part of this document may be
reproduced, stored in, or introduced into a retrieval system, or transmitted in any form or by any means (electronic, mechanical, photocopying, recording, or
otherwise), or for any purpose, without the express written permission of Microsoft Corporation.
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.
The example companies, organizations, products, domain names, e-mail addresses, logos, people, places, and events depicted herein are fictitious. No
association with any real company, organization, product, domain name, e-mail address, logo, person, place, or event is intended or should be inferred.