iOS9 GoogleAnalytics e NSAppTransportSecurity
Estou com problemas devido à nova oportunidade de segurança do iOS9 da Apple para restringir solicitações de SSL a qualquer tipo de servidor.
Na verdade, quero usar o padrão e não permitir nenhum tipo de conexão NSAllowsArbitraryLoads: false
<key>NSAppTransportSecurity</key>
<dict>
<key>NSAllowsArbitraryLoads</key>
<false/>
</dict>
É claro que algumas conexões são pretendidas e eu recupero dados de servidores próprios e de servidores de terceiros.
Agora você pode detectar o tráfego do aplicativo, gerado por ferramentas de terceiros, ou usar o log de todo o tráfego de rede, mencionado aqui:Como posso descobrir qual URL está sendo bloqueado pelo App Transport Security?
É fácil rastrear todos os erros que ocorrem neste log (não é muito difícil procurar um código de erro). Dessa maneira, eu era capaz de ver facilmente quais conexões estavam sendo estabelecidas e talvez falharam devido a limitações de carga (é claro, bons engenheiros de software sabem de cor;))
Qualquer tipo de rastreador de terceiros ou a própria configuração de rede está funcionando bem, apesar do Google Analytics. No início, baixei os últimos códigos de exemplo e os observei, é claro que você não pode esperar que uma biblioteca já suporte os sistemas beta mais recentes; no entanto, tentei. E falhou assim que o NSAllowsArbitraryLoads é definido como false / NO
Mesmo limitando o mínimo possível para terceiros, não fui capaz de executá-lo:
<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>
Também tentei google-analytics.com e para incluir subdomínios NSIncludesSubdomains: true. E, como o site simples chama no navegador de "https://google-analytics.com"redireciona para"https://www.google.com/analytics/"Também tentei permitir o google.com como domínio de exceção adicional, o que também falha.
Até deu uma olhada nas ssl-cifras suportadas, acho que não são problema aqui:
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
Portanto, o rastreamento do Google Analytics ainda falha em solicitações como:https://ssl.google-analytics.com/collect? [....]
Alguém encontrou uma solução ou encontrou algum tipo de erro na minha abordagem?