Riesgo de certificados autofirmados con Android

7

En la lista de OWASP para móviles, se menciona que los certificados autofirmados nunca deben ser permitido.

Quiero consultar con otros ¿por qué esto es así? Si tengo un servidor back-end para mi aplicación móvil, y firmo un par de claves (asumiendo que soy un CA). Si uso el anclaje, usaré la propia clave pública de mi CA para verificar el certificado, y luego usaré la clave pública del servidor (esta parte me parece segura, suponiendo que el atacante no conozca las claves privadas).

Pero si no uso el anclaje, ¿existe el riesgo porque ahora no se pueden usar las CA predeterminadas en Android para verificar el certificado, y tendré que usar confiar en todos los certificados para que funcione?

En resumen : estoy preguntando por la situación cuando se usan certificados autofirmados sin fijar para una aplicación de Android.

    
pregunta Jake 07.11.2015 - 22:33
fuente

2 respuestas

3

Parece que su uso de un certificado autofirmado es seguro. Pero cualquier variación en su patrón de uso corre riesgos. Por ejemplo, si se conecta a su servidor a través de un navegador web u otra herramienta, no podrá validar automáticamente el certificado. Aún puedes hacerlo manualmente, pero no será automático y es propenso a errores.

Sospecho que el T10 se enfocó en el caso general y no me molesté en decir "A menos que usted fije el certificado a su aplicación y solo acceda al servidor a través de la aplicación o siempre valide manualmente el certificado".

Si te importa, puedes obtener un certificado SSL gratuito en StartSSL.com y solo pasar por alto el problema (aunque el pin cert agregará seguridad incluso con un certificado firmado).

    
respondido por el Neil Smithline 07.11.2015 - 22:41
fuente
1

No es necesario que confíes en todos los certificados para que funcione.

  • HttpClient:
    Con un cliente HTTP, puede cargar su almacén de confianza personalizado (que contiene su cadena privada de PKI) y el almacén de confianza predeterminado de Android una SSLSocketFactory . Funciona muy bien.
  • Vista web:
    El valor predeterminado de confianza ya es confiable, pero tendrá que codificar la rutina de validación de su cliente personalizado, si no hay una coincidencia.
  • Navegador web (que no forma parte de la aplicación):
    Las CA predeterminadas son de confianza. Y puedes intentar instalar manualmente tus CA privadas a través de la configuración de seguridad de Android, pero no siempre funciona.
respondido por el Seb B. 07.11.2015 - 23:35
fuente

Lea otras preguntas en las etiquetas