Riguardo all'implementazione di Pinning SSL

0

Ho dei dubbi. Per la sicurezza delle applicazioni Android quale metodo di pinning SSL è buono?

  1. Distribuzione della chiave pubblica HTTP pinning
  2. Distribuzione della convalida del certificato utilizzando il formato * .bks insieme al verificatore del nome host.

Il secondo è consigliato di più per infrastrutture critiche come militari secondo alcuni esperti.

In HTTPPubliKeyPinning c'è un vantaggio che posso dare una serie di numerose chiavi pubbliche. In questo modo, se uno dei miei certificati scade, l'app passa automaticamente alla chiave pubblica dell'altro certificato su un altro dominio.

Dove in BKS, lo sviluppatore deve aggiungere un nuovo certificato nell'APK e deve dare il client usando l'aggiornamento forzato altrimenti l'applicazione non funzionerà.

Tuttavia, le metriche relative alla capacità di exploit hanno lo stesso intervallo di tempo. Posso sfruttare il difetto 1 e il difetto 2 usando il framework Xposed usando l'applicazione JustTrustMe al suo interno. Richiederà la stessa quantità di tempo e sforzo. Anche in entrambi gli scenari, se l'hacker riorganizza con successo l'applicazione utilizzando la nostra chiave pubblica o il 2. certificato dopo il reverse engineer, sarà in grado di aggirare queste restrizioni. Qualunque altro vantaggio nell'usare il secondo metodo? C'è qualche buon metodo disponibile di questo?

Quindi con la conformità della continuità e della sicurezza del business qual è il migliore?

    
posta FrOgY 15.11.2016 - 05:35
fonte

1 risposta

2

Penso che ti aspetti una protezione dal blocco dei certificati che non può offrire. Ciò significa che la tecnica effettiva utilizzata per bloccare non ha alcuna importanza nel tuo caso. Il blocco del certificato modifica solo la modalità di convalida del certificato controllando se la chiave pubblica del certificato corrisponde all'aspettativa. Questo controllo viene eseguito in aggiunta alla normale convalida o lo sostituisce.

Il blocco dei certificati non rende magicamente sicura la tua app contro il reverse engineering, la manomissione o la spedizione di una versione modificata. Rende un po 'più difficile per alcuni tecnici di reverse engineering annusare e modificare i dati trasferiti, dal momento che non si può semplicemente aggiungere un'altra CA attendibile al trust store per fidarsi di un uomo nel mezzo. Ma è ancora possibile bypassare la convalida del certificato estraendolo dall'applicazione o modificandolo. Oppure un tecnico inverso può prelevare i dati dalla tua applicazione prima che vengano crittografati e dopo la decrittografia mantenendo la validazione in atto.

In generale TLS non protegge dalle modifiche del client o del server. Protegge solo il trasporto tra client e server contro un attaccante passivo o attivo che prova tra client e server a sniffare o modificare il traffico. E il blocco dei certificati non fa che rafforzare questa parte.

    
risposta data 15.11.2016 - 06:40
fonte

Leggi altre domande sui tag