En el contexto de ssl / tls, el trabajo principal de CA es garantizar al cliente que el servidor al que está conectado es el servidor al que el cliente desea conectarse. En algunos casos, también se puede utilizar para verificar otras cosas.
Comprender esto y comprender a sus clientes es clave para comprender cuándo debe crear su propia CA. Necesitan hacerse algunas preguntas.
- ¿Sus clientes usarán software genérico o usarán el software que usted proporciona?
- Si es un software genérico, ¿espera utilizar una lista predeterminada de CA de sistema o espera que se configure una CA explícita?
- ¿Estarán sus clientes en las máquinas que administra?
Una vez que haga esto, puede evaluar las ventajas y desventajas de usar el sistema público de CA o una CA privada en su contexto particular.
A menudo tendrás pocas opciones. Tome un sitio web público, por ejemplo, sus clientes están usando software genérico, en máquinas que no controla y de las que no estarán preparados para realizar una configuración especial para su sitio. Básicamente, no tiene más remedio que utilizar una CA pública ampliamente reconocida.
En el otro extremo toma algo como openvpn. Espera que usted utilice su propia CA privada como medio de identificación y control de acceso. Tratar de usarlo con una CA pública simplemente no funcionaría razonablemente.
Un término medio podría ser un sitio web solo para uso interno. El uso de su propia CA aquí aportaría ventajas, podría emitir certificados para nombres de host solo internos y no dependería de ninguna parte externa para emitir certificados. Sin embargo, también traería desventajas, tendría que instalar su propia raíz en los principales almacenes raíz de confianza en los clientes. Obtener su certificado raíz en los almacenes raíz de confianza de los clientes puede ser una molestia si tiene máquinas no administradas. Tener su certificado en las tiendas raíz de confianza también significaría que podría usarse para ataques MITM en sus clientes, por lo que deberá mantener los certificados de raíz (e intermedios si corresponde) bajo un control muy cercano.
O pasar al lado del desarrollo de software, considere un programa con un sistema de actualización automática que se basa en tls para la seguridad (no es un diseño que recomendaría). Si utiliza una CA pública en el servidor y la lista de CA predeterminadas de los sistemas operativos en el cliente, cualquier persona que pueda persuadir a una CA pública para que les otorgue un certificado para su dominio puede MITM sus actualizaciones. Por otro lado, con un CA privado, el atacante tendría que comprometer su infraestructura de certificación interna.