Quanto è importante la sicurezza del trasporto delle app?

3

Come probabilmente abbiamo sentito tutti, Sicurezza del trasporto delle app in iOS 9 richiede:

  • TLS 1.2 o superiore
  • Codi cifrari di segretezza
  • SHA256 o superiore con > = RSA a 2048 bit o > = chiave ECC a 256 bit

Google e Facebook richiedono entrambi che gli sviluppatori disattivino App Transport Security (o parte di esso) per la compatibilità e Google ha preso un po 'di calore per questo.

La mia domanda è questa: quante giustificazioni tecniche ci sono? Dovremmo tutti innalzare invano per motivare tutti a rispettare ATS invece di essere pigri e lavorare attorno ad esso? O non c'è molto effetto pratico, ad esempio, per disattivare il requisito di segretezza in avanti per i domini di Facebook?

    
posta Mr. Jefferson 14.09.2015 - 23:37
fonte

1 risposta

6

Probabilmente è giustificato, perché con la velocità con cui aumenta la potenza di calcolo, la crittografia precedente diventa rapidamente debole, ciò che una volta era considerato "troppo difficile da rompere" diventa fattibile.

Apple ha l'abitudine di educare i propri utenti / sviluppatori, che tendono anche a essere pigri e trascurano tali problemi, quindi questa è probabilmente una buona cosa, specialmente quando le soluzioni sono facili da implementare.

Ci sono alcuni casi in cui ATS deve essere disabilitato, ma la maggior parte delle volte può essere risolto senza disabilitare ATS -

A) Il backend non supporta le connessioni HTTPS

Configura il tuo back-end per supportare le connessioni HTTPS, non c'è motivo di utilizzare connessioni non sicure.

B) Il backend utilizza un certificato autofirmato

O firmalo con un'autorità di certificazione conosciuta o contrassegna il certificato di root autofirmato. Puoi utilizzare AFNetworking per bloccare il tuo file CER.

C) Backend non supporta TLS v1.2 con Forward Secrecy

Aggiorna il tuo server per supportare quei codici. Cerca sul Web come farlo sul tuo server web.

D) L'app comunica con una terza parte che non soddisfa pienamente ATS

Aggiungi un'eccezione per quel sito Web specifico. Verifica se l'endpoint supporta lo schema HTTPS, i protocolli TLS v1.2 e le suite di crittografia Forward Secrecy , se manca uno di quelli - e un'esenzione specifica.

Se non specificano quale endpoint API usano, puoi utilizzare uno sniffer come Wireshark o un altro programma basato su winpcap per scoprire con chi sta comunicando la libreria di terze parti.

Ecco un'ottima guida per impostare le esenzioni - link

E) L'app apre un URL esterno sconosciuto

Utilizza SFSafariViewController per aprire siti Web esterni sconosciuti. Incapsula tutte le misure di protezione richieste per proteggere il tuo utente.

F) L'app ha un browser web incorporato

Questo è un problema, dal momento che SFSafariViewController usa una vista modale e probabilmente dovrai usare UIWebView , che segue le regole ATS della tua app. Non è possibile consentire le connessioni HTTP su un controllo UIWebView specifico.

Se vuoi supportare l'apertura del sito Web HTTP da un browser UIWebView in linea, devi abilitare NSAllowsArbitraryLoads .

    
risposta data 14.09.2015 - 23:55
fonte

Leggi altre domande sui tag