📜 ⬆️ ⬇️

Installation of a certification authority in the enterprise. Part 2

We continue our series of articles about the certification authority in the enterprise. Today we'll talk about building a public key diagram, planning the name of the certification authority, planning certificate revocation lists and a few other points. Join now!



The first part of the series
')
Third part of the series

Introduction


Glossary


The following abbreviations and abbreviations have been used in this part of the series:


General planning issues


For the successful implementation of any technical solution, careful planning is necessary. PKI implementation is no exception. Moreover, if in certain cases, initial planning errors can be corrected relatively quickly and easily, then this is definitely not the case in PKI. As I have already noted, PKI services are designed to work for many years with minimal (or noncritical) changes in the course of work.

For example, the validity of CA certificates is about 10-20 years. One of the reasons for such a long lifespan is that reissuing these certificates is a somewhat time consuming operation and may require changes on a large number of clients. This is aggravated by the fact that changes will be required on clients to whom you may not have access. Another point is that when you make some changes to the PKI architecture, you will need to maintain the current configuration for the lifetime of the certificates already issued. In other words, for the new certificates, the new configuration will act, but in parallel with it, it will be necessary to maintain the previous configuration so that the already issued certificates can work correctly. This also adds difficulty in maintaining PKI in a healthy state.

Given these points, planning a PKI should be approached very seriously. And only then will the PKI successfully perform its functions in ensuring digital security over the long term.

The multi-stage planning process is based on a logical diagram of the selected model. At each stage, the elements of the diagram unfold (elaborate) and the relations, tasks and requirements are formalized for it. If necessary, the detailing continues until a fully formalized system is obtained. This article shows an example of such an approach to planning.

PKI Plotting


As I said, it all starts with a logical diagram of the selected model. The logical diagram displays all the components of the PKI and must be transferred to the physical topology. In the case of the use of a two-tier PKI model, this diagram may have the following form:



The diagram shows the following components and their logical connections:


The physical topology will be slightly different and look like this:



In the physical topology, it is explicitly stated that the revocation server is accessible to all clients, both inside and outside the network, so that clients can check certificates anywhere.

CA Name Planning


The CA name is the name that will be displayed in the Subject field of a specific CA. Not to be confused with the name of the host on which the certificate service is running. The full name of the CA will consist of two components, the name itself (CN attribute or Common Name) and an optional X.500 suffix. By default, ADCS assigns a name in the following format:

For Standalone CA: < ComputerName > - CA

For Enterprise CA: < DomainShortName > - < ComputerName > - CA, < X500DomainSuffix >

Is it good or bad? Technically, you can choose any name, functionally it will not affect anything. It is believed that the name of your CA is somewhat of a business card of your PKI, reflecting your attitude to details that are not directly related to the functionality, but provide a sufficient level of information and openness. Therefore, when choosing the full name of the certificate you should follow several recommendations:


Suppose you select a name for the root CA of Contoso Pharmaceuticals Ltd., which you find in Riga, Latvia, and the management is provided by the information technology department. In this case, the name of the CA can be as follows:

 CN=Contoso Pharm Root Certification Authority, OU=Division Of IT (DoIT), O=Contoso Pharmaceuticals Ltd., L=Riga, C=LV 

Note that the Country attribute only supports a two-letter country index. For example, LV, GB, RU, US, etc. As additional examples, you can refer to CA certificates of commercial providers like VeriSign / Symantec, DigiCert, etc. For a subordinate CA, this name will be similar, except that the word Root in the name will be replaced by Subordinate or Issuing. In the case of a three-level hierarchy, where the CA of the politician is clearly distinguished, the word Root will be replaced with the Policy. As I noted above, other rules may apply in your company, and you can embed them in the names of the CA, this will not affect the functionality. You should avoid:


Scheduling Call List (CRL)


In accordance with the logical diagram, each CA will publish its own revocation list. Feedback lists will be described in two main categories:

  1. Points of publication and distribution of revocation lists;
  2. Composition and validity of revocation lists.

Points of publication and distribution of revocation lists


Two types of CRL distribution points are used to publish revocation lists: the publication point (where the physical file will be recorded) and the distribution point (receipt) of the file.

The first point type indicates the local or network path (in UNC format) where the file will be written. The second type of points will be registered in the issued certificates with an indication of the way in which customers can download the revocation list. These paths are published in the CRL Distribution Points certificate extension. In general, these paths will not be the same (except for the LDAP protocol, where the publication and distribution paths are the same). In determining the points of publication should be guided by the following rules:


You can read more about planning CRL Distribution Points and Authority Information Access extensions and practices in my blog article: Designing CRL Distribution Points and Authority Information Access locations .

The list of reviews


Before planning the composition and validity of revocation lists, it is necessary to understand the purpose of revocation lists and the optimal parameters depending on their operating conditions. As you know, each CA periodically publishes lists of reviews, which include lists of all certificates that have been revoked by a specific CA. And each list includes all revoked certificates for the entire CA lifetime. With a CA's lifespan, for example, in 10 years, this list can grow to an impressive size (on the order of several megabytes).

Even with high-speed connections, revocation list traffic will be substantial in size, since all certificate consumers need the latest revocation list version.
To reduce the traffic of revocation lists, two types of CRLs are published: base (Base CRL) and differential (Delta CRL). The basic list includes a complete review list. The differential list includes only a list of revoked certificates that have been revoked since the last publication of the base CRL. This allows you to publish a basic list less frequently and for a longer period, and to speed up customer response times to revoked certificates, in the meantime, issue several short-lived differential CRLs.

The selection of parameters depends on several factors. For example, the planned volume of issued certificates and the planned volume of revocation. Consider typical scenarios.

Root CA

The root CA issues certificates only to intermediate CAs, the number of which is usually within a dozen. The validity period of intermediate CAs is comparable to the lifetime of the root CA certificate. It is also assumed that the risk of withdrawal from downstream CAs is very low, as they are managed by trained personnel and are provided with appropriate security measures. Therefore, it can be argued that the volume of the revocation list may include only a small number of revoked certificates and, accordingly, the CRL file will be guaranteed to be small in size.

Help: how to calculate the planned size of the CRL file based on the amount of feedback? A typical empty CRL takes about 600-800 bytes. Each certificate revocation entry is 88 bytes. Based on these values, you can calculate the size of the CRL, depending on the number of revoked certificates.

It follows that throughout the lifetime of the root CA, the revocation list will be within 1kb and there is no point in the differential CRL.

Publishing CA

For the publishing CA, the picture changes. The volume of certificates issued is already high, it can be thousands and millions of pieces. Consumers are users and devices that are at high risk of revocation, since they are not under the constant supervision of qualified personnel, and it is impossible to provide adequate measures. As a result, the review list can reach serious sizes. For example, if you lay a 10% risk of revocation, then a million certificates issued account for about 100k revoked. 100k records of 88 bytes will be a little less than 10mb. It is not very practical to update the file on 10mb very often, it is more expedient to publish it less often, and to distribute several lightweight differential Delta CRLs between publications of the main CRL. Those. if only a basic revocation list is sufficient for a root CA, then deltas should be used for CAs issuing certificates to end users.

CRL scheduling validity


It was all about the composition of the revocation lists for each CA. Now we need to determine the dates:


Here, too, you can apply the approach depending on the operating conditions. The risk of withdrawing an intermediate CA is very low, therefore, there is no point in publishing an empty CRL too often. In modern practice, the following typical values ​​are applied for the CRL validity period for a CA, which issue certificates only to another CA: 3, 6 or 12 months. Here it is necessary to build on the degree of risk and administrative costs of maintaining the revocation lists. If there are no special conditions, then I recommend choosing something average, about 6 months.

For subordinate CAs, the scheme is the same. Since the risk of revocation of client certificates is high, one can assume a high revocation rate. Therefore, such CAs should publish revocation lists much more often, and to save traffic, combine basic and differential CRLs. By default, Microsoft CA publishes revocation lists with the following frequency: base CRL once a week, deltas - daily. In this situation, customers will be notified of the latest revoked certificates within 24 hours.

You can understand the desire of administrators to reduce this time (ideally - instantly) so that customers do not recognize the revoked certificate as valid. However, reducing one risk leads to an increase in another risk. Imagine that for some reason the CA server failed at a time when the previous CRL was about to expire, and the new CRL could not be published. Then problems will begin with checking certificate revocation and stopping them until the CA server is restored. This point must be taken into account when setting the validity of revocation lists.

Microsoft CA by default already lays some time reserve for emergencies and when distributing revocation lists to all publishing points takes some time (for example, caused by replication latency). This reserve in English terminology is called CRL overlap. The idea behind the defense mechanism is that the CA generates and publishes revocation lists before the previous published list expires.

This is achieved using two fields in the revocation list: Next CRL Publish and Next Update. The Next CRL Publish field indicates the time when the CA publishes the updated revocation list (automatically). Next Update indicates the time when the current list will expire. The Next Update field will always be set a little later than the Next CRL Publish. In other words, the CA will publish an updated revocation list before the previous one expires. The algorithm for calculating automatic values ​​for these fields is non-trivial and is described in the following article: How ThisUpdate, NextUpdate and NextCRLPublish are calculated (v2) . If the default values ​​do not suit you for one reason or another, you can edit them. It is necessary to take into account that the time reserve has lower and upper bounds. For example, the upper bound cannot exceed the validity period of the CRL itself. So, if the CRL validity period is 1 day, then the stock can be a maximum of 1 day, and then the CA will publish revocation lists daily, but the validity period will be 2 days. Thereby, a time margin for restoring the CA in case of unforeseen circumstances is achieved.

In practice, I quite often observed the desire of administrators to tighten the CRL expiration settings to the minimum limit with the following rationale: “the user left and should not be able to authenticate with a revoked certificate”. The motivation is understandable, but solving the problem through revocation lists is not entirely correct. In case the user needs to stop access to corporate systems, it is necessary to disable the user account or computer.

When planning the CRL validity and periodicity, the following guidelines should be followed:


Online Certificate Status Protocol


Within this series of articles, I will not use OCSP servers for an additional method of distributing information about revoked certificates. If you wish, you can refer to the comprehensive article on TechNet: Online Responder Installation, Configuration, and Troubleshooting Guide . As practice shows, in most cases, installation and support of OCSP is not justified for several reasons.

The main task of OCSP is to offload CRL download traffic. As you know, the CRL contains a list of all revoked certificates for the entire CA lifetime, and at some point with intensive revocation of certificates, its size can reach impressive sizes (several megabytes). As noted above, 100k revoked certificates will be about 9MB in the CRL file. While checking the revocation of any certificate using OCSP will take a fixed size of ~ 2.5KB. There is a tangible difference. In practice, the response rate is often much lower. If we talk about root CA or CA policy, they will have a piece of feedback, and the size of their review list will hardly exceed 1KB.

It should be noted that OCSP can be effective in a situation where there is one verifiable certificate and many clients that want to verify it. This is a typical SSL / TLS certificate script. In this case, each client will spend 2.5KB of OCSP traffic instead of downloading a conditional 9MB revocation list. But in the opposite situation (one server verifies a lot of client certificates) OCSP can cause significant network load. This includes typical corporate network scenarios: client authentication using certificates, such as EAP-TLS authentication in wireless networks and VPN, Kerberos authentication on domain controllers. Suppose employees come to work and use certificates for network authentication (smart cards, certificates on mobile devices) and a domain controller, RADIUS servers are forced to verify each client certificate. To check only 1K certificates will be spent 2.5MB of traffic. In this situation, there is no benefit from OCSP, quite the contrary.

This aspect is taken into account in the logic of Microsoft products. If within a certain period of time, the Crypto API client checks 50 (this value can be configured) certificates from one publisher using OCSP, then this ends the work with OCSP and the client downloads and caches the CRL for that publisher. You can learn more about this behavior in the Optimizing the Revocation Experience section of the Certificate Revocation Checking in Windows Vista and Windows Server 2008 document.

Certificate issuance planning


Certificate issuance policies are one of the most difficult to understand aspects of certificate operation and are often completely ignored by administrators when planning and deploying PKI in an enterprise. However, the understanding and ability to manage issuance policies gives us a more flexible system, an additional level of control, and ultimately, a method of describing and documenting PKI.

Policy Definition


First you need to enter the definition of certificate issuance policies. Any process of issuing / receiving a certificate is essentially a contract between the certificate recipient and the issuing CA. This contract defines many aspects, such as issuance, use, and areas of responsibility.

Each company may have different methods for checking applications and issuing certificates. Consider a few typical cases:


. , . , — .. , , (, ).

, . . Network Policy Server (NPS) Active Directory Dynamic Access Control . , . , -.

NPS , , , -. , NPS ( ) . , , . Active Directory Dynamic Access Control, .


, . , , . , ? .

, - . , . , . . , ( PKI ) , , , .

: PKI – Certificate Practice Statement CPS ( , , ). ( ) , RFC 3647 . , PKI. . , , - .

CPS :

  1. PKI, , .
  2. . PKI, , CPS, , .


CPS ( ). CPS ( ).

ITU-T ISO. : OID' ? , IANA (Internet Assigned Numbers Authority) . , , : 1.3.6.1.4.1.x.1, x – , IANA. :


, . , , . Certificate Policies , .



, DigiCert, 2.16.840.1.114412.2.1 ( Extended Validation ) 2.23.140.1.1 (, CAB/Forum) CPS. CPS .

, , , . . , - , , ( ). : Certificate Policies extension – all you should know (part 1) Certificate Policies extension – all you should know (part 2) . , , Windows.

: (10 ) , . (, ), . RFC 5280 §4.2.1.4 (global wildcard) anyPolicy = 2.5.29.32.0, .

, , . , .. , , , , anyPolicy , . , . anyPolicy .


AD CS ( ). (, ). , (AD CS JET Database Engine). This is in theory.

, . Windows Server 2003 Evaluating CA Capacity, Performance, and Scalability ( , .. TechNet), , . (, ), .

2010 , Windows PKI Team ( 2007 ) Windows Server 2008. : Windows CA Performance Numbers . , , AD CS 2007 150 . . . , . Windows Server 2016 ( Windows Server 2016 System Requirements ):


, ( ) ( ) .


( ), . , , . .


.

Standalone CA
Root CA
15
AD ()Certification Authorities
AIA
CRT1) -
2) C:\CertData\contoso-rca<CertificateName>.crt
3) IIS:\InetPub\PKIdata\contoso-rca<CertificateName>.crt*
CRT1) URL=http://cdp.contoso.com/pki/contoso-rca<CertificateName>.crt
CRL1) -
2) C:\CertData\contoso-rca<CRLNameSuffix>.crt
3) IIS:\InetPub\PKIdata\contoso-rca<CRLNameSuffix>.crt*
CRL1) URL=http://cdp.contoso.com/pki/contoso-rca<CRLNameSuffix>.crt
Contoso Lab Root Certification authority
OU=Division Of IT, O=Contoso Pharmaceuticals, C=US
RSA#Microsoft Software Key Storage Provider
4096
SHA256
Validity15
CRLBase CRL
Base CRL
Type ofBase CRL
Validity6 months
1 month
SHA256
ADNot
* — IIS .


.

Enterprise CA
Subordinate CA
: 5 ( )
Not
AD ()AIA
NTAuthCertificates
CRLBase CRL
Delta CRL
CRT1) -
2) \\IIS\PKI\contoso-pica<CertificateName>.crt
CRT1) URL=http://cdp.contoso.com/pki/contoso-pica<CertificateName>.crt
CRL1) -
2) \\IIS\PKI\contoso-pica<CRLNameSuffix><DeltaCRLAllowed>.crl
CRL1) URL=http://cdp.contoso.com/pki/contoso-pica<CRLNameSuffix><DeltaCRLAllowed>.crl
Contoso Lab Issuing Certification authority
OU=Division Of IT, O=Contoso Pharmaceuticals, C=US
RSA#Microsoft Software Key Storage Provider
4096
SHA256
Validity15 ( )
1) : All Issuance Policies
OID=2.5.29.32.0
URL=http://cdp.contoso.com/pki/contoso-cps.html
Basic ConstraintsisCA=True ( — )
PathLength=0 ( ).
Base CRL
Type ofBase CRL
ValidityWeek 1
Default
SHA256
ADNot
Delta CRL
Type ofDelta CRL
Validity1 day
-
SHA256
ADNot

IIS


-cdp
cdp.contoso.com
PKI=C:\InetPub\wwwroot\PKIdata
Double Escaping

, . , .

about the author


— PowerShell Public Key Infrastructure, Microsoft MVP: Cloud and Datacenter Management 2009 PowerShell PKI. 9 PKI . PKI PowerShell .

Source: https://habr.com/ru/post/348956/


All Articles