|
20th July 2005 Directory is usually cited as an essential part of supporting a PKI (Public Key Infrastructure) system. A typical diagram, as given below, shows a Certification Authority (CA) accessing a directory using LDAP (Lightweight Directory Access Protocol):
This diagram is a reasonable reflection of a basic scenario. When a more complex PKI is built, this will typically comprise of many inter-related CAs; such complex PKI scenarios are widely described in the PKI literature. When the PKI increased in complexity, so do requirements on directory. As the PKI is distributed, it will generally make sense to distribute the directory that supports this complex PKI. This paper looks at the directory requirements to support a complex PKI and what is needed to provide such a directory service. Some readers of this document will be familiar with PKI. For those who are not, an Appendix to this document gives a very simple introduction to the nature of a complex distributed PKI. This information is important to give background and context to the primary material of the paper on directory. This paper looks at the uses of directory made by a PKI and PKI-enabled applications. It defines requirements in terms of directory and then looks at how directory can be used to meet these requirements, and implications on provision of a distributed directory. What is Needed in the DirectoryThere are two types of information that are needed by a PKI to be stored in a directory. These are:
The following sections of this paper explain why this information is needed by the PKI. Why Directory (1): Supporting EncryptionWhen encrypting a document or message, the public keys of those intended to decrypt the documents are needed. In a large system, the document or message originator is unlikely to have these public keys. The directory is the natural place to locate appropriate public keys, which will be held in a certificate belonging to the user in the user’s directory entry. Once obtained from the directory, this certificate must be verified using PKI. Why Directory (2): Certificate Path BuildingThe entity verifying the certificates needs to get them from somewhere; one approach often used is to supply the necessary certificates along with the entity being signed. This can be convenient, but has a number of disadvantages:
Fortunately, the directory is a convenient place to hold certificates. The directory entry where a particular certificate is held can generally be inferred from the name of the subject, particularly where a system is built with directory retrieval as a planned approach. Because the CA trust path may be complex, the verifying entity will need to apply sensible heuristics in order to determine and retrieve all of the certificates needed. Why Directory (3): CRLs and ARLsThe next use of the directory is for the verification process to obtain necessary CRLs and ARLs. When a certificate is issued, it may contain a CRL Distribution Point, which is the (directory) name of where the CRL relevant to that certificate is stored. It is expected that CRLs will be used widely (e.g., US Federal Government has recently mandated their use). The most recent CRL can be found by reading the CRL attribute from this entry in the directory. When an entity is performing a verification, it will need to have up to date CRLs for all of the Certificates that are used in the process. In the example of Joe verifying Admiral Tim’s email in the Appendix, Joe will need to have up to date CRLs for each of the five certificates used in the verification. Joe may have these (typically from verifying other information). If he does not have them, the CRLs will need to be retrieved from the directory. As CRLs generally have a quite short period of validity before they are out of date, use of directory to directly access the current CRL is very important, as caching is usually not useful. Why Directory (4): Certificate UpdateWhere certificates are held by an entity, they will expire from time to time. Every entity will need to be set up with at least one manually configured certificate (an initial trust point). This initial manual installation is critical to ensure security and cannot be avoided. However, there is no need to repeat the manual step when a certificate expires. If an updated certificate (certifying the same public key) is placed in the directory, the entity can go to the directory to update its certificates. An Example Supporting DirectoryWe now look at an example directory to support a complex PKI. We'll take the example CA structure described in the Appendix. This example is formulated in terms of a government digital signature organization for a fictitious country (C=TY).
Note the CA structure (not a true hierarchy). In comparing this to the DIT (Directory Information Tree) and DSA hierarchies shown below, it is useful to note that there is a clear relationship, but that all three are different. The DIT is shown next:
A number of things can be seen from this DIT.
Requirements on Directory DistributionThe data in this directory is likely to be supported by a number of directory servers, known as DSAs (Directory System Agents). Typically each government department will run its own DSA, and use this to hold the data it manages. In general, a directory will be used for other services such as email support and white pages, and not just for PKI support. In the above example there will be DSAs for the following organizations:
This diagram shows all of the DSAs needed to support the DIT above. Note that each of these is an organizational DSA, which has a superior reference to the country DSA (first level DSA). The distributed PKI has led to a situation where PKI supporting data is held in a number of DSAs, which need to act as a distributed directory. The reason for this is that an entity performing verification needs to access information which may be in any DSA. The verifying entity will make LDAP queries to locate information. This query will need to be sent to the “right” DSA. There are three ways to achieve this.
The important point about the distributed directory is that the necessary service cannot be provided by a single LDAP server. Rather, a collection of DSAs need to act in a distributed manner to provide the information needed by the PKI. Patterns of Directory UseIn planning a distributed directory, it is important to understand the load that will be applied. The details of this can only be done for a specific deployment. It will depend significantly on the number of entities and the number of verifications being done. As discussed at the start of this paper, it is likely that once this type of infrastructure is built, that it will be used for most supportable transactions and so many verifications will be performed. Necessary CRLs will typically get cached when they are retrieved. In a high volume system, when a CRL is out of date, every verifying entity will need to get the latest version of the CRL. This will typically mean that there is a spike of requests for CRLs just after they expire. The same is true for certificates, although in general certificates will have a much longer expiry than the CRL refresh time. Verifying entities are likely to quite quickly cache most necessary CA certificates. Path building will need more occasional access to certificates from all over the DIT. Referral versus ChainingReferral and chaining are the basic choices for a distributed directory. Referral is the simplest (and most widely supported by directory servers). Although simple, there are three basic problems with use of LDAP referrals:
In practice, this means that chaining is the best approach to build a distributed directory. Configuration can be set up and tested to verify that directories can correctly talk to each other, and pass back results to the requesting LDAP client. Requirements on Directory ReplicationAn important characteristic of directory servers is that data can be replicated. Data is replicated for a number of reasons:
We can now consider these principles in light of patterns of expected use. Some specific notes can be made:
These principles will need to be applied to the specific requirements of a deployment. It is likely that replication will be important for most distributed directories supporting PKI. Meta DirectoriesMeta Directories (Directory Synchronization) are useful when the primary goal is information integration. Because of the requirements on strict naming to be able to consistently retrieve information based on directory name that is held in the certificate, this needs to be consistent across the entire system described here. In general, a Meta directory will perform data transformation. While this may be convenient for synchronizing and sharing human data, it will generally be problematic for PKI support. True directory replication will generally be the best approach. When X.500 MattersX.500 is the ITU standard for directories, and defines a complete system for provision of a directory service. LDAP defines a standard for access to a directory, which works well with X.500 but is not restricted to X.500. Most X.500 directory products support LDAP, but many LDAP servers do not support X.500. X.500 defines many important functions that are not present in LDAP. These include:
In LDAP directory servers that do not support X.500, some or all of these capabilities may be provided using proprietary mechanisms, . Replication and chaining are likely to be key components of a distributed directory supporting PKI. When such a distributed directory is specified, there are essentially two options:
In many deployments, this means that use of X.500 will be essential. ConclusionsThis paper has given a brief illustration of how distributed directory is used to support PKI, and the requirements that PKI places onto such a service. In general, use of directory servers that support both LDAP and X.500, such as Isode’s M-Vault are the best way to build such a service. Next StepsIf you have not already done so you should consider reading the Appendix to this paper, A Short Tutorial on distributed PKI, which contains background material helpful in setting into context the material in this white paper.
|
|
| Copyright © 2009 Isode | sitemap privacy feedback
|