Network Perimeter Security: Building Defense In-Depth

7.2 PKI Implementation

As discussed, not every application will have all the requirements of a fully implemented PKI. As an example, let us consider the application of the PKI to the Internet. The most common model used, of a browser client connecting to a remote Web server, only needs to utilize specific portions of the PKI. The required elements include:

Note how the functions differ if we were to use the PKI to enable the secure exchange of e-mail between those in our own business:

While this list is more extensive, it is still simply a sub-set of the entire PKI capability set. For each instance that we could conceivably wish to implement a PKI, such as for VPN sessions or single sign-on authentication, there is a set of PKI elements that is applicable. The first challenge then is to determine the needs of our environment. For the sake of discussion, let us assume a common network scenario and examine the relevance of a PKI to it.

In our hypothetical business environment, we have a policy that requires us to securely authenticate remote VPN users, support TLS sessions with our Web server, and encrypt sensitive documents, including e-mail correspondence. This is a pretty typical set of what public key cryptography can be expected to support. Once we have defined the needs according to policy, we need to examine what elements of the PKI we require.

7.2.1 Certificate and Key Management Functions

Given keying material, we need to have the ability to sign keys created by our end users. In most cases, we will need to sign and manage multiple keys to reflect the fact that the keys we use to encrypt data are generally different than the keys that we use to sign data. Encryption keys will need to be centrally backed up to ensure accessibility to data. A third party should never back up signing keys, used for non-repudiation purposes, lest their integrity be called into question. Because the user population can be assumed to be somewhat dynamic, we will also need the ability to revoke keys and perhaps escrow keys to ensure access to encrypted information after an employee leaves. The state of all keys should be reflected in up-to-date revocation lists. We also need to ensure that certificate information is easily available and trustworthy, even to employees who communicate with each other but have never met face to face.

We may also have the need to have a higher CA certify our own CA. This is most likely the case of for our Web server certificate. While acting as our own CA for employee mail will be sufficient, remote users of Web services are not necessarily familiar with our company and will require third-party verification of our server before trusting our certificates. We will want our CA function to also manage trust relationships for this application.

7.2.2 Client Software

Client software will be a consideration. Because we are enabling client applications to perform at least three different functions, will there be any interaction on the client platform regarding certificates? Most likely, the Web browser, e-mail client, and VPN client will all use separate client certificate software. This may require the management of even more keys, one for each application per client.

7.2.3 Authentication

Authentication will be provided through the use of certificates in each case. The certificates distributed by the PKI will provide authentication for remote VPN clients and local users performing single sign-on for network resources and ensure that e-mail users are communicating with the desired remote party. Server certificates can also be used to perform two-way authentication to ensure that the services our users are connecting to are legitimate and not spoofed sites.

7.2.4 Confidentiality

The actual encryption of data will occur after the authentication process.

7.2.5 Integrity

The keys that have been signed by the CA will be used to sign cryptographic hashes to ensure the integrity of data both stored and transmitted.

7.2.6 Policy and Privilege Management

To enable our PKI to integrate with network resources, we need to ensure that policy and privilege tokens can be assigned to the user certificates.

With a clear idea of what we need from our PKI, we can then begin the process of deployment. The next step occurs in two parts. First, we must examine the cost and effectiveness of implementing the PKI ourselves versus the cost and effectiveness of having a third party provide a PKI solution for us. In evaluating our own solution and that of a PKI vendor, there are several important questions to consider.

Answering these questions based on our PKI needs will help us determine if the PKI is most likely something that our company should implement itself or if it is best left to third-party solutions. There is even the possibility that, based on our current security needs, the cost of implementing a PKI is not justified.

Like all information security systems, a PKI should be implemented only in response to a detailed risk analysis and adoption of a comprehensive security policy. Because a PKI is a modular structure by design, it is imperative that the needs to be fulfilled by the PKI are first defined. Before the purchasing of products begins, the question "How will this PKI achieve the goals of my security policy?" must first be answered.

The price and technical details for implementation must be carefully considered if the PKI is going to be a truly effective countermeasure. Although a PKI is not terribly difficult to implement with proper preparation, many institutions tend to outsource the implementation and perhaps even the management of their PKI in the hopes of leveraging the economies of scale that a dedicated PKI provider can achieve.

Категории