Rischio di certificati autofirmati con Android

7

Nella top ten di OWASP elenco per dispositivi mobili, si dice che i certificati autofirmati non dovrebbero mai essere permesso

Voglio verificare con gli altri perché è così? Se ho un server back-end per la mia app mobile, firmo anch'io un paio di chiavi (assumendo me stesso come CA). Se utilizzo il pinning, userò la chiave pubblica della mia CA per verificare il certificato e quindi utilizzerò la chiave pubblica del server (questa parte mi sembra al sicuro - presumendo che l'utente malintenzionato non conosca le chiavi private).

Ma se non utilizzo il pinning, il rischio è lì perché ora le CA predefinite in Android non possono essere utilizzate per verificare il certificato e dovrò utilizzare tutti i certificati per farlo funzionare?

In breve : chiedo informazioni sulla situazione in cui i certificati autofirmati vengono utilizzati senza bloccare per un'app Android.

    
posta Jake 07.11.2015 - 22:33
fonte

2 risposte

3

Sembra che l'utilizzo di un certificato autofirmato sia sicuro. Ma qualsiasi variazione nel modello di utilizzo comporta dei rischi. Ad esempio, se ti colleghi al tuo server tramite un browser web o un altro strumento, non sarai in grado di convalidare automaticamente il certificato. Puoi ancora farlo manualmente, ma non sarà automatico ed è un po 'incline agli errori.

Ho il sospetto che il T10 fosse incentrato sul caso generale e non si è preoccupato di dire "A meno che non si colleghi il certificato alla propria app e si acceda al server solo tramite l'app o si convalidi sempre manualmente il certificato."

Se ti interessa, puoi ottenere un certificato SSL gratuito da StartSSL.com e bypassare del tutto il problema (anche se cert pinning aggiungerà sicurezza anche con un certificato firmato).

    
risposta data 07.11.2015 - 22:41
fonte
1

Non devi fidarti di tutti i certificati per farlo funzionare.

  • HttpClient:
    Con un client HTTP, puoi caricare il tuo truststore personalizzato (contenente la tua catena CA privata PKI) e il truststore predefinito Android in un SSLSocketFactory . Funziona alla grande.
  • Webview:
    Il default-trustore è già affidabile, ma dovrai codificare la routine di validazione per il tuo custom-trustore, se non c'è una corrispondenza.
  • Browser Web (non parte dell'app):
    Le CA predefinite sono attendibili. E puoi provare a installare manualmente le tue CA private attraverso le impostazioni di sicurezza di Android, ma non sempre funziona.
risposta data 07.11.2015 - 23:35
fonte

Leggi altre domande sui tag