Why Build Large Scale PKI?PKI is needed to support large scale deployment of a number of security services. In particular:
The requirement for large scale PKI come from situations where one or more of these services needs to be supported across multiple organizations. A common example of this is “e Government” initiatives such as the US eGov initiative supported by the Federal PKI. Another example are the security services of the Extended ATS Message Service, used to support Aviation ground to ground messaging internationally. This requires an international PKI, spanning Aviation organizations around the world. The goal of a large scale PKI is to enable some or all of these services for users of the infrastructure. In most situations where an infrastructure is properly built, it will be used heavily. Once there is a capability to digitally sign and verify messages, it will generally make sense to use this for all transactions. Benefits:
This assumption has implications later, in discussions on provisioning directory. Private and Public KeysThis is not intended to be a general tutorial on PKI. There are many detailed descriptions. This section and the next try to simply explain the essence of why a PKI is needed and how it works, so that enough information is provided to understand the directory elements of the whitepaper: Distributed Directory in support of large scale PKI. Distributed security services using PKI are based around a technique called “asymmetric cryptography”. The central components of asymmetric cryptography are public and private keys. A simple understanding can be gained by looking at the answers to three related questions: Q1: What is a Key Pair?
Q2: What is a Private Key?
Q2: What is a Public Key?
As an example of digital signature, user Joe will create an electronic signature for a document using his private key. Anyone can very this digital signature using Joe’s public key. This approach is very flexible and powerful, simply because Joe’s public key can be published and distributed freely, so that anyone can verify Joe’s digital signature. Why Do Public Keys need PKI?The basic cryptography and verification provided by a public/private key mechanism does not require a PKI. To understand the need for PKI, one needs to consider the trust assumptions behind digital signature verification. Consider for example that I am given a document that is purported to be signed by Joe using Joe’s public key, along with this public key. I can use asymmetric cryptography to be certain that the public key provided was used to sign the document. The important question is: “How can I be certain that this public key belongs to Joe?” It may be that Joe gave me a copy of his public key, or that I have other signed documents from Joe, which I have verified with the same public key (because only Joe’s public key can verify documents signed by Joe). In some small scale situations, digital signature verification with public keys can work fine on an ad hoc basis without a PKI. In general, this trust question is a big problem. How can you establish trust that a given public key is owned by a particular person or entity? This is the problem that PKI sets out to solve, and is fundamental to using digital signatures on a large scale. The basic building block of a PKI is a (digital) Certificate. The entity creating a certificate is called a Certification Authority (CA). The core components of a Certificate are:
By creating a Certificate containing Joe’s name and public key, the CA is stating that it has verified that the public key in the certificate does in fact belong to Joe. This can be verified using the CA’s public key. Certificates and CAs enable a trust chain to be built. This is shown in the diagram below:
The starting point of the trust chain is that the CA is trusted. Technically, this means that the identity of the CA’s public key is trusted. This trust leads to trust of Certificates issued by the CA, because the digital signature on the certificate can be verified using the CA’s public key. Because Joe’s name and Joe’s public key are contained in the certificate, trust is gained that Joe’s public key really does belong to Joe. Now, a document signed by Joe’s private key is linked back by cryptographic trust to Joe’s public key (in which trust was established in the previous step). It can be seen that starting with the point of only trusting the CA, that a trust chain can be established to build trust that a document was signed by Joe. An important extension is that a CA can also issue certificates for other CAs. This means that a trust chain can be established through multiple CAs, going CA -> CA -> CA -> User’s Public Key. This enables a mesh of CAs with trust links to be used. The importance of this will be seen in the example later. There is a lot of PKI complexity not covered here, which does not need to be understood for the purpose of this paper. One concept that is important for the following examples is CA policy. A CA is participating in a trust chain. When a CA creates a Certificate, it will follow certain process with more or less care to be certain that the information being certified is correct. These processes are published as a CA policy. When a CA has certain policies that are expected by those that trust it, this also needs to be reflected into other CAs that it certifies. Higher trust and care has higher cost, and so different CAs will have different policies. High trust CAs will not generally certify lower trust CAs, in order to provide consistent trust quality. This leads to partially interlinked meshes of CAs with different policies. An Example PKIThis section shows how this structure might come together in a non-trivial example that we also look at in terms of directory support. This is formulated in terms of a government digital signature organization for a fictitious country (C=TY).
The overall structure is a somewhat complex mesh, which is somewhat hierarchical. Arrows show trust, which is reflected by issue of a certificate. The core of this government structure is CAs associated with departments. These CAs are in a position to certify users within the department. CAs will generally (but not always) have mutual trust reflecting aligned policies. Mutual trust will be represented by certificates being issued in both directions between CAs. Because there are many government departments, it would be overly complex to have every department certify each other department, Therefore, the government has established a number of central CAs which are used to provide a trust path between all government departments. This example structure does not (and should not) contain well known or generally trusted CAs, such as the visible public CAs for which trust is often installed by default on many computers. A typical user will establish trust with a local CA. For example Joe Farmer will establish trust with the Agriculture CA. This will typically be done by providing Joe Farmer with a certificate that includes the Agriculture CA’s public key that will be installed on Joe Farmer’s computer. This is his initial trust point, and means that he will trust certificates signed by the Agriculture CA. Consider an example where Joe wants to verify a document signed by Fred Train Driver. The trust chain requires two certificates:
Joe can now use Fred’s public key to verify the document, and this example verification is complete. A longer trust chain is listed below, to show how Joe could verify a digitally signed email from Admiral Tim.
Certificate Life CycleCertificates do not last forever. If a user ceases to be trusted, perhaps because of ceasing to be an employee, the certificate must be deactivated. If a user’s private key is stolen or otherwise compromised, signatures made by the user’s private key can no longer be trusted and so the certificate must be deactivated (just like handling a lost credit card). There are two primary mechanisms to achieve this:
|
|
| Copyright © 2008 Isode | privacy feedback
|