I am looking for the pros and cons of outsourcing an organization's Public Key Infrastructure (PKI). I understand that the answer to whether or not to actually outsource is going to depend on the environment and the organization. What are the risks associated outsourcing PKI and are there any technical gotcha's with regard to outsourced PKI?
One of the key risks I have come up against when working with banks outsourcing their PKI is the protection of the root certificate. If you are relying on your PKI to protect something which is business critical you really want your PKI provider to assure you of the security around the root certificate.
There are a few providers who really work hard at this, using many mechanisms to help persuade clients to use them. From experience, I include in this pressure plates, retina scanners, dual synchronised keys, man traps, video coverage of root access, partial access granted to the provider, and part to you - pretty much everything you'd expect from an evil genius in a James Bond film.
Another issue is around connectivity - if you use the PKI for real time services, loss of connectivity to the provider will cause a Denial of Service. Make sure they have resilient links to you, and to your customers or other users.
The big pro of outsourcing the PKI is that you then do not have to do it yourself. Maintaining a PKI is complex, hence expensive; a specialized entity may mutualize costs over several hosted PKI.
The big costs associated with maintaining a PKI are:
So my advice would be to outsource "by default". The complexity inherent to a secure PKI ("secure" in both cryptographic and legal senses) is almost always widely underestimated.
PKI infrastructure could help you out there.
I'm not exactly sure what your requirements are, but you could insist on generating a root certificate for say 10-20 years, and publish your CRLs for clients, and then generate key-signing "sub CAs" for delegating specific key-signing tasks with specific limitations on the key signing,such as key-length, type of keys to sign, maximum period of time, etc. (check out x509 details).
That way, via delegation, the owness is on you to protect the root CA, and if at anytime you want to revoke delegation, you can publish CRLs for the delegated CAs.
Now, you have ultimate control, and you could setup and offline root CA, and only public the certificate chains and public root CA are needed.
This way, they can still perform their outsourced work, but you retain control over the keys to the castle so as to speak.