¿Qué tan importante es la seguridad del transporte de aplicaciones?

3

Como es probable que todos hayamos escuchado, Seguridad de transporte de aplicaciones en iOS 9 requiere:

  • TLS 1.2 o mejor
  • Cifras de secreto hacia adelante
  • SHA256 o mejor con > = 2048-bit RSA o > = 256-bit ECC key

Google y Facebook , ambos solicitan a los desarrolladores que desactiven la Seguridad de transporte de aplicaciones (o partes de ella) por compatibilidad, y Google se ha esforzado por ello.

Mi pregunta es esta: ¿cuánta justificación técnica hay? ¿Deberíamos todos criar a Caín para motivar a todos a cumplir con ATS en lugar de ser perezosos y trabajar en torno a ellos? ¿O no hay muchos efectos prácticos para, por ejemplo, desactivar el requisito de secreto hacia adelante para los dominios de Facebook?

    
pregunta Mr. Jefferson 14.09.2015 - 23:37
fuente

1 respuesta

6

Probablemente esté justificado, porque con la velocidad a la que aumenta el poder de cómputo, el cifrado antiguo se debilita rápidamente, lo que una vez se consideró "demasiado difícil de romper" se vuelve factible.

Apple tiene el hábito de educar a sus usuarios / desarrolladores, que también tienden a ser perezosos y descuidan estos problemas, por lo que probablemente sea algo bueno, especialmente cuando las soluciones son fáciles de implementar.

Hay algunos casos en los que ATS debe estar deshabilitado, pero la mayoría de las veces se puede solucionar sin deshabilitar ATS -

A) El backend no admite conexiones HTTPS

Configure su backend para admitir conexiones HTTPS, no hay razón para usar conexiones no seguras.

B) El backend utiliza un certificado autofirmado

Firme con una autoridad de certificación conocida o fije su certificado raíz autofirmado. Puede usar AFNetworking para fijar su archivo CER.

C) El backend no admite TLS v1.2 con el secreto de reenvío

Actualice su servidor para admitir esos cifrados. Busque en la web cómo hacerlo en su servidor web.

D) La aplicación se comunica con un tercero que no cumple con ATS

Agregue una excepción para ese sitio web específico. Compruebe si el punto final es compatible con el esquema HTTPS, los protocolos TLS v1.2 y los conjuntos de cifrado Forward Secrecy , si falta alguno de ellos, y exento específicamente.

Si no especifican qué punto final de API utilizan, puede usar un rastreador como Wireshark u otro programa basado en winpcap para averiguar con quién se está comunicando la biblioteca de terceros.

Aquí hay una gran guía para establecer exenciones: enlace

E) La aplicación abre una URL externa desconocida

Use SFSafariViewController para abrir sitios web externos desconocidos. Encapsula todas las medidas de protección necesarias para proteger a su usuario.

F) La aplicación tiene un navegador web en línea

Esto es un rollo, ya que SFSafariViewController usa una vista modal y es probable que necesites usar UIWebView , que sigue las reglas ATS de tu aplicación. No hay manera de permitir conexiones HTTP en un control específico UIWebView .

Si desea admitir la apertura del sitio web HTTP desde un navegador UIWebView en línea, deberá habilitar NSAllowsArbitraryLoads .

    
respondido por el Kof 14.09.2015 - 23:55
fuente

Lea otras preguntas en las etiquetas