Perché non utilizzare una CA privata?

7

Ho avuto una domanda durante la lettura di questo articolo:

I certificati fasulli ingannano la crittografia difettosa nelle app da AIM, Chase e altro

(Fondamentalmente, alcune app Android, come l'app bancaria di Chase, ad esempio, potrebbero ignorare gli errori di convalida dei certificati, probabilmente perché l'app sta cercando di ospitare elenchi CA obsoleti su dispositivi precedenti e versioni di Android.)

Nel contesto di questo tipo di app bancaria, perché lo sviluppatore non dovrebbe utilizzare una CA privata invece di firmare i certificati del server (e, per quella materia, client) attraverso una delle CA pubbliche? Lo sviluppatore controlla entrambi gli estremi della transazione, dopotutto. Mi manca qualcosa, oltre la pigrizia?

    
posta cjc 25.10.2012 - 14:59
fonte

3 risposte

2

I problemi di cui si parla nell'articolo sono principalmente del seguente tipo: le applicazioni utilizzano in modo improprio il protocollo, nel senso che ignorano gli errori di convalida. Lo fanno perché gli sviluppatori di applicazioni usano SSL come una scatola nera che si presume sia "aggiungere sicurezza" in virtù del fatto di essere lì. Questi sviluppatori non sono affatto aiutati dallo stato della documentazione di molte librerie SSL, che, quando esiste, sono raramente chiare per chiunque non abbia studiato la convalida del certificato X.509.

Qualcuno che userebbe la propria CA sarebbe qualcuno che è consapevole del problema e capisce cosa sta succedendo quando viene utilizzato un certificato. Quella è la soluzione: il progettista dell'applicazione non farebbe gli errori a cui allude l'articolo. Una CA privata è solo la soluzione logica verso la quale i progettisti di applicazioni guidano quando sanno cosa stanno facendo. Mantenere una CA privata può essere complesso e costoso, ma questo è un sintomo di certificazione, in generale, un problema difficile. Il punto importante è che i progettisti di applicazioni devono capire cosa fanno e cosa no e certificati SSL. Finché non lo fanno, nessuna quantità di CA privata li salverà.

    
risposta data 26.10.2012 - 13:11
fonte
1

L'utilizzo di una CA privata non lo cambierebbe davvero. Il bug è nel modo in cui la convalida del certificato viene eseguita all'interno del codice dell'applicazione, il che significa che l'applicazione può essere ingannata nell'accettare certificati falsi.

Ad esempio, è possibile acquistare un certificato di firma del codice completamente legittimo da qualsiasi CA principale, utilizzando lo stesso nome. Per la maggior parte dei certificati standard, la CA non verificherà i dettagli. Poiché il dispositivo esegue solo alcuni controlli primitivi, accetta quel certificato e ti consente di eseguire un attacco man-in-the-middle. Anche se il venditore gestisse la propria CA privata, ciò sarebbe comunque possibile.

Dai un'occhiata ad alcune risposte su questa altra domanda , che copre in dettaglio le vulnerabilità.

    
risposta data 25.10.2012 - 15:09
fonte
0

L'unica vera ragione per cui posso vedere oltre la pigrizia è il costo di mantenere un'infrastruttura privata di CA / PKI.

Fare così bene (con una buona sicurezza) può essere una proposta piuttosto costosa. Ovviamente farlo a un livello di base (impostare chiavi, firmare i certificati, ecc.) È piuttosto semplice, ma se non si proteggono bene le chiavi CA potrebbe essere piuttosto sgradevole se vengono rubate (a seconda di cosa è la tua app. e quanto sarebbe facile spingere un aggiornamento).

    
risposta data 25.10.2012 - 16:39
fonte

Leggi altre domande sui tag