Come eseguire il blocco SSL nelle app iOS
Pubblicato: 2020-02-24Nel momento in cui le persone escono dalle loro case, vanno alla ricerca di reti Wi-Fi aperte . Che stiano aspettando in aeroporto o seduti in un bar, l'agenda principale è trovare una connessione Wi-Fi aperta .
Spaventosamente, anche gli hacker sono sulla stessa ricerca. Anche loro aspettano che gli utenti avviino una richiesta di connessione sulla rete aperta prima di mettere al lavoro i loro cervelli di phishing e privarli dei loro dati sensibili o, peggio, dei soldi nel loro conto bancario.
Sebbene HTTPS sia efficace in una certa misura, è un protocollo SSL noto per rendere gli utenti sicuri essendo infrangibile e in gran parte sicuro. Ma gli attacchi di Man-In-The-Middle (MITM) hanno trovato il modo di violare anche questo.
È qui che la tecnica SSL Pinning entra in scena come una delle migliori pratiche per la sicurezza delle app mobili . Parlando in particolare delle piattaforme, è la soluzione ideale per la sicurezza delle app per iPhone che fa un ottimo lavoro risolvendo il problema.
In questo articolo, esamineremo i tipi e il processo di incorporazione del blocco SSL nelle app iOS per prevenire questi attacchi Man In The Middle. Un processo che è una parte attiva della pratica di test di sicurezza mobile OWASP .
Tipi di metodo di blocco dei certificati SSL
Esistono principalmente due metodi per il test di blocco SSL, come discusso di seguito:
- Aggiungi il certificato: puoi scaricare il certificato del server e raggrupparlo nell'app. In fase di esecuzione, l'app confronta il certificato del server con quelli che hai incorporato.
- Aggiungi la chiave pubblica: puoi recuperare la chiave pubblica del certificato nel codice come stringa. In fase di esecuzione, l'applicazione confronta la chiave pubblica del certificato con una codificata nel codice.
La scelta tra i due metodi iOS di blocco SSL dipende dalla configurazione del server e dalle esigenze individuali. Quando scegli la prima opzione, dovrai caricare l'app quando il server cambia il suo certificato o smetterà di funzionare. Quando scegli la seconda opzione, potresti violare la politica di rotazione delle chiavi poiché la chiave pubblica non cambierà.
Diamo ora un'occhiata ai passaggi per implementare il blocco SSL nella tua app iOS.
*Nota: i passaggi indicati di seguito seguono il processo di blocco del certificato iOS con Swift.
Come implementare il blocco SSL nella tua app iOS
1. Sessione NSURL
Nel caso di NSURLSession, il metodo principale per la gestione del blocco SSL è URLSession:didReceiveChallenge:completionHandler:delegate. Gli sviluppatori dovranno impostare la classe in modo che sia conforme a URLSessionDelegate e incollare questa funzione nella classe:
La funzione " richiede le credenziali al delegato in risposta a una richiesta di autenticazione dal server remoto ". Lo sviluppatore dell'app per iPhone confronterà quindi i certificati del server con uno salvato nell'app bundle. Se i due certificati vengono trovati identici, l'autenticazione lo farà passare e il client sarà in grado di connettersi al server.
2. Appuntamento del certificato Alamofire
Alamofire è una delle librerie più famose per il networking HTTP in linguaggio Swift. Viene fornito con la funzionalità integrata per il blocco SSL in iOS Swift ed è estremamente facile da usare. Ecco come creare un'app iOS sicura con il blocco del certificato Alamofire.
Problemi comuni associati all'implementazione del blocco SSL e come risolverli
Gli esperti di garanzia della qualità presso rinomate agenzie di sviluppo di app, testano regolarmente le app mobili per rilevare le vulnerabilità della sicurezza, inclusa la piena penetrazione della rete. Ma ci sono molte agenzie di test delle app che non si concentrano su queste aree con lo stesso entusiasmo. Sembrano riluttanti quando implementano questa particolare soluzione di sicurezza per iPhone nelle loro app.

Ecco alcuni dei motivi prevalenti alla base di questo:
- Uno dei maggiori svantaggi del blocco SSL nell'app iOS è la sua implementazione. Il processo è complesso e può costringere gli sviluppatori a scrivere il codice ancora e ancora e complicare il processo di creazione dell'app .
- Il blocco dei certificati SSL iOS che sono destinati a cambiare regolarmente può costringere gli sviluppatori ad aggiornare il binario dell'app ogni volta che cambia il certificato.
- È necessario compiere molteplici sforzi per salvaguardare i modi per aggirare la verifica SSL di iOS.
Notando le ripercussioni che l'assenza del palco può portare, ecco come alcune insidie comuni vengono evitate da un'affidabile società di sviluppo di app per iPhone .
Testare il perno
A differenza dei normali test delle app in cui verifichi se tutto funziona o meno, il metodo per il test di blocco SSL è che dovrai verificare se qualcosa non riesce. Dovrai concentrarti sul test che l'app annulli le connessioni potenzialmente compromesse. Se l'app abilita la comunicazione con un singolo endpoint, il test sarà semplice come portare la richiesta GET in uno stato arbitrario. Idealmente, in questo caso, l'app deve annullare la connessione e la richiesta non dovrebbe riuscire.
Gestione del cambio di certificato
Il rinnovo di un certificato di dominio conserva la coppia di chiavi pubblica/privata, ma non è sempre così. Ma se pianifichi correttamente il ciclo di aggiornamento, sarai in grado di evitare i tempi di inattività per gli utenti finali.
Prima che il certificato SSL iOS venga reso attivo sul sito Web, è necessario bloccarlo nell'app, oltre al certificato attualmente attivo e quindi rilasciare un aggiornamento. Quando seguiamo questo passaggio in Appinventiv per creare un'app iOS sicura , eseguiamo temporaneamente un rapido test con il nuovo certificato e testiamo l'app con entrambi i certificati bloccati .
Domande frequenti sul blocco SSL nelle applicazioni iOS
1. Dove archiviare i dati sensibili in un'app iOS?
I dati sensibili dell'app devono essere sempre archiviati in iCloud o Keychain in iOS o anche nel database dopo un'adeguata crittografia.
2. Come funziona SSL?
SSL Pinning è uno dei suggerimenti per la sicurezza delle app iOS più comuni . Ma per capire cosa significa, dovrai prima sapere come funziona SSL.
- Un browser tenta di connettersi a un sito Web protetto con SSL. Il browser richiede quindi al server Web di identificarsi.
- Il server Web invia quindi al browser la sua copia del certificato SSL.
- Il browser verifica se il certificato SSL deve essere attendibile. Se può essere, viene inviato un messaggio al server web.
- Il server Web invia quindi un riconoscimento per iniziare la sessione crittografata SSL.
- I dati crittografati vengono quindi finalmente condivisi tra il browser e il server web.
Pensieri finali
Sebbene il blocco SSL sia considerato sicuro e ampiamente utilizzato ogni volta che è necessaria la crittografia, un altro livello di protezione è sempre gradito quando si creano app ad alto rischio. Il blocco SSL consente di verificare l'identità del server in cima alla catena di verifica dell'attendibilità SSL.
Con il blocco SSL, puoi rifiutare tutte le connessioni tranne quelle con il server designato il cui certificato SSL abbiamo salvato nel nostro pacchetto locale. Un potenziale inconveniente di ciò è che è necessario aggiornare l'app ogni volta che viene modificata la chiave SSL del server.
Nel caso in cui tu abbia intenzione di avviare anche un'app iOS con pinning SSL, può essere un buon inizio consultare la migliore società di sviluppo di app iOS .