¿Por qué no usar una CA privada?

7

Tenía una pregunta al leer este artículo:

Los certificados falsos engañan al criptográfico defectuoso en aplicaciones de AIM, Chase y más

(Básicamente, algunas aplicaciones de Android, como la aplicación de banca de Chase, por ejemplo, pueden ignorar los errores de validación de certificados, posiblemente porque la aplicación está tratando de incluir listas de CA obsoletas en dispositivos más antiguos y versiones de Android).

En el contexto de este tipo de aplicación bancaria, ¿por qué el desarrollador no usaría una CA privada en lugar de firmar los certificados del servidor (y, en este caso, del cliente) a través de una de las CA públicas? El desarrollador controla ambos extremos de la transacción, después de todo. ¿Me estoy perdiendo algo, más allá de la pereza?

    
pregunta cjc 25.10.2012 - 14:59
fuente

3 respuestas

2

Los temas que se mencionan en el artículo son en su mayoría del siguiente tipo: las aplicaciones hacen un uso incorrecto del protocolo, ya que ignoran los errores de validación. Lo hacen porque los desarrolladores de aplicaciones usan SSL como una caja negra que se supone que "agrega seguridad" por estar allí. El estado de la documentación de muchas bibliotecas SSL no ayuda en absoluto a estos desarrolladores, lo cual, cuando existe, rara vez resulta claro para cualquiera que no haya estudiado la validación del certificado X.509.

Alguien que usaría su propia CA sería alguien consciente del problema y entiende lo que ocurre cuando se usa un certificado. Esa es la solución: el diseñador de la aplicación no cometería los errores a los que alude el artículo. Una CA privada es solo la solución lógica hacia la cual se dirigen los diseñadores de aplicaciones cuando saben lo que están haciendo. Mantener una entidad emisora de certificados privada puede ser complejo y costoso, pero ese es un síntoma de que la certificación es, en general, un problema difícil. El punto importante es que los diseñadores de aplicaciones deben comprender lo que SSL y los certificados hacen y no hacen. Mientras no lo hagan, ninguna CA privada los salvará.

    
respondido por el Thomas Pornin 26.10.2012 - 13:11
fuente
1

Usar una CA privada realmente no cambiaría esto. El error está en la forma en que se realiza la validación de certificados dentro del código de la aplicación, lo que significa que se puede engañar a la aplicación para que acepte certificados falsos.

Por ejemplo, puede comprar un certificado de firma de código completamente legítimo de cualquier CA importante, usando el mismo nombre. Para la mayoría de los certificados estándar, la CA no verificará los detalles. Como el dispositivo solo realiza algunas comprobaciones primitivas, aceptaría ese certificado y le permitiría realizar un ataque de hombre en el medio. Incluso si el proveedor ejecutara su propia CA privada, esto aún sería posible.

Eche un vistazo a algunas de las respuestas en esta otra pregunta , que cubre las vulnerabilidades en detalle.

    
respondido por el Polynomial 25.10.2012 - 15:09
fuente
0

La única razón real por la que podía ver más allá de la pereza, es el costo de mantener una infraestructura privada de CA / PKI.

Hacerlo bien (con buena seguridad) puede ser una propuesta bastante costosa. Obviamente, hacerlo a un nivel básico (configurar claves, firmar los certificados, etc.) es bastante fácil, pero si no aseguras bien las claves de CA, podría ser bastante desagradable si se las roban (dependiendo de lo que haga tu aplicación). y lo fácil que sería enviar una actualización).

    
respondido por el Rоry McCune 25.10.2012 - 16:39
fuente

Lea otras preguntas en las etiquetas