Con respecto a la implementación de SSL Pinning

0

Tengo dudas. Para la seguridad de las aplicaciones de Android, ¿qué método de fijación SSL es bueno?

  1. Implementando la fijación de la clave pública HTTP
  2. Implementar la validación de certificados usando el formato * .bks junto con el verificador de nombre de host.

La segunda es más recomendada para infraestructuras críticas, como militares, según algunos expertos.

En HTTPPubliKeyPinning hay una ventaja que puedo dar a una matriz de numerosas claves públicas. De modo que si uno de mis certificados caduca, la aplicación cambiará automáticamente la clave pública de otro certificado en otro dominio.

En BKS, el desarrollador debe adjuntar un nuevo certificado en APK y debe proporcionar al cliente el uso de la aplicación forzar la actualización, de lo contrario no funcionará.

Sin embargo, las métricas de habilidad de explotación tienen el mismo marco de tiempo. Puedo explotar el error 1 y el error 2 utilizando el marco Xposed utilizando la aplicación JustTrustMe. Requerirá la misma cantidad de tiempo y esfuerzo. También en ambos casos, si el pirata informático vuelve a empaquetar la aplicación con 1. nuestra clave pública o con 2. el certificado después de la ingeniería inversa, él / ella podrá evitar estas restricciones. ¿Algún otro beneficio de usar el segundo método? ¿Hay algún buen método disponible que este?

Entonces, en función de la continuidad y la seguridad del negocio, ¿cuál es la mejor?

    
pregunta FrOgY 15.11.2016 - 05:35
fuente

1 respuesta

2

Creo que está esperando una protección contra la fijación de certificados que no puede ofrecer. Esto significa que la técnica real utilizada para el anclaje no importa en absoluto en su caso. La fijación de certificados solo cambia cómo se valida el certificado al verificar si la clave pública del certificado coincide con la expectativa. Esta comprobación se realiza adicionalmente a la validación normal o la reemplaza.

La fijación de certificados no hace que su aplicación esté mágicamente segura contra ingeniería inversa, manipulación o envío de una versión modificada. Hace que sea un poco más difícil para algunos ingenieros de ingeniería inversa rastrear y modificar los datos transferidos, ya que uno no puede simplemente agregar otra CA de confianza al almacén de confianza para confiar en un hombre del medio. Pero aún es posible omitir la validación del certificado eliminándolo de su aplicación o cambiándolo. O un ingeniero inverso podría tomar los datos de su aplicación antes de que se cifren y después del descifrado, manteniendo la validación en su lugar.

En general, TLS no protege contra modificaciones del cliente o servidor. Solo protege el transporte entre el cliente y el servidor contra un atacante pasivo o activo que intenta entre cliente y servidor para detectar o modificar el tráfico. Y la fijación de certificados solo endurece esta parte.

    
respondido por el Steffen Ullrich 15.11.2016 - 06:40
fuente

Lea otras preguntas en las etiquetas