iOS9 GoogleAnalytics y NSAppTransportSecurity

Me encuentro con problemas debido a la nueva oportunidad de seguridad del iOS9 de Apple para restringir las solicitudes SSL a cualquier tipo de servidor.

Ver referencia:https://developer.apple.com/library/content/documentation/General/Reference/InfoPlistKeyReference/Articles/CocoaKeys.html#//apple_ref/doc/uid/TP40009251-SW33

En realidad, quiero utilizar el valor predeterminado y no permitir ningún tipo de conexión NSAllowsArbitraryLoads: falso

<key>NSAppTransportSecurity</key>
    <dict>
        <key>NSAllowsArbitraryLoads</key>
        <false/>
    </dict>

Por supuesto, algunas conexiones están destinadas y recupero datos de servidores propios y de servidores de terceros.

Ahora puede oler el tráfico de la aplicación, que es generado por herramientas de terceros, o puede utilizar el registro de todo el tráfico de red, al que se hace referencia aquí:¿Cómo puedo averiguar qué URL está siendo bloqueada por App Transport Security?

Es fácil rastrear todos los errores que ocurren en este registro (no es demasiado difícil buscar un código de error). De esta forma, pude ver fácilmente qué conexiones se estaban estableciendo y quizás fallaron, debido a las limitaciones de carga (por supuesto, los buenos ingenieros de software lo saben de memoria;)

Cualquier tipo de rastreador de terceros o la propia configuración de red funciona bien, a pesar de Google Analytics. Al principio descargué los últimos códigos de ejemplo y los miré, por supuesto, no puede esperar que una biblioteca ya admita los sistemas beta más recientes, sin embargo, lo probé. Y falló tan pronto como NSAllowsArbitraryLoads se establece en falso / NO

Incluso con limitar lo menos posible para el tercero, no pude hacerlo funcionar:

<key>NSAppTransportSecurity</key>
    <dict>
        <key>NSAllowsArbitraryLoads</key>
        <false/>
            <key>NSExceptionDomains</key>
            <dict>
        <key>ssl.google-analytics.com</key>
        <dict>
            <key>NSRequiresCertificateTransparency</key>
            <true/>
            <key>NSThirdPartyExceptionMinimumTLSVersion</key>
            <string>TLSv1.2</string>
            <key>NSThirdPartyExceptionRequiresForwardSecrecy</key>
            <false/>
            <key>NSThirdPartyExceptionAllowsInsecureHTTPLoads</key>
            <true/>
        </dict>
    </dict>

También probé google-analytics.com e incluí los subdominios NSIncludesSubdomains: true. Y, como la simple llamada al sitio web en el navegador de "https://google-analytics.com"redirige a"https://www.google.com/analytics/"También intenté permitir google.com como dominio de excepción adicional, que también falla.

Incluso eché un vistazo a los cifrados ssl compatibles, creo que no son un problema aquí:

nmap --script ssl-enum-ciphers -p 443 ssl.google-analytics.com

|   TLSv1.2: 
|     ciphers: 
|       TLS_ECDHE_RSA_WITH_3DES_EDE_CBC_SHA (dh 256) - C
|       TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA (dh 256) - A
|       TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256 (dh 256) - A
|       TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (dh 256) - A
|       TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA (dh 256) - A
|       TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384 (dh 256) - A
|       TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (dh 256) - A
|       TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256 (dh 256) - A
|       TLS_ECDHE_RSA_WITH_RC4_128_SHA (dh 256) - A
|       TLS_RSA_WITH_3DES_EDE_CBC_SHA (rsa 2048) - C
|       TLS_RSA_WITH_AES_128_CBC_SHA (rsa 2048) - A
|       TLS_RSA_WITH_AES_128_CBC_SHA256 (rsa 2048) - A
|       TLS_RSA_WITH_AES_128_GCM_SHA256 (rsa 2048) - A
|       TLS_RSA_WITH_AES_256_CBC_SHA (rsa 2048) - A
|       TLS_RSA_WITH_AES_256_CBC_SHA256 (rsa 2048) - A
|       TLS_RSA_WITH_AES_256_GCM_SHA384 (rsa 2048) - A
|       TLS_RSA_WITH_RC4_128_MD5 (rsa 2048) - A
|       TLS_RSA_WITH_RC4_128_SHA (rsa 2048) - A

Entonces, el seguimiento de Google Analytics todavía falla para solicitudes como:https://ssl.google-analytics.com/collect? [....]

¿Alguien ha encontrado una solución o tal vez encontró algún tipo de error en mi enfoque?

Respuestas a la pregunta(1)

Su respuesta a la pregunta