Estoy desarrollando una aplicación de Android habilitada para red que usa certificados de cliente SSL para autenticar y asegurar las conexiones a mi servidor.Cómo y qué certificado de servidor usar con autenticación de certificado de cliente SSL de Android
Tengo dos preguntas: (1) ¿debo usar un certificado de servidor autofirmado o uno comercial? Y (2) ¿debo incluir el certificado del servidor dentro del archivo apk que instalan los usuarios o debo tener la aplicación conectada a mi servidor para obtener el certificado del servidor a través de la red (con el fin de hacer que el dispositivo confíe en el certificado del servidor)?
Cuando pregunto qué debo "hacer", me pregunto cuáles son los beneficios y las desventajas de cada opción.
Ahora estoy usando un certificado autofirmado incluido con el archivo apk. Cuando el usuario ejecuta la aplicación por primera vez, lee el certificado autofirmado incluido en el almacén de confianza para que el dispositivo se conecte a mi servidor sin quejas. Supongo que si utilizo un certificado comercial, mi pregunta n. ° 2 podría ser irrelevante, ya que el dispositivo puede confiar en el cert del servidor sin problemas.
Otro detalle posiblemente relevante: esta aplicación no se está distribuyendo a través del mercado de Android. Los usuarios descargarán la aplicación de mi servidor, por lo que puedo incluir el certificado de servidor que desee, incluido uno diferente para cada usuario si lo necesito.
Tengo mis propias ideas acerca de las diversas ventajas y desventajas de cada posible respuesta a mis dos preguntas, pero estoy interesado en lo que otros - con suerte la seguridad mental - tienen que decir al respecto.
¡Gracias de antemano!
+1 ya que me enfrento con un problema similar. ¿En qué dirección terminaste? –
Elegí el certificado autofirmado por los siguientes motivos: (1) el beneficio de un cert comercial es el reconocimiento del navegador. Mi aplicación de Android es mi creación, así que puedo incluir cualquier certificado de raíz que desee, por lo tanto, usar un certificado comercial no me da ninguna ventaja marginal. Por otro lado, (2) un certificado comercial introduce un riesgo, ya que ahora no solo soy vulnerable al ataque contra mi seguridad, sino también contra la autoridad de certificación. Si el CA es pirateado, pierde su clave privada o es engañado para que emita un certificado de servidor con mi nombre de dominio, podría sufrir. Poca posibilidad, pero ¿por qué tomarlo? Por último pero no menos importante (3) el dinero. –