Un certificado autofirmado está completamente bien si está dispuesto a confiar explícitamente en él. La razón por la que se firma un certificado es que una entidad más confiable que el titular del certificado está agregando autoridad a los datos con una firma digital. Como dice en su pregunta, una CA es tan buena como las formas en que está asegurada: una CA no confiable crea certificados no confiables.
En su mayor parte, se requiere un certificado cuando se deben comunicar dos partes de un sistema. Cuando una computadora simplemente está procesando información sin transacciones entre componentes, no hay necesidad de ningún certificado. Los certificados entran en juego cuando necesitas:
- Almacenar datos y recuperarlos más tarde.
- enviar datos o instrucciones de un punto a otro
En todos los casos, existe el riesgo de que una parte desconocida y no confiable pueda explotar los datos o el canal. Por lo tanto, el certificado proporciona identificación, cifrado o verificación de integridad (o todo lo anterior). El par de claves en sí mismo es lo que proporciona integridad y cifrado: la firma de un certificado está relacionada en gran medida con la preocupación de seguridad de identificación / no repudio.
La autofirmación crea dos preocupaciones básicas:
- ¿Quién eres? ¿Cómo sabe el sistema que este certificado autofirmado está bien, pero otro no lo está?
- ¿Todavía estás bien? Cuando se confía explícitamente en un certificado autofirmado, ¿cómo puedo saber si la clave privada se ha comprometido?
Generalmente, ambas preocupaciones se manejan confiando explícitamente en el certificado, que le dice al sistema que el certificado es el certificado de la parte autorizada, y si la clave privada debe comprometerse alguna vez, se puede cambiar la configuración, eliminando la confianza.
Eso es manual en la mayoría de los sistemas, y funcionará totalmente en cualquier caso en el que pueda confiar en que el administrador se mantendrá al tanto de cualquier compromiso y podrá reconfigurar el sistema de manera oportuna. En la práctica, para un puñado de sistemas simples, eso es viable.
Cuando los sistemas se vuelven más dependientes de los certificados o cuando hay varios puntos que dependen de la conexión a un certificado autofirmado, la dependencia del error humano se vuelve demasiado grande, y la mayoría de los diseñadores de seguridad buscarán una forma de hacer un automatizado Compruebe el estado del certificado y proporcione una entidad común (una CA) para la creación de todos los certificados. Entonces, todos los sistemas dependientes confiarán explícitamente en la CA.
De cualquier manera funcionará. En cualquier caso, la seguridad dependerá de la seguridad de la clave privada: suelte la clave privada y habrá perdido el control de la identidad del sistema que está protegiendo. Después de eso, se trata principalmente de qué tipo de riesgo está dispuesto a aceptar.